我认为ref
&参数会out
损害代码的可读性。在大多数情况下,可以使用泛型和可为空的类型替换它们。
当有人试图定义一个具有 ref 或 out 参数的函数时,我想让 resharper 发出警告。但是,我所能找到的只是一种重构声明为使用 out 参数的方法的方法。似乎没有任何现有的检查或方法来编写针对 ref 和 out 参数的自定义模式。
这是 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
}