2

私はこれに対する答えを求めてここや他の場所で検索してきましたが、正確な答えは見つかりませんでした.

私はC#にかなり慣れていません。VB.NET では、いくつかの制限といくつかの利点を持つ、クラスのようなモジュールを定義できます。その大きな利点の 1 つは、名前空間をインポートした場合 (つまり、C# で "使用する")、すべてのメンバーにグローバルにアクセスできることです。例えば:

Private Sub Test()
    MsgBox(Now)
End Sub

上記のメソッドで、MsgBox は Microsoft.VisualBasic.Interaction モジュールのメソッドであり、Now は Microsoft.VisualBasic.DateAndTime モジュールのプロパティです。それらを使用するために、それらのいずれかへの呼び出しを修飾する必要はありませんが、次のことができます。

Private Sub Test()
    Microsoft.VisualBasic.Interaction.MsgBox(Microsoft.VisualBasic.DateAndTime.Now)
End Sub

私は、ユーティリティ メソッドとプロパティを使用して独自のモジュールを構築することにより、自分のプロジェクトでこの機能を常に使用しています。とても、とても便利です。C#に同等のものはありますか?

4

1 に答える 1

10

VB.NET のモジュールは、C#の静的クラスとまったく同じです。唯一の違いは、VB.NET コンパイラがデフォルトでグローバル名前空間のモジュール内に宣言を配置することです。これは、C# チームが好まない方法です。正当な理由により、コードの残りの部分で静的クラスのメンバーを参照するときにクラス名を使用する必要があります。つまり、Pi だけでなく、Math.Pi を使用する必要があります。

このようにする必要はありません。モジュールを名前空間に配置できます。

Namespace Contoso.Foobar
    Module MyModule
        '' etc..
    End Module
End Namespace

今は同じです。

于 2013-09-27T17:52:21.967 に答える