通过数组创建新对象时的C#增量
Posted
技术标签:
【中文标题】通过数组创建新对象时的C#增量【英文标题】:C# increment when creating new object via Array 【发布时间】:2020-07-22 04:05:13 【问题描述】:所以我通过数组在 Console 类中添加/创建对象:
string[] console_available = "Yes", "Yes", "Yes", "Yes", "Yes" ;
for (int i = 0; i < console_available .Length; i++)
Classes.Console console = new Classes.Console(console_available[i]);
在类本身中,我有 int console_id,我想增加它,但由于某种原因,它只使用下面的构造函数增加一次:
public int ConsoleID get; set; = 0;
public string Available get; set;
public Console(string available)
ConsoleID++;
this.Available = available;
所以本质上它都是“1 是”,我需要它是“1 是”、“2 是”、“3 是”。
我真的不想走多行代码来创建对象的路线,例如:
Classes.Console console = new Classes.Console("Yes");
Classes.Console console2 = new Classes.Console("Yes");
Classes.Console console3 = new Classes.Console("Yes");
【问题讨论】:
在您的循环中,您创建了五个对象,但将它们扔掉,因为您不会在任何地方使用它们。 为什么不向构造函数添加第二个参数(ConsoleID)?ConsoleID
特定于每个实例。您的构造函数正在添加到变量中,但每次您声明一个新实例时,它都会将其设置回 0,因为这是硬编码的。把它变成一个static
变量像@Sean 回答来解决这个问题。
【参考方案1】:
您需要一个静态变量,您可以递增并存储在成员变量中:
private static int _ID = 1;
public int ConsoleID get; set; ;
public string Available get; set;
public Console(string available)
ConsoleID = _ID++;
this.Available = available;
【讨论】:
简单有效。谢谢! 现在接受!不得不再等 5 分钟,因为在问题发布后无法立即接受答案:)以上是关于通过数组创建新对象时的C#增量的主要内容,如果未能解决你的问题,请参考以下文章