Назовите параметры динамически? - PullRequest
0 голосов
/ 16 июня 2011

Представьте себе простую ситуацию:

int temperature = 20;

есть ли возможность дать динамическое имя параметра ?? Как например (я знаю, что это не работает, просто чтобы понять):

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

Спасибо! Ура Крис

Ответы [ 3 ]

2 голосов
/ 16 июня 2011

Не уверен, что это то, что вы ищете, но вы можете играть с динамическими / Expando объектами в C # 4

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

2 голосов
/ 16 июня 2011

Нет. Не в C #. Самое близкое, что вы могли бы получить, это использовать Dictionary<string, object>:

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

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

Но это не только связано с приведением каждый раз, когда вам нужно получить значение, но также вызывает бокс / распаковку.

В общем, я, конечно, не рекомендовал бы это.

0 голосов
/ 16 июня 2011

попробуйте

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");
    }
}

и перейдите по этой ссылке Ссылка1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...