你喜欢用什么成语(如果有的话)将"this"参数命名为C#中的扩展方法,为什么?

Cha*_*ers 11 .net c# extension-methods idioms c#-3.0

C#扩展方法的第一个参数是调用扩展方法的实例.我已经采用了一种成语,而不是在其他地方看到它,称这个变量为"自我".如果其他人也在使用它,我也不会感到惊讶.这是一个例子:

public static void Print(this string self)
{
   if(self != null) Console.WriteLine(self);
}
Run Code Online (Sandbox Code Playgroud)

但是,我开始看到其他人将该参数命名为"@this",如下所示:

public static void Print(this string @this)
{
   if(@this != null) Console.WriteLine(@this);
}
Run Code Online (Sandbox Code Playgroud)

作为第三种选择,有些人根本不喜欢成语,说"自我"和"@this"不提供任何信息.我想我们都同意,有时候参数的名称是明确的,有意义的,特定于其目的,这比"自我"或"@this"更好.有些人进一步说,你总能拿出一个更有价值的名字.所以这是另一个有效的观点.

你看过其他什么成语?你喜欢什么成语,为什么?

Jon*_*eet 16

根据用途,我相当正常地命名.因此,LINQ运算符的源序列的"源",或者参数/参数检查的扩展的"参数"/"参数"等.

我不认为它必须与"this"或"self"特别相关 - 它不会提供有关参数含义的任何额外信息.当然这是最重要的事情.

编辑:即使在没有很多明显意义的情况下,我也不喜欢一些意义.什么信息由"自我"或"@this"赋予?仅仅是它是扩展方法中的第一个参数 - 并且该参数被装饰的信息已经很明显.在给出/ 选项的示例情况下,我会使用- 它会传达您需要了解的有关参数IMO的所有信息.thistheStringToPrintselfoutputText


Jos*_*rke 3

我见过使用 obj 和 val 。我不喜欢这个。我们应该尽量避免使用关键字。我从未见过自己,但我喜欢它。