Запитання з тегом «extension-methods»

Метод розширення - це мовна особливість деяких мов, таких як Swift, Visual Basic.NET і C #. Методи розширення дозволяють "додавати" методи до існуючих типів без створення нового похідного типу, перекомпіляції чи іншої модифікації вихідного типу.

16
Перетворити рядок у змінний тип (int, double та ін.)
Я намагаюся зробити певну конверсію даних. На жаль, значна частина даних знаходиться в рядках, де вони повинні бути int або double та ін. Отже, у мене є щось на кшталт: double? amount = Convert.ToDouble(strAmount); Проблема такого підходу полягає в тому, що якщо strAmount порожній, якщо він порожній, я хочу, щоб …

13
Чи можу я "помножити" рядок (у C #)?
Припустимо, у мене є рядок, наприклад, string snip = "</li></ul>"; Я в основному хочу написати це кілька разів, залежно від якогось цілого значення. string snip = "</li></ul>"; int multiplier = 2; // TODO: magic code to do this // snip * multiplier = "</li></ul></li></ul>"; EDIT: Я знаю, що можу легко …

2
Як додати нові методи до наявного типу в Go?
Я хочу додати зручний метод утиліти до gorilla/muxтипів маршрутів та маршрутизаторів: package util import( "net/http" "github.com/0xor1/gorillaseed/src/server/lib/mux" ) func (r *mux.Route) Subroute(tpl string, h http.Handler) *mux.Route{ return r.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h) } func (r *mux.Router) Subroute(tpl string, h http.Handler) *mux.Route{ return r.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h) } але компілятор повідомляє мене Неможливо визначити нові …

1
Чи можна застосувати методи розширення до інтерфейсів?
Чи можна застосувати метод розширення до інтерфейсу? (C # питання) Наприклад, для досягнення наступного: створити інтерфейс ITopology створити метод розширення для цього інтерфейсу (наприклад, загальнодоступний статичний int CountNodes (ця топологія ITopologyIf)) то при створенні класу (наприклад, MyGraph), який реалізує ITopology, тоді він автоматично матиме розширення Count Nodes. Таким чином, класи, …

8
AddRange до колекції
Сьогодні колега запитав мене, як додати асортимент до колекції. У нього є клас, який успадковує від Collection<T>. Існує властивість лише цього типу, яка вже містить деякі елементи. Він хоче додати предмети в іншій колекції до колекції майна. Як він може це зробити на C-3? (Зверніть увагу на обмеження щодо властивості …

9
Як продовжити клас за допомогою методів розширення c #?
Чи можна застосувати методи розширення до класу? Наприклад, продовжте DateTime, щоб включити метод Завтра (), до якого можна викликати: DateTime.Tomorrow(); Я знаю, що можу використовувати static DateTime Tomorrow(this Datetime value) { //... } Або public static MyClass { public static Tomorrow() { //... } } для аналогічного результату, але як …

4
Чи є в C # спосіб замінити метод класу методом розширення?
Бували випадки, коли я хотів би замінити метод у класі за допомогою методу розширення. Чи можна це зробити в C #? Наприклад: public static class StringExtension { public static int GetHashCode(this string inStr) { return MyHash(inStr); } } Випадок, коли я хотів це зробити, це можливість зберігати хеш рядка в …

5
Як користуватися основними розширеннями Active Support
У мене встановлено Active Support 3.0.3 та Rails 3.0.3 з Ruby 1.8.7. Коли я намагаюся використовувати 1.week.agoя отримую NoMethodError: undefined method 'week' for 1:Fixnum from (irb):2 Інші основні розширення, здається, працюють. Я спробував це на комп’ютері друга (ті ж характеристики встановлення та застарілі версії є на його) з тими самими …

2
Де метод розширення LINQ у складеному вигляді?
У зразках Linq MSDN я знайшов акуратний метод Fold (), який я хочу використовувати. Їх приклад: double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 }; double product = doubles.Fold((runningProduct, nextFactor) => runningProduct * nextFactor); На жаль, я не можу змусити це скомпілювати, ні в їх прикладі, ні у власному …


5
Як розширити вбудовані типи C #, наприклад String?
Привіт всім ... Мені потрібно . Але я хочу видалити всі повторювані порожні пробіли в самому рядку, не тільки в кінці або на початку його. Я міг би зробити це за допомогою такого методу, як:TrimString public static string ConvertWhitespacesToSingleSpaces(string value) { value = Regex.Replace(value, @"\s+", " "); } Яке я …

6
Як використовувати Moq для знущання над методом розширення?
Я пишу тест, який залежить від результатів методу розширення, але я не хочу, щоб майбутній збій цього методу розширення коли-небудь порушив цей тест. Знущання над цим результатом здавалося очевидним вибором, але , здається, Moq не пропонує способу замінити статичний метод (вимога до методу розширення). Існує подібна ідея з Moq.Protected та …

30
Які переваги методів розширення ви виявили? [зачинено]
В даний час це питання не підходить для нашого формату запитань та відповідей. Ми очікуємо, що відповіді будуть підтверджені фактами, посиланнями чи експертизою, але це питання, швидше за все, вимагатиме дебатів, аргументів, опитування чи розширеного обговорення. Якщо ви вважаєте, що це питання можна покращити і, можливо, знову відкрити, відвідайте довідковий …

2
Як написати метод розширення в JavaScript?
Мені потрібно написати кілька методів розширення в JS. Я знаю, як це зробити в C #. Приклад: public static string SayHi(this Object name) { return "Hi " + name + "!"; } а потім зателефонував: string firstName = "Bob"; string hi = firstName.SayHi(); Як я можу зробити щось подібне в …

8
Приклад швидкого розширення
Спочатку я хотів знати, як зробити щось подібне UIColor.myCustomGreen щоб я міг визначати власні кольори та використовувати їх у своєму додатку. Я вивчав розширення раніше, і я думав, що, напевно, можу використати їх для вирішення своєї проблеми, але я не міг пригадати, як саме налаштовувати розширення. Пошук у Google на …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.