Ошибка компилятора CS0453
Обновлен: Ноябрь 2007
Сообщение об ошибке
Для использования в качестве параметра "имя параметра" в универсальном типе или методе "универсальный идентификатор" тип "имя типа" должен быть типом значения, не допускающим значения NULL
The type 'Type Name' must be a non-nullable value type in order to use it as parameter 'Parameter Name' in the generic type or method 'Generic Identifier'
Данная ошибка возникает при использовании аргумента, который не принадлежит к типу значения, для создания универсального типа или метода, имеющего ограничение value. Она также может происходить, если используется аргумент, принадлежащий к типу значения, который допускает значение NULL. См. две последние строки кода в представленном ниже примере.
Пример
Следующий код вызывает эту ошибку.
// CS0453.cs
using System;
public class HV<S> where S : struct { }
public class H1 : HV<string> { } // CS0453
public class H2 : HV<H1> { } // CS0453
public class H3<S> : HV<S> where S : class { } // CS0453
public class H4 : HV<int?> { } // CS0453
public class H5 : HV<Nullable<Nullable<int>>> { } // CS0453