• c#基础0-类型、起步


    整理和记忆一部分学习过程中的基础知识

    类型

    C# 是强类型静态语言,每一个变量具有类型,描述这个变量占内存空间大小。

    变量的类型,决定了:

    • 变量存储时所需的内存空间大小

    • 变量的最大值、最小值,也就是取值范围

    • 这个类型所包含的一些默认成员方法 GetProperties() GetMethods() string.Empty

    • 这个类型由哪个基类派生

    • 程序运行时,变量在内存中的分配位置,堆区还是栈区。
      一般而言,堆区存放对象实例,堆空间比较大、读写慢;
      栈区存放函数上下文,栈空间比较小、读写快

    • 这个类型允许的一些操作 + - += -=

    获取基本类型

    Type t = typeof(num1)

    使用反射时会更多的用到 Type 类

    引用类型

    类(对象)、接口、委托、数组、字符串

    引用类型的变量,保存的是它所引用的对象在堆区的起始地址,这个对象内部的成员属性,也是存放在堆区。

    值类型

    原始类型(byte int short long char double bool 等等)、结构体struct、枚举enum

    基本数据类型

    object string 等等 又叫已定义数据类型、内置数据类型、基本数据类型

    自定义数据类型常用的关键字

    class interface delegate struct enum
    这些关键字就是让程序员可以自定义 类、接口、委托、结构体、枚举

    装箱

    用一个对象实例后,得到的变量,将栈中的值变量,保存到堆中的某一地址的内存中

    System.Object obj=i;

    拆箱

    将堆中某个对象实例后,得到变量的内容,转换为栈中的某个类型的值变量

    int j=(int)obj;

    参考阅读–C#核心概念–装箱和拆箱

    数值类型的取值范围

    整数 int 范围在 [-2147483648,2147483647] int.MaxValue

    双精度 double 范围在 [-1.7976931348623157E+308,1.7976931348623157E+308]

    十进制数 decimal 范围在 [-79228162514264337593543950335,79228162514264337593543950335]

    访问修饰符

    不写时,默认是私有 private

    static 表示这个成员属于类,而不是类的实例,所以可以通过 类名 . 成员 访问,而不是通过 类实例 . 成员 访问

    方法

    方法的签名,即方法名 + 括号内的形式参数类型

    方法调用时,可以使用位置自变量或者命名自变量或者一起用

    命名自变量就是可以改变传参顺序,如下

    public virtual int Drive(int miles, int speed) { /* Method statements here */ return 1; }
    
    moto.Drive(speed: 60, miles: 170);
    
    • 1
    • 2
    • 3

    写自定义构造器时不像C++语言,c#直接写 public MyClassName(){get;set;}

    类型转换

    隐式

    子类向父类转换后,父类不能再访问子类特有的成员

    显式

    object myobj;
    Book mybook = myobj as Book;
    StoryBook myStoryBook = (Book)mybook;
    
    • 1
    • 2
    • 3

    语句

    int x =1;

    这叫1个声明语句,包含了初始化器

    int x;x=1;

    这叫声明变量后,为变量赋值(初始化器),算2个语句

    类的默认访问级别是 internal ,在当前程序集下的命名空间和类的派生类中有效

    类是单继承的

    子类的访问级别不能超过父类

    seal 修饰的类不能作为基类

    protected 限制了类的成员只能被同一继承链的派生类访问

    方法的重载

    基类中该方法用 virtual 修饰,派生类中该方法用 override 修饰

    派生类调用基类的某个构造函数时,通过 base 关键字调用指定父类的构造函数

    	//这是 Apple 类的第二个构造函数。
        //它使用“base”关键字指定
        //要调用哪个父构造函数。
        public Apple(string newColor) : base(newColor)
        {
            //请注意,该构造函数不会设置 color,
            //因为基构造函数会设置作为参数
            //传递的 color。
            Debug.Log("2nd Apple Constructor Called");
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    成员隐藏

    在派生类中使用 new 关键字修饰与基类同名的方法,就能隐藏掉基类同名的方法。(如果不隐藏,则派生类会调用到基类的同名方法)

    其他

    线程等待 1 秒 Thread.Sleep(1000);

    unity官网课堂中的C#中级编程

  • 相关阅读:
    【day09】继承、super、this、抽象类
    被忽视的钣金零件外观设计
    线程池拒绝策略最佳实践
    网络安全中常用浏览器插件、拓展
    赚麻了!!!
    H5 tab点击切换CSS样式- 微信小程序开发技术要点总结(一)
    Git常用命令与术语
    线程的创建方式4:使用线程池
    Spring MVC中通过配置文件配置定时任务
    PHP毕业设计项目作品源码选题(7)旅游景区景点售票系统毕业设计毕设作品开题报告
  • 原文地址:https://blog.csdn.net/qq_42534809/article/details/126565792