2016-06-07 8 views
1

Ich möchte wissen, wie auf eine öffentliche Variable in Program Klasse der Konsole App zugreifen.Zugriff auf eine Variable in der Programmklasse (Konsolenanwendung)

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', aber etwas sagt mir, dass Sie nicht die richtige Frage stellen. – sstan

+0

@sstan Ja, ich frage genau diesen Punkt. Haben wir eine Instanz von Program erstellt? Oder es wird funktionieren, wie du gesagt hast? –

+1

'Name' ist' statisch', daher ist keine Instanz für den Zugriff erforderlich. Aber eine statische Eigenschaft, wie Sie sie haben, fühlt sich nicht richtig an, Design-weise. Ich denke, wir müssten besser verstehen, was Sie zu tun versuchen. – sstan

Antwort

1

Sicher, dass Sie dies tun können, aber die args ist ein String-Array und die Eigenschaft Name ist ein String-Variable, Sie müssen also einen Wert von args auf den Namen zuweisen. Oder verwenden Sie String.Join, um alle Werte mit einem Begrenzer auf Name zu erhalten.

Da der Name eine statische Variable ist, wird für den Zugriff auf die Variable keine Instanz benötigt. Sie erhalten den Wert über Program.Name in der statischen Klasse. Nun sehen Sie den Code:

In Hauptgegenwert von args

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); 
} 

In Static Klasse assign Wert von Namen zu einer lokalen Variablen auf Namen:

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