C#中的var理解

从 C# 3.0 开始,在方法范围内声明的变量可以具有隐式“类型”var。隐式类型本地变量为强类型,就像用户已经自行声明该类型,但编译器决定类型一样。i 的以下两个声明在功能上是等效的:

var i = 10; 
int i = 10;

var 关键字的常见用途是用于构造函数调用表达式。使用 var则不能在变量声明和对象实例化中重复类型名称

var xs = new List<int>();

从 C# 9.0 开始,可以使用由目标确定类型的 表达式作为替代方法:

List<int> xs = new();
List<int>? ys = new();

在模式匹配中,在 var中使用 var 关键字。

var 的使用是允许的,但不是必需的,因为查询结果的类型可以明确表述为 IEnumerable。

string[] words = { "apple", "strawberry", "grape", "peach", "banana" };
var wordQuery = from word in words
                where word[0] == 'g'
                select word;
foreach (string s in wordQuery)
{
    Console.WriteLine(s);
}

var 允许结果是一系列匿名类型,且相应类型的名称只可供编译器本身访问。如果使用 var,便无法为结果新建类。

var custQuery = from cust in customers
                where cust.City == "Phoenix"
                select new { cust.Name, cust.Phone };

foreach (var item in custQuery)
{
    Console.WriteLine("Name={0}, Phone={1}", item.Name, item.Phone);
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值