外部框架有以下類:直通構造
public class Boatmaker
{
}
public class Wood
{
}
public class Axe
{
}
public class Lake
{
}
public class Boat
{
public Boat(Wood wood, Axe axe) {
}
public Boat (Boatmaker maker) {
}
public Boat (Lake lake) {}
}
我需要做很多船子類。對於我的每個子類,我必須假設外部框架可能想要通過上述任何構造函數來實例化它。所以我的子類獲得傳遞構造函數。請注意,他們怎麼也不會走:
public class SmallBoat: Boat
{
public void DoSmallBoatStuff() {
// some code here
}
private void Initialize() {
this.DoSmallBoatStuff();
}
public SmallBoat(Wood wood, Axe axe): base(wood, axe) {
this.Initialize();
}
public SmallBoat (Boatmaker maker): base(maker) {
this.Initialize();
}
public SmallBoat (Lake lake): base(lake) {
this.Initialize();
}
}
public class Canoe: SmallBoat
{
public void DoCanoeStuff() {
// some code here
}
private void Initialize() {
this.DoCanoeStuff();
}
public Canoe(Wood wood, Axe axe): base(wood, axe) {
this.Initialize();
}
public Canoe (Boatmaker maker): base(maker) {
this.Initialize();
}
public Canoe(Lake lake): base(lake) {
this.Initialize();
}
}
我想知道是否有一種方法可以簡化代碼的外觀。構造函數在SmallBoat和Canoe中編寫的唯一區別是SmallBoat或Canoe。其他一切都是一樣的。
所以,如果有一種方法來寫構造函數而不實際在構造函數中使用類的名字,這將有很大的幫助。我可以使用不帶.tt文件的直接複製和粘貼(這對我來說並不真正可行 - 我的大部分工作都不是在Visual Studio中完成的)。有沒有辦法做到這一點?
@William:需要更多的幫助? –