回答
Convert.ToString()
手柄null
,而ToString()
没有。
不错..只因为这个具体原因他们使用。两种方法? – TinTin 2010-05-13 15:48:01
此外,半相关,请参阅此答案的更多详细信息:http://stackoverflow.com/questions/496096/casting-vs-using-the-as-keyword-in-the-clr/496167#496167 – JYelton 2010-05-13 15:50:34
更多信息关于使用JustDecompile/Reflector的区别:http://www.kodefuguru.com/post/2011/06/14/Deeper-into-Convert-ToString.aspx – Ubikuity 2012-02-17 17:03:26
在对象上调用ToString()
假定对象不为空(因为对象需要存在才能调用实例方法)。 Convert.ToString(obj)
不需要假定对象不为空(因为它是Convert类的静态方法),但是如果它的为为null,将返回String.Empty
。
var arg = Request.Params.Get(“__ EVENTARGUMENT”); string _arg = Convert.ToString(arg);当arg为null时,_arg不会回退String.Empty。为什么? – Roshe 2012-03-12 03:33:39
@Nilaa您可能想要提出另一个问题,而不是发表评论。我的第一个问题是,当arg为空时,它会返回什么?我的第一个想法是“arg”实际上是“string”类型,所以你调用了Convert.ToString(...)的重载,它只是返回你传递给它的东西。这个讨论是关于该方法的“对象”超负荷。 – 2012-03-12 15:40:34
@Roshe是的,我刚刚得到了这个。 'Convert.ToString(string value)'如果参数为null,则返回null。 'Convert.ToString(object value)'如果参数为'null'则返回'String.Empty'。 – 2013-08-29 15:22:06
在Convert.ToString()
,转换处理或者是NULL
值或没有,但在.ToString()
它不处理一个NULL
值和NULL
参考异常错误。所以最好使用Convert.ToString()
。
让我们明白通过这个例子的区别:
int i= 0;
MessageBox.Show(i.ToString());
MessageBox.Show(Convert.ToString(i));
我们可以使用i.ToString()
或Convert.ToString
转换整数i
。那有什么区别?
它们之间的基本区别是Convert
函数处理NULLS,而i.ToString()
没有;它会抛出一个NULL引用异常错误。因此,使用convert
的良好编码习惯始终是安全的。
对于爱好者而言,这是最好的答案。
.............. Un Safe code ...................................
Try
' In this code we will get "Object reference not set to an instance of an object." exception
Dim a As Object
a = Nothing
a.ToString()
Catch ex As NullReferenceException
Response.Write(ex.Message)
End Try
'............... it is a safe code..............................
Dim b As Object
b = Nothing
Convert.ToString(b)
我对你的回答非常满意。因此+1。谢谢。 – 2013-04-17 10:18:02
您可以创建一个类,并重写toString
方法去做任何你想要的。
例如,您可以创建类别“我的邮件”并覆盖toString
方法以发送电子邮件或执行其他操作而不是写入当前对象。
Convert.toString
将指定的值转换为其等效的字符串表示形式。
Convert.ToString实际上是一个检查null的安全方法,如果value不为null,它只需调用ToString方法就可以了。所以无论如何,如果你有overriden ToString方法,你的overriden ToString方法将被调用。 – ZafarYousafi 2013-02-25 07:32:26
而这种无效安全只有在你处理类时才有用。值类型不能为空,所以我们可以安全地调用ToString方法。 – ZafarYousafi 2013-02-25 07:36:43
object o=null;
string s;
s=o.toString();
//returns a null reference exception for string s.
string str=convert.tostring(o);
//returns an empty string for string str and does not throw an exception.,it's
//better to use convert.tostring() for good coding
除了有关处理null
值其他答案,Convert.ToString
试图调用基地Object.ToString
前使用IFormattable
和IConvertible
接口。
例子:
class FormattableType : IFormattable
{
private double value = 0.42;
public string ToString(string format, IFormatProvider formatProvider)
{
if (formatProvider == null)
{
// ... using some IOC-containers
// ... or using CultureInfo.CurrentCulture/Thread.CurrentThread.CurrentCulture
formatProvider = CultureInfo.InvariantCulture;
}
// ... doing things with format
return value.ToString(formatProvider);
}
public override string ToString()
{
return value.ToString();
}
}
结果:
Convert.ToString(new FormattableType()); // 0.42
new FormattableType().ToString(); // 0,42
这应该被添加到正确的答案,因为它是相当重要的信息。 – Santhos 2015-12-14 10:00:22
ToString()
不能处理空值和convert.ToString()
能够处理它们是空值,所以当你想让你的系统来处理空值使用convert.ToString()
。
该方法“基本上”相同,除了处理null。
Pen pen = null;
Convert.ToString(pen); // No exception thrown
pen.ToString(); // Throws NullReferenceException
从MSDN:
Convert.ToString Method
指定值为其等效的字符串表示形式。
返回表示当前对象的字符串。
“什么都不打印”?什么都没有? 'null',''“''或'”null“'? – weston 2015-12-15 16:54:56
Convert.ToString(strName)
将处理空值,strName.Tostring()
不会处理空值并抛出异常。
所以最好使用Convert.ToString()
然后.ToString();
ToString() Vs Convert.ToString()
相似点: -
两个都用一个特定的类型转换为字符串即INT串,浮到字符串或一个字符串的对象。
差异: -
ToString()
不能处理空值,而在情况与Convert.ToString()
将处理空值。
例子:
namespace Marcus
{
class Employee
{
public int Id { get; set; }
public string Name { get; set; }
}
class Startup
{
public static void Main()
{
Employee e = new Employee();
e = null;
string s = e.ToString(); // This will throw an null exception
s = Convert.ToString(e); // This will throw null exception but it will be automatically handled by Convert.ToString() and exception will not be shown on command window.
}
}
}
'Convert.ToString'不处理'Null异常'。它只是做:'返回值== null? string.Empty:value.ToString()' – Fabio 2017-01-10 17:01:21
我@瑞安的答案达成一致。顺便说一句,从C#6.0为这个目的,你可以使用:
someString?.ToString() ?? string.Empty;
或
$"{someString}"; // bad practice, but this is the most concise option
的
Convert.ToString(someString);
- 1. C#中Convert.ToString()和.ToString()之间的区别?
- 2. ToString()和Convert.ToString()之间的基本区别是什么?
- 3. “Convert.ToString(Nullable <int>)”和“Nullable <int> .ToString()”之间的区别?
- 4. 在C#中使用Visual Studio替换().ToString()与Convert.ToString()
- 5. 转换为Convert.ToString()与.ToString()之间的字符串时,是否有区别?
- 6. C#Convert.ToString(“D2”,Dropdownlist value)
- 7. variable.ToString()与Convert.ToString(变量)
- 8. 为什么Convert.ToString的(对象为空)与Convert.ToString
- 9. ToString(“N2”)和ToString(“0.00”)之间的区别
- 10. (1)的ToString()和1.toString()内的Javascript
- 11. 性能的Convert.ToString(...)或Object.ToString()
- 12. ToString(“0”)与ToString(CultureInfo.InvariantCulture)
- 13. 100.toString vs 100 ['toString']
- 14. String.Format vs ToString和使用InvariantCulture
- 15. Convert.ToString方法和Object.ToString()在全球化方面的区别
- 16. Label.Text/Convert.ToString和帮助的String.Format /千位分隔符
- 17. (串)阅读器[0] VS Convert.ToString(阅读[0])
- 18. 扩展Convert.ToString()来垫二进制输出
- 19. 添加2位小数到Convert.ToString
- 20. 的toString
- 21. Android + toString
- 22. C#日期时间计算和ToString
- 23. 通用类型可空和ToString
- 24. toString()和valueOf()方法的应用领域
- 25. 数据表聚合和使用toString()
- 26. C#覆盖toString()和在的textBox
- 27. OkHttp的.string()和.toString()有什么区别?
- 28. toString,hashcode和equals方法内部接口
- 29. 迭代javascript对象和valueOf toString方法
- 30. JPA Query toString
,而不是你说你有在网络上有许多差异,后来你问只是因为这个具体原因吗?你还在网上找到了什么? – Ryan 2010-05-14 13:57:10
Convert.ToString()有一个允许使用CultureInfo的重载,而.ToString()没有这样的重载。 – Artemix 2014-04-29 10:47:33