【问题标题】:Overriding method in a different namespace C#在不同的命名空间 C# 中覆盖方法
【发布时间】:2014-06-14 00:36:56
【问题描述】:

我在不同的项目中有两个课程。

第一个名为 GeneralConcept 的名称位于命名空间 I.am.here 中,并有一个名为 DoSomethingprotected virtual 方法。

第二个名为SpecificInstanceOfConcept,位于命名空间I.am.in.a.different.place,继承自GeneralConcept

我正在尝试覆盖该方法。具有相同的名称、相同的输入、相同的类型并从实现该方法的类继承。然而,
我一直收到错误提示

没有合适的方法覆盖

它的设置方式是这样的,

namespace I.am.here  
{ 
    public class GeneralConcept        
    {
        //stuff
        protected virtual MyType DoSomething(Inputs input)
        {
             //more stuff
        }
    }
}


namespace I.am.in.a.different.place  
{ 
   public class SpecificInstanceOfConcept : I.am.here.GeneralConcept
    {
        //yet more stuff
        protected override MyType DoSomething(Inputs input)
        {
             //even more stuff
        }
    }
}

感谢您的帮助。

【问题讨论】:

  • 如果您能提供一个简短但完整的问题示例,将会有所帮助。

标签: c# inheritance namespaces polymorphism overriding


【解决方案1】:

跨命名空间覆盖应该不是问题。该错误表示以下情况之一:

  • I.am.here.GeneralConcept.DoSomething 未标记为 virtualabstractoverride
  • I.am.here.GeneralConcept.DoSomething 不是 publicprotected
  • I.am.here.GeneralConcept.DoSomething 的输入(或输出)类型与您的覆盖不同。

【讨论】:

  • ...friggen 输入!它们有完全相同的文本。但是,类型是不同的,因为在一个命名空间中,类型类也被覆盖了。我正要回答,当然输入是一样的,在我看的时候打我。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-08
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多