C# oyununda bir yardımcı hata ayıklama sınıfı yaptım. Özelliklerin izlenmesi ve izlenmesi için üzerinde çalışıyorum. Şöyle devam ediyor:Özellik izleme kodunu iyileştirin mi?
public static class Monitor
{
private static List<object> monitoredObjects;
public static void Initialize()
{
monitoredObjects = new List<object>();
}
public static void Watch(object o)
{
monitoredObjects.Add(o);
}
public static void Unwatch(object o)
{
monitoredObjects.Remove(o);
}
public static void Draw(RenderWindow app)
{
//Not actual code, I actually draw this in game
foreach (object o in monitoredObjects)
Console.WriteLine(o.ToString());
}
}
public class Property
{
private object obj;
private PropertyInfo propertyInfo;
public override string ToString()
{
return propertyInfo.Name + ": " + propertyInfo.GetValue(obj, null).ToString();
}
public Property(object o, string property)
{
obj = o;
propertyInfo = o.GetType().GetProperty(property);
}
}
Şimdi bir özellik izlemek için, benim oyunun FPS, ben
Monitor.Watch(new Property(Game, "FPS"));
orada nasılsa daha basit bu kullanmak için yapmak için bir yol olmaz yapmalısınız demek? İdeal
Monitor.Watch(Game.FPS);
yapabilmek istiyorum Ama biz, bunu nasıl yapacağını bilmiyoruz store pointers to value types C# beri. Belki kapaklar ve lambada ifadeler kullanıyor olabilir? Bunu daha önce önerdim ama nasıl yapacağımı bilmiyorum. Bunu düzeltmek için başka yollar var mı?
Teşekkür
Şahsen