Доступ к переменным из других пространств имен - PullRequest
7 голосов
/ 12 апреля 2009

Я новичок в 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"]);
  }

и я передаю имя службы, как бы я назвал одно или несколько значений переменных из другого пространства имен?

Ответы [ 2 ]

11 голосов
/ 12 апреля 2009

Обычно переменные не живут только в пространстве имен, они живут внутри другого класса, который может находиться в другом пространстве имен. Если вам нужен доступ к переменной в другом классе (в другом пространстве имен), ваш другой класс должен каким-то образом выставить переменную. Обычной практикой для этого является использование открытого свойства (статического, если вам нужен только доступ к этой переменной) для переменной.

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;}
    }
}
4 голосов
/ 12 апреля 2009

Чтобы добавить ответ Энди, вы также можете сократить вызов свойства MyInt, добавив его выше объявления My.Namespace:

using My.Other.Namespace

Если вы сделаете это, то ваш вызов свойства MyInt будет выглядеть так:

int MyValue = MyOtherClass.MyInt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...