我最近正在处理一些动态的搜索表达式,并在尝试搜索多个日期/时间时遇到了一些问题。DateTime []和Object []问题
我SearchExpression构造类似于以下(为了简洁一些省略):
public SearchExpression(string propertyName,
ComparisonOperator comparisonOperator,
object value) {...}
和
public SearchExpression(string propertyName,
ComparisonOperator comparisonOperator,
object[] values,
BooleanOperator innerBooleanOperator) {...}
两个,因为他们应该通过以下时,这些工作:
-
个
- 字符串
- 号码(或任何数值数据)
然而,当涉及到传递日期时间信息,我开始会遇到一些问题。
我有当谈到基于类型我所有的数据分隔(日期时间,数值或字符串),并检查的有效性,他们再存入数组传递给适当的表情,就像这样:
object[] stringParameters;
object[] numericalParameters;
DateTime[] dateParameters;
所有这些工作,当我通过上述任何一个,除了一个DateTime参数数组。
所以我的问题,这让我感觉有点傻,就是我为什么能传递一个DateTime值作为一个对象,但我无法传递一个DateTime[]
为object[]
。
实施例:
DateTime[] dateParameters;
//This works fine
new SearchExpression("DateTime", ComparisonOperator.Equals, dateParameters[0]);
//This fails to work
new SearchExpression("DateTime", ComparisonOperator.Equals, dateParameters,
BooleanOperator.Or);
究竟是如何失败?编译错误?运行时异常?或意外的行为?任何错误的细节都会有帮助。 – gnomed 2011-04-06 16:45:24
这只是一个无效的参数错误 - 当试图传入DateTime []时。 – 2011-04-06 16:47:45