【发布时间】:2012-05-18 05:40:11
【问题描述】:
假设我们有一个带有很多冗余访问器的生成类。它们只是访问器,它们不是字段。他们在任何地方都没有被调用。他们只是坐在那里多余和丑陋。
例如:
public class ContrivedExample
{
public int ThisOneIsUsed { get; set; }
public int ThisOneIsNeverCalled0 { get { /* Large amounts of logic go here, but is never called. */ } }
public int ThisOneIsNeverCalled1 { get { /* Large amounts of logic go here, but is never called. */ } }
public int ThisOneIsNeverCalled2 { get { /* Large amounts of logic go here, but is never called. */ } }
//...
public int ThisOneIsNeverCalled99 { get { /* Large amounts of logic go here, but is never called.*/ } }
}
ContrivedExample c = new ContrivedExample() { ThisOneIsUsed = 5; }
我能想到的唯一开销是它会使 .DLL 变大。我希望运行时惩罚为零。
这会导致任何其他开销吗?哪怕只是一点点开销?
【问题讨论】:
-
简单删除不用的代码怎么样?为什么要保留它?
-
@Ed 我可以删除它。问题是,它是生成的,所以很可能很快就会回来。此外,我没有耐心阅读每一个并决定哪些需要,哪些不需要。此外,它会破坏我的 ContrivedExample。 ;-)
-
嗯...然后更改生成器逻辑?如果要证明的工作量太大,那么您会没事的,这些属性不会给您带来任何麻烦。
标签: c# .net properties overhead