在同一个类的构造函数中传递类的对象

blu*_*nha 3 c#

如何用StudentId = 1和Name ="Alex"初始化这样的类

class Student
{
    public int StudentId { get; set; }
    public string Name { get; set; }

    public Student(Student student)
    {
        StudentId = student.StudentId;
        Name = student.Name;
    }
}
class Program
{
    static void Main(string[] args)
    {
        Student s = new Student()
    }
}
Run Code Online (Sandbox Code Playgroud)

S. *_*tin 8

您可以添加另一个手动提供值的构造函数:

public Student(int id, string name)
{
    StudentId = id;
    Name = name;
}
Run Code Online (Sandbox Code Playgroud)

初始代码不起作用的原因是,当您创建需要相同类型的另一个实例的对象时,依赖关系链会上升到无穷大,您永远不会有起点.

通过使用手动构造函数,您可以手动创建起始点,换句话说,是其他对象可以依赖的初始对象.因此,您消除了无限的依赖链.