欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# 中的幾種類型的轉換

admin
2024年11月10日 9:32 本文熱度 433

前言

在 C# 中,變量在聲明后就無法再次聲明或無法分配另一種類型的值,除非該類型可以隱式轉換為變量的類型。但有時我們可能需要將值復制到其他類型的變量或方法參數中。這意味著我們需要對類型進行轉換操作,而在 C# 中,可以通過些方式實現類型的轉換。

類型轉換

1、隱式轉換

這種轉換是自動進行的,不需要特殊語法,因為轉換始終會成功,并且不會丟失任何數據。一般是發生在從較小整數類型到較大整數類型的轉換以及從派生類到基類的轉換。

float pi=3.14;// 隱式轉換double qty=pi;
int i = pi; // 隱式轉換long num = i;
public class BasePrint{    public void Message()    {        Console.WriteLine("基礎打印");    }}public class BarcodePrint: BasePrint{    public void BarcodeMessage()    {        Console.WriteLine("條碼打印");    }}
BarcodePrint barcode = new BarcodePrint();// 隱式轉換BasePrint base = barcode;
引用類型的隱式轉換,它是從一個類轉換為該類的任何一個直接或間接的基類或接口的情況。因為派生類始終包含基類的所有成員,所以能隱式轉換。

2、顯式轉換

這種轉換需要明確指出,通常涉及到范圍較小的類型到范圍較大的類型,或者可能丟失信息的轉換。顯式轉換也稱為強制轉換
double price = 234.70;int qty;// 強制將 double 轉換 int.qty = (int)price;
public class ZTextBox:TextBox{}
ZTextBox txtProduct = new ZTextBox();// 顯式將 ZTextBox 轉換為 TextBoxTextBox txtBoxcode = (TextBox)txtProduct; 

3、類型轉換方法

對于類型轉換方法,下面我們了解幾種方法來進行類型轉換。

  • Convert類:提供了一系列靜態方法,用于在不同類型之間進行轉換。

// 日期轉字符串string today = Convert.ToString(DateTime.Now);// 字符串轉數值double price = Convert.ToDouble("231.40");// 數值0轉布爾值bool result = Convert.ToBoolean(0);

  • Parse方法:用于完成類型轉換,如果轉換失敗,則拋出異常。

使用該方法需要類型提供了Parse方法。如int.Parse、double.Parse等。
// 字符串轉日期DateTime dateTime = DateTime.Parse("2024-01-11");// 字符串轉數值double price = double.Parse("231.40");// 字符串true轉為布爾值bool result = bool.Parse("true");

  • TryParse方法:嘗試轉換,返回值為布爾值,代表是否轉換成功。

    使用該方法需要類型提供了TryParse方法。如int.TryParse、double.TryParse等。

// 字符串嘗試轉日期DateTime.TryParse("2024-01-11", out DateTime dateTime);// 字符串嘗試轉數值double.TryParse("120.50", out double price);

  • ChangeType方法:可以將一個類型轉換為指定的類型。

它是 Convert 類中提供的一個方法,可以將一個類型轉換為其它類型。
long qty = 123;object result = Convert.ChangeType(qty, typeof(int));

4、用戶定義的轉換

用戶定義的轉換使用自定義的特殊方法,以支持在不具有基類和派生類關系的自定義類型之間實現顯式和隱式轉換。通過在類中定義轉換運算符來定義自己的類型轉換規則。通過在類型中定義 implicit 或 explicit 關鍵字。
// 定義攝氏溫度Celsius celsius = new Celsius();// 設定溫度 20celsius.Temperature = 20;// 將攝氏溫度轉為華氏溫度Fahrenheit fahrenheit = (Fahrenheit)celsius;// 輸出華氏溫度為68Console.WriteLine(fahrenheit.Temperature);// 將華氏溫度轉為攝氏溫度Celsius fahrenheitToCelsius = (Celsius)fahrenheit;// 輸出攝氏溫度為20Console.WriteLine(fahrenheitToCelsius.Temperature);
/// <summary>/// 攝氏溫度/// </summary>public class Celsius{    public double Temperature { get; set; }
   public static implicit operator Fahrenheit(Celsius celsius)    {        return new Fahrenheit { Temperature = (celsius.Temperature*9 /5)+32};    }}
/// <summary>/// 華氏溫度/// </summary>public class Fahrenheit{    public double Temperature { get; set; }
   public static implicit operator Celsius(Fahrenheit fahrenheit)    {        return new Celsius { Temperature = (fahrenheit.Temperature-32)*5/9};    }}

小結

以上是C#中常見的類型轉換方式,每種方式都有其適用的場景和限制。在編程中,應根據不同場景和限制選擇合適的類型轉換方法。


該文章在 2024/11/11 10:23:00 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved