내 질문이 비슷한 비트입니다. 예를 들어, 코드 : there isn't implicit convertion from Action<int> to Foo1.
그러나이 normaly이 같은 일 때문에대표
class Program
{
private delegate void Foo1(int x);
private delegate void Foo2(int x);
static void Main(string[] args)
{
Foo1 foo1 = Console.WriteLine;
Foo2 foo2 = Console.WriteLine;
Call(foo1);
Call2(foo2);
}
static void Call(Action<int> action)
{
action(10);
}
static void Call2(Foo1 action)
{
action(10);
}
}
는 컴파일되지 않습니다. 따라서이 이름은 별칭이 아니며 실제 이름이 아님을 의미합니다. 그래서 별칭처럼 생각하는 것이 좋습니다. 그래서이 경우에 우리는 delegate, that get one int value and returns nothing
의 3 개의 별칭을 가지고 있습니다. 그리고이 대의원은 완전히 상호 교환 할 수 있습니다. 그러나 우리는 그것을 가지고 있지 않습니다. 그래서 질문은 : 왜? 서명을 통해 동일한 것이므로 구현이 없으므로 동일한 서명을 가진 대리인이 여러 별칭과 동일하고 동일합니다 ...
C# 결함이 있습니까? 아니면 이유가 있습니까? 나에 관해서는, 나는 어떤 것도 보지 못한다.
내가이 결함 생각하지 않는다, 개인적으로하지만,이 * 내가 할 때 짜증 왜 *입니다 사람들은'Action' /'Func'을 사용하는 대신 자신의 대표자를 정의합니다. – Servy