Сравнение типов-значений с null
От: Pek2014 Россия  
Дата: 02.03.17 11:43
Оценка:
Почему тип-значение Guid можно сравнивать с null, а все другие типы-значения нельзя.

    public struct B
    {
    }
...
    var b = new B();
    if (b == null) // CS0019    Operator '==' cannot be applied to operands of type 'B' and '<null>'
          Console.WriteLine("!!!");

    var g = new Guid();
    if (g == null) // OK
        Console.WriteLine("OK");


Понятно, почему все другие нельзя. Не понятно, почему вдруг Guid можно.

Кстати, Nullable<> типы это тоже значения и тем не менее их можно сравнивать с null (что естественно, тут особый случай).

Интересно могу ли я написать свой тип-значение, который будет нормально сравниваться с null? (в нужном мне смысле)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.