2011-07-16 1 views
1

Erreur Get 'ClassLibrary3.Class1.a' est une 'propriété' mais est utilisée comme un 'type' quand je veux accéder à la propriété de la classe de base.ne pouvons-nous pas utiliser la propriété dans la classe dérivée à côté de la méthode?

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; 
     } 
    } 
} 

Répondre

3

Oui; c'est normal. À l'exception des initialiseurs de champ, le code doit être dans une méthode. Ce n'est pas un initialiseur de champ. Affectez a=1; dans le constructeur dérivé ou créez un constructeur surchargé et transmettez 1 au constructeur du type de base.

Donc, soit:

public test() { 
    a = 1; 
} 

Ou:

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

L'erreur est parce que a=1 est pas dans le corps d'une méthode.

0

Si vous voulez un être égale à 1 lorsque vous créez un objet de test, vous devez mettre a = 1 dans un constructeur pour la classe de test.

Questions connexes