初学C# 怎么在一个类中调用另一个类的函数?
有2个类publicclassA{}publicclassB{}现在不知道A这个类对象的名在A中创建一个B的类对象怎么在B这个类对象里面调用A对象中的函数呢?可以通过A调...
有2个类
public class A{}
public class B{}
现在不知道A这个类对象的名
在A中创建一个B的类对象
怎么在B这个类对象里面调用A对象中的函数呢?
可以通过A调用B的时候给B传递个指针吗 好像不行啊?
怎么实现?
帮帮忙 三楼办法不行啊 直接卡死. 展开
public class A{}
public class B{}
现在不知道A这个类对象的名
在A中创建一个B的类对象
怎么在B这个类对象里面调用A对象中的函数呢?
可以通过A调用B的时候给B传递个指针吗 好像不行啊?
怎么实现?
帮帮忙 三楼办法不行啊 直接卡死. 展开
6个回答
展开全部
我虽然看的有点迷糊,但看完你和他们的问答以后,总结了一下,你是不是想这样:比如A是一个窗体类,B是另一个窗体类,你想在A的某一个函数里new一个b的对象并且让b显示出来,然后在b里面调用A的方法?如果是这样的话,你可以在B的构造函数里这么写public B(A a)
{
m_A=a;
}
然后在B里面定义一个A类型的成员变量m_A,这样你就可以在B对象的生命周期里调用A对象的公有方法了,当然,你写b的new的时候要这么写B b= new (this);因为你是想将当前的A对象作为值传进去,不知道我说的能不能解决你的问题
{
m_A=a;
}
然后在B里面定义一个A类型的成员变量m_A,这样你就可以在B对象的生命周期里调用A对象的公有方法了,当然,你写b的new的时候要这么写B b= new (this);因为你是想将当前的A对象作为值传进去,不知道我说的能不能解决你的问题
展开全部
这种A窗体,B窗体互相调用是最差的编程习惯,增加了耦合度
下面这个例子让你可以解决互相调用的问题,A窗体中的方法,还是在A中调用,不需要在B中调用
public class A
{
//关闭后要执行的方法
void method(){
}
void do(){
B b = new B();
if(b.ShowDialog() == DialogResult.Ok){
method();
}
}
}
public class B{
void Close_Click(){
if(true){
this.DialogResult = DialogResult.Ok;
}else{
this.DialogResult = DialogResult.None;
}
}
}
下面这个例子让你可以解决互相调用的问题,A窗体中的方法,还是在A中调用,不需要在B中调用
public class A
{
//关闭后要执行的方法
void method(){
}
void do(){
B b = new B();
if(b.ShowDialog() == DialogResult.Ok){
method();
}
}
}
public class B{
void Close_Click(){
if(true){
this.DialogResult = DialogResult.Ok;
}else{
this.DialogResult = DialogResult.None;
}
}
}
追问
主要是B是个窗体
要等B关闭之后才调用当前对象的函数啊。。
追答
ShowDialog()就会把之后的程序挂起,等B关闭是才继续下面的程序,
程序卡死,是程序有问题,请自己检查一下,这种A调用B,B又要去调用A,既然这两个类耦合度这么高,还不如做成一个类里
这里使用ShowDialog,一定程序上给两个类解耦
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C#中如何在一个控件函数中调用另一个控件中生成的变量,具体解决方案如下:
解决方案1:
在其事件中声明的变量的话,在其他控件的方法中是不能调用的,可以被其他控件函数使用,如果这个变量时在方法或事件外声明的如果另一个控件中生成的变量时指
解决方案2:
谢谢!
解决方案3:
把另一个控件中的“变量“变成为属性,直接访问这个属性就行了。
解决方案4:
简单的使用全局静态变量做中转,复杂的自定义事件。
解决方案1:
在其事件中声明的变量的话,在其他控件的方法中是不能调用的,可以被其他控件函数使用,如果这个变量时在方法或事件外声明的如果另一个控件中生成的变量时指
解决方案2:
谢谢!
解决方案3:
把另一个控件中的“变量“变成为属性,直接访问这个属性就行了。
解决方案4:
简单的使用全局静态变量做中转,复杂的自定义事件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是静态方法,直接B.方法()就行了呀
如果不是静态方法,B b=new B();b.方法()这样调用
如果不是静态方法,B b=new B();b.方法()这样调用
更多追问追答
追问
不行啊 主要是类方法里面修改了当前对象的数据
重新new一个出来就是别的数据了
..
追答
那就直接用当前对象调用呀,上代码……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答:类名点方法。如A.方法名()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询