我有一个名为Guest
我有两个模型,IUser
和CardOut
,它们都实现了Card
我有一个名为User
的课程,它有两个属性,CardOut
和public CardOut(Interfaces.IUser User, Card Card) {
this.User = User;
this.Card = Card;
}
以下是User
类的构造函数:
Guest
我从数据库中获取了一些行,并根据单元格的类型创建了foreach (IDictionary<string, string> row in rows) {
if (row["type"] == "xxx") {
User UserValue = new User();
UserValue.buildById(int.Parse(row["user_id"]));
} else {
Guest UserValue = new Guest();
UserValue.buildById(int.Parse(row["id"]));
}
Card Card = new Card();
Card.buildCardByIndex(int.Parse(row["cardindex"]));
CardOut CardOut = new CardOut(UserValue, Card); //Here is the error
}
或CardOut
。
<mx:Canvas>
<mx:Image id="img" showEffect="Fade" completeEffect="{fader}" />
<s:HGroup verticalAlign="middle" horizontalAlign="center">
<mx:Label id="touchBegin" text="Touch the screen to continue" fontSize="72" />
</s:HGroup>
</mx:Canvas>
当我想要实例化一个新的form.markAsPending()
对象时,我收到此错误:
错误CS0103当前上下文中不存在名称“UserValue”
我该如何解决?我无法在if条件之外创建它,因为我不知道,我应该实例化哪个类。
答案 0 :(得分:5)
在IUser
块之外声明一个if
类型的变量,并使用具体类型在if
内实例化它。
修改:添加了演员,因为IUser
似乎没有成员buildById
。
foreach (IDictionary<string, string> row in rows) {
IUser UserValue;
if (row["type"] == "xxx") {
UserValue = new User();
((User)UserValue).buildById(int.Parse(row["user_id"]));
} else {
UserValue = new Guest();
((Guest)UserValue).buildById(int.Parse(row["id"]));
}
Card Card = new Card();
Card.buildCardByIndex(int.Parse(row["cardindex"]));
CardOut CardOut = new CardOut(UserValue, Card);
}