ITPub博客

首页 > Linux操作系统 > Linux操作系统 > c#如何只能创建类的一个实例(一)

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

原创 Linux操作系统 作者:wisdomone1 时间:2012-04-07 21:51:43 0 删除 编辑
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();
      }
    }
    

}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-720637/,如需转载,请注明出处,否则将追究法律责任。

上一篇: c#安全角色示例
下一篇: c#泛型续(一)
请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb qq: 305076427 微博: wisdomone9

注册时间:2008-04-04

  • 博文量
    2149
  • 访问量
    11889389