首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能声明一个泛型列表为可空?

为什么我不能声明一个泛型列表为可空?
EN

Stack Overflow用户
提问于 2011-09-14 23:18:02
回答 4查看 28.2K关注 0票数 22

我正在尝试使用以下代码:

代码语言:javascript
复制
private Nullable<List<IpAddressRange>> ipAddressRangeToBind;

但我得到了以下警告:

类型列表必须是不可为null值的类型,才能将其用作泛型类型或方法“System.Nullable”中的参数“T”。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-14 23:19:12

List<T>已经是一个引用类型(对于任何类型的T) -您只能在T是不可为空值类型的情况下声明Nullable<T> (它被声明为Nullable<T> where T : struct)。

但这也没关系,因为如果你只是声明:

代码语言:javascript
复制
private List<IpAddressRange> ipAddressRangeToBind;

那么你仍然可以拥有

代码语言:javascript
复制
ipAddressRangeToBind = null;

因为引用类型总是可以为空的。

票数 52
EN

Stack Overflow用户

发布于 2011-09-14 23:19:11

List<IpAddressRange>是一个引用类型-它已经可以为空-事实上,它将被该声明初始化为null。

票数 10
EN

Stack Overflow用户

发布于 2011-09-14 23:21:11

您可以按原样使用它:

代码语言:javascript
复制
List<IpAddressRange> ipAddressRangeToBind = null;  

列表已可为nullable。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7418786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档