C#错误,同名成员

时间:2013-06-24 12:18:02

标签: 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%";
            }
        }
    }
}

我如何解决这个问题,以及为什么会发生这种错误?

由于

3 个答案:

答案 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)

这里的问题是你已经在另一个类中定义了一个类,这两个类都具有相同的名称。为内部静态类赋予不同的名称。