当前位置:编程学习 > C#/ASP.NET >>

C#中编程问题

在form1中定义了public string dz;form2中form1 f=new();string w=f.dz;为什么w是空的啊?我是新手,求哪个高手帮帮忙。
追问:谢谢,dz的确不为空了,但我要怎样才能把filename的值给w啊?w一直为“ ”
SaveFileDialog sf = new SaveFileDialog();
            sf.InitialDirectory = "c:\\";
            sf.Filter = "txt(*.txt)|*.txt|rtf(*.rtf)|*.rtf|all files(*.*)|*.*";
            sf.FilterIndex = 2;
            sf.Title = "保存";
            sf.RestoreDirectory = true;
            if (sf.ShowDialog() == DialogResult.OK)
            {
                
                string filename = sf.FileName;
                dz = filename;
                StreamWriter sw = new StreamWriter(filename, true, Encoding.Default);
                sw.Write(richTextBox1.Text);
                sw.Close();
                MessageBox.Show("以保存!");
            }
答案:
public string dz ; 你只是定义,你需要给他赋值,不然dz是不分配内存的。你如果public string dz=““;这样初始化下,dz 就不为空了。C#和java 一样,你定以后需要初始化后才会分配内存,如果是c/c++就不会。

string是引用类型 , 你未给dz赋值任何数值, 所以它不指向任何内存单元 , 还是先了解 什么是引用和数值类型,堆栈原理

姐,之前问你dz是哪来的你不说,你在form1中只定义了dz,并没有赋值,现在这样调用不是空是什么?
楼上说的很对哇~~你的DZ都木有值当然是空啦~~
public static string dz
form1 f=new form1()试问一下,form1,form2是什么?
NEW后面没别的了么?
form1中没有赋值
应该这样
///form1
public static string dz; //保存中间值
public void form1()
{
  dz = "xxx";
  form2 frm2 = new form2();
  frm2.show();
}

///form2
public void form_load()
{
//获取FORM1中的DZ
 string value = form1.dz.ToString();
 //此时value为XXX
 
}

希望对你有帮助
因为你没给你那个 字段DZ赋值当然是空的了因为你new一下 就相当于重新开辟了一段内存空间。所有的字段都是没有值的,除非加上static静态就可以了

上一个:c#的编程问题
下一个:C#编程```谁能做出来```100分拿去!!!!

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,