回 帖 发 新 帖 刷新版面

主题:帮个忙,我有个问题不会,请帮忙

在一个  WindowsApplication5  项目里有三个 一个是FORM1窗体 一个FORM2窗体  一个是CLASS类文件
我在类文件里定义了一个
  class add
{
   static string a;
}

在FORM2里是这样调用的
   add aa = new add();
   aa.a= this.textBox1.Text;

提示说:不可访问“WindowsApplication5.add.a”,因为它受保护级别限制

但是我在类文件里这样定义的话
  class add
{
    public string a;
}

在FORM2里是这样调用不回出错
   add aa = new add();
   aa.a= this.textBox1.Text;

但是在FORM1里调用的话
   add bb = new add();
   MessageBox.Show(bb.a);
弹出的值是“0”
怎么样才能让bb.a的值等于aa.a的值
帮我写个例子好吗 谢谢
我一直是用VB写的 现在C#完全不会 

回复列表 (共3个回复)

沙发

呵呵
我建议你还是看看基础知识吧?
类写的太不标准了;

对你问题的回答:
static 声明的静态变量只能类调用 add.a 这种格式

如果你想让两个窗体值一样
 add.a= this.textBox1.Text;
  MessageBox.Show(add.a);
就会输出textBox1的值了

板凳

提示说:不可访问“WindowsApplication5.add.a”,因为它受保护级别限制
答:默认声明的变量为private类型。

add aa = new add();
add bb = new add();
实例化了两次当然所存储就不一样了。

解决方案可以直接用强制类型转换。

3 楼

在FORM2里写一个获取a 的方法,在FORM1里new一个FORM2的实例在去调获取a的方法,试试

我来回复

您尚未登录,请登录后再回复。点此登录或注册