Küçük projemde, yürütülebilir kod üretmek için System.Reflection
sınıfları kullanıyorum. Özel bir türün +
işlecini aramam gerekiyor. C# yansımasını kullanarak özel sınıfın özelleştirilmiş operatörünü nasıl arayabilirim bilen var mı?Yansıma özel işçiye nasıl çağrı yapılır
18
A
cevap
22
C gibi # derleyicisi adıyla op_XXXX
ile fonksiyonlara operatörü aşırı dönüştürür:
operator==
->op_Equality
operator!=
->op_Inequality
operator+
->op_Addition
operator-
->op_Subtraction
operator<
->op_LessThan
operator>
->op_GreaterThan
operator<=
->op_LessThanOrEqual
operator>=
->op_GreaterThanOrEqual
ve benzeri.
Yani DateTime
yapının operator+
yöntemini almak için, yazmak gerekir:
MethodInfo mi = typeof(DateTime).GetMethod("op_Addition",
BindingFlags.Static | BindingFlags.Public);
1
Özel operatörünüzü, Class
ürününüzün property
yapmasını sağlayın. Ve sonra property
ve value
numaralarına reflection
aracılığıyla erişin. XXXX
operasyon olduğu
PropertyInfo pinfo = obj.GetType().GetProperty("CustomOperator", BindingFlags.Public | BindingFlags.Instance);
string customOperator = pinfo.GetValue(obj,null) as string;
6
typeof(A).GetMethod("op_Addition").Invoke(null, instance1, instance2);
İlgili konular
- 1. , işçiye
- 2. Üye işlev işaretçisi aracılığıyla nasıl çağrı yapılır?
- 3. ListView'de bir çağrı butonu nasıl yapılır?
- 4. çağrı özel sınıf
- 5. Telefongapında özel bir özel eklenti nasıl yapılır
- 6. yansıma
- 7. Yansıma GetMethod. Daha özel bir yöntem seç
- 8. Laravel Özel Doğrulayıcı Nasıl Yapılır?
- 9. Özel Android Animasyonları Nasıl Yapılır
- 10. Ben özel bir özellik var yansıma
- 11. Yansıma
- 12. yansıma
- 13. Yansıma?
- 14. ImageMagick Yansıma
- 15. HTTP-isteği/komut satırından JSON yüküyle çağrı nasıl yapılır?
- 16. Aynı yöntemde sınıf yöntemlerine birden çok çağrı nasıl yapılır?
- 17. Python komut dosyasından bir yürütülebilir dosyaya nasıl çağrı yapılır?
- 18. Çağrı cihazı ile ruby komut satırı uygulaması nasıl yapılır?
- 19. Şablondan nasıl çağrı yapılır. <template> Coffeescript'te aevözler
- 20. jQuery seçici için özel işlev nasıl yapılır
- 21. Akka ile SIGTERM'de özel kapatma nasıl yapılır?
- 22. Özel yöntem için ileri bildirim nasıl yapılır?
- 23. Özel "not" kutusu readthedocs.org'da nasıl yapılır?
- 24. Temel FullCalendar özel görünümü nasıl yapılır
- 25. Rivescript-Python'da özel bir tetikleme nasıl yapılır?
- 26. Veri sayfalarında özel sıralama nasıl yapılır?
- 27. Latekste özel sayfa numaralandırma nasıl yapılır?
- 28. Özel bir tost doldurma genişliği nasıl yapılır?
- 29. FOSuserbundle ile özel tarayıcıya nasıl giriş yapılır?
- 30. Özel iletişim kutusu nasıl şeffaf yapılır?
Sadece merak :) Ne aynı imzaya sahip bir statik 'op_Addition' yöntemi varsa? –
@ ŞafakGür Daha sonra "Type ''," op_Addition "adlı bir üye ile aynı parametre türlerini tanımlayan bir derleyici hatası alırsınız". Tanımlanan operatör yöntemi, daha önce belirtilen adla tam olarak yeniden adlandırıldığı için, aynı sınıfta ikisine sahip olamazsınız. –
Ve döküm operatörleri için adlandırma kuralı ne olurdu? – Grx70