c#语法笔记

时间:2022-06-06 04:51:07

书写代码需要注意的地方:

  1、代码中出现的所有标点都是英文半角 shift键快速切换中文半角和英文半角
   shift+空格 切换全角/半角
  2、在c#代码中,每行代码的结束,我们都以分号结束,注意:这个分号也是英文半角的分号。

命名规则:
****首先要保证的就是这个变量的名字要有意义。
    1 现阶段给变量起名字的时候都以字母开头
    2 后面可以跟任意“字母”、数字、下划线.
  注意:
    1)你起的变量名不要与c#系统中的关键字重复.
    2)在c#中,大小写是敏感的. HTML不敏感
    3)同一个变量名不允许重复定义(先这么认为,不严谨)

命名规范:
  1、Camel 骆驼命名规范。要求变量名首单词的首字母要小写,其余每个单词的首字母要大写。
  多用于给变量命名。
  2、Pascal 命名规范:要求每个单词的首字母都要大写,其余字母小写。多用于给类或者方法命名。
  HighSchoolStudent

  highSchoolStudent

占位符{0}...

  Console.WriteLine("{0},{1}",变量1,变量2...);

  使用方法:先挖个坑,再填个坑。
  使用占位符需要注意的地方:
    1、你挖了几个坑,就应该填几个坑,如果你多填了,没效果。
       如果你少填了,抛异常。
    2、输出顺序:按照挖坑的顺序输出。

  输出保留几位小数:{0:0.00}  //输出保留两位小数

转义字符和@符号: 

  转义符指的就是一个'\'+一个特殊的字符,组成了一个具有特殊意义的字符。
    \n:表示换行
    \":表示一个英文半角的双引号
    \t:表示一个tab键的空格
    \b:表示一个退格键,放到字符串的两边没有效果。
    \r\n:windows操作系统不认识\n,只认识\r\n
    \\:表示一个\

  @符号
    1、取消\在字符串中的转义作用,使其单纯的表示为一个'\'
    2、将字符串按照编辑的原格式输出

类型转换:

  前提条件:类型兼容、要求等号两边参与运算的操作数类型一致  比如:int double都是数字类型

    自动类型转换(隐式转换):小的转大的(指取值范围)int--->double

    强制类型转换(显式转换):大的转小的(指取值范围)double--->int  int x = (int)y;

  如果两个变量的类型不兼容比如string 和 int

    需要使用Convert.toInt32  //Convert.To对应的类型

    另外一种写法:类型.Parse 或 类型.TryParse  //int.Parse  int.TryParse

/// C#文档注释:

  作用:用来对类、方法等进行解释说明。

变量相关:

  局部变量:一般在方法内定义的变量

    使用规则:1、先声明或定义  2、后赋值或初始化  3、再使用(输出或参与运算)

  decimal:主要用于财政金融方面,精度要求比较高就是小数点后面位数比较长银行、会计部门用得比较多。值后面加一个字母m表示money。

  char:  最多、最少只能也必须有一个字符,不能存储空,可以存储一个中文字因为采用Unicode编码 16位 一中文占两字节(一字节8位)

运算符:  

  ++、--  //前置、后置一元运算符 (需要几个操作数参与运算才能完成的叫做几元运算符,像++、--只需要一个操作数) 

    区别:单用体现不出来,参与赋值就体现出来了。但最终结果都会给自己自增1

    int x = ++number  //number先自增1,再赋值给左边的变量x。

    int x = number++  //number先把自己原样赋值给左边的变量x,再自增1。

  逻辑运算符:&&、||、!(俗称短路与、短路或)

    一般用这三个比较多,而用&、|按位与、或的比较少,为什么:因为效率比较高当然操作二进制方面按位运算有优势。

    int x = 5;  bool result = (5 < 3) && (x++ > 2)  结果:result = false,x=5因为前半部分为假就可以确定整个表达式的结果,后半部分不再执行。

    int x = 5;  bool result = (5 > 3) || (x++ > 2)    结果:result = true,  x=5原因同上。

异常捕获try和catch之间不能有其他的代码  

if else if 和 switch case 

  共同点:都可以实现多条件分支判断

  不同点:if else if多条件区间  switch case多条件定值  一般if else if可以实现 switch case的功能反之则不一定

break
  1、可以跳出switch-case结构。
  2、可以跳出当前循环。
  一般不单独使用,而是跟着if判断一起使用,表示,当满足某些条件的时候,就不再循环了。

封装:

  二个意义:第一是把数据和处理数据的方法同时定义在类中、第二是用访问权限控制符使数据隐蔽。

构造函数:

  定义:和类名相同,没有返回值,默认不带参数,可以自定义带参数构造函数。

  调用:每当用new关键字生成类的实例(对象)的时候,会自动调用类的默认无参数的构造函数。

  作用:完成一些初始化工作,例如对数据成员初始化。

析构函数:

 变量和类的对象都有生命周期,生命周期结束,这些变量和对象就要被撤销。类的对象被撤销时,将自动调用析构函数。

  定义:名字为~类名,无返回类型,也无参数。

  调用:不能显式调用,它是被垃圾收集器撤销不被使用的对象时自动调用的。

  作用:一些善后工作可放在析构函数中完成。

重载Overload:(构造函数、通用函数)

  定义:同一个类中的函数,如果函数名相同,而参数类型和个数不同,认为是不同的函数,仅返回值不同,不能看作不同的函数。

  调用:根据生成类的对象方法不同,调用不同的构造函数。

  作用:提高程序的可读性,用更少的代码量做更多的事,为“多态”特性打下基础。

  注:由于析构函数无参数,因此,析构函数不能重载。