【已更新最新开发文章,点击查看详细】
另外,还能了解在使用 var 隐式对变量进行类型化时的后台操作。
此强类型保证在编译时捕获类型错误,以便可以在用户遇到这些错误之前更正它们。
var 的隐式类型时,如何应用相同的原则。
不转换源数据的查询
源包含一个字符串序列,查询输出也是一个字符串序列。
-
数据源的类型参数决定范围变量的类型。
-
因此,查询变量是一个
IEnumerable<string>。 -
因为查询变量是一个字符串序列,所以迭代变量也是一个字符串。
转换源数据的查询
因为 Name 是一个字符串,所以查询生成一个字符串序列作为输出。
-
数据源的类型参数决定范围变量的类型。
-
因为
Name是一个字符串,所以custNameQuery的类型参数是string,而非Customer。 -
因为
custNameQuery是一个字符串序列,所以foreach循环的迭代变量也必须是string。
select 语句返回只捕获原始 Customer 对象的两个成员的匿名类型。
-
数据源的类型参数始终为查询中范围变量的类型。
-
因为
select语句生成匿名类型,所以必须使用var隐式类型化查询变量。 -
因为查询变量的类型是隐式的,所以
foreach循环中的迭代变量也必须是隐式的。
让编译器推断类型信息
但是,编译器为查询操作中的各个变量提供强类型。
【已更新最新开发文章,点击查看详细】