问题标签 [dynamic-keyword]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
555 浏览

c# - Is the dynamic keyword meant to be *only* used with dynamic languages?

I attended Code Camp 12 recently, and a speaker there said that the new dynamic keyword in C# 4.0 should only be used for interopping with dynamic languages. I think he also said that it is somewhat slow, compared to normal reflection (which itself is somewhat slow).

But then I heard Scott Hanselman mention that the dynamic keyword "makes reflection less painful".

So is it going to be acceptable to use the dynamic keyword for the purpose of reflecting an object that doesn't come from dynamic code?

0 投票
3 回答
689 浏览

c# - C# - 动态关键字和接口实现

我假设这是不可能的,但在进一步挖掘之前有办法做这样的事情:

我看过一个帖子争论它,但听起来它不包括在内。

一点上下文:通过 COM 公开的 .Net 程序集 -> Silverlight 应用程序消耗接口实现类。通过接口引用对象会很好。我真的没想到这是故意的……

0 投票
3 回答
4647 浏览

c# - C# 使用 Dynamic 关键字通过字符串访问属性而无需反射

我想写一些类似下面的东西:

我想知道是否有一种简单的方法可以在不使用反射 [ .GetProperty(...).GetValue(...,...)] 的情况下使用新的 C# 4.0 关键字:dynamic.

似乎可能有某种方式,......我只是不确定确切的机制,并且无法找到合适的资源来将所有部分放在一起。

想法?

[编辑] 看起来有一个名为“Clay”的包以某种方式实现了这种类型的功能。 Clay on CodePlex
Scott Hanselman 谈主题

0 投票
5 回答
1143 浏览

c# - C# - 禁用动态关键字

有什么方法可以禁用 .net 4 中“动态”关键字的使用?

我认为如果使用 dynamic 关键字,VS2010 的代码分析功能可能会导致构建失败,但我无法做到这一点。

0 投票
14 回答
147377 浏览

c# - 测试属性是否可用于动态变量

我的情况很简单。在我的代码的某个地方,我有这个:

所以,基本上我的问题是如何检查(不抛出异常)某个属性在我的动态变量上是否可用。我可以这样做GetType(),但我宁愿避免这种情况,因为我真的不需要知道对象的类型。我真正想知道的是一个属性(或方法,如果这让生活更轻松的话)是否可用。任何指针?

0 投票
3 回答
1816 浏览

c# - 如何在运行时创建一系列编号变量?

朋友们,我必须创建一系列ArrayLists,每个都包含未知来源的对象,每个实例都分配给一个单独的局部变量。

到目前为止,一切都很好......但我还需要每个局部变量的名称遵循一个非常特定的模式:名称应该以“oArr”开头,后跟一个或多个数字,反映该特定数组在序列中的位置。此外,在编译时我不会知道这些数组中有多少——因此,有多少局部变量——我将需要!

让我感到震惊的是,这可能是一个可以通过 C# 4.0 中动态类型的可用性来解决的问题,但是我一点也不熟悉它们的使用。我怎么能接受这样的代码......

...并将其变成符合上述标准实际编译的东西?

或者,有没有更简单、更理智的方法来解决这个问题?

0 投票
1 回答
27727 浏览

c#-4.0 - C# 4.0 Dynamic 与 Expando ......它们适合哪里?

我正在尝试学习 C# 4.0 附带的所有新功能。我无法理解DynamicObjectExpandoObject类型之间的区别。DynamicObject例如,当您想从 Python 脚本访问变量以及ExpandoObject与 COM/Office 对象交谈时,它似乎被使用了。我对吗?它们的用途有什么区别?

0 投票
3 回答
3909 浏览

c# - C#中动态类型的限制

你能给我一些关于 C# 中动态类型限制的原因吗?我在“Pro C# 2010 and the .NET 4 platform”中读到了它们。这是一段摘录(如果在这里引用书籍是非法的,请告诉我,我将删除摘录):

虽然可以使用 dynamic 关键字定义很多东西,但它的使用存在一些限制。虽然它们不是显示停止器,但要知道动态数据项在调用方法时不能使用 lambda 表达式或 C# 匿名方法。例如,以下代码总是会导致错误,即使目标方法确实接受了一个委托参数,该委托参数接受一个字符串值并返回 void。

为了规避这个限制,你需要直接使用底层委托,使用第 11 章中描述的技术(匿名方法和 lambda 表达式等)。另一个限制是动态数据点无法理解任何扩展方法(参见第 12 章)。不幸的是,这也将包括来自 LINQ API 的任何扩展方法。因此,使用 dynamic 关键字声明的变量在 LINQ to Objects 和其他 LINQ 技术中的用途非常有限:

提前致谢。

0 投票
2 回答
447 浏览

javascript - Javascript 自动从 HTML 中选择关键字

给定一个 HTML 正文,是否有人编写了任何函数可以自动提取从一大块 HTML 中出现的前 10 个关键字,不包括任何 HTML 标记(即纯文本)?

它应该忽略“and”、“is”、“but”等常用词,但列出最常见的不常用词。

示例输入:

输出:

jquery很好!

0 投票
1 回答
1409 浏览

c# - 为什么动态关键字不适用于动态加载的程序集?

我正在开发一个 CSharp 表达式评估器,如下所示。该组件生成代码并在内存中编译,然后加载生成的程序集,创建生成的类的实例并运行它。结果保存在字典中。

我的问题是一切正常,直到最后一行代码失败,但有异常:

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException 'object' 不包含 'FirstName' 的定义。

但是,Visual Studio 能够向我展示专业的变量内容:

这是代码:

有任何想法吗?

谢谢你。