2012-07-24 104 views
3

Visual C# Express成员,我收到以下错误与下面的代码:C#错误:类型“X”已经定义了一个名为“Y”具有相同的参数类型

'Type 'myComponent.SettingsComponent' already defines a member called 'SolveInstance' with the same parameter types'

但我只用SolveInstance那里。我做错了什么,我下次会怎么解决这个问题?

namespace myComponent 
{ 
    public class SettingsComponent : GH_Component 
    { 
     protected override void SolveInstance(IGH_DataAccess DA) 
     { 
     } 

     protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) 
     { 
     } 

     protected override void SolveInstance(IGH_DataAccess DA) 
     { 
      if (m_settings == null) 
      { 
       AddRuntimeMessage(warning, "You must declare some valid settings"); 
       return; 
      } 
      DA.SetData(0, m_settings); 
     } 
    } 
} 
+5

GH_Component.SolveInstance是虚拟/抽象的吗? – Ani 2012-07-24 15:49:55

+1

这是真正的课堂吗?在课堂上是否有部分关键字?你可以放更多的代码? – 2012-07-24 15:53:46

+1

您是否尝试过清洁和重建解决方案? – JMK 2012-07-24 15:55:34

回答

5

它看起来像你的

protected override void SolveInstance(IGH_DataAccess DA) 

两个实例,在你的榜样类,一个用空体和一个与代码。

+0

谢谢@JeffCuscutis我合并了这两个实例,它的工作! – 2012-07-24 23:25:29

2

试着在项目中找到所有SolveInstance的出现。您可能会在.designer.cs文件中找到此方法的另一个定义。它们是自动生成的,有时会造成重复问题。

+1

在这种情况下,上面的'SettingsComponent'不会成为部分类吗? – 2012-07-24 16:00:02

+0

也许它曾经是部分的。我想删除一段导致代码自动生成的代码并不能恢复这种自动生成。但我不是100%肯定的。 – ederbf 2012-07-24 16:05:37

+0

是的,它会是@CameronS。 – Styxxy 2012-07-24 16:05:52

相关问题