我正在将术语存储到一个有点复杂(至少对我来说)的类型字典中:
Dictionary<string, Term>
其中"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",而是其他命名空间。
我想在另一个命名空间中使用字典中存储的值,以便我可以根据用户输入的查询访问字典。
有没有办法让这个字典中的数据持久存在,以便我可以从另一个命名空间访问它? 或者也许是一种将字典传递给另一个命名空间以便我可以在那里使用它的方法?
在这里不太相关。您应该考虑的实际边界是类边界。如何在课程之间获取信息?命名空间只是将志同道合的类标记在一起的一种逻辑方式。
也就是说,返回字典是实现您想要的粗略方法。但这里的一个问题是,这是你的内部状态,另一个类可以改变它。因此,要么以只读字典的形式发送它,要么将其包装在一个小的服务接口中,该接口只是公开一个查找方法来隐藏内部 - 在这种情况下是字典本身。