我写了这段代码,但是,当我尝试构建时,编译器返回:
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%";
}
}
}
}
我如何解决这个问题,以及为什么会发生这种错误?
由于
答案 0 :(得分:4)
您不能使用相同的名称嵌套两个类。您的内部类DataGridViewPercentageColumn与外部类具有相同的名称。您必须重命名其中一个类,如:
internal class DataGridViewClasses{
public class DataGridViewPercentageColumn : DataGridViewColumn
{
public DataGridViewPercentageColumn() : base(new DataGridViewPercentageCell())
{
}
}
public class DataGridViewPercentageCell : DataGridViewTextBoxCell
{
public DataGridViewPercentageCell()
{
this.Style.Format = "0%";
}
}
}
顺便说一句:你不能在类本身的类中拥有任何其他成员或属性。
答案 1 :(得分:3)
您的包装器类与其中一个内部类具有相同的名称。
问题是DataGridViewPercentageColumn
。
答案 2 :(得分:3)
这里的问题是你已经在另一个类中定义了一个类,这两个类都具有相同的名称。为内部静态类赋予不同的名称。