我一直在寻找一种方法来将各种类型的变量的引用保存到字典中,以及相应的密钥.然后我想通过其键通过字典访问它的引用来修改变量的实例.为了存储引用,我尝试使用<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#游戏中制作了一个实用程序调试类,我正在努力监视和查看属性值.像这样:
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)