Псевдонимы типа c # {bool, byte, char, decimal, double, float, int, long, object, sbyte, short, string, uint, ulong, ushort} не являются частью пространства имен BCL System, они ' на самом деле является частью языка C #
Просто так получилось, что везде, где вы используете "строку" в качестве имени типа, компилятор C # при компиляции обрабатывает его как System.String. Я полагаю (я вполне могу ошибаться!), Что операторы using на самом деле не передаются в MSIL, который создает компилятор, поэтому каждая ссылка на тип "string" явно указывается как "System.String", а каждая ссылка на StringBuilder (например, в классе, который имеет «using System.Text;», расширен до «System.Text.StringBuilder».