Первый параметр метода расширения 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);
}
И в качестве третьего варианта, некоторые вообще не предпочитают идиомы, говоря, что "self" и "@this" не дают никакой информации. Я думаю, что мы все согласны с тем, что иногда есть четкое, осмысленное имя параметра, специфичное для его назначения, которое лучше, чем "self" или "@this" Некоторые идут дальше и говорят, что вы можете всегда придумать более ценное имя. Так что это еще одна правильная точка зрения.
Какие еще идиомы вы видели? Какой стиль вы предпочитаете и почему?