[英]Inherit from a base class and provide the inheritance type to overridden method
[英]Cannot return `this` from overridden base class method
即使簽名都適當,我也無法從具體的方法實現中返回this
。 這里的想法是擁有一個流暢的生成器,因此子類BuildNewCar()
需要返回子類類型SimpleCarBuilder
。
public class Car {}
abstract class BaseCarBuilder
{
public abstract T BuildNewCar<T>();
}
class SimpleCarBuilder : BaseCarBuilder
{
Car _car;
public override SimpleCarBuilder BuildNewCar<SimpleCarBuilder>()
{
_car = new Car();
return this;
}
}
我不斷得到:
無法將類型'SimpleCarBuilder'隱式轉換為'SimpleCarBuilder'
編譯器將SimpleCarBuilder視為通用類型的名稱,而不是要使用的實際類型。 它不能將實際類型SimpleCarBuilder轉換為名為SimpleCarBuilder的通用類型參數,該參數實際上可以表示任何類型。
如果您使用實現抽象類功能,則會看到編譯器使用T作為通用類型參數名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.