在C#中有 A,B两个窗体,一个C类。在类中一个属性。为什么A窗体赋值后B窗体取不到值A是父窗体,B是子窗体 5

 我来答
秦爱传c5
2012-12-14 · TA获得超过2054个赞
知道小有建树答主
回答量:635
采纳率:50%
帮助的人:340万
展开全部
A中的C和B中的C不是同一个引用
第一种方法:可以把A中的C赋值给B中的C
class A:form
{
C c;
A()
{
c = new C();
....
B b = new B();
b.c=c;
b.Show();
}
}

class B:form
{
public C c{get;set;}
B()
{
}
}
第二种方法:把C声明为静态类
追问
“不是同一个引用怎么理解”是不是指不是同一个实例? 还有设为静态类也不行。只能把它设为静态类跟静态方法才行,单独设静态类好像不行,我测试过了。
追答
不是同一个引用 就是说地址不是指向同一个内存位置,也可以说不是同一个实例。
如果在A中实例化了C,在B中也实例化了C,那么A中的C跟B中的C就是不同的对象(对象有两个)。
如果把A中的C赋值给B中的C,那么A和B中的C都是同一个引用对象(对象只有一个)
runjiu
2012-12-14 · TA获得超过328个赞
知道小有建树答主
回答量:715
采纳率:50%
帮助的人:252万
展开全部
变量作用域问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友80f7d09
2012-12-14 · TA获得超过710个赞
知道小有建树答主
回答量:991
采纳率:33%
帮助的人:400万
展开全部
不是全局变量吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式