Вопросы по теме 'extension-methods'

Как вы пишете метод расширения С# для универсально типизированного класса
Надеюсь, это должно быть просто. Я хотел бы добавить метод расширения в класс System.Web.Mvc.ViewPage‹ T >. Как должен выглядеть этот метод расширения? Моя первая интуитивная мысль примерно такая: namespace System.Web.Mvc { public...
13014 просмотров

Перегрузка оператора с помощью методов расширения C #
Я пытаюсь использовать методы расширения, чтобы добавить перегрузку оператора в класс C # StringBuilder . В частности, учитывая StringBuilder sb , я бы хотел, чтобы sb += "text" стал эквивалентом sb.Append("text") . Вот синтаксис для...
51568 просмотров

Синтаксис методов расширения и синтаксис запроса
Я пытаюсь понять, есть ли подходящее время для использования стандартных ключевых слов linq или методов расширения linq с лямбда-выражениями. Они вроде делают то же самое, только написаны по-разному. Это чисто вопрос стиля? var query = from p in...
33480 просмотров

Отражение для определения методов расширения
В C # есть метод, использующий отражение, чтобы определить, был ли метод добавлен к классу как метод расширения? Учитывая метод расширения, такой как показанный ниже, можно ли определить, что Reverse () был добавлен к строковому классу? public...
31864 просмотров
schedule 21.05.2023

Недостатки методов расширения?
Метод расширения - это действительно полезная функция, с помощью которой вы можете добавить множество функций, которые захотите, в любой класс. Но мне интересно, есть ли какой-нибудь недостаток, который может доставить мне неприятности. Есть...
8312 просмотров
schedule 14.11.2022

Анонимные типы - есть ли какие-нибудь отличительные черты?
Есть ли что-нибудь, что можно использовать, чтобы определить, действительно ли тип является анонимным? Например интерфейс и т. Д.? Цель состоит в том, чтобы создать что-то вроде следующего ... //defined like... public static T...
4025 просмотров

Версия .Net framework в Silverlight: нет List‹T›. Найти методы?
Сегодня я обнаружил кое-что, что меня огорчает: объекты типа System.Generic.Collections.List не имеют ряда полезных методов расширения, которые я полюбил, таких как Find, FindAll, FindIndex, Exists, RemoveAll и т. д. . Браузер объектов в VS2008...
2401 просмотров

Почему я не могу неявно использовать Delegate с методами Extension?
Я пытаюсь найти способ автоматического приведения чего-либо к Action или Func, и лучшее, что я могу придумать, это что-то вроде этого: [TestFixture] public class ExecutionTest { public void BadMethod() { throw new...
881 просмотров

C #, Linq2SQL: создание предиката для поиска элементов в нескольких диапазонах
Допустим, у меня есть что-то под названием Stuff в моей базе данных со свойством Id. От пользователя я получаю последовательность выбранных объектов Range (или, скорее, создаю их из их ввода) с нужными им идентификаторами. Урезанная версия этой...
4024 просмотров

Вопрос об архитектуре методов расширения C #
Недавно я задал этот вопрос: Ошибка компилятора при ссылке на собственный метод расширения C # Ответ Марка Гравелла был идеальным, и он решил мою проблему. Но это дало мне повод задуматься ... Если и метод расширения должен быть помещен в...
1041 просмотров
schedule 03.04.2022

Является ли этот метод расширения С# нечистым и, если да, то плохим кодом?
Я немного изучаю программирование функций, и мне интересно: 1) Чист ли мой метод расширения ForEach ? То, как я это называю, кажется, нарушает правило «не связываться с передаваемым объектом», верно? public static void ForEach<T>(this...
1686 просмотров

Запутывает ли расширение класса String с помощью IsNullOrEmpty?
Все знают и любят метод String.IsNullOrEmpty (yourString). Мне было интересно, запутает ли это разработчиков или сделает код лучше, если мы расширим класс String, чтобы он имел такой метод: yourString.IsNullOrEmpty(); Pro: Более...
3826 просмотров
schedule 01.02.2023

linq для sql OnLoaded () с представлением SQL?
Я пытаюсь расширить свою сущность Linq-to-Sql несколькими дополнительными свойствами. Это «вычисляемые» свойства, основанные на данных из базового представления SQL. Например, подумайте о поле «Дата рождения», которое используется для вычисления...
864 просмотров
schedule 13.03.2022

Что происходит в C #, когда вы вызываете метод расширения для нулевого объекта?
Вызывается ли метод с нулевым значением или выдает исключение с нулевой ссылкой? MyObject myObject = null; myObject.MyExtensionMethod(); // <-- is this a null reference exception? Если это так, мне никогда не нужно будет проверять мой...
54525 просмотров
schedule 16.05.2022

Как сделать методы, основанные на методах расширения, проверяемыми?
У меня есть метод расширения со следующей подписью (в классе BuildServerExtensions):: public static IEnumerable<BuildAgent> GetEnabledBuildAgents( this IBuildServer buildServer,...
1292 просмотров

Проблема с созданием моего собственного расширения для HtmlHelper
У меня есть метод расширения HtmlHelper: <%= Html.MyMethod( params )%> Он работает в визуальной студии, но выдает (во время выполнения): Сообщение об ошибке компилятора: CS0117: «System.Web.Mvc.HtmlHelper» не содержит определения...
727 просмотров

C#: реализация SkipLast
Мне нужен был метод, чтобы дать мне все, кроме последнего элемента в последовательности. Это моя текущая реализация: public static IEnumerable<T> SkipLast<T>(this IEnumerable<T> source) { using...
1541 просмотров

Аналог String.Join (string, string []) для IEnumerable ‹T›
класс String содержит очень полезный метод - String.Join(string, string[]) . Он создает строку из массива, отделяя каждый элемент массива заданным символом. Но в целом - он не добавляет разделитель после последнего элемента! Я использую его...
5481 просмотров
schedule 16.02.2023

Пользовательский метод расширения HtmlHelper недоступен в представлении?
Я перевел CheckBoxList Helper Иеремии Кларка для MVC в мой проект VB.Net, но когда я пытаюсь использовать метод, на мой взгляд, я получаю сообщение об ошибке 'CheckBoxList' is not a member of 'System.Web.Mvc.HtmlHelper(Of...
7991 просмотров

Разрешение метода расширения
Я написал метод расширения для String, чтобы получить аргумент char, string.Remove(char) . Но когда я использовал это, вместо этого вызывался метод string.Remove(int) по умолчанию. Разве наличие фактического метода не должно иметь более высокий...
1449 просмотров
schedule 15.05.2022