名称参数动态?

时间:2011-06-15 20:56:00

标签: c# wpf dynamic parameters

想象一下这种简单的情况:

int temperature = 20;

是否有可能提供动态参数名称?例如(我知道这不起作用,只是为了得到这个想法):

int Array[1].ToString() = 20;

谢谢! 干杯克里斯

3 个答案:

答案 0 :(得分:2)

没有。不在C#中。您可以获得的最接近的是使用Dictionary<string, object>

var variables = new Dictionary<string, object>();

variables.Add(Array[1].ToString(), 20);

但这不仅涉及每次需要检索值时进行转换,而且还会导致装箱/拆箱。

总而言之,我当然不会推荐它。

答案 1 :(得分:2)

不确定这是否是您正在寻找的,但您可以使用C#4中的动态/ Expando对象

http://blogs.msdn.com/b/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the-expandoobject.aspx

答案 2 :(得分:0)

试试这个

using System;

class Program
{
    static void Foo(dynamic duck)
    {
        duck.Quack(); // Called dynamically
    }

    static void Foo(Guid ignored)
    {
    }

    static void Main()
    {
        // Calls Foo(dynamic) statically
        Foo("hello");
    }
}

并点击该链接Link1

相关问题