Практическое использование частичного ключевого слова в C#

Не уверен, что именно проблема была, но то, что я сделал, было добавлено

// = require file_name.js

в моем файле application.js в верхней части и решило проблему.

Я заметил, когда переместил дерево // = require. наверх, эта проблема исчезнет. Поэтому вместо этого мне потребовался сам файл, чтобы он загружался раньше, чем большинство других файлов. Я использую Bootstrap, jQuery и turbolinks, поэтому я предполагаю, что один из них влиял на нагрузку.

8
задан Joan Venge 4 March 2009 в 22:49
поделиться

9 ответов

Частичное ключевое слово обычно используется в утилитах генерации кода, чтобы позволить разработчикам добавлять дополнительную функциональность к сгенерированному коду без страха перед тем кодом, стираемым, если код сгенерирован снова.

С C# 3 частичное ключевое слово может быть применено к методам, чтобы позволить пользователям сгенерированного кода заполнять пробелы, оставленные генератором. Linq разработчику Sql, например, предоставляет частичные методы, которые позволяют Вам добавлять логику к классам, которые платформа назовет, если реализовано. Преимущество здесь - то, что компилятор C# полностью удалит нереализованные частичные методы, таким образом, не будет никакой производительности, нападает на все для того, чтобы не реализовывать их.

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

16
ответ дан 5 December 2019 в 07:37
поделиться

Лучшее использование для частичного ключевого слова, о котором я могу думать, является вложенными классами. Без частичного ключевого слова все вложенные классы должны войти в тот же файл кода как содержание класса.

2
ответ дан 5 December 2019 в 07:37
поделиться

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

1
ответ дан 5 December 2019 в 07:37
поделиться

В VB можно использовать его для разделения "нормального" кода от кода, для которого нужно позднее связывание через "Опцию, Строгую Прочь".

В C# я только использую его для необычно больших классов.

1
ответ дан 5 December 2019 в 07:37
поделиться

Одно использование, которое я нашел, для кода, что Вы не можете хотеть существовать в производственном коде, таком как трассировка или dev, регистрирующий код. Вы могли поместить это в частичный класс и затем когда Вы делаете производство создает Вас, просто создают без тех включенных partials, и компилятор автоволшебно разделит любые вызовы к тем partials, которые были исключены.

2
ответ дан 5 December 2019 в 07:37
поделиться

LINQ разработчику SQL использует его экстенсивно для разделения пользовательских поведений (частичные методы) за пределами отображающегося класса.
Короче говоря, его основная цель для генераторов кода.
Надеюсь, это поможет.

0
ответ дан 5 December 2019 в 07:37
поделиться

Я использую частичные классы и методы все время с Linq2Sql. Иначе я никогда не использовал его ни для чего помимо UI/классов с фоновым кодом.

Одна из больших вещей, что мне нравятся приблизительно частичные классы в linq2sql, - то, что у Вас может быть частичный класс, наследовали интерфейс, и он отобразит интерфейс на сгенерированный класс. Здорово, если Вы имеете больше чем одного Поставщика данных и все еще хотите использовать те же интерфейсы для всех классов Доступа к данным.

0
ответ дан 5 December 2019 в 07:37
поделиться

WPF использует частичные классы экстенсивно. XAML генерирует частичный класс, к которому можно добавить.

0
ответ дан 5 December 2019 в 07:37
поделиться

Я использую частичные классы для сокращения боли слияния с управлением версиями, когда я знаю, что у нас было бы несколько разработчиков, работающих над одним классом. Например, нам часто разделяли наш класс DAL на несколько частичных файлов класса. Если Вы не помещаете их в различные файлы, легко получить конфликты слияния, которые требуют времени для фиксации при проверке в версию ctl.

Когда develoment становится менее хаотичным, поскольку класс рядом для завершения, мы избавляемся от частичных файлов. Мы просто используем его для создания проблем VC/mulit-developer легче

0
ответ дан 5 December 2019 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: