0

C#コンソール アプリケーション間の構造が と の間で非常に異なるように見えるのはなぜVB.NETですか?

私はC#しばしば Program クラスのインスタンスを作成します:

namespace ConsoleApplicationX {

    class Program {

        static void Main(string[] args) {

            Program p;
            p = new Program();

        ...
        ...

VB.NET例では、次のようなMainファイルに配置しました。__ZooWork.vb

Module __ZooWork

    Sub Main()

        ...
        ...

C#上記のコードと同等の実装を行うことはできますVB.NETか?

編集

次のことを試しましたが、エラーになります。

ここに画像の説明を入力

さらに編集

いくつかの設定を確認するだけです-これらはそれを解決していないようです!...

ここに画像の説明を入力

4

2 に答える 2

4

これらは、新しいプロジェクトを開始するときに使用できるテンプレートにすぎません。もちろん、両方の言語で同等のコードを書くことができます。

Namespace ConsoleApplicationX

    Class Program

        Shared Sub Main()

            Dim p As New Program()
            ...

        End Sub

    End Class

End Namespace
于 2013-03-11T23:09:50.580 に答える
1

そもそも、エントリ ポイントが存在するタイプのインスタンスを作成するべきではありません。確かにどちらの言語でも可能ですが、どちらの言語でも良い設計ではありません。

Mainメソッドに、それ自体が含まれている型ではなく、他の型のインスタンスを作成Mainさせ、それをプログラム ロジックに使用するだけです。

エラーについては:

プログラム [...] には、エントリ ポイントに適した静的な 'Main' メソッドが含まれていません

これは、Mainメソッドが適切な署名ではないためです。そのはず:

Shared Sub Main()

End Sub

Shared重要です (C# と同等ですstatic。メソッドを呼び出すためにその型のインスタンスが必要ないことを示します。これは、プログラムが実行される前に型のインスタンスを持たないため、エントリ ポイントにとって重要です。始めました。

于 2013-03-12T18:42:05.687 に答える