C#求助一个this来构造函数的问题

2025-05-24 00:00:10
推荐回答(1个)
回答(1):

using System;


class MyClass
{
    private string m_name;
    private int m_age;
    private string m_gender;
    
    // 构造函数1
    public MyClass(string name, int age)
    {
        m_name = name;
        m_age = age;
        m_gender = "男";
    }
    // 构造函数2
    public MyClass(string name, int age, string gender):
        : this(name, age)  //<--this的意思是调用“构造函数1”
    {
        m_gender = gender;
    }    
    
    public string Name{get{return m_name;}}
    public int Age{get{return m_age;}}
    public string Gender{get{return m_gender;}}
}

// 测试MyClass
class Program
{
    static void Main(string[] args)
    {
        // c1用构造函数1, 因此默认的性别为“男”
        MyClass c1 = new MyClass("张三", 23);
        ShowMyClass(c1);
        
        // c2用构造函数2,性别为“女”
        MyClass c2 = new MyClass("李四", 22, "女");
        ShowMyClass(c2);        
    }
    
    static void ShowMyClass(MyClass mc)
    {
        Console.WriteLine("{0}, {1}, {2}" mc.Name, mc.Age, mc.Gender);
    }
}