在C#中的方法之间传递和接收匿名对象

dev*_*all 0 c# anonymous-types

考虑一个代码块试图将匿名对象传递给C#中的另一个方法的场景.

这是一个例子:

ThreadPool.QueueUserWorkItem(new WaitCallback(RpvService.GetRpvDailyResults),
                             new { req = request, rpvDic = rpvDictionary }
                            );
Run Code Online (Sandbox Code Playgroud)

你怎么能在接收端收到匿名对象?

Ree*_*sey 6

定义自己的类或结构会好得多.

匿名对象只不过是编译器为您生成的类.尝试在方法之间传递这个是一个坏主意,因为它会导致问题.

自己定义类型没有缺点.由于只有两个对象,您还可以使用KeyValuePair(.NET 2)或Tuple(在.NET 4中).