了解C#中var、object与dynamic关键字
|
admin
2024年12月28日 21:23
本文热度 27
|
前言
关键字是预定义的保留标识符,对编译器有特殊意义。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 编辑过