今天在敲委托代理第三个例子的时候遇到了这样的问题,如下图:
一头污水,因为第一个例子运行成功了,于是就和第一个例子中启动Main方法哪儿对比,也没有看出什么错误,于是就查了一些资料,终于搞懂了,如下图:
右击其中红色标注的项目,选择属性弹出如下图界面:
将图中启动对象改为对应的你要启动的名字以及对应Main方法上的类,如下图我红色标注的部分需要和上面的启动对象对应!
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">namespace <span style="color:#ff0000;">ConsoleApplication3</span> { //委托代码第三个例子 public delegate void del(string teststring); public class<span style="color:#ff0000;"> multicastdelegate</span> { public static void Main(string[] args) { //实例化一个messagetest类的对象ok messagetest ok = new messagetest(); //d1为ok.message1的代理 del d1 = new del(ok.message1); del d2 = new del(ok.message2); del d3 = new del(ok.message3); del dall = d1 + d2 + d3; dall("代理制广播!"); dall = dall - d1; dall("代理之多路委托"); } } //定义类中不同的方法 class messagetest { public void message1(string teststring) { Console.WriteLine("使用message1" + teststring); } public void message2(string teststring) { Console.WriteLine("使用message2" + teststring); } public void message3(string teststring) { Console.WriteLine("使用message3" + teststring); } } }</span></span>
有了以上的问题,下面我再介绍一下Main方法:
1.Main方法是程序的入口点,C#程序中必须包含一个Main方法,在Main方法中可以创建对象和调用其他方法。
2.一个C#程序中只能有一个Main方法,并且在C#中所有的Main方法都必须是静态(static)的,使它可以不依赖与类的实例对象而执行。
3.可以用3个修饰符修饰Main方法,分别是public、static和void。
(1)public:说明Main方法是共有的,在类的外面也可以调用整个方法
(2)static:说明方法是一个静态方法,即这个方法属于类的本身,而不是这个类的特定对象,调用静态方法不能使用类的实例化对象,必须直接使用类名来调用
(3)viod:此修饰符说明方法无返回值
4.我以上委托例子中Main方法是这样 static viod Main(string[] args) 使用的,而一般这样 static viod Main() 使用就可以了。
Main方法VB vs C#
以前在VB中也用到过Main方法,哪里只不过是在启动的时候可以实例化出一个窗体,或者直接用Main方法调用一个窗体。
在C#中接触了面向对象思想,理解运用Main方法的时候就比当时复杂多了!
Main方法举例:
Main方法就相当于汽车的电瓶,在生产汽车时,将各个零件进行组装,相当于程序的编写。当汽车组装完成后,就要检测汽车是否可用,如果想启动汽车,就必须通过电瓶来启动汽车的各个部件,如:发动机、车灯等,电瓶就相当于启动汽车的入口点。
上述如有错误之处还望指正!