Дорого ли создавать объекты в .Net?

Я только что рефакторил коллегуКод, который, примерно, выглядел так:

public class Utility
  public void AddHistoryEntry(int userID, HistoryType Historytype, int companyID)
  {
    // Do something...
  }
  public void AddHistoryEntry(int userID, HistoryType historyType, int companyID, string notes)
  {
    // Do something...
  }
}

К этому...}

public class HistoryEntry
{
  public long UserID { get; private set; }
  public HistoryType HistoryType { get; private set; }
  public long CompanyID { get; set; }
  public string Notes { get; set; }

  public HistoryEntry(long userID, HistoryType historyType)
  {
    this.UserID = userID;
    this.HistoryType = historyType;
  }
}

public class Utility
{
  public void AddHistoryEntry(HistoryEntry entry)
  {
    // Do something...
  }
}

Теперь, это намного лучший дизайн кода и любимый дядя Боб. Однако мой коллега утверждает, что каждый раз, когда мы хотим вызвать этот метод, намного дороже обновлять объект.

Он прав?

Дальнейшее объяснение

Спасибо за все ответы до сих пор. Я упустил много деталей в надежде краткости, но некоторые из них вызвали проблемы с ответами.

Утилита класс не делаетне существует. Я просто хотел поместить методы в класс, чтобы вы все могли их увидеть. На самом деле этов разумном классе.Фактически в исходном коде было 5 методов AddHistoryEntry. Все это заняло много int-параметров. Одной из причин рефакторинга было то, чтоAddHistory(0, 1, 45, 3); Безразлично»Я действительно много тебе скажу!AddHistoryEntry не вызывается из узкого цикла, но он широко используется во всем приложении.

CorrectionsI»

Мы обновили примеры кода, так как я допустил ошибку с некоторыми параметрами.

Ответы на вопрос(8)

Ваш ответ на вопрос