• C#基础点记录


    1、自定义代码段
        工具-》代码段管理器
    3、Random:伪随机数
    4、ref:模拟将值类型作为引用类型去传递,将变量在栈中的地址作为参数传递过去
          out:也是将变量在栈中的地址作为参数传递,不同于ref的是:只输出,不需要输入
          普通:直接将值类型的一个复本传递过去,并不会影响原来值
        ref与out的区别:
            -》ref需要有初始值,再进入函数进行运算
            -》out不需要有初始值,只要声明即可
    5、params可变参数,简化了使用时构造数组的操作
        注意:在传递时,可以不传递任何参数,所以在使用时需要对数组进行判断
        编译时,由系统完成将多个参数构造成一个数组的过程


    6.数字处理:在无界面的情况下,只能只用强转,出错后报异常
        关于值类型的引用传递:一共有三种传递方式:值传递,ref,out
        switch(表达式):类型必须是 bool、char、string、整型、枚举或相应的可以为 null 的类型
        params:可变参数,编译器帮助我们将多个参数封装到一个数组中
            定义方法时,定义为一个数组,方法体中也对数组进行操作
            调用时,直接写值,不用进行数组的构造
            要求:只能将多个参数的最后一个定义为可变参数
    7、索引器:类似于属性,完成类中数组的封装,包括set与get两部分
        属性用于完成类中字段的封装
        定义:使用this[参数]
            {
                get
                {
                    ...
                }
                set
                {
                    ...
                }
            }
    8、方法重载
        在一个类中,方法的名称相同,参数不同(参数的个数或类型不同)
        方法的签名:访问修饰符 返回类型 方法名称(参数列表)
        对于方法重载:只考虑方法名称、参数列表部分,与返回类型、访问修饰符无关
    9、字符串可以当作字符数组看待(不能修改)
    10、this:表示当前类的某个实例
        变量的作用域:按块划分,以大括号为界线
        自动属性:如果不对字段中的数据进行特别操作,只是直接进行设置或返回,可以写成自动属性,比较省事
            编译器会为自动属性生成一个后台使用的字段
        程序集是类文件物理上的反映,命名空间是类文件逻辑上的划分
            一个程序集可以包含多个命名空间
            一个命名空间可以包含在多个程序集中

    11.索引器和数组字段有什么区别
            同:属性与字段,字段用于存储数据,属性封装字段,完成字段的读写操作,封装的目标,是出于安全性的考虑
            数组字段:用于存储一组相同类型的数据;索引器是对类中的数组成员进行封装的就去
            如何得到类中数组的无数的个数:定义一个只读属性Length
        详细讲下this的用法:表示当前类的某个实例,调用当前类中的成员;调用类中的其它构造方法
            如果在一个范围内,引起了冲突,就必须加this以表示这个成员是类级别的成员;如果不会引起歧义,可以不加this关键字
        构造方法:直接快速完成类中某些字段值的初始化
        类前面默认的访问修饰符是:internal
        计算器中char key = e.KeyChar; 的使用还是不太理解
        方法重载:方法名相同,参数不同(参数个数或类型不同)
    12、构造方法
        构造方法也可以重载:参数不同(参数个数或类型不同)
            如果没有定义构造方法,编译器会为我们生成一个无参的构造方法
            当我们在类中自定义了构造方法后,编译器将不再为我们生成无参的构造方法
            一个构造方法中,只能调用其它的任意一个构造方法,在构造方法后面使用:this(参数列表)
            静态构造方法:只会在类加载时执行一次,完成类中静态字段的初始化
    13、在一个类中,方法和构造方法的区别
        方法:用于表示对象的行为、动作
        构造方法:为了快速完成类中成员字段的初始化而写的一个方法
        这两个东西没有什么需要比较的
    14、索引器中的this【】有神么作用
        就是定义索引器的语法格式
    15、Combobox中直接存储对象
        对于存储的数据和显示的数据,可以不一样:通过类的封装实现
        将combox改成只选,不允许用户输入:DropDownStyle-DropDownList
        ->难理解1:存储的数据是一个学生对象,显示的数据是对象的一个属性
        ->难理解2:在combobox中显示的对象的内容,是调用对象的tostring()方法返回的字符串
        步骤:
        ->新建学生类,重写ToString()方法
        ->实例化对象,添加到Combobox中Items.Add
        ->点击时,获取对象SlectedItem,进行类型转换得到学生对象
    16、对象初始化器
        类中必须要有一个无参的构造方法
        使用时,不需要给构造方法中传递参数,直接使用{属性1=值1,。。。}
        构造方法的小括号可以省略不写
    17、继承:
        继承关系,是描述类与类之间的关系,而不是对象与对象之间的关系
        判断两个类中是否有继承关系,可以使用"A 是不是B"来判断,如果是则A继承B,如果不是则不继承
        单根继承性:一个类只能直接继承于一个其它类
        传递性:祖宗类的成员可以通过间接继承被后代类所拥有
        继承的时候,构造函数是不被继承的
        继承中的构造方法的执行过程:
            当调用某个类的构造方法时,判断有没有base或this,
            如果有,则跳到相应的方法处去执行;
            如果没有,去执行父类无参的构造方法;
            到object类的无参构造方法为止
    18、访问修饰符
        类中属性或字段的访问级别不能比所对应的类型访问级别高
            在程序集A中,写如下代码
            internal class Car{
                ...
            }
            public class Person
            {
                public Car car{
                    get;
                    set;
                }
            }
            在程序集B中写如下代码
            Person p=new Person();
            p.car=new Car();//这句代码会出错,因为Car是internal的访问修饰符,出了程序集将不会再被访问到
        方法的访问级别不能比方法的参数和返回值的访问级别高
            在程序集A中,写如下代码
            internal class Car{...}
            public class Person
            {
                public Car Drive(string brand)
                {
                    return new Car(brand);
                }
            }
            在程序集B中,写如下代码
            Person p=new Person();
            Car c=p.Drive("audi");//这句代码会出错,无法正常执行,在调用new Car(brand);时将报错

  • 相关阅读:
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    面向对象
    3.1
    面向对象
  • 原文地址:https://www.cnblogs.com/zxx193/p/2997935.html
Copyright © 2020-2023  润新知