C#扩展方法的第一个参数是调用扩展方法的实例.我已经采用了一种成语,而不是在其他地方看到它,称这个变量为"自我".如果其他人也在使用它,我也不会感到惊讶.这是一个例子:
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); }
作为第三种选择,有些人根本不喜欢成语,说"自我"和"@this"不提供任何信息.我想我们都同意,有时候参数的名称是明确的,有意义的,特定于其目的,这比"自我"或"@this"更好.有些人进一步说,你总能拿出一个更有价值的名字.所以这是另一个有效的观点.
你看过其他什么成语?你喜欢什么成语,为什么?
根据用途,我相当正常地命名.因此,LINQ运算符的源序列的"源",或者参数/参数检查的扩展的"参数"/"参数"等.
我不认为它必须与"this"或"self"特别相关 - 它不会提供有关参数含义的任何额外信息.当然这是最重要的事情.
编辑:即使在没有很多明显意义的情况下,我也不喜欢一些意义.什么信息由"自我"或"@this"赋予?仅仅是它是扩展方法中的第一个参数 - 并且该参数被装饰的信息已经很明显.在给出/ 选项的示例情况下,我会使用- 它会传达您需要了解的有关参数IMO的所有信息.this
theStringToPrint
self
outputText