如何在C#中,在一个类里调用另外一个类的方法
如何实现? 展开
如果要通过类名来用方法的话,那其中的方法必须是静态方法,需加上static。即public static void get() {...}。静态方法是跟类关联的,允许不对classA实例化,就可以用它的方法。
把A类有引用的方法加static
public class A
public static void MethodA()//如果不是static 就要实例化才能调用
public class B
public void MethodB
A.MethodA();//第一种方式
如果MethodA()没有加static关键字
则使用 new A().MethodA();
}
语言结构
类:一个基本的C#类中包含数据成员、属性、构造器和方法。属性可以是静态或实例成员。在C#中类的声明与C++和Java很相似。但是,不像C++,C#结构体与类是不支持继承多个父类。但是,与Java相同的是,一个结构体可以实现接口(interface)。Java的关键字import已经被替换成using,它起到了同样的作用。
以上内容参考:百度百科-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#是一个面向对象的编程语言。这种编程模式关注的是对象的行为和属性。比如猫抓老鼠这个例子中:猫和老鼠都是对象,用两个类表示:猫类Cat,老鼠类Mouse。
猫表现出了两种行为:听(老鼠的叫声)Listen(Mouse)和抓(老鼠)Catch(Mouse);至少一种属性:行动速度Speed。老鼠表现出了一种行为:叫Chitter;至少一种属性:叫声的大小Loudness。这样的话可以如下定义两个类:using System;class Cat { public void Listen(Mouse m) { Console.WriteLine("cat listening"); }
public void Catch(Mouse m) { Console.WriteLine("cat catching"); } public float Speed { get; set; }}class Mouse { public void Chitter() { Console.WriteLine("mouse chittering"); } public float Loudness { get; set; }}
实现猫抓老鼠的过程,就是实例化上述两个类,并调用相关方法。编码如下:
using System; // 引用名字空间
class Cat { // 实体对象(类):猫
public void Listen(Mouse m) { Console.WriteLine("cat listening"); } // 行为(方法):听老鼠叫
public void Catch(Mouse m) { Console.WriteLine("cat catching"); } // 行为(方法):捉老鼠
public float Speed { get; set; } // 属性:捉老鼠时的行动速度
}
class Mouse { // 实体对象(类):老鼠
public void Chitter() { Console.WriteLine("mouse chittering"); } // 行为(方法):叫
public float Loudness { get; set; } // 属性:叫声的大小
}
class Program { // 类:调用上述类,实现猫捉老鼠的过程
public static void Main() { // 主函数,程序入口
Cat c = new Cat(); // 实例化一个猫
Mouse m = new Mouse(); // 实例化一个老鼠
Console.WriteLine("begin."); // 猫捉老鼠过程开始
m.Chitter(); // 老鼠发出叫声
c.Listen(m); // 猫听到老鼠叫声
c.Catch(m); // 毛捉住老鼠
Console.WriteLine("over."); // 猫捉老鼠过程结束
}
}
public class A
{
public static void MethodA()//如果不是static 就要实例化才能调用
{
}
}
public class B
{
public void MethodB
{
A.MethodA();//第一种方式
如果MethodA()没有加static关键字
则使用 new A().MethodA();
}
}
public class A
{
public static void MethodA()//如果不是static 就要实例化才能调用
{
}
}
public class B
{
public void MethodB
{
A.MethodA();
}
}
例如:
Form1 form1 = new Form1();
form1.Button; //调用控件form1.Method(); //调用方法123
当然了,控件的Modifiers属性要设置成public
另一种是不创建窗体对象
在Form1类下定义静态变量,构造方法中引用这个Form1
class Form1: Form{
public static Form1 form1;
public Form1()
{
InitializeComponent();
form1 = this;
}
public void Method()
{
}}123456789101112131415
调用该窗体的控件或方法:
Form1.form1.Button;Form1.form1.Method()。