【问题标题】:what is the difference between ($"{a} + {b} = {plus}") and ("{0} + {1} = {2}", num1, num2, num1+num2)?($"{a} + {b} = {plus}") 和 ("{0} + {1} = {2}", num1, num2, num1+num2) 有什么区别?
【发布时间】:2021-10-06 14:58:38
【问题描述】:

我是 C# 新手。我正在解决一些基本问题或挑战,你可能会说只是为了练习。我尝试先自己解决它,然后检查源的输出。我查看 YouTube 上的教程来学习。这不是什么大问题,但我没有想出一个名称来搜索Console.WriteLine 方法中使用的这种表示格式

主源码链接:https://www.w3resource.com/csharp-exercises/basic/index.php

问题图片:7.no Exercise

我自己的代码作为解决方案:

int a; int b; float d; float e; //variables

int plus; int minus; int mult; float div; float mod; //operators  

Console.WriteLine("Input the first number:");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Input the second number:");
b = Convert.ToInt32(Console.ReadLine());

plus = a + b ;
minus = a - b ; 
mult = a * b ;
div = a / b ;
mod = a % b ;

Console.WriteLine("\n\n\n");

Console.WriteLine($"{a} + {b} = {plus}");
Console.WriteLine($"{a} - {b} = {minus}");
Console.WriteLine($"{a} x {b} = {mult}");
Console.WriteLine($"{a} / {b} = {div}");
Console.WriteLine($"{a} mod {b} = {mod}");

Console.WriteLine("\n\nPress any Key to Exit.");
Console.ReadKey();

从源解决示例代码:

Console.Write("Enter a number: ");
int num1= Convert.ToInt32(Console.ReadLine());

Console.Write("Enter another number: ");
int num2= Convert.ToInt32(Console.ReadLine());

Console.WriteLine("{0} + {1} = {2}", num1, num2, num1+num2);
Console.WriteLine("{0} - {1} = {2}", num1, num2, num1-num2);
Console.WriteLine("{0} x {1} = {2}", num1, num2, num1*num2);
Console.WriteLine("{0} / {1} = {2}", num1, num2, num1/num2);
Console.WriteLine("{0} mod {1} = {2}", num1, num2, num1%num2);

我理解我的,但来源中的那个对我来说有点未知,在第二个括号中使用 0,1,2 与这些变量纠缠在一起。谁能告诉我这两种输出格式的详细信息?

【问题讨论】:

  • 第一个是简化c#中字符串连接问题的下一步(new-style),第二个-old-style。
  • 如果只需要在字符串模板中添加~5个变量,使用$,如果更多,使用string.Format(tpl, var1, var2,...)/WriteLine(tpl, var1, var2,...)更易读
  • @Oignon_Rouge - 什么是'Lisibility'?

标签: c# output


【解决方案1】:

您所做的称为字符串插值。示例中显示的是复合格式。您可以在ms-docs.

找到有关这些主题的更多信息

使用字符串插值,您可以在字符串的 "" 之前放置一个 $ 符号,以便编译器知道如何处理该字符串。然后,您只需在字符串中使用 {},然后在这些 {} 中的任何内容都会像任何其他代码一样运行。一个例子是:

string myName = "Captain Coder"
int myAge = 21;
Console.WriteLine($"They know me as {myName} for {myAge} years now.");

输出:他们认识我已经 21 年了。

使用复合格式,您只需将参数的索引放在 {} 之间以在给定位置使用。示例:

string myName = "Captain Coder"
int myAge = 21;
Console.WriteLine("They know me as {0} for {1} years now.", myName, myAge);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多