Ich brauche Namen von wenigen Objekten. Die Namen dürfen ihre Bits nicht enthalten (16/32/64). Actaully mache ich es so object.GetType().Name
. Wenn ich Int als Objekt verwende (int.GetType().Name
), gibt es int zurück. Aber wenn ich Uint verwende, gibt es uint32 zurück. Ich möchte nur UI bekommen. Gibt es eine bessere Möglichkeit als String.Replace?Nimm den Namen eines Objekts, ohne seinen Bit-Typ zu erhalten
2
A
Antwort
6
Sie können die Compiler-Dienste nutzen, dies zu tun:
static string GetFriendlyTypeName<T>()
{
var csharpCodeProvider = new Microsoft.CSharp.CSharpCodeProvider();
var codeType = new System.CodeDom.CodeTypeReference(typeof(T));
return csharpCodeProvider.GetTypeOutput(codeType);
}
static void Main(string[] args)
{
Console.WriteLine(GetFriendlyTypeName<Int32>()); //int
Console.WriteLine(GetFriendlyTypeName<UInt32>()); //uint
}
+0
aber es scheint, dass er Typname von einer Objektinstanz erhalten möchte (oder Variable) –
+2
@ S.Serp Das wäre ein Kinderspiel für jeden Entwickler, einfach "T-Wert" als Parameter für die 'GetFriendlyTypeName' Methode hinzufügen – user3185569
Verwandte Themen
- 1. erhalten den Namen eines Wörterbuchs
- 2. C# Nennen Sie den Namen eines Objekts, ohne dessen Typ zu kennen.
- 3. Ist es möglich, den Namen eines Objekts zu drucken?
- 4. Den Wert eines Aufzählungsmembers automatisch auf seinen Namen setzen
- 5. Wie SQL-Standardeinschränkung zu löschen, ohne seinen Namen zu kennen?
- 6. Wert ohne Erstellen eines Objekts in Struts2 erhalten
- 7. QT: Erhalte den Klassennamen eines Objekts
- 8. Wie bestimmt DevTools den Namen eines Konstruktors eines Objekts?
- 9. SQL Server: drop Tabelle Primärschlüssel, ohne seinen Namen zu wissen,
- 10. Cocoa - ein BOOL Makel ohne seinen Namen zu wiederholen
- 11. Zwei Möglichkeiten, den Wert eines Point-Objekts zu erhalten?
- 12. Erstellen eines Objekts, ohne den Klassennamen zur Entwurfszeit zu kennen
- 13. Den Namen eines verbundenen Bildschirms erhalten Swift
- 14. Wie den Namen des Objekts in einem Objekt erhalten Javascript
- 15. Verwenden von Reflektion, um den Namen eines Parameters zu erhalten
- 16. Android: Nimm Foto ohne Benutzeroberfläche
- 17. Verschieben eines Objekts in Android ohne Benutzerinteraktion und mit der Möglichkeit, Ort zu erhalten
- 18. Mungo - Rückkehr nur Inhalt eines Arrays, und nicht seinen Namen
- 19. Verwenden Sie Rails Migrationen, um einen Index zu löschen, ohne seinen Namen zu kennen
- 20. Ist der Indexer eines Objekts irgendwie über seinen TypeDescriptor zugänglich?
- 21. So erhalten Sie den Schlüssel eines Firebase-Objekts
- 22. Ruft den Namen eines benannten Bereichsobjekts ab, ohne das Array mit benannten Bereichen zu erhalten - googlesheets
- 23. Abrufen eines Objekts innerhalb eines Objekts von JSON ohne Arrays
- 24. Wie Eigenschaftsnamen eines Objekts erhalten
- 25. Den Bruchteil eines Floats ohne modf() erhalten
- 26. .NET: Wie erhalten Sie den Typ eines Null-Objekts?
- 27. Anzeige vollständigen Namen aller Eigenschaften eines Objekts
- 28. Ist es möglich, eine Instanz eines Objekts in Java zu erstellen, ohne den Konstruktor aufzurufen?
- 29. Erste Klasse durch seinen Namen
- 30. Erstellen eines Javascript-Objekts mit berechnetem Namen
Warum genau wollen Sie 'unit' anstatt' uint32'? Was versuchst du zu erreichen? – Rob
Hmm, nein, du wirst nicht "int" bekommen. Versuchen Sie, sich minimal zu bemühen, einen gültigen Reprodcode zu posten. Wörter wie "int" und "uint" sind * Schlüsselwörter * in der Sprache C#. Die Übersetzung vom Namen des Framework-Typs zum Schlüsselwort erfolgt wahrscheinlich am besten mit einer switch-Anweisung. Oder einfach nicht stören, da es egal ist. –
mögliches Duplikat von [Gibt es eine Möglichkeit, den Alias eines Typs durch Reflektion zu erhalten?] (Http://stackoverflow.com/a/1363309/2803565) –