Какое значение будет выведено на консоль в результате выполнения программы?

    struct A { 
        public virtual void foo() { 
            Console.WriteLine("A"); 
        } 
    } 
 
    struct B : A {  
        public virtual override void foo() { 
            Console.WriteLine("B"); 
        } 
    } 
     
    class Program 
    { 
        static void Main(string[] args) { 
            A v = new B(); 
            v.foo(); 
        } 
    } 
B
Программа не компилируется
A
AB