gpt4 book ai didi

C#预初始化类

转载 作者:行者123 更新时间:2023-11-30 19:31:32 25 4
gpt4 key购买 nike

创建预初始化类的最佳做法是什么。例如

Chip chip = new Atmega8();

我希望它的属性已经定义如下:

chip.Name = "Atmega8 AVR Chip";

等等。

如何在C#中实现?
我应该使用 readonly public 属性还是带有 private set 的属性?

最佳答案

让你的构造函数初始化值:

class Atmega8 {
public Atmega8 ()
{
Name = "Atmega8 AVR Chip";
}

public string Name { get; set; }
}

如果您希望所有实例的 Name 都相同,那么在基类中将其声明为 abstract 并覆盖 getter 可能是有意义的:

abstract class Chip {
public abstract string Name { get; }
}

class Atmega8 : Chip {
public override string Name {
get { return "Atmega8 AVR Chip"; }
}
}

因为我们还没有定义set 方法,所以不能更改值,很像readonly 变量,只是它甚至不存储在任何地方,只是返回每次通话。

关于C#预初始化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6999662/

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