그래서 모든 항목이 다른 클래스를 상속하는 인벤토리 시스템을 C#으로 만듭니다. 현재 저는 몇 가지 테스트 클래스를 만들고 있는데, 그 중 하나는 Fish입니다. Fish는 Items (최상위 클래스)에서 상속 한 소모품에서 상속합니다. 참고 : 소모품은 기본적으로 스택 가능 항목입니다. 단지 1상속에서 this() 및 base() 사용
그리고 하나 개의 인수, 양 소요 하나에 양을 설정
public Consumable() : base() {
quantity = 1;
}
:
나는 인수가없는 것을, 소모품 클래스에서 하나를이 기본 생성자를 만들려면 :
public Consumable(int Quantity) : this() {
if (quantity <= maxStack)
quantity = Quantity;
else
quantity = maxStack;
}
생성시 수량을 설정하십시오. 지금 나는 위의 코드에서 this()를 사용하여 자식이 자신의 기본 argumentless 생성자를 사용하도록 강요한다고 생각했지만 그럴 것 같지 않습니다.
public Fish() : base() {
name = "fish";
ID = 1;
variant = 0;
maxStack = 20;
desc = "A Fish of some kind";
rarity = ItemRarity.Common;
}
public Fish(int QTY) : base(QTY) { }
는 내가 일이 원하는 것은 내가 그 다음 소모품을 전화 기본 사항을 설정하는 물고기()를 호출 할, 물고기 (INT의 수량)를 호출 할 때입니다 (수량) : 이것은 내가 물고기가 무엇을 수량을 설정할 수도 있습니다. 물고기 (INT의 수량이)라고하지만 현재
은, 그것은 소모품 대신 물고기의 소모품을 (호출 (수량))()
이가 난 방식으로 작동 갈 수있는 방법이 있나요 호출 찾고있어?
가 대신 정적 팩토리 메소드를 사용하여 생각 해 봤나? – Dai
기본 constractor에서 코드를 추출하여 InitDefaults 메서드에 넣고 두 constractors에서 호출 할 수 있습니다 –
정적 팩토리 메서드가 무엇인지 모르겠습니다 – SuperMeip