Ошибка компилятора CS0453
Для использования в качестве параметра "имя параметра" в универсальном типе или методе "идентификатор" тип "имя типа" должен быть типом значения, не допускающим значения NULL
Эта ошибка возникает при использовании аргумента типа, отличного от значения, при создании экземпляра универсального типа или метода с ограничениемзначения. Она также может происходить, если используется аргумент, принадлежащий к типу значения, который допускает значение NULL. См. две последние строки кода в представленном ниже примере.
Следующий код вызывает эту ошибку.
// CS0453.cs
using System;
public class HV<S> where S : struct { }
// CS0453: string is not a value type
public class H1 : HV<string> { }
// CS0453: H1 is a class, not a struct
public class H2 : HV<H1> { }
// CS0453: HV is based on a class, not a struct
public class H3<S> : HV<S> where S : class { }
public class H4<S> : HV<S> where S : struct { } // OK
// CS0453: HV accepts a nullable int type
public class H4 : HV<int?> { }
// CS0453: HV is based on Nullable type of int
public class H5 : HV<Nullable<Nullable<int>>> { }
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: