Trong các bảng cơ sở dữ liệu khác nhau, tôi có cả thuộc tính và cột giá trị. Tôi đang sử dụng LINQ to SQL để truy cập cơ sở dữ liệu.Tại sao tôi nhận được "lỗi: ... phải là một loại tham chiếu" trong phương pháp chung C# của tôi?
Tôi đang viết một phương pháp mà trả về một từ điển chứa các thuộc tính/giá trị lấy từ các bảng cơ sở dữ liệu đưa ra:
private static Dictionary<string, string> GetProperties<T>(Table<T> table)
{
Dictionary<string, string> properties = new Dictionary<string, string>();
foreach (var row in table)
{
properties[row.Property]=row.Value;
}
return properties;
}
Khi biên soạn, tôi nhận được:
Error 1 The type 'T' must be a reference type in order to use it as parameter 'TEntity' in the generic type or method 'System.Data.Linq.Table<TEntity>'
Tôi đã thử tìm kiếm thông báo lỗi này mà không gặp may.
Tìm kiếm StackOverflow, câu hỏi này có vẻ tương tự, mặc dù liên quan đến tham số Danh sách: Generic List<T> as parameter on method - mặc dù tham số vẫn không phải là loại tham chiếu trong câu trả lời cho câu hỏi đó.
Đọc Hướng dẫn lập trình C# trên MSDN: http://msdn.microsoft.com/en-us/library/twcad0zb(VS.80).aspx Tôi thấy các ví dụ của chúng đều chuyển các tham số theo tham chiếu. Tuy nhiên, tôi không thể xem làm thế nào để vượt qua bằng cách tham chiếu trong trường hợp cụ thể của tôi, vì loại chung là chỉ để xác định loại chung của Bảng.
Bất kỳ con trỏ nào cũng sẽ được đánh giá cao.
PS: Ứng dụng nếu cần thời gian để tôi chấp nhận câu trả lời vì tính năng này hiện không thể truy cập được (tôi bị mù và sử dụng trình đọc màn hình).
Những dòng là thông báo lỗi chống lại? – sblom
@Mahesh: Bạn đã đọc dòng cuối cùng của bài đăng chưa? @Saqib: Bạn có thể muốn gửi một ghi chú tới những người dùng StackOverflow về điều đó. Tôi chắc chắn họ sẽ muốn biết rằng một tính năng quan trọng của trang web của họ bị hỏng và không hoạt động đối với một phân đoạn đáng kể khách truy cập của họ. –
Xin lỗi, tôi không biết. Cảm ơn bạn đã chỉ ra. Xin lỗi –