2010-11-01 4 views
0

ok cela peut sembler un peu fou, mais j'ai classe A et une fonction, renvoie une instance de A, également appelé A() et je faut accéder à un champ statique de la classe A.accéder à un champ statique d'un type de résultat de fonction qui a le même nom avec le type

public class A 
    { 
    public static int Num = 1; 

    } 

class Program 
    { 

    public A A() 
    { 
     Console.WriteLine(A.Num); // Error points here. A.Num. 
     return new A(); 
    } 
    } 

et je reçois

« programme.Un() » est une « méthode », qui est pas valable dans le contexte donné

quelle est la solution?
merci.

+0

changement le nom de la méthode A() à B() –

Répondre

0

utiliser le namesapce à la place

namesapce test { 
     public class A 
     { 
      public static int Num = 1; 

     } 

     class Programs:A 
     { 

      public A A() 
      { 
       Console.WriteLine(test.A.Num); 
       return new A(); 
      } 
     } 
} 
1

Eh bien, vous pouvez spécifier l'espace de noms:

Console.WriteLine(Foo.Bar.A.Num); 

S'il n'y a aucun espace de noms, utilisez l'alias espace de nommage global:

Console.WriteLine(global::A.Num); 
Questions connexes