gpt4 book ai didi

c# - 有没有一种在 C# 中将结构归零的快速方法?

转载 作者:可可西里 更新时间:2023-11-01 08:00:32 26 4
gpt4 key购买 nike

这一定已经有人回答了,但我找不到答案:

是否有一种快速且提供的方法可以在 C# 中将 struct 归零,或者我必须自己提供 someMagicalMethod

明确一点,我知道结构将被初始化为 0,我想知道是否有一种快速的方法可以将值重置为 0。

即,

struct ChocolateBar {
int length;
int girth;
}

static void Main(string[] args) {
ChocolateBar myLunch = new ChocolateBar();
myLunch.length = 100;
myLunch.girth = 10;

// Eating frenzy...
// ChocolateBar.someMagicalMethod(myLunch);

// myLunch.length = 0U;
// myLunch.girth = 0U;
}

最佳答案

只需使用:

myLunch = new ChocolateBar();

myLunch = default(ChocolateBar);

myLunch = default;

这些是等价的1,并且最终都会为 myLunch 分配一个新的“所有字段设置为零”值。

此外,理想情况下不要一开始就使用可变结构 - 我通常更喜欢创建一个不可变的结构,但它的方法会返回一个值,并且特定字段设置不同,例如

ChocolateBar myLunch = new ChocolateBar().WithLength(100).WithGirth(10);

...当然也提供适当的构造函数:

ChocolateBar myLunch = new ChocolarBar(100, 10);

1 至少对于在 C# 中声明的结构。值类型可以在 IL 中具有自定义的无参数构造函数,但是预测 C# 编译器将调用它而不是仅使用默认“零”值的情况相对较难。

关于c# - 有没有一种在 C# 中将结构归零的快速方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20496003/

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