【发布时间】:2014-01-22 09:50:48
【问题描述】:
我已经构建了自己的查询生成器和解析器以供某些用途。
今天工作正常。
我想更改 api,而不是写 .And() 和 .Or(),我想写 && || ,就像在 IQueryable 中一样。
在我的情况下可能吗?:
interface IQ{
IQ And(IQ q);
IQ Or(IQ q);
}
class StringQ : IQ{
}
class IntQ : IQ{
}
// this is how I write the query today:
IQ q = new StringQ("a == str").Or(new IntQ("b == 1"));
// I want to write the query - not the || statement
IQ q = new StringQ("a == str") || new IntQ("b == 1")
所以|| 语句将在其中承载IQ。
类似:
interface IQ{
IQ &&(IQ q);
IQ ||(IQ q);
}
【问题讨论】:
-
也许您可以向我们展示一个使用
IQueryable的示例? -
运算符是作为静态方法实现的,所以我认为不可能让它成为接口的一部分。这让我们要么在具体类中实现它,要么在接口中创建自定义方法(例如 And)。
-
您没有发现我的回答有帮助吗?
-
@OndrejJanacek - 不是,因为它是静态操作....