Дорого ли создавать объекты в .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 не вызывается из узкого цикла, но он широко используется во всем приложении.

исправления

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

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

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