2012-06-08 3 views
0

Какие внутренние свойства jQuery и требования, которые он удовлетворяет, делают его таким хорошим кандидатом для построения шаблона и цепочки методов?jQuery Метод Chaining vs. C#/VB Недостаток метода Chaining

С другой стороны, можно ли переписывать основные библиотеки C#/VB .NET с гораздо большей цепочкой методов, подобными jQuery, или есть некоторые наследующие, ограничивающие факторы?

Много ли это связано с тем, что JavaScript является динамическим или типичным, например, VB/C# или чем-то с jQuery, в основном заинтересованным в манипулировании DOM?

+0

-1 для вопроса, основанного на ложном посылке. –

+0

@JohnSaunders: Я прочитал вопрос так же, как и вы. Оказывается (исходя из его комментария к моему ответу и тщательно перечитывая вопрос), он спрашивает, можно ли перезаписать основные библиотеки .NET *, чтобы больше использовать цепочку методов или если есть какой-то присущий технологический фактор, который теоретически * * предотвратить это. –

ответ

2

Вы можете цеплять методы на C# просто отлично. Например, это делается с Linq все время.

Чтобы понять метод формирования цепочки реализации в C#, см

Method-Chaining in C#

Это также иногда называют fluent interface.

Основная идея состоит в том, что каждый метод, участвующий в цепочке, возвращает this, так что другие методы класса могут быть вызваны путем ссылки на возвращаемое значение предыдущего вызова.

Нет ничего технического, препятствующего перезаписи основных библиотек, чтобы более широко использовать цепочку методов. Практически, однако, переписывание основных библиотек приведет к поломке всех существующих приложений .NET.

Конечно, можно написать библиотеку, которая обеспечивает свободный интерфейс для вещей в основной библиотеке. Одной вещью, которая приходит на ум, является обработка потоков и считывателей в System.IO.

+0

Да, я знаю, что это возможно. Мой вопрос: почему это не было сделано с основными библиотеками, тогда как это было сделано с помощью jQuery? – Chad

+0

Вам, вероятно, придется спросить людей, которые написали основные библиотеки для окончательного ответа. Я предполагаю, что шаблон не был широко использован в отрасли, когда .NET 1.0 работала в период 2000-2001 годов, поэтому команда не думала о ее реализации. Даже .NET 1.0 имеет все необходимое для реализации цепочки методов, поэтому это, конечно, не было никаким техническим ограничением. –

1

Нет нескольких библиотек C#, которые написаны с аналогичной «цепочкой». Обычно это называется Fluent API. Одним из примеров является Fluent NHibernate, но их гораздо больше, поскольку это всего лишь способ структурирования вашего кода. Это не ограничение динамических и статических языков