问题描述
我想知道使用委托方法和使用通用方法[无委托]之间的区别.
I want to know the difference between using Delegate Methods and using General Methods[without Delegates].
与代表:
delegate void DelMethod(string str);
static void Method(string str)
{
Debug.WriteLine(str);
}
用法:
DelMethod dm = new DelMethod(Method);
dm(string);
并且没有委托:
static void Method(string str)
{
Debug.WriteLine(str);
}
用法:
Method(string)
这两者有什么区别??
What are the differences of these two??
没有委托的方法更小更容易.但我发现程序员经常使用委托方法.
The method without delegate is smaller and easy. But I find coders using delegated Methods frequently.
这背后的原因是什么??
What is the reason behind this??
推荐答案
代表是另一种情况.想象一下,你有一个班级应该回答另一个班级的问题,但你对第二个班级一无所知.在这种情况下,您可以先做一个委托.
Delegates are for another situation. Imagine, that you have a class which should answer for something from another class, but you know nothing about the second class. In such situation you can do a Delegate in the first.
// class where you know something
class A
{
//delegate for answer
public Func<bool> AskForSomething { get; set; }
public void DoSomething()
{
//some code
if(AskForSomething())
{
//do something
}
else
{
//do something else
}
}
}
class B
{
public void Test()
{
A a = new A();
a.AskForSomething = new Func<bool>(Answer);
a.DoSomething();
}
private bool Answer()
{
return true;
}
}
Class A对class B一无所知,但它可以调用B的方法并得到它的结果.class B中的Answer方法是private,class A不能直接调用.
Class A knows nothing about class B, but it can call B's methods and get it's results. The Answer method in class B is private and class A can't call it directly.
在 MSDN
这篇关于委托方法与一般方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)