zoukankan      html  css  js  c++  java
  • C#学习笔记一(概念,对象与类型,继承)

    一.基础

    1.CLR为公共语言运行库,类似于JVM

    2..NET Framwork是一个独立发布的程序包,其包含了CLR,类库及相关的语言编辑器等工具,类似于JDK,除了C#,还有其他几种语言在CLR上运行。

     二.核心

    1.using static 空间名.类名;可以将一个类的静态方法暴露出来直接调用。

    2.每个C#可执行文件都必须有一个入口点Main()方法,如果有多个类都有Main方法,那么只执行其中一个。可以在项目属性里面设置Main的参数。

    3.任何变量必须赋值(初始化)之后才能使用。

    4.var是推断类型,系统会根据var的初始化的值的类型确定其类型。

    5.声明常量的方式为const int a=2; 常量可以在方法或者类成员中定义,类成员常量总是隐式静态的,不允许添加修饰符static。

    6.在语法上可以把所有的基本数据类型看成支持某些方法的类。例如把int i转换成string类型,string s=i.ToString();但是实际上i仍然存储为基本类型。

    7.string是一个引用类型。string对象被分配在堆上而不是栈上,因此档把一个字符串变量赋予另一个字符串时,会得到同一个字符串的两个引用。但是,string与引用类型的常见行为有些区别。例如,字符串是不可改变的,修改其中一个字符串,就会创建一个全新的string对象,而另一个字符串不发生任何变化。从这一点上有点类似值类型。

    8.转义字符@的使用 string path=“C:\a\d.text”;等价于string path=@“C:ad.text”; 同时这里还支持使用直接换行。

       转义字符$允许把花括号放在一个包含变量或者表达式代码的字符串中。例如 string s=“hello world”; console.WriteLine($"我要输出 {s} ");

    9.关于C#中switch语句,case后面执行语句后没有break语句的会被标记为错误,如果一个执行语句为空,且没有break,就会自动跳到下一个case,关于这点的使用懒得写,看书;case的位置是无关紧要的,甚至可以把default放在最前面。switch的case 支持变量,但是case的变量不能相等。

    10.foreach循环不能改变集合的中各项的值,如果需要应使用for循环(如果各项的值是引用类型好像能改变)。

    11.命名空间的一般规则为:公司名.项目名.功能名。

        可以在using语句上给较长的命名空间起一个较短的别名,从而减少编码的长度。但是使用命名空间中的类时,使用::符号,如,别名::类名 a=new 别名::类名();

    12.在命名规则内C#支持任何Unicode字符组合成的标识符。如果要让关键字成为标识符,可以在前面加上@,如 string @int=“hello”;

    13.命名规则推荐使用camel(首字母小写)和Pascal(首字母大写)。

     三.类

    1.属性可以用来存储值{get;set;},可以通过给get和set设置public private等设置访问权限,也可以用来设置对字段的访问权限{get{return xx;} set{xx=tt;}}。

    2.方法的重载的要点是参数的类型或者数量不同。

    3.可以调用方法时,可以明确参数的意义如test.do(x:20, y:15, t:true);

    4.可以设置可选参数void test(int a,int b=2){...},因为b已经定义,因此test可以只传递一个参数 test(3);

    5.使用param可以定义参数的数量或者不同类型的参数,具体的,妹的,懒得写在第81页。

    6.静态构造函数:这个函数在程序启动后自动执行一次,不需要实例化,并不影响正常的构造函数的执行。这里主要用来做一些静态变量的初始化工作。例如如果静态变量backColor表示星期几的颜色,那么这里可以由静态构造函数自动设置,而省去了实例化后再由其他程序设置的过程。

     7.只读readonly关键字,去他妹的,真鸡肋的关键字,不想写。

     四.继承

    1.类不支持多重类继承,但支持多重接口继承;结构体只支持接口继承。

    2.属性也能定义成虚的。

    3.方法名前用new进行修饰的最大总用应该是用来进行解决版本冲突。

    4.seald修饰符,如果放在类名前修饰类,表示这个类不能被继承,放在方法前表示方法不能被重写。

    5.接口也可以继承一个接口。

    6.is用于判断当前实例是否可以强制转换成某一个类;as用于直接转换,如果结果不为空,即转换成功,结果为空,即转换失败。这样就避免了转换异常的出现。

  • 相关阅读:
    linux下创建和删除软、硬链接
    linux教程:[4]配置Tomcat开机启动
    Linux下Tomcat的启动、关闭、杀死进程
    Linux下Tomcat的安装配置
    Linux安装JDK详细步骤
    每天一个linux命令(30): chown命令
    linux系统修改系统时间与时区
    linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
    linux下解压命令大全
    Scoped CSS规范草案
  • 原文地址:https://www.cnblogs.com/xiaoahui/p/10802710.html
Copyright © 2011-2022 走看看