And*_*Hin 26 c# struct nullable
我有一个清单:
List<int, SomeStruct>
Run Code Online (Sandbox Code Playgroud)
出于某种原因,它不允许我为其分配空值.如果我想没有关联的结构,我该怎么办?
Wil*_*den 45
使用可空类型:
List<int, SomeStruct?>
Run Code Online (Sandbox Code Playgroud)
您不能分配null给列表的元素,因为结构是值类型,而null意味着空指针,因此只能分配给引用类型变量.
另请注意,List在.NET中不存在使用它!也许你想要Dictionary?
Wil*_*ean 12
在C#中,struct是一个'值类型',它不能为null.
如果你真的真的需要能够将其置零,那么通过添加一个尾随问号将其变为'可空'类型.
你应该首先考虑一下这个问题的细节 - 你很可能根本不想要一个'结构',但是对于'类'来说会更好.
除非您定义了自定义泛型集合,List<T, U>否则System.Collections.Generic命名空间中不存在。你的意思是Dictionary<TKey, TValue>?
您可以使用 Nullable 类型:Using Nullable Types (C# Programming Guide).
对于任何 ValueType,您需要明确指定您的类型将允许空值。您可以通过将 ' ?' 字符与您的类型名称连接起来,或将其标记为 Nullable,其中 T 是您的结构名称来实现。