我这里真的是一片空白。
我在想why我无法在方法中声明委托类型,但我必须在类级别声明委托类型。
namespace delegate_learning
{
class Program
{
// Works fine
public delegate void anon_delgate(int i);
static void Main(string[] args)
{
HaveFun();
Console.Read();
}
public static void HaveFun()
{
// Throws an error :/
//delegate void anon_delgate(int i);
anon_delgate ad = delegate(int i) { Console.WriteLine(i.ToString());};
}
}
}
Edit:我正在研究 Lambda 表达式,并根据我个人的知识回顾 Lambda 之前的情况。
// Throws an error :/
delegate void anon_delgate(int i);
它会抛出一个错误,因为它是type定义,而不是variable宣言。任何type方法内部不允许定义。仅允许在类范围或命名空间范围内使用。
namespace A
{
delegate void X(int i); //allowed
public class B
{
delegate void Y(int i); //also allowed
}
}
顺便说一句,你为什么不写这个:
anon_delgate ad = i => Console.WriteLine(i.ToString());
这称为 lambda 表达式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)