您的位置:首页 > 编程语言 > C#

VS2008&C#3.5语言特色系列[视频]:自动属性(Automatic Properties)

2008-04-20 10:21 465 查看
 
VS2008通过一个叫“自动属性(automatic properties)”的语言特性提供了一个优雅的方式来使得你的编码更加简洁,同时还保持属性的灵活性。自动属性允许你避免手工声明一个私有成员变量以及编写get/set逻辑,取而代之的是,编译器会自动为你生成一个私有变量和默认的get/set 操作。
标准的属性定义:
  


   public class MichaelFeng




    ...{


        private string name;


        public string Name




        ...{


            get




            ...{


                return name;


            }


            set




            ...{


                name = value;


            }


        }


}



 
C#2008中自动属性定义:
   


 public class MichaelFeng




    ...{ 


        public string Name




        ...{ 


            get; 


            set; 


        }


    }



乍一看,和抽象属性很相像
  


 abstract class MichaelFeng 




    ...{


        public abstract string Name 




        ...{ 


            get; 


            set; 


        } 


    }



但是两者是完全不一样的!
编译器可以自动帮你生成隐含的私有字段,并填充get和set访问器,而这一切你可以通过ILDASM了解其背后的内幕!
和传统的C#属性不同的是,你不能通过省略get或者set去定义一个只读或者只写的自动属性。
在传统C#属性中,你可以对set访问器和get访问器定义不同的访问修饰符,同样的,在自动属性中,你也可以这样做,如下所示:
[align=left]          VS2008中的“代码段”的prop已经重写为对自动属性的定义!如果你想在get或者set访问器中写一些代码,进行一些逻辑判断之类的话,那么自动属性就无法帮你的忙了,你只能去写相应的传统属性![/align]


       public string MichaelFeng




        ...{


            get;


            protected set;


        }



[align=left][/align]
[align=left][/align]
[align=left]视频下载:[/align]
[align=left]C#3.5语言特色系列:自动属性(Automatic Properties)[/align]
[align=left]http://download.csdn.net/source/405997[/align]
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐