2013-05-06 43 views
3

我已经写了一个球员类和一个名为经验的公共课。当我试图从1到2的玩家等级,我用这个方法:私有类不能成为C#中的参数吗?

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)'

我可以做这样,我只是错过了一个难题,或者这是行不通的?我正在使用此方法作为我需要在主驱动程序方法中调用的内容。在该方法中,我制作了一个玩家类的实例,并且我打算通过这个方法来增加玩家等级属性。

为什么这不起作用?

+2

什么既是你的'Player' CLAS的访问修饰符不易进入s和字段'Level'?上市?私人的?保护?别的东西? – Porkbutts 2013-05-06 22:41:55

回答

10

你的类必须是公开:

public class Player 
{ 
(...) 
} 

你的类can'be比使用它(LvlPlayer方法是公共的),这是为什么错误告诉方法不太明显(内部)你

'Game.Player' 比法 'Game.Experience.LvlPlayer(Game.Player)'

+0

+1但是请详细一点 – 2013-05-06 22:46:50

+0

做,我希望这是足够多的,因为我不知道如何更好地解释:-) – Fabske 2013-05-06 22:51:49

+0

只要是迂腐......你只能做内部类私有。普通的日常用户只能进入内部..这也比公众不太明显 – aqwert 2013-05-06 23:15:18

相关问题