我想將字符串變量轉換爲文字。例如,將字符串變量值轉換爲文字
string parametervalue= "+";
我想這個字符串變量轉換爲文字,這樣我可以使用
int total = valueA (parametervalue) valueB;
所以應該在運行時被稱爲
total = valueA + valueB
但如何將字符串變量轉換爲文字。有什麼辦法做到這一點
Appriciate你的幫助。
我想將字符串變量轉換爲文字。例如,將字符串變量值轉換爲文字
string parametervalue= "+";
我想這個字符串變量轉換爲文字,這樣我可以使用
int total = valueA (parametervalue) valueB;
所以應該在運行時被稱爲
total = valueA + valueB
但如何將字符串變量轉換爲文字。有什麼辦法做到這一點
Appriciate你的幫助。
不幸的是C#不支持你所要求的。
但有些東西接近你想要的東西,可以在C#6上使用,並且使字符串的播放更容易一些。
這就是所謂的字符串插值,這裏有一個例子:
var x = $"\{this.FirstName} \{this.LastName}"
,其中名字和姓氏的變量。 瞭解更多關於它的信息here
這是否適合您?當parametervalue來自用戶時,必須對其進行驗證。
switch (parametervalue)
{
case "+":
total = valueA + valueB;
break;
case "-":
total = valueA - valueB;
break;
case "*":
total = valueA * valueB;
break;
case "/":
total = valueA/valueB;
break;
default:
throw new NotSupportedException();
}
如何使用擴展方法
public static double Calculate(this string operation, int x, int y)
{
switch (operation)
{
case "+": return x + y;
case "-": return x - y;
case "*": return x * y;
case "/": return x/y;
default: throw new Exception("invalid operator");
}
}
然後你可以使用它像這樣var result = parametervalue.Calculate(valueA, valueB);
AFAIK有沒有辦法在C#中這樣做 - 你基本上是要求推廣的元編程cababilites這裏 – Carsten
做類似的事情的明顯方法是'Func add =(a,b)=> a + b; int total = add(valueA,valueB)' –
Carsten
哦,這是有幫助的。謝謝:)我可能會使用你建議的替代方法。 –