为什么我在这个C#代码中得到“......由于其保护级别而无法访问”编译错误?

时间:2013-06-29 09:46:07

标签: c#

如您所见,所有内容都设置为公开,但编译器说:

  由于其保护级别,

Shooting.inventoryWeapon.inventoryWeapon(Shooting.weapon, int)无法访问。

此代码属于射击类。

public enum weapon{gun,shotgun};

public struct inventoryWeapon{
    weapon current;
    int shotAmmo;
    inventoryWeapon(weapon cur,int shAmmo){
        current=cur;
        shotAmmo=shAmmo;
    }
}

public inventoryWeapon[] Inventory;
int weaponIndex=0;

void Start(){
    Inventory=new inventoryWeapon[10];
    Inventory[weaponIndex]= new inventoryWeapon(weapon.shotgun,30);
}

2 个答案:

答案 0 :(得分:2)

您需要在此处添加public

public inventoryWeapon(weapon cur,int shAmmo){
    current=cur;
    shotAmmo=shAmmo;
}

答案 1 :(得分:0)

即使您已将班级定义为公开

public struct inventoryWeapon{

如果您想将您的班级成员暴露给外界,您必须将您的班级成员定义为公共成员(除非您使用无效)。

public inventoryWeapon(weapon cur,int shAmmo){