Microsoft C# | 轉型與轉換

閱讀時間約 1 分鐘

前言

  C#跟其他程式語言最大的差別,在於它有嚴格規定資料型態,省下空間的同時也能讓運作效率提升,不過也因此會有轉型態的需求,像是把數字轉換成字串這種操作就會視需要的。
  這篇文章將會講述 C#中資料型態轉換的方式,並藉由官方的範例來介紹各個關鍵字和陳述式,說明他們的運作原理。

簡介

  我們可能需要讓字串資料進行數學運算(例如int),或使用字串差補來格式化輸出數值,當了解 C# 編譯器的主要考量時,就更容易了解其以特定方式運作的原因。
  字串差補在之前的文章有談到過,請參考:Micorsoft C# |基礎知識彙整 2

資料轉換的技術

  資料轉換在C#中有三種比較常見的方法,分別是:
  • 在資料類型上使用協助程式方法。
  • 在變數上使用協助程式方法。
  • 使用 Convert 類別的方法。

轉換運算子 | ()

  使用(int)等運算子來轉換,這種轉換較為強硬,如果轉換失敗會出錯,其中,string不能轉數值類(int、float等)。

放大轉換

  將值從較少資訊的資料類型,轉換成可能保存較多資訊的資料類型,在此情況不會遺失任何資訊,譬如 從整數 3 轉換成 3.000,在這種情況下就不會遺失任何資訊。

縮小轉換

  將值從較多資訊的資料類型,轉換成只能保存較少資訊的資料類型,可能遺失有效位數(例如小數),當確定使用縮小傳換時,必須執行轉型,以下為範例:
decimal myDecimal = 3.14m;
Console.WriteLine($"decimal: {myDecimal}");

int myInt = (int)myDecimal;
Console.WriteLine($"int: {myInt}");
上述為將常用於科學數值的 decimal 轉換成 int,因此會出現位數流失的問題。

ToString()

  使用此方法將數字轉換成字串,雖然並非必要手段,但可以讓其他程式員了解我們在幹嘛。

Parse()

  大部分的數值資料類型都擁有此方法,它會將字串轉換成城指定的資料類型,譬如:將兩個string轉換成int,不過如果遇到無法轉換的情況會出問題。
int.parse(string);

Convert

此類別將字串轉換成數字
string value1 = "5";
string value2 = "7";
int result = Convert.ToInt32(value1) * Convert.ToInt32(value2);
Console.WriteLine(result);

適合的方法

  如果是放大轉換,可以依賴編譯器來執行轉換,不過如果是縮小轉換就會需要使用Convert類別,當確定轉換沒有問題時,可以使用轉換運算子。

TryParse()

將字串資料轉換成數值資料,避免轉換資料類型造成執行階段的錯誤,例如:
string name = "Bob";
Console.WriteLine(int.Parse(name));
會跳以下錯誤
System.FormatException: 'Input string was not in a correct format.'

執行操作

在所有數值資料類型上都可以使用:
  • 此方法會嘗試將字串剖析為指定的數值資料類型。
  • 如果成功,此方法會將轉換後的值儲存在 out 參數中。
  • 它將返回一個布林值,指示操作是成功還是失敗。

out參數

  方法可返回值或返回void,方法還可以透過out參數返回值,定義與輸入參數相同但包含關鍵字out。
  使用out參數調用方法時,必須在變量前使用關鍵字out來保存值,並可在代碼其他部分使用。
string value = "102";
int result = 0;
if (int.TryParse(value, out result))
{
Console.WriteLine($"Measurement: {result}");
}
else
{
Console.WriteLine("Unable to report the measurement.");
}
其中關注這一行
if (int.TryParse(value, out result))
  如果int.TryParse()方法將string變數value轉換成int,則會傳回 true;否則會傳回 false,故將此陳述式包圍在 if 陳述式中,並根據該陳述式執行決策邏輯。
  其中,轉換後的值會儲存在result,簡單來說,int.TryParse()會回傳bool,它的作用是把左邊的值轉換成int儲存在右邊,失敗False成功True。
  特殊之處在於,這個result可以同時透過程式碼區塊內部和外部存取,所以out關鍵字會指示編譯器雙向參數傳達輸出。

TryParse()的重要性

  • 將字串轉換成數值資料類型時,請使用 TryParse()。
  • 如果转换成功,TryParse() 会返回 true;如果失败,则会返回 false。
  • out 參數提供傳回值之方法的次要方式。 在此案例中,out 參數會傳回轉換後的值。
  • 將引數傳入已定義 out 參數的方法時,請使用關鍵字 out。

後記

  在程式設計中,c#被稱為是安全穩定的程式,那這個安全穩定的方式來源在哪裡呢?我覺得跟資料型態的嚴謹有關係,在資料型態上可以看到很多介紹,撰寫程式時也會因為資料型態而糾結很久,但熟悉以後,這些東西會加快撰寫效率和方便性。
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
104會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
前言   這篇文章將會介紹 for 陳述式和 foreach 陳述式,以及比較兩者的差別,並撰寫範例介紹用途。 迴圈使用條件   當我們需要重複執行程式碼達特定次數,或需要控制.NET執行階段去執行反覆項目的方式時,會使用到迴圈,在遊戲產程式中,迴圈更是不可少的重要程式碼區塊。 for 關鍵字
這篇文章將會介紹運算式與程式碼小知識,並介紹Switch-case這常用的陳述式,並提供範例的程式碼。
Side Project 是打破傳說魔咒的解咒法,對於新鮮人來說,要找工作大多都要求工作經驗,然而這就跟打副本需要至少兩次刷副本的經驗一樣,若在團隊中沒有熟人,永遠會卡在等級一。
這篇文章將會告訴你詭野西部這一款遊戲的設計巧思,優秀的設計點以及創新之處。
這篇文章將會講述在程式員中的慣例,命名規則,這些規則並不具有強制力,但能讓你在寫程式時有更好的可讀性。
本篇文章將會講述陣列 (Array) 及 foreach 陳述式,陣列是寫程式中關於大筆資料的儲存方式,而 foreach 是處理大筆資料的處理方式之一。
前言   這篇文章將會介紹 for 陳述式和 foreach 陳述式,以及比較兩者的差別,並撰寫範例介紹用途。 迴圈使用條件   當我們需要重複執行程式碼達特定次數,或需要控制.NET執行階段去執行反覆項目的方式時,會使用到迴圈,在遊戲產程式中,迴圈更是不可少的重要程式碼區塊。 for 關鍵字
這篇文章將會介紹運算式與程式碼小知識,並介紹Switch-case這常用的陳述式,並提供範例的程式碼。
Side Project 是打破傳說魔咒的解咒法,對於新鮮人來說,要找工作大多都要求工作經驗,然而這就跟打副本需要至少兩次刷副本的經驗一樣,若在團隊中沒有熟人,永遠會卡在等級一。
這篇文章將會告訴你詭野西部這一款遊戲的設計巧思,優秀的設計點以及創新之處。
這篇文章將會講述在程式員中的慣例,命名規則,這些規則並不具有強制力,但能讓你在寫程式時有更好的可讀性。
本篇文章將會講述陣列 (Array) 及 foreach 陳述式,陣列是寫程式中關於大筆資料的儲存方式,而 foreach 是處理大筆資料的處理方式之一。
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
Offision是專為Microsoft Teams設計的一款創新應用程式,提供無縫和高效的辦公桌預約和辦公室管理解決方案。 瞭解如何使用Offision優化辦公空間,增強團隊協作,並實現靈活的工作安排。
Thumbnail
隨著現代企業管理的不斷發展,Excel已經成為HR部門必備的數據分析和處理工具。在本文中,我們將介紹10個HR常用的Excel函數公式,這些函數公式可以幫助HR部門更快速、準確地完成數據分析和處理,提高工作效率。
Thumbnail
對於投行新人來說,熟練使用各種快速鍵可以大大提高工作效率和準確性。在進行比較簡單的任務,如複製和貼上資訊時,甚至可以一邊聽著節奏的音樂一邊敲打鍵盤,這可說是工作中的一大樂趣了。今天就整理一些投行新人最常用的Excel快速鍵,希望對大家有所幫助~
Thumbnail
Llama 2介紹 下一代開源的大型語言模型的 Llama 2 可以免費用於研究和商業用途。 1. 開源的大型語言模型: Llama 2是一個開源的大型語言模型,這意味著它對於研究人員和企業來說是一個極具價值的資源。開源模型可以讓我們深入了解其內部運作,並且可以根據特定需求進
Thumbnail
這篇文章是我 2023 年微軟實習準備與面試的經驗分享(體感上大概經歷了半年準備吧,哈)。從韓文、新聞跨去科技業,甚至第一次面試就闖到微軟的最後一關主管面試,體驗了外商的重重關卡(煎熬但學到超級多)相當值得記錄,就跟著我一起回顧一下這個特別的旅程吧!
Thumbnail
快速總覽微軟 Microsoft 公佈的 2022 會計年度第四季的獲利
Thumbnail
Sony在三月底正式公布全新的PlayStation Plus遊戲訂閱服務,正式向Microsoft旗下的XGP宣戰。這篇文聊聊Microsoft跟Sony的遊戲訂閱服務大戰誰較有機會勝出。
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
Offision是專為Microsoft Teams設計的一款創新應用程式,提供無縫和高效的辦公桌預約和辦公室管理解決方案。 瞭解如何使用Offision優化辦公空間,增強團隊協作,並實現靈活的工作安排。
Thumbnail
隨著現代企業管理的不斷發展,Excel已經成為HR部門必備的數據分析和處理工具。在本文中,我們將介紹10個HR常用的Excel函數公式,這些函數公式可以幫助HR部門更快速、準確地完成數據分析和處理,提高工作效率。
Thumbnail
對於投行新人來說,熟練使用各種快速鍵可以大大提高工作效率和準確性。在進行比較簡單的任務,如複製和貼上資訊時,甚至可以一邊聽著節奏的音樂一邊敲打鍵盤,這可說是工作中的一大樂趣了。今天就整理一些投行新人最常用的Excel快速鍵,希望對大家有所幫助~
Thumbnail
Llama 2介紹 下一代開源的大型語言模型的 Llama 2 可以免費用於研究和商業用途。 1. 開源的大型語言模型: Llama 2是一個開源的大型語言模型,這意味著它對於研究人員和企業來說是一個極具價值的資源。開源模型可以讓我們深入了解其內部運作,並且可以根據特定需求進
Thumbnail
這篇文章是我 2023 年微軟實習準備與面試的經驗分享(體感上大概經歷了半年準備吧,哈)。從韓文、新聞跨去科技業,甚至第一次面試就闖到微軟的最後一關主管面試,體驗了外商的重重關卡(煎熬但學到超級多)相當值得記錄,就跟著我一起回顧一下這個特別的旅程吧!
Thumbnail
快速總覽微軟 Microsoft 公佈的 2022 會計年度第四季的獲利
Thumbnail
Sony在三月底正式公布全新的PlayStation Plus遊戲訂閱服務,正式向Microsoft旗下的XGP宣戰。這篇文聊聊Microsoft跟Sony的遊戲訂閱服務大戰誰較有機會勝出。