C# dynamic类型
dynamic关键字可充当C#类型系统中的静态类型声明。这样,C#就获得了动态功能,同时仍然作为静态类型化语言而存在。
Var与dynamic:
var实际上编译器抛给我们的语法糖,一旦被编译,编译器就会自动匹配var变量的实际类型,并用实际类型来替换该变量的声明,等同于我们在编码时使用了实际类型声明。而dynamic被编译后是一个Object类型,编译器编译时不会对dynamic进行类型检查。
dynamic与反射
以前我们这样使用反射:
public
class
DynamicSample
{
public
string
Name {
get
;
set
; }
public
int
Add(
int
a,
int
b)
{
return
a + b;
}
}
DynamicSample dynamicSample =
new
DynamicSample();
//create instance为了简化演示,我没有使用反射
var
addMethod =
typeof
(DynamicSample).GetMethod(
"Add"
);
int
re = (
int
)addMethod.Invoke(dynamicSample,
new
object
[] { 1, 2 });
现在,我们有了简化的写法:
dynamic dynamicSample2 =
new
DynamicSample();
int
re2 = dynamicSample2.Add(1, 2);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!