[英]Operator precedence c#
排序運算符時,請確保提供自定義 IComparer
void Main()
{
var comparer = new OperatorComparer();
var operators = new[] { '+', '-', '*', '/' };
Array.Sort(operators,comparer);
}
public class OperatorComparer : IComparer
{
public int Compare(object x, object y)
{
var xv = (char)x;
var yv = (char)y;
if (xv == '*' || xv == '/')
{
if(yv == '*' || yv == '/')
return 0;
else
return -1;
}
else if (yv == '+' || yv == '-')
return 0;
return 1;
}
}
這會有所幫助,但沒有看到您的所有代碼,我仍然認為它無法處理括號。 查看 AST 構建解析器,它們將有助於創建真正的計算器功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.