Строка vs строка в С#

Возможный дубликат:
В С# какая разница между строкой и строкой

В С# ключевое слово string (выделенное в Visual Studio как тип данных) является просто ярлыком для класса String?

В этом случае было бы одинаково использовать либо при кодировании с семантической точки зрения. Однако с точки зрения производительности это одно и то же? Я имею в виду, когда выполняется сопоставление: во время компиляции (я думаю, так), во время компиляции или во время компиляции JIT в исполнении?

Или, может быть, все это неправильно: string и String - не одно и то же в С#, поэтому есть ситуации, когда они не могут быть взаимозаменяемы