かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

WinRTのコードテンプレートに含まれてるBindableBaseクラスを前提にするなら登録しておきたいコードスニペット

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
	<CodeSnippet Format="1.0.0">
		<Header>
			<Title>propbindable</Title>
			<Shortcut>propbindable</Shortcut>
			<Description>プロパティとバッキング フィールド用のコード スニペット</Description>
			<Author>okazuki</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>field</ID>
					<ToolTip>このプロパティのバッキング変数</ToolTip>
					<Default>myVar</Default>
				</Literal>
			</Declarations>
			<Code Language="csharp"><![CDATA[private $type$ $field$;

	public $type$ $property$
	{
		get { return this.$field$;}
		set { this.SetProperty(ref this.$field$, value);}
	}
	$end$]]>
			</Code>
		</Snippet>
	</CodeSnippet>
</CodeSnippets>

これをpropbindable.snippetという名前でC:\Users\ユーザ名\Documents\Visual Studio 2012\Code Snippets\Visual C#\My Code Snippetsに置いておくと捗る。
propbindableと入力してTab Tabで以下のようなプロパティを簡単に定義できます。

private string summary;

public string Summary
{
    get { return this.summary; }
    set { this.SetProperty(ref this.summary, value); }
}