Generelle Frage: Datenübergabe



  • Brauche nochmal eure Hilfe. Folgende Klassen sind aktuell vorhanden und aufgebaut:

    Anmeldungsform + RegDatenKlasse
    - nur Benutzername wird bei erfolgreicher Anmeldung an Hauptprogramm übergeben

    Hauptprogramm
    - Es wird eine Instanz der BenutzerInfoKlasse erstellt und der Benutzername eingetragen

    BenutzerInfoKlasse
    - Daten zum Benutzer - sowie Variablen zu ProgrammEinstellungen

    EinstellungenPanel
    - Ein UserControl im Hauptprogramm.

    Zum Problem:
    Mein Ziel ist es, die "BenutzerInfo" Instanz im Hauptprogramm aus dem "EinstellungsPanel" heraus zu aktualisieren. Also habe ich gedacht - modifiziere ich einfach den Konstruktor des EinstellungsPanels und schicke eine Referenz der ja bereits erstellten BenutzerInfoKlasse mit.

    Hauptprogramm

    ...
    ...
    //neue Instanz erzeugen - und UserControl abrunden
                EinstellungenPanel einstellungen = new EinstellungenPanel(infostruct);            
                formabrunden (einstellungen, 0, 0, einstellungen.Size.Width, einstellungen.Size.Height, 10);
    
                //Position des UC festlegen
                einstellungen.Location = new Point(this.Size.Width - einstellungen.Size.Width - 4, ((Button)sender).Location.Y + ((Button)sender).Size.Height + 6);
                this.Controls.Add(einstellungen);
    ...
    ...
    

    EinstellungenPanel

    public partial class EinstellungenPanel : UserControl
        {
            public EinstellungenPanel()
            {
                InitializeComponent();
            }
    
            public EinstellungenPanel(BenutzerInfoKlasse instanz)
            {
                InitializeComponent();
                benutzerInfoInstanz = instanz;
            }   
    
            //Variablen     
            //BenutzerInfoKlasse benutzerInfoInstanz = new BenutzerInfoKlasse();        OK
            BenutzerInfoKlasse benutzerInfoInstanz;
    ...
    ...
    

    Als Fehler begegnet mir immer wieder:

    Fehler 1 Inkonsistenter Zugriff: Parametertyp "VanNettenAnmeldung.BenutzerInfoKlasse" ist weniger zugreifbar als Methode "VanNettenAnmeldung.EinstellungenPanel.EinstellungenPanel(VanNettenAnmeldung.BenutzerInfoKlasse)" C:\Users\Jan\Documents\Visual Studio 2010\Projects\VanNettenAnmeldung\VanNettenAnmeldung\EinstellungenPanel.cs 19 16 VanNetten

    Wer kann mir den Grund nennen, oder noch besser: Wie macht man dies richtig ?



  • Hi,
    mach deine Klasse BenutzerInfoKlasse public. Es ergibt keinen Sinn, den Konstruktor von EinstellungenPanel für alle sichtbar zu machen, für das dafür notwendige Argument instanz jedoch nicht.



  • Danke dir. Manchmal frage ich mich, ob euch soetwas auch passiert 😉


Anmelden zum Antworten