抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

我看了看手上的牌,明白自己无牌可出

其实没有专门学过C#,在网上看代码学习时其实还有很多可能会困惑的地方,所以就一边看《C#图解教程》,一边记录一些觉得需要记录的地方

格式字符串

我还记得以前写kotlin的时候,格式字符串是一个非常好用的东西,比C++的转格式然后再+不仅方便而且可读性也很强。C#作为高级语言(比C++更高级),在这方面也做了改进。

旧的格式

在字符串中使用替换标记{index}在格式字符串中标出位置,后面跟着的参数为替换值,替换值从0开始编号,替换标记的index就是替换值的编号。

下方给出的示例,3为替换值0,6为替换值1:

Console.WriteLine("Two sample integers are {0} and {1}.", 3, 6);
Two sample integers are 3 and 6.

新的格式

在C# 6.0版本中引入了一种代码可读性更强的方式表述参数化字符串的语法,称为字符串插值,通过在替换标记内插入变量名实现。实际上,替换标记告诉编译器这个变量将被视为一个变量,而不是字符串字面量——前提是在字符串前面加上了$符号

int var1 = 3;
int var2 = 6;
Console.WriteLine($"Two sample integers are {var1} and {var2}");
Two sample integers are 3 and 6.

在Unity中也是一样可以使用的,例如打印日志将Console.WriteLine替换为Debug.Log即可

多重标记和值

就是能够使用任意数量的替换标记和值

  • 值可以以任何顺序使用
  • 值可以在格式字符串中替换任意次
Console.WriteLine("Three sample integers are {1}, {0} and {1}", 3, 6);
int var1 = 3;
int var2 = 6;
Console.WriteLine($"Three sample integers are {var2}, {var1} and {var2}");
Three sample integers are 6, 3 and 6.

格式化数字字符串

因为我不常用所以不会展开讲

index指定哪一项变量(同上文写法),alignment指定字段宽度以及是否右对齐或左对齐(可选),format指定项的格式(可选),格式如下:

{index, alignment: format}

左右对齐

正数为右对齐,负数为左对齐,整数表示字段使用字符的最少数量。

简单来说,整数代表的是当字符串长度不够长时,如右对齐情况,会在左边添加空格直到空格+字符串的长度达到整数(即字段使用字符的最少数量)。

例如,右对齐参数为10,替换值为500,那就要在前面补7个空格(左对齐就在后面补):

int var1 = 500;
int var2 = 10;
Console.WriteLine($"|{var1, 10}|");
Console.WriteLine($"|{var2, 10}|");
|       500|
|        10|

format

比较冗长,关于format的参数可以查看微软的官方文档

评论