是否可以使用變化的運算符編寫if語句?c#if函數:從文本文件獲得運算符
運算符(<,> = = <;> =,=)已經保存在一個文本文件中,現在可以在名爲Parameter的字符串數組中使用。
例如:參數[0] = {「<」};
代碼應該是這樣的:
if (3 "Parameter[0]" 5) {//do something}
感謝您的幫助!
是否可以使用變化的運算符編寫if語句?c#if函數:從文本文件獲得運算符
運算符(<,> = = <;> =,=)已經保存在一個文本文件中,現在可以在名爲Parameter的字符串數組中使用。
例如:參數[0] = {「<」};
代碼應該是這樣的:
if (3 "Parameter[0]" 5) {//do something}
感謝您的幫助!
如果真的這是你需要的。你可以做一個開關的情況下:
switch(Operator){
case '<': return a < b;
case '>': return a > b;
...
}
只是爲了完整性其他兩個答案,你可以返回一個自定義比較函數:
public Func<int, int, bool> CustomComparer(string parameter) {
switch(parameter) {
case(">="): return (a, b) => a >= b;
case(">"): return (a, b) => a > b;
//...
}
}
並且將其命名爲:
if(CustomComparer("<=")(3, 5)) { ... }
或:
var FirstIsGreater = CustomComparer(">");
if(FirstIsGreater(3, 5)) {... }
這就是所謂的元編程,而且一般不是在C#中可用。一般情況下,你不能用任何靜態類型語言(在支持元編程的靜態類型語言中,編譯時必須知道「代碼字符串」)。你可以做的是:
[Evaluating string「3 \ *(4 + 2)」yield int 18](https://stackoverflow.com/questions/333737/evaluating-string-342-yield-int-18) –