我明白,如果我把它轉換成命名類型,我可以隨心所欲地做任何事情,但是如果我可以在方法調用之間保持匿名,那麼它可以做出更多更整潔的代碼。爲什麼匿名類型不能在其創建的方法之外使用?
回答
這是一個猜測......但是我很「真棒」我「肯定」我就......
匿名類型真的不是「無名氏」。代表未知類型的類是在運行時堆棧上的方法調用本地運行時生成的(因此是方法專用範圍)。從函數調用返回(彈出堆棧),將丟失該作用域中的所有對象,包括使用該方法調用隱藏在堆棧中的匿名類。
猜測了......
匿名類型在編譯時生成。區別在於它們對於它們的創建範圍是私有的。 – 2010-04-29 16:23:12
匿名類在編譯時生成。 http://tomasp.net/blog/cannot-return-anonymous-type-from-method.aspx這就是爲什麼約翰·拉希的「以身作則」的例子。 – R0MANARMY 2010-04-29 16:23:52
對不起,您的猜測是錯誤的:匿名類型是在編譯時創建的。您可以使用反射器來驗證這一點。您也可以傳遞並返回匿名類型實例作爲'object'並使用反射與它們一起玩,但我不會在生產代碼中推薦它。 – LukeH 2010-04-29 16:25:15
- 1. 爲什麼我不能使用那樣的匿名方法?
- 2. 爲什麼我不能在Java中調用添加到匿名類的方法?
- 3. LINQ中,VB - 匿名類型不能轉換爲匿名類型
- 4. 不能使用匿名類型的foreach
- 5. 創建匿名類型!
- 6. 爲什麼我不能在任何方法外創建對象
- 7. 爲什麼在聲明常量時不能使用C#匿名類型?
- 8. 如何使用帶lambda語法的LINQ創建匿名類型?
- 9. 可能爲匿名類型創建隱式轉換爲字典?
- 10. 創建匿名類型在VB
- 11. 無法創建類型'匿名類型'的常量值
- 12. 爲什麼我不能在Scala中爲匿名函數指定結果類型?
- 13. 爲什麼onClickListener不能在onCreate方法之外工作?
- 14. 什麼是C#中的匿名類型?
- 15. 爲什麼EF4中的匿名類型與LINQ to SQL不同?
- 16. 如何使用TypeScript在linq查詢中創建匿名類型
- 17. 爲什麼使用匿名類型工作並使用不在GroupBy中的顯式類型?
- 18. 匿名類型 - 如何動態創建?
- 19. 動態創建匿名類型?
- 20. 爲什麼我的匿名方法不能在循環中工作?
- 21. 爲什麼在匿名方法中不允許out參數?
- 22. 在匿名內部類中調用方法是什麼?
- 23. 不能在匿名類型使用的String.format()
- 24. 調用方法匿名類
- 25. 爲什麼super()不能使用__new__以外的靜態方法?
- 26. 如何使用LINQ創建IQueryable類型的匿名對象
- 27. 爲什麼我的匿名類型在使用VB.Net時不能在Clay中工作,但在C#中工作
- 28. 是否可以在C#中的LINQ擴展方法中創建匿名類型?
- 29. Java:在匿名內部類中調用外部類方法
- 30. 匿名類型的語法
副本([我的問題]一(http://stackoverflow.com/questions/2450536/simple-way-to-return-anonymous-types-to-make- mvc-using-linq-possible))。 @DaveDev:另見[這裏](https://connect.microsoft.com/VisualStudio/feedback/details/542278/ability-to-return-strongly-typed-anonymous-classes) – 2010-04-29 16:38:01
它似乎不是一個根據標題重複 - 您的問題探索實現目標的方法。我的問題是問爲什麼。 – DaveDev 2010-04-29 16:40:40
這個問題預設了一個虛假的,因此無法回答。匿名類型在程序集中統一。如果您在同一個程序集中以兩種不同的方法使用相同的匿名類型,那麼* *會得到相同的類型。 – 2010-04-29 16:53:53