C# 简单的泛型单例

来源:互联网 发布:淘宝静物拍照技巧 编辑:程序博客网 时间:2024/06/10 00:43
//SharedInstance.csusing 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.csusing 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.csusing 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


0 0
原创粉丝点击