手记

.Net3.0中的自动属性(示例)

using System;

namespace LinqDemo
{

    class Program
    {
        static void Main(string[] args)
        {
            //传统用法示例
            Employee Emp = new Employee("Jimmy.Yang", 25);
            Console.WriteLine(Emp.ToString());

            Console.WriteLine("-------------------");

            //自动属性的写法
            NewEmployee NewEmp = new NewEmployee { Name = "Tom", Age = 30 };//感觉与Javascript中对象的JSON字符串表示法相似
            Console.WriteLine(NewEmp.ToString());

            Console.ReadLine();
        }
       
    }



    /**//// <summary>
    /// 传统方式定义一个类
    /// </summary>

    public class Employee
    {
        private string _name = "Anonymous";
        private int _age = 0;

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


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


        public Employee() { }

        public Employee(string pName, int pAge) 
        {
            this._name = pName;
            this._age = pAge;
        }


        public override string ToString()
        {
            return "Name:" + this._name + " Age:" + this._age;
        }

    }



    /**//// <summary>
    /// .Net3.0自动属性的新写法
    /// </summary>

    public class NewEmployee
    {
        public string Name{get; set;}
        public int Age { get; set; }
        public override string ToString()
        {
            return "Name:" + this.Name + " Age:" + this.Age;
        }

    }

}

可以看出,.Net3.0的自动属性,可以使定义一个类的代码大大减化,个人感觉:这一点好象又是从Javascript中的JSON字符串表示法“偷”来的^_^,不信的话,可以参看以下Javascript代码:

<script type="text/javascript">
var Emp = {Name:"Jimmy.Yang",Age:30};

function ShowEmp(E)
{
    return "Name:" + E.Name + " Age:" + E.Age;
}


document.write(ShowEmp(Emp));

</script>
顺便发表一下个人感慨:微软确实很善于吸引他人长处

0人推荐
随时随地看视频
慕课网APP