C#零碎知识点笔记(容易混淆的一些点)

1:按CW+TAB就可以完成打印命令的快速输入;

2:声明变量的时候 记得在使用的时候给这个变量一个初始化;

3:明白 CPU___内存----硬盘 之间的 相互关系;

4:在增加浮点数的时候要记得为每一个变量后边加f 因为系统默认的是double 所以在面对float的时候记得为变量添加f;

5:字面值常量是不可以改变的; 在一个变量前面加Const的话 就可以让这个变量变成一个常量(在java中 static也是这个道理);

6:常量的使用是为了在项目中表示那些不可以被改变的值,这样在项目中一不小心改变的时候我们就可以得到系统的提示;

7:在变量的类型里面仅仅拥有两个赋值的是BOOL类型;

8:使用sizeof();可以打印出来字符在内存中占有的字节;int 在变量中占有的字节为4个字节空间也就是(32位);short 在变量中占有的字节为2个字节空间也就是 (16位);、

9:在运算符中如果除号两边连接的都是整数的话那么他的结果也是整数,会省略小数点值得注意;

10:在运算符中正负号也是运算符叫做单目运算符,其余的运算符叫做双目运算符;%叫做取余运算符;

11:a += 5;表示的是a在原有的基础上增加5 这是特殊的赋值运算符;

12:顺应算法的结合性除了赋值运算其余的大多都是从左往右按照算法的优先级来进行计算的;

13:Convert.ToInt32 是由系统提供的强制类型转换的方式;这个方法在转换的过程中会发生四舍五入。

14:int32 后面的32表示的是32位这个表示在内存中占有16个字节也就是int类型;

15:int16 int32 int64 分别表示的是 short int long的意思;uint 中  u表示的是无符号的意思;

16:Convert.ToSingle();表示的是在强制转化成单精度的意思;其中的single的意思是单精度的意思;

17:类型的解析方法是专门 去转化一个字符串的转化(string);可以使用系统自带的Convert.ToInt();的方法也可以 int v = int.Parse (str);的方法。其中的Parse就是一种令字符串转化成整形数据的一种方式;

parse 的意思就是解析的意思。

18:其实在字符串中一般是不可以使用运算符号的 但是在可以使用+号的特殊情况比如:

    string str =  "麦子";

    string say  = "的春天";

    say = str + say;

  Console.WriteLine(say);

输出的是: 春天的麦子;

这个实现的过程就叫做字符串的拼接;通过加号来进行拼接的;+= 也可以实现这个过程 其原理和 前面的这个加号 是一样的效果;

19:转义字符

中\n 表示换行 其也可以在字符串中去实现;

\t 表示的是 制表符 就是前一个字符前进行缩进的意思;(在其前面可以空出四个空格)

\"表示一个双引号;\'-表示的是一个单引号;

\\-表示在字符串中表示的是 \的意思;

如果想打印出\n的话 我们有两种办法 : string str = "我要使用 \n 表示换行";

第一种: 就是在 需要的在 \n  前面再加一个\  组成\\n 这样就可以完成输出 了

第二种:就是在 字符串前面加 @ 这个符号就可以完整的输出了; 在字符串前面完整的加@ 就可以使 字符串中所有的 转义字符都失效;

在使用@后-转义字符都失效以后我们可以使用两个双引号来实现字符串中双引号的效果;

 20:writeline 和write的区别就是前者可以完成换行的操作 后者直接跟着前一行的信息进行输出;

 21:在格式化输出中 大括号表示的是占位符,其中大括号内部需要一个索引号,索引是从0开始的。其中的索引代表的是逗号以后的每一个变量的位置。

22:关系运算符有: > ,<, >= ,<=,!=,== 逻辑运算有 || && ;

23:程序的三种语句: 顺序语句  分支语句 循环语句 ;

24:由if语句组成分支语句,分支结构是通过判断,在多个语句块中选择某一个来执行;

25:问号表达式:

  int i = int.Parse(Console.ReadLine());

  string str = "";

  str = ( i >= 100 )?"双11":"双12";

  Console.WriteLine(str);

  条件表达式? “表达式一”:“表达式二”;

26:switch语句也是属于分支语句的一种是通过判断条件语句中的值来选择执行下面的分支语句。里面的break用来结束每一个条件语句,case表示每一个分支。

27:default 语句可以舍弃,但是最多有一个。

28:在switch中的表达式中的值只能是整数和字符串不能是浮点数;表达式和case中的值都是一样的,而且case后面的值不能跟变量 那么就只能是常量和常量表达式。case后面的值必须是确定的。

29:多个case可以同时执行同一个代码块;如果case中包含代码那么必须在结尾的部分写上break,不然就会报错。

30:break 也可以使用在循环语句中让循环的代码结束工作。

31:continue 表示的是跳过本轮循环,但是会继续执行下面的代码。

32:每一个二维数组中的元素都有两下标;

33:使用双循环来遍历每一个数组的两个下标;

34:foreach (int num in number){

}

使用foreach 可以快速的遍历二维数组中的每一个元素;遍历整个number数组中的每一个元素;

35:当我们对循环本身的整个过程不需要控制,只需要关注数组中的每一个元素的时候我们可以使用foreach;

36:如果在开发中用到一些以后可能修改的常量 我们最好在初始化以前先 进行一个const的声明,这样在后期的debug的时候可以方便改动;

37:枚举类型是为了让我们自己定义一些我们需要的类型; enum + 名称{}构成一个 枚举类型;

38:枚举类型的变量只有给其初始化赋值以后才能使用;所以在声明一个枚举类型的变量的时候记住要为其赋值,而且在赋值的时候付的这个值必须是有效的值;

39:枚举类型的变量在赋值的时候是以  Week w = Week.Friday ; 后面中是以Week.Friday 这种形式赋值的 其中的friday是枚举类型中的初始元素。

40:可以在不同的枚举中定义同一个枚举值,这是因为它在调用的时候必须使用枚举的名称加上这个值来调用所以不会发生冲突的问题;

41:枚举是被命名的整型常数的集合;其实在内部每一个枚举的值都被赋予一个整数值,从0开始一直到往后+1;

42:定义结构体。结构体是一个复合容器;结构体是由一系列的不同的数据类型构成的集合;

  struct 结构体名 {

    访问修饰符 + 类型 + 变量名;

    访问修饰符 + 类型 + 变量名;

    ......

    访问修饰符 + 类型 + 变量名;

  }

43:使用结构体的时候先声明一个变量名称,然后使用  结构体的变量名.结构体中定义的成员名;

44: 结构体在定义成员的时候是不能被初始化的如果这样做了就会发生报错的问题;

45: 类的作用就是为了分类;类还是用来抽象出物体的特征和行为;类是用来描述具有相同特征和行为的抽象;

46: 对象也可以叫做一个类的实例;

47:字段是用来描述一个类中的属性;

48: 方法是用来描述一个类中的行为;

49: 在C#中只有类中才能定义方法,方法无法写在类以外的地方;

50: 方法的定义格式是: 访问修饰符 +返回值类型+大写的方法名称 (参数列表){语句  有返回值的 加+return +返回值;}

51: 在一个方法中参数列表中输入的值在方法被调用的时候我们必须保证其赋值是相同的类型而且必须赋值;

52:如果方法的返回值是void 那么在将对象调用这个方法的是就无法为其他不同类型的值进行赋值;i = c.name();c.name();这个方法的类型这时候就是void; 

 53: C#中专门提供用来访问那些private变量的 “”属性方法“”;

 54: 属性的写法为 访问修饰符 + 属性类型 + 属性名称 {set{。。。},get{。。。}};

55:  在属性中 设置set 和 get 的 方法中get的方法中的value是一个关键字,这个关键字只有在这种属性中有意义。表示的是外界将要传进来的值;其中的set 和 get叫做访问器;

56:值类型和引用类型;

57:值类型中系统在栈中会自动的开辟空间,而引用类型是手动的使用new的时候在堆中开辟新的空间。

58:值类型变量在互相赋值以后,对两个变量的任何操作都不会互相影响,因为他们都有各自相互的储存空间。

59:引用类型在互相赋值以后,他们公用的一个new开辟在堆上的空间所以其结果是相互影响的;

60:定义一个方法的时候,我们在方法参数列表中定义的参数叫做形参;调用方法的时候我们传入的参数叫做实参;

61:如果想在方法内部对参数进行修改而不影响外来的值,就必须使用应用类型的参数;

62: 


public class MyClass {

public void Swap (int a, int b) {
int temp = a;
a = b;
b = temp;
}
}

class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
int i = 5;
int j = 12;

c.Swap (i, j);
Console.WriteLine ("i= " + i);
Console.WriteLine ("j= " + j);
}

}

这个代码告诉我们在调用 Swap方法的时候,i和j 只是将 值传递给了a和b 这样a和b又互相在里面进行了开辟空间,那么这时候开辟了四个空间 i ,j,a,b这四个空间,根据“值类型变量在互相赋值以后,对两个变量的任何操作都不会互相影响,因为他们都有各自相互的储存空间。”这个理论无论在再改变a,b两个值得内容也不会对i,j这两个值产生影响。所以打印出来的i,j两个值是没有改变的;

63:如果想对外部的值在方法内部进行影响的话,我们传递进来的参数就必须是引用类型的参数;使用ref关键字来进行定义引用类型;

public class MyClass {

public void Swap (ref int a,ref int b) {
int temp = a;
a = b;
b = temp;
}
}

class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
int i = 5;
int j = 12;

c.Swap (ref i, ref j);
Console.WriteLine ("i= " + i);
Console.WriteLine ("j= " + j);
}

}

通过这样的加ref的转换我们就可以输出一个正常的交换;

64:如果一个方法需要返回多个返回值,那么我们可以使用输出参数来处理,就是在参数前面加out这个关键字;

如果我们在使用out参数的时候我们应该先给这个参数进行初始化这样才能使用;

65:如果我们在使用一个方法的时候不能确定传入多少个参数的时候我们就可以使用可变参数;params后面必须是一个数组 列: public int Sun (params [] para){

}

转载于:https://www.cnblogs.com/ylllove/p/6374553.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值