В чем разница между строкой и строкой в ​​C #? - PullRequest
5963 голосов
/ 10 августа 2008

Пример ( обратите внимание на регистр ):

string s = "Hello world!";
String s = "Hello world!";

Каковы рекомендации для использования каждого из них? И каковы различия ?

Ответы [ 61 ]

5 голосов
/ 20 июня 2014

Насколько я знаю, string это просто псевдоним для System.String, и подобные псевдонимы существуют для bool, object, int ... единственное тонкое отличие в том, что вы можете использовать string без директивы using System;, в то время как String требует этого (в противном случае вы должны указать System.String полностью).

О том, что лучше всего использовать, я думаю, это дело вкуса. Лично я предпочитаю string, но я не религиозный вопрос.

5 голосов
/ 11 декабря 2016

Строка : представляет класс

строка : представляет псевдоним

Это просто соглашение по кодированию от Microsoft.

4 голосов
/ 12 июля 2018

Как вы уже знаете, string это просто псевдоним для System.String. Но что я должен использовать? это просто личное предпочтение.

В моем случае я люблю использовать string, а не System.String, потому что String требует пространства имен using System; или полного имени System.String.

Так что я считаю, что псевдоним string создан для простоты, и мне это нравится!

4 голосов
/ 22 июля 2018
Строка

является ярлыком для System.String. Разница лишь в том, что вам не нужно ссылаться на пространство имен System.String. Так что лучше использовать строку, чем строку.

4 голосов
/ 11 июня 2014

строка является псевдонимом для String в .NET Framework.

Где "Строка" на самом деле System.String.

Я бы сказал, что они взаимозаменяемы, и нет разницы, когда и где вы должны использовать один или другой.

Было бы лучше согласиться с тем, какой из них вы использовали.

Для чего бы это ни стоило, я использую string для объявления типов - переменных, свойств, возвращаемых значений и параметров. Это согласуется с использованием других типов систем - int, bool, var и т. Д. (Хотя Int32 и Boolean также правильны).

Я использую String при использовании статических методов в классе String, например String.Split() или String.IsNullOrEmpty(). Я чувствую, что это имеет больше смысла, потому что методы принадлежат классу, и это согласуется с тем, как я использую другие статические методы.

3 голосов
/ 01 декабря 2018

это обычная практика объявлять переменную, используя ключевые слова C #. Фактически, каждый тип C # имеет эквивалент в .NET. В качестве другого примера, short и int в C # отображаются на Int16 и Int32 в .NET. Итак, технически нет никакой разницы между строкой и строкой, но В C # строка является псевдонимом для класса String в .NET Framework.

2 голосов
/ 16 октября 2018

String - это класс string. Если вы удалите пространство имен System из операторов, вы увидите, что String прошло, но string все еще здесь. string - ключевое слово для строки. Как
int and Int32<br> short and Int16<br> long and Int64
Так что ключевые слова - это просто некоторые слова, которые использует класс. Эти ключевые слова указаны в C # (поэтому Microsoft, потому что C # это Microsoft). Вкратце, нет никакой разницы. Используя string or String. Это не имеет значения. Они одинаковы.

1 голос
/ 14 мая 2019

объявляет строковую переменную со строкой, но использует класс String при обращении к одному из ее статических членов:

String.Format()

Переменная

string name = "";
0 голосов
/ 09 мая 2019

Разница между строкой и строкой в ​​C #

Один из вопросов, который задают многие начинающие программисты на C #: «В чем разница между строкой и строкой?»

В C # строка - это псевдоним класса String в .NET Framework. Фактически, каждый тип C # имеет эквивалент в .NET. В качестве другого примера, short и int в C # отображаются на Int16 и Int32 в .NET.

Итак, технически нет никакой разницы между строкой и строкой, но обычной практикой является объявление переменной с использованием ключевых слов C #. Я едва видел, чтобы кто-нибудь объявлял целое число с Int32!

Единственное небольшое отличие состоит в том, что если вы используете класс String, вам необходимо импортировать пространство имен System в верхней части файла, тогда как вам не нужно делать это при использовании ключевого слова string.

Многие разработчики предпочитают объявлять строковую переменную со строкой, но используют класс String при доступе к одному из его статических членов: String.Format ()

Создание псевдонимов типов в C #: ссылка

0 голосов
/ 17 апреля 2019

Это компилируется:

public class MyClass<String>
{
}

Это не:

public class MyClass<string>
{
}
...