Csharp如何写一个单例模式的demo?
时间: 2023-01-15 21:05:23 浏览: 144
这是一个示例代码:
```
public class Singleton
{
private static Singleton instance;
private Singleton()
{
// 将构造函数设为私有,禁止外部实例化
}
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
```
使用方法:
```
Singleton instance = Singleton.Instance;
```
这个示例使用了双重检查锁定来保证单例模式的线程安全。
相关问题
是否可以使用CSharp写一个单例模式demo给我看看?
当然可以,下面是一个用 C# 实现的单例模式的简单示例:
```
public sealed class Singleton
{
private static readonly Singleton instance = new Singleton();
// 构造函数设为私有,防止外部通过构造函数创建实例
private Singleton() { }
public static Singleton Instance
{
get
{
return instance;
}
}
}
```
使用方法:
```
Singleton s = Singleton.Instance;
```
这样就可以保证只有一个 Singleton 类的实例存在。
是否可以使用CSharp写一个单例模式demo并使用线程安全写法给我看看?
可以的。单例模式是设计模式中的一种,它的目的是保证一个类只有一个实例,并且提供一个全局访问点。
以下是一个使用 C# 写的单例模式示例,同时使用了线程安全写法:
```
public sealed class Singleton
{
private static Singleton instance = null;
private static readonly object padlock = new object();
Singleton()
{
}
public static Singleton Instance
{
get
{
lock (padlock)
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
}
```
使用方法:
```
Singleton s1 = Singleton.Instance;
Singleton s2 = Singleton.Instance;
if (s1 == s2)
{
Console.WriteLine("Objects are the same instance");
}
```
阅读全文