Görünüşe ITuple
bir çözüm gibi typeof(ITuple).IsAssignableFrom(type)
devre dışı bırakılması, dahili kullanım içindir. Alternatif olarak, Tuple<>
'u Tuple<,,,,,,,>
tarihine kadar belirlemenin en etkili yolu nedir? Tip adı karşılaştırması olmayan bir çözüm tercih edilir.Tuple türleri nasıl belirlenir?
6
A
cevap
12
bu deneyin:
public static bool IsTupleType(Type type, bool checkBaseTypes = false)
{
if (type == null)
throw new ArgumentNullException(nameof(type));
if (type == typeof(Tuple))
return true;
while (type != null)
{
if (type.IsGenericType)
{
var genType = type.GetGenericTypeDefinition();
if (genType == typeof(Tuple<>)
|| genType == typeof(Tuple<,>)
|| genType == typeof(Tuple<,,>)
|| genType == typeof(Tuple<,,,>)
|| genType == typeof(Tuple<,,,,>)
|| genType == typeof(Tuple<,,,,,>)
|| genType == typeof(Tuple<,,,,,,>)
|| genType == typeof(Tuple<,,,,,,,>)
|| genType == typeof(Tuple<,,,,,,,>))
return true;
}
if (!checkBaseTypes)
break;
type = type.BaseType;
}
return false;
}
-1
Ben OP hiçbir türü adı karşılaştırma tercih biliyorum ama başvuru için, bir tür bir değer-lü olup olmadığını belirler bu kısa çözüm dahil ediyorum:
var x = (1, 2, 3);
var xType = x.GetType();
var tType = typeof(ValueTuple);
var isTuple = xType.FullName.StartsWith(tType.FullName)
belirli olmak xType.Assembly == tType.Assembly
ekleyebilir.
İlgili konular
- 1. JSON ayrıştırma için veri türleri nasıl belirlenir?
- 2. PostgreSQL'de CTE (Ortak Tablo İfadeleri) için sütun türleri nasıl belirlenir?
- 3. Python pandas: Bir Excel dosyasını okurken veri türleri nasıl belirlenir?
- 4. Bir tuple içindeki bir tuple tekrarlayın
- 5. Yuvalanmış bir tuple nasıl düzleştirilir?
- 6. Dize Tuple
- 7. Türleri
- 8. Türleri
- 9. Üye türleri nasıl uygulanır?
- 10. Nasıl karışık türleri
- 11. Eşitlik Türleri Nasıl Karşılaştırılır?
- 12. Uygulama kaldırıldığında nasıl belirlenir
- 13. Eklentinin dizini nasıl belirlenir
- 14. MongoDB - Diziler nasıl belirlenir?
- 15. ServiceController'den Windows.Diagnostics.Process nasıl belirlenir
- 16. Sunucu konumu nasıl belirlenir?
- 17. Dizi türü nasıl belirlenir?
- 18. Görünümde doubletap nasıl belirlenir?
- 19. Akış sonu nasıl belirlenir?
- 20. MPI_Recv - Sayı nasıl belirlenir?
- 21. destek üyelerine erişme :: tuple
- 22. Hadoop PIG Maksimum Tuple
- 23. OCaml'deki özyinelem türleri?
- 24. Xaml içinde Tuple bildirme
- 25. Scala: Paralel atanması Tuple
- 26. C++ 11 tuple performansı
- 27. Haskell Tuple Boyut Sınırı
- 28. std :: tuple ile yineleme nasıl yapılır?
- 29. İki eşit uzunluklu tuple toplamı nasıl eşleştirebilirim?
- 30. Python, bir tuple listesinde nasıl azaltılabilir?
Ne demek "belirlemek"? Bazı nesnelerin ve onlardan öğrenmeye çalıştığınız bir örneğiniz var mı? –
Doğrudan "typeof (ITuple)" özelliğini kullanamazsınız, ancak bunu almak için 'Type.GetType (" System.ITuple, mscorlib ")' işlevini kullanabilirsiniz. – Dirk
@JonathonReinhart Ben bir kayıt düzeni olduğundan emin değiliz. O bir nesne var" olduğunu soran ne inanıyorum, ve türü parametreleri kullanıldı nasıl kaç bilmiyorum, ya da hatta, nelerdir eğer bir tuple ise. Nasıl kontrol edebilirim? – vcsjones