虽然.Net允许动态调用(比如用反射,C#动态关键字),但是在使用C#这样的语言时,我们有时觉得有必要使用静态类型,以证明我们的程序是正确的,不会有运行时的打字问题。
有时这会导致我们引入接口或基类,这些接口或基类只是为了向编译器解释‘是的,我知道我传递给这个上下文的所有对象都将被理解为调用带有 arg Y 的方法 X - 这里,我会用接口定义来证明给你看!(例如 - .net 内部使用 IReadChunkBytes 接口来允许将 SteamReadChunkBytes 或 BufferReadChunkBytes 对象传递给某个方法或其他。)
其他时候,我们创建类或类型来服务于其他感觉不是很有用的类型-y,例如作为具有小附加行为的唯一标识符(有点像枚举),或者保存一组常量等。
当我面临这样的设计决策时,我想更好地了解编译时间、运行时和其他成本将是多少 显然,每次这样的比较都会有两个方面的成本和收益,但总的来说,我们应该希望在每次这样的比较/讨论中看到“定义新类型”的相同成本。我们如何量化这些成本?