对象Class1 和Class2
class Class1{
Hashtable H=new Hashtable();
Plublic Class1(string s){
H.Add("A",s);
}}class Class2{
for(int i=0;i<3;i++){
Class1 c= new Class1(""+i);
}
这里,如何取得i==0时由Class1所创建的Hashtable的值?
也就是,Class1中的 H 在第一次初始化后便不会被销毁,直到整个程序退出为止。
Class1中的H的值不允许赋给其他变量
}
class Class1{
Hashtable H=new Hashtable();
Plublic Class1(string s){
H.Add("A",s);
}}class Class2{
for(int i=0;i<3;i++){
Class1 c= new Class1(""+i);
}
这里,如何取得i==0时由Class1所创建的Hashtable的值?
也就是,Class1中的 H 在第一次初始化后便不会被销毁,直到整个程序退出为止。
Class1中的H的值不允许赋给其他变量
}
解决方案 »
- C# 继承ArrayList的类 在使用BindingSource 不能添加到界面
- c# 数据更新
- 一个小问题
- 【asp.net】关于如何截取指定网站的首页为图片
- public Form1()和private void Form1_Load(object sender, System.EventArgs e)有什么区别?
- 怎么控制鼠标移动到指定的屏幕坐标上?
- 数据库中字符匹配的问题
- 搞电子商务学asp还是asp.net,jsp?
- C#中多个线程同时增加一未加锁共享变量的值,最后却不等于总增加值的问题
- 请教!
- 下面哪些是命名空间??哪些是类啊
- sbyte[]如何转化为一个int64的值?(注意不是byte而是sbyte数组)
public static Hashtable H=new Hashtable();
Plublic Class1(string s){
H.Add("A",s);
}} static
Class1 c= new Class1(""+i);
}
循环结束后
H存放的值是多少?2吧我希望 H的值是0
public static unsafe Hashtable TableCache;
bool isDispose = false;
public Class1() {
GC.SuppressFinalize(TableCache);
Random r = new Random(DateTime.Now.Millisecond);
if (!TableCache.ContainsKey("DK")){
TableCache = new Hashtable();
TableCache.Add("DK", r.Next());}
} #region IDisposable 成员 public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing) {
if (!isDispose){
if (disposing){
}
}
isDispose = true;
}
~Class1()
{
Dispose(false);
}
#endregion
}class Class2{
for(int i=0;i <3;i++){
Class1 c= new Class1();
}
}
如果r.Next()产生的随机数为111111
Class2的循环结束后希望TableCache["DK"]的值仍为111111
class Class1
{
private string h=null;
private bool isChanged=false;
public string H
{
get {return h;}
set
{
if(!isChanged)
{
h=value;
isChanged=true;
}
}
}
public Class1(string s)
{
H=s;
}
}至于是不是要用static你没讲清楚...如果“Class1中的 H 在第一次初始化后便不会被销毁”是指“所有Class1实例”就要用static,否则就不能用...另外...
Class1 c= new Class1(""+i);//这样的用法很奇怪,貌似来自某种语言的不良习惯...Class1 c= new Class1(i.ToString());//正确用法...
public static unsafe Hashtable TableCache = new Hashtable();
bool isDispose = false;
public Class1() {
GC.SuppressFinalize(TableCache);
Random r = new Random(DateTime.Now.Millisecond);
if (!TableCache.ContainsKey("DK")){
TableCache.Add("DK", r.Next());}
} #region IDisposable 成员 public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing) {
if (!isDispose){
if (disposing){
}
}
isDispose = true;
}
~Class1()
{
Dispose(false);
}
#endregion
} class Class2{
for(int i=0;i <3;i++){
Class1 c= new Class1();
}
}
测试成功结贴