【发布时间】:2015-04-21 22:12:06
【问题描述】:
我将术语存储到一个有点复杂(至少对我而言)类型的字典中:
Dictionary<string, Term>
其中“术语”是我使用“出现次数”列表定义的类,如下面的代码所示。
namespace SomeNameSpace
{
public class Occurence
{
public int docID { get; set; }
public int termOcc { get; set; }
}
public class Term
{
public int numbOfDocuments { get; set; }
public int lastDocAdd { get; set; }
public int termCount { get; set; }
public List<Occurence> docOccurances = new List<Occurence>();
}
public class TermDictionary
{
public Dictionary<string, Term> termOccurence = new Dictionary<string, Term>();
}
public static void SomeMethod()
{
TermDictionary TermDictionary = new TermDictionary();
.
.
.
当 void 函数“SomeMethod”完成时,将返回到调用命名空间,它不是“SomeNameSpace”,而是某个其他命名空间。
我想在另一个命名空间中使用字典中存储的值,以便我可以根据用户输入的查询访问字典。
有没有办法让这个字典中的数据持久化,以便我可以从另一个命名空间访问它?或者也许是一种将字典传递到另一个命名空间以便我可以在那里使用它的方法?
【问题讨论】:
-
我看不出是什么阻止了你这样做。
SomeMethod如何“返回”新对象?调用SomeMethod的代码如何尝试使用该对象?错误在哪里? -
我很困惑——“返回调用命名空间”是什么意思?您的方法不返回任何内容或设置任何类成员(您的构造函数也没有)。你期望发生什么?
-
调用方法的不是namespaces,而是属于类的方法(在命名空间中,但只是为了避免类名冲突)调用其他方法并使用返回值。此外,您的方法
SomeMethod不能在任何类之外。 -
你在课堂上有这个方法吗?您可以使用静态类来调用您的静态方法。
-
抱歉,有任何混淆,此方法是从另一个命名空间中的另一个方法调用的。该方法做了很多事情,而且做得很好。我实际上是将字典数据打印到输出文件中,但在那之后我想再次从另一个命名空间访问字典的值。为了简化我的问题,我省略了很多代码。
标签: c# .net dictionary namespaces