【发布时间】:2014-01-13 09:36:25
【问题描述】:
是否可以定义一个匿名变量并在switch 语句中使用它?
类似这样的:
我需要定义一个IEnumerable 类型来实际循环遍历DbContext 中的实体类型。
DAL.DataClasses1DataContext _db = new DAL.DataClasses1DataContext();
var dbItems;
switch (tableName)
{
case "QuarryCats" :
dbItems = _db.QuarryCats.ToList();
break;
}
foreach (var item in dbItems)
{
var orderitem = orderItems.Single(rs => rs.itemId == item.Id);
item.OrderId = orderitem.orderId;
}
_db.SubmitChanges();
目前我得到一个编译时错误:
隐式类型局部变量必须初始化
更新: 我所有来自 swich 的返回类型都有 Id 和 OrderId 字段。需要我投吗?
【问题讨论】:
-
错误状态本身,这是不可能的,因为 var 在初始化期间暗示了类型。您必须在使用前对其进行初始化。
-
var不代表匿名类型。它只是一个隐式类型的变量。那是不同一件事。 -
谢谢,但是如何在 swich statment 中定义隐式类型和初始化
-
_db.QuarryCats.ToList() 返回什么?
-
_db 是 DataClasses1DataContext 类型