属性を初期化するときに値get; set;
を定義しようとしています。c#使用方法get;値が設定されていない場合は値を返しますか?
AggregateFunction == AggregateFunctions.None || ColumnKey == null
場合、私は私がする必要がどのような次のインターフェイス
public interface IReportColumn
{
string Title { get; set; }
string ColumnKey { get; }
AggregateFunctions AggregateFunction { get; set; }
string SqlAlias { get; }
}
はランダムな文字列に属性SqlAlias
に設定されています。しかし、ここではランダムな文字列を生成しているので、getメソッドを呼び出す度に変更する必要はありません。私はそれを取得し、設定し、要求全体を通して同じ値を再利用できるようにしたい。
これはどのように私はSqlAlias値は、1回だけ上記の私の条件に基づいており、要求全体を通じて同じ値を保つ設定するにはどうすればよい
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));
}
}
私のインターフェイスを実装していますか?
ローカルフィールドを作成します。 nullの場合、idを生成するelse saved idを返す – Nkosi
あなたの質問はプロパティ値の設定*に関するものなので、なぜ* get *について質問していますか?プライベートセッターを使用してコンストラクターの値を設定する –
別のプロパティを変更するプロパティゲッターは、私にとっては間違っているようです。 – juharr