所以我上课了。
然后我在某个地方制作一个实例:
Class1 somesinstance = new Class1;
现在我想在任何地方访问这个实例,这可能吗?
答案 0 :(得分:3)
如果你有一点空闲时间,我强烈推荐Jon Skeet关于这个主题的文章:http://csharpindepth.com/Articles/General/Singleton.aspx
这是一个简单的例子:
public sealed class YourSingleton
{
private static readonly YourSingleton instance = new YourSingleton();
static YourSingleton() {}
private YourSingleton() { }
public static YourSingleton Instance
{
get { return instance ; }
}
}
答案 1 :(得分:0)
如果您只需要一个实例,请使用单例模式:
public class Class1
{
private Class1()
{
...
}
private static readonly Class1 _instance = new Class1();
public static Class1 Instance { get { return _instance; } }
}
并像这样访问实例:
Class1.Instance
否则,只需将其作为类中的静态属性公开。
答案 2 :(得分:0)
如果您的任何地方意味着您的解决方案 - 您可以使用具有静态属性的静态类
public static class Shared
{
private static Class1 _myclass;
public static Class1 MyClass{
get
{
return _myclass??(_myclass=new Class1());
}
}
}
答案 3 :(得分:0)
您可以按照以下方式使用Singleton模式:
public class MyClass
{
private static MyClass myClass;
public static MyClass MyClassInstance
{
get { return myClass ?? (myClass = new MyClass()); }
}
private MyClass()
{
//private constructor makes it where this class can only be created by itself
}
}
然后可以像
一样全局访问该实例MyClass.MyClassInstance
答案 4 :(得分:0)
您可以创建一个静态类,其中包含可从您应用程序中的每个类访问的共享实例。
public static class SharedResources
{
public static Class1 obj1 {get; set;}
public static Class2 obj2 {get; set;}
// ...
}