0

我在将 List 传递给类构造函数时遇到问题,因为它会生成编译错误:

无法将System.Collections.Generic.List<CupuleAdmin.RoomViewController.Rooms>表达式转换为类型System.Collections.Generic.List<CupuleAdmin.TableSource.Rooms>

protected List<Rooms> tableList = new List<Rooms>();

public TableSource (List<Rooms> table)
{
    tableList = table;

}
public class Rooms
{

    public int id {get;set;}
    public int room {get;set;}
    public string desc {get;set;}

}

我在另一个类公共类 RoomViewController 中填充了列表: UIViewController {

 //.....
    class Rooms
    {
        [PrimaryKey]
        public int id {get;set;}
        public int room {get;set;}
        public string desc {get;set;}

    }     

         var db = new SQLiteConnection(dbPath); 
         var allrooms = db.Query("select * from rooms");

}

然后尝试将 List 传递给另一个类的构造函数

var table = new UITableView(View.Bounds);

table.Source = new TableSource(allrooms);

但是我在上面的行中遇到编译错误-错误报告无法将System.Collections.Generic.List表达式转换为类型System.Collections.Generic.List问题。

如果我将 List 更改为类型字符串,则该类可以编译。

在引用自定义的两个类的所有情况下,List<Rooms>它在我的 IDE 中显示为正确的类型:List<Rooms>

传递包含对象/类的列表时,我需要做些什么特别的事情吗?

4

2 回答 2

3

很明显这里发生了什么,你需要知道的一切都在你的错误信息中。你有两个不同的Rooms类声明,一个在你RoomViewController的,另一个在你的TableSource,并且似乎在你的类中泄漏它们。

您需要确保将预期类型传递给TableSource类。进一步详细说明,您的TableSource构造函数如下所示:

public TableSource(List<CupuleAdmin.TableSource.Rooms> table)
{
}

你正试图通过:

List<CupuleAdmin.RoomViewController.Rooms> allrooms = new List<...>();
table.Source = new TableSource(allrooms);
于 2013-06-29T14:55:51.660 回答
0

确保通过正确的Type

CupuleAdmin。RoomViewController . 房间?

或者

CupuleAdmin。TableSource .Rooms

于 2013-06-29T15:00:35.290 回答