Entwickler-Ecke
Sonstiges (.NET) - Problem mit List ( Sicherheitsebene )
Chris1011111 - Di 15.11.11 15:17
Titel: Problem mit List ( Sicherheitsebene )
Hallo,
wie gesagt, ich habe ein Problem:
ich möchte eine Instanzvariable vom Typ System.Collections.Generic.List<> der Klasse "Sector" in der anderen Klasse "OwnUnits" verwenden:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| public class OwnUnits { public void Move_Units() {
foreach (Sector sector in Game1.sectors.sectors_list) { for (int i = 0; i < 8; i++) { if (sector.position == unit.able_sectors_to_move[i]) { sector.move_marked = true; if (mouse.LeftButton == ButtonState.Pressed) { unit.position = sector.position; } } else sector.move_marked = false; } } } } } |
Da bekomme ich jedoch immer den Fehler: "Zugriff aufgrund der Sicherheitsebene nicht möglich.", obwohl die Klasse Sector "public" ist:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| public class Sectors { List<Sector> sectors_list = new List<Sector>();
} |
Ich habe jetzt schon viel zu diesem Thema gegoogelt und hier im Forum habe ich auch einige Posts gelesen, in denen ein ähnliches Problem geschildert war. Das konnte mein Problem jedoch nicht lösen.
Gruß, Chris1011111
Ralf Jansen - Di 15.11.11 15:46
sectors_list ist private da die Default Sichtbarkeit eben private ist.
Ich würde dir empfehlen, auch wenn man das darf, nie die Sichtbarkeit wegzulassen sondern immer explizit anzugeben.
Chris1011111 - Di 15.11.11 15:56
Ok, vorher hatte ich sectors_list auch auf "public"
C#-Quelltext
1:
| public List<Sector> sectors_list = new List<Sector>(); |
aber da im dieser Zeile immer der Fehler:
" Inkonsistenter Zugriff: Feldtyp "System.Collections.Generic.List<Sector>" ist weniger zugreifbar als Feld "Sectors.sectors_list". "
Ralf Jansen - Di 15.11.11 16:10
Dann ist die Sector Klasse vermutlich nicht public sondern ebenfalls weniger sichtbar. Es hilft ja nicht ein public Feld zu haben das einen Typ liefert den man dann nicht benutzen darf weil dieser z.B. wiederum private ist.
Chris1011111 - Di 15.11.11 16:22
Ohje, ja das wars. Die Sector-Klasse hatte ich ganz übersehen. Manchmal ist man echt blind!
Aber in Zukunft werde ich auf so etwas acht geben.
Vielen Dank für deine Hilfe :D
Gruß, Chris1011111
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!