Почему поддержка IntelliSense C# недостающий по сравнению с VB.NET? [закрытый]

Средства управления в.NET не вообще ориентированы на многопотоковое исполнение. Это означает, что Вы не должны получать доступ к управлению от потока кроме того, где он живет. Для обхождения этого Вам нужно к , вызывают управление, которое является тем, чего делает попытку Ваш 2-й образец.

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

6
задан Todd Stout 8 July 2009 в 02:00
поделиться

1 ответ

Некоторое время существует разрыв между C # и VB. VB генерирует для вас много кода. Например, нажатие клавиши Enter после завершения оператора «If» автоматически добавит «Then» в конец этой строки, если вы ее не использовали, и закроет ее частью «End If». В C # вы должны добавить эти начальные и закрывающие {} фигурные скобки.

VB имеет фоновую компиляцию задолго до C #. Фактически, это было одним из основных факторов привлекательности ReSharper, который предоставлял такую ​​функциональность. Однако с VS 2008 / .NET 3.5 SP1 все изменилось. Вы можете прочитать сообщение Скотта Гу об этом здесь , но я вставлю соответствующую часть:

«Редактор кода C # теперь идентифицирует и отображает красные волнистые ошибки для многих проблемы семантического кода, которые ранее требовалась явная компиляция для идентифицировать. Например, если вы попытаетесь объявить и использовать неизвестный тип в Редактор кода C # сегодня вы не увидите ошибка компиляции, пока вы не выполните сборку. Теперь с SP1 вы увидите живой красный немедленно выводить ошибки (нет требуется явная компиляция). "

Использование CodeRush или ReSharper определенно расширяет возможности автозаполнения общих операторов, что заставит разработчика VB почувствовать, что произошел плавный переход.

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

«Фоновая компиляция» - это функция в VB, которая дает вам полный набор ошибок по мере ввода. Люди, которые перемещаются между VB и C # замечают это, но только VB разработчики могут не осознавать, что другие такие языки, как C #, не всегда дают вы на 100% точны Intellisense и не всегда дают вам все ошибки, существующие в вашем коде. это потому что их движки Intellisense это отдельные уменьшенные компиляторы которые не выполняют полную компиляцию в задний план. VB, с другой стороны, компилирует весь ваш проект из начать заканчивать, пока Visual Studio сидит простаивает, что позволяет нам немедленно заполнить список задач полностью точные ошибки и позволяющие нам дать вам полностью точный Intellisense.

И последнее замечание - недавнее интервью Channel9 с главой группы разработчиков C # / VB / F # Лукой Болоньезе, в котором он подчеркнул, что языки больше не собираются сбиваться с пути в разных направления и начнем делиться их сходством. Похоже, будущее ждет великих дел!

14
ответ дан 8 December 2019 в 17:26
поделиться
Другие вопросы по тегам:

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