- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
// Method that returns anonymous type as object
object ReturnAnonymous() {
return new { City="Prague", Name="Tomas" };
}
void Main() {
// Get instance of anonymous type with 'City' and 'Name' properties
object o = ReturnAnonymous();
// This call to 'Cast' method converts first parameter (object) to the
// same type as the type of second parameter - which is in this case
// anonymous type with 'City' and 'Name' properties
var typed = Cast(o, new { City="", Name="" });
Console.WriteLine("{0}, {1}", typed.City, typed.Name)
}
// Cast method - thanks to type inference when calling methods it
// is possible to cast object to type without knowing the type name
T Cast<T>(object obj, T type) {
return (T)obj;
}
via http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/c1c179bb-ea88-4633-970a-947f0dd1e71f/
abatishchev 18.03.2011 18:11 # −2
многих давно мучает вопрос как же всё таки вернуть из метода анонимный тип. ответ "никак" их не устраивает
Jopa123 18.03.2011 18:32 # +4
wvxvw 18.03.2011 19:35 # 0
wvxvw 18.03.2011 19:38 # 0
bober_maniac 18.03.2011 22:40 # 0
wvxvw 18.03.2011 23:13 # 0
Так бы тоже работало, только каждый раз писать полностью определение типа замучаешься :)
RaZeR 19.03.2011 13:29 # 0
Автору видимо они доставляют - даже прокомментировать код не поленился.
HIMen 21.03.2011 03:06 # 0
dynamic o = ReturnAnonymous();
Console.WriteLine("{0}, {1}", o.City, o.Name)
RaZeR 21.03.2011 13:40 # 0