写在本文前面的话,最近一直在自学C#,视频看了不少,案例demo也敲了不少,但局限于新生事物的自然抗拒性,加上自律等各种因素吧,效果很差。本着有问题就找原因的思路,发现还是基础太差,被网上各种资料迷惑。所以才有了接下来的C#图解教程学习总结。打算以此书为地基,梳理、总结、扩展,以递归方式不断重复。
C#图解教程总结(第二章)
2.1 一个简单的C#程序
using System; //告诉编译器这个程序使用System命名空间的类型
namespace Simple //声明一个新命名空间,名称为Simple,新命名空间包括紧挨着的大括号内所有内容
{
class Program //声明一个新的类类型,名称为Program
{
static void Main() // 声明一个名称为Main的方法作为类Program的成员
{
Console.WriteLine("hello world");// Main的方法体,只包含一个单独的语句
}
}
}
- Main方法体中Console类是在System命名空间内,所以会在程序第一行添加using System。
- Main是一个特殊函数,编译器用它作为程序的起始点。
2.2 标识符和关键字
定义:标识符是一种字符串,用来命名如变量、方法、参数和许多后面将要阐述的其他程序结构之类的东西。
使用规则:
- 字母和下划线(a-z、A-Z和_)可以用在任何位置
- 数字不能放在首位,但可以放在其他的任何地方
- @字符可以放在标识符的首位,但不能放在其他任何地方,虽然允许使用@字符,但不推荐作为常用字符。
标识符区分大小写,MYvar和myvar为不同的标识符
2.2.1命名约定
建议使用特定大小写约定创建标识符,比如Pascal大小写风格。
连续成标识符的每个单词都首字母大写,其余小写,比如ThreeNumber.
在成员字段命名中,有两个公共约定:
- 字段名称以下划线开头:_HighTemp、_LastTemp;
- 字段名称以m_开头:m_HighTemp、m_LastName;
2.2.2 关键字
用来定义C#语言的字符串记号。
-
关键字不能被用作变量名或任何气啊形式的标识符,除非以@字符开始
-
所有C#关键字全部都由小写字母组成,但是.NET类型名使用Pascal大小写约定
上下文关键字是仅在特定的语言结构中充当关键字的标识符,但在其他地方代码,可以被当作标识符。
2.3 Main
每个C#程序必须有一个类带有Main方法(函数)。
每个C#程序的可执行起始点在Main中的第一条指令。
Main必须首字母大写
Main的最简单形式如下:
static void Main()
{
更多语句
}
2.4 空白
程序中的空白指的是没有可视化输出的字符,空白字符包括:空格、制表符、换行符、回车符。
//很好的格式
Main()
{
Console.WriteLine("Hello world");
}
//连在一起
Main(){Console.WriteLine("Hello XX");}
2.5语句
语句是描述一个类型或告诉程序去执行一个动作的一条源代码指令
简单语句以一个分号结束。
int val1 =5;
System.Console.WriteLine("Hello world, I am {0}",val1);
块是一个由成对大括号包围的0条或多条语句序列
{
int val1 = 5;
System.Console.WriteLine("The value of var1 is {0}",var1);
}
- 有些特定的程序结构只能使用块,在这些结构中,不能用简单语句替代块
- 虽然简单语句以分号结束,但块后面不跟分号
2.6 从程序中输出文本
控制台窗口是一种简单的命令提示窗口,允许程序显示文本并从键盘接收输入,BCL提供一个名称为Console的类。包括输入和输出数据到控制台窗口。
2.6.1 Write
Console类的成员,把一个文本字符发送到程序的控制台窗口
Console.Write("This is trivial text.");
//Write没有在字符串后面添加换行符,所以三条语句都输出到同一行
Console.Write("This is trivial text1.");
Console.Write("This is trivial text2.");
Console.Write("This is trivial text3.");
2.6.2 WriteLine
Console类的成员,和Write功能相同,但会在每个输出字符串的结尾添加一个换行符
System.Console.WriteLine("This is text 1.");
System.Console.WriteLine("This is text 2.");
System.Console.WriteLine("This is text 3.");
2.6.3 格式字符串
Write语句和WriteLine语句的常规形式中可以有一个以上的参数
//语法案例
Console.WriteLine(格式字符串(含替代标记),替换值0,替换值1,替换值2,....);
Console.WriteLine("Hello {0},Hello {1}.","xx","World");
2.6.4 多重标记和值
在C#中,替代标记和值的数量是任意的。
-
值可以以任何顺序使用
-
值可以在格式字符串中替换任意次
Console.WriteLine("hello {0},hello {1},hello(1)","wolrd","xx");
标记不能试图引用替换值列表以外位置的值,如果引用了,不会产生编译错误。但会产生运行时错误。
Console.WriteLine("Hello {0},Hello {2}","xx","world"); //Error
2.7 注释
单行注释://
带分隔符注释:/* 注释内容 */。可以跨行‘。嵌套注释是不允许的
文档注释:/// 包括XML文本
//单行注释
/*
带分隔符注释第一行
带分隔符注释第二行
带分隔符注释第二行
*/
int /*我是本行中注释的一部分*/ var2;
/*
带分隔符注释第一行
/*我是嵌套在带分隔符注释里面的又一个带分隔符注释,
但这样是不允许的,虽然不会报错*/
*/
//文档注释
///<summary>
///This class does....
///</summary>
class Program
{
....
}