c# - ($"{a} + {b} = {plus}") 和 ("{0} + {1} = {2}", num1, num2, num1+num2) 有什么区别?
问题描述
我是 C# 的新手。我正在解决一些你可能会说只是为了练习的基本问题或挑战。我尝试先自己解决它,然后检查源的输出。我查看 YouTube 上的教程来学习。这不是什么大问题,但我没有想出一个名称来搜索方法中使用的这种表示格式Console.WriteLine
。
主要来源链接:https ://www.w3resource.com/csharp-exercises/basic/index.php
问题图片: 7.没有练习
我自己的代码作为解决方案:
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 与这些变量纠缠在一起。有人可以告诉我有关这两种输出格式的详细信息吗?
解决方案
您所做的称为字符串插值。示例中显示的是复合格式。您可以在ms-docs中找到有关这些主题的更多信息。
使用字符串插值,您可以在字符串的 "" 之前放置一个 $ 符号,以便编译器知道如何处理该字符串。然后,您只需在字符串中使用 {},然后像任何其他代码一样运行这些 {} 中的任何内容。一个例子是:
string myName = "Captain Coder"
int myAge = 21;
Console.WriteLine($"They know me as {myName} for {myAge} years now.");
输出:他们知道我作为 Coder 队长已有 21 年了。
使用复合格式,您只需将参数的索引放在 {} 之间以在给定位置使用。例子:
string myName = "Captain Coder"
int myAge = 21;
Console.WriteLine("They know me as {0} for {1} years now.", myName, myAge);
推荐阅读
- kentico - Kentico - 未能验证安全标头
- wolfram-mathematica - Mathematica:保持不变
- dart - 如何访问从 Google 的 flutter_chart 库中的 BaseChart 继承的属性?
- spring-data-jpa - 春季jpa中的deleteById与删除
- javascript - 带有 AJAX 的 OAuth2 令牌
- jenkins - 无法在 Jenkins slave 上执行 Ant 构建工具
- python - 使用多线程的 Python 套接字非阻塞服务器
- cytoscape.js - 网格布局中的 Cytoscape 间距不一致
- python - Python:如何在文本文件中查找关键字,在该关键字左侧保存 60 个字符,循环直到文本文件结尾
- java - TalkBack 的 Android 可访问性:向自定义视图对象添加“角色”不是作为按钮或链接读取