私有类在c#中不能作为参数

本文关键字:不能 参数 | 更新日期: 2023-09-27 18:12:34

我已经编写了一个玩家类和一个名为Experience的公共类。当我尝试着将玩家关卡从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)'

我可以这样做吗,我只是少了一块拼图,或者这不起作用?我使用这个方法作为我需要在主驱动程序方法中调用的东西。在这个方法中,我创建了一个player类的实例,我打算通过这个实例来增加player level属性。

为什么不工作?

私有类在c#中不能作为参数

你的类必须是公共的:

public class Player
{
 (...)
}

你的类不能比使用它的方法更不可见(内部)(lvplayer方法是公共的),这就是为什么错误告诉你

"游戏。"玩家"比"方法"更容易接近"Game.Experience.LvlPlayer (Game.Player) '