gpt4 book ai didi

.net - VB.NET:无法在 System.Object 实例上使用扩展方法

转载 作者:行者123 更新时间:2023-12-03 07:39:34 26 4
gpt4 key购买 nike

我可以为 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 )。

回答后更新
仅供引用,因为 vb 具有 C# 所缺乏的优点,即导入模块的成员被导入到全局范围,因此您仍然可以在没有包装器的情况下使用此函数:

Dim myObj2 = MyExtension(myObj1)

最佳答案

似乎不支持对象上的扩展方法是 VB 中的设计决策。

As a result, the only way we couldprevent extension methods fromcompletely breaking existing latebound code was to prevent them frombeing used on anything typed asobject.

Link

关于.net - VB.NET:无法在 System.Object 实例上使用扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3227888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com