在不创建新实例的情况下引用其他类方法

时间:2010-11-16 07:17:04

标签: c# class reference

我有一个名为clientChat的类,它可以完成基本的网络工作。我有几个其他类链接到不同的窗体。在我的第一个表单中,我有一个引用聊天类的变量,如下所示:

clientChat cc = new clientChat();

一切正常,他们的课程已被初始化,一切都在运动中。完成第一个表单后,执行它的任务我会调出第二个表单,该表单显然与新的类文件相关联。

现在我的问题是,如何在不设置类的新实例的情况下引用clientChat类中的内容?我需要将表单中的数据传递给networkstream,如果我创建了一个新的类实例,那么就不需要与服务器建立新的连接,并且基本上需要重启所有内容,因为它是“新的”?我有点困惑,任何帮助都会很棒,谢谢。 .NET 4.0上的C#

4 个答案:

答案 0 :(得分:3)

您可以在程序开头创建clientChat的实例,然后只需将其引用传递给需要它的类。

答案 1 :(得分:3)

您可能需要查看Singleton设计模式。 Skeet先生写了一篇关于如何在C#here.中实现它的好文章(只使用版本4.它最简单,工作正常=))

答案 2 :(得分:1)

据推测,你要么:

  1. 从创建和显示两个表单的代码创建对象,并将对同一个实例的引用传递给两个表单,或者:
  2. 如果从第一个表单内部创建第二个表单,则将对第一个表单引用的实例的引用以某种方式传递给第二个表单(例如,通过属性或构造函数)。

答案 3 :(得分:0)

除了@Jens的答案之外,链接页面上有5种方法,而我认为我们使用Lazy<T> in C# 4.0

获得了第6种方法
public sealed class Singleton
{
    private Singleton() { }
    private static readonly Lazy<Singleton> m_instance = new Lazy<Singleton>(() => new Singleton());
    public static Singleton Instance
    {
        get
        {
            return m_instance.Value;
        }
    }
}