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);

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

类型转换

隐式

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

显式

object myobj;
Book mybook = myobj as Book;
StoryBook myStoryBook = (Book)mybook;

语句

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");
    }
成员隐藏

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

其他

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值