0

当我{0}在以下代码中使用时:

class Program
{
    double width;
    double height;

    public void getData() {
        Console.WriteLine("Enter Width:");
        width = Convert.ToDouble(Console.ReadLine());

        Console.WriteLine("Enter Height:");
        height = Convert.ToDouble(Console.ReadLine());
    }

    public double calcArea() {
        return width * height;
    }

    public void display() {
        Console.WriteLine("Area is : {0}",calcArea());
    }
}

class Area
{
    static void Main(string[] args)
    {
        Program p = new Program();
        p.getData();
        p.display();
    }
}

输出是:

输入宽度:
6
输入高度:
9
面积:54

当我在此使用 {0} 时:

class NewArea
{
    static void Main(String[] args) {
        double width;
        double height;
        double area;

        Console.WriteLine("Enter Width: ");
        width = Convert.ToDouble(Console.ReadLine());

        Console.WriteLine("Enter Height: ");
        height = Convert.ToDouble(Console.ReadLine());

        area = width * height;

        Console.WriteLine("Area is: {0}" +area);
    }
}

输出是

输入宽度:
4
输入高度:
5
面积:{0}20

是什么{0}意思?

4

6 回答 6

6

正如您所使用的,{0} 有两种不同的含义。

Console.WriteLine("区域为:{0}",calcArea());

在上面的句子中,一旦您给出 {0},这意味着您可以在逗号后提供一些值,就像您在逗号后提供值 54 一样,因此控制台认为并将该值设置为 0。

以类似的方式,您可以提供许多值,例如

Console.WriteLine("宽度 {0} 和高度 {1} 的面积为 {2}", width, height, calcArea());

输出:宽度 4 和高度 5 的面积为 20

在另一行中,您像这样使用它

Console.WriteLine("区域为:{0}" +area);

由于在此语句格式中没有在 {0}" 之后找到任何逗号,而是找到了 + 区域,因此它将变量区域替换为值并打印 {0},因为没有任何匹配的值 {0} 应该像前面的语句一样在逗号之后给出.

于 2014-11-09T06:41:59.913 回答
4

String.Format它是和中匹配参数的占位符WriteLine

例如:

String.Format("My name is {0} and I love {1}!", "Orel Eraki", "Snooker");

输出:

我的名字是 Orel Eraki,我喜欢斯诺克!

于 2014-11-09T06:28:36.237 回答
1
String.Format(String,Object[])

String参数显然采用您的字符串,然后您可以插入多个object值,尽管这不是必需的。{0} 只是表示将放置第一个对象参数的值的一种方式,类似地,{1} 表示第二个,{2} 表示第三个。它使用数组索引语法。

如果你写:

String.Format("Value = {0}",val);

并且val是一个值为 20 的整数,那么输出将是:

'值 = 20'

但是如果你写

String.Format("Value = {0}"+val)

ToString()那么您不会给该方法提供两个参数,而只提供一个参数,一个由“Value= {0}”字符串和val.

由于没有第二个参数,{0} 被视为字符串的一部分,而不是具有特殊含义的东西。这就是为什么输出是:Value = {0}20

于 2014-11-09T07:13:02.550 回答
0

只需看下面的例子,

static void Main()
{
  int a=10;
  int b=20;

  Console.WriteLine(" The value of A is {0} " ,a);

  Console.WriteLine(" The value of A is {0}, the Value of B is {1}",a,b);
  Console.Read();
}

请参阅第一个 WriteLine 语句,我正在单独打印 A。{0}是我的打印变量将在输出中看到的位置。我用两个输出{0}{1}编写第二条语句的方式相同,因此它将被相应地打印。

于 2014-12-18T07:55:42.540 回答
0

它将 calcArea() 的返回值注入到字符串中,然后在控制台窗口上打印它

于 2014-11-09T06:30:20.317 回答
0

如果您使用多个参数,则需要使用{1},等。您还可以通过指定例如多次{2}来在多个位置使用一个参数。{0}

于 2014-11-10T00:32:18.443 回答