该类型已包含定义

时间:2015-05-07 15:17:49

标签: c#

我在这个程序中遇到了问题,

namespace WorkingWithXML
{
    public class information
    {
        private string Data1;
        private string Data2;
        private string Data3;

        public string Data1
        {
            get { return Data1; }
            set { Data1 = value; }
        }
        public string Data2
        {
            get { return Data2; }
            set { Data2 = value; }
        }
        public string Data3
        {
            get { return Data3; }
            set { Data3 = value; }
        }
    }
}
  

类型' WorkingWithXML.information'已包含' data1'

的定义

任何人都可以猜到错误 感谢..!

3 个答案:

答案 0 :(得分:1)

对同一个类中的字段和属性使用相同的名称 - 两个Data1, Data2 Data3。这是不允许的。

我建议您将字段名称转换为data1,data2,data3

答案 1 :(得分:0)

您有一个字段和一个同名的属性。在这样的二传手上:

set { Data1 = value; }

编译器无法判断您是否引用了成员变量或属性(这将是一个递归集并导致堆栈溢出异常)。

通常的方法是以不同方式命名成员变量。例如,_Data1m_Data1,例如。

答案 2 :(得分:0)

你在实现属性上犯了错误,你应该使用backfields 或重写为自动属性

namespace WorkingWithXML
{
    public class information
    {
        public string Data1 { get; set; }
        public string Data2 { get; set; }
        public string Data3 { get; set; }
    }
}