我試圖在初始化屬性時定義get; set;
的值。c#如何使用get;如果值沒有設置,返回一個值?
我有以下接口
public interface IReportColumn
{
string Title { get; set; }
string ColumnKey { get; }
AggregateFunctions AggregateFunction { get; set; }
string SqlAlias { get; }
}
我需要做的,如果AggregateFunction == AggregateFunctions.None || ColumnKey == null
設置屬性SqlAlias
到一個隨機字符串什麼。但是,因爲我在這裏生成一個隨機字符串,所以我不希望它隨時調用get方法。我希望能夠得到它,設置它並在整個請求中重複使用相同的值。
這是我如何實現我的接口根據我的病情上述
public class ReportColumnMsSqlServer : IReportColumn
{
public string Title { get; set; }
public string ColumnKey { get; set; }
public AggregateFunctions AggregateFunction { get; set; }
public string SqlAlias {
get {
return this.GetColumnName();
}
}
private string GetColumnName()
{
string columName = this.ColumnKey;
if (columName == null || this.AggregateFunction != AggregateFunctions.None)
{
columName = Convert.ToBase64String(Guid.NewGuid().ToByteArray());
}
return string.Format("{0}", new Regex("[^a-zA-Z0-9]").Replace(columName, string.Empty));
}
}
我怎樣才能設置SqlAlias值只有一次,在整個請求保持相同的價值呢?
創建本地字段。如果爲空,生成ID否則返回保存ID – Nkosi
由於你的問題是關於*設置*屬性值,你爲什麼問* * *?使用私人setter並在構造函數中設置值 –
改變另一個屬性的屬性getter對我來說似乎是錯誤的。 – juharr