0

このクラスがあり、すべてのメソッドが適切に実装されているとしましょう(この場合、実装は質問とは無関係だと思います)。

static class ZedGraphHelper
{
    public static ZedGraph.ZedGraphControl GetZedGraph(Guid config, Guid equip)
    { throw new NotImplementedException; }

    //This method here is the faulty one
    public static void AdjustGraphParam(ZedGraph.ZedGraphControl zGraph, RP.mgrRPconfigGraph mgr)
    { throw new NotImplementedException; }

    public static void FillGraph(ZedGraph.ZedGraphControl zGraph, Guid config, Guid equip, Guid form)
    { throw new NotImplementedException; }

    public static void FillGraph(ZedGraph.ZedGraphControl zGraph,  Shadow.dsEssais.FMdocDataTable dtDoc, Shadow.dsEssais.FMchampFormDataTable dtChamp)
    { throw new NotImplementedException; }

    public static void LoadDoc(Shadow.dsEssais.FMdocDataTable dtDoc, Guid equip, Guid form)
    { throw new NotImplementedException; }

    public static double LoadDonnee(Guid champ, Guid doc)
    { throw new NotImplementedException; }

    public static SqlDataReader ReadDonnee(Guid champ, Guid doc)
    { throw new NotImplementedException; }
}

このコードは正常にコンパイルされ、エラーは設定されません。クラス宣言を

static class ZedGraphHelper

public static class ZedGraphHelper

次のエラー メッセージが表示されました。Inconsistent accessibility: parameter type 'RP.mgrRPconfigGraph' is less accessible than method 'Shadow.ZedGraphHelper.AdjustGraphParam(ZedGraph.ZedGraphControl, RP.mgrRPconfigGraph)'このメソッドは、ここに含めたクラス宣言に存在します。方法はpublic static void.

このエラーが発生するのはなぜですか? また、コードの動作に一般の人が何か変更を加えていますか?

4

2 に答える 2

2

はいRP.mgrRPconfigGraphは内部型です(またはそれよりもアクセスしにくいです)。したがって、変更ZedGraphHelperするpublicと、そのメソッドが public として公開され、すべて としてマークされpublicます。AdjustGraphParamパラメータがinternal type

メソッドを内部にするか

internal static void AdjustGraphParam(ZedGraph.ZedGraphControl zGraph, RP.mgrRPconfigGraph mgr)
{ throw new NotImplementedException; }

RP.mgrRPconfigGraphまたは、タイプをパブリックとしてマークします

于 2013-09-19T11:31:47.777 に答える
0

クラスのデフォルトのアクセス修飾子はinternal. これは、アクセス修飾子を省略した場合、クラスが internal になることを意味します。

クラスをパブリックに変更すると、クラスに存在するメソッドのパラメーターの 1 つが内部型であるため、このエラーが発生します。

これは、クラスよりもアクセスしにくい内部型に依存しているため、クラスを公開できないことを意味します。(内部型は、それが宣言されているアセンブリでのみ使用できますが、パブリック クラスはどこでも使用できます)。

于 2013-09-19T11:33:40.217 に答える