首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于 set; get; 的一些有关问题

2013-12-10 
关于 set get 的一些问题方法1:[解决办法]第二种写法在编译时会自动生成类似第一种写法,只是成员名称有

关于 set; get; 的一些问题
方法1:


[解决办法]
第二种写法在编译时会自动生成类似第一种写法,只是成员名称有点特殊;是3.0以后的一个功能,即在编写进可以不用写局部变量,提高编代速度而以,你可以按第二种写法,编译后,用反编译查看一下就什么都知道了;
但在特定情况下,第二种写法可能无法实现
[解决办法]
如果get, set 里要加一些逻辑,就只能用第一种写法了
[解决办法]
引用:
明白了,完全是习惯问题。

你还是没明白

framework早期版本没有那种写法 后期才有的 是为了方便程序员

正如:早期没有linq一样 
[解决办法]
区别应该没有

第一种清晰明了,当然加限制也是需要第一种的
[解决办法]
若没有约束,用方法2 有约束用方法1
[解决办法]
荟香豆有几种写法
[解决办法]
效果一样,上面的写法多数是自动生成的,下面的代码则是手写产生的。
[解决办法]
引用:
第二种写法在编译时会自动生成类似第一种写法,只是成员名称有点特殊;是3.0以后的一个功能,即在编写进可以不用写局部变量,提高编代速度而以,你可以按第二种写法,编译后,用反编译查看一下就什么都知道了;
但在特定情况下,第二种写法可能无法实现

确实第二种写法有些情况是满足不了的,比如说在WPF中使用MVVM绑定时的一种写法:


public class MainWindowViewModel : INotifyPropertyChanged
    {
        private ObservableCollection<string> _Collections;
        public ObservableCollection<string> Collections
        {
            get { return _Collections; }
            set {
                if (_Collections != value)
                {
                    _Collections = value;
                    OnPropertyChanged("Collections");
                }
            
            }
        }

        public MainWindowViewModel()
        {
        }

        public void OnPropertyChanged(string name)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(name));
            }
        }
        public event PropertyChangedEventHandler PropertyChanged;
    }



[解决办法]
这一般是看你用那版本的vs

熟练程序员大多掌握着vs快捷键和简写代码段的快捷编写手段

在vs里敲击prop+tab键其自带的简写代码段会自动完成代码(如果加装其他插件还有更简单的简写键,比如coderush的po+空格)

而在vs2010前,prop+tab生成滴是第一种写法,而vs2010后生成的是第二种写法(vs2010后如果想生成第一种的敲击propfull+tab)
[解决办法]
我最近更多地敲 propn+TAB。  http://www.google.com.hk/search?newwindow=1&safe=strict&hl=zh-CN&biw=1528&bih=844&q=inotifypropertychanged+snippet+propn&oq=inotifypropertychanged+snippet+propn&gs_l=serp.3...16818.18881.0.19252.6.6.0.0.0.0.0.0..0.0.ernk_timecombined...0...1.1.32.serp..6.0.0._fRTHPi9cLk
[解决办法]
效果一样,第二个是framework3.5以后的语法糖写法。第一个是3.5以前的
[解决办法]
效果是一样的哦,后者更方便些
[解决办法]
其实还是有些不一样的 。有些第一种第二种不行,有些第二种第一种不行。比如接口中设置属性就只能用第二种
[解决办法]
和.net没有关系,是C# 3.0的语法,叫自动属性,那个私有变量叫后备字段,编译器会帮你生成。

热点排行