Могу ли я использовать переменное содержимое в именах классов / функций? - PullRequest
0 голосов
/ 18 декабря 2011

Могу ли я использовать переменное содержимое в именах классов / функций?например:

string string_1 = "abcd";
double num_2 = 20.5;
int num = 1;

MessageBox.Show(string_{num}); // shows string_1;

[Я новичок в Visual C # (Visual Studio 2008)]

Спасибо.

Ответы [ 4 ]

2 голосов
/ 18 декабря 2011

Нет, ты не можешь. Имя класса определяется во время компиляции.

1 голос
/ 18 декабря 2011

Определенно нет.

Насколько я знаю, такая семантика невозможна ни на одном языке программирования.

1 голос
/ 18 декабря 2011

Имена классов и методов должны быть постоянными и должны называться константами в коде, как в вашем примере.

Вы можете использовать отражение и / или dynamicвведите для динамического поведения.

0 голосов
/ 18 декабря 2011
double num_2 = 20.5;
MessageBox.Show(GetName(() => num_2));


public string GetName<T>(Expression<Func<T>> f)
{
    return (f.Body as MemberExpression).Member.Name;
}
...