C#のどのReSharper 4.0テンプレートを使用していますか?
これらを次の形式で共有しましょう。
オプションの説明
ショートカット:ショートカット
以下で利用可能:[AvailabilitySetting]
// Resharper template code snippet
// comes here
マクロのプロパティ(存在する場合):
とてもシンプルでとても便利-小さなラムダ:
ショートカット:x
利用可能:式が許可されるC#。
x => x.$END$
マクロ:なし。
ショートカット:dispose
以下で利用可能:C#2.0+ファイルで、型メンバーの宣言が許可されている
public void Dispose()
{
Dispose(true);
System.GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
if ($MEMBER$ != null)
{
$MEMBER$.Dispose();
$MEMBER$ = null;
}
}
disposed = true;
}
}
~$CLASS$()
{
Dispose(false);
}
private bool disposed;
マクロのプロパティ:
ショートカット: ntf
利用可能: C#2.0+ファイルで、型のメンバーの宣言または名前空間の宣言が許可されている
[NUnit.Framework.TestFixtureAttribute]
public sealed class $TypeToTest$Tests
{
[NUnit.Framework.TestAttribute]
public void $Test$()
{
var t = new $TypeToTest$()
$END$
}
}
マクロ:
。Net 4を使用している場合は、string.IsNullOrWhiteSpace()。を使用することをお勧めします。
ショートカット:sne
使用可能:式が許可されているC#2.0+。
string.IsNullOrEmpty($VAR$)
マクロのプロパティ:
ショートカット: ntc
利用可能:タイプメンバー宣言が許可されているC#2.0+ファイル
[NUnit.Framework.TestAttribute]
public void $Test$()
{
$END$
}
マクロ:
現在のタイプのlog4netロガーを宣言します。
ショートカット:ログ
利用可能:型のメンバー宣言が許可されているC#2.0+ファイル
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof($TYPE$));
マクロのプロパティ:
Art Of Unit TestingにあるAAA構文と命名規則を使用した新しいMSテストユニットテスト
ショートカット:テスト(またはtst、または好きなもの)
以下で利用可能:型のメンバー宣言が許可されているC#2.0+ファイル
[TestMethod]
public void $MethodName$_$StateUnderTest$_$ExpectedBehavior$()
{
// Arrange
$END$
// Act
// Assert
}
マクロのプロパティ(存在する場合):
ショートカット: ifn
以下で利用可能 C#2.0+ファイル
if (null == $var$)
{
$END$
}
ショートカット: ifnn
以下で利用可能 C#2.0+ファイル
if (null != $var$)
{
$END$
}
(常にすべてのコンストラクターの長い標準サマリーを入力するのが面倒なので、StyleCopルールSA1642に準拠している場合)
ショートカット: csum
利用可能: C#2.0+
Initializes a new instance of the <see cref="$classname$"/> class.$END$
マクロ:
Assert.AreEqual
単体テストにアサートを追加するシンプルなテンプレート
ショートカット:ae
利用可能:ステートメントが許可されているC#2.0+ファイル
Assert.AreEqual($expected$, $actual$);$END$
流暢バージョン:
Assert.That($expected$, Is.EqualTo($actual$));$END$
ネストを容易にするために、異なる変数宣言を使用してラムダ式を作成します。
ショートカット: la、lb、lc
使用可能:式またはクエリ句が許可されているC#3.0+ファイル
laは次のように定義されます:
x => x.$END$
lbは次のように定義されます:
y => y.$END$
lcは次のように定義されます:
z => z.$END$
これは上記のSean Kearonに似ていますが、ラムダを簡単にネストできるように複数のラムダライブテンプレートを定義しています。 "la"が最も一般的に使用されますが、次のような式を処理する場合にも便利です。
items.ForEach(x => x.Children.ForEach(y => Console.WriteLine(y.Name)));
コンソールアプリケーションが終了する前にユーザー入力を一時停止します。
ショートカット:一時停止
使用可能:ステートメントが許可されているC#2.0+ファイル
System.Console.WriteLine("Press <ENTER> to exit...");
System.Console.ReadLine();$END$
依存関係プロパティの生成
依存関係プロパティを生成します
ショートカット: dp
利用可能:メンバー宣言が許可されているC#3.0
public static readonly System.Windows.DependencyProperty $PropertyName$Property =
System.Windows.DependencyProperty.Register("$PropertyName$",
typeof ($PropertyType$),
typeof ($OwnerType$));
public $PropertyType$ $PropertyName$
{
get { return ($PropertyType$) GetValue($PropertyName$Property); }
set { SetValue($PropertyName$Property, value); }
}
$END$
マクロのプロパティ(存在する場合):
PropertyName-マクロなし-#3
PropertyType-この時点で予想される推測タイプ-#2
OwnerType-含まれるタイプ名-編集可能なオカレンスなし
ショートカット:fm
以下で利用可能:ステートメントが許可されているC#2.0+ファイル
.ForMember(d => d$property$, o => o.MapFrom(s => s$src_property$))
$END$
マクロ:
注:
ヒットできるように、ラムダ「ドット」をオフのままにします。すぐにプロパティインテリセンスを取得します。 AutoMapper( http://automapper.codeplex.com/ )が必要です。
これは、私が頻繁に使用し、多くの作業を行うため、私のお気に入りです。
ショートカット:npc
利用可能:C#2.0+式が許可されています。
if (value != _$LOWEREDMEMBER$)
{
_$LOWEREDMEMBER$ = value;
NotifyPropertyChanged("$MEMBER$");
}
マクロ:
使用方法:このようなプロパティセッターの内部:
private string _dateOfBirth;
public string DateOfBirth
{
get { return _dateOfBirth; }
set
{
npc<--tab from here
}
}
これは、バッキング変数が「_」で始まると想定しています。これを使用するものに置き換えます。また、次のようなプロパティ変更メソッドがあることも前提としています。
private void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
実際には、私が使用するこのバージョンはラムダベース(「私はラムダが大好きです!」)であり、以下を生成します。原理は上記と同じです。
public decimal CircuitConductorLive
{
get { return _circuitConductorLive; }
set { Set(x => x.CircuitConductorLive, ref _circuitConductorLive, value); }
}
それは、私が非常にエレガントで便利な PostSharpを使用して、INotifyPropertyChangedのすべてを簡単に実行しない であるときです。
単体テストの属性に追加する簡単なショートカット。
ショートカット:ee
使用可能:使用可能:タイプメンバー宣言が許可されているC#2.0+ファイル
[ExpectedException(typeof($TYPE$))]
メソッドが非UIスレッドから呼び出し可能である必要があり、そのメソッドが呼び出しをUIスレッドにマーシャリングする必要があるWinFormsアプリケーションを開発する場合に役立ちます。
ショートカット:inv
利用可能:C#3.0+ファイルステートメントが許可されます
if (InvokeRequired)
{
Invoke((System.Action)delegate { $METHOD_NAME$($END$); });
return;
}
マクロ
通常、このテンプレートを特定のメソッドの最初のステートメントとして使用すると、結果は次のようになります。
void DoSomething(Type1 arg1)
{
if (InvokeRequired)
{
Invoke((Action)delegate { DoSomething(arg1); });
return;
}
// Rest of method will only execute on the correct thread
// ...
}
ショートカット:設定
利用可能:利用可能:タイプメンバー宣言が許可されているC#2.0+ファイル
[NUnit.Framework.SetUp]
public void SetUp()
{
$END$
}
これは少し下手ですが、便利です。うまくいけば、誰かがそれからいくつかのユーティリティを得るでしょう。
ショートカット:testMethod
利用可能:C#2.0
[TestMethod]
public void $TestName$()
{
throw new NotImplementedException();
//Arrange.
//Act.
//Assert.
}
$END$
ショートカット:ティアダウン
利用可能:利用可能:タイプメンバー宣言が許可されているC#2.0+ファイル
[NUnit.Framework.TearDown]
public void TearDown()
{
$END$
}
これは、(他の無視されたテストと同様に)単体テストランナーに表示される(実装またはテストする機能の)通知として機能します。
ショートカット: nts
利用可能:タイプメンバー宣言が許可されているC#2.0+ファイル
[Test, Ignore]
public void $TestName$()
{
throw new NotImplementedException();
}
$END$
新しく生成されたGUID値に初期化された新しいSystem.Guidインスタンスを生成します
ショートカット: csguid 利用可能: C#2.0+ファイル
new System.Guid("$GUID$")
マクロのプロパティ:
コードが特定のアイテムの正しいスレッドで実行されていることを確認したいWinFormsアプリケーションを開発するときに役立ちます。 Control
はISynchronizeInvoke
を実装することに注意してください。
ショートカット:ani
利用可能:C#2.0+ファイルステートメントが許可されます
Debug.Assert(!$SYNC_INVOKE$.InvokeRequired, "InvokeRequired");
マクロ
System.ComponentModel.ISynchronizeInvoke
の変数を提案ショートカット:eann
以下で利用可能:typeステートメントが許可されているC#2.0+ファイル
Enforce.ArgumentNotNull($inner$, "$inner$");
マクロ:
備考:このスニペットはオープンソースの.NETを対象としていますが、 Lokad.Shared ライブラリ、他のタイプの引数チェックに簡単に適合します。
ショートカット:comclass
利用可能:型メンバー宣言または名前空間宣言が許可されているC#2.0+ファイル
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[Guid("$GUID$")]
public class $NAME$ : $INTERFACE$
{
$END$
}
マクロ
フォーマットされた文字列でトレースを追加するための非常にシンプルなテンプレート(Debug.WriteLineは既にサポートされています)。
ショートカット: twlf
使用可能な場所:ステートメントが許可されているC#2.0+ファイル
Trace.WriteLine(string.Format("$MASK$",$ARGUMENT$));
マクロのプロパティ:
value
-EditableOccurence"{0}"
-EditableOccurenceショートカット:偽物
利用可能:[ステートメントが許可されているc#2.0ファイル]
$ TYPE $ $ Name $ Fake = Isolate.Fake.Instance();
Isolate.WhenCalled(()=> $ Name $ Fake。)
マクロのプロパティ:
* $ TYPE $-新しい変数の推奨タイプ
* $ Name $-another variable(Type)の値、最初の文字は小文字
仮想キーワードを追加します。遅延読み込みまたはプロキシを有効にするためにメソッドやプロパティが仮想である必要があるNHibernate、EF、または同様のフレームワークを使用する場合に特に便利です。
ショートカット: v
使用可能: C#2.0+ファイルで、型メンバーの宣言が許可されています
virtual $END$
ここでの秘訣は、仮想化後のスペースです。これは、上ではわかりにくいかもしれません。実際のテンプレートは「仮想$ END $」で、再フォーマットコードが有効になっています。これにより、下の挿入ポイント(|で示される)に移動し、vと入力できます。
public |string Name { get; set; }
一般に.NETもデフォルトの「equals」テンプレートも、優れた単純なEqualsメソッドを簡単に作成することはできません。優れたEqualsメソッドの記述方法について therearemanythoughts ですが、90%では次のように十分だと思います単純なケースの。より複雑なものについては、特に継承に関しては、より良いかもしれません Equalsをまったく使用しない 。
ショートカット:等しい
以下で利用可能:C#2.0+タイプメンバー
public override sealed bool Equals(object other) {
return Equals(other as $TYPE$);
}
public bool Equals($TYPE$ other) {
return !ReferenceEquals(other, null) && $END$;
}
public override int GetHashCode() {
// *Always* call Equals.
return 0;
}
マクロのプロパティ:
私は今Unityで作業しているので、私の生活を少し簡単にするためにいくつかを考え出しました。
ショートカット:ta
利用可能:* .xml; * .config
<typeAlias alias="$ALIAS$" type="$TYPE$,$Assembly$"/>
これは名前も引数もない型です
ショートカット:tp
利用可能:* .xml; * .config
<type type="$TYPE$" mapTo="$MAPTYPE$"/>
これは名前のある型で、引数はありません
ショートカット:tn
利用可能:* .xml; * .config
<type type="$TYPE$" mapTo="$MAPTYPE$" name="$NAME$"/>
これは名前のある型で、引数はありません
ショートカット:tpc
利用可能:* .xml; * .config
<type type="$TYPE$" mapTo="$MAPTYPE$">
<typeConfig>
<constructor>
$PARAMS$
</constructor>
</typeConfig>
</type>
等....
log4net XML構成ブロック
テンプレートを直接インポートできます。
<TemplatesExport family="Live Templates">
<Template uid="49c599bb-a1ec-4def-a2ad-01de05799843" shortcut="log4" description="inserts log4net XML configuration block" text=" <configSections>
 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
 </configSections>

 <log4net debug="false">
 <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
 <param name="File" value="logs\\$LogFileName$.log" />
 <param name="AppendToFile" value="false" />
 <param name="RollingStyle" value="Size" />
 <param name="MaxSizeRollBackups" value="5" />
 <param name="MaximumFileSize" value="5000KB" />
 <param name="StaticLogFileName" value="true" />

 <layout type="log4net.Layout.PatternLayout">
 <param name="ConversionPattern" value="%date [%3thread] %-5level %-40logger{3} - %message%newline" />
 </layout>
 </appender>

 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
 <layout type="log4net.Layout.PatternLayout">
 <param name="ConversionPattern" value="%message%newline" />
 </layout>
 </appender>

 <root>
 <priority value="DEBUG" />
 <appender-ref ref="LogFileAppender" />
 </root>
 </log4net>
" reformat="False" shortenQualifiedReferences="False">
<Context>
<FileNameContext mask="*.config" />
</Context>
<Categories />
<Variables>
<Variable name="LogFileName" expression="getOutputName()" initialRange="0" />
</Variables>
<CustomProperties />
</Template>
</TemplatesExport>
ショートカット:RhinoMocksExpectMethod
利用可能: C#2.0+ファイル
Expect.Call($EXPECT_CODE$).Return($RETURN_VALUE$);
ショートカット:RhinoMocksExpectVoidMethod
利用可能: C#2.0+ファイル
Expect.Call(delegate { $EXPECT_CODE$; });
Drew Noakesの優れたアイデアを取り入れ、Silverlightのinvokeの実装です。
ショートカット:dca
利用可能:C#3.0ファイル
if (!Dispatcher.CheckAccess())
{
Dispatcher.BeginInvoke((Action)delegate { $METHOD_NAME$(sender, e); });
return;
}
$END$
マクロ
$METHOD_NAME$
現在含まれているメソッドの編集不可能な名前。Mspecのヘビーユーザーとして、MSpec専用のライブテンプレートをいくつか持っています。理由を設定してエラーをキャッチする簡単な方法を次に示します。
ショートカット: bece
利用可能: C#2.0+ファイルで、型のメンバーの宣言または名前空間の宣言が許可されている
bece-(例外をキャッチして)のため
Protected static Exception exception;
Because of = () => exception = Catch.Exception(() => $something$);
$END$
ショートカット:それ
使用可能: C#2.0+ファイルで、型メンバーの宣言または名前空間の宣言が許可されている
Machine.Specifications.It $should_$ =
() =>
{
};
マクロのプロパティ(存在する場合):
ショートカット:RhinoMocksRecordPlaybackSyntax *
利用可能: C#2.0+ファイル
注:このコードスニペットは、MockRepository(var mocks = new new MockRepository();
)がすでに宣言され、別の場所で初期化されていることに依存しています。
using (mocks.Record())
{
$END$
}
using (mocks.Playback())
{
}
*ショートカット名の場合は少し長く見えるかもしれませんが、入力時にインテリセンスを使用すると問題は発生しません。 Rhino Mocksの他のコードスニペットもあるので、名前を完全に修飾すると、視覚的にグループ化しやすくなります