标签: dynamic

为什么我不能这样做:dynamic x = new ExpandoObject {Foo = 12,Bar ="12"}}

我做错了什么,或者以下代码真的不可能?

dynamic x = new ExpandoObject { Foo = 12, Bar = "twelve" };
Run Code Online (Sandbox Code Playgroud)

如果这确实不可能,是否有另一种单行方式来实例化具有两个属性的ExpandoObject?

为什么C#团队会选择禁止使用与常规对象,匿名对象和枚举/列表相同的初始化语法?

更新

我问过这个问题是因为我试图向珍珠爱好者展示C#的酷炫新动态特性,但后来由于无法做到我认为是一个逻辑实例化的东西而陷入困境ExpandoObject.感谢Hans Passant的回答,我意识到这ExpandoObject是错误的工具.我的真正目标是使用C#的动态功能从方法返回两个命名值.汉斯指出,dynamic关键字对此非常完美.我没有需要一个ExpandoObject完成它的所有开销.

因此,如果您想从方法中返回一对命名值,并且您不关心类型安全性,智能感知,重构或性能,这可以很好地工作:

public dynamic CreateFooBar()
{
    return new { Foo = 42, Bar = "Hello" };
}
Run Code Online (Sandbox Code Playgroud)

用法:

dynamic fooBar = CreateFooBar();
var foo = fooBar.Foo;
var bar = fooBar.Bar;
Run Code Online (Sandbox Code Playgroud)

c# dynamic expandoobject

60
推荐指数
4
解决办法
2万
查看次数

XCode 6.3警告:合成属性

在新的Xcode 6.3中,我收到此警告:

自动属性合成不会合成属性'homeInt'; 它将由其超类实现,使用@dynamic来确认意图

我怎么能删除它?

xcode warnings dynamic

60
推荐指数
4
解决办法
2万
查看次数

如何在C中使用动态多维数组?

有人知道如何使用C动态分配多维数组吗?那可能吗?

c arrays dynamic

59
推荐指数
4
解决办法
14万
查看次数

@dynamic在Objective-C中做了什么?

Objective-C有一个叫做@dynamic的功能.

Google仅列出有关动态类型的结果.

我很少在代码中看到这个,我不明白它的用途.谁能解释一下这个?谢谢.

dynamic objective-c

58
推荐指数
1
解决办法
4万
查看次数

使用R/Shiny创建动态数量的输入元素

我正在写一个Shiny应用程序,用于可视化我公司的保险福利计划.这是我想要发生的事情:

  • 我将有一个selectInputsliderInput哪个用户将选择他们的医疗计划中的个人数量
  • 将出现匹配数量的双面滑块(每个成员一个)
  • 然后,他们可以输入他们对计划中每个成员的最佳/最差病例医疗费用的估计
  • 我的代码将采用这些估算并创建并排图表,说明三个计划产品的预测成本,以便他们可以根据他们的估算确定哪一个最便宜

这是我当前的ui.R文件,带有硬编码输入,模拟一个四口之家:

shinyUI(pageWithSidebar(

  headerPanel("Side by side comparison"),

  sidebarPanel(

    selectInput(inputId = "class", label = "Choose plan type:",
                list("Employee only" = "emp", "Employee and spouse" = "emp_spouse",
                     "Employee and child" = "emp_child", "Employee and family" = "emp_fam")),

    sliderInput(inputId = "ind1", label = "Individual 1",
                min = 0, max = 20000, value = c(0, 2500), step = 250),

    sliderInput(inputId = "ind2", label = "Individual 2",
                min = 0, max = 20000, value = …
Run Code Online (Sandbox Code Playgroud)

r input dynamic shiny

57
推荐指数
3
解决办法
3万
查看次数

确定C中动态分配的内存的大小

有没有办法在C中找出动态分配内存的大小?

例如,之后

char* p = malloc (100);
Run Code Online (Sandbox Code Playgroud)

有没有办法找出与之相关的内存大小p

c memory size allocation dynamic

56
推荐指数
6
解决办法
7万
查看次数

作为DynamicMetaObject.BindInvokeMember的结果,如何表示void方法调用?

我试图IDynamicMetaObjectProvider在深度中给出第二版C#的简短例子,我遇到了问题.

我希望能够表达一个无效的电话,而我却失败了.我确信这是可能的,因为如果我使用反射活页夹动态调用void方法,一切都很好.这是一个简短而完整的例子:

using System;
using System.Dynamic;
using System.Linq.Expressions;

class DynamicDemo : IDynamicMetaObjectProvider
{
    public DynamicMetaObject GetMetaObject(Expression expression)
    {
        return new MetaDemo(expression, this);
    }

    public void TestMethod(string name)
    {
        Console.WriteLine(name);
    }

}

class MetaDemo : DynamicMetaObject
{
    internal MetaDemo(Expression expression, DynamicDemo demo)
        : base(expression, BindingRestrictions.Empty, demo)
    {
    }

    public override DynamicMetaObject BindInvokeMember
        (InvokeMemberBinder binder, DynamicMetaObject[] args)
    {
        Expression self = this.Expression;

        Expression target = Expression.Call
            (Expression.Convert(self, typeof(DynamicDemo)),
             typeof(DynamicDemo).GetMethod("TestMethod"),
             Expression.Constant(binder.Name));

        var restrictions = BindingRestrictions.GetTypeRestriction
            (self, typeof(DynamicDemo));

        return new DynamicMetaObject(target, restrictions); …
Run Code Online (Sandbox Code Playgroud)

dynamic-language-runtime dynamic .net-4.0 c#-4.0

56
推荐指数
4
解决办法
3823
查看次数

在Javascript中声明一个空的二维数组?

我想在Javascript中创建一个二维数组,我将存储坐标(x,y).我不知道我将拥有多少对坐标,因为它们将由用户输入动态生成.

预定义的2d数组的示例:

var Arr=[[1,2],[3,4],[5,6]];
Run Code Online (Sandbox Code Playgroud)

我想我可以使用PUSH方法在数组的末尾添加一条新记录.

如何声明一个空的二维数组,这样当我使用我的第一个Arr.push()时,它将被添加到索引0,而push写入的每个下一个记录都将采用下一个索引?

这可能很容易做到,我只是JS的新手,如果有人能写一个我可以检查的简短工作代码片段,我将不胜感激.谢谢

javascript arrays 2d push dynamic

56
推荐指数
8
解决办法
21万
查看次数

为什么C#动态类型是静态的?

在阅读和探索我在[MSDN]上的以下行中找到的动态关键字时(在使用类型动态(C#编程指南)中):

类型是静态类型,但动态类型的对象绕过静态类型检查.在大多数情况下,它的功能类似于它具有类型对象.

静态在上面的行是什么意思,它如何绕过静态类型检查?

c# dynamic c#-4.0

56
推荐指数
2
解决办法
4779
查看次数

动态创建匿名类型?

我想创建一个匿名类型,我可以动态设置属性名称.它不必是匿名类型.我想要实现的是动态设置任何对象属性名称.它可以是ExpandoObject等.但字典对我不起作用.你有什么建议?非常感谢

c# dynamic anonymous-types

55
推荐指数
2
解决办法
3万
查看次数