本书籍最开始其实介绍的是变量。在我的这个笔记当中,我不会具体介绍很详细的语法以及原因。我只会写方式方法。我觉得不太重要的部分就不做写入,但不代表没有看到,或学习到。
变量的取值范围
提示string类型没有长度因为它是可变的内存大小基础语法在这里就不做过多的介绍了。
Csharp 字面值(书 P30)
其含义就是在字面值的后面添加一些字符来指定想要的类型如。65535D 或65535d 代表的含义就是double类型变量 当然还有很多
Csharp 二进制字面值与数字分割(书 P31)
平常储存数组当中的数据都是直接写数字如数字127。其实我们在数组当中也可以直接写它。数字所转换过来的二进制或者是16进制0。之所以直接写阿拉伯数字,是因为。更加的能直观看懂,且简。所以采用的就可以直接输入数字。当然我们也可以输入16进制或者是二进制,它依然会自动帮我们转换。
效果如上所述,当我们要将一的这个值我们想写它的二进制,那我们就需要0b开头然后它的二进制是多少,我们就写多少。
如果二进制过于长,我们可以用下_进行一个连接的作用。
不影响任何值的效果。
Csharp 转义符(书 P31)
转义序列转义序列就是当我们在程序当中,我们想输出一点。特殊符号。使用特殊的一些符号来代表它的含义。
也可以用\u000A 也是换行效果 和\n一个意思
- Console.WriteLine("我我我我我我我我我我我\u000A我");//等于上图 \n
Csharp 表达式(书 P32)
一元运算符,处理1个操作数、二元运算符处理2个操作数、三元运算符处理3个操作数。
其中三元运算符就是处理3个操作数。第一个操作数是一个布尔类型的判断。如果第一个操作数度返回的结果是true,那么第2个表达式的结果就是整个表达式的结果。如果第一个表达式返回的是false,那么第3个表达式的结果就是整个表达式的结果。
Csharp Uising 当中static(书 P37)
using 引用中加static静态关键字在其静态类可以不用在写类名直接调用方法名字就好 (static 后是其类所在的位置)
如 Console.WriteLine();
被namespace 修饰的为名称空间
Csharp Goto关键字(书 P46)
Switch case。中的关键字。goto。
- string i = "1";//是预知当前的值是多少
- switch (i)
- {
- case "1": Console.WriteLine("1"); goto case "2";//执行完去case 2 语句 执行case 2 后面的代码 指向代码
- case "2": Console.WriteLine(2); break;
- case "3": Console.WriteLine(3); break;
- case "4": Console.WriteLine(4); break;
- default: Console.WriteLine("NO"); break;
- }
Csharp 枚举(书 P61)
定义
- enum fangxaing : int //默认就是int //指定基本类型 //声明枚举
- {
- 上,//默认是0 开始 依次累加
- 下,
- 左,
- 右 //向里面添加值 //逗号分割 最后一个不要
- }
使用
- //string //引用类型
- string Str;
- fangxaing meiju1 = fangxaing.上;//声明一个枚举变量 并赋值
- Console.WriteLine((byte)meiju1);//meiju1
- Console.WriteLine(meiju1);//不toint 输出的就是文本
- //把枚举类型转换为其他类型必须显示转换 即便类型一致
转换string
- //枚举类型转换为string类型
- //1
- meiju1.ToString();
- //2
- System.Convert.ToString(meiju1);
- //
- string sree = "左";
- meiju1 = (fangxaing)Enum.Parse(typeof(fangxaing), sree);//将string类型转换为枚举类型
- P ju = (P)Enum.Parse(typeof(P), "Aio");//严格区分大小写
- Console.WriteLine(meiju1);
- Console.WriteLine(ju);
使当前枚举作为别的枚举基础值
- enum fang//作为另一个枚举类型的基础值 多个枚举指向同一个值
- {
- 上 = fangxaing.下,//默认是0 开始 依次累加
- 下 = fangxaing.左,
- 左 = fangxaing.左,//如果赋值将会 累加 如果值一样那么就会 接下来得到的值相同
- 右 //向里面添加值 //逗号分割 最后一个不要
- }
Csharp 结构(书 P64)
结构的话,通常来讲,当我们定义多个变量的时候。我们可以把它定义成结构,因为结构里面可以包含多个变量。
定义
- struct woshiyigeijiegou// 能在当中包含多个 变量
- {
- public string STR ;//在结构当中包涵 string的STR变量
- public P o;//在结构当中包涵 P 枚举类型的o变量
- //结构声明的变量不能在结构中赋值
- }
使用方式
- //结构的使用
- woshiyigeijiegou woshiyigeijiegou;//不用实例化,直接用当前类型变量点。
- Console.WriteLine((woshiyigeijiegou.o = P.aio).ToString());//使用的效果和储存数据的效果和变量没有任何差别。
- Console.WriteLine(woshiyigeijiegou.STR = "SSS");
- Console.ReadKey();
补充一下,foreach循环当中item不能被赋值。因为循环只对当前循环的内容做只读访问 for循环可以
补充2 boolean boo类型的封装,效果一样
Switch case表达式模式匹配
我们通常switch case的后面跟的条件都是对已知的值进行一个判断,但其实case后面也可以接表达式。可以判断当前这个值是否在某个区间。也可以使用关键字进行添加附加条件。(c# 7中及以上)如when 也可以在case语句结束后不想跳出想执行下一个case 那么可以用go to 关键字
- string i = "1";//是预知当前的值是多少
- switch (i)
- {
- case "1": Console.WriteLine("1"); goto case "2";
- case "2": Console.WriteLine(2); break;
- case "3": Console.WriteLine(3); break;
- case "4": Console.WriteLine(4); break;
- default: Console.WriteLine("NO"); break;
- }
- //// 1 使用swich 进行区间判断 c#7 中
- switch (i)
- {
- case null: Console.WriteLine(1); break;
- case string o when i.Length == 1: Console.WriteLine(2); break; //when 允许添加一个附件条件
- case var va: Console.WriteLine(3); break;//判断是否为 字符串类型
- }
- //使用swich 进行区间判断 c#7 中
- string[] strings = { "TOny", "longo" };
- foreach (string item in strings)
- {
- switch (item)
- {
- case string value when value.Length == 2: Console.WriteLine(1); break;
- case string values when values.StartsWith("T"): Console.WriteLine(2); break;
- case null: Console.WriteLine(3); break;
- case var ss: Console.WriteLine("4"); break;
- default:
- break;
- }
- //Console.WriteLine(item);
- }
Csharp 多维数组(书 P71)
多维数组在我们的程序中,在有时需要用两个坐标指定一个位置坐标如X,Y两个坐标代表一个高度。我们想实现两个数字指向一个数字(高度)使用二维数组
声明方式
普通数组的声明方式 (含两种写法)
- int[] ints; /*ints = new[] { 1,2,3,4,5,6} ;*/ ints = new int[100];
多维数组的声明方式(多维数组中的二维数组)
- int[,]ints1= { {1,2,3 },{ 5,6,8} };
- 取值 intts1[2][2]
其中ints1二维数组中的值8 就是第2行第2列
如图
如果您想声明3维数组或者更多 (统称为多维数组)
- int[,] ints;//二维数组
- int[,,] ints1;//三维数组
- int[,,,] ints4;//四维数组
- int[,,,,] ints5;//五维数组 ...以此类推
Csharp 数组的数组又称锯齿数组(书 P72)
组当中的元素也是另一个数组 可以有数组的数组,也能有数组的数组的数组。可以更复杂,需要注意的是,其中的数组必须是同一类型
数组的数组的声明
- int[][] ints = { new int[] { 1, 2, 3 }, new int[] { 5, 64654, 4 } };//数组的数组
其中的元素就是另一个数组 int [] [] 这是声明的两个数组的数组 int [][][] 数组的数组的数组......以此类推
示例+
- int[] ints2 = { 1, 2, 3, 4, 5 };//普通的数组
- int[][] ints3 = { new int[] { 1, 2, 4, 5 }, new int[] { 5, 6, 7, 5, 8 } };//数组的数组
- int[][][] ints3s = { new int[][] { new int[] { 1, 2, 3, 5, 6 } }, new int[][] { new int[] { 5, 4, 5, 8, 6 } } };//数组的数组的数组..
Csharp 字符串的处理(书籍73-76)都是方法 暂时不做解释
- string str = " 龙涛yes";
- string ty = "es";
- WriteLine(str.Trim(ty.ToCharArray()));//利用 Tochararry 转换的char数组 放入 方法Trim他就不仅是可以删除空格
- //还可以删除指定中Char数组中的元素
- string strs = "1";
- Console.WriteLine( strs.PadLeft(5, '_'));//向左填充字符串 让他达到指定的长度 参数二可以选择填充的char 元素内容
- Console.WriteLine(strs.PadRight(5, '_'));//向右填充
- //常用
- strs.Split(new char[] { ' ' });//再每次指定char 数组中的元素分开 目前效果是在每个空格处隔开
- ReadKey();
C# 关键字 When p69 checked uchecked
Checked是同用做变量转换时是否溢出的一个检查、Uchecked时程序默认效果 示例如下
- byte vass;
- short sour = 281;
- vass = unchecked((byte)sour);//当前这个sour 的值其实超出byte的接收范围了
- //只不过转换过程中可能 不会报错但 如果超出就会实现溢出 溢出的后果就是部分数据丢失
- //System.OverflowException:“算术运算导致溢出。” 使用关机字 溢出检查 checked 溢出就会报错
- //被包括在内的将 会进行一个溢出检查
- //还有一个关键字 unchecked 和之前默认的一样 不会报错、
- //当然您可以在设置中打开 每次表达式自动检查 详书P58
- Console.ReadKey();