今天要寫一個支援序列化的類,因此需要手動寫許多屬性和欄位,而不能使用C# 3.0後的自動屬性。於是用到了Visual Studio的propfull Code Snippets,但是這個Code Snippets很不方便,如下:
有兩大不好的地方:
- 屬性名稱和欄位名稱要定義兩遍。我覺得欄位名稱直接在屬性名稱前自動加一個”_”就可以了。
- set沒有添加修飾符的支援。
為此我定義了另一個Code Snippet:propfull2
克服了上述缺點。屬性類型和propfull一樣。然後只需要指定一個名稱,欄位名稱會自動在前面加”_”,然後可以指定set的存取修飾詞(預設是private)。
檔案下載
注意:此為微軟SkyDrive存檔,請用瀏覽器直接下載,用某些下載工具可能無法下載
檔案類型:.snippet
或者瀏覽源檔案:
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>propfull2</Title>
<Shortcut>propfull2</Shortcut>
<Description>更進階的propfull CodeSnippet</Description>
<Author>Mgen</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<ToolTip>屬性類型</ToolTip>
<Default>int</Default>
</Literal>
<Literal>
<ID>property</ID>
<ToolTip>屬性名稱</ToolTip>
<Default>MyProperty</Default>
</Literal>
<Literal>
<ID>access</ID>
<ToolTip>set的反問修飾符</ToolTip>
<Default>private</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[private $type$ _$property$;
public $type$ $property$
{
get { return _$property$;}
$access$ set { _$property$ = value;}
}
$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>