摘要:
属性设计
通常,方法代表操作而属性代表数据。属性像字段一样使用,这意味着属性不应进行复杂的计算,也不应产生副作用。有关属性设计的更多信息,请参见索引属性设计和属性更改通知事件。
下列准则可帮助确保正确地设计属性。 如果调用方不应当更改属性值,则要创建只读属性。
注意,属性类型的可变性会影响最终用户可以更改的内容。例如,如果定义一个返回读/写集合的只读属性,则最终用户不能向该属性分配其他集合,但可以修改该集合中的元素。 不要提供仅支持 Set 操作的属性。
如果无法提供属性 getter,可以改用一个方法来实现该功能。方法名称应以 Set 开头,并按原样后跟属性名。例如,AppDomain 使用一个名为 SetCachePath 的方法,而不是名为 CachePath 的仅支持 Set 操作的属性。 为所有属性提供适当的默认值,确保属性的默认值不会导致安全漏洞或设计效率非常低下。 允许按任意顺序设置属性,即便这样做会导致出现暂时无效的对象状态也如此。 如果属性 setter 引发异常,则保留以前的值。 避免从属性 阅读全文
摘要:
1 public class Test 2 { 3 private bool drawing; 4 private Point beginPoint; 5 private Point endPoint; 6 private Size size = new Size(); 7 8 public Test() 9 ... 阅读全文
摘要:
1WebClient client = new WebClient(); 2 client.Headers.Add("Accept", "image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd... 阅读全文
摘要:
你为生存、生活、生命做些什么,不要告诉我;我只想知道,你是否拥有源于内心的渴望,是否渴求用智慧成就梦想。你的年龄、性别、工作,不要告诉我;我只想知道,为了爱,为了梦,为了生机勃勃的生命,你是否愿意傻瓜般地旅行。你的欲望、个性、价值观,不要告诉我;我只想知道,你是否已经触及自己心灵深处的涌动,为此而悲哀和喜悦。你的经历、成败、得失,不要告诉我;我只想知道,你能否充满野性地舞蹈,让狂喜注满你的周身,忘... 阅读全文
摘要:
献给计划创业者的朋友们 近来,不时听说有朋友要自己创业,还有一些朋友让我看他们的商业计划书。创业对我来说已不是什么新鲜事了,但在这萧条时期还能看到这些计划或正在创业的朋友与我为伍,真是非常高兴。为此,在真诚地祝他们事业成功的同时,我也把经历过的教训总结10条,做为礼物送给他们,希望能有所帮助。 吃饭是第一位的! 已经有好几位即将走出校门和刚刚走出校门的同学告诉我他们打算自己创业,每... 阅读全文
摘要:
加入目前公司快一年了,越来越不想工作了!本来还是挺喜欢编程的。但是在这的工作并不能找到多少乐趣。我喜欢思考,疯狂思考,喜欢头脑风暴!有很多新奇的想法,却无实践和用武之地,甚至找不到可以讨论的人。身为IT工作者,为什么他们都不喜欢关注新的东西呢?你说这样的公司能有创新吗?我希望创新.......除了钱,还能给我什么呢?没有安全感,没有成就感!我还能在你这呆多久?几年前关于互联网的很多新奇想法,正在成... 阅读全文
摘要:
1 //错误写法: 2 private void SyncData() 3 { 4 try 5 { 6 Thread t = new Thread(new ThreadStart(remoteObject.SyncPbcsmsData)); 7 t.Start(); 8 ... 阅读全文
摘要:
select * from videofile where Id not in ( select Min(Id) from videofile group by [Name] ) 其中Id为主键,Name为重复项名称 阅读全文
摘要:
先来个截图这两天周末,研究了下VS2005的插件,做了这个Demo .原本打算用“窗口绑架”将Live Messenger直接绑进来的。后来在www.windowsforms.net 找到了个Messenger Clone 。这只是个Demo,有很多细节都没有做。。PS: VS的插件机制真的好爽。。。有兴趣的朋友可以加把自己喜欢的东东都加进去啊。。MsnAddIn源码 阅读全文
摘要:
DataSource绑定不支持A.B的形式,DataBindings可以,而很多控件没有DataBindings属性。this.dgvColorSchedule.DataSource = SettingData.Instance.AvCardConfig.ColorSchedule;this.colScheme.DataPropertyName = "Scheme.Name";this.colT... 阅读全文