gpt4 book ai didi

c# - "Init only setters"提供什么以及与 C# 中只读的有什么区别

转载 作者:行者123 更新时间:2023-12-04 00:50:52 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is difference between Init-Only and ReadOnly in C# 9?

(3 个回答)


去年关闭。




我可以定义如下类:

public class MyClass
{
public int Id { get; }
public MyClass(int id) => Id = id;
}
我必须定义 Id来自构造函数,它将是只读的。
但是如果我想使用 Init only settersC# 9.0 ,它有什么作用,我该如何使用它?
public class MyClass
{
public int Id { get; init; }
}

最佳答案

简而言之:

var obj = new MyClass
{
Id = 42 // totally fine
};

obj.Id = 43; // not OK, we're not initializing
在这种情况下微不足道,与使用构造函数参数没有太大区别,但在一些更复杂的场景中很有用,您不需要 200 个构造函数参数,但您确实希望它在构造后对外不可变。

关于c# - "Init only setters"提供什么以及与 C# 中只读的有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66744413/

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