C# - 无法使用覆盖方法传递出去

时间:2015-06-22 15:11:17

标签: c# override out

我的方法与下面的示例非常相似,它不会让out成为outItem

    public override bool myMethod(string item, out string outItem)
    {
        outItem = "";
        return true;
    }

它不断发出以下错误:

  

“找不到合适的方法来覆盖”

如果删除override,则错误消失。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

基类中的方法似乎不会将该参数标记为out。您需要符合基类的签名。如果您可以更改基类以将方法标记为out,那么您也可以在派生类型上将其标记为。如果你不能,那么你将无法覆盖该方法,你将不得不创建一个新的方法。

答案 1 :(得分:4)

听起来myMethod的基类签名不会将out用于第二个参数。您不能只是添加它,因为它会更改方法签名。如果您可以控制基类,则可以添加它,但如果不是,则需要删除覆盖。