陋室铭
永远也不要停下学习的脚步(大道至简至易)

posts - 2169,comments - 570,views - 413万

 dynamic英音:[dai'næmik]美音:[daɪ'næmɪk]   

asynchronous英音:[ei'siŋkrənəs]美音:[e'sɪŋkrənəs]   

VAR 是3.5新出的一个定义变量的类型
其实也就是弱化类型的定义
VAR可代替任何类型
编译器会根据上下文来判断你到底是想用什么类型的

至于什么情况下用到VAR   我想就是你无法确定自己将用的是什么类型
就可以使用VAR     类似 OBJECT
但是效率比OBJECT高点

使用var定义变量时有以下四个特点:

1. 必须在定义时初始化。也就是必须是var s = “abcd”形式,而不能是如下形式:
var s;
s = “abcd”;

2. 一但初始化完成,就不能再给变量赋与初始化值类型不同的值了。

3.   var要求是局部变量。

4.   使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。

 

 

var表示“变量的类型是在编译时决定的”,但是dynamic表示“变量的类型是在运行时决定的”。因此,dynamic与var具有截然不同的含义。

  var让你在初始化变量时少输入一些字,编译器会根据右值来推断出变量的类型。dynamic更厉害,它告诉编译器,根本就别理究竟是啥类型,运行时再推断不迟。

  var只能用于局部变量的定义,你不能把类的属性定义成 var,也不能把方法的返回值类型或者是参数类型定义成var。dynamic就没有这些局限了。

  dynamic类型并没有跳过类型校验,只是延迟到了运行时。如果在运行时,检测到类型不兼容,照样会抛出异常。

  你可能在以下情况下使用dynamic:

  1.COM对象

  2.动态语言(如IronPython,IronRuby等)对象

  3.反射对象

  4.C# 4.0中动态创建的对象

 public class _Default

{

略....

}

  dynamic d = new _Default();

  d.MyMethod(22); // 方法调用

  d.A = d.B; // 属性赋值

  d[“one”] = d[“two”]; // 索引器赋值

  int i = d + 100; // 运算符调用

  string s = d(1,2); // 委托调用

 

C#会增加更多的特性以支持异步编程(Asynchronous Programming)。

Reflection

 

 

 

posted on   宏宇  阅读(803)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2007-03-21 什么是中间件?
2007-03-21 什么是“分布式应用系统”
2007-03-21 分布式应用程序
2007-03-21 API
< 2011年3月 >
27 28 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9

点击右上角即可分享
微信分享提示