博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个非常有用的辅助类 -- 阈值类的实现
阅读量:5887 次
发布时间:2019-06-19

本文共 1724 字,大约阅读时间需要 5 分钟。

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

上面的锁。你必须先打开锁进入人才。假定很不幸的是如何门锁,当务之急是高于一切的锁是否打开才行。

我们必须使用下面的c#实现门(门槛)类别:

一、分析

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

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

二、代码

/* * 描术: *  * 作者:AnYuanLzh * 时间:2014-xx-xx */using System;using System.Collections.Generic;/// /// 门类:/// 它有个状态--开着/关闭,有人会说那用一个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。有时间再写一个吧....

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

你可能感兴趣的文章
分页器(自定制)
查看>>
Docker系列一:Docker的介绍和安装
查看>>
java中添加定时任务
查看>>
mysql innodb研究中一直不懂的东西(不断更新)
查看>>
洛谷 P1803 凌乱的yyy Label:Water 贪心
查看>>
3.4 函数式编程
查看>>
测试——设计思维之获取反馈
查看>>
python之 前端HTML/CSS基础知识学习笔记
查看>>
Sencha Touch NestList 如何载入tree结构的数据
查看>>
工具栏图标切换
查看>>
Openlayers系列(一)关于地图投影相关错误的解决方案
查看>>
php多进程中的阻塞与非阻塞
查看>>
TensorFlow学习笔记(五)图像数据处理
查看>>
crossplatform---Nodejs in Visual Studio Code 05.Swig+Bootstrap
查看>>
论JVM爆炸的几种姿势及自救方法---转载
查看>>
keystone 手动建立租户,用户,角色,服务,端口
查看>>
排序之快速排序
查看>>
Win32编程day07 学习笔记
查看>>
PYTHON2.day09
查看>>
PYTHON2.day05
查看>>