由 ToString()和Convert.ToString() 引發的問題

来源:https://www.cnblogs.com/xiaomowang/archive/2019/08/30/11436232.html
-Advertisement-
Play Games

對於久經沙場的程式猿來說,類型轉換再熟悉不過了,在代碼中我們也會經常用到。 前幾天,有個學生問我關於類型轉換ToString()和Convert.ToString()的區別,這麼常用的東西我竟然支支吾吾了半天未回答上來,後來查了一下資料總算弄明白了。 首先,將某類型轉換為string,大家會想到幾種 ...


對於久經沙場的程式猿來說,類型轉換再熟悉不過了,在代碼中我們也會經常用到。

前幾天,有個學生問我關於類型轉換ToString()和Convert.ToString()的區別,這麼常用的東西我竟然支支吾吾了半天未回答上來,後來查了一下資料總算弄明白了。

首先,將某類型轉換為string,大家會想到幾種轉換方法呢?

1、ToString();2、Convert.ToString();3、(string);4、as string;

那麼下麵,我們來看一下這四個有什麼區別:

1、首先來看一下ToString()

ToString()是Object的擴展方法,所以都有ToString()方法,但是當返回的數據類型中有可能出現null值時如果調用ToString方法了,就會返回NullReferenceException。

2、Convert.ToString()

Convert.ToString() 轉 null 不會拋出異常,而是返回”“

3、(string)

用強制轉換(string)obj 要求 obj 的運行時類型必須是 string。如果不是,就會拋出異常。

4、as string

as 方法則會相對平穩,當 obj 的運行時類型不是 string 時會返回 null 而不拋出異常

好啦,現在已經明瞭了。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.下載idlex-1.18.zip 網址:https://zh.osdn.net/projects/sfnet_idlex/ 2.解壓idlex-1.18.zip 2.解壓idlex-1.18.zip (1)將LineNumbers.py(idlex-1.18\idlexlib\extension ...
  • 緩存雪崩 緩存雪崩是由於原有緩存失效(過期),新緩存未到期間。所有請求都去查詢資料庫,而對資料庫CPU和記憶體造成巨大壓力,嚴重的會造成資料庫宕機。從而形成一系列連鎖反應,造成整個系統崩潰。 解決方法: 一般併發量不是特別多的時候,使用最多的解決方案是加鎖排隊。 給每一個緩存數據增加相應的緩存標記,記 ...
  • 安裝 urllib庫更適合寫爬蟲文件,scrapy更適合做爬蟲項目。 步驟: 1. 先更改pip源,國外的太慢了,參考:https://www.jb51.net/article/159167.htm 2. 升級pip:python m pip install upgrade pip 3. pip i ...
  • 摘要: 在 的自動裝配事務裡面, , ,`PlatformTransactionManager InfrastructureAdvisorAutoProxyCreator TransactionInterceptor Spring`事務的核心角色。 支撐著整個事務功能的架構,邏輯還是相對複雜的,那麼 ...
  • docker dotnet Restore 的時候報錯, 一度懷疑是linux的dotnet core sdk沒有裝好, 卸了裝, 裝了卸, 試了好幾遍還是無效(Microsoft.Common.CurrentVersion.targets 這個文件的確又是存在的), 找度娘也沒找到解決方案, /u ...
  • 一、訪問修飾符 訪問修飾符有public、private、protected、internal和protected internal。它們是修飾在類型(類、介面、委托、結構和枚舉)和類型成員(欄位、屬性、方法、構造函數等等)上控制其訪問許可權的關鍵字。 訪問修飾符雖然是修飾在類型和類型成員上的,但它卻 ...
  • 本節將介紹如何進行業務項目搭建。 本業務項目示例是簡單的企業信息管理功能,業務項目採用Code First方式,搭建包括: 搭建完項目效果: 1、創建實體項目-ShiQuan.Company.Entity 創建企業信息實體 示例中企業信息包括:編號、名稱、負責人、聯繫人、聯繫電話、聯繫地址等 2、創 ...
  • 通常,變數作為參數進行傳遞時,不論在方法內進行了什麼操作,其原始初始化的值都不會被影響; 例如: public void TestFun1() { int arg = 10; TestFun2(arg); Console.WriteLine(arg); Console.ReadKey(); } pu ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...