-5

使用 C# 4.0 动态作为其重要组成部分的库有哪些?

4

1 回答 1

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
);

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

于 2013-05-30T14:56:22.640 回答