您的位置:首页 > 编程语言 > C#

C# 简单的泛型单例

2016-01-14 10:30 260 查看
//SharedInstance.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SharedInstance
{
public class SharedInstance<T>
where T:new()
{
private static T m_Instance = default(T);

public static T Instance
{
get
{
if (m_Instance == null)
{
m_Instance = new T();
}
return m_Instance;
}
}
}
}


这里使用了 Where 约束

使用Where 约束,new()约束 让编译器知道,提供的任何类型参数都具有默认构造函数。

也只有加了这个约束之后,才能使用 new T() ;  

使用方法

//Student.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SharedInstance
{
public class Student:SharedInstance<Student>
{
public void GetAge()
{
Console.WriteLine("12");
}
}
}

//Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SharedInstance
{
class Program
{
static void Main(string[] args)
{
Student.Instance.GetAge();
Student.Instance.GetAge();
}
}
}


示例下载: http://pan.baidu.com/s/1gdP01J9
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: