C# 扩展方法的第一个参数是调用扩展方法的实例。我采用了一个成语,在其他地方没有看到它,称该变量为“self”。如果其他人也在使用它,我一点也不会感到惊讶。这是一个例子:
public static void Print(this string self)
{
if(self != null) Console.WriteLine(self);
}
但是,我开始看到其他人将该参数命名为“@this”,如下所示:
public static void Print(this string @this)
{
if(@this != null) Console.WriteLine(@this);
}
作为第三种选择,有些人根本不喜欢任何成语,说“self”和“@this”不提供任何信息。我想我们都同意,有时参数有一个清晰、有意义的名称,具体到它的目的,这比“self”或“@this”更好。有些人更进一步说您总是可以想出一个更有值(value)的名字。所以这是另一个有效的观点。
你还见过哪些成语?您更喜欢哪种成语,为什么?
最佳答案
根据用途,我很正常地命名它。因此,“source”表示 LINQ 运算符的源序列,或者“argument”/“parameter”表示执行参数/参数检查等的扩展。
我不认为它必须与“this”或“self”特别相关 - 它不会提供有关参数含义的任何额外信息。这当然是最重要的事情。
编辑:即使在没有太多明显意义的情况下,我也更喜欢一些意义而不是没有。 “self”或“@this”提供了什么信息?仅仅是它是扩展方法中的第一个参数——而且该信息已经很明显了,因为该参数是用 this
修饰的。在给出 theStringToPrint
/self
选项的示例中,我将使用 outputText
代替 - 它传达了您需要了解的有关参数的所有信息, 国际海事组织。
关于c# - 在将 "this"参数命名为 C# 中的扩展方法时,您更喜欢哪种成语(如果有),为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/716609/