В чем разница между Convert.ToString()
и .ToString()
?
Я нашел много различий в Интернете, но в чем главное отличие?
c#
type-conversion
tostring
TinTin
источник
источник
Ответы:
Convert.ToString()
ручкамиnull
, покаToString()
нет.источник
null
вернуть пустую строку или выдать исключение? Это как разница между приведением и использованиемas
: тихое преобразование.Вызов
ToString()
объекта предполагает, что объект не является нулевым (поскольку объект должен существовать для вызова метода экземпляра для него).Convert.ToString(obj)
не нужно предполагать, что объект не равен нулю (так как это статический метод в классе Convert), но вместо этого вернет значение,String.Empty
если оно равно нулю.источник
Convert.ToString(string value)
возвращает,null
если аргумент естьnull
.Convert.ToString(object value)
возвращает,String.Empty
если аргумент естьnull
.В дополнение к другим ответам об обработке
null
значений,Convert.ToString
пытается использоватьIFormattable
иIConvertible
интерфейсы перед вызовом базыObject.ToString
.Пример:
Результат:
источник
IConvertible
имеет приоритет надIFormattable
, который, в свою очередь, имеет приоритет надObject.ToString()
реализацией.Давайте поймем разницу через этот пример:
Мы можем преобразовать целое число,
i
используяi.ToString ()
илиConvert.ToString
. Так в чем же разница?Основное различие между ними заключается в том, что
Convert
функция обрабатывает NULLS, в то времяi.ToString ()
как нет; это выдаст ошибку исключения ссылки NULL. Так как использование хорошей практики кодированияconvert
всегда безопасно.источник
Вы можете создать класс и переопределить
toString
метод, чтобы сделать все, что вы хотите.Например, вы можете создать класс «MyMail» и переопределить
toString
метод для отправки электронного письма или выполнить какую-либо другую операцию вместо записи текущего объекта.Convert.toString
Преобразует указанное значение в эквивалентное ему строковое представление.источник
источник
Методы «в основном» одинаковы, за исключением обработки нулевого значения .
Из MSDN:
метод Convert.ToString
Object.ToString
источник
null
,""
Или"null"
?В
Convert.ToString()
Convert обрабатывает либоNULL
значение, либо нет, но в.ToString()
нем не обрабатываетсяNULL
значение иNULL
ошибка исключения ссылки. Так что это хорошая практика для использованияConvert.ToString()
.источник
Для любителей кода это лучший ответ.
источник
Я согласен с ответом @ Райана . Кстати, начиная с C # 6.0 для этой цели вы можете использовать:
или
вместо того
источник
ToString()
не может обрабатывать нулевые значения иconvert.ToString()
может обрабатывать значения, которые являются нулевыми, поэтому, когда вы хотите, чтобы ваша система обрабатывала нулевые значения, используйтеconvert.ToString()
.источник
Convert.ToString(strName)
будет обрабатывать нулевые значения иstrName.Tostring()
не будет обрабатывать нулевые значения и выдавать исключение.Так что лучше использовать
Convert.ToString()
потом.ToString();
источник
Оба используются для преобразования определенного типа в строку, например, int в строку, float в строку или объект в строку.
ToString()
не может обработать ноль, в то время как в случае сConvert.ToString()
будет обрабатывать нулевое значение.Пример :
источник
Convert.ToString
не обрабатыватьNull Exception
. это просто сделать:return value == null ? string.Empty : value.ToString()
Чтобы понять оба метода, давайте возьмем пример:
Здесь оба метода используются для преобразования строки, но основное различие между ними заключается в следующем:
Convert
функция обрабатываетNULL
, в то времяi.ToString()
как не бросает ее,NULL reference exception error.
так как использование хорошей практики кодированияconvert
всегда безопасно.Давайте посмотрим на другой пример:
источник
Convert.ToString(value)
сначала пытается привести obj к IConvertible , затем IFormattable для вызова соответствующихToString(...)
методов. Если вместо этого значение параметра былоnull
возвращеноstring.Empty
. В крайнемobj.ToString()
случае вернитесь, если ничего не помогло.Стоит отметить, что
Convert.ToString(value)
может вернуться,null
если, например,value.ToString()
возвращает ноль.См. Источник справки .Net
источник
я написал этот код и скомпилировал его.
используя 'обратный инжиниринг' ( ilspy ), я выясняю, что object.ToString () и Convert.ToString (obj) делают только одно. Infact 'Convert.ToString (obj)' вызовите 'object.ToString ()', чтобы 'object.ToString ()' был быстрее.
источник
В C #, если вы объявляете строковую переменную и если вы не присваиваете значение этой переменной, то по умолчанию эта переменная принимает нулевое значение. В таком случае, если вы используете метод ToString (), ваша программа сгенерирует исключение нулевой ссылки. С другой стороны, если вы используете метод Convert.ToString (), ваша программа не сгенерирует исключение.
источник
Convert.Tostring()
в основном просто вызывает следующееvalue == null ? String.Empty: value.ToString()
(string)variable
только отливать , когда есть неявный или явный оператор на то , что вы литьеToString()
может быть переопределен типом (он имеет контроль над тем, что он делает), если нет, это приводит к имени типаОчевидно, что если объект имеет значение null , вы не можете получить доступ к члену экземпляра
ToString()
, это вызовет исключениеисточник
Функция Convert.Tostring () обрабатывает NULL, а метод .ToString () - нет. посетите здесь .
источник