【问题标题】:Print expression as is without evaluating it按原样打印表达式而不评估它
【发布时间】:2010-04-19 02:44:41
【问题描述】:

我想按原样打印表达式 Xmin 和 Ymin 而不计算最终值。 i,e I 和 J 的值为 1,2,3,4,5

示例 当我=1

Xmin= Xmin ((1 - 1)*10 + (1 - 1)*1) 

有没有办法做到这一点..我尝试了以下代码,但没有运气:

int a, g;
a = 10;
g = 1;
for (int J=1; J<=5; J++)
{
    for (int I = 1; I <= 5; I++)
    {
        string Xmin = Convert.ToString((I - 1)*a + (I - 1)*g);
        string Ymin = Convert.ToString((J - 1) * a);
        Debug.WriteLine("X=" + Xmin + "Y=" + Ymin);
    }
}

【问题讨论】:

    标签: c# string printing expression


    【解决方案1】:

    你必须使用 String.Format:

    string Xmin = String.Format("({0} - 1)*{1} + ({0} - 1)*{2}", I, a, g);
    

    此外,在 .NET 3.5 中,您可以使用表达式树,但我敢说这将是一个比仅使用 String.Format 复杂得多的解决方案。

    【讨论】:

    • 非常感谢您,祝您有美好的一天 Raj
    • 我很想加入一个Expression 版本,只是为了笑……但与你的单行相比,它可能是一百行(左右);-p
    【解决方案2】:

    您需要将表达式放入字符串中才能做到这一点,可能使用String.Format

    string Xmin = String.Format("Xmin=({0} - 1)*{1} + ({0} - 1)*{2}", I, a, g);
    string Ymin = String.Format("Ymin=({0} - 1) * {1}", J, a);
    
    Debug.WriteLine("X=" + Xmin + "Y=" + Ymin);
    

    【讨论】:

      猜你喜欢
      • 2016-11-11
      • 1970-01-01
      • 2016-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多