理解C#中的ToString与Convert.ToString差异
|
admin
2024年6月8日 18:11
本文热度 535
|
前言
在 .NET 中有 ToString() 和 Convert.ToString() 两个方法,它们都可以用于将对象转换为字符串。然而,它们存在不同的用法和表现。了解这两种方法之间的差异,可以帮助我们选择适合需求的方法。本文介绍这两种方法及其差异。
ToString()
ToString() 方法是 Object 类的成员,在各种数据类型中被重写,以提供数据类型转换为字符串。下面描述其用法和表现:
1、基本用法
// 定义 decimal 数据类型变量
decimal price = 24.11M;
// 将变量转换为字符串
string priceAsString =price.ToString();
// 输出 24.11
Console.WriteLine(priceAsString);
2、实现重写
不同的数据类型重写 ToString() 方法,以提供意义更明显的字符串。// 定义 DateTime 数据类型变量
DateTime now = DateTime.Now;
// 将变量转换为指定格式的字符串
string dateAsString = now.ToString();
// 输出 2024/6/3 23:40:04
Console.WriteLine(dateAsString);
3、未引用对象处理
在 null 上调用 ToString() 将抛出 NullReferenceException 的异常。try
{
string nullStriing = null;
// null 变量转换字符串 将产生异常
string result = nullStriing.ToString();
}
catch (NullReferenceException exception)
{
// 输出 未将对象引用设置到对象的实例 异常信息
Console.WriteLine(exception.Message);
}
4、格式化和特定区域性
#region 日期
// 定义日期变量
DateTime now = DateTime.Now;
// 日期变量按指定格式转换为字符串
string dateAsString = now.ToString("yyyy-MM-dd HH:mm:ss");
// 输出 2024-06-03 23:40:04
Console.WriteLine(dateAsString);
#endregion
#region 数值
// 定义价格变量
double price = 24.6789;
// 将变量转换格式后的字符串化价格
string formattedPrice = price.ToString("C", new CultureInfo("zh-CN"));
// 输出 ¥24.68
Console.WriteLine(formattedPrice);
#endregion
Convert.ToString()
Convert.ToString() 方法是 Convert 类中的静态方法,提供了一种更灵活的方法将各种数据类型转换为字符串。下面描述其用法和表现。// 定义税率变量
double taxRate = 0.21;
// 将变量转换为字符串
string taxRateAsString = Convert.ToString(taxRate);
// 输出 0.21
Convert.ToString() 对未引用对象(null)会返回空字符串,处理掉异常。// 声明变量为 null
string productName=null;
// 将变量转换为字符串
string productNameAsString = Convert.ToString(productName);
// 输出 空字符串
Console.WriteLine(productNameAsString);
Convert.ToString() 可以处理更多的数据类型,也包括 null 值和对象。object objText = null;
// 将变量转换为字符串
string result = Convert.ToString(objText);
// 输出 空字符串
Console.WriteLine(result);
int age = 18;
// 将变量转换为字符串
string ageAsString = Convert.ToString(age);
// 输出 18
Console.WriteLine(ageAsString);
与 ToString() 相似,Convert.ToString() 也支持对数据类型格式化字符串和特定的区域信息。
#region 日期
// 定义日期变量
DateTime now = DateTime.Now;
// 日期变量按指定格式转换为字符串
string dateAsString = Convert.ToString(now, new CultureInfo("zh-CN"));
// 输出 2024/6/4 20:48:16
Console.WriteLine(dateAsString);
#endregion
差异
1、未引用对象处理
2、重写
3、灵活性
小结
ToString() 和 Convert.ToString() 都是将数据转换为字符串的有用方法。了解它们的差异,希望有助于大家选择最合适的方法。如有不到之处,请多多包涵。
该文章在 2024/6/8 18:11:58 编辑过