这是我的意见 ref
& out
参数会损害代码的可读性。在大多数情况下,可以使用泛型和替换它们来替换它们。可空类型。
当有人试图定义具有ref或out参数的函数时,我想让resharper发出警告。但是,我所能找到的只是一种重构声明使用参数的方法的方法。似乎没有任何现有的检查或方法来编写针对ref& amp;的定制模式。输出参数。
以下是out参数的常见用法:
int i;
if(!int.TryParse(str, out i))
{
i = -1;
}
将其与此相比:
var i = str.TryParse<int>() ?? -1;
TryParse只是字符串的扩展方法。我有一个自定义resharper规则,强调任何ValueType.TryParse()调用。 请注意,现在可以将字符串解析为linq表达式的一部分。
T? TryParse<T>(this string str)
{
//magic
}
答案 0 :(得分:3)
令我惊讶的是,以下自定义模式确实有效:
$type$ $X2$($pb$, ref $pt$ $i$, $pa$)
{
$stmts$;
}
其中
X2是标识符
我是标识符
type是一种对象或派生的
stmts是任意数量的陈述
pt是任何类型的对象或派生的
pa是任意数量的参数
pb是任意数量的参数
这与public int X(ref int y)
以及private int X2(string j, ref int i, DateTime k)
匹配。
我还没有找到匹配void
方法的方法。
这是Visual Studio 2012上的ReSharper 7.1.1。