第3章 C#编程概述 笔记
第3章 C#编程概述
3.1 一个简单的 C# 程序
// 使用System空间
using system;
// 声明一个命名空间 - Simple
namespace Simple;
{// 声明一个新的类 - Programclass Program{// 声明一个方法 - Mainstatic void Main(){Console.Write("Hi there!");}}
}
3.2 标识符
标识符是一种字符串,用来命名变量、方法、参数和其他程序结构。
标识符规定:
- 字母和下划线(a-z、A-Z 和 _)可以用在任何位置
- 数字不能放在首位,但可以放在其他任何地方
- @ 字符只能放在标识符的首位,但不推荐
标识符区分大小写,不建议使用大小写区分变量的含义。
// 语法上有效,但非常混乱,不建议
int totalCycleCount;
int TotalCycleCount;
int TotalcycleCount;
3.3 关键字
关键字是用来定义C#语言的字符串记号。
- 关键字不能被用作变量名或任何其他形式的标识符,除非以 @ 字符开始
- 所有 C# 关键字全部由小写字母组成
上下文关键字 仅在特定结构中充当关键字的标识符,在非特定结构中,可以被用作用户的标识符。
3.4 Main:程序的起始点
每个C#程序必有一个类带有Main方法,可执行起始点在Main中的第一条指令,Main必须首字母大写。
// 简单形式
static void Main()
{// do something
}
3.5 空白
程序中的空白指的是没有可视化输出的字符。空白字符会被编译器忽略,但会使代码更清晰易读。
空白字符包括:
- 空格(Space)
- 制表符(Tab)
- 换行符
- 回车符
// 清晰的格式
void Main()
{Console.Write("Hi there!");
}// 拥挤的格式
void Main(){Console.Write("Hi there!");}
3.6 语句
语句是描述一个类型或告诉程序去执行某个动作的一条源代码指令。
简答语句由;结束。
int var1 = 5;
System.Console.WriteLine("The value of var1 is {0}", var1);
块是一个由成对大括号包围的N条语句序列,在语法上相当于一条语句。
{int var1 = 5;System.Console.WriteLine("The value of var1 is {0}", var1);
}
块的使用原则:
语法上只需要一条语句,但是需要执行的动作无法用一条简单的语句来处理的情况下,考虑使用块。
某些特定的程序结构只能使用块。
块后面不跟分号。
3.7 从程序中输出文本
控制台窗口是一种简单的命令提示窗口,允许程序显示文本并从键盘接收输入。
BCL提供了Console的类,包含将数据输入和输出到控制台窗口的方法。
3.7.1 Write
Write 把一个文本字符串发送到程序的控制台窗口。
// 字符串需要用 双引号 包裹
System.Console.Write("This is text1.");
3.7.2 WriteLine
WriteLine 和Write功能相同,但汇总每个输出字符串的结尾加一个换行符。
System.Console.WriteLine("This is text1.");
3.7.3 格式字符串
Write 和 WrtieLine 语句第一个参数必须是字符串,称为 格式字符串,
格式字符串可以包含替代标记:
// 语法
Console.WriteLine(格式字符串(含替代标记), 替换值 0, 替换值 1, 替换值 2, ...);// 示例
Console.WriteLine("Two sample integers are {0} and {1}.", 3, 6);
C# 6.0 引入了插值字符串,可以直接在替代标记内插入变量名:
int var1 = 3;
int var2 = 6;
Console.WriteLine($"Two sample integers are {var1} and {var2}")
3.7.4 多重标记和值
C#中,可以使用任意数量的替代标记和任意数量的值:
值可以以任意顺序使用
值可以在格式字符串中替换任意次
代码示例:
Console.WriteLine($"Three sample integers are {1}, {0} and {1}", 3, 6);
标记不能引用超过替换值列表长度以外位置的值。
// 错误,位置2不存在
Console.WriteLine($"Three sample integers are {1}, {0} and {2}", 3, 6);
3.7.5 格式化数字字符串
为了更好的呈现文本字符串的输出,通过格式化字符串来实现。
// 输出数字
Console.Write("This value is {0}.", 500);
// 格式化为货币
Console.Write("This value is {0:C}.", 500);
字符串的格式语法由3个字段组成:索引号、对齐说明符(可选)、格式字段(可选)
1.对齐说明符
表示字段中字符的最小宽度,
可选的,由逗号和整数组成,
整数表示使用字符的最少数量。
正整数表示右对齐;负数表示左对齐。
如果输出字符长度比给定的整数小,则其余使用空格填充;
否则,对齐说明符会被忽略
int myInt = 500;Console.WriteLine("|{0, 10}|", myInt); // "| 500|"
Console.WriteLine("|{0,-10}|", myInt); // "|500 |"
Console.WriteLine("|{0, 1}|", myInt); // "|500|"// 插值字符串
Console.WriteLine($"|{myInt, 10}|"); // "| 500|"
2.格式字段
格式字段指定了数字应该以哪种形式表示。
冒号后面必须紧跟格式说明符,中间不能有空格。
格式说明符为一个字母。
精度说明符是可选的,由1-2位数字组成,实际意义取决于格式说明符
double myDouble = 12.345678;
Console.WriteLine("{0,-10:G} -- General", myDouble);
Console.WriteLine("{0,-10} -- Default, same as General", myDouble);
Console.WriteLine("{0,-10:F4} -- Fixed Point, 4 dec places", myDouble);
Console.WriteLine("{0,-10:C} -- Currency", myDouble);
Console.WriteLine("{0,-10:E3} -- Sci. Notation, 3 dec places", myDouble);
Console.WriteLine("{0,-10:x} -- Hexadecimal integer", 1194719 );// output 12.345678 -- General12.345678 -- Default, same as General12.3457 -- Fixed Point, 4 dec places$12.35 -- Currency1.235E+001 -- Sci. Notation, 3 dec places123adf -- Hexadecimal integer
3.标准数字格式说明符
9种标准数字格式说明符
C、c 货币
D、d 十进制数
F、f 定点
G、g 常规
X、x 十六进制数
N、n 数字
P、p 百分比
R、r 往返过程
E、e 科学计数法
对齐说明符和格式说明符 也可用于插值字符串。
3.8 注释:为代码添加注解
注释包括:单行注释、行内注释、文档注释
行内注释 - 带分隔符的注释:
有开始标记 /*、结束标记*/
标记对之间的文本 会被编译器忽略
带分隔符的注释可以跨任意多行
/*This text is ignored by the compiler.Unlike single-line comments, delimited commentslike this one can span multiple lines.*/
3.8.1 关于注释的更多内容
注释不能嵌套,一次只能由一个注释起作用
注释类型的范围:
单行注释,一直到行结束都有效
带分割符的注释,一直到遇到第一个结束标记都有效
3.8.2 文档注释
文档注释包含XML文本,可以用于产生程序文档。
/// <summary>
/// This class does...
/// </summary>
class Program
{//...
}
3.8.3 注释类型总结
单行注释 - //
带分隔符的注释 - 有开始标记 /*、结束标记*/
文档注释 - ///