当前位置:  开发笔记 > 编程语言 > 正文

我应该使用默认(Foo),Foo.Empty还是null?

如何解决《我应该使用默认(Foo),Foo.Empty还是null?》经验,为你挑选了1个好方法。

所以C#现在允许你用来default(Foo)获得一个认可的"未填充"/空类的实例 - 我不确定它是否完全相同new Foo().许多库类还实现了一个Foo.Empty属性,该属性返回一个类似的实例.当然,任何参考类型都可以指向null.那真的,有什么区别?什么时候是对还是错?什么更一致,或表现更好?在检查对象在概念上是否"未准备好黄金时间"时,我应该使用哪些测试?不是每个人都有Foo.IsNullOrEmpty().



1> Dylan Beatti..:

default(Foo)将在Foo类类型时返回null ,其中0 Foo是值类型(例如int),并且Foo所有字段的实例都初始化为它们各自的default()值,其中Foo是struct.它被添加到语言中,以便泛型可以同时支持值和引用类型 - 更多信息在MSDN上

使用default(Foo)时,你在的情况下测试为T SomeClass或者MyMethod,你不知道T是否将是值类型,类类型或结构.

否则,null应表示"未知",而空应表示"我知道这是空的".如果你真的需要一个空的 - 但是非null - 你的类的实例,请使用Foo.Empty模式; 例如String.Empty,""如果您需要将某个变量初始化为空字符串,则作为替代方法.

如果您知道自己正在使用引用类型(类),则使用null,不涉及泛型,并且您明确地测试未初始化的引用.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有