提交 f2247b80 编写于 作者: F feilong

fix format bug

上级 2a33875f
...@@ -82,32 +82,22 @@ Console.WriteLine(@" ...@@ -82,32 +82,22 @@ Console.WriteLine(@"
## 答案 ## 答案
```bash 一, 二, 三, 四, 五
一、二、三、四、五
```
### 选项 ## 选项
### A ### A
```bash 一, 二, 三, 四, 六
一、二、三、四、六
```
### B ### B
```bash 一, 二, 三, 五, 六
一、二、三、五、六
```
### C ### C
```bash 二, 三, 四, 五, 七
二、三、四、五、七
```
### D ### D
```bash 一, 三, 四, 五, 七
一、三、四、五、七
```
# 在C#中执行基本字符串格式设置 # 在CSharp中执行基本字符串格式设置(1)
System.String是一个类,专门用于存储字符串,允许对字符串进行许多操作。由于这种数据类 System.String是一个类,专门用于存储字符串,允许对字符串进行许多操作。由于这种数据类
型非常重要,C#提供了它自己的关键字和相关的语法,以便于使用这个类来轻松地处理字符串。 型非常重要,CSharp提供了它自己的关键字和相关的语法,以便于使用这个类来轻松地处理字符串。
String 源码网址: https://referencesource.microsoft.com/#mscorlib/system/string.cs
使用运算符重载可以连接字符串: 使用运算符重载可以连接字符串:
...@@ -12,7 +11,7 @@ message1 += ", CSDN"; // return "Hello, CSDN" ...@@ -12,7 +11,7 @@ message1 += ", CSDN"; // return "Hello, CSDN"
string message2 = message1 + "!"; //return "Hello, CSDN!" string message2 = message1 + "!"; //return "Hello, CSDN!"
``` ```
C#还允许使用类似于索引器的语法来提取指定的字符: CSharp还允许使用类似于索引器的语法来提取指定的字符:
```csharp ```csharp
string message1 = "Hello"; string message1 = "Hello";
...@@ -37,15 +36,9 @@ char char1 = message[1] // return 'e' ...@@ -37,15 +36,9 @@ char char1 = message[1] // return 'e'
|ToUpper|把字符串转换为大写形式| |ToUpper|把字符串转换为大写形式|
|Trim |删除首位的空白| |Trim |删除首位的空白|
>注意如果Format想要输出'{'或'}',请这样string.Format("{{Hello}}"); 注意如果Format想要输出'{'或'}',请这样string.Format("{{Hello}}");
除了这些方法C#还提供了'@'和'$',@是可以忽略字符串的转义,$是可以把代码插到字符串中。 除了这些方法CSharp还提供了'@'和'$',@是可以忽略字符串的转义,'$'是可以把代码插到字符串中。
```csharp
int count = 6;
string str1 = $"6{count}6"; // return "666"
string str2 = @"6\r6\n6"; //return "6\r6\n6"
```
以下程序中,不能使str3等于`"Hello, CSDN!"`的是: 以下程序中,不能使str3等于`"Hello, CSDN!"`的是:
...@@ -82,42 +75,3 @@ var str1 = "Hello, "; ...@@ -82,42 +75,3 @@ var str1 = "Hello, ";
var str2 = "CSDN!"; var str2 = "CSDN!";
var str3 = string.Concat(str1, str2); var str3 = string.Concat(str1, str2);
``` ```
|格式说明符|应用|含义|示例|
|----------|----|----|----|
|C|数字类型|特定地区的货币值|$666.00|
|D|用于数字类型|一般的整数|666|
|E|数字类型|科学计数法|6.660000E+002|
|F|数字类型|小数点后的位数固定|666.00|
|G|数字类型|一般的数字|666|
|N|数字类型|通常是特定地区的数字格式|666.00|
|P|数字类型|百分比计数法|66,600.00%|
|X|只用于整数类型|十六进制格式|29A|
以下程序中,能让str1等于666.0的是:
## 答案
```csharp
string str1 = string.Format("{0:F1}", 666);
```
## 选项
### A
```csharp
string str1 = string.Format("{0:N}", 666);
```
### B
```csharp
string str1 = string.Format("{0:C}", 666);
```
### C
```csharp
string str1 = string.Format("{0:D}", 666);
```
\ No newline at end of file
{
"type": "code_options",
"author": "Gao996",
"source": "StringFormatting.md",
"notebook_enable": false,
"exercise_id": "055519a8722d41a694d846cd1bc196ba"
}
\ No newline at end of file
# 在CSharp中执行基本字符串格式设置(2)
|格式说明符|应用|含义|示例|
|----------|----|----|----|
|C|数字类型|特定地区的货币值|$666.00|
|D|用于数字类型|一般的整数|666|
|E|数字类型|科学计数法|6.660000E+002|
|F|数字类型|小数点后的位数固定|666.00|
|G|数字类型|一般的数字|666|
|N|数字类型|通常是特定地区的数字格式|666.00|
|P|数字类型|百分比计数法|66,600.00%|
|X|只用于整数类型|十六进制格式|29A|
以下程序中,能让str1等于666.0的是:
## 答案
```csharp
string str1 = string.Format("{0:F1}", 666);
```
## 选项
### A
```csharp
string str1 = string.Format("{0:N}", 666);
```
### B
```csharp
string str1 = string.Format("{0:C}", 666);
```
### C
```csharp
string str1 = string.Format("{0:D}", 666);
```
\ No newline at end of file
...@@ -5,8 +5,9 @@ ...@@ -5,8 +5,9 @@
], ],
"children": [], "children": [],
"export": [ "export": [
"Format.json", "Format1.json",
"StringFormatting.json" "Format2.json",
"Format3.json"
], ],
"keywords_must": [], "keywords_must": [],
"keywords_forbid": [] "keywords_forbid": []
......
# C# 3.0 特性 隐式类型本地变量 # CSharp 3.0 特性 隐式类型本地变量
从C# 3.0 开始,在方法范围内声明的变量可以具有隐式“类型”var。隐式类型本地变量为强类型,就像用户已经自行声明该类型,但编译器决定类型一样。 从C# 3.0 开始,在方法范围内声明的变量可以具有隐式“类型”var。隐式类型本地变量为强类型,就像用户已经自行声明该类型,但编译器决定类型一样。
```var i = “Hello CSDN!”;```看这句代码,在下列选项中i的类型是: ```csharp
var i = Hello CSDN!”;
```
看这句代码,在下列选项中i的类型是:
## 答案 ## 答案
```csharp ```csharp
string string
``` ```
## 选项 ## 选项
### A ### A
......
# C# 3.0 特性 对象和集合初始值设定项 # CSharp 3.0 特性 对象和集合初始值设定项
使用对象初始值设定项,你可以在创建对象时向对象的任何可访问字段或属性分配值,而无需调用后跟赋值语句行的构造函数。 比如下面的Cat类,以往创建对象可能 使用对象初始值设定项,你可以在创建对象时向对象的任何可访问字段或属性分配值,而无需调用后跟赋值语句行的构造函数。 比如下面的Cat类,以往创建对象可能
```csharp ```csharp
Cat cat = new Cat(); Cat cat = new Cat();
cat.Name = "Tom"; cat.Name = "Tom";
cat.Age = 10; cat.Age = 10;
``` ```
当然可以直接为对象设置初始值,这样可以简化对象的构造,如下例子: 当然可以直接为对象设置初始值,这样可以简化对象的构造,如下例子:
```csharp ```csharp
...@@ -25,18 +27,26 @@ public class Cat ...@@ -25,18 +27,26 @@ public class Cat
} }
} }
``` ```
下面这段代码示例了使用具有命名类型Cat的对象初始值设定项以及如何调用无参数构造函数。
```csharp ```csharp
Cat cat = new Cat { Age = 10, Name = "Fluffy" }; Cat cat = new Cat { Age = 10, Name = "Fluffy" };
Cat sameCat = new Cat("Fluffy"){ Age = 10 }; Cat sameCat = new Cat("Fluffy"){ Age = 10 };
``` ```
上面这段代码示例了使用具有命名类型Cat的对象初始值设定项以及如何调用无参数构造函数。当然也可以为匿名类型设置初始值:
当然也可以为匿名类型设置初始值:
```csharp ```csharp
var testA = new { name = "Gao", age = 996 }; var testA = new { name = "Gao", age = 996 };
``` ```
下面是一个List集合的初始化例子: 下面是一个List集合的初始化例子:
```csharp ```csharp
List<int> digits = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; List<int> digits = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
``` ```
除了分配字段和属性外,对象初始值设定项还可以设置索引器,如下例子: 除了分配字段和属性外,对象初始值设定项还可以设置索引器,如下例子:
```csharp ```csharp
public class MatrixTest public class MatrixTest
...@@ -50,6 +60,8 @@ public class MatrixTest ...@@ -50,6 +60,8 @@ public class MatrixTest
} }
} }
``` ```
以及例子:
```csharp ```csharp
var identity = new MatrixTest() var identity = new MatrixTest()
{ {
...@@ -72,8 +84,7 @@ var identity = new MatrixTest() ...@@ -72,8 +84,7 @@ var identity = new MatrixTest()
## 答案 ## 答案
```csharp ```csharp
var numbers = new Dictionary<int, string>() var numbers = new Dictionary<int, string>(){
{
7 = "seven", 7 = "seven",
9 = "nine", 9 = "nine",
13 = "thirteen" 13 = "thirteen"
...@@ -85,8 +96,7 @@ var numbers = new Dictionary<int, string>() ...@@ -85,8 +96,7 @@ var numbers = new Dictionary<int, string>()
### A ### A
```csharp ```csharp
var numbers = new Dictionary<int, string>() var numbers = new Dictionary<int, string>(){
{
[1] = "one", [1] = "one",
[9] = "nine", [9] = "nine",
[13] = "thirteen" [13] = "thirteen"
...@@ -107,7 +117,5 @@ var numbers = new Dictionary<int, string>() ...@@ -107,7 +117,5 @@ var numbers = new Dictionary<int, string>()
### C ### C
```csharp ```csharp
var numbers = new Dictionary<int, string>() var numbers = new Dictionary<int, string>(){};
{
};
``` ```
\ No newline at end of file
# C# 3.0 特性 分部方法 # C# 3.0 特性 分部方法
分部方法在分部类型的一部分中定义了签名,并在该类型的另一部分中定义了实现。比如WPF和WinForm的窗体就是用partial关键字定义的分部类,一部分代码可以实现控件的初始化,一部分可以去实现具体方法等。 分部方法在分部类型的一部分中定义了签名,并在该类型的另一部分中定义了实现。比如WPF和WinForm的窗体就是用partial关键字定义的分部类,一部分代码可以实现控件的初始化,一部分可以去实现具体方法等。
```csharp ```csharp
partial class PartialClassTest partial class PartialClassTest
...@@ -23,15 +23,15 @@ partial class PartialClassTest ...@@ -23,15 +23,15 @@ partial class PartialClassTest
} }
} }
``` ```
上面这段代码示例了分部类和方法,执行```Display()```方法在下列选项中可以打印出的字符串是: 上面这段代码示例了分部类和方法,执行```Display()```方法在下列选项中可以打印出的字符串是:
## 答案 ## 答案
```csharp ```csharp
Hello CSDN! Hello CSDN!
``` ```
## 选项 ## 选项
### A ### A
...@@ -48,5 +48,5 @@ null ...@@ -48,5 +48,5 @@ null
### C ### C
```csharp ```csharp
抛出异常 抛出异常
``` ```
\ No newline at end of file
...@@ -15,7 +15,10 @@ ...@@ -15,7 +15,10 @@
"AutoImplementedProperties.json", "AutoImplementedProperties.json",
"ExtensionMethod.json", "ExtensionMethod.json",
"ExpressionTree.json", "ExpressionTree.json",
"QueryExpression.json" "QueryExpression.json",
"PartialMethod.json",
"ObjectAndCollectionInitializers.json",
"ImplicitType.json"
], ],
"keywords_must": [], "keywords_must": [],
"keywords_forbid": [] "keywords_forbid": []
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册