Fehler bei der Übergabe einer Classe



  • Hi,

    zunächst poste ich mal meinen QC:

    Hier haben wir mal meine Funktion, die in einer Externen CS Datei ausgelagert ist:

    public static void Set_Verstärkung(Init_Länder Alaska,.....)
    {
       // Tut was
    }
    

    Hier habe ich die Klasse Init_Länder, auch sie liegt wieder in einer Externen CS Datei:

    class Init_Länder
    	{
    		private int ID;
    		private string Name;
    		private int Player;
    		private int Anz_Einheiten;
    
    		public Init_Länder(int init_ID, string init_Name, int init_Anz_Einheiten)
    		{
    			ID = init_ID;
    			Name = init_Name;
    			Anz_Einheiten = init_Anz_Einheiten;
    		}
    
    		public int Get_ID()
    		{
    			return ID;
    		}
    		public string Get_Name()
    		{
    			return Name;
    		}
    		public void Set_Player(int Player_Set)
    		{
    			Player=Player_Set;
    		}
    		public int Get_Player()
    		{
    			return Player;
    		}
    		public void Set_Anz_Einheiten(int Anz_Einheiten_Set)
    		{
    			Anz_Einheiten=Anz_Einheiten_Set;
    		}
    		public int Get_Anz_Einheiten()
    		{
    			return Anz_Einheiten;
    		}
    
    	}
    

    Gut der Aufruf im Hauptprogramm ist:

    Init_Länder Alaska = new Init_Länder(1 , "Alaska",0);
    
    // Bla Bla
    Allgemeine_Funktionen.Set_Verstärkung(Alaska,....);
    

    Die Fehlermeldung ist folgende:

    h:\facharbeit\risiko\allgemeine_funktionen.cs(38,22): error CS0051: Inkonsistenter Zugriff: Parametertyp 'ClassLänder.Init_Länder' ist weniger zugreifbar als Methode 'Risiko.Allgemeine_Funktionen.Set_Verstärkung(ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder, ClassLänder.Init_Länder)'

    Ich wollte meinen Code etwas auslagern, da es langsam unübersichtlich geworden ist. Weiss jemand, woran das liegen kann?



  • Achja:

    hab den Namespace der Klasse initländer auch eingebunden:

    using ClassLänder;



  • class Init_Länder
        {
    
    public static void Set_Verstärkung(Init_Länder Alaska,.....)
    

    du verwendest Init_Länder als Parameter in einer Funktion, die von ausserhalb zugänglich ist. Public also.
    Die Klasse Init_Länder ist aber nur private. Deshalb der Fehler.
    schreib:

    public class Init_Länder
        {
    


  • Danke dir.
    Hab den fehler durch anderweitige Hilfe gefunden.

    Komisch, dass man immer auf solche Leichtsinnsfehler schwer kommt 😞


Anmelden zum Antworten