刘铁猛C#入门 030 泛型,partial类,枚举,结构

泛型(generic)无处不在

为什么需要泛型:避免成员膨胀或者类型膨胀

  • 正交性:泛型类型(类/接口/委托/......)泛型成员(属性/方法/字段/....
  • 类型方法的参数推断
    • 泛型接口/类的 类型参数不只有一个
  • 泛型与委托、lambda表达式
  • 实现泛型接口类时 ,实现类也要声明为泛型类

一些例子

实现学生类时:Student student = new Student();

实现了特化的泛型接口类时,实现类不需要声明为泛型类

实例化学生类时:Student student = new Student();\

泛型委托

partial类(部分类)

允许把一个类分成两部分或者多部分来编写 ,每个部分可以根据自己的速度更新。

  • 减少类的派生 把不变的内容写在基类中 ,需要改变的写在子类
  • partial类与Entity Framework,便于修改数据库内容
  • partial类与Windows Forms, WPF, ASPNET Core

枚举类型

  • 人为限定取值范围的整数
  • 整数值的对应
  • 比特位式用法

结构体(struct)

  • 值类型,可装/拆箱
  • 可实现接口,不能派生自类/结构体
  • 不能有显式无参构造器 允许有参的构造器
相关推荐
SomeOtherTime4 分钟前
Rust 闭包语法和原理(AI回答)
开发语言·后端·rust
apcipot_rain22 分钟前
C++转Java日记(10)
java·开发语言
总要学点什么1 小时前
第105篇:三维特效-流动图片墙体效果——让箭头沿墙长滚,它俩竟是同一份代码
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
xiaoye-duck1 小时前
《C++ 项目:手写大模型接入 SDK》会话模块整合:内存 SessionManager 与 DataManager 持久化联动
开发语言·数据库·c++·语言模型
寂寞的船2 小时前
【Unity知识速递】第13期 Unity 内存泄漏排查实战:从 Memory Profiler 到 Lua 引用泄漏的生产级全链路诊断
unity·junit·c#·游戏引擎·lua
Funlang3 小时前
龙芯上的 Fun:从跑起来到机器码
开发语言·龙芯
总要学点什么3 小时前
第104篇:三维特效-流动墙体效果——让贴图沿墙流动,它却只肯走一条对角线
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
旖旎夜光3 小时前
【C++ 基础入门】C++11 新特性(中):右值引用、移动语义与完美转发
开发语言·c++·笔记·学习
ShineWinsu3 小时前
对于Qt:QTabWidget常见属性的解析
开发语言·数据库·c++·qt·浏览器·qtabwidget·标签页
普通人64 小时前
WebGL与WebGPU入门指南
开发语言·webgl·1024程序员节