Разница между VBA и VB.NET заключается только в том, что VB.NET непрерывно компилируется в фоновом режиме. Вы получите сообщение об ошибке при компиляции VBA.
Как и Джонатан говорит , что при программировании вы можете думать о VB.NET как нечувствительном к регистру, кроме сравнения строк, XML и некоторых других ситуаций ...
Я думаю, вы заинтересованы в том, что находится под капотом. Что ж, среда выполнения общего языка .NET чувствительна к регистру , а код VB.NET зависит от времени выполнения, поэтому вы можете видеть, что он должен быть чувствительным к регистру во время выполнения, например, когда он ищет переменные и методы.
Компилятор и редактор VB.NET позволяют вам игнорировать это - потому что они исправляют регистр в вашем коде.
Если вы играете с динамическими функциями или с поздним связыванием (Option Strict Off), вы можете доказать, что базовое время выполнения чувствительно к регистру. Еще один способ убедиться в этом - понять, что чувствительные к регистру языки, такие как C #, используют одну и ту же среду выполнения, поэтому среда выполнения, очевидно, поддерживает чувствительность к регистру.
РЕДАКТИРОВАТЬ Если вы хотите вывести IDE из уравнения, вы всегда можете скомпилировать из командной строки . Отредактируйте ваш код в Notepad , чтобы он имел ss
и SS
, и посмотрите, что делает компилятор.
РЕДАКТИРОВАТЬ Цитата из Джеффри Рихтера в .NET Framework Guidelines стр. 45.
Для ясности, CLR на самом деле
с учетом регистра. Немного программирования
языки, такие как Visual Basic, являются регистром
нечувствительны. Когда компилятор Visual Basic
пытаясь разрешить вызов метода к
тип определяется с учетом регистра
язык как C #, компилятор (не
CLR) выясняет фактический случай
имени метода и встраивает его в
метаданные. CLR ничего не знает о
этот. Теперь, если вы используете отражение
привязать к методу, отражению
API предлагают возможность сделать
поиск без учета регистра. Это
степень, в которой CLR предлагает
случай-нечувствительность.