В следующем коде:
public abstract class MyClass
{
public abstract bool MyMethod(
Database database,
AssetDetails asset,
ref string errorMessage);
}
public sealed class MySubClass : MyClass
{
public override bool MyMethod(
Database database,
AssetDetails asset,
ref string errorMessage)
{
return MyMethod(database, asset, ref errorMessage);
}
public bool MyMethod(
Database database,
AssetBase asset,
ref string errorMessage)
{
// work is done here
}
}
где AssetDetails является подклассом AssetBase.
Почему первый MyMethod вызывает второй во время выполнения, когда передал AssetDetails, вместо того, чтобы застревать в бесконечном цикле рекурсии?