大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> 一个扑克游戏的诞生---扑克牌及相关类代码兼谈异常(上)

一个扑克游戏的诞生---扑克牌及相关类代码兼谈异常(上)

时间: 2021-07-31 作者:daque

一个扑克牌游戏的出生---扑克牌牌及关系类代码兼谈特殊 呵呵,真得很欣喜上篇帖子发了此后赶快有一个叫ide的伙伴对我画的uml图提出了品评,这是我最蓄意看到的,蓄意这位ide网友不妨连接就这个题目连接指点我一下,呵呵。其余我仍旧想夸大一下,写这篇作品并不是为了给大师做教程,而是蓄意大师看到我做这个游戏傍边从安排到结果实行的安排思绪及编制程序本领,而我做这个游戏也只是是为了进修一下.net 罢了,以是我蓄意大师能给我提出品评看法,而不是看成什么风行来读。我也须要进修,也须要普及本人的程度,这也即是纵然我对rose不是很熟习但我仍旧勇于自暴其短把我画的uml图贴出来,我不是做典型,而是在展现本人的进修功效,而且我想我所生存的题目大概即是大师入门uml时最大概犯的缺点,即使经过对那些题目的计划不妨给我或其余入门uml的人有所扶助,那是最理念然而的事了。我蓄意大师能指出这篇作品中的缺点或不对理的场合,大师共通超过,其余那些和步调安排及源代码无干的题目就不在咱们计划的范畴之内,以是,请报告我干什么错,错在何处,精确的该当是还好吗,而不是不过大略的说我错了或指责我某上面的程度,那不是一种好的计划办法。 言归正传,连接昨天的题目。经过方才的类图不妨看到有两个前方类安排中没提到的类:cardnotfoundexception和cardalreadyexists类,这两个类都是从system.exception类接受来的,是自设置特殊类。简直代码如次:cardnotfoudexception.csusing system;namespace bigeagle.games.cards{/// <summary>/// 未找到指定card东西特殊/// <br>author: bigeagle</br>/// <br>date: 2002/4/19</br>/// <br>history: 2002/4/19</br>/// </summary>public class cardnotfoundexception : system.exception{/// <summary>/// 牌东西/// </summary>private card m_objcard ;/// <summary>/// 存取牌东西的属性/// </summary>public card thecard{get{return this.m_objcard ;}set{this.m_objcard = value ;}}/// <summary>/// 结构因变量/// </summary>/// <param name="a_objcard">未找到的牌东西</param>public cardnotfoundexception(card a_objcard){this.m_objcard = a_objcard ;}/// <summary>/// 重载结构因变量/// </summary>/// <param name="a_objcard">指定的牌东西</param>/// <param name="a_strmessage">动静,挪用父类结构因变量运用</param>public cardnotfoundexception(card a_objcard , string a_strmessage):base(a_strmessage){this.m_objcard = a_objcard ;//base(a_strmessage) ;}}//end class}//endnamespacefile : cardalreadyexistsexception.csusing system;using bigeagle.games.cards ;namespace bigeagle.games.cards{/// <summary>/// cardalreadyexistsexception 的纲要证明。/// </summary>public class cardalreadyexistsexception:system.exception{/// <summary>/// 已生存的牌/// </summary>private card m_objcard = new card() ;/// <summary>/// 存取牌的属性/// </summary>public card thecard{get{return this.m_objcard ;}set{this.m_objcard = value ;}}/// <summary>/// 结构因变量/// </summary>/// <param name="a_objcard">牌东西</param>public cardalreadyexistsexception(card a_objcard){this.m_objcard = a_objcard ;}/// <summary>/// 重载结构因变量/// </summary>/// <param name="a_objcard">牌东西</param>/// <param name="a_strmessage">动静,父类用</param>public cardalreadyexistsexception(card a_objcard , string a_strmessage) : base(a_strmessage){this.m_objcard = a_objcard ;}}//end class}//end namespace这两个类很大略,一个是牌未找到特殊,另一个是牌仍旧生存特殊。断定不必我证明大师也能看懂(独一须要提防的是这两个类结构因变量中有个挪用父类有参结构因变量的用法,即使不太熟习的话不妨看一下关系教程。),那么,干什么要设置这两个特殊类呢,干什么不径直抛出一个普遍的exception大概简洁等体例本人来处置呢?说到这边,我想贯串上述题目讲一下相关特殊的题目,重要因为是在不少伙伴的代码里看到有太多的缺点运用特殊或简洁忽视特殊的题目。干什么要运用特殊以及怎样运用特殊教科书里都有,我就不复赘述了。此刻我要说的是干什么要自设置特殊。一个比拟老练的软硬件名目中,缺点处置的代码该当占很大比率,最蹩脚的运用特殊的本领即是在本人的本领中增添一个空catch子句大概简洁不理他,不处置特殊会形成很多题目。既是要处置特殊,那就要对准各别的特殊来确定各别的处置本领,而不许大略的捕获一个exception,这也即是干什么要自设置特殊类的因为。举个大略的例子(仍旧对于扑克牌牌的),比方说咱们此刻要天生一副牌而后生存到数据库中,而且诉求这副牌中不许有沟通的两张牌,即使不过大略的捕获一个exception东西,那你在后边的尝试纠错中很难径直定位堕落的因为,而即使辨别捕获各别的特殊,那不妨获得充分的可用来尝试纠错的消息。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.