2016-06-07 2 views
1

Я хотел бы знать, как получить доступ к публичному var в классе консольного приложения Program.Как получить доступ к переменной в классе программы (консольное приложение)

class Program 
{ 
     public static string Name { get; set; } 

     static void Main(string[] args) 
     { 
      // Some code here  
     } 
} 

static class Settings 
{ 
     static public void DoJob() 
     { 
      // Access Name of Program ? 
     } 
} 
+1

'Program.Name', но что-то говорит, что вы не задаете правильный вопрос. – sstan

+0

@sstan Да, я задаю именно этот вопрос. Создаем ли мы экземпляр программы? Или он будет работать, как вы сказали? –

+1

'Name' является' static', поэтому для доступа к нему не требуется экземпляр. Но статическое свойство, как у вас есть, не кажется правильным, конструктивным. Думаю, нам нужно было бы лучше понять, что вы пытаетесь сделать. – sstan

ответ

1

Конечно, вы можете сделать это, Но args является массив строк и свойство Name строковая переменная, поэтому вам нужно присвоить одно значение из аргументов в имени. Или используйте String.Join, чтобы получить все значения до Name с разделителем.

Поскольку имя является статической переменной, для доступа к переменной не требуется экземпляр. Вы получите значение через Program.Name в статическом классе. Теперь посмотрим код:

В главном получать значения от арг к Имя

public static string Name { get; set; } 
static void Main(string[] args) 
{ 
    Name = args[0]; // taking the First value from the args array 
    //or use String.Join to get all elements from args 
    string delemitter = ""; 
    Name = String.Join(delemitter, args); 
} 

В статическом значении класс правопреемником Имя локальной переменной:

static class Settings 
{ 
    static public void DoJob() 
    { 
     string localVar = Program.Name; 
    } 
}