基本语法
- 基本数据类型
- string :字符串
- int :整数
- dicimal :温度,带小数
- 变量赋值
- 必须先将值分配给变量(设置),然后才能从变量中检索(获取)值。
- 可通过在声明时给变量赋值来初始化变量。
- 从右到左进行赋值。
- 使用单等号字符作为赋值运算符。
- 若要从变量中检索值,只需使用变量的名称。
- var 关键字:隐式类型
- var 关键字指示编译器根据变量的初始化值来推断变量的数据类型
在 C# 中执行基本字符串格式设置
- 字符转义序列
- 使用转义字符
\
,需要使用反斜杠时,请对反斜杠 \ 使用转义字符 \n
序列将添加一个新行\t
序列将添加一个制表符
- 使用转义字符
- 可以通过转义字符设置输出格式
csharp
Console.WriteLine("Generating invoices for customer \"Contoso Corp\" ... \n");
Console.WriteLine("Invoice: 1021\t\tComplete!");
Console.WriteLine("Invoice: 1022\t\tComplete!");
Console.WriteLine("\nOutput Directory:\t");
bash
Generating invoices for customer "Contoso Corp" ...
Invoice: 1021 Complete!
Invoice: 1022 Complete!
Output Directory:
- 逐字字符串字面量
@
csharp
Console.WriteLine(@" c:\source\repos
(this is where your code goes)");
bash
c:\source\repos
(this is where your code goes)
- Unicode 转义字符
- \u 转义序列在文本字符串中添加编码字符,然后使用四个字符的代码表示 Unicode (UTF-16) 中的某些字符。
- 某些控制台(例如 Windows 命令提示符)不会显示所有 Unicode 字符。 它将用问号字符代替这些字符。 另外,此处使用的示例是 UTF-16。 有些字符需要 UTF-32,因此需要不同的转义序列。
bash
// To generate Japanese invoices:
// Nihon no seikyū-sho o seisei suru ni wa:
Console.Write("\n\n\u65e5\u672c\u306e\u8acb\u6c42\u66f8\u3092\u751f\u6210\u3059\u308b\u306b\u306f\uff1a\n\t");
// User command to run an application
Console.WriteLine(@"c:\invoices\app.exe -j");
Console.WriteLine("----日本の請求書を生成する");
bash
日本の請求書を生成するには:
c:\invoices\app.exe -j
日本の請求書を生成する
使用字符串串联合并字符串
- 字符串串联是"程序员的表述",指的是将两个或更多 string 值简单合并成一个新 string 值。
- 连接文本字符串和变量
"Hello " + firstName;
- 连接多个变量和文本字符串
string message = greeting + " " + firstName + "!";
- 避免中间变量
- 如果添加中间变量不会增加可读性,则避免创建中间变量。
- EG
csharp
string firstName = "Bob";
string greeting = "Hello";
Console.WriteLine(greeting + " " + firstName + "!");
bash
Hello Bob!
使用字符串内插合并字符串
- 字符串内插?
- string message = greeting + " " + firstName + "!";
- string message = $"{greeting} {firstName}!";
- 文本字符串和变量值合并在一起
csharp
string firstName = "Bob";
string message = $"Hello {firstName}!";
Console.WriteLine(message);
- 多个变量和文本字符串一起使用
bash
int version = 11;
string updateText = "Update to Windows";
string message = $"{updateText} {version}";
Console.WriteLine(message);
- 合并逐字文本和字符串内插
- 使用逐字文本。 可以同时使用逐字文本前缀符号 @ 和字符串内插 $ 符号
csharp
string projectName = "First-Project";
Console.WriteLine($@"C:\Output\{projectName}\Data");
- 许多环境中的控制台可能不支持所有 Unicode 字符。 因此,由于编码不匹配,Unicode 字符可能会显示为问号
你的目标是编写代码,以设置具有特殊字符的字符串的格式,例如双引号、新行、制表符和其他空格,以及 unicode 字符。 你还使用两种不同的技术合并了字符串。
借助字符转义序列,你通过使用特殊转义序列或逐字字符串在文本字符串中添加特殊字符。 你在文本字符串中添加了来自日语汉字和俄语西里尔字母等其他语言集的 Unicode 字符。 你结合使用了简单的字符串串联和 + 符号,并升级到字符串内插,以便将值合并到字符串模板中。
如果没法设置输出的格式,则你会在可向用户呈现哪些类型的信息方面严重受限。 但是,现在你可为用户提供采用各种格式、符号和语言的复杂指令和反馈。
使用隐式数据转换执行加法
- 添加两个数值数据
csharp
int firstNumber = 12;
int secondNumber = 7;
Console.WriteLine(firstNumber + secondNumber);
bash
19
- 混合数据类型以强制执行隐式类型转换
csharp
string firstName = "Bob";
int widgetsSold = 7;
Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");
bash
Bob sold 7 widgets.
- 添加数字和连接字符串的更高级情况
csharp
// 错误案例
string firstName = "Bob";
int widgetsSold = 7;
Console.WriteLine(firstName + " sold " + widgetsSold + 7 + " widgets.");
// 正确案例
string firstName = "Bob";
int widgetsSold = 7;
Console.WriteLine(firstName + " sold " + (widgetsSold + 7) + " widgets.");
bash
// 错误案例
Bob sold 77 widgets.
// 正确案例
Bob sold 14 widgets.
- 括号符号 () 变成另一个重载运算符。 在这种情况下,左括号和右括号构成运算符运算的顺序,就如你可以在数学公式中使用的那样。 你指出希望首先解析内部括号,结果是 int 值 widgetsSold 和值 7 相加。 解析该内容后,它将会隐式转换结果为字符串,以便可与消息的其余部分连接。