C#在不同的类/文件中使用实例化的类

时间:2015-09-30 22:20:03

标签: c# class instance

我是否可以在另一个类和文件中使用一次类的实例而无需重新实例化它?

class Start
{
    public static Log Log = new Log(...);
}

class Start1
{
    Log.Write("New instance!");
}

我已经阅读了关于必须使用get/set块来执行此操作的信息,但我不确定如何进行此操作,

1 个答案:

答案 0 :(得分:3)

单身人士模式:

  public class Log
        {
            private static Log instance;

            private Log() { }

            public static Log Instance
            {
                get           
                {
                    return instance ?? (instance = new Log());              
                }
            }
        }

通过调用Log.Instance来使用它,依此类推。

要使用参数调用此方法,您需要执行以下操作:

   public class Log
        {
            private string foo;

            private static Log instance;

            public static Log Instance
            {
                get
                {
                    if (instance == null)
                    {
                        throw new InvalidOperationException("Call CreateInstance(-) to create this object");
                    }
                    else
                    {
                        return instance;
                    }
                }
            }

            private Log(string foo) { this.foo = foo; }

            public static Log CreateInstance(string foo)
            {
                return instance ?? (instance = new Log(foo));
            }
        }

然而,在这个庄园中使用单身人士通常是一个坏主意。看看依赖注入/控制反转,看看如何解决这个问题。