var value = "0".PadRight('4', '0');
Console.WriteLine(value);
Результатом этого является 0000000000000000000000000000000000000000000000000000
как в моем проекте, так и в .NET Fiddle.
Может кто-нибудь объяснить, почему?
Ascii-значение символа '4'
равно 52.
Ну, это неудобно. Я понятия не имею, как мне удалось поместить туда символ (даже не знал, что это возможно).
Первый параметр String.PadRight — это int
, а не char
:
общедоступная строка PadRight (int totalWidth, char paddingChar);
В этой строке:
var value = "0".PadRight('4', '0');
'4'
преобразуется в int
с использованием значения ascii, равного 52.
Результат — 52 нуля.
должен любить неявные преобразования... источник многих ошибок.
Вы хотели вместо этого написать
"0".PadRight(4, '0')
?4
следует передавать какint
, а не какchar
'4'
.