我没有在真正的应用程序中使用它,但我只是对如何做到这一点感到好奇(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"; ???
}
如果可能的话,语法是什么?感谢
答案 0 :(得分:2)
你完全误解了构造函数是什么。构造函数用于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");
答案 1 :(得分:2)
每次写作时都使用上面指定的代码:
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");
希望这是有道理的。
答案 2 :(得分:2)
您展示的是构造函数。它在您创建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")
};