前言
在 .NET 中有 ToString() 和 Convert.ToString() 兩個方法,它們都可以用于將對象轉(zhuǎn)換為字符串。然而,它們存在不同的用法和表現(xiàn)。了解這兩種方法之間的差異,可以幫助我們選擇適合需求的方法。本文介紹這兩種方法及其差異。
ToString()
ToString() 方法是 Object 類的成員,在各種數(shù)據(jù)類型中被重寫,以提供數(shù)據(jù)類型轉(zhuǎn)換為字符串。下面描述其用法和表現(xiàn):
1、基本用法
// 定義 decimal 數(shù)據(jù)類型變量
decimal price = 24.11M;
// 將變量轉(zhuǎn)換為字符串
string priceAsString =price.ToString();
// 輸出 24.11
Console.WriteLine(priceAsString);
2、實現(xiàn)重寫
不同的數(shù)據(jù)類型重寫 ToString() 方法,以提供意義更明顯的字符串。// 定義 DateTime 數(shù)據(jù)類型變量
DateTime now = DateTime.Now;
// 將變量轉(zhuǎn)換為指定格式的字符串
string dateAsString = now.ToString();
// 輸出 2024/6/3 23:40:04
Console.WriteLine(dateAsString);
3、未引用對象處理
在 null 上調(diào)用 ToString() 將拋出 NullReferenceException 的異常。try
{
string nullStriing = null;
// null 變量轉(zhuǎn)換字符串 將產(chǎn)生異常
string result = nullStriing.ToString();
}
catch (NullReferenceException exception)
{
// 輸出 未將對象引用設(shè)置到對象的實例 異常信息
Console.WriteLine(exception.Message);
}
4、格式化和特定區(qū)域性
一些數(shù)據(jù)類型支持格式化字符串和特定的區(qū)域信息。#region 日期
// 定義日期變量
DateTime now = DateTime.Now;
// 日期變量按指定格式轉(zhuǎn)換為字符串
string dateAsString = now.ToString("yyyy-MM-dd HH:mm:ss");
// 輸出 2024-06-03 23:40:04
Console.WriteLine(dateAsString);
#endregion
#region 數(shù)值
// 定義價格變量
double price = 24.6789;
// 將變量轉(zhuǎn)換格式后的字符串化價格
string formattedPrice = price.ToString("C", new CultureInfo("zh-CN"));
// 輸出 ¥24.68
Console.WriteLine(formattedPrice);
#endregion
Convert.ToString()
Convert.ToString() 方法是 Convert 類中的靜態(tài)方法,提供了一種更靈活的方法將各種數(shù)據(jù)類型轉(zhuǎn)換為字符串。下面描述其用法和表現(xiàn)。// 定義稅率變量
double taxRate = 0.21;
// 將變量轉(zhuǎn)換為字符串
string taxRateAsString = Convert.ToString(taxRate);
// 輸出 0.21
Convert.ToString() 對未引用對象(null)會返回空字符串,處理掉異常。// 聲明變量為 null
string productName=null;
// 將變量轉(zhuǎn)換為字符串
string productNameAsString = Convert.ToString(productName);
// 輸出 空字符串
Console.WriteLine(productNameAsString);
Convert.ToString() 可以處理更多的數(shù)據(jù)類型,也包括 null 值和對象。object objText = null;
// 將變量轉(zhuǎn)換為字符串
string result = Convert.ToString(objText);
// 輸出 空字符串
Console.WriteLine(result);
int age = 18;
// 將變量轉(zhuǎn)換為字符串
string ageAsString = Convert.ToString(age);
// 輸出 18
Console.WriteLine(ageAsString);
與 ToString() 相似,Convert.ToString() 也支持對數(shù)據(jù)類型格式化字符串和特定的區(qū)域信息。
#region 日期
// 定義日期變量
DateTime now = DateTime.Now;
// 日期變量按指定格式轉(zhuǎn)換為字符串
string dateAsString = Convert.ToString(now, new CultureInfo("zh-CN"));
// 輸出 2024/6/4 20:48:16
Console.WriteLine(dateAsString);
#endregion
差異
1、未引用對象處理
2、重寫
3、靈活性
小結(jié)
ToString() 和 Convert.ToString() 都是將數(shù)據(jù)轉(zhuǎn)換為字符串的有用方法。了解它們的差異,希望有助于大家選擇最合適的方法。如有不到之處,請多多包涵。
該文章在 2024/6/8 18:11:58 編輯過