> 文章列表 > 【C#个人错题笔记】

【C#个人错题笔记】

【C#个人错题笔记】

观前提醒

记录一些我不会或者少见的内容,不一定适合所有人

字符串拼接

int a=3,b=8;
Console.WriteLine(a+b);//11
Console.WriteLine("a+b");//a+b
Console.WriteLine(a+"+"+b);//3+8
Console.WriteLine("a+b"+a+b);//a+b38
Console.WriteLine("a+b"+(a+b));//a+b11

ASCII码:

char a='a';
int b=a;
Console.WriteLine(a);//a
Console.WriteLine(b);//97

强制类型转换

如果遇到的是值a超出范围了,那么VS会提示报错,就是不容许你把一个大容器的水装入到小容器中,这会导致溢出。

所以就需要用到强制类型转换,但是精度会下降。

原则int b=a;左边值的容器大小 ≥\\geq 右边值所需容器大小

所占字节大小(容器大小)byte,short,char < int < long <float <doublebyteshort参与运算会自动转换成int

接下来通过类似如下语句的写法(格式化)展示大小

Console.WriteLine("{0}:\\t 所占字节数: {1}\\t 最小值:{2}\\t 最大值:{3}\\n",typeof(byte).Name, sizeof(byte), byte.MinValue, byte.MaxValue);

【C#个人错题笔记】
注:

  • U的意思是无符号
  • SByte 数据类型可包含不需要 Integer 的完整数据宽度甚至 Short 的半数据宽度的整数值
  • decimal 类型较于 double 具有更高的精度和更小的范围
  • Int16shortInt32intint64为long,Singlefloat

测试用例:

int a=97;
char b=(char)a;
输出...

@的妙用

作用1:不让转义字符生效

char a='\\n';
char b='\\\\';
//方法一:
Console.WriteLine("\\\\a\\\\b");
//方法二:
Console.WriteLine(@"\\a\\b");

作用2:字符拼接但是换行!
+拼接字符串还是有些区别的

注:如果想要在拼接\\a\\b字符中间插入",写法为@"\\a""\\b"

            string str = @"\\a
\\b";Console.WriteLine(str);

【C#个人错题笔记】

输入

Console.ReadLine():最终得到的是string类型

string a=Console.ReadLine();

如果想转换成其他类型,比如我输入整数,转成Int类型

int b = Convert.ToInt32(Console.ReadLine());

自增与自减

  • a++先输出再加1
  • ++a先加1再输出

条件语句

if 语句跟C语言类似。

C#强制要求用switch时每个case条件必须要break
【C#个人错题笔记】
:能用switch实现的,都能用if语句实现,反之不成立

简单练习题思路(代码其实不重要)

1、如何让数字倒过来输出

  • 步骤1:输入整数,善用除法/和求余%得各个位数
  • 步骤2:通过字符串拼接输出即可,比如""+十位数+个位数
  • 另一种输出方式:乘法*与加法+结合重新拼一个数

扩展:给你5位数,我只想要千位和十位数,然后按顺序组合成的新数值是?

2、说出下面运算结果的逻辑实现与最终结果

int a = 3;
int b = a++ + a++;
Console.WriteLine(a);//5
Console.WriteLine(b);//7
// (前面的)a先输出3 加上 (后面的)a++,此时(后面的)a值先输出为4
// 于是就为3 + 4 ,最终输出的a值为5

扩展:修改b = a++ + (++a),那么结果为?

我认为最不需要记的知识(知道就行)

程序结构:

  • 入口类(熟能生巧,VS也有提示)

变量:

  • 命名规则(VS会贴心提示你)
  • 数据类型(熟能生巧)

运算符

  • 算术运算符、逻辑运算符、关系运算符的知识(回炉重造,重学C语言吧)