考慮一段代碼嘗試將匿名對象傳遞給C#中的另一個方法的場景。在C#中的方法之間傳遞和接收匿名對象
下面是一個例子:
ThreadPool.QueueUserWorkItem(new WaitCallback(RpvService.GetRpvDailyResults),
new { req = request, rpvDic = rpvDictionary }
);
你怎麼能接受在接收端的匿名對象?
考慮一段代碼嘗試將匿名對象傳遞給C#中的另一個方法的場景。在C#中的方法之間傳遞和接收匿名對象
下面是一個例子:
ThreadPool.QueueUserWorkItem(new WaitCallback(RpvService.GetRpvDailyResults),
new { req = request, rpvDic = rpvDictionary }
);
你怎麼能接受在接收端的匿名對象?
定義你自己的類或結構會好得多。
匿名對象只不過是編譯器爲您生成的類。嘗試在方法之間傳遞這是個壞主意,因爲它會導致問題。
自己定義類型沒有任何缺點。由於只有兩個對象,因此您還可以使用KeyValuePair(.NET 2)或Tuple(在.NET 4中)。
從MSDN:
匿名類型具有方法的範圍。要在方法邊界外傳遞匿名類型或包含匿名類型的集合,必須先將類型轉換爲對象。但是,這打破了匿名類型的強類型。如果您必須存儲查詢結果或將其傳遞到方法邊界之外,請考慮使用普通的命名結構或類而不是匿名類型。
那麼在C#4.0中,您可以用動態的,那麼你可以將它轉換爲你wnat
你真的不應該這樣做。傳遞一個元組。 – ChaosPandion 2010-02-10 17:12:45
或者只是定義一個結構。 – 2010-02-10 17:15:37