Tôi có một chức năng chung được giới hạn trong cấu trúc. Đầu vào của tôi được đóng hộp ("đối tượng"). Có thể unbox giá trị tại thời gian chạy để tránh phải kiểm tra từng loại có thể và làm các phôi bằng tay?Việc mở hộp chung kiểu giá trị đóng hộp
Xem ví dụ trên:
public struct MyStruct
{
public int Value;
}
public void Foo<T>(T test)
where T : struct
{
// do stuff
}
public void TestFunc()
{
object o = new MyStruct() { Value = 100 }; // o is always a value type
Foo(o);
}
Trong ví dụ này, tôi biết rằng o phải là một struct (tuy nhiên, nó không cần phải được MyStruct ...). Có cách nào để gọi Foo mà không có tấn mã boilerplate để kiểm tra cho mọi loại struct có thể?
Cảm ơn bạn.
Câu hỏi thú vị. Thông tin là tất cả ở đó nhưng có vẻ như không phải là một cách để "nói chung đúc để bắt nguồn". Rất bực bội. Ai đó đã đề cập đến động lực (cần 4.5). Và tôi tự hỏi liệu người ta có thể xây dựng thứ gì đó với cây biểu cảm không. –