什么是使用C#4.0动态作为其重要组成部分的库?

时间:2013-05-30 14:51:06

标签: c# .net c#-4.0 dynamic

使用C#4.0动态库作为其重要组成部分的库是什么?

1 个答案:

答案 0 :(得分:4)

dynamic最强大的用途是邪恶的化身,不应该在生产代码附近使用。

例如:

var sql = SqlBuilder.MyDatabase 
        * "SELECT * FROM MyTable WHERE UserName = " + userName;
User result = sql;

dynamic可用于将userName转换为参数,并将最后一行转换为ExecuteReader()来电。

灵感来自Jon Skeet


另一个例子:

var _ = RestClient.Builder;
var endpoint = _.https/_.api.stackexchange.com/2.1/_.answers
var results = endpoint(sort: "activity", order: "desc", site: "stackoverflow");
// Returns https://api.stackexchange.com/2.1/answers?order=desc&sort=activity&site=stackoverflow as dynamic JSON

需要_才能允许任意标识符 您可以使用表达式树删除_

var endpoint = RestClient.Build((https, api, answers) => 
       https/api.stackexchange.com/2.1/answers
);

这使用参数名称来允许任意标识符。