0

実行のエントリ ポイントが Main() であるため、少なくとも 1 つのクラスに Main メソッドを含める必要があることを読みました。以下のコードを見てみましょう。

using System;
namespace consoleApplication
{
    class sample
    {
        public static void Main()
        {
            Console.WriteLine("Demo program");
            Console.ReadKey();
        }
    }
}

クラス内の静的メソッドは、クラス名にドット演算子を使用して呼び出すことができます。Main() を次のように呼び出すことができますか

sample.Main();

私たちが呼ぶように

Console.WriteLine();

同じものを使用していなくても、構文的に正しいかどうか教えてください。

4

1 に答える 1

4

デフォルトでは、クラスとMain()メソッドはプライベート メンバーとして作成されます。絶対に必要な場合は、それらをパブリック メンバーにしてから、別のプロジェクトから呼び出すことができます。

namespace ConsoleApplication1
{
    public class sample
    {
        public static void Main()
        {
            Console.WriteLine("My Output...");
            Console.ReadKey();
        }
    }
}

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            sample.Main();
        }
    }
}

出力: 「私の出力...」

ただし、なぜこれが必要なのかわかりません。これが、ライブラリが作成される目的です。代わりに、クラス ライブラリを作成し、その中に静的クラス/メソッドを作成します。

Main()メソッドは、コンソール アプリケーションのエントリ ポイントにすぎません。すべてのアプリケーションにはエントリ ポイントがあります。Main()いくつかのアプリケーション プロジェクトを作成し、他のプロジェクトからメソッドを呼び出すようなユース ケースは考えられません。代わりに、アプリケーションではなくライブラリとして使用される新しいプロジェクトを作成します。これがクラス ライブラリの目的です。

最後の質問に対する答えですが、これは構文的に正しいですか? はい。繰り返しますが、これは良い習慣ではないことを強調します。MSDNから「メインは静的でなければならず、パブリックであってはなりません。」それができるからといって、そうすべきだという意味ではありません。

于 2012-07-24T19:18:57.210 に答える