你使用什么ReSharper 4.0 C#模板?
让我们用以下格式分享这些:
可选说明
快捷方式:快捷方式适用
于: [可用性设置]
// Resharper template code snippet // comes here
宏属性(如果存在):
Macro1 - Value - EditableOccurence
Macro2 - Value - EditableOccurence
请回答一个宏!
以下是NUnit测试夹具和Standalone NUnit测试用例的一些示例,它们以建议的格式描述实时模板.
Sean Kearon.. 30
如此简单,如此有用 - 一点点lambda:
捷径:x
可用:C#,其中允许表达式.
x => x.$END$
宏:没有.
如此简单,如此有用 - 一点点lambda:
捷径:x
可用:C#,其中允许表达式.
x => x.$END$
宏:没有.
实现Joe Duffy的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;
宏属性:
成员 - 建议System.IDisposable的变量 - 可编辑的出现#1
CLASS - 包含类型名称
快捷方式: ntf
可用于: C#2.0+文件,其中允许使用类型成员声明或名称空间声明
[NUnit.Framework.TestFixtureAttribute] public sealed class $TypeToTest$Tests { [NUnit.Framework.TestAttribute] public void $Test$() { var t = new $TypeToTest$() $END$ } }
宏:
TypeToTest - 无 - #2
测试 - 无 - V
如果你使用.Net 4,你可能更喜欢使用string.IsNullOrWhiteSpace().
捷径:偷偷摸摸
可用于:允许表达式的C#2.0+.
string.IsNullOrEmpty($VAR$)
宏属性:
VAR - 建议一个类型为string的变量.Editible = true.
快捷方式: ntc
可用于:允许类型成员声明的C#2.0+文件
[NUnit.Framework.TestAttribute] public void $Test$() { $END$ }
宏:
测试 - 无 - V
为当前类型声明log4net记录器.
快捷方式:日志
可用于:允许类型成员声明的C#2.0+文件
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof($TYPE$));
宏属性:
TYPE - 包含类型名称
新的MS测试单元测试使用AAA语法和单元测试艺术中的命名约定
快捷方式:测试(或tst,或任何你想要的)
可用于:允许类型成员声明的C#2.0+文件
[TestMethod] public void $MethodName$_$StateUnderTest$_$ExpectedBehavior$() { // Arrange $END$ // Act // Assert }
宏属性(如果存在):
MethodName - 要测试的方法的名称
StateUnderTest - 您要测试的州
ExpectedBehavior - 你期望发生什么
快捷方式: ifn适用
于: C#2.0+文件
if (null == $var$) { $END$ }
快捷方式: ifnn适用
于: C#2.0+文件
if (null != $var$) { $END$ }
Assert.AreEqual
用于将断言添加到单元测试的简单模板
快捷方式:ae适用
于:C#2.0+文件中允许使用语句
Assert.AreEqual($expected$, $actual$);$END$
流利版本:
Assert.That($expected$, Is.EqualTo($actual$));$END$
(如果您厌倦了为每个构造函数不断输入长标准摘要,那么它符合StyleCop规则SA1642)
捷径: csum
适用于: C#2.0+
Initializes a new instance of theclass.$END$
宏:
classname - 包含类型名称 - V.
使用不同的变量声明创建lambda表达式以便于嵌套.
捷径: la,lb,lc
可用于:允许表达式或查询子句的C#3.0+文件
la定义为:
x => x.$END$
lb定义为:
y => y.$END$
lc定义为:
z => z.$END$
这与上面的Sean Kearon相似,除了我定义了多个lambda live模板以便于lambdas的嵌套." la "是最常用的,但在处理像这样的表达式时,其他一些很有用:
items.ForEach(x => x.Children.ForEach(y => Console.WriteLine(y.Name)));
在控制台应用程序结束之前暂停用户输入.
捷径:暂停
可用于: C#2.0+文件,其中允许使用语句
System.Console.WriteLine("Pressto 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 - 包含类型名称 - 无可编辑的出现
只是添加到我的单元测试属性的快捷方式.
捷径:ee
可用于:可用于:允许类型成员声明的C#2.0+文件
[ExpectedException(typeof($TYPE$))]
这是我的最爱,因为我经常使用它,它为我做了很多工作.
捷径:npc
可用于:允许表达式的C#2.0+.
if (value != _$LOWEREDMEMBER$) { _$LOWEREDMEMBER$ = value; NotifyPropertyChanged("$MEMBER$"); }
宏:
成员 - 包含成员类型名称.不可编辑.注意:确保此列表中的第一个.
LOWEREDMEMBER - 第一个字符为小写的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)); } }
实际上,我使用的这个版本是基于lambda的('我喜欢我的lambdas!)并产生以下内容.原理与上述相同.
public decimal CircuitConductorLive { get { return _circuitConductorLive; } set { Set(x => x.CircuitConductorLive, ref _circuitConductorLive, value); } }
就在那时,我没有使用非常优雅和有用的PostSharp来完成整个INotifyPropertyChanged的事情.
捷径: fm
可用于: C#2.0+文件,其中允许使用语句
.ForMember(d => d$property$, o => o.MapFrom(s => s$src_property$)) $END$
宏:
property - 可编辑的事件
src_property - 可编辑的事件
注意:
我把lambda"点"留下来让我可以击中.立即获得属性intellisense.需要AutoMapper(http://automapper.codeplex.com/).