Tôi đã tạo một lớp có nguồn gốc từ Danh sách. Tuy nhiên khi tôi cố gắng đúc lớp vào đối tượng List khác, tôi gặp lỗi thời gian chạy. Mã của tôi tương tự như mã được đăng bên dưới:Truyền danh sách chung cho một lớp được lấy từ danh sách
public class CategoryObj
{
public int CategoryID { get; set; }
public string CategoryName { get; set; }
public string Description { get; set; }
}
public class CategoryObjCollection:List<CategoryObj>
{
}
public void Test()
{
CategoryObjCollection cat = new CategoryObjCollection();
using (NWDataContext db = new NWDataContext())
{
var qry = (from c in db.Categories
select new CategoryObj
{
CategoryID = c.CategoryID,
CategoryName = c.CategoryName,
Description = c.Description
}).ToList();
cat = (CategoryObjCollection)qry; //runtime error Unable to cast object of type 'System.Collections.Generic.List`1[WindowsFormsApplication1.CategoryObj]' to type 'WindowsFormsApplication1.CategoryObjCollection'.
}
}
Tôi hy vọng ai đó có thể giúp tôi về điều này. Cảm ơn.
Có vẻ như tôi đang cố gắng làm một C++ - giống như bí danh typedef. –
@Jaroslav: Rất có thể - nhưng đó không phải là những gì thừa kế, và nó không phải là những gì nó nên được sử dụng cho. –
Thật vậy. Đó là những gì 'chỉ thị' sử dụng cho. –