gpt4 book ai didi

c# - .Net 1.x 中结构的 Null/空值

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

我需要为结构使用一个空值。

我不知道哪个是最好的选择。我正在考虑在结构上使用静态只读字段,但我不确定这是否是最好的选择。也许在公共(public)类上返回空值的方法是更好的选择。

出于性能原因,我正在使用该结构,因此无法将其更改为类。而且我不确定如果我使用静态字段,每个结构实例的大小都会增加。

有什么想法吗?

最佳答案

是否有自然无效的结构值?特别是,您可以总是写:

MyStruct x = new MyStruct();

这将以所有位为 0 结束。如果由于某种原因这不是您的结构的有效状态(例如,您有一个整数值,它在构造函数中始终设置为非零)那么这很好- 将其用作您的“空”值。如果需要,您可以使用该值创建一个静态字段:

public static readonly MyStruct Empty = new MyStruct();

请注意,添加一个static 字段不会给结构的实例 增加任何开销。

但是,如果您的结构中每个可能的位模式都已经是一个有效值,您将需要一种不同的方法 - 向您的结构添加一个额外的字段,或者向任何代码片段添加一个额外的字段使用您的结构并且可能需要表示“缺失”值。

您说“出于性能原因”使用类不是一种选择 - 这是因为您已经对您的情况的差异进行了严格的基准测试吗?

关于c# - .Net 1.x 中结构的 Null/空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4819677/

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