C#

Зачем нужно разделение на типы char и string в c# ?

Ну int и float еще могу понять отчасти, но смысл разделять char и string? Почему символ не может быть "единичной" строкой?
Когда получаю ошибку с типом на шарпе каждый раз со скупой слезой вспоминаю питон((
Потому, что С# "вырос" из "C" , в котором строк вообще не было - были массивы символов с терминатором
СП
Сергей Подмогильный
91 981
Лучший ответ
Символ не может быть единичной строкой. Ибо строка состоит минимум из двух байт - самого символа и символа завершения строки.
Ага... А как работать с каким-нибудь WinAPI, где полно всяких char*?
VI
Veko Ivanov
96 765
Чтобы из букв составлять слова, из цифр числа, использовать знаки препинания, а также арифметические знаки и многие другие. Признайтесь, вы это раньше этого не знали?
char - это еще и число, можно перебирать все символы, например, от A до Z циклом со счетчиком char.

Кроме того, в случаях, когда нужен точный размер данных, какой-то структуры, хранимой в БД, то видя char, понимаешь, что сюда только 1 символ влезет, и можно посчитать, сколько байт займет такая запись в таблице. А со string, хз, если сама БД не поддерживает фиксированных строк или если данная строка не фиксированная, то только замерять, а посчитать (сколько весит одна запись * кол-во записей) не получится. Поэтому string в БД не используют без надобности :)

А питон, ну он сильно отличается от Си-подобных языков. Но почему-то именно Си-подобные языки получили такое развитие, а питон так и остался распиаренной хренью, которую в 50-80% случаев пихают в проект просто потому, что им скучно и есть какое-то влечение к змеям.
Видимо, изврат здесь именно питон, а не наоборот.
Игорь Королёв да питон норм, че вы....
In Fin Питон очень популярный язык, просто у некоторых людей на него аллергия. А у меня аллергия на VB.
В JS тоже нет отдельного типа данных для char. И классическом Паскале вроде не было (тут могу ошибаться).
char – это value type
https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/builtin-types/value-types
string – это refrence type
https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/keywords/reference-types

Это очень важное различие, особенно для оптимизации.
В программировании очень важно различие между единичным значением и коллекцией значений. Например, число и массив чисел. Понятно, что это разные типы. То же самое: символ и массив символов. Массив символов – это и есть строка по сути. Только массив изменяемый, а строка в C# неизменяемая. И у строки есть специфические методы.
Саня Саня
Саня Саня
58 065
ТипРазмер (бит) Диапазон значений

byte 80...255

sbyte 8-128...127

short 16-32,768...32,767

ushort 160...65,535

int 32-2,147,483,648...2,147,483,647

uint 320...4,294,967,295

long 64-9,233,372,036,854,775,808...9,233,372,036,854,775,807

ulong 640...18,446,744,073,709,551,615

float 32-3,402823e38...3,402823e38

double 64-1,79769313486232e308...1,79769313486232e308

decimal 128-79,228,162,514,264,337,593,543,950,335...79,228,162,514,264,337,593,543,950,335

char 16Символ Юникода

string -Строка символов Юникода

bool 1true или false

object -Объект
DH
Doktor Havus
16 997