考慮下面的代碼:在C#.NET定義的getter,宣稱身體不接受
[DataContract]
class QObject {
public QObject() { }
[DataMember(Name = "objectindex")]
public int ObjectIndex { get; set; }
[DataMember(Name = "datapoint")]
public int DataPoint { get; set; }
[DataMember(Name = "type")]
public string Type { get; set; }
[DataMember(Name = "data")]
public int[] Data { get; set; }
[DataMember(Name = "parameters")]
public string __Parameters {
get {
return this.__Parameters;
}
set {
Parameters = new Dictionary<string,string>();
Parameters.Add("key", "value");
}
}
public Dictionary<string, string> Parameters;
}
其中由我看起來很好,但是當我想要編譯,它就會出現以下錯誤:
「 QuartzService.NET.QObject .__ Parameters.get」必須聲明主體,因爲它不標記爲抽象,EXTERN或部分
奇怪的是,該得到有聲明的身體。那麼,如何解決這個問題?
'return this .__ parameters;'would not that recursive and never return? – Powerlord
你也可能懷疑你不使用setter中的'value',並且你有公共領域。 –
不知道你的錯誤來自哪裏,但你的getter是無限遞歸的,你的setter忽略了'value',最後後臺是公共的。 – CodesInChaos