C # - есть ли разница между x.ToString ("D") и x.ToString (), где x тип int? - PullRequest
0 голосов
/ 21 сентября 2018

Мои личные предпочтения x.ToString(), так как в нем немного меньше букв.Есть ли какое-либо преимущество у одного из них?

Ответы [ 4 ]

0 голосов
/ 21 сентября 2018

Из документации Microsoft:

Чтобы отформатировать значение Int32 как целую строку без начальных нулей, можно вызвать метод ToString () без параметров.Используя спецификатор формата «D», вы также можете включить указанное число начальных нулей в строковое представление.

Может показаться, что "D" без цифр - это то, что Int32.ToString() использует по умолчанию.

Таким образом, между этими двумя значениями нет никакой разницы.

0 голосов
/ 21 сентября 2018

Суть .ToString("D") в том, что она позволяет вам указать предыдущее количество цифр.

например,

var i = 123;

var stringed = i.ToString("D5");//stringed = 00123
0 голосов
/ 21 сентября 2018

Посмотрите, что на самом деле означает «D»:

https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings

«D» или «d» Десятичный результат: целые числа с необязательным отрицательным знаком.

Поддерживается: только для целых типов.

Спецификатор точности: минимальное количество цифр.

Спецификатор точности по умолчанию: требуется минимальное количество цифр.

Дополнительная информация: Спецификатор формата десятичного ("D").

1234 ("D") -> 1234

-1234 ("D6") -> -001234

Так, в зависимости от формата выводавы ищете, вот что различные спецификаторы формата (или точности) могут помочь продиктовать ваш вывод.

0 голосов
/ 21 сентября 2018

Посмотрите на эту статью

Спецификатор формата "D" (или десятичный) преобразует число в строку десятичных цифр (0-9) с префиксомзнак минус, если число отрицательное.Этот формат поддерживается только для целочисленных типов.

Он показывает тот же результат для случая "D".

Но он будет дополняться нулями слева от вашего int, если вам "Dx" (x - это число)

ToString() достаточно для того, чтобы вы преобразовали в string

...