gpt4 book ai didi

c# - 有没有办法使只读(不仅仅是私有(private))自动属性?

转载 作者:可可西里 更新时间:2023-11-01 08:56:10 25 4
gpt4 key购买 nike

自动属性让我替换这段代码:

private MyType myProperty;
public MyType MyProperty
{
get { return myPropertyField; }
}

使用此代码:

public MyType MyProperty { get; private set; }

在这里和那里进行了一些更改 - 但有没有办法替换此代码:

private readonly MyType myProperty;
public MyType MyProperty
{
get { return myPropertyField; }
}

有类似的东西吗?

最佳答案

的确,目前没有办法做到这一点。

我们意识到在 C# 3 中产生了一些哲学上的矛盾。 LINQ 的设计在很大程度上沉浸在传统的不可变函数式编程风格中——延迟执行,查询由不可变的 monad 表示,表达式树是不可变的,等等。

然而与此同时,对象初始化器、集合初始化器和自动 Prop 都鼓励传统的基于可变组件的编程风格。看起来我们正在向两个方向推进——这表明了 C# 的本质;它是一种实用的编程语言,支持多种不同的编程风格。

但是,由于我们都是不可变编程风格的忠实拥护者,并且我们相信这种风格会带来好处,使在未来无处不在的多核架构中更容易确保大规模多线程应用程序的正确性,我们我们肯定有兴趣找出某种方法来驯服我们引入的可变性。 Readonly autoprops 是一种显而易见的方法;一小步,但很好。

总而言之,我们甚至还没有发布 C# 4,也没有宣布之后会有任何新的语言特性。您应该将我所有关于未发布产品的假设特征的想法视为“仅供娱乐”的推测,而不是 promise 或公告。

关于c# - 有没有办法使只读(不仅仅是私有(private))自动属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1536691/

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