【问题标题】:Use of one class object in another class?在另一个类中使用一个类对象?
【发布时间】:2011-12-20 07:45:07
【问题描述】:

我正在 c# 中制作应用程序。在该应用程序中,我有一个类为DataCapture.cs。在同一个应用程序中,我有另一个类 Listner.cs 。在 Listner.cs 类中,我想使用 DataCapture.cs 的对象而不创建 DataCapture.cs 的新对象。好像我正在创建DataCapture.cs 的新对象,我无法访问数据DataCapture.cs,因为它创建了新的类实例,并且所有数据都丢失了,因为我在DataCapture.cs 中使用集合。请帮助我。谢谢前进。

【问题讨论】:

  • 投反对票的你能告诉我问题有什么问题吗?
  • 我没有投反对票,但我可以理解为什么人们会这样做,因为您的问题不清楚。代码会澄清很多。

标签: c# class object collections


【解决方案1】:

您应该使用singleton pattern 来确保class 中只有one object 存在。然后你可以得到object

DataCapture.Instance. ......其中.Inastance 是public static

【讨论】:

    【解决方案2】:

    如果我清楚地理解您的要求,您可以这样做。

    //somewhere in the code you create 
    DataCapture dataCapture = new DataCapture(); 
    

    而且,考虑到 Listener 需要实际上是 DataCapture

    public class Listener {
    
      DataCapture _dataCapture = null; 
    
      public Listener(DataCapture dc) {
        _dataCapture = dc;
      }
    
      /* Use _dataCapture member inside listener class member functions. 
         One instance of DataCapture class, shared inside Listener.
      */
    }
    

    如果这不是您所要求的,请澄清您的问题。

    【讨论】:

      【解决方案3】:

      您可以将已创建的 DataCapture 对象的引用传递给 Listener 类。例如将实例传递给 Listener 的构造函数。

      class Listener{
        Listener(DataCapture data)
        {
           this.data = data;
        }
      }
      

      现在在 Listener 中,您可以访问 DataCapture 实例。

      【讨论】:

        猜你喜欢
        • 2017-08-16
        • 2013-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多