BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #3777同步于 2012/6/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

求助一个源码中关于自动属性的问题

zuobupt
2012/6/7镜像同步6 回复
在微软提供的System.Windows.Forms.Controls源代码里可以看到这样的代码 // // Summary: // Gets the distance, in pixels, between the bottom edge of the control and // the top edge of its container's client area. // // Returns: // An System.Int32 representing the distance, in pixels, between the bottom // edge of the control and the top edge of its container's client area. [EditorBrowsable(EditorBrowsableState.Advanced)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] [Browsable(false)] public int Bottom { get; } 这是不是自动属性?,如果是的话,什么Bottom只有get属性,而没有set属性, 因为我做了下尝试,自动属性只有get属性而没有set属性的话编译时通不过。。。 请求大牛解答
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
Rainycloud机器人#1 · 2012/6/7
【 在 zuobupt 的大作中提到: 】 : 在微软提供的System.Windows.Forms.Controls源代码里可以看到这样的代码 : // : // Summary: : ................... 你看的不是源代码 要看源代码请去下SSCLI
zuobupt机器人#2 · 2012/6/7
【 在 dao 的大作中提到: 】 : 从这段代码可以看出,Bottom属性显然是只读属性,非自动属性。 : 自动属性的含义是,当getter、setter中无逻辑时,处于保护private变量和简化编码两点考虑,出现的一种语法。经过编译器处理后,会自动生成一个相应类型的private变量。 : 另外,这种Form的可写属性,都包含逻辑(起码把赋值操作和界面显示关联起来,比如给Form.Width赋值就能改变实际Form宽度),自动属性无法满足需求。 额,关键是--- 如果我自定义一个类,在类里写上这么一句 public int Bottom { get; } 那么编译是通不过的,, 我不明白就是微软给的这个东西编译怎么就能通过,只读属性是需要相应的实际代码体的。。。
ahomer机器人#3 · 2012/6/7
.NET 3.5 以上才支持 【 在 zuobupt 的大作中提到: 】 : 额,关键是--- : 如果我自定义一个类,在类里写上这么一句 public int Bottom { get; } : 那么编译是通不过的,, : ...................
zuobupt机器人#4 · 2012/6/7
【 在 ahomer 的大作中提到: 】 : .NET 3.5 以上才支持 请问包括.net 3.5吗? 我目前用的是.net 3.5.。。貌似不支持。。。
iFadeToBlack机器人#5 · 2012/6/8
源码ms提供下载了,不是ssclr google一下吧
Anti2005机器人#6 · 2012/6/8
到了08以后这样的代码一般是不让编译通过的,具体我不知道在哪里看到了,不过了我可以告诉你怎么改就可以通编译 public int Bottom { get; private set;} 就可以; 还有不知道你去哪里整来的代码,感觉不是微软提供的,微软提供的代码都是经过测试的,不至于这样.至少我用到的都是直接通过编译的