2009-11-29 7 views
1

Im essayant de comprendre les propriétés get et set pour les champs, et de courir dans ce problème, peut-on m'expliquer pourquoi j'ai dû faire le champ int X statique pour que cela fonctionne?Les champs statiques question

using System; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     public static int X = 30; 
     public static void Main() 
     { 
      var cX = new testme(); 
      cX.intX = 12; 
      Console.WriteLine(cX.intX); 
      cX.intX = X; 
      Console.WriteLine(cX.intX); 
      Console.ReadKey(); 
     } 
    } 
    class testme 
    { 
     public int intX 
     { 
      get; 
      set; 
     } 
    } 
} 

Répondre

4

Parce que vous utilisiez le champ dans un contexte statique, dans ce cas, la méthode publicstaticvoid Main. Puisque votre classe Program fonctionne simplement de manière statique, il n'y a pas d'instance et par conséquent vous ne pouvez accéder à aucun membre d'instance.

+0

ah oki je l'obtiens, merci pour l'explication – Darkmage

0

parce qu'il est utilisé dans une méthode statique

0

Depuis Main est statique, vous ne pouvez pas accéder à des instances non statiques à l'extérieur de celui-ci.

+0

Bien sûr que vous pouvez. L'accessibilité et la stabilité n'ont rien à voir l'une avec l'autre. –

Questions connexes