Разница между String и string в C# заключается в том, что String — это полное имя класса, расположенного в пространстве имён System, а string — встроенный алиас языка C#, который автоматически преобразуется компилятором в System.String. 1
В современной разработке на C# предпочтительным является использование алиаса string для большинства случаев, так как это делает код более лаконичным и соответствует общему стилю языка. 1 Использование полного имени String может быть оправдано в специфических случаях, например, при работе с рефлексией или при явном использовании статических методов класса. 1
Во время выполнения разницы между String и string нет, но во время компиляции есть незначительная разница: употребление String без указания полного имени класса требует using System;. 3