簡體   English   中英

無法從重寫的基類方法返回`this`

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM