从对象字典中获取对象

cos*_*ari 4 c# boxing dictionary object

我试图从对象字典中提取一个对象,并返回所述对象但是我对类型有一点问题.有问题的类看起来像这样,我想知道如何返回实际对象而不是变量(我假设默认情况下是一个字符串).

 public Object GetObject(string foo){

 if(someDict.ContainsKey(foo))
 {
   var pulledObject = someDict[foo];

 }
  return pulledObject;
 }
Run Code Online (Sandbox Code Playgroud)

我以为拳击是需要的,就像

 object pulledObject = someDict[foo];
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用,任何可以指出我正确方向的建议.

Joh*_*hnD 8

你并没有真正说出什么不起作用,但你走在正确的轨道上.尝试这样的事情:

public Object GetObject(string foo){

  if (someDict.ContainsKey(foo))
    return someDict[foo];
  return null;
}
Run Code Online (Sandbox Code Playgroud)

我怀疑你的问题是你得到的编译错误pulledObject是在子范围内.

更新:正如Jon Skeet指出的那样,使用TryGetValue会更好,因此您不会执行两次查找(一次执行ContainsKey时,再次使用indexer []时).所以,更好的解决方案是:

public Object GetObject(string foo){

  object pulledObject = null;
  someDict.TryGetValue(foo, out pulledObject);
  return pulledObject;
}
Run Code Online (Sandbox Code Playgroud)