Qual é a diferença entre String e string em C#?
Olá a todos. Comecei a estudar C# recentemente e notei que em diferentes exemplos de código as strings são declaradas de formas diferentes: às vezes com `String`, às vezes com `string`. Por exemplo:
```csharp
string name = "Alexey";
String lastName = "Ivanov";
```
Parece-me que são a mesma coisa, mas não tenho certeza. Talvez haja alguma diferença sutil? Isso afeta o desempenho, a memória ou a possibilidade de usar métodos? Tentei usar `String` com letra maiúscula no Visual Studio, e o código compilou, mas o ReSharper destacou isso como um aviso. Por quê?
Também ouvi dizer que em C# existem palavras-chave (como `int`, `bool`) e aliases de tipos. `string` é uma palavra-chave, e `String` é uma classe do .NET? Se sim, por que usar `String` se existe `string`? Ou é uma questão de estilo? Agradeceria uma explicação detalhada com exemplos para entender de uma vez por todas. Obrigado!
<<>>
Resposta curta: é a mesma coisa
Em C#, `string` (com letra minúscula) é