C#构造方法重载

来源:互联网 发布:网络舆情分析 编辑:程序博客网 时间:2024/05/16 15:00
在C#中,构造函数可以使用 this 关键字调用同一对象中的另一构造函数。和 base 一样,this 可带参数使用也可不带参数使用,构造函数中的任何参数都可用作 this 的参数,或者用作表达式的一部分。


namespace OOPExample
{
    class Program
    {
        static void Main(string[] args)
        {
            Employee emp1 = new Employee();
            Employee emp2 = new Employee("Tom");
            Employee emp3 = new Employee("Lee", 30);


            Console.WriteLine("使用默认构造方法:Name={0}, Age={1}", emp1.Name, emp1.Age);
            Console.WriteLine("使用带名字参数的构造方法:Name={0}, Age={1}", emp2.Name, emp2.Age);
            Console.WriteLine("使用带全参数的构造方法:Name={0}, Age={1}", emp3.Name, emp3.Age);
            Console.ReadLine();
        }
    }


    public class Employee {
        string _name;
        int _age;


        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }


        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }


        /// <summary>
        /// 默认构造方法
        /// </summary>
        public Employee() 
            :this("NoName", 0)
        {
            //_name = "NoName";
        }


        /// <summary>
        /// 带名字参数的构造方法
        /// </summary>
        /// <param name="name"></param>
        public Employee(string name)
            : this(name, 0)
        {
            //_name = name;
        }


        /// <summary>
        /// 带全参数的构造方法
        /// </summary>
        /// <param name="name"></param>
        /// <param name="age"></param>
        public Employee(string name, int age) {
            _name = name;
            _age = age;
        }
    }
}


转自:http://blog.csdn.net/neolx423/article/details/2017169
原创粉丝点击