初学C# 怎么在一个类中调用另一个类的函数?

有2个类
public class A{}
public class B{}

现在不知道A这个类对象的名
在A中创建一个B的类对象
怎么在B这个类对象里面调用A对象中的函数呢?
可以通过A调用B的时候给B传递个指针吗 好像不行啊?
怎么实现?
帮帮忙 三楼办法不行啊 直接卡死.

我虽然看的有点迷糊,但看完你和他们的问答以后,总结了一下,你是不是想这样:比如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对象作为值传进去,不知道我说的能不能解决你的问题
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-26
这种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;
}
}

}追问

主要是B是个窗体
要等B关闭之后才调用当前对象的函数啊。。

追答

ShowDialog()就会把之后的程序挂起,等B关闭是才继续下面的程序,

程序卡死,是程序有问题,请自己检查一下,这种A调用B,B又要去调用A,既然这两个类耦合度这么高,还不如做成一个类里

这里使用ShowDialog,一定程序上给两个类解耦

本回答被网友采纳
第2个回答  推荐于2016-01-22
C#中如何在一个控件函数中调用另一个控件中生成的变量,具体解决方案如下:
解决方案1:
在其事件中声明的变量的话,在其他控件的方法中是不能调用的,可以被其他控件函数使用,如果这个变量时在方法或事件外声明的如果另一个控件中生成的变量时指
解决方案2:
谢谢!
解决方案3:
把另一个控件中的“变量“变成为属性,直接访问这个属性就行了。
解决方案4:
简单的使用全局静态变量做中转,复杂的自定义事件。
第3个回答  2011-11-23
如果是静态方法,直接B.方法()就行了呀
如果不是静态方法,B b=new B();b.方法()这样调用追问

不行啊 主要是类方法里面修改了当前对象的数据
重新new一个出来就是别的数据了
..

追答

那就直接用当前对象调用呀,上代码……

追问

但是我的意图是当前对象调用B这个对象(其实是个窗体)
B这个窗体关闭了之后再调用当前对象的那个函数啊..

追答

在A窗体的的active事件里面写代码调用方法

追问

active事件:每当窗体被激活时发生
问一小问题什么叫被激活啊?

追答

当前为活动窗体的时候,就是激活。
比如说你在A窗体弹出B,那么现在B是激活的,而A就不是激活的。当B关闭,A就成激活的了。

第4个回答  2011-11-24
答:类名点方法。如A.方法名()

如何在C#中,在一个类里调用另外一个类的方法
把A类你有引用的方法加static public class A{public static void MethodA()\/\/如果不是static 就要实例化才能调用{}}public class B{public void MethodB{A.MethodA();\/\/第一种方式如果MethodA()没有加static关键字则使用 new A().MethodA();}} 【...

C# 一个类调用另一个类中的方法。
如果是这样的话,你可以在B的构造函数里这么写public B(A a) { m_A=a; } 然后在B里面定义一个A类型的成员变量m_A,这样你就可以在B对象的生命周期里调用A对象的公有方法了,当然,你写b的new的时候要这么写B b= new (this);因为你是想将当前的A对象作为值传进去,不知道我说的能不...

如何在C#中,在一个类里调用另外一个类的方法
如果要通过类名来用方法的话,那其中的方法必须是静态方法,需加上static。即public static void get() {...}。静态方法是跟类关联的,允许不对classA实例化,就可以用它的方法。把A类有引用的方法加static public class A public static void MethodA()\/\/如果不是static 就要实例化才能调用 publ...

如何在一个类中调用另一个类的函数
方法1. 新建一个类。然后在调用类中先进行被调用类实例化,然后通过实例化的对象访问。例如:\/\/先定义一个类 \/\/实例化,调用 方法2.新建一个类,将该类中需要被调用的方法设置为静态(static),加了static后,就可以用类名直接调用。然后在调用类中直接通过类名进行访问。调用格式为:类名.方法名...

如何在一个类中调用另一个类的成员函数
public class class_1 { public final static String nema="杨国政";} 在其他类中调用的方式是 public static void main(String[] args) { String name = class_1.nema;}

C#中 如何在一个类中 调用另一个类中的数据?
InitializeComponent();} 这是无参构造函数可以改 public Form1(ListBox _lb){ InitializeComponent();lb=_lb;} ListBox lb;这样在form1实例化form2的时候就 form2 f2=new form2(listbox1);f2.show();这样在form2里面的lb就是form1的listbox1了 因为类是引用类型所以可以这样,,还有别的窗体...

在C#中 构造函数间怎样互相调用?
… }当调用子类构造函数时,先通base调用父类的构造函数。(2)在同一个类中,不同重载的构造函数相互调用。例如 public class SampleClass{ private string str; private int i; \/\/构造函数一 public SampleClass(string s) { this.str = s; i = 100; } \/\/...

c#怎么在一个窗口里面访问另一个窗口的方法?
1,使用委托,可以简单明了,更方便些 2,在form2类中,定义pulic form1 frm1;属性。重载form2的构造函数,构造函数包含参数 form1,把参数form1传递给属性frm1,即可。具体如下:public class form2:form { ...pulic form1 frm1;public form2()\/\/默认构造函数 { } public form2(form1 fm)...

c#中怎样创建一个类然后调用这个类?
public class Student { public int Id{get;set;} \/\/为类定义字段 public string StuName{get;set;} \/\/可以写一些方法 例:public string Get(){ \/\/方法体 } } 调用类 Student s1=new Student();string str=s1.Get();\/\/调用类的方法 ...

C#怎么调用 类中的函数啊?
类只是一种类型,我们一般都是用对象,一个对象一般对应一种实体,使用类的函数就是使用对象的函数,对象的函数一般可以体现对象的功能,也可以是对对象自身的一种操作,前者通常为public,后者为private,如果是纯功能的话,可以使用静态类,可直接用类访问,若不是静态函数,需要用对象访问 ...

相似回答