2008-08-06 165 views

回答

237

而不是使用CTRL +ķX你也可以只輸入prop然後單擊標籤兩次

+65

不要忘記「propg」+製表符,它可以產生相同的結果,但可以使用私人setter。 – 2009-11-17 09:31:57

+0

完全漂亮。謝謝! – Stumblor 2013-09-20 13:01:33

+0

請參閱https://msdn.microsoft.com/en-us/library/z41h7fat.aspx以獲取更多有用的Visual C#代碼片段。 – Titus 2015-06-22 10:04:21

1

我的機器上再沒有安裝Visual Studio(我正在使用Linux),但我確實記得有一個嚮導隱藏在可以訪問類構建器的菜單中的某處。

使用此嚮導,您可以定義所有類的詳細信息,包括方法和屬性。如果我沒記錯的話,有一個選項可以讓VS自動爲你創建setter和getters。

我知道這很含糊,但檢查一下,你可能會發現它。

29

通過生成,你的意思是自動生成?如果這不是你的意思:

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

C#中的標準是不是在成員名稱`property_`之後而不是`_property`之前的較低破折號? – Julen 2011-03-30 14:00:54

+1

@Julen - 我一直都看到_property約定。 – 2012-11-20 03:39:32

7

如果您正在使用Visual Studio 2005及更高版本,則可以使用insert snippet命令快速創建setter/getter。右鍵點擊代碼點擊插入片段(Ctrl + kx),然後從列表中選擇「prop」。希望這可以幫助。

46

Visual Studio中還有一個特點,將產生一個私人變量屬性。

如果你右鍵點擊一個變量,在彈出的上下文菜單中點擊「Refactor」項目。然後選擇封裝字段。這將爲變量創建一個getter/setter屬性。

我並不太喜歡這種技術,因爲如果你必須創建大量的getter/setter,它有點尷尬,並且它將屬性直接放在私有字段的下面,這會讓我感到困惑因爲我通常會將所有私人字段組合在一起,而且這個Visual Studio功能會打亂我班的格式。

1

除了'prop'片段和自動屬性之外,還有一個重構選項可讓您選擇現有字段並通過屬性公開它。另外,如果你不喜歡'道具'的實現,你可以創建自己的片段。此外,像resharper這樣的第三方重構工具將爲您提供更多功能,並使創建更高級的片段變得更加容易。如果你負擔得起,我會推薦Resharper。

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

4

如果您使用ReSharper的,進入ReSharper的菜單 - >代碼 - >生成...(或按Alt鍵+周邊類中)和你會得到所有生成getter和/或制定者你能想到的:-)

25

你也可以使用「propfull」的選項,打TAB兩次,變量和物業使用get和set將會產生。

3

使用關鍵字propfull
它會生成屬性和變量

2

我知道這比太陽還年長,但我想我會張貼這個作爲我的答案,因爲它就像這樣做。

我所做的是創建我自己的片段,只添加{get; set;}。我只是因爲我發現prop > tab笨重。

<?xml version="1.0" encoding="utf-8"?> 
<CodeSnippets 
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> 
    <CodeSnippet Format="1.0.0"> 
    <Header> 
     <Title>get set</Title> 
     <Shortcut>get</Shortcut> 
    </Header> 
    <Snippet> 
     <Code Language="CSharp"> 
      <![CDATA[{get; set;}]]> 
     </Code> 
    </Snippet> 
    </CodeSnippet> 

有了這個,你手動鍵入PropType和PROPNAME,然後鍵入get > tab,它會添加獲取設置。它沒什麼神奇的,但是由於我傾向於首先鍵入我的訪問修飾符,所以我最好完成名稱和類型。

27

我使用Visual Studio 2013專業版。

  • 將光標放在實例變量的行處。

    enter image description here

  • 按組合的鍵按Ctrl +[R按Ctrl +Ë點擊鼠標右鍵,選擇右鍵菜單Refactor \ Encapsulate Field...然後按OK

    enter image description here

  • Preview Reference Changes - Encapsulate Field diaglog,按下按鈕Apply

    enter image description here

  • 這是結果:

    enter image description here



地方光標選擇屬性,使用菜單編輯\重構\封裝字段...

private int productID; 

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

成爲

public int ProductID { get; set; } 
1

在Visual Studio Community Edition的2015年,你可以選擇所有您想要的字段,然後按ctrl + .自動生成屬性。你必須選擇是否要使用屬性而不是字段。

0

你只是簡單地按下Alt鍵+機器人工作室聲明變量後,您將獲得在生成代碼的getter和setter。