C# 哪些库使用C4.0Dynamic作为其基本部分?
哪些库使用C 4.0 dynamic作为其基本部分?dynamic最强大的用途是邪恶的化身,不应在生产代码附近使用 例如:C# 哪些库使用C4.0Dynamic作为其基本部分?,c#,.net,c#-4.0,dynamic,C#,.net,C# 4.0,Dynamic,哪些库使用C 4.0 dynamic作为其基本部分?dynamic最强大的用途是邪恶的化身,不应在生产代码附近使用 例如: var sql = SqlBuilder.MyDatabase * "SELECT * FROM MyTable WHERE UserName = " + userName; User result = sql; var _ = RestClient.Builder; var endpoint = _.https/_.api.stackexchange.
var sql = SqlBuilder.MyDatabase
* "SELECT * FROM MyTable WHERE UserName = " + userName;
User result = sql;
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
dynamic可用于将用户名转换为参数,并将最后一行转换为ExecuteReader调用
灵感来自Jon Skeet
另一个例子:
var sql = SqlBuilder.MyDatabase
* "SELECT * FROM MyTable WHERE UserName = " + userName;
User result = sql;
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
需要u来允许任意标识符。
您可以使用表达式树摆脱u:
var endpoint = RestClient.Build((https, api, answers) =>
https/api.stackexchange.com/2.1/answers
);
这使用参数名来允许任意标识符。动态的最大潜力是邪恶的。这里有点模糊-从技术上讲,任何使用动态的库都可以最大限度地利用它。关于活力,你到底想知道什么?@SLaks…我可以问一下为什么吗?我的意思是,在JavaScript中,动态性并不被认为是邪恶的,所以,在你看来,为什么其他人会认为它在.net?IrPython中是邪恶的。因为它与动态语言python交互。我认为这是一个相当充分的利用。原因是C不是一种动态语言。它是一种静态类型的编译语言。动力学只是在你必须的时候才有助于平滑颠簸。@AaronCruer:DLR和dynamic是不一样的。+1仅就灵感而言:公平地说,这比我见过的一些微型ORMs的语法更好……嗯……这两行代码对于初学者来说看起来完全是令人费解的!:-S@DavidL:我加了一个更糟的