我将术语存储到一个有点复杂(至少对我而言)的字典中:
Dictionary<string, Term>
其中“Term”是我使用“Occurrences”列表定义的类,如下面的代码所示。
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”,而是一些其他命名空间。
我想在其他命名空间中使用字典中存储的值,以便我可以根据用户输入的查询访问字典。
有没有办法让这个字典中的数据保持不变,以便我可以从另一个命名空间访问它?或者也许是一种将字典传递给其他命名空间的方法,以便我可以在那里使用它?
答案 0 :(得分:1)
命名空间在这里不那么重要。你应该考虑的实际边界是阶级边界。如何在课程之间获取信息?命名空间只是一种标记类似于类的类的逻辑方式。
那说返回字典是实现你想要的原始方式。但这里的问题是它是你的内部状态而另一个类可以改变它。因此,要么以快乐的方式将其作为只读字典发送,要么将其包装在一个小的服务接口中,该接口只是暴露一个查找方法来隐藏内部 - 在这种情况下是字典本身。