我正在嘗試遍歷通用對(duì)象調(diào)用列表Condition<T>以讀取通用字段Value。我跟著這個(gè)問題能夠存儲(chǔ)List<Condition<T>>. 我現(xiàn)在遇到的問題是我無法Value在循環(huán)中使用該字段。我需要更改什么才能使用該Value字段?主要的string url = "";List<ConditionBase> Conditions = new List<ConditionBase>();Conditions.Add(new Condition<int>(Field.Field1, 1, ConditionOperator.Equal))Conditions.Add(new Condition<string>(Field.Field2, "test", ConditionOperator.NotEqual))foreach (ConditionBase c in Conditions){ if (c.GetType() == typeof(string)) { // c.Value throws an error url += c.Field + " " + c.ConditionOperator + " '" + c.Value + "' and "; } else if (c.GetType() == typeof(DateTime)) { // c.Value throws an error url += c.Field + " " + c.ConditionOperator + " " + Helpers.FormatDate(c.Value) + " and "; }}條件基礎(chǔ)public interface ConditionBase{ Field Field { get; set; } ConditionOperator ConditionOperator { get; set; }}狀況public class Condition<T> : ConditionBase{ private Field _Field; private T _Value; private ConditionOperator _ConditionOperator; public Condition(Field field, T value, ConditionOperator condition) { this._Field = field; this._Value = value; this._ConditionOperator = condition; } public Field Field { get { return this._Field; } set { if (this._Field != value) { this._Field = value; } } } public T Value { get { return this._Value; } set { if (!EqualityComparer<T>.Default.Equals(this._Value, value)) { this._Value = value; } } } public ConditionOperator ConditionOperator { get { return this._ConditionOperator; } set { if (this._ConditionOperator != value) { this._ConditionOperator = value; } } }}
- 2 回答
- 0 關(guān)注
- 158 瀏覽
添加回答
舉報(bào)
0/150
提交
取消