Да и нет. Короткий взгляд на документацию делает это ОЧЕНЬ ясным.
По определению, первым параметром метода расширения является указатель на объект, из которого был вызван / присоединен метод, и на самом деле это переменная, на которую ссылается ключевое слово this, но со своим собственным именем:
http://msdn.microsoft.com/en-us/library/bb383977.aspx
namespace ExtensionMethods
{
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
}
Это делает довольно простым, что там есть "это", называемое "str". Таким образом, вы не можете использовать «this» (поскольку это будет указывать на несуществующий экземпляр класса, для которого определен метод расширения), но вы можете объявить свою собственную переменную замены, указывающую на объект, к которому присоединен метод расширения.