考慮:C#:我可以將一個顯式委託轉換爲一個Action委託嗎?
delegate void Explicit();
我可以:
public void Test(Explicit d)
{
Action a;
a = d; // ????
}
我遇到的情況,我需要重載,有一個構造函數:
public MyClass(Expression<Action> a) {}
但下面的過載是模糊的:
public MyClass(Action a) {}
我想通過使用顯式委託可以解決模糊問題,但我需要將該顯式委託轉換爲操作以利用現有代碼。
請注意,這不是一個模棱兩可的問題。即使你沒有一個重載的構造函數,它也不會讓你將一個'Explicit'的實例傳遞給'Action'類型的參數,因爲它們不直接兼容。您仍然需要轉換。 –