使用 C#、.Net Framework 4.5、Visual Studio 2012
经过一些理论尝试在 C# 中创建一些委托。
当前创建下一个代码
namespace SimpleCSharpApp
{
public delegate void MyDelegate();
class Program
{
private static string name;
static void Main(string[] args)
{
//my simple delegate
Console.WriteLine("Enter your name");
name = Console.ReadLine().ToString();
MyDelegate myD;
myD = new MyDelegate(TestMethod);
//Generic delegate
Func<Int32, Int32, Int32> myDel = new Func<Int32, Int32, Int32>(Add);
Int32 sum = myDel(12, 33);
Console.WriteLine(sum);
Console.ReadLine();
//call static method from another class
myD = new MyDelegate(NewOne.Hello);
}
public static void TestMethod()
{
Console.WriteLine("Hello {0}", name);
}
public static Int32 Add(Int32 a, Int32 b)
{
return a + b;
}
}
}
还有花药课
namespace SimpleCSharpApp
{
sealed class NewOne
{
static public void Hello()
{
Console.WriteLine("I'm method from another class");
}
}
}
结果得到了下一个
所以问题- 为什么委托MyDelegate
不工作和通用变体 - 工作?我哪里错了。
还有另一个问题- 我可以调用显示的示例方法,例如
//calling method
Console.WriteLine("Enter your name");
name = Console.ReadLine().ToString();
TestMethod();
//from another class
NewOne.Hello();
使用代表时我有什么优势?或者它只是一个变体我如何使用委托和“全功率”我可以看到什么时候可以尝试使用lamba-extensions和事件?(刚刚来到本章 - 尚未阅读 - 想要更好地理解委托)。