是否有一些处理类的多个属性的快捷方式(比如50 spanning string,int,datetime等)。它们都有相同的简单声明,例如
private int myInt;
public int MyInt
{ get { return myInt; }
set { myInt = value; }
}
private datetime someDate;
public datetime SomeDate
{ get { return someDate; }
set { someDate = value; }
}
原因是,我有一个类将“绑定”到数据输入文本框类型字段等。只是让它们“公开”不起作用,因为它不会绑定到一个字段,但如果它是一个适用的get / set属性。我只是认为,当重复一遍又一遍时,经历这样的努力会很痛苦,并且相信有一种更短/更简化的方法。我只是没有其他导师可以学习并知道S / O有很多可以提供帮助。
对于我现在的情况,要求我只使用.Net 2.0 max ...基于手持设备的一些限制还不能运行3.0,3.5等。
答案 0 :(得分:11)
在C#3或更高版本中,您可以使用auto-implemented properties:
public int MyInt { get; set; }
答案 1 :(得分:4)
在VS2010& 2008您可以右键单击私有字段,选择Refactor-> Encapsulate Field。
你仍然需要逐个字段地进行操作,但它有一些聪明之处(关于选择一个可公开查看的名称),你可以完全没有打字。
跟进:我看到Josh M的答案向您展示了做同样事情的键盘快捷键。
答案 2 :(得分:3)
在现场尝试CTRL + R + E.
在this blog post中查看更多精彩快捷方式。
答案 3 :(得分:3)
不使用字段,而是使用属性开头:
public int MyInt { get; set }
public DateTime SomeDate { get; set; }
答案 4 :(得分:0)
我认为创建字段没有任何快捷方式(除了手动输入外),尽管可以为类中的“现有”字段创建属性。因此,在这种情况下,您将写入50个字段,然后您可以要求VS为您自动生成属性。如果你有Resharper会更好(我认为,alt + insert会完成这项工作)。
如果您有列/字段及其类型的列表,则可以使用CodeDom。然后根据您提供的列列表自动生成整个类,包含所有字段和属性。
答案 5 :(得分:0)
你说你坚持使用.NET 2.0。请注意,您可以使用某些C#3.0功能,但仍然以.NET 2.0 Framework为目标。因此,只要您使用VS2008并将目标设置为.NET 2.0,就可以使用autoprops(以及C#3.0的其他一些很酷的功能)。以下是关于此主题的一系列链接:
http://weblogs.asp.net/shahar/archive/2008/01/23/use-c-3-features-from-c-2-and-net-2-0-code.aspx
http://www.danielmoth.com/Blog/Using-Extension-Methods-In-Fx-20-Projects.aspx
答案 6 :(得分:-1)
键入propfull
,然后按两次TAB