gpt4 book ai didi

c# - 在仅由构造函数调用的私有(private)方法中分配只读变量的值

转载 作者:可可西里 更新时间:2023-11-01 03:06:28 29 4
gpt4 key购买 nike

C# 编译器给我以下错误

CS0191:无法将只读字段分配给(构造函数或变量初始值设定项中除外)

我是否必须将代码(在我的私有(private)函数中)移动到构造函数中?这听起来很尴尬。

请注意,私有(private)方法仅供构造函数调用。我希望有某种属性可以用来标记相应的方法。

最佳答案

不管其他帖子怎么说,实际上有一种(有点不寻常的)方法来做到这一点并在方法中实际赋值:

public class Foo
{
private readonly string _field;

public Foo(string field)
{
Init(out _field, field);
}

private static void Init(out string assignTo, string value)
{
assignTo = value;
}
}

示例源自 here .

或者,您也可以从私有(private)方法返回值并在构造函数中分配它,如下所示:

class Foo
{
private readonly string _field;

public Foo()
{
_field = GetField();
}

private string GetField()
{
return "MyFieldInitialization";
}
}

关于c# - 在仅由构造函数调用的私有(private)方法中分配只读变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6848441/

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