使用默认的get / set body创建许多属性的快捷方式

时间:2011-03-21 02:51:26

标签: c# .net properties .net-2.0

是否有一些处理类的多个属性的快捷方式(比如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等。

7 个答案:

答案 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

http://www.developer.com/net/csharp/article.php/3598381/The-New-Lambda-Expressions-Feature-in-C-30.htm

答案 6 :(得分:-1)

键入propfull,然后按两次TAB