2011-07-16 60 views
1

获取错误'ClassLibrary3.Class1.a'是一个'属性',但当我想要访问基类的属性时,它就像'类型'一样使用。我们不能在派生类中使用属​​性方法吗?

namespace ClassLibrary3 
    { 
     public class Class1 
     { 
      public int a { get; set; } 
      public int A { get; set; } 
     } 

    public class test : Class1 
    { 
     a=1; // error 'ClassLibrary3.Class1.a' is a 'property' but is used like a 'type' 
     public void hello() 
     { 
      a = 10; 
     } 
    } 
} 

回答

3

是;这是正常的。除字段初始值设定项外,代码必须位于方法中。这不是字段初始值设定项。

要么在派生构造函数中指定a=1;,要么创建一个重载构造函数并将1传递给基类型的构造函数。

因此,要么:

public test() { 
    a = 1; 
} 

或者:

protected Class1(int a) { 
    this.a = a; 
} 
... 
public test() : base(1) 
{} 
2

错误是因为a=1不在方法的主体中。

0

如果你想,当你创建一个测试对象为等于1,那么你应该把A = 1到构造为测试类。