none
Daten von der Klasse im Form ändern RRS feed

  • Frage

  • Hallo C#-ler,

     

    Ich habe eine Klasse erstellt und kann auch drauf zugreifen.

    Hier die Klasse:

     

    namespace Test
    {
     public class TestClass
     {
      public bool a;
     }
    }

     

     

    Hier im form:

     

    private void MethodeA()
    {
    
     Test test = new Test();
    
     test.a = true
    
     MethodeB();
    }

     

     

    Später im Form:

     

    private void MethodeB()
    {
    
     Test test = new Test();
    
     if(test.a == true)
     {
      //Hier soll mein Programm hinkommen :)
     }
     else
     {
      //Hier kommt mein Programm hin :(
     }
    }

     

     

    Nun mein Problem:

    Ich möchte das mein Programm an der von oben beschriebenen Stelle hingelangt nur das tut es nicht.

    Könnt ihr mir Helfen

     

    Danke das ihr euch Zeit genommen habt mir zu Helfen,

     

    Discofix

    Montag, 29. August 2011 09:57

Antworten

  • Du erzeugst in deiner Methode B eine neue Instanz deiner Klasse ohne diese zu initialisieren. Also entweder

     

    private void MethodeB()
    {
      Test test = new Test() { a = true };
      if(test.a)
      {
      //Hier soll mein Programm hinkommen :)
      }
      else
      {
      //Hier kommt mein Programm hin :(
      }
    }
    

    oder


    private void MethodeA()
    {
      Test test = new Test() { a = true };
      MethodeB(test);
    }
    
    private void MethodeB(Test instance)
    {
      if(instance.a)
      {
      //Hier soll mein Programm hinkommen :)
      }
      else
      {
      //Hier kommt mein Programm hin :(
      }
    }
    
    
    
    

    oder

    private Test fieldInstance;
    
    private void MethodeA()
    {
      fieldInstance = new Test() { a = true };
      MethodeB();
    }
    
    private void MethodeB()
    {
      if(fieldInstance.a)
      {
      //Hier soll mein Programm hinkommen :)
      }
      else
      {
      //Hier kommt mein Programm hin :(
      }
    }
    
    
    
    


     

    Montag, 29. August 2011 10:18

Alle Antworten

  • Du erzeugst in deiner Methode B eine neue Instanz deiner Klasse ohne diese zu initialisieren. Also entweder

     

    private void MethodeB()
    {
      Test test = new Test() { a = true };
      if(test.a)
      {
      //Hier soll mein Programm hinkommen :)
      }
      else
      {
      //Hier kommt mein Programm hin :(
      }
    }
    

    oder


    private void MethodeA()
    {
      Test test = new Test() { a = true };
      MethodeB(test);
    }
    
    private void MethodeB(Test instance)
    {
      if(instance.a)
      {
      //Hier soll mein Programm hinkommen :)
      }
      else
      {
      //Hier kommt mein Programm hin :(
      }
    }
    
    
    
    

    oder

    private Test fieldInstance;
    
    private void MethodeA()
    {
      fieldInstance = new Test() { a = true };
      MethodeB();
    }
    
    private void MethodeB()
    {
      if(fieldInstance.a)
      {
      //Hier soll mein Programm hinkommen :)
      }
      else
      {
      //Hier kommt mein Programm hin :(
      }
    }
    
    
    
    


     

    Montag, 29. August 2011 10:18
  • Dankeschön! Es HAT Funktioniert!
    -Discofix :)
    Dienstag, 30. August 2011 16:46