2009-04-11 19 views
2

私はC#とプログラミングの初心者です。私の質問は、別の名前空間にある変数をどのように呼び出すかです。私はこのコード他の名前空間からの変数へのアクセス

public void servicevalues(string _servicename) 
{ 
    string servicename = _servicename; 
    string query = string.Format("SELECT * FROM Win32_Service WHERE Name ='{0}'", servicename); 
    ManagementObjectSearcher moquery = new ManagementObjectSearcher(query); 
    ManagementObjectCollection queryCollection = moquery.Get(); 
    foreach (ManagementObject service in queryCollection) 
    { 
    string serviceId = Convert.ToString(service["DisplayName"]); 
    bool serviceResult = Convert.ToBoolean(service["Started"]); 
    } 

を持っていると私は別の名前空間からの1つのまたは複数の変数の値を呼び出す方法、サービス名を渡すのですか?

+0

あなたの質問をさらに展開して、コードに問題はないようです。 – Samuel

+0

別の名前空間のクラスにアクセスすることを意味しますか?クラスの外に自由に浮動する変数を持つことはできません。 –

答えて

7

通常、変数は名前空間だけには存在せず、別の名前空間に存在する可能性のある別のクラス内に存在します。別のクラスの変数にアクセスする必要がある場合(別の名前空間で)、他のクラスは何らかの形で変数を公開する必要があります。これの一般的なプラクティスは、変数にpublicプロパティ(その変数へのアクセスのみが必要な場合はstatic)を使用することです。

namespace My.Namespace 
{ 
    public class MyClassA 
    { 
     public void MyMethod() 
     { 
      // Use value from MyOtherClass 
      int myValue = My.Other.Namespace.MyOtherClass.MyInt; 
     } 
    } 
} 

namespace My.Other.Namespace 
{ 
    public class MyOtherClass 
    { 
     private static int myInt; 
     public static int MyInt 
     { 
      get {return myInt;} 
      set {myInt = value;} 
     } 

     // Can also do this in C#3.0 
     public static int MyOtherInt {get;set;} 
    } 
} 
3

My.Namespace宣言の上にこれを追加することによって、あなたはまた、ミントプロパティへの呼び出しを短縮することができますアンディの答えに追加するには :

その場合は
using My.Other.Namespace 

そのその後、ミントプロパティにお電話

int MyValue = MyOtherClass.MyInt 
関連する問題