说我有这样的代表。
namespace somedelegatesb1 {
class Program {
delegate int Abc(int a);
static void Main(string[] args) {
Abc abc = delegate(int e) {
return 0;
};
}
}
}
为什么我必须编写参数int e,这里是
Abc abc = delegate(int e) {
return 0;
};
为什么我不能写
Abc abc = delegate(e) {
return 0;
};
它不会编译,但它是否“显而易见”它是否会被编入?它还会是什么?除了int之外,不可能是其他任何东西,因为委托需要int e。
假设我没有使用参数,即该函数将采用参数,但表示不会使用该变量。那是完全没有意义的。为什么我不能写
Abc abc = delegate {
return 0;
};
即使我使用的是参数..变量名也不一定与javascript相关,你可以说参数[0]。那么为什么不允许Abc abc = delegate {...};
我知道C#是严格类型的,但我并不是在委托之后写类型时改变类型。而且我并不是建议c#允许传递比定义更多或更少的参数。编写类型只是多余的。在某些情况下甚至变量名也不是必需的。如果不使用它,虽然人们通常会使用它,所以我可以看出为什么他们可能会强制要求,但肯定这里的类型是绝对不必要的和毫无意义的。那么为什么C#似乎需要它?