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

来源:互联网 发布:项目奖金 知乎 编辑:程序博客网 时间:2024/05/16 13:03

.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{getset;}
        
public int Age getset; }
        
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>

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