【问题标题】:c# Get value of static property from the instance of a classc# 从类的实例中获取静态属性的值
【发布时间】:2020-02-07 21:21:33
【问题描述】:

如何从类的实例中获取静态属性的值?请参阅下面的示例...

abstract class A {
   public static double Foo {get; protected set;}
}

class B : A {
   static B(){
      Foo = 1;
   }
}

class C : A {
   static C(){
      Food = 2;
   }
}

class Test {
   A test = new B();

   //How do I get test.Foo ??
}

【问题讨论】:

  • 你必须做 B.Foo 没有 test.Foo
  • 应该注意它实际上存在于A,所以你不会总是从B.Foo得到1,从C.Foo得到2,因为它将被设置为静态初始化的任何一个最后。
  • 是的,我想错了。我想从变量中获取静态属性,因为我不确定对象是 B 还是 C。但我现在看到这无关紧要,静态属性仅属于 A。

标签: c# inheritance properties static


【解决方案1】:

静态成员(字段、属性、方法等)通过类名访问。

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;
}

【讨论】:

    猜你喜欢
    • 2010-12-02
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多