.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>

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

时间: 2024-09-28 09:58:30

.Net3.0中的自动属性(示例)的相关文章

.net3.0中的扩展方法(示例)

先定义一个类Utils,在该类中定义了一个string类的扩展方法_IsNull  using System;namespace LinqDemo.App_Code{    public static class Utils    {        /**//// <summary>        /// 传统写法        /// </summary>        /// <param name="s"></param>     

明晰Silverlight中的依赖属性

在c#中--得益于c#3.0中的自动属性--我们可以十分轻松的通过如下代码创建一个叫做 "AuthorName"的属性. public string AuthorName { get; set; } 上面的代码就是我们熟悉的CLR属性,我们可以很方便的读/取这个属性的值.不过在 silverlight的世界中如果你想做更多更牛的事情,CLR属性就显得有些力不从心了.它们包 括--动画.数据绑定.样式/模板等等. 因此,微软在WPF中提出了依赖属性(Dependency Property

.net3.0中跨线程访问控件

这两天用WPF做一个项目的UI部分时, 发现跨线程地访问了UI控件, 自然地报异常了. 当时找了半天也没在控件中找到InvokeRequired属性和Invoke方法, 郁闷之极.....最后发现在.net3.0中,这有所改变了. 替代InvokeRequired的方法是DispatcherObject.CheckAccess()或DispatcherObject.VerifyAccess()方法,用于指示当前线程是否可以直接访问控件. 替代Invoke的方法是DispatcherObject.

ASP.NET 2.0 中收集的小功能点

asp.net 1.asp.net 2.0中的MaxPageStateFieldLength 属性 在asp.net 2.0中,可以强制对viewstate进行分段传输了,使用的是Page.MaxPageStateFieldLength 属性,可以设置viewstate中,每个页面状态字段的最大字节数.格式如下,要在WEB.CONFIG文件里设置的:    <pages maxPageStateFieldLength="5" />    其中,将设置把viewstate为不

ASP.NET 2.0 中收集的小功能点(转)_实用技巧

1.asp.net 2.0中的MaxPageStateFieldLength 属性 在asp.net 2.0中,可以强制对viewstate进行分段传输了,使用的是Page.MaxPageStateFieldLength 属性,可以设置viewstate中,每个页面状态字段的最大字节数.格式如下,要在WEB.CONFIG文件里设置的:<pages maxPageStateFieldLength="5" />其中,将设置把viewstate为不超过5字节,如果实际的views

C#3.0中自动属性和对象初始化器

C#3.0中定义属性更加方便,不用再在像之前的版本那样的繁琐,需要先定义存储数据的字段,然后再定义属性器,现在只需要定义属性器就可以了,其它的有编译器自动为我们完成,就可以省去定义字段时需要的那些时间:在对象初始化的时候我们可在对象构造的时候实现对象属性的初始化工作,和集合初始化类似. 1.匿名属性 定义属性如下: public class Employee { public int Id { get; set; } public string Name { get; set; } public

C#3.0新特性(三)-详说自动属性和匿名类型

写在前边: 不知道怎么的,上一篇说放到首页看看,今天来看才发现没有放上去,做事情还真不细心,改.改.改!其实,早知道C# 4.0都有了,但是连C# 3.0都还没有弄清楚,使用还是坚持这个系列,做完再写C# 4.0吧.技术前辈们肯定早都知道这些东西了,不过呢,我也只是学习,只是把我的学习同大家分享而已! 一.自动实现的属性 全称应该叫自动实现的属性(Auto-implemented properties),在上一篇中,给了简单的例子,说的是当属性访问器中不需要其他逻辑时,自动实现的属性可使属性声明

C#3.0之自动属性和对象初始化器

C#3.0中定义属性更加方便,不用再在像之前的版本那样的繁琐,需要先定义存储数据的字段,然后再定义属性器,现在只需要定义属性器就可以了,其它的有编译器自动为我们完成,就可以省去定义字段时需要的那些时间:在对象初始化的时候我们可在对象构造的时候实现对象属性的初始化工作,和集合初始化类似. 1.匿名属性 定义属性如下: public class Employee { public int Id { get; set; } public string Name { get; set; } public

艾伟:C#3.0之自动属性和对象初始化器

C#3.0中定义属性更加方便,不用再在像之前的版本那样的繁琐,需要先定义存储数据的字段,然后再定义属性器,现在只需要定义属性器就可以了,其它的有编译器自动为我们完成,就可以省去定义字段时需要的那些时间:在对象初始化的时候我们可在对象构造的时候实现对象属性的初始化工作,和集合初始化类似. 1.匿名属性 定义属性如下: public class Employee {public int Id { get; set; }public string Name { get; set; }public st