2013-06-24 60 views
-1

我所著的代码,但是,当我尝试建立,编译器返回:C#错误,成员具有相同名称的

1>code.cs(16,16,16,44): error CS0542: 'DataGridViewPercentageColumn': member names cannot be the same as their enclosing type 


using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Data; 
using System.Drawing; 
using System.Diagnostics; 
using System.Windows.Forms; 
using System.Linq; 
using System.Xml.Linq; 

namespace TestSample 
{ 
    internal static class DataGridViewPercentageColumn 
    { 
     public class DataGridViewPercentageColumn : DataGridViewColumn 
     { 
      public DataGridViewPercentageColumn() : base(new DataGridViewPercentageCell()) 
      { 
      } 
     } 

     public class DataGridViewPercentageCell : DataGridViewTextBoxCell 
     { 
      public DataGridViewPercentageCell() 
      { 
       this.Style.Format = "0%"; 
      } 
     } 
    } 
} 

我怎样才能解决这个问题,并且,为什么这个错误发生?

谢谢

+6

内部类DataGridViewPercentageColumn具有与外部类相同的名称。 – manji

+0

否... o.O,没有另一个同名的类 – Alexandre

+0

'内部静态类DataGridViewPercentageColumn'与'public class DataGridViewPercentageColumn'具有相同的名称。 – jnovacho

回答

4

不能嵌套具有相同名称的两个类。您的内部类DataGridViewPercentageColumn具有与外部类相同的名称。你必须重命名这样的类中的一个:

internal class DataGridViewClasses{ 
    public class DataGridViewPercentageColumn : DataGridViewColumn 
    { 
     public DataGridViewPercentageColumn() : base(new DataGridViewPercentageCell()) 
     { 
     } 
    } 

    public class DataGridViewPercentageCell : DataGridViewTextBoxCell 
    { 
     public DataGridViewPercentageCell() 
     { 
      this.Style.Format = "0%"; 
     } 
    } 
} 

顺便说一句:你不能有任何其他成员或属性命名,如类本身类中。

3

您的包装类与其中一个内部类具有相同的名称。

问题是DataGridViewPercentageColumn

3

这里的问题是你已经在另一个类中定义了一个类,它们都具有相同的名字。给内部静态类一个不同的名字。

相关问题