SORU
7 AĞUSTOS 2008, PERŞEMBE


Nasıl bir C özelliklerini okuyabilir miyim# sınıf dinamik olarak?

eval("something()"); Bir kodu JavaScript ile dinamik olarak çalıştırmak için yapabilirim. Bana C de aynı şeyi yapmak için bir yoldur#?

Ne olduğumu tam olarak yapmaya çalıştığı bu bir tamsayı değişkeni (i) ve ben birden çok özellik isimleri: "Özellik1", "Property2", "Property3", vb. Şimdi, "özelliği i değerine bağlı olarak. ı**" Mülkiyet üzerinde bazı işlemler gerçekleştirmek istiyorum

Bu Javascript ile gerçekten çok basittir. C ile bunu yapmak için herhangi bir yolu var# mı?

CEVAP
7 AĞUSTOS 2008, PERŞEMBE


Ne yazık ki, C# gibi dinamik bir dil değil.

Sen ne yapabilirsin, ancak, oluşturmak için bir C# kaynak kodu dosya, tam sınıf ve her şeyi, ve çalıştırın üzerinden CodeDom sağlayıcısı için C# ve derleme bir derleme, ve sonra çalıştırmak.

MSDN'DE bu forumda yazılan bazı örnek sayfayı aşağı doğru biraz kod ile bir cevap içerir:
create a anonymous method from a string?

Pek bu çok iyi bir çözüm olduğunu söyleyebilirim, ama yine de mümkün.

Ne tür bir kod bir dize beklemek gidiyorsun? Eğer geçerli bir kod, örneğin matematik ifadeler sadece küçük bir alt kümesi ise, başka alternatifler de var olabilir.


EditO soruları ben iyice ilk okuma öğretir. Evet, yansıma sana yardım vermek mümkün olacaktır.

Eğer split dize tarafından ; ilk olarak, bireysel özelliklerini kullanabilirsiniz aşağıdaki kodu bir nesne döndürmek için propertyınfo için belirli bir özellik için bir sınıf, ve sonra bu nesne için manipüle belirli bir nesne.

String propName = "Text";
PropertyInfo pi = someObject.GetType().GetProperty(propName);
pi.SetValue(someObject, "New Value", new Object[0]);

Link: PropertyInfo.SetValue Method

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Air_Fooj

    Air_Fooj

    24 NİSAN 2009
  • POGProductionz

    POGProductio

    27 NİSAN 2012
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012