Я встречал несколько примеров кода на C #, таких как:
public static int Foo(this MyClass arg)
Я не смог найти объяснение, что this
означает ключевое слово в этом случае. Есть идеи?
c#
parameters
this
kpozin
источник
источник
Ответы:
Это метод расширения . Смотрите здесь для объяснения .
это означает, что вы можете позвонить
скорее, чем
Это позволяет создавать плавные интерфейсы, как указано ниже.
источник
Цитируемое сообщение в блоге Скотта Гу хорошо объясняет это.
Для меня ответ на вопрос в следующем утверждении в этом посте:
источник
this
ключевого слова в сигнатуре метода. Другие ответы бесполезно говорят «это метод расширения». Я никогда полностью не понимал, как методы расширения «присоединяются» к типам, которые они расширяют, до прочтения этого ответа. Спасибо!В дополнение к объяснению Прита Сангхи:
Intellisense отображает методы расширения с синей стрелкой (например, перед «Aggregate <>»):
Ты нуждаешься в
чтобы методы расширения появлялись и были доступны, если они находятся в другом пространстве имен, чем код, использующий их.
источник
Это методы расширения . Добро пожаловать в совершенно новый беглый мир . :)
источник
Я только что узнал об этом на днях: ключевое слово this определяет, что метод является расширением класса, который его обрабатывает. Так что для вашего примера MyClass будет иметь новый метод расширения с именем Foo (который не принимает никаких параметров и возвращает int; его можно использовать как с любым другим открытым методом).
источник
«this» расширяет следующий класс в списке параметров
Таким образом, в сигнатуре метода ниже «this» расширяет «String». Строка передается функции как обычный аргумент метода. открытая статическая строка [] SplitCsvLine (эта строка String)
В приведенном выше примере класс «this» расширяет встроенный класс «String».
источник