EnriqueMark
設計模式與架構

繼承和約束

2026-03 繁體中文

這個地方有點意思,那就是繼承和約束,似乎有一點相通的意思,而且說到底,繼承本身也意味著對結構體本身的繼承,本質就是一種約束。只不過ts裡面更加靈活,它是一種鴨子型別,也就是隻要結構一樣就行,但C#這裡必須得是繼承的。

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

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