Компилятор C# не принимает значение NULL для свойства универсального типа, допускающего значение NULL.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Компилятор C# не принимает значение NULL для свойства универсального типа, допускающего значение NULL.

Сообщение Anonymous »

Код: Выделить всё

public class ClassA
{
public TUid? Uid { get; set; }
}

public class ClassB : ClassA
{
public void Test()
{
ClassB dto = new ClassB();
dto.Uid = null;
}
}
Компилятор C# не принимает этот код C# в строке: dto.Uid = null, говоря, что

Невозможно преобразовать значение null в Guid, поскольку это тип значения, не допускающий значения NULL.

Не является TUid универсального типа в ClassA заменен на Guid в ClassB, поэтому в результате должно получиться Guid? вот так?

Код: Выделить всё

public Guid? Uid { get; set; }
Если я объявлю ClassA неуниверсальным

Код: Выделить всё

public class ClassA
{
public TUid? Uid { get; set; }
}
или передать общий параметр в качестве Guid?

Код: Выделить всё

public class ClassB : ClassA
тогда dto.Uid = null не вызывает никаких проблем.
Что такого в правилах вывода типа параметра, что сбивает с толку компилятор в первом примере?

Подробнее здесь: https://stackoverflow.com/questions/785 ... e-property
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»