<p><a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/string"><code>string</code></a> est un alias en C# pour <a href="https://learn.microsoft.com/en-us/dotnet/api/system.string"><code>System.String</code></a>.</p>
<p>Donc techniquement, il n’y a aucune différence. C’est comme <a href="https://stackoverflow.com/questions/62503/c-int-or-int32-should-i-care"><code>int</code> <em>vs.</em> <code>System.Int32</code></a>.</p>
<p>En ce qui concerne les bonnes pratiques, il est généralement recommandé d’utiliser <code>string</code> chaque fois que vous faites référence à un objet.</p>
<p>Par exemple :</p>
<pre><code class="lang-auto">string place = "world";
</code></pre>
<p>De même, il est généralement recommandé d’utiliser <code>String</code> si vous devez vous référer spécifiquement à la classe.</p>
<p>Par exemple :</p>
<pre><code class="lang-auto">string greet = String.Format("Hello {0}!", place);
</code></pre>
<p>C’est le style que Microsoft tend à utiliser dans <a href="https://learn.microsoft.com/en-us/dotnet/api/system.string.format#examples">ses exemples</a>.</p>
<p>Il semble que les recommandations dans ce domaine aient changé, car <a href="https://github.com/StyleCop">StyleCop</a> impose désormais l’utilisation des alias spécifiques au C#.</p>