Asymmetrischer Accessorzugriff (C#-Programmierhandbuch)
-
In der Hilfe steht dieses Bsp.:
public class irgendeine { ..... public string Name { get { return name;} protected set { name = value; } } ...... }
Wenn ich dieses Bsp. in meinem Code anwende erhalte ich folgende Fehlermeldung:
error CS1609: Modifizierer können nicht in Eigenschaften- oder Ereignisaccessordeklarationen positioniert werden.
Ist das in der Hilfe falsch oder was ist da falsch. Manchmal ist es zum wahsinnig werden.
Gruss Walter
-
Das protected gehört da nicht hin
Dein Property ist doch schon pubic
-
Nutzt du das .NET 2.0 Framework?
-
Hallo,
also folgendes Bsp, das sich stellweise mit deinem deckt, lässt sich compilieren (VS2005 mit .NET2.0) und ausführen:
public class Program { // Klasse mit den Accessoren class p1 { private string name; public string Name { get {return name;} protected set {name = value;} } } class p2 : p1 { static void Main(string[] args) { p2 p = new p2(); //Set-Accessor p.Name = "lala"; //Get-Accessor System.Console.WriteLine(p.Name); System.Console.ReadKey(); } } }
Somit scheint das Problem in deinem Code zu liegen, von dem wir leider nicht wissen, wie er aussieht.
Gruss
Thomas
-
xivVerge schrieb:
Das protected gehört da nicht hin
Dein Property ist doch schon pubicAber gerade das ist ja Sinn der Sache. Das Property und damit der getter ist public, der setter selbst aber nur protected (um ihn zwar für abgeleitete klassen sichtbar zu machen aber nach Außen hin zu verstecken).
Ich benutze diese Konstellation auch an manchen Stellen und compiliert fein.
-
Aber im 1.1er Framework gibts das nicht.
-
Danke erst mal für die Antworten.
C-Thomas, das ist ja der Code aus der Hilfe, den ich mal probiert habe, ich habe ihn in meinem 1.Beitrag nur auf das wesentliche reduziert.
xivVerge, das Interssante daran ist ja.., genauso wie lobs es beschrieben hat.
Was das Framework anbelangt so benutze ich VS2005Prof mit Net 2.0. Allerdings handelt es sich bei mir um eine Klassenbibliothek für intelligente Geräte, das heisst ich greife auf das CompactFramework zu, vielleicht liegt ja da das Problem. Nur wo und wie kann man feststellen, welche Version benutzt wird, ich habe ja nur die Möglichkeit entsprechende namespaces einzubinden.
Ich habe da nämlich noch so eine Ungereimtheit mit dem CompactFramework, die ich in einem anderen Beitrag fragen werde.
Gruss Walter