Стати c члены (поля, свойства, методы и т. Д. c.) Доступны через имя класса.
var x = A.Foo;
Я думаю, что вы получаете статические данные неправильно.
Вы имели в виду что-то подобное?
abstract class A {
public double Foo {get; protected set;}
}
class B : A {
public B(){
Foo = 1;
}
}
class C : A {
public C(){
Foo = 2;
}
}
class Test {
A test = new B();
var foo = test.Foo;
}