Ссылочная переменная из другого метода, класса, файла

c#

118 просмотра

4 ответа

6 Репутация автора

Мне нужно сослаться на значение переменной в другом методе, классе и файле, отличном от того, в котором я сейчас нахожусь. Я новичок в C # и все еще пытаюсь получить эти понятия.

Базовая структура у меня есть:

namespace Planning
{
    public class Service
    {
        public bool AddRoute(l, m, n)
        { 
            bool variable = xyz;
        }
    }
}

И мне нужно получить доступ к этой переменной из совершенно другого файла. Я посмотрел на несколько вопросов, уже размещенных здесь, но ни один из них не касается точного уровня, к которому я пытаюсь получить доступ, или как получить доступ к переменной из метода с параметрами, к которым я не могу получить доступ в то время.

Автор: Shannon Morris Источник Размещён: 30.07.2015 09:24

Ответы (4)


0 плюса

4503 Репутация автора

Разве это не может быть сделано с государственной собственностью?

public class Service
{
    public bool MyVariable { get; set; }
    public bool AddRoute(l, m, n)
    {
        MyVariable = xyz;
    }
}  
Автор: Adam V Размещён: 30.07.2015 09:29

0 плюса

33481 Репутация автора

Короткий ответ: вы не можете, точка.

Что вы можете сделать, это установить publicпеременную-член:

namespace Planning
{
    public class Service
    {
        public bool variable;

        public bool AddRoute(l, m, n)
        { 
            variable = xyz;
        }
    }
}

Но публичные переменные-члены осуждаются по уважительной причине.

Еще лучше, добавьте свойство только для чтения, которое возвращает значение закрытой переменной-члена:

namespace Planning
{
    public class Service
    {
        private bool variable;

        public bool Variable
        {
          get 
          {
            return variable;
          }
        }

        public bool AddRoute(l, m, n)
        { 
            variable = xyz;
        }
    }
}

Тогда из других мест:

Planning.Service myObj = new Planning.Service();
myObj.AddRoute(1,2,3);

if (myObj.Variable)
{
  // ...
}
Автор: Paul Roub Размещён: 30.07.2015 09:29

1 плюс

468 Репутация автора

Надеюсь, я не буду вас смущать еще больше.

«Переменная в другом классе» должна быть свойством этого класса. Вы должны убедиться, что он общедоступен, а затем вам нужен AddRouteметод, чтобы получить экземпляр этого класса с этим набором свойств. Затем вы можете получить доступ к значению свойства, используя что-то вроде otherClassInstance.xyz.

Если вышесказанное смущает вас, я предлагаю начать с самого начала, изучая объектно-ориентированное программирование, прежде чем пытаться вообще писать код.

Автор: Yoad Snapir Размещён: 30.07.2015 09:30

0 плюса

3550 Репутация автора

В вашем случае вы можете установить эту переменную в качестве возвращаемого параметра вашего метода:

namespace Planning
{
    public class Service
    {
        public bool AddRoute()
        { 
            bool variable = true;
            return variable;
        }
    }
}

Звонок из другого класса:

namespace Planning
{
    public class AnotherClass
    {
        public void DoSomething()
        {
            Service service = new Service();
            bool otherVariable = service.AddRoute();
        }
    }
}

Теперь значение вашей переменной из метода AddRoute находится внутри otherVariable в другом классе.

Автор: msmolcic Размещён: 30.07.2015 09:31
Вопросы из категории :
32x32