Có lớp học chung sau đó sẽ chứa hoặc string, int, float, long
như các loại:C#: Khai báo và sử dụng danh sách các lớp chung với các kiểu khác nhau, làm thế nào?
public class MyData<T>
{
private T _data;
public MyData (T value)
{
_data = value;
}
public T Data { get { return _data; } }
}
tôi đang cố gắng để có được một danh sách các MyData<T>
nơi mỗi mục sẽ khác nhau T
.
Tôi muốn để có thể truy cập vào một mục từ danh sách và nhận được giá trị của nó như trong đoạn mã sau:
MyData<> myData = _myList[0]; // Could be <string>, <int>, ...
SomeMethod (myData.Data);
nơi SomeMethod()
được khai báo như sau:
public void SomeMethod (string value);
public void SomeMethod (int value);
public void SomeMethod (float value);
CẬP NHẬT:
SomeMethod()
là từ một cấp lớp khác mà tôi không có quyền kiểm soát và SomeMethod(object)
không tồn tại.
Tuy nhiên, tôi dường như không thể tìm cách làm cho trình biên dịch hài lòng.
Mọi đề xuất?
Cảm ơn bạn.
có thể xây dựng trên những gì SomeMethod của bạn không? Chúng tôi có thể giúp bạn tốt hơn. –
Những gì SomeMethod không có liên quan ở đây. Tôi sẽ chỉ thêm rằng không có định nghĩa cho SomeMethod (đối tượng). –
Thiết kế cơ bản của bạn bị thiếu sót. Tôi khuyên bạn nên đặt câu hỏi nơi bạn nêu chi tiết các yêu cầu và giải pháp của bạn và yêu cầu đề xuất. – Will