Описание тега extension-methods
Метод расширения - это языковая функция некоторых языков, таких как Swift, Visual Basic.NET и C#. Методы расширения позволяют "добавлять" методы к существующим типам без создания нового производного типа, перекомпиляции или иного изменения исходного типа.
1
ответ
Изменить состояние List<T> внутри метода расширения
Как изменить состояние List, являющегося частью модели представления в методе расширения, чтобы модель представления отражала это изменение без необходимости повторного присвоения значения Код: //ViewModel: //This line should modify the change inter…
21 июн '15 в 02:20
1
ответ
Помощник класса конъюнкции и дизъюнкции
У меня была идея, чтобы проявить, но я хотел знать, если кто-нибудь знает, если он уже выходит.Создание класса Helper, который может получить действие или выражение bool столько, сколько он может получить и вернуть вывод bool. возможно делает это ка…
17 июл '11 в 14:40
1
ответ
Расширение структуры, которая находится внутри другой структуры
Я пытаюсь продлить struct это уже внутри struct, Когда я пишу следующий код, я получаю декларация действительна только в области видимости файла. struct A { struct AA { } } extension A { extension AA { } } Неверно ли писать расширение внутри расшире…
10 янв '17 в 10:30
3
ответа
C# - разница между "foreach" и методом расширения: ForEach
Кто-нибудь может указать на различия между C# заявления и их аналогичные методы расширения? например: foreach против .ForEach(метод расширения). Если есть какая-то разница, что они? Мудрость безопасности? Производительность мудрая? Какой из них лучш…
08 янв '14 в 22:35
3
ответа
Метод расширения XDocument Validate не отображается в Visual Studio 2005
Я пытаюсь добавить функцию проверки схемы в скрипт C#, который я создал; он в основном загружает данные из Excel в XDocument и проверяет их перед сохранением в файловую систему. Я уже добавил заявление using System.Xml.Schema; но метод Validate не о…
19 ноя '10 в 11:56
3
ответа
Расширение класса в Python, как в Swift?
Я новичок в Python, пришедший из swift, и меня интересует следующее. В быстром, если я хотел бы добавить функциональность к существующему классу, я могу сделать что-то вроде этого (как в примере с книгой): extension Double { var km: Double { return …
04 авг '18 в 22:03
2
ответа
Метод расширения C# - добавление методов void
Методы расширения, конечно, полезны для добавления метода в класс, который вам не принадлежит. Но я хочу практиковать эту концепцию в Visual Studio, но не уверен в необходимости обозначения. Например, у меня есть следующий класс public static class …
12 янв '17 в 09:58
2
ответа
Можете ли вы добавить методы расширения, которые вы вызываете, как статические методы?
Согласно Microsoft, "методы расширения являются особым видом статического метода, но они вызываются так, как если бы они были методами экземпляра для расширенного типа". Есть ли способ добавить метод расширения, который вызывается так, как если бы э…
07 окт '10 в 00:59
1
ответ
Как соотнести метод расширения запроса Linq с его сигнатурой в документации?
Возьми этот код из MSDN: В следующем примере кода показано, как использовать Where(IEnumerable, Func) для фильтрации последовательности. List<string> fruits = new List<string> { "apple", "passionfruit", "banana", "mango", "orange", "blue…
27 янв '17 в 21:45
1
ответ
Расширить действие в контроллере
Я строю контроллер, который устанавливает одинаковые переменные в нескольких действиях. Что-то вроде этого: def one @a = 1 @b=2 @test = "One" end def two @a = 1 @b = 2 @test = "Two" end Я знаю, что мог бы вызвать метод для заполнения присваиваний пе…
02 апр '11 в 14:21
1
ответ
ASP.NET MVC Html Helper
Я пытаюсь создать несколько Html-помощников, которые будут иметь открывающий и закрывающий теги, которые будут включать другое содержимое, как это делает Html.BeginForm. Например, в Razor мы можем использовать помощник Html.BeginForm, который имеет …
19 апр '14 в 17:21
6
ответов
Добавление члена данных в уже существующий класс в C#
Я читал о методах расширения и о том, как они могут расширять классы новыми методами без необходимости изменения определения кода класса. Я хотел знать, существует ли какой-либо аналогичный способ, которым я могу добавить новый элемент данных (напри…
06 июн '14 в 06:18
1
ответ
Почему я не могу вызвать методы расширений DropDownList из другого метода расширения?
Этот метод расширения не работает на двух отдельных машинах разработки: public static string DdlTest(this HtmlHelper helper) { var si = new List<SelectListItem>(); si.Add(new SelectListItem() { Text = "1", Value = "1" }); si.Add(new SelectList…
01 фев '10 в 22:44
2
ответа
Невозможно получить доступ к переменной экземпляра с помощью метода расширения с помощью лямбды
Я создал метод расширения в соответствии с ответом на SO здесь public class AcObject { public int Id { get; set; } } public static Dictionary<string, string> GetValidationList<AcObject, TProperty>( this AcObject source, Expression<Fun…
24 сен '14 в 05:16
1
ответ
Добавление объекта в существующий класс системы
На данный момент у меня проблема. Я хочу расширить System.Socket класс со строкой, где я могу хранить информацию в сокете. Например, добавив переменную с именем Name, но если я напишу ее так, она не будет работать, потому что все сокеты будут иметь …
27 сен '16 в 20:42
1
ответ
Скрытие методов расширения для определенных универсальных типов в IntelliSense
У меня есть метод расширения: public static void Foo<T>(this MyClass<T> target) where T : IEnumerable { // Code goes here } Я хочу скрыть этот метод расширения от InteliSense, если T является строкой, но не для других типов так же, как м…
26 фев '13 в 06:55
1
ответ
Методы расширения на общих классах
Я играю вокруг с созданием некоторых беглых API; вроде DSL. Я продолжаю сталкиваться с определенной проблемой, и я не нашел способ обойти это, ни здесь, ни где-либо еще, чтобы решить точную проблему, как я ее вижу. Кроме того, я видел много людей, к…
25 фев '13 в 21:51
6
ответов
Метод расширения C# не существует
Кажется, я не могу найти следующий метод расширения в другом классе в том же пространстве имен (MyProject.Util). using System.Collections.Specialized; namespace MyProject.Util { public static class Extensions { public static string Get( this NameVal…
20 апр '10 в 12:07
1
ответ
Как создавать изображения с многоуровневой структурой на сайте?
Мне нужна помощь. У меня проблемы с организацией и упорядочением изображений моих продуктов, поэтому я хочу найти расширение для Magento 2, которое поможет мне свободно создавать столько изображений, сколько я хочу, с многоуровневыми структурами для…
25 окт '17 в 06:39
3
ответа
Метод расширения возвращает InvalidCastException
Я пытаюсь научиться использовать методы расширения и создал свои собственные. Теперь я попытался запустить свой код, но Visual Studio выдал ошибку, что у меня возникла необработанная исключительная ситуация InvalidCastException, поэтому я обработал …
28 фев '16 в 13:04