3

私はプレイヤー クラスと Experience という public クラスを作成しました。プレイヤー レベルを 1 から 2 に変更する場合は、次の方法を使用します。

public static void LvlPlayer(Player player)
{
    if (player.Level != 10)
    {
        ++player.Level;
        player.Attack += 2;
    }
}

これが私に与えるエラーメッセージです:

Error 1 Inconsistent accessibility: parameter type 'Game.Player' is less accessible than method 'Game.Experience.LvlPlayer(Game.Player)'

パズルのピースが欠けているだけですか、それともうまくいきませんか? このメソッドは、メインの Driver Method で呼び出す必要があるものとして使用しています。そのメソッドでは、プレイヤー クラスのインスタンスを作成しました。これを渡して、プレイヤー レベル属性をインクリメントします。

これが機能しないのはなぜですか?

4

1 に答える 1

10

あなたのクラスはパブリックでなければなりません:

public class Player
{
 (...)
}

あなたのクラスは、それを使用するメソッド(LvlPlayerメソッドは公開されています)よりも見えにくい(内部)可能性があります。それがエラーがあなたにそれを伝える理由です

「Game.Player」はメソッド「Game.Experience.LvlPlayer(Game.Player)」よりアクセスしにくい

于 2013-05-06T22:40:52.427 に答える