相关疑难解决方法(0)

存储对字典中对象的引用

我一直在寻找一种方法来将各种类型的变量的引用保存到字典中,以及相应的密钥.然后我想通过其键通过字典访问它的引用来修改变量的实例.为了存储引用,我尝试使用<object>,但没有成功.字典和列表都不接受任何类似的东西Dictionary<string, ref int>.以下代码编译,但似乎只按值更新变量.任何想法或解决方法?

这是(经过测试的)代码:

class Test1
{
    IDictionary<string, object> MyDict = new Dictionary<string, object>();

    public void saveVar(string key, ref int v) //storing the ref to an int
    {
        MyDict.Add(key, v);
    }
    public void saveVar(string key, ref string s) //storing the ref to a string
    {
        MyDict.Add(key, s);
    }

    public void changeVar(string key) //changing any of them
    {
        if(MyDict.GetType() == typeof(int))
        {
            MyDict[key] = (int)MyDict[key] * 2;
        }
        if(MyDict.GetType() == typeof(string))
        {
            MyDict[key] = "Hello";
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# dictionary reference object

9
推荐指数
1
解决办法
1万
查看次数

改善财产监控代码?

我在C#游戏中制作了一个实用程序调试类,我正在努力监视和查看属性值.像这样:

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 + ": " + …
Run Code Online (Sandbox Code Playgroud)

c# reflection closures properties

5
推荐指数
1
解决办法
750
查看次数

标签 统计

c# ×2

closures ×1

dictionary ×1

object ×1

properties ×1

reference ×1

reflection ×1