Я недавно начал использовать методы расширения C #. Примеры SO и документация предполагают, что они используются только для методов экземпляра (то есть с ключевым словом this
). Можно ли использовать их (или другой подход) со статическими / классовыми методами?
(Мое конкретное требование - преобразование кода Java в C #, где «большая часть кода» не нуждается в редактировании. Методы экземпляра Java (например, Java String.indexOf()
) могут быть направлены через метод расширения, вызывающий C # string.IndexOf()
). Я хотел бы сделать то же самое для, скажем, Java Math.abs()
=> C # Math.Abs()
).
РЕЗЮМЕ Нет. Ответы показывают, что это было бы разумно, но вряд ли это произойдет в ближайшее время. Обходные пути потребуют редактирования с созданием новых классов или чего-то подобного и могут не стоить этого.