Каково различие между String и string?

В: каково различие между String и string? (см. прописная буква)

Пример:

string s = "¡Hola mundo!";
String S = "¡Hola mundo!";

Каковы правила использования для каждой? И каковы различия?


Первоначальный вопрос: What's the difference between String and string?

43
задан 23.05.2017, 05:39
4 ответа

String - имя класса System.String

string - прозвище System.String в C #: string (C # Reference)

На уровне ejecuciГіn не существует какое-либо различие, так как составитель превращает оба lГ-neas в то же самое.

Например это - то, что производит LINQPad с sgtes, два заявления:

String S = "Hola mundo";
string s = "Hola mundo";

IL generado

CГіmo могут видеть оба lГ-nas производят ее instrucciГіn:

ldstr "Hola mundo"

Из того же способа, например призвав какой-либо Ваш mГ©todos

String.Format("Hola");
string.Format("Hola");

Оба lГ-neas, ссылаются на тот же класс System.String и производят того же самого cГіdigo

IL generado 2

49
ответ дан 01.12.2019, 08:18
  • 1
    В C # ты объединяешь их mapean с типами, например " string" mapea с " String" " int" mapea с " Int32". Предпочитаются они иначе если только d и # 233; место в confusi и # 243; n. Stylecop требует в одном из Ваших правил читабельности использовать всегда их иначе. Он cuesti и # 243; n стиля, чтобы способствовать однородности в c и # 243; я говорю. –  Sxntk 02.12.2015, 17:49
  • 2
    Не conocí в ' LINQPad' он оказывается интересным –  CodeFluid 31.12.2018, 21:20

Действительно, string это прозвище System. String. Microsoft не восхваляет в Вашей документации ни из-за одной из двух номенклатуры Microsoft MSDN C# string.

string напротив System. String

В C#, ключевое слово string - прозвище String. Следовательно, String и string они эквивалентные и смоги использовать соглашение номенклатуры, которую он предпочитал бы. Класс String предоставляет многочисленные методы, чтобы создавать, манипулировать и сравнивать цепи безопасной формы. Кроме того, язык C# перегружает какие-то операторы, чтобы упрощать общие операции цепей.

Воспоминание увидеть раньше видео MSDN Channel 9, в котором они рекомендовали string для локальных переменных, и String особенно для параметров и типов возврата. Неудачно, я неспособен находить видео прямо сейчас. И кроме того, оно мне кажется ненужным различием, и которое вероятно будет очень трудным осуществлять.

9
ответ дан 01.12.2019, 08:18

string - прозвище в C# for System.String, в Ваш documentaciГіn Microsoft использует string в Ваших примерах.

8
ответ дан 01.12.2019, 08:18

string в C # - прозвище Типа.NET Framework (CLR type) System. String

(То же например в System. Int32 & int )

ты Можешь использовать это как прозвище, но иногда в организациях они используются polГ-костариканские codificaciГіn, чтобы например использовать в строителе класс (и не прозвище) сколько бы ты не смог использовать это.

Пример:

const char char1 = 'a';
var cadena1 = new string(char1, 1);
var cadena2 = new String(char1, 1);

, Но например не возможно создавать иначе string. Пример прозвища:

using alias1 = string;  //Error de compilacion
using CodigoBarraCadena = System.String;
using NombreDescriptivoCadena = System.String;

, Чтобы

var tupla1 = new Tuple<CodigoBarraCadena, NombreDescriptivoCadena>("1", "2"); //Mas descriptivo

var tupla2 = new Tuple<string, string>("1", "2"); //Menos descriptivo
использован для лучшей одной compresiГіn cГіdigo
8
ответ дан 01.12.2019, 08:18
  • 1
    Лично я против помещения такого описательного имени как прозвище System. String, так как это ответственность идентификаторов переменных больше не типов. В любом случае, если хочется определять специально, которого обрабатывает информацию каждый из strings лучшее существо и # 237; чтобы создавать персонализированный класс каждой с вашими собственными правилами и утверждениями, которые внутри содержал бы string –  Carlos Muñoz 02.12.2015, 18:19