Предположим, что у нас был сгенерированный класс с большим количеством избыточных аксессуаров. Они просто аксессоры, они не поля. Они нигде не называются. Они просто сидят, будучи избыточными и уродливыми.Неиспользуемые свойства вызывают накладные расходы?
Например:
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 больше. Я ожидаю, что будут штрафные санкции в течение времени исполнения.
Означает ли это причинение каких-либо других накладных расходов? Даже крошечные накладные расходы любого рода?
Как просто удалить код, который не используется? Зачем все это делать? –
Возможный дубликат [Performance overhead для свойств в .NET] (http://stackoverflow.com/questions/3264833/performance-overhead-for-properties-in-net) – Alain
@Ed Я могу удалить его. Беда в том, что она сгенерирована, поэтому, скорее всего, скоро вернется. Кроме того, у меня нет терпения, чтобы читать, хотя каждый из них и решить, какие из них нужны, а какие нет. Кроме того, это разрушит мой ContrivedExample. ;-) –