如何在Visual Studio中生成getter和setter?

通过“生成”,我的意思是自动生成特定选定(一组)变量所需的代码。

但是,对于良好做法的任何更明确的解释或评论都是受欢迎的。

0
额外 编辑
意见: 2

14 答案

您也可以只输入 prop ,然后按两次tab键,而不是使用 ctrl + kx

0
额外
请参阅 msdn.microsoft.com/en-us/library/z41h7fat.aspx在Visual C#中更有用的代码片段
额外 作者 Titus,
并且不要忘记“propg”+制表符,它可以产生相同的结果,但可以使用私人setter。
额外 作者 Andrew M,

通过生成,你的意思是自动生成?如果这不是你的意思:

Visual Studio 2008为此提供了最简单的实现:

public PropertyType PropertyName { get; set; }

在后台创建一个隐含的实例变量,您的属性存储和检索。

但是,如果你想在你的属性中放置更多的逻辑,你将不得不为它创建一个实例变量:

private PropertyType _property;

public PropertyType PropertyName
{
    get
    {
        //logic here 
        return _property;
    }
    set
    {
        //logic here
        _property = value;
    }
 }

早期版本的Visual Studio也一直使用这种方法。

0
额外
@Julen - 我总是看到_property约定。
额外 作者 Nathan DeWitt,
C#中的标准是成员名称 property _ 之后的低破折号而不是 _property 之前的低破折号?
额外 作者 Julen,

我的机器上再也没有安装Visual Studio(我正在使用Linux),但我记得有一个向导隐藏在可以访问类构建器的菜单中的某个位置。

使用此向导,您可以定义所有类的详细信息,包括方法和属性。如果我没记错的话,有一个选项可以让VS自动为你创建setter和getters。

我知道这很模糊,但请检查一下,你可能会发现它。

0
额外

如果您使用的是Visual Studio 2005或更高版本,则可以使用insert snippet命令快速创建setter / getter。右键点击代码,点击插入片段( Ctrl + kx ),然后从列表中选择“prop”。希望这可以帮助。

0
额外

Visual Studio也有一个功能,将从一个私有变量生成一个Property。

如果右键单击变量,在弹出的上下文菜单中单击“重构”项目。然后选择封装字段。这将为变量创建一个getter / setter属性。

我不太喜欢这种技术,因为如果你需要创建大量的getter / setter,它会有点尴尬,并且它会把属性直接放在私有域的下面,这会让我感到困惑,因为我通常会所有我的私人领域分组在一起,这个Visual Studio功能打破了我的班级格式。

0
额外
不幸的是,这个选项不是由Visual Studio的高级版本给出的。
额外 作者 Toby,
也有shourtcut - 我preffer这种方式:) - CTRL + R + E
额外 作者 Vukasin,

除了'prop'片段和自动属性之外,还有一个重构选项可让您选择现有字段并通过属性公开它。另外,如果你不喜欢'道具'的实现,你可以创建自己的片段。此外,像resharper这样的第三方重构工具将为您提供更多功能,并使创建更高级的片段变得更加容易。如果你负担得起,我会推荐Resharper。

http://msdn.microsoft.com/en-us/library/f7d3wz0k(VS.80).aspx http://www.jetbrains.com/

0
额外

我使用Visual Studio 2013专业版。

  • Place your cursor at the line of an instance variable.

    enter image description here

  • Press combine keys Ctrl+R, Ctrl+E or Click right mouse button, Choose context menu Refactor \ Encapsulate Field... then press OK.

    enter image description here

  • In Preview Reference Changes - Encapsulate Field diaglog, press button Apply.

    enter image description here

  • This is result:

    enter image description here



You also place cursor for choosing property, use Menu Edit \ Refactor \ Encapsulate Field...

private int productID;

public int ProductID
{
    get { return productID; }
    set { productID = value; }
}

成为

public int ProductID { get; set; }
0
额外

我知道这比太阳还年长,但我认为我会把它作为我的回答,因为它就像这样做。

What I did was create my own snippet that ONLY adds {get; set;}. I made it just because I find prop > tab to be clunky.

<?xml version="1.0" encoding="utf-8"?>

  
    
<title>get set</title> get
 
    
        
            


        
    
  

With this, you type your PropType and PropName manually, then type get > tab and it will add the get set. Its nothing magical, but since I tend to type my access modifier first anyway, I may as well finish out the name and type.

0
额外

If you're using ReSharper, go into the ReSharper menu --> Code --> Generate ... (or hit Alt+Ins inside the surrounding class) and you'll get all the options for generating getters and/or setters you can think of :-)

0
额外

您也可以使用“propfull”并敲击 TAB 两次,变量和具有get和set的属性将被生成。

0
额外
我正在做XML序列化,并在整个演出中产生大量属性。如果可以的话,+ 100细条纹可以起作用。谢谢!编辑 - 甚至更好,autohotkey脚本+ ^这=生产力超过90000!
额外 作者 Eon,
这是更有用的,我总是忘记它
额外 作者 Dave Alperovich,

use the propfull keyword.
It will generate property and variable

0
额外
请提供更多关于您的答案的信息,以下简短描述的答案对下一个访问者不是好的...
额外 作者 Kiyarash,
在编辑器中键入关键字propfull它将生成类似private data_type var_name的代码; public data_type var_name1 {get; set;}
额外 作者 avinash kadu,

在Visual Studio Community Edition 2015中,您可以选择所需的所有字段,然后按 ctrl +。自动生成属性。你必须选择是否要使用属性而不是字段。

0
额外

enter image description herebehalf of the visual studio tool we can easily generate C# properties using online tool called. c# propery generator.

0
额外

在声明变量之后,你只需在android studio中简单地按下 Alt + Ins ,就可以获取getters和setter来生成代码。

0
额外