Ho creato un progetto PCL destinato a .NET Framework 4 e Silverlight 5 (utilizzo un'estensione per Visual Studio 2010, non un modello di progetto portatile da Visual Studio 2012, se ciò è importante). Sto cercando di invertire una stringa usando il metodo di estensione System.Linq.Enumerable.Reverse<TSource>()
, ma non funziona perché il compilatore pensa che System.String
non implementa IEnumerable<char>
.Perché la classe String non implementa IEnumerable <char> nella libreria portatile?
risposta
Le librerie di classi portatili devono limitarsi alle classi e ai metodi disponibili su tutte le piattaforme di destinazione che promette di supportare. Il più grande trouble-maker qui è WinRT, il CLR ha una proiezione linguistica che associa i tipi WinRT ai tipi gestiti. I metodi System.String non supportati dalla proiezione sono documentati in this answer. GetEnumerator() è uno di questi.
Questo ha senso, non ho selezionato WinRT (in realtà, si chiama .NET per le app in stile Metro nella finestra di selezione del framework) come framework di destinazione. Credo che PCL dovrebbe funzionare come un'intersezione di piattaforme/framework selezionati. –
Bene, il punto di PCL è che potresti * selezionare * WinRT un giorno. –
Sembra che qui abbiamo visioni leggermente diverse, ma per ora accetterò la tua risposta, dal momento che non vedo nessun altro punto che abbia senso. Grazie! –
- 1. Perché java.util.Properties implementa Map <Object, Object> e non Map <String, String>
- 2. Un cast non controllato nella classe generica che implementa Mappa <String, V>
- 3. Perché IEnumerable <T> implementa Aggiungi (T)?
- 4. Perché non c'è nessun << nella libreria standard Haskell?
- 5. Perché l'Elenco implementa IList <T>, ICollection <T> e IEnumerable <T>?
- 6. IEnumerable <string> a stringa
- 7. Perché una funzione che accetta IEnumerable <interface> non accetta IEnumerable <class>?
- 8. Perché ArrayList implementa IList, ICollection, IEnumerable?
- 9. inizializzazione IEnumerable <string> In C#
- 10. Convertire IEnumerable <T> a string []
- 11. Conversione da IEnumerable <IEnumerable <string>> per ICollection <T>
- 12. Qual è la differenza tra l'elenco <string> e IEnumerable <String>?
- 13. Perché la classe LinkedHashMap implementa l'interfaccia Mappa?
- 14. Come convertire la classe nel dizionario <string, string>?
- 15. Perché il set F # non implementa ISet <T>?
- 16. Perché IEnumerable <T> è definito come IEnumerable <out T>, non IEnumerable <T>
- 17. Perché IntegerProperty implementa la proprietà <Number> e non la proprietà <Integer>?
- 18. Perché non riesco a chiamare Delegate.CreateDelegate nella mia libreria di classi portatile?
- 19. Come posso vedere se GenericTypeDefinition implementa IEnumerable <>
- 20. IEnumerable vs List nella classe Response, ServiceStack
- 21. Buona libreria SIMD portatile
- 22. Perché non c'è una classe ReadOnlyList <T> nella libreria System.Collections di C#?
- 23. Perché l'elenco (<T> implementa tutte queste interfacce, non solo IList <T>?
- 24. Serializzare proprietà personalizzate su una classe che implementa IEnumerable
- 25. Visual Studio Visualizer per IEnumerable <string>
- 26. Perché chiamare IEnumerable <string> .Count() crea una dipendenza aggiuntiva dall'assembly?
- 27. Perché la classe String è definitiva?
- 28. Libreria VFS portatile C++
- 29. Utilizzando EditorFor con IEnumerable <string> in MVC 3
- 30. Come utilizzare IEnumerable <String> nel codice di documentazione
Sei sicuro che non implementa 'IEnumerable', o Intellisense lo sta solo nascondendo? –
CodesInChaos
Sì, sono sicuro, ottengo un errore quando provo a crearlo. –
Hmm ha appena controllato i documenti e 'GetEnumerator' non fa parte di PCL. Cosa stava pensando MS ... – CodesInChaos