その後、C#3.0を備えた2008スタジオが登場し、自動プロパティがありました。 CodeRushが私が望んでいたことをしていないとき、私はもうそれが好きではありませんでした。 これには短いショットキャットが貢献します。 そしてある時点で、私はそれを使うことを拒否しました。 個人的にコードを入力した場合よりも、このツールで苦労しました。
その後、スタジオスニペットについて知りました。 実際、これらはCodeRushの同じコードテンプレートであり、より単純なもののみです。 for、foreach、prop、exceptionなどの標準的なものがあります。 テンプレートを開くには、テンプレートの名前を入力してTabキーを押す必要があります。 オートコンプリートを使用する場合、テンプレートの名前の一部を記述してから、TAB、TABを記述できます。
しかし、最も魅力的なのは、独自のテンプレートを作成できることです。 ただし、手動では、これを行わない方が良いです。 テンプレートはXMLで保存され、手動で編集することは困難です。
ただし、スタジオにはテンプレートを作成および編集できる追加機能があります-
http://www.codeplex.com/SnippetDesigner 編集は次のとおりです。
置換されたすべてのフィールドが強調表示され、設定はドキュメントプロパティとパラメーターのテーブルで行われます。 構文の強調表示はありませんが、XMLを編集するよりも桁違いに優れています。
新しいスニペットをスタジオに接続するには、作成する必要があります。 これは、コンテキストメニュー(選択したコード用)を使用するか、既存のスニペットファイルをコピーすることで実行されます。 テンプレートの場所は、Tools \ Code Snippets Managerで確認できます。 カスタムテンプレートは、デフォルトで\ Documents \ Visual Studio 2008 \ Code Snippets \にあります。 ファイルをコピーしてテンプレートを作成する場合、XMLのShortcutプロパティを変更する必要があります。 スタジオまたはSnippetDesignerのいずれかがスニペットをキャッシュし、同じショートカットでスニペットを保存すると、変更が失われる可能性があります。
最近作成したWPFプロジェクトで作業中に作成したカスタムスニペットの例は、少し低くしました。 これらのテンプレートにより、数時間の定期的な入力とデバッグが節約されました。
通知のあるプロパティ:
/// <summary>
/// $comment$
/// </summary>
/// <remarks>
///
/// </remarks>
private $type$ m_$property$;
/// <summary>
/// $comment$
/// </summary>
public $type$ $property$
{
get
{
return m_$property$;
}
set
{
m_$property$ = value ;
OnPropertyChanged( "$property$" );
}
}
遅延初期化のプロパティ:
/// <summary>
/// $comment$
/// </summary>
/// <remarks>
///
/// </remarks>
private $type$ m_$property$;
/// <summary>
/// $comment$
/// </summary>
public $type$ $property$
{
get
{
if ( m_$property$ == null )
{
m_$property$ = null ;
}
return m_$property$;
}
}
MS Prismチーム:
#region Command - $name$
/// <summary>
/// $comment$
/// </summary>
public DelegateCommand <$type$> $name$Command { get ; private set ; }
/// <summary>
/// $comment$
/// </summary>
private void $name$( $type$ parameter )
{
// TODO:
// $name$Command = new DelegateCommand<$type$>( $name$, Can$name$ );
// TODO: Shortcuts, ReturnKeyAssistants
}
/// <summary>
/// $comment$
/// </summary>
/// <returns>true </returns>
private bool Can$name$( $type$ parameter )
{
// TODO:
//return Errors.Count == 0;
return true ;
}
#endregion