狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 中的幾種類型的轉(zhuǎn)換

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

前言

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

類型轉(zhuǎn)換

1、隱式轉(zhuǎn)換

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

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

2、顯式轉(zhuǎn)換

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

3、類型轉(zhuǎn)換方法

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

  • Convert類:提供了一系列靜態(tài)方法,用于在不同類型之間進行轉(zhuǎn)換。

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

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

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

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

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

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

  • ChangeType方法:可以將一個類型轉(zhuǎn)換為指定的類型。

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

4、用戶定義的轉(zhuǎn)換

用戶定義的轉(zhuǎn)換使用自定義的特殊方法,以支持在不具有基類和派生類關(guān)系的自定義類型之間實現(xiàn)顯式和隱式轉(zhuǎn)換。通過在類中定義轉(zhuǎn)換運算符來定義自己的類型轉(zhuǎn)換規(guī)則。通過在類型中定義 implicit 或 explicit 關(guān)鍵字。
// 定義攝氏溫度Celsius celsius = new Celsius();// 設(shè)定溫度 20celsius.Temperature = 20;// 將攝氏溫度轉(zhuǎn)為華氏溫度Fahrenheit fahrenheit = (Fahrenheit)celsius;// 輸出華氏溫度為68Console.WriteLine(fahrenheit.Temperature);// 將華氏溫度轉(zhuǎn)為攝氏溫度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};    }}

小結(jié)

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


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