2

クラス ライブラリに取り組んでいますが、アクセシビリティに問題があります。私のクラス ライブラリには、他のアプリケーションからアクセスしてはならないいくつかの内部クラスが含まれています。代わりに、すべての内部クラスのインスタンスを含むシングルトン メイン クラスを作成して、他のアプリケーションがメイン クラスにアクセスし、そのインスタンスから内部クラスを使用できるようにします。下の図は、階層を説明しています。

ここに画像の説明を入力

Main Class を public に、Internal Classes を internal にしようとしましたが、これによりエラー「Inconsistent accessibility」というエラーが表示されます。私のメインクラスは次のようになります。

public class Main
{
    private static Main Instance;
    public static Main GetInstance()
    {
        if (Instance == null)
            Instance = new Main();
        return Instance;
    }

    public Debugging Debugger = new Debugging();
}

そして、私の内部クラス (デバッグ) の 1 つは次のようになります。

internal class Debugging
{
    Content....
}

したがって、内部クラスをシングルトンのメインクラスからのみアクセスできるようにする方法を誰かが見つけてくれることを願っています。

4

3 に答える 3

0

ライブラリ外の Debugger クラスにアクセスする必要がある場合は、アクセス修飾子を public に変更する必要があります。提案されているように、コンストラクターを内部として作成して、アセンブリの外部の誰もそれらのクラスのインスタンスを作成できないようにします。

于 2013-07-19T10:24:56.177 に答える