1

インターフェイスに関して、次のコード サンプルを見つけました。このクラスがメイン メソッド内で独自のオブジェクトをインスタンス化するのはなぜですか? それは C# と Java で有効な理論またはコード規則ですか? (コンパイラは文句を言いませんでした..しかし、私は興味があります)

using System;

interface IParentInterface
{
    void ParentInterfaceMethod();
}

interface IMyInterface : IParentInterface
{
    void MethodToImplement();
}

class InterfaceImplementer : IMyInterface
{
    static void Main()
    {
        InterfaceImplementer iImp = new InterfaceImplementer();
        iImp.MethodToImplement();
        iImp.ParentInterfaceMethod();
    }

    public void MethodToImplement()
    {
        Console.WriteLine("MethodToImplement() called.");
    }

    public void ParentInterfaceMethod()
    {
        Console.WriteLine("ParentInterfaceMethod() called.");
    }
}  
4

2 に答える 2

2

メソッド「main」は静的であるため、InterfaceImplementer インスタンスを参照しません。インスタンス メソッドを呼び出すには、インスタンスを作成する必要があります。

「main」と呼ばれる静的メソッドは、私の知る限り、既知の規則ではありません。

これがシングルトンを持つ試みである場合は、メイン メソッドを静的コンストラクターに置き換え、プライベート InterfaceImplementer 変数でサポートする必要があります。

2 つのメソッドを呼び出すメソッドに "Main" という名前を付けるのは、適切な名前の選択ではないようです。

編集してコメントに答える

シングルトンパターンを完全に理解するには、これを読むことを強くお勧めします

「Main」という名前のメソッドは、呼び出し元がメソッドの動作を理解するのに役立ちません。「実行」、「初期化」、「呼び出し」を選択します。

于 2013-02-15T12:02:56.537 に答える
1

おそらくそれはチュートリアルからのものでした。

Mainコードは、プログラムの実行が開始される場所である静的メソッドが必要なコンソール アプリケーションとして実行されることになっていました。

したがって、そのクラスでプログラムを実行すると、2 つのメソッドがテストされます。
このクラスは、それ自身が静的クラスではないため、メイン メソッドでその自己のインスタンスを作成します。

通常の場合と同様に、メソッドに別programのクラスがあれば、混乱は少なくなります。static main

于 2013-02-15T12:00:11.860 に答える