1.基础的输入输出语句:
Console.Write(); 输出不换行
Console.WriteLine(); 输出并换行
Console.ReadLine(); 读取键盘输入的所有字符,返回字符串。按下回车键退出
Console.Read(); 读取键盘输入的第一个字符,返回其对应的ASCII值。按下回车键退出
Console.ReadKey(); 等待用户按下任意键并执行退出,(此函数的作用是为了在控制台窗口停留一下,直到用户敲击键盘为止。不然运行时,"Hello World!" 这句话会在控制台窗口一闪而过,没法查看。)
2.注释:
(1)多行注释以 /* 开始,并以字符 */ 终止;
(2)单行注释是用 '//' 符号表示。
3.输出的时候需要预留占位符,不然第二个参数内容不会输出。
例:(1) Console.WriteLine("A:{0},a:{1}",65,97);
运行结果:A:65,a:97
(2) Console.WriteLine("A:,a:",65,97);
运行结果:A:,a:
4.数据类型:
(1)值类型:常见的几种类型:bool型、char型、float型、int型
(2)引用型:对象型、动态类型、字符串型
(3)指针类型:type* i、char* i、int* i
值类型与引用类型就像仓库,仓库里有货架,货架上有编号:A1,A2,A3......, 这些编号就可以看做是引用类型,现在来了一批货,有 “土豆,黄瓜,西红柿”,这些就是值类型,如果你想让 A1=土豆,那么就要把土豆搬到 A1 里面去,这就叫装箱,装箱需要耗费人力和工时(也就是耗费CPU和内存),同理拆箱就要把对应编号的货物搬出来,也是需要耗费人力和工时。
5.字符串转换为数字
方法一:Convert.ToInt32();
方法二:int.Parse()
实例:string a = "123"; // 将a设置为字符串“123”
int x = int.Parse(a); // 转换
两种方法的差异:
(1)这两个方法的最大不同是它们对 null 值的处理方法:
Convert.ToInt32(null) 会返回 0 而不会产生任何异常,但 int.Parse(null) 则会产生异常;
(2)对数据进行四舍五入时候的区别:
Convert.ToInt32(double value) :若 value 为两个整数中间的数字,则返回二者中的偶数,若不为,遵循“四舍六入”。
int.Parse("4.5") :直接报错:"输入字符串的格式不正确"。
(3)对被转换类型的区别:
int.Parse 是转换 String 为 int, Convert.ToInt32 是转换继承自 Object 的对象为 int 的(可以有很多其它类型的数据)。你得到一个 object 对象, 你想把它转换为 int, 用 int.Parse 就不可以, 要用 Convert.ToInt32。
6.在 C# 中没有全局变量的概念,所有变量必须由该类的实例进行操作。
(1)静态常量(编译时常量)是使用 const 关键字来定义的 :
const double a=3.14;// 正确声明常量的方法
const int b; // 错误,没有初始化
(2)动态常量(运行时常量)是使用 readonly 关键字来定义的 :
class Program
{
readonly int a=1; // 声明时初始化
readonly int b; // 构造函数中初始化
Program()
{
b=2;
}
static void Main()
{
}
}
(3)在下面两种情况下:
- a、取值永久不变(比如圆周率、一天包含的小时数、地球的半径等)。
- b、对程序性能要求非常苛刻。
可以使用 const 常量,除此之外的其他情况都应该优先采用 readonly 常量。
7.变量命名
(1)带有private私有访问修饰符的常量要以骆驼命名法命名,即以下划线开头,第一个单词的首字母小写,余下单词首字母大写。例:private const string _bookName = "变量命名";
(2)带有public公共修饰符、protected 受保护修饰符等的常量要以帕斯卡命名法命名,即各个单词首字母都要大写。public const int BookPrice = 10;
8.运算
(1) 赋值与增值:
static void Main(string[] args)
{
int a = 1;
int b;
int c;
// a++ 先赋值再进行自增运算
b = a++;
// ++a 先进行自增运算再赋值
c = ++a;
Console.WriteLine("a = {0}", a); //结果:a = 3
Console.WriteLine("b = {0}", b); //结果:b = 1
Console.WriteLine("c = {0}", c); //结果:c = 3
Console.ReadLine();
}
(2)一些重要的运算符:
运算符 | 描述 | 实例 |
---|---|---|
& | 返回变量的地址。 | &a; 将得到变量的实际地址。 |
? : | 条件表达式 | 如果条件为真 ? 则为 X : 否则为 Y |
as | 强制转换,即使转换失败也不会抛出异常。 | Object obj = new StringReader("Hello"); StringReader r = obj as StringReader; |
附:三元(运算符)表达式?:x?y:z 表示如果表达式 x 为 true,则返回 y;如果 x 为 false,则返回 z
9.泛型
泛型允许延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。具体可参考C#泛型-菜鸟教程