Мне было интересно, каков эффективный вес методов расширения, если они используются очень дико.
Если, например, я решу создать множество методов расширения string / 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(...)
, они были просто примерами.
Что вы думаете? Помимо использования, которое приятно или не зависит от вкуса, могут быть проблемы, связанные с общим весом?