我的情况类似于以下内容。如何将基础构造函数的参数传递给派生构造函数?
public abstract class Mammal{ public Mammal(name, legs){ ... } }
public class Dog{ public Dog(name, legs) : base (name, legs) { ... } }
我不想总是做Dog dog = new Dog("fido", 4);
我宁愿只是有“腿= 4”中的狗构造,并通过在只有名称。
但是,每当我尝试从构造函数中留下“腿”时,它会告诉我某些字段由于保护级别而无法访问。
我正在使用getters和setters,它们都是公共的。
编辑:这里是原来破类之一 -
public Soil(int idNo, string soilName, string prefabName)
: base(idNo, soilName, price, weight, size, madeOf, prefabName, iconName){
Price = 0;
Capacity = 1;
CanHoldSizes = new ContainerSizes[] {ContainerSizes.seed};
Contents = new Item[Capacity];
}
而不必把所有8个参数在新的土壤()的,我想只是把4这将是不同的每个新的土壤(),并有构造函数将其余设置为默认值。
这就产生错误,如:“'Item.price”不可访问由于其保护级别”
“我正在使用getter和setters,它们都是公开的。” - - 他们在哪? – zerkms