如何在构造函数中设置多个记录

本文关键字:记录 设置 构造函数 | 更新日期: 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")
};