Почему «ref» и «out» не поддерживают полиморфизм?

Возьмите следующее: class A {} class B : A {} class C { C() { var b = new B(); Foo(b); Foo2(ref b); // <= compile-time error: // "The 'ref' argument doesn't match the parameter type" } void Foo(A a) {} void Foo2(ref A a) {} } Почему возникает указанная выше ошибка времени компиляции? Это...