0

VisualBasicの使用経験はほとんどありません。

作成している単純なコンソールアプリケーションのSystem.Consoleクラスにいくつかのメソッドを追加したいと思います。クラスに拡張メソッドを追加する方法を知っています。このコードを試しましたが、エラーが発生します。非共有メンバーへの参照にはオブジェクト参照が必要です。

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
4

1 に答える 1

1

拡張メソッドはインスタンスメソッドです。静的に適用することはできません。 System.Consoleはオブジェクトではなくクラスであり、のようなメソッドReadKey()は静的です。静的拡張メソッドは許可されていません。

あなたの署名を見てください:

Public Sub WriteStuff(ByRef Console As System.Console, ...

参照によってクラス識別子を取得することは意味がありませんよね(またはそのことについてはまったく)?

于 2012-09-20T03:53:05.540 に答える