Для приложения, которое я пишу, я хочу, чтобы методы экстремального расширения и расширения давали мне то, что я хочу, плюс возможность вызывать их без экземпляра, который мне тоже нужен.
Я помню, что читал, что статические методы быстрее, чем методы экземпляра, но не получают преимуществ от GC. Это правильно?
Маловероятно, что я изменю свой дизайн, если я не найду превосходную альтернативу по дизайну, а не по скорости. Но все же для дополнительной информации я хочу знать различия в скорости, GC и т. Д.
РЕДАКТИРОВАТЬ: Спасибо. Дополнительная информация: Допустим, у нас есть класс Person:
class Person
, который может иметь экземпляр метода Distance, например:
this.Distance (Person p)
Это здорово, но это не дает мне возможности рассчитать расстояние между 2 точками (скажем, Point3), не создавая экземпляры класса Person.
Что я хочу сделать, это:
class Person (no Distance methods)
но методы расширения расстояния:
Distance (this Person, Person)
Distance (this Point3, Point3)
Таким образом, я могу сделать оба:
myPerson.Distance (yourPerson)
и
Extensions.Distance (pointA, pointB)
EDIT2: @Jon, да, я думаю, именно это и имелось в виду (не получайте преимущества GC), но я почему-то подумал, что статические методы создают эту нагрузку / накладные расходы.