前言
關鍵字是預定義的保留標識符,對編譯器有特殊意義。C#中的關鍵字有很多,其中object、var、dynamic關鍵字是三種常見數據類型。它們可以處理多種數據類型,但各有用法、特性、優缺點和適用場景。本文將了解它們的應用與區別。
object
1、概述
object是C#的基礎類型,也是其他類型的基類。它是一種通用的引用類型,可以存儲任何類型的值。任何類型的數據都可以分配給object。編譯器決定它在運行時是哪種類型,如果我們需要使用指定的類型,那首先需要顯式地(手動)轉換。
2、示例
// 定義
object objectString = "fountian";
object objectInt = 100;
// 顯式轉換
string convertString = (string)objectString;
int convertInt = (int)objectInt;
下面是一些應用場景:
public object GetObjectData(object data)
{
return data;
}
object objectInstance = GetObjectData();
//
Type tagetType = objectInstance.GetType();
// 獲取方法
MethodInfo method = tagetType.GetMethod("Printing");
// 執行方法
method.Invoke(objectInstance, null);
var
1、概述
var是C#的隱式類型推斷關鍵字,編譯器在運行時根據變量的初始化值自動推斷變量的類型。var類型只能用于局部變量,不能用于類的字段或方法的參數和返回類型。
2、示例
var varString = "fountian";
var varInt = 100;
3、應用場景
var主要用于簡化代碼,特別是當變量的類型顯而易見時。下面是一些應用場景:
// 列表
var express = new List<string> {"ZTO","SF","JT","STO"};
// 遍歷
foreach (var item in express)
{
Console.WriteLine(item);
}
dynamic
1、概述
dynamic是一種在運行時進行類型檢查和綁定的能力動態類型變量,它類似object可以在運行時表示任何類型的值,并且可以調用該類型的成員,而無需進行編譯時檢查。相比于object類型,使用dynamic類型時無需顯式進行類型轉換。
2、示例
dynamic expressCode = "ZTO";
dynamic expressId = 10001;
string expressString = expressCode;
int expressInt = expressId;
dynamic objectInstance = GetObjectData();
objectInstance.SomeMethod();
3、應用場景
下面是一些應用場景:
var peopleList = new List<Person>();
var people = peopleList.Where(p => p.Age < 30);
foreach (var personItem in people)
{
Console.WriteLine(personItem.Name);
}
區別
小結
object、var、dynamic 關鍵字定義的數據類型,如何選擇使用,我們需要了解它們,并根據具體需求和場景,以實現高效、易于維護的代碼。希望本文對您有所收獲,如有不到之處,請多多包涵。
閱讀原文:原文鏈接
該文章在 2024/12/30 15:07:26 編輯過