Khi các câu trả lời khác đã nêu, bạn thực sự không nên làm điều này. Nhưng, nếu bạn nhấn mạnh, sau đó có một hack khó chịu được gọi là "đúc bằng ví dụ" mà sẽ cho phép bạn làm điều đó. Kỹ thuật này được đề cập trong một vài bài báo, here và here.
public void FuncB()
{
var example = new { Id = 0, Name = string.Empty };
var obj = CastByExample(FuncA(), example);
Console.WriteLine(obj.Name);
}
private object FuncA()
{
var a = from e in DB.Entities
where e.Id == 1
select new { Id = e.Id, Name = e.Name };
return a.FirstOrDefault();
}
private T CastByExample<T>(object target, T example)
{
return (T)target;
}
(Tôi không thể lấy tín dụng cho hack này, mặc dù the author of one of those articles says that he doesn't want to be associated with it either Tên của ông có thể quen..)
Bị đánh bại sau 8 giây! Tôi đã xóa của tôi (không có lợi ích trong việc sao chép nó). Nhưng để căng thẳng :: *** không làm điều này *** ;-p –
Vì vậy, bạn đã chấp nhận điều này như là câu trả lời ưa thích của bạn. Mặc dù đó là một kỹ thuật thú vị, tôi khuyên bạn không nên sử dụng nó trong bất kỳ mã sản xuất/quan trọng nào! – LukeH
Ya. Tốt để biết rằng điều này có thể được thực hiện. Thực sự là điều ác nhưng dù sao tôi cũng vậy .... muhahhhhahahaaaa. –