Я не хочу начинать пламенную войну с микрооптимизацией, но мне интересно кое о чем.
Каковы накладные расходы с точки зрения памяти и производительности при создании экземпляров типа, который не имеет встроенной функции?данные?
Например, простой класс, который реализует IComparer<T>
, может содержать только метод Compare
и не иметь свойств или полей.
class FooComprarer : IComparer<Foo>
{
public int Compare (Foo x, Foo y)
{
// blah, blah
}
}
Типичный пример кода, который я видел, просто вызывает new FooComparer()
, где бы ни понадобился один из них.
Я не могу себе представить, что стоимость создания здесь очень высока,но мне интересно знать, что это на самом деле.И как бы это сравнить, скажем, со статическим классом фабрики, который поддерживает словарь типов для компараторов, чтобы один экземпляр компаратора можно было использовать везде, где это необходимо.