gpt4 book ai didi

c# - 只能在创建对象时分配的类属性?

转载 作者:行者123 更新时间:2023-11-30 13:17:51 24 4
gpt4 key购买 nike

在 C# 中可以这样写:

Instrument instr = new Instrument { ClassCode = "Hello", Ticker = "World" };

但是要做到这一点,您必须在相应的类中添加 set;:

class Instrument
{
public string ClassCode { get; set; }
public string Ticker { get; set; }
}

这意味着以后有人可能会不小心更改值:

instr.ClassCode.set = "Destroy"

而且我不想允许这样做。也就是说,一方面我想要一个只读属性,另一方面我想创建这样的对象:

Instrument instr = new Instrument { ClassCode = "Hello", Ticker = "World" };

我不确定这是否可行。可能我应该使用字段或其他东西而不是属性。我只想拥有最后一句话的语法,但同时保持只读状态。

更新:简而言之,不,只读属性在任何情况下都是不允许的。在这种情况下应使用常规构造函数和“get”。

最佳答案

我会通过使用私有(private) setter 并从构造函数中调用它们来完成此操作。这样您就可以控制何时调用 setter 。

Instrument instr = new Instrument("Hello", "World");

class Instrument
{
public Instrument(string ClassCode, string Ticker)
{
this.ClassCode = ClassCode;
this.Ticker = Ticker;
}

public string ClassCode { get; private set; }
public string Ticker { get; private set; }
}

关于c# - 只能在创建对象时分配的类属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5707930/

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