gpt4 book ai didi

C# 定义类实例永远不能为空(它只包含不包含数据)

转载 作者:行者123 更新时间:2023-11-30 13:44:30 25 4
gpt4 key购买 nike

出于好奇:有没有办法创建一个类,其对类实例的引用永远不会设置为 null?就像只有一个只能由类本身设置为 null 的只读指针。

我的想法是:我想要一个易于阅读/使用的对象,它要么与数据一起存在,要么不与数据一起存在(由 hasData = false 之类的属性显示)。它总是可访问的,并且永远不应该为 null/指向任何地方,作为副作用,它也消除了对象的 NullReferenceExceptions,这些对象有时应该没有值而不需要检查 null。

最佳答案

此功能(还)不存在。 Roslyn 论坛对不可空引用类型进行了大量讨论:non-nullable reference types (the one billion $ mistake) .但目前您不能限制引用类型 变量分配null 值。

您可以改用值类型(结构),但它不会存储在堆中,也不会按值传递等。

所有其他选项都不能保证有人不会将 null 分配给您的引用类型的变量。但是你仍然可以使用类似 Null Object 的东西简化您生活的模式(以与普通对象相同的方式处理没有数据的对象)。

关于C# 定义类实例永远不能为空(它只包含不包含数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38352032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com