c# - 如果两个类继承一个静态字段,那么这些类的对象是否将共享相同的值?

标签 c# inheritance

不同类别的不同对象是否有可能在彼此之间使用一个共享项(例如,即时提供一些信息),还是更好地在两个不同类别的不同对象之间进行通信?

Class Base 
{
   public static string SomeThing = "Shared With All";
}
Class Der1 :Base
{
     public void DoSomeThing()
     {
          SomeThing = "SomeThing Goes in here...";
     }
}

Class Der2 :Base
{
     public void DoSomeThingElse()
     {
          Console.WriteLine"(SomeThing);
     }
}

....
{
    Der1 dr1 = new Der1();
    dr1.DoSomeThing();  
    Der2 dr2 = new Der2();
    dr2.DoSomeThingElse(); //shows 'SomeThing Goes in here...'  
}


如果有更多帮助,我正在尝试创建某种设计器,因此我需要跟踪设计器上的所有控件及其关联。实际上,目前只有两个对象(一个称为交易,另一个称为地点,不同的地点可以与不同的交易相关联,而这种关联是通过用户单击一个地点并指向其他交易来完成的(您有看到Proteus吗?

因此,这种方法将帮助我知道哪个对象正在引用哪个其他对象,因此可以轻松发现和保存这两个对象之间的关联。

最佳答案

静态字段的继承方式与普通字段不同。仍然只有一个静态字段Base.SomeThing。您的两个派生类都引用同一字段:如果Base.SomeThing发生任何更改,则访问该字段的所有内容都将看到更改。

关于c# - 如果两个类继承一个静态字段,那么这些类的对象是否将共享相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15484273/

相关文章:

c# - 如何在 C# 中的方法中调用构造函数

c# - 为什么我不能将类库项目引用添加到 Silverlight 项目?

c# - 我可以使用反射更改 C# 中的私有(private)只读继承字段吗?

java - Android ScrollView 中的 ClassCastException

c++ - 继承类的继承集合

java - 如何使用 Google Sheets API 将单元格文本设为粗体

c# - 如何在 Windows 窗体应用程序中触发自动注销?

C# Webforms 在代码执行期间显示加载指示器

c++ - 如何修复由多态性引起的错误?

java - 扩展 View 类