2015-01-30 2 views
-5

Я хотел бы, чтобы значение String я создал и выписал значение в моем коде. В этом примере я не знаю, значение строки «attribut»:Можете ли вы написать значение строки непосредственно в коде C#

public void EditUser(Int32 user_no, String attribut, String change) 
{ 
    tmpUser = GetUser(user_no); 

    if (attribut.Equals("username")) 
    { 
     tmpUser.username = change; 
    } 
    else if (attribut.Equals("mail")) 
    { 
     tmpUser.mail = change; 
    } 
    else 
    { 
     tmpUser.password = change; 
    } 
} 

Я знаю, что я не могу сделать это так:

tmpUser.attribut = изменение;

Есть ли способ сделать это и не использовать инструкции if else.

+0

Возможно с помощью отражения, но не очень практично. Я думаю, что вы должны спросить о проблеме, которую вы пытаетесь решить, вместо того, чтобы спрашивать о том, как вы думаете, что ее можно решить. – Guffa

+0

Ха, ты полностью изменил свой вопрос ...... Ты шутишь? – EZI

+0

Извините за путаницу –

ответ

-1

Нет, не так. Самое близкое, что вы можете сделать, это использовать Reflection, чтобы получить правильную перегрузку WriteLine от Console. И Invoke это.

Например:

var method= typeof(Console) 
       .GetMethod("WriteLine", 
          BindingFlags.Public | BindingFlags.Static, 
          null, 
          new [] { typeof(string) }, 
          null); 

method.Invoke(null, new object[] { "Hello" }); 
+0

Отражение не относится к классу Console. –

+0

'Не уверен, кто отказался от этого ', однако это замечательное/рабочее решение. Это совершенно очевидно, даже не имея необходимости запускать код, который' Console будет выписывать слово Hello' great sample – MethodMan

Смежные вопросы