День сто восемнадцатый. #ВопросыНаСобеседовании
Самые часто задаваемые вопросы на собеседовании по C#
8. Можно ли использовать 'this' в статическом методе?
Ключевое слово '
Мы не можем использовать '
Самые часто задаваемые вопросы на собеседовании по C#
8. Можно ли использовать 'this' в статическом методе?
Ключевое слово '
this
' в C# является специальным типом ссылочной переменной, которая неявно определяется в каждом конструкторе и нестатическом методе как первый параметр типа класса, в котором она определена.Мы не можем использовать '
this
' в статическом методе, потому что ключевое слово 'this
' возвращает ссылку на текущий экземпляр класса, который его содержит. Статические методы (или любые статические члены) не принадлежат конкретному экземпляру. Они существуют без создания экземпляра класса и вызываются с именем класса не по экземпляру, поэтому мы не можем использовать это ключевое слово в теле статических методов, но в случае с методами расширения мы можем использовать его как модификатор параметра метода. Следующий код определяет метод расширения для типа string
, который возвращает либо подстроку, либо всю исходную строку, если length больше длины строки (вместо ArgumentOutOfRangeException
):public static string Substr(this string s, int length)Источник: https://www.c-sharpcorner.com
{
if (s.Length >= length)
return s.Substring(0, length);
return s;
}