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