{
public class PostCodeQuery
{
private static readonly PostCodeQuery instance = new PostCodeQuery();
问题一:这样声明可以在多线程时,不用担心线程死锁,问什么呢???
private Dictionary<int, string> postcodes = new Dictionary<int, string>();
问题二:这是数据字典和哈希表是不是等效???
public static PostCodeQuery Instance
{
get
{
return instance;
}
}
问题三:先为类创建一个对象实例,然后用静态类成员实例返回对象实例,这样做有什么好处呢???
private PostCodeQuery()
{
postcodes[100142] = "钓鱼台";
postcodes[100031] = "*";
}
public string GetAddressByPostcode(int postcode)
{
string str = "没找到";
if (postcodes.ContainsKey(postcode))
{
str = postcodes[postcode];
}
return str;
}
}
}
6 个解决方案
#1
1.第一个问题是,静态变量是在初始化的时候创建对象的,即使多线程同时使用这个类,只会初始化一次
2.Dictionary和哈希表不是等效的
3.这个是设计模式中Singleton模式,保证一个类只有一个唯一的实例。
2.Dictionary和哈希表不是等效的
3.这个是设计模式中Singleton模式,保证一个类只有一个唯一的实例。
#2
#3
设计模式中Singleton模式
Mark,能深入介绍下吗???
#4
赞很清楚,
1.其实是一个c#的特性静态变量有线程安全的特性,没有为什么。
2.字典和哈希不一样,百度一下吧,字典是一种特殊的哈希。
3.就是单例在整个程序当中有一个类的对象比如你在做程序UI的时候背景对象就只有一个。类似于这种需要用到这个模式。
#5
顶起,Marl...
#6
顶下。。。
#1
1.第一个问题是,静态变量是在初始化的时候创建对象的,即使多线程同时使用这个类,只会初始化一次
2.Dictionary和哈希表不是等效的
3.这个是设计模式中Singleton模式,保证一个类只有一个唯一的实例。
2.Dictionary和哈希表不是等效的
3.这个是设计模式中Singleton模式,保证一个类只有一个唯一的实例。
#2
#3
设计模式中Singleton模式
Mark,能深入介绍下吗???
#4
赞很清楚,
1.其实是一个c#的特性静态变量有线程安全的特性,没有为什么。
2.字典和哈希不一样,百度一下吧,字典是一种特殊的哈希。
3.就是单例在整个程序当中有一个类的对象比如你在做程序UI的时候背景对象就只有一个。类似于这种需要用到这个模式。
#5
顶起,Marl...
#6
顶下。。。