EnriqueMark
设计模式与架构

继承和约束

2026-03 简体中文

这个地方有点意思,那就是继承和约束,似乎有一点相通的意思,而且说到底,继承本身也意味着对结构体本身的继承,本质就是一种约束。只不过ts里面更加灵活,它是一种鸭子类型,也就是只要结构一样就行,但C#这里必须得是继承的。

// TypeScript
// 这里的 extends 虽然隐含了继承,但只要结构一样也能判定通过
function foo<T extends JobBase<T>>() {}

// C# 等價
// 但是这里就必须得是继承了
void Foo<T>() where T : JobBase<T> {}