2017-08-11 2 views
1

Ich bin neu in der Programmierung, also versuche ich, einen sehr einfachen RPG-Kampfsimulator für die Programmierung zu machen, und ich habe ein Problem bei der Erstellung der Charaktere bekommen. Wenn ich meine Charaktere im Hauptprogramm mache, funktionieren sie gut, ich kann mit ihnen genau interagieren, wie ich will. Es macht das Hauptprogramm sehr hässlich aussehen aber so war meine Idee, dass id eine Methode, die alle Zeichen für mich erstellt:Methode, die Zeichen erzeugt

class Create 
{ 
    public static void Characters() 
    { 
     Hero Dash = new Hero("Dash", 3, 10); 

     Bandit Keith = new Bandit("Keith", 1, 5); 
     Bandit Leader = new Bandit("Bandit Leader", 2, 8); 

     Knight Leeroy = new Knight("Leeroy" , 3, 12); 
     Knight Seth = new Knight("Seth", 5, 15); 

     Dragon BlueDrag = new Dragon("Blue Dragon", 7, 20, 2); 
     Dragon RedDrag = new Dragon("Red Dragon", 8, 20, 3); 
     Dragon BlackDrag = new Dragon("BlackDrag", 10, 25, 4); 
    } 
} 

Allerdings kann ich nicht benutzen. Wenn ich z. B. versuche, mit meiner Angriffsmethode etwas anzugreifen, heißt es, Dash existiere im aktuellen Kontext nicht. Warum passiert das? Vielen Dank. Tut mir leid, wenn das eine wirklich dumme Frage ist.

+3

Suchen Sie etwas über variable Scoping. –

Antwort

2

Versuchen Sie den folgenden Code. Es wäre wahrscheinlich besser, ein Wörterbuch zu erstellen, in dem Sie nach Zeichenfolgen suchen können, anstatt für jedes Zeichen eine Variable zu erstellen.

 static void Main(string[] args) 
     { 
      Create.Characters(); 
      Dragon BlackDrag = Create.BlackDrag; 
     } 
    } 
    public class Create 
    { 
     public static Hero Dash { get; set; } 

     public static Bandit Keith { get; set; } 
     public static Bandit Leader { get; set; } 

     public static Knight Leeroy { get; set; } 
     public static Knight Seth { get; set; } 

     public static Dragon BlueDrag { get; set; } 
     public static Dragon RedDrag { get; set; } 
     public static Dragon BlackDrag { get; set; } 

     public static void Characters() 
     { 
      Dash = new Hero("Dash", 3, 10); 

      Keith = new Bandit("Keith", 1, 5); 
      Leader = new Bandit("Bandit Leader", 2, 8); 

      Leeroy = new Knight("Leeroy", 3, 12); 
      Seth = new Knight("Seth", 5, 15); 

      BlueDrag = new Dragon("Blue Dragon", 7, 20, 2); 
      RedDrag = new Dragon("Red Dragon", 8, 20, 3); 
      BlackDrag = new Dragon("BlackDrag", 10, 25, 4); 
     } 
    } 
2

Die einfache Erklärung ist, dass Sie aufgrund Ihres Umfangs/Kontextes { } unzugänglich gemacht haben.

Nehmen Sie zum Beispiel:

void Main() 
{ 
    string one = "Hello"; 

    { 
     string two = " World"; 
    } 

    Console.WriteLine(one + two); // will not work 
} 

Der Grund dafür ist, wenn Sie sich in einem neuen Objekte umschließen { } unzugänglich außerhalb wird es.

Verwandte Themen