using System;
// Custom Exception types
class AException : Exception
{
}
class BException : Exception
{
}
class Test
{
public static void Main(string[] args)
{
try
{
throw new AException();
}
catch (Exception ex)
{
Callme(ex);
}
}
public static void Callme(AException aexception) {}
public static void Callme(BException bexception) {}
public static void Callme(Exception ex) {}
}
Callme(ex)
всегда будет вызывать Callme(Exception ex)
вместо Callme(AException ..)
.. Это ожидаемое поведение.Я читаю разрешение перегрузки метода, работаю с отношениями наследования.