C# — это строго типизированный язык программирования, а это означает, что знание типов данных необходимо для написания эффективного кода C#. В C# одним из наиболее часто используемых типов данных является строковый тип, который может быть объявлен как String или string. Это может привести к некоторой путанице: в чем разница между String и string и когда следует использовать каждый из них?
В этом посте мы углубимся в эти два типа, чтобы понять их сходства и различия, а также рассмотрим некоторые сценарии, в которых вы можете предпочесть один другому.
Основы: что такое String и string?
String
Класс String является частью пространства имен System (System.String). Это класс, который предоставляет различные методы для манипуляций со строками, например Substring, Concat, Replace и т. д. Вы можете использовать его следующим образом:
using System;
namespace StringExample
{
class Program
{
static void Main(string[] args)
{
String name = "Mabrouk";
Console.WriteLine(name.ToLower()); // "mabrouk"
}
}
}
string
С другой стороны, string — это псевдоним String в языке C#. Это более читаемый способ объявления строковой переменной, и он синтаксически проще. string — это просто сокращение от System.String.
namespace StringExample
{
class Program
{
static void Main(string[] args)
{
string name = "John";
Console.WriteLine(name.ToLower()); // "john"
}
}
}
Сходство
- Взаимозаменяемость. Вы можете без проблем использовать
Stringиstringкак взаимозаменяемые.
String name1 = "Mabrouk"; string name2 = "Mahdhi"; // perfectly valid string fullName = name1 + " " + name2;
2. Одинаковые методы. Поскольку string — это всего лишь псевдоним System.String, вы можете использовать одни и те же методы для обоих.
String name1 = "Mabrouk"; string name2 = "Mahdhi"; Console.WriteLine(name1.ToLower()); Console.WriteLine(name2.ToUpper());
Различия
Несмотря на то, что они функционально идентичны, существует несколько рекомендаций относительно того, когда использовать один вариант вместо другого.
- Читаемость. Многие разработчики считают, что использование
stringболее удобочитаемо, поскольку оно хорошо сочетается с другими простыми типами, такими какint,boolиdouble. - Пространство имен. Если вы объявили
using System;, вы можете без проблем использоватьString. В противном случае вам придется использовать его какSystem.String. - Стандартизация. Большинство стандартов кодирования C# рекомендуют использовать
stringвместоStringдля локальных переменных и параметров метода. Для возвращаемых типов можно использовать любой из них, но обычно рекомендуется сохранять единообразие.
Когда использовать String или string
Используйте String, когда:
- Работа со статическими методами. Когда вы используете статические методы класса
String, имеет смысл использоватьString.
String.Concat("Hello, ", "world!");
String.Format("{0} {1}", var1, var2);
2. Требуется полное имя. Если вы работаете в среде, где пространство имен является проблемой (очень редко), вам может потребоваться указать System.String.
Используйте string, когда:
- Локальные переменные и параметры. Для объявления локальных переменных и типов параметров метода обычно используется
string.
public void SayHello(string name)
{
string greeting = "Hello, " + name;
Console.WriteLine(greeting);
}
2. Удобочитаемость. Использование string обеспечивает согласованность вашего кода с использованием других встроенных типов (int, bool и т. д.).
Заключение
Типы String и string в C# функционально идентичны, но при выборе между ними следует учитывать некоторые тонкости. Для большинства разработчиков использование string для локальных переменных и параметров и использование String для вызова статических методов сделает код читабельным и согласованным.
Удачного программирования!