
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
1.抽象类不能实例化,普通类可以实例化2.抽象类可以有抽象方法,也可以有普通方法,普通的类不能有抽象方法2.抽象类可以继承自抽象类,子类如果不是抽象类,就必须重写抽象类中全部的抽象方法。
接口定能力,抽象定归属;多继承用接口,共代码用抽象。
/ 事件定义的基本格式访问修饰符 event 委托类型 事件名;// 事件定义的完整语法namespace _4例子/// 订阅类:绑定事件(事件变量赋值使用+=函数进行赋值)// 给事件绑定方法,事件变量赋值,订阅事件/// 展示的俩个数字以及结果方法F1,打印a b 和Console.WriteLine($"a的值为anamespace _4例子 {
WinForms 控件的Tag属性类型为object,非常适合临时存储与控件关联的自定义对象,避免额外的字典映射。ListViewItem item = new ListViewItem("文件名");// 后续通过 item.Tag 取出数据。
/ 单个对象{"Name":"张三","Age":18,"Sex":"男"}// 对象数组[{"Name":"张三","Age":18},{"Name":"李四","Age":20}][]表示数组{}表示对象属性名必须加双引号属性值不能是函数最后一个属性后不能加逗号。
方法,简化资源管理,无需手动调用。语句会自动在作用域结束时调用。
预处理指令指示编译器如何处理源代码,用于控制代码的编译行为。例如在某些情况下忽略部分代码,在其他情况下编译该代码。注意:C#没有独立的预处理器,预处理指令实际上由编译器处理。协变(out):控制返回值,子类泛型可赋值给父类泛型逆变(in):控制输入参数,父类泛型可赋值给子类泛型适用范围:仅泛型接口和泛型委托,类和结构体不支持判断依据:变量类型必须是接口/委托,且泛型参数标记了out/in。
/ 事件定义的基本格式访问修饰符 event 委托类型 事件名;// 事件定义的完整语法namespace _4例子/// 订阅类:绑定事件(事件变量赋值使用+=函数进行赋值)// 给事件绑定方法,事件变量赋值,订阅事件/// 展示的俩个数字以及结果方法F1,打印a b 和Console.WriteLine($"a的值为anamespace _4例子 {







