12

以下のコードがあり、いくつかの継承の練習をしようとしていますが、このコードを実行しようとするとエラーが発生します:

Inconsistent Accessability: Base Class is less accessible than class

コード:

class Program
{
    static void Main()
    {

        FoodProducts Test = new FoodProducts();

        Test.Limit();



    }
}

public class FoodProducts : Products
{
    public void FoodProduct()
    {
        Console.WriteLine("This is food product");
    }

    public void Limit()
    {
        Console.WriteLine("This is an Attribute of a Product");
    }

}

誰かが私を助けることができますか?

4

10 に答える 10

21

エラーは何行にあり、特定のエラーテキストは何ですか?また、?の定義はどこにありProductsますか?

あなたはおそらくCS0060を取得しています: "一貫性のないアクセシビリティ:基本クラス'class1'はクラス'class2'よりもアクセスしにくい"したがって、あなたのProductsクラスはとしてマークされていないと思いますpublic

publicこの問題は、基本クラスが(internalたとえば)以外のものとしてマークされているが、public派生クラスを作成しようとした場合に発生します。

于 2012-08-27T02:52:43.617 に答える
17

私のような太い人のための将来の参考のために、私はこれを次の状況で取得し、何が問題なのかを理解できませんでした:

public class Foo : Base<Bar> {} <-- Inconsistent accessibility

public class Base<T> {}

犯人がここにいることを理解するのにしばらく時間がかかりました:

internal class Bar {}
于 2016-08-16T13:11:05.923 に答える
4

おそらくクラスProductsは公開されていません。クラス定義に追加publicします。Products

あなたが次のようなものを持っている場合:

class Products {
 ...
}

C#コンパイラは、Productsクラスを内部として解釈します。

于 2012-08-27T02:52:33.087 に答える
3

public継承しようとしているクラスにディレクティブを追加します。

于 2012-08-27T02:57:38.107 に答える
0
public class Products

継承またはアクセスできるようにするには、クラスをパブリックにします (上記のように)。

于 2013-07-18T10:44:45.477 に答える
-1

これは、たとえば、基本クラスがプライベートで、派生クラスがパブリックである場合に発生します。いわば矛盾。

于 2012-08-27T03:34:36.247 に答える
-1

これは、パブリックの子クラスが必要な場合は、親クラスもパブリックにする必要があることを意味します。

于 2014-10-28T08:08:37.827 に答える
-1

この問題の考えられる理由の 1 つは、メイン クラスが複数ある場合、メイン クラスが 1 つだけであることを確認してください。

于 2017-09-19T08:46:38.470 に答える