Можно ли сделать Дополнительный Метод Статическим/Общим?

Хорошо, я, вероятно, неправильно понял что-то здесь, но, насколько я вижу...

  • Дополнительный метод должен содержаться в модуле, не классе
  • Вы не можете сделать методы в модулях Статическими/Общими
  • Поэтому Вы не можете использовать дополнительный метод на классе, не инстанцируя его.

Другими словами, Вы не можете сделать дополнительный метод на Строке под названием "MyExtensionMethod" и использование:

String.MyExtensionMethod("String")

Но вместо этого..

Dim test As String
test.MyExtensionMethod("string")

Это корректно? Или есть ли способ, которым я могу заставить дополнительные методы работать статическими методами?

8
задан Bob Tway 21 May 2010 в 09:11
поделиться

1 ответ

Вы правы. Методы расширения могут действовать только на экземпляры типа.

И нет, к сожалению, никакого хитрого способа написать методы расширения, которые действуют на сами типы, ведя себя как статические методы.

10
ответ дан 5 December 2019 в 17:35
поделиться