如何在构造函数中设置多个记录
本文关键字:记录 设置 构造函数 | 更新日期: 2023-09-27 18:11:33
我没有在真正的应用程序中使用这个,但我只是好奇如何做到这一点(c#)。
我在构造函数中设置了一个样本数据记录:
public class MikesClass
{
public MikesClass()
{
Id = 01; Name = "Mike";
}
public int Id { get; set; }
public string Name { get; set; }
}
但我很困惑如何在它中创造另一个记录:
public MikesClass()
{
Id = 01; Name = "Mike";
Id = 02; Name = "Tom"; ???
}
如果可以这样做,语法是什么?由于
您完全误解了什么是构造函数。构造函数是one single object
的。它创建一个对象。因此你不能用它创造另一个记录。那个记录将是一个不同的对象。当您创建另一个记录时,您只需将这些值设置为构造函数的参数。
所以,至少应该像这样-
public class MikesClass
{
public MikesClass(int id, string name)
{
Id = id;
Name = name;
}
public int Id { get; set; }
public string Name { get; set; }
}
和在创建多个记录/对象时的一些距离-
var m1 = new MikesClass(0,"name1");
var m2 = new MikesClass(1, "name2");
使用上面指定的代码,每次写入:
MikesClass mc = new MikesClass();
您将获得类型为MikesClass
的对象,Id
属性设置为1,Name
属性设置为"Mike"。由于MikesClass的每个实例表示一个对象,因此不能在其中表示多个对象。
你可以做的是修改你的构造函数,将这两个值作为参数。这样的:
public MikesClass(int id, string name)
{
Id = id;
Name = name;
}
您可以使用以下代码创建多个MikesClass
对象,如下所示:
MikesClass mike = new MikesClass(1, "Mike");
MikesClass tom = new MikesClass(2, "Tom");
你展示的是一个构造函数。它在创建MikeClass类的实例时运行。您需要的是创建几个实例。也许在数组中?
MikeClass[] array = new MikeClass[2];
MikeClass mc = new MikeClass(); /first instance
mc.Id = 1;
mc.Name = "Mike";
array[0] = mc;
mc = new MikeClass(); //another instance
mc.Id = 2;
mc.Name = "Tom";
array[1] = mc;
};
这是使用对象初始化语法:
MikeClass[] array = new MikeClass[] {
new MikeClass { Id = 1, Name = "Mike" }, //first instance
new MikeClass { Id = 2, Name = "Tom" } //another instance
};
你也可以为MikeClass类创建一个带参数的构造函数:
public MikeClass(int id, string name) {
Id = id;
Name = name;
}
:
MikeClass[] array = new MikeClass[] {
new MikeClass(1, "Mike"),
new MikeClass(2, "Tom")
};