门(门槛)这是一个非常有特点的东西。它不只是要被锁定,你推到上。

上面的锁。你必须先打开锁进入人才。假定很不幸的是如何门锁,当务之急是高于一切的锁是否打开才行。
我们必须使用下面的c#实现门(门槛)类别:

一、分析

门类:它有个状态--开着/关闭,有人会说那用一个bool变量不即可了。 NO No,我这个门是能够上锁的。并且上锁的数量是不限的。第把锁都仅仅实用相应的key的才干打开。 所以我这个是仅仅要上一把锁就是关上了。要打开的话。却要解开全部已加在这个门上的锁。

当然有时候你也可破门而入。这是不是和bool变量不一样呢。门这种特性是非常实用的,尤其是在游戏编辑逻辑中会经常被用到。

二、代码

/** 描术:* * 作者:AnYuanLzh* 时间:2014-xx-xx*/
using System;
using System.Collections.Generic;/// <summary>
/// 门类:
/// 它有个状态--开着/关闭,有人会说那用一个bool变量不即可了。

/// NO No,我这个门是能够上锁的,并且上锁的数量是不限的。

第把锁都仅仅实用相应的key的才干打开。 /// 所以我这个是仅仅要上一把锁就是关上了;要打开的话。却要解开全部已加在这个门上的锁。 /// 这是不是和bool变量不一样呢。门这种特性是非常实用的。尤其是在游戏编辑逻辑中会经常被用到。 /// </summary> public class Lzh_Door { List<string> keys; /// <summary> /// 构造一扇门 /// </summary> public Lzh_Door() { keys = new List<string> (); } /// <summary> /// 推断这个门是不是开的 /// </summary> /// <value><c>true</c> if this instance is open; otherwise, <c>false</c>.</value> public bool IsOpen { get { if(keys==null || keys.Count==0) { return true; } return false; } } /// <summary> /// 这个门上有多少把锁 /// </summary> /// <value>The lock count.</value> public int LockCount { get { if(keys == null) return 0; return keys.Count; } } /// <summary> /// 给这个门上一把锁 /// 并返回一个key,用这个key能够解除你的这把锁 /// </summary> public string AddLock() { string key = System.Guid.NewGuid().ToString(); if(keys==null) keys = new List<string>(); keys.Add (key); return key; } /// <summary> /// 开锁 /// 用你上锁时反回给的key,才干打开你之前上的锁 /// </summary> /// <param name="key">Key.</param> public void OpenLock(string key) { if(keys!=null && keys.Contains(key)) { keys.Remove(key); } } /// <summary> /// 强制开门 /// 这是一种暴力手段,它会毁掉还门上全部的锁 /// </summary> public void FoceOpenDoor() { keys.Clear (); } }

三、測试Demo

大家看了上面的代码。是认为非常easy呢。一目了然。简单有用。

demo。有时间再写一个吧....

版权声明:本文博客原创文章,博客,未经同意,不得转载。

一个非常有用的辅助类 -- 阈值类的实现相关推荐

  1. 基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil

    基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil,把日常能用到的各种CRUD都进行了简化封装,让普通程序员只需关注业务即可,因为非常简单,故直接贴源代码,大家若需使用可以直 ...

  2. 迭代硬阈值类算法总结||IHT/NIHT/CGIHT/HTP

    斜风细雨作小寒,淡烟疏柳媚晴滩.入淮清洛渐漫漫. 雪沫乳花浮午盏,蓼茸蒿笋试春盘.人间有味是清欢. ---- 苏轼 更多精彩内容请关注微信公众号 "优化与算法" 迭代硬阈值(Ite ...

  3. Python中的元编程:一个关于修饰器和元类的简单教程

    作者 | Saurabh Kukade 译者 | 刘畅 出品 | AI科技大本营(ID:rgznai100) 最近,作者遇到一个非常有趣的概念,它就是用 Python 进行元编程.我想在本文中分享我对 ...

  4. 一个java的DES加解密类转换成C#

    原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util;import java.security.*; //im ...

  5. WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇]

    在<上篇>中,我通过使用Delegate的方式解决了服务调用过程中的异常处理以及对服务代理的关闭.对于<WCF技术剖析(卷1)>的读者,应该会知道在第7章中我通过类似于AOP的 ...

  6. 一个好用的ODBC数据库类CMYODBC

    一个好用的ODBC数据库类CMYODBC 一.引言 感觉MFC的CRecordset类不是很好用,因为我们要想使用的话必须为每个查询从CRecordset类派生出一个新类,或者进行动态数据交换.在VC ...

  7. java图片缩放工具类,一个JAVA图形缩放处置工具类

    一个JAVA图形缩放处理工具类 调用的例子 import java.io.FileOutputStream; import java.io.IOException; import javax.imag ...

  8. 编写代码,实现一个栈(Stack)的类。

    编写代码,实现一个栈(Stack)的类. 栈是只能在一端插入和删除数据的序列.它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被 ...

  9. python property方法_Python——property(使一个方法看起来就像类属性一样)

    """ 装饰器property: 使一个方法看起来就像类属性一样 """ #例子1 class A: def __init__(self, ...

最新文章

  1. 计算机求职意向范文,自我评价与求职意向范文3篇
  2. HTML的五种经典布局方式(二)
  3. LINQ访问DataTable
  4. [NOI2021 day1]轻重边(树链剖分),路径交点(矩阵行列式)
  5. 在git bush中如何退出vim编辑器
  6. [NOI2012]美食节
  7. C++ int转string以及源码
  8. 生成一个GitHub的token用于git推送本地库至远程库
  9. 卸载exchange后注意事项
  10. window 平台上面解决不能动态php_mysqli.dll
  11. c++十六进制转十进制_二、八、十、十六进制转换不用计算,Excel 进制转换函数大全奉上...
  12. html 字体样式 幼圆,设置字体样式:字号大小,字体种类,字体粗细
  13. [远程控制]木马伪装:图片
  14. 【实习面经】头条后台开发岗一面凉经
  15. 【基于时间序列的变形观测的数据处理方法的研究】
  16. 【Machine Learning】【Andrew Ng】- Quiz2(Week 9)
  17. SQLite实现获取本机短信数据
  18. 构造IOCTL命令的学习心得-----_IO, _IOR, _IOW, _IOWR 幻数的理解
  19. 头条号个人中心登录_登陆自己的头条号后台操作步骤
  20. 圆为什么规定一定是360度_圆为什么是360度?不一样的趣味知识,让你痴迷数学...

热门文章

  1. 转:Real6410 Linux 常见问题总结(截至2010/07/26)
  2. 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败
  3. 组件注册-@Scope-设置组件作用域
  4. android 多个语音合成,android实现语音合成
  5. SSM框架搭建过程----学生学籍管理系统
  6. 报 java.lang.ExceptionInInitializerError 的常见解决方法
  7. python max函数key_Python标准库:内置函数max(iterable, *[, key, default]) | 学步园
  8. linux ibus中文,Ubuntu 14.10系统中IBUS 中文输入法安装的图文教程
  9. python学习方法总结_Python学习总结(一)
  10. JAVA:基础递归算法大杂烩