Мне очень стыдно, но я протупил на вопросе, как проверить равенство двух ValueType-ов, приведенных к типу object.
static void Main(string[] args)
{
object val0 = 5;
object val1 = 5;
Console.WriteLine(val0 == val1);
Console.ReadLine();
}
Понятно, что возвращается false. Мой ответ и правильный подкатом.
Мой ответ:
static void Main(string[] args)
{
object val0 = 5;
object val1 = 5;
Console.WriteLine(ValueTypeCompare(val0, val1));
Console.ReadLine();
}
private static bool ValueTypeCompare(object val0, object val1)
{
return val0.GetType() == val1.GetType() && val0.ToString() == val1.ToString();
}
Правильный:
static void Main(string[] args)
{
object val0 = 5;
object val1 = 5;
Console.WriteLine(val0.Equals(val1));
Console.ReadLine();
}
Вот так.
static void Main(string[] args)
{
object val0 = 5;
object val1 = 5;
Console.WriteLine(val0 == val1);
Console.ReadLine();
}
Понятно, что возвращается false. Мой ответ и правильный подкатом.
Мой ответ:
static void Main(string[] args)
{
object val0 = 5;
object val1 = 5;
Console.WriteLine(ValueTypeCompare(val0, val1));
Console.ReadLine();
}
private static bool ValueTypeCompare(object val0, object val1)
{
return val0.GetType() == val1.GetType() && val0.ToString() == val1.ToString();
}
Правильный:
static void Main(string[] args)
{
object val0 = 5;
object val1 = 5;
Console.WriteLine(val0.Equals(val1));
Console.ReadLine();
}
Вот так.
Комментариев нет:
Отправить комментарий