问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c#中的var是什么类型找半天没找到谁帮解释下29

发布网友 发布时间:2024-03-21 21:10

我来回答

5个回答

热心网友 时间:2024-03-30 05:06

这个是 .NET 3.0 之后才新增的特性,称为“推断类型”,需要在创建项目时目标平台选择 .NET 3.0 或以上才可以使用。

 

官方给出的解释是:可以赋予局部变量推断“类型”var 而不是显式类型。var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。推断类型可以是内置类型、匿名类型、用户定义类型、.NET Framework 类库中定义的类型或任何表达式。

 

我们举个例子。原来我们定义变量,是要这样:

int a = 1;
string b = "2";

也就是说,必须先明确地指定变量是什么数据类型,才能给它赋值。

 

而 var 是一个弱类型,用:

var a = 1;
var b = "2";

编译器会根据你给 a 的值 1,来推断 a 是一个整数类型;同理,推断出 b 是一个字符串类型。有点类似 object,但是效率比 object 要高。

热心网友 时间:2024-03-30 05:06

ist是一个泛型集合 foreach是循环遍历list集合里面的元素直到遍历完list中的所有元素 遍历list时,每次遍历都将list集合中的元素作为var类型赋给item 举个例子: 实例化一个图书馆里面的所有书的泛型集合 List list = new List(); foreach

热心网友 时间:2024-03-30 05:07

这个是隐式类型,能自动类型推断,也就是说具体的类型会由编译器帮助推断。

如果声明

var i=100;

那编译器会推断出i为int类型,

如果声明

var s="abcd";

那编译器会推断s为string类型,

如果有

public DataSet GetDS()
{//……}
var ds=GetDS();

那编译器会推断x为DataSet类型。。。

注意,声明时候必须带上初始值,也就是说,不能直接写

var x;//编译时会报错

热心网友 时间:2024-03-30 05:04

VAR可代替任何类型

热心网友 时间:2024-03-30 05:06

就是交给编译器来判断是什么类型,比如:
string a = "abc";
var b = a;
这里的b就是string型,但是为了方便写成var,实际是不存在var型的。
那为什么要设定这个var呢?
比如有个类是:ThisIsAVeryVeryVeryLongClass,那声明的时候就非常麻烦啊:
ThisIsAVeryVeryVeryLongClass a = new ThisIsAVeryVeryVeryLongClass();
于是就可以换成:
var a = new ThisIsAVeryVeryVeryLongClass();
这样就短了很多。

其实更多的时候是用在不确定类型的情况下的,比如a是一个有很多属性的对象:
var x = a.Select(a=> new { Abc = a.Ac, Xyz = a.Xz});
这样就不需要单独为x写一个类了。
但是注意这个var不是动态类型!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦到别人跳楼是不是要长高了? 我小孩四岁,他有五百度的斜弱视请问该怎样 朋友家孩子四岁七个月,检查医生说有弱视,伴有一点轻微斜视,如何治疗... 开机密码忘记了不想恢复出厂设置怎么办呢? 辽宁省十大特产 辽宁有哪些特产值得带 辽宁著名特产排行榜 我升级了快播4.0,但是怎么原来的片子都没了 安装快播提示"抽取,无法写入文件"的解决方法 临床医学学硕和专硕的就业区别 医学学硕和专硕哪一个更好考 宁海金海汇有什么项目 c# 集合List<L> <>中的内容有什么意义7 C# list<string> 怎么提取需要的内容并存入其他...12 C#泛型List<T>58 生活用品除了盐、洗衣粉、护发素,还有哪些过剩产品 ...你的等待是值得的! 大家帮我翻译成英文,谢谢了! 这个标志按钮是怎么用呢 fla文件用什么播放器打开? 抖音钻石怎么换钱的 抖音钻石怎样提现成现金 格华止二甲双胍0.85片能吃半片吗? 二甲双胍最小剂量每天只吃半片有效吗 买新车拉绿通,4.2米和3.8米一样吗?主要想要个排半的。4.2.米没有排半... 拉绿通一般选多大的车呀?有啥好推荐么 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 你好我想问问,我买房贷款本金50万 年限20年 年利率6.8% 每月还3816.7... 在spss中怎么将成绩分数转变成优良中差? 立即下载 ()滑翔龙,()摇头飞椅填修饰词,比如(惊险刺激)的海盗船_百 ... 反作用力和作用力有什么区别? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 守业难的上一句 C# 集合 泛型5 如果登不回去,重新注册了一个还可以申诉回来吗? 如果重新注册一个之前的还可以找得回来吗? 如果重新注册一个之前的还可以找得回来吗? 微信不小心重新注册了想登回原来的怎么办? 登不上,我又注册了一个新的,以前的微号还能找回来吗? 23号地铁龙吴路站靠近罗秀路吗 梦见火山爆发逃跑是什么预兆 微信重新注册了,怎么找回以前那个? 为什么苏宁易付宝会自动扣钱 2021年福建教师招聘报名入口在哪里?考试时间大概是什么时候... ...号重新注册了一个微信,还能找回以前的吗? 尼康d7500怎么对焦 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 云南云勤物业管理有限责任公司电话是多少? 怎么关闭热水器冷热水管? 名字的昵称和网上的昵称有什么区别 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... mac渐变只能海淘吗 盛京和奉天的区别