Могу ли я сделать метод расширения для всех подклассов System.Object
(все)?VB.NET: невозможно использовать метод расширения в экземпляре System.Object
Пример:
<Extension>
Public Function MyExtension(value As Object) As Object
Return value
End Function
Вышеуказанные функции не будут работать, например объекта:
Dim myObj1 As New Object()
Dim myObj2 = myObj1.MyExtension()
компилятор не принимает его, проблема в моем компьютере? :)
ОБНОВЛЕНИЕ
Проблема, кажется, происходит только в VB, где члены объекта смотрели вверх по отражению (late-bound).
UPDATE ПОСЛЕ ОТВЕТИЛ
FYI, так как VB имеет преимущество, что C# не хватает то есть, члены импортируемых модулей импортированы в глобальном масштабе, так что вы все еще можете использовать эти функции без их обертке:
Dim myObj2 = MyExtension(myObj1)
ли проверить вас этот код? Третья строка (someObj) не работает для меня. – Shimmy
Да, это работает для меня. Как вы написали свою версию метода расширения IsIn()? Я отредактировал свое сообщение, чтобы включить мою реализацию, чтобы помочь вам. – mattmc3
Если вы вводили 'someObj' как' Object' в свой код, то это определенно должно * не * работать для вас. –