Мне было интересно, какой эффективный вес методов расширения, если он используется очень дико.Эффективный вес (как во время разработки, время выполнения, так и ...) методов расширения в .NET.
Если, например, я решил создать множество методов расширения строк/int/datetime для многих повседневных задач, чтобы в результате получить какой-то свободный интерфейс, возможно, это общий вес будет накапливаться чрезмерно? И если да, будет ли это во время разработки (например, слишком много intellisense db) или времени выполнения или обоих? Или никто из них? Чтобы избежать огромного количества предлагаемых во всем мире методов intellisense, я думал о том, чтобы помещать их в отдельное пространство имен, например «MyCompany.PathExtensions» или «MyCompany.DateTimeExtensions», или даже все из них в причудливой «MyCompany.FluentEverywhere» или аналогичном ...
пример того, что я говорю о:
DateTime d;
d = 23.Minutes().FromNow();
d = "14".ToIntOr(0).IsBetween(10,20).IfFalseThrow(new Exception("foo"));
String finalPath;
// This will give you "c:\foo\bar\"
finalPath = "c:\\".AppendPath("foo").AppendPath("bar").EnsureTrailingBackslash();
String finalUrl;
// This will give you "ftp://mycompany.com/foo/bar"
finalPath = "mycompany".EnsureDomainExtensionOr("com").AppendPath("foo/bar").EnsureTrailingSlashNotThere().EnsureProtocolOr("ftp");
и так далее ... да, и не сходить с ума на такие вещи, как .IfFalseThrow(...)
, они были всего лишь примеры;)!
Как вы думаете? Помимо использования, что нравится или нет в зависимости от вкусов, могут возникнуть проблемы с общим весом?
Благодаря
Woooh woh, не хотел запускать пламя, извините Aaronaught! Те, что я опубликовал, были просто * примерами *. Я даже написал это четко после блока кода, с смайликом тоже. Я мог бы просто сказать «banana.Eat(). Burp()', они не собирались писать новую библию. – njy
Хорошо, возможно, комментарии были немного ... все же, пожалуйста, не применяйте подобные методы расширения, они являются формой обфускации. Важно то, что вам не нужно использовать методы расширения для этого, если вы пытаетесь создать плавный синтаксис, тогда обычно лучше начинать с вашего собственного базового класса, а не писать методы расширения до наиболее распространенных каркасные классы. – Aaronaught
@Aaronaught - Как и во всей библиотеке Linq? :) –