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