我对Visual Basic没什么经验。
我想为System.Console类添加一些方法,用于我正在制作的简单控制台应用程序。我知道将extension methods添加到课堂的方法。我尝试过这段代码,但它给出了错误:对非共享成员的引用需要一个对象引用。
Imports System.Runtime.CompilerServices
Module Module1
<Extension()>
Public Sub WriteStuff(ByRef Console As System.Console, ByVal Output As String)
Console.Write(Output & "?")
End Sub
Sub Main()
Console.WriteStuff("Hello")
Console.ReadKey()
End Sub
End Module
答案 0 :(得分:1)
扩展方法是实例方法;它们不能静态应用。 System.Console
是一个类,而不是一个对象,ReadKey()
之类的方法是静态的。不允许使用静态扩展方法。
看看你的签名:
Public Sub WriteStuff(ByRef Console As System.Console, ...
通过引用来获取类标识符是没有意义的(对于那个问题)(或根本没有)?