【发布时间】:2011-09-02 23:50:01
【问题描述】:
在此页面上,Scott Hanselman 展示了 Micro-ORMs Dapper 和 Massive 的两个示例,Massive-example 引起了我的兴趣,因为我不知道他们如何实现该语法。
示例如下,我将把它分成几行而不是一长行:
var tbl = new Products();
var products = tbl.All(where: "CategoryID = @0 AND UnitPrice > @1",
orderBy: "ProductName", limit: 20, args: 5,20);
^----+---^
|
+-- this
他们是如何实现这种语法的,允许args 有多个值?我假设基于params 的参数,因为这是唯一允许这样做的东西,但我不明白他们是如何构建允许这样做的方法,因为在我看来,我尝试的所有最终都抱怨命名参数和固定位置参数的顺序错误。
我试过这样的测试方法:
public static void Test(string name, int age, params object[] args)
{
}
然后使用命名参数:
Test(age: 40, name: "Lasse", args: 10, 25);
但我得到的只是:
命名参数说明必须出现在所有固定参数指定之后
显然这是错误的。此外,我在源代码中看不到任何允许这样做的东西,但也许我找错了地方。
我在这里错过了什么?
【问题讨论】:
标签: c#-4.0 named-parameters massive