C# 单例 --笔记
不继承Mono的单例,常用于数据的管理类
属性访问器形式:
using System; namespace 单例 { public class SingleTonTest { //不继承mono的单利 常用于数据的管理类 public string name = "CKCK"; //存储 当前类唯一实例的对象 private static SingleTonTest instance; /// <summary> /// 当前需要单例的类的构造私有化 /// </summary> private SingleTonTest() { } //属性访问器形式 public static SingleTonTest Instance { get { if (instance == null) { instance = new SingleTonTest(); } return instance; } } public void Print(string a) { System.Console.WriteLine(a); } } class Program { static void Main(string[] args) { //属性访问器形式获取单例 SingleTonTest a = SingleTonTest.Instance;//获得访问器 string name = a.name;//获得数据 a.Print(name);//调用方法 Console.Read(); } } }
方法获取单例:
using System; namespace 单例 { public class SingleTonTest { public string name = "CKCK"; //存储 当前类唯一实例的对象 private static SingleTonTest instance; /// <summary> /// 当前需要单例的类的构造私有化 /// </summary> private SingleTonTest() { } //需要一个位置对当前对象进行实例化 而且是唯一的实例化 public static SingleTonTest GetInstance() { if (instance == null) { //当前类没有实例化 instance = new SingleTonTest(); } return instance; } public void Print(string a) { System.Console.WriteLine(a); } } class Program { static void Main(string[] args) { //方法形式获取单例 SingleTonTest.GetInstance(); Console.Read(); } } }
继承Mono的单例:
在游戏中 负责统筹管理的类 需要调到mono中的方法 Load<Sprite>
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SingleTonMono : MonoBehaviour { public int playerGold=100; private static SingleTonMono instance; public static SingleTonMono Instance { get { return instance; } } void Awake() { instance = this; } }

浙公网安备 33010602011771号