使用C#4.0动态库作为其重要组成部分的库是什么?
答案 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
);
这使用参数名称来允许任意标识符。