十二、类与声明

类与声明

什么是类?

在这里插入图片描述

前情总结

前面22讲的课基本上就做了两件事

  • 学习C#的基本元素
  • 学习类的成员

析构函数:

当对象不再被引用的时候,就会被垃圾回收器gc,回收。而收回的过程当中,如果需要做什么事情,就放在析构函数中来做。

gc是托管类语言的特色,比如C#、Java。

有的时候,gc没有释放一些底层的资源,就需要在析构函数中,去手动的释放资源

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloClass {
    internal class Program {
        static void Main(string[] args) {
            //通过反射找回类型
            Type t = typeof(Student);
            object obj = Activator.CreateInstance(t, 1, "Timothy");
            //可以不通过new操作符去创建对象
            Student stu = obj as Student;
            Console.WriteLine(stu.Name);

            //dynamic也可以创建对象
            dynamic stu2 = Activator.CreateInstance(t, 2, "Max");
            //动态的去找
            Console.WriteLine(stu2.Name);

        }
    }
    class Student {

        public static int Amount { get; set; }
        static Student() {
            Amount = 100;
        }

        public Student(int id, string name)
        {
            ID = id;
            Name = name;
            Amount++;
        }

        //析构函数
        ~Student() {
            Amount--;
            Console.WriteLine("Bye bye! Release the system resources...");
        }

        public int ID { get; set; }
        public string Name { get; set; }
        public void Report() {
            Console.WriteLine($"I'm {ID} student, my name is {Name}");
        }
    }
}

类的声明

在这里插入图片描述

C++中类的声明与定义是可以分开的。

而C#和Java中声明和定义是分不开的,所以声明即定义

类声明的位置:名称空间中、类体中、全局名称空间内其他名称空间外

类的访问级别的修饰符:publicinternal

public即其他项目(Assembly)中的类也可以访问

internal实际上就是默认的情况,在本项目(Assembly)中来自由访问这个被修饰的类

class Student{}
internal class Student{}
//两者是等同的

常见的装配集(Assembly)就两种,.exe可执行文件和类库

的类

class Student{}
internal class Student{}
//两者是等同的

常见的装配集(Assembly)就两种,.exe可执行文件和类库

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值