C# {}表达式的意义

C# {}表达式的意义,c#,C#,我不熟悉C#编程。我正在读一本c#书,在解释代码时遇到了困难。具体来说,{0}和下面的my_double是如何工作的 my_double = 3.14; my_decimal = 3.14; Console.WriteLine("\nMy Double: {0}", my_double); 我在书中多次看到这种格式,但没有解释。我知道它正在将此信息写入控制台窗口,但我的问题是: 这是什么意思 为什么它的花括号中有{0}这个数字可以用其他数字代替,比如{100} 如何在最后一行代码中使用多个变量

我不熟悉C#编程。我正在读一本c#书,在解释代码时遇到了困难。具体来说,{0}和下面的my_double是如何工作的

my_double = 3.14;
my_decimal = 3.14;
Console.WriteLine("\nMy Double: {0}", my_double);
我在书中多次看到这种格式,但没有解释。我知道它正在将此信息写入控制台窗口,但我的问题是:

  • 这是什么意思
  • 为什么它的花括号中有{0}这个数字可以用其他数字代替,比如{100}
  • 如何在最后一行代码中使用多个变量来表示“打印出我的十进制”

  • 这就像方法最后一个参数的索引器。因此,它意味着获取第0个元素,即
    my\u double
    。它的存在使得您可以创建一个简单的字符串,而无需编写
    “blah”+变量+“blah”+变量2…

    如果您想打印更多项目,只需在末尾添加更多项目,并通过最终列表中的索引引用它们。即:

    Console.WriteLine("{0}{1}{2}", var0, var1, var2);
    

    您正在调用使用格式说明符和参数的
    Console.WriteLine
    重载。这意味着您指定了一个要替换为
    {x}
    语法的令牌。这是一个索引为0的列表,因此如果您添加了第二个属性,您将拥有
    WriteLine(“{0},{1}”,value1,value2)
    。可在此处找到该版本的
    WriteLine
    上的文档

    其工作原理类似于。您可以通过以下方式实现您的目标:

     my_double = 3.14;
     my_decimal = 3.14;
    
    Console.WriteLine(“\nMy Double: {0}\nMy Decimal: {1}”, my_double, my_decimal);
    
    1) 这意味着{0}将替换为字符串后的第一个(零索引)参数。它类似于
    string.Format(…)
    所使用的语法

    2) 用{100}替换它意味着第101个参数将被放置在那里。这不是一个实际的用例

    3) 您可以使用多个变量,方法是(按顺序)在花括号中添加其他数字和其他参数。像这样:

    int param1 = 1;
    string param2 = "hello";
    double param3 = 2.5;
    Console.WriteLine("This is parameter 1: {0}. This is parameter 2: {1}. This is parameter 3: {2}", param1, param2, param3);
    
    文件:

    • Console.WriteLine:
    • 字符串。格式:

    它作为
    字符串工作。格式
    方法: 任何出现的
    {sequentialInteger}
    都将替换为相应参数的字符串(或字符串转换)

    关于你的具体问题:

    my_double = 3.14;
    my_decimal = 3.14;
    
    Console.WriteLine(“\nMy Double: {0} here your decimal: {1}”, my_double, my_decimal );
    //output: My Double: 3.14 here your decimal: 3.14
    
    
    Console.WriteLine(“\nMy Double: {2} here your decimal: {0}”, "foo", my_decimal, DateTime.Now.ToShortDate() );
    //output: My Double: 12/10/2013 here your decimal: foo
    

    请参阅Concole.WriteLine(或String.Format)的文档。{0}表示将由函数中的下一个参数替换的标记。。。。所以

    Console.WriteLine("One {0}, Two {1}, Three {2}, One {0}", 1, 2, 3);
    
    将产生:

    One 1, Two 2, Three 3, One 1
    
    可以使用{0:n}或其他格式选项以特定字符串格式呈现值


    好的,谢谢。这正是我熟悉的语法。我来自java背景:)