类中的静态成员则会跟随其他事例改变
2021-07-03 本文已影响0人
GoodTekken
在Student类中创建static int ID,在新建事例时,static 类型会跟随改变,输出结果如下:
Student:LiMing,ID:2,Say:I am Chinese
Student:XiaoHong,ID:2,Say:I am English
Hello World!
其中声明了委托类型:SaySomething。
使用步骤:
1,声明委托类型:
delegate void SaySomething(string str);
2,声明兼容的委托方法(返回值、参数类型和个数一样):
public void SayHello(string str);
3,创建委托事例:
SaySomething LiMingSay;
SaySomething XiaoHongSay;
LiMingSay = new SaySomething(LiMing.SayHello);
XiaoHongSay = new SaySomething(XiaoHong.SayHello);
4,调用委托事例:
LiMingSay("I am Chinese"); //隐式调用
XiaoHongSay.Invoke("I am English");//显式调用
源码如下:
class Program
{
delegate void SaySomething(string str);
static void Main(string[] args)
{
Student LiMing = new Student("LiMing", 1);
Student XiaoHong = new Student("XiaoHong", 2);
SaySomething LiMingSay;
SaySomething XiaoHongSay;
LiMingSay = new SaySomething(LiMing.SayHello);
XiaoHongSay = new SaySomething(XiaoHong.SayHello);
LiMingSay("I am Chinese");
XiaoHongSay.Invoke("I am English");
Console.WriteLine("Hello World!");
//Console.ReadLine();
}
}
class Student
{
public static int ID;
public string Name;
public Student(string name, int id)
{
Name = name;
ID = id;
}
public void SayHello(string str)
{
Console.WriteLine($"Student:{Name},ID:{ID},Say:{str}");
}
}