Có một số cách.
Vì nhận xét dường như chỉ ra rằng tôi đề nghị bạn làm điều này, hãy để tôi làm rõ: Bạn nên tạo một loại có tên cho đối tượng của mình vì bạn định truyền nó đi.
Trước tiên, bạn có thể sử dụng Phản chiếu, câu trả lời khác ở đây đã chỉ ra. Một cách khác, thủ thuật .NET đưa cho bạn đúng loại được gọi là "đúc theo ví dụ", và nó đi một cái gì đó như thế này: Bạn cần phải vượt qua đối tượng của bạn thông qua một cuộc gọi phương thức chung, mà sẽ trả về đối tượng là loại phù hợp, bằng cách suy ra loại quyền trả về.
Ví dụ, hãy thử này:
private static T CastByExample<T>(T example, object value)
{
return (T)value;
}
và sử dụng nó:
var x = CastByExample(new { TheDay = ??, EntranceOrExit = ?? }, obj);
cho hai ?? các điểm, bạn chỉ cần vượt qua một cái gì đó phù hợp với kiểu dữ liệu cho các thuộc tính đó, các giá trị sẽ không được sử dụng.
Điều này khai thác thực tế là nhiều loại ẩn danh chứa cùng một thuộc tính giống nhau, cùng loại, theo thứ tự, trong cùng một cụm, sẽ ánh xạ tới cùng một loại.
Tuy nhiên, do thời gian này, bạn nên tạo một loại được đặt tên thay thế.
Nguồn
2010-02-19 21:23:11
Câu hỏi lớn là tại sao bạn muốn? Bạn đang cố gắng đạt được điều gì? – pdr