c#如何只能创建类的一个实例(一)

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Single
    {
        //类如何只构建一个实例 
        private static bool iscreated = false;
        private Single()
        {
            
        }
        //通过调用类的公共方法来返回类的仅一个单实例
        //结合类静态变量iscreated及私有构造函数来控制只能创建类的一个实例
        public static Single Getsingle()
        {
            if (!iscreated)
            {
                iscreated = true;
                Console.WriteLine("创建了类single的第一个实例");
                return new Single();
                
            }
            else
            {
                //throw与return是互斥语句
                throw new Exception("已经创建了一个类的实例了,不能再建了");
                //throw;throw子句只能在try catch的catch中使用
                return null;
                
            }
               
        }
    }

}

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;//arraylist派生于array类
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
       //学习while
      public static void Main(string[] args)
      {
          //不能直接方问single类的构造函数,构造函数也分为公共私有保护内部
          //Single s = new Single();
          Single s1 = Single.Getsingle();
          //但这种方法还是要编写代码来检查single类的方法getsingle的返回值是否为空,来控制是否仅创建类的一个实例
          //if (s1!=null )
          //Console.WriteLine("创建了single类第一个实例");
          //Single s2 = Single.Getsingle();
          //if (s2 == null)
          //    Console.WriteLine("single类只能创建一个实例");
          Single s2 = Single.Getsingle();
          Console.ReadKey();
      }
    }
    

}
请使用浏览器的分享功能分享到微信等