自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shyleoking的专栏

http://t.sina.com.cn/shyleoking

  • 博客(212)
  • 收藏
  • 关注

原创 Enum:枚举

枚举 (enum) 是值类型的一种特殊形式,它从 System.Enum 继承而来,并为基础的基元类型的值提供替代名称。枚举类型有名称、基础类型和一组字段。基础类型必须是一个内置的有符号(或无符号)整数类型(如 Byte、Int32 或 UInt64)。字段是静态文本字段,其中的每一个字段都表示常数。同一个值可以分配给多个字段,出现这种情况时,必须将其中某个值标记为主要枚举值,以便进行反射和

2009-07-30 21:38:00 5025

原创 Random:随机值的处理:发牌游戏

伪随机数是以相同的概率从一组有限的数字中选取的。所选数字并不具有完全的随机性,因为它们是用一种确定的数学算法选择的,但是从实用的角度而言,其随机程度已足够了。Random 类的当前实现是基于 Donald E. Knuth 的减随机数生成器算法的,它提供我们产生随机的整数、双精度随机数和字节随机数。 以下是模拟投掷硬币两面的代码,需注意的是:Next产生的是从第一个参数开始,无限的趋向第二

2009-07-30 21:38:00 1668

原创 ArrayList:可变数组

数组用于定义长度不变的集合,但是在实际的处理过程中,我们往往对集合的大小并不确定,因此在实际的开发工作中,我们更多的需要处理集合元素。ArrayList是一个可变数组,其变在于两点: 集合的大小可变 集合中存放的数据类型可变 我们看以下的代码案例: System.Collections.ArrayList list = new System.Collections.ArrayList

2009-07-30 21:38:00 2310

原创 Hashtable:仅有两列的表

Hashtable集合和ArrayList、Stack和Queue都不一样,该集合可用看作是一个仅有两列的表格,第一列是键,存放的是唯一不可重复的值。第二列是值,随便放什么都可以。由于Hashtable这样的特征,所以这个集合不适合放置顺序的值,却可以放置些能被唯一标识的值。比如以下代码说明了这个现象: System.Collections.Hashtable phoneBook = ne

2009-07-30 21:38:00 1159

原创 Stack和Queue:后进先出和先进先出

Queue是先进先出的集合而Stack是后进先出的集合。这两个集合在日常的工作中也经常会用到。Queue相当我们去银行柜台排队,大家依次鱼贯而行。Stack象我们家中洗碗,最后洗好的碗叠在最上面,而下次拿的时候是最先拿到最后叠上去的碗。了解了这样场景,就很容易明白Stack和Queue可用在哪里了。 比如我们为医院作一个排队叫号的系统,那肯定是选择Queue对象处理。如果我们要为出牌或下棋准

2009-07-30 21:37:00 25802

原创 Array:一组数据的有序集合

数组是一种数据结构,它包含若干相同类型的变量。数组的定义是:在内存中连续开辟的空间,该空间中存储着一组相同数据类型的值。 数组具有以下属性: 数组可以是一维、多维或交错的。 数值数组元素的默认值设置为零,而引用元素的默认值设置为 null。 交错数组是数组的数组,因此,它的元素是引用类型,初始化为 null。 数组的索引从零开始:具有 n 个元素的数组的索引是从 0 到 n-1。

2009-07-30 20:38:00 1488

原创 从一个帖子看部分大学生的学习心态

网上看看帖子有很有意思的事情,在很多情况下可以权当社会调查。这次看看这个帖子LZ说:我是刚进大学不久的一个学生,立志要学好计算机,昨天看到Google上李开复给学计算机学生的建议时说大学期间至少要编10万行代码?我算了算,就算每天100行,也要3年多,我们现在科比较多,有时候好几天也没写过几行代码,感觉完成李老师说的有点难度啊,现在学的东西,感觉什么也做不了,我想问问大家在大学期间大

2009-07-05 08:38:00 1050

原创 结构化编程的三重境界:见山还是山:朴素又正确的逻辑

在上述的隔夜退房的逻辑代码中,我们用了五个嵌套,其中有五个计算,但实际上只有3种不同的计算,在这样的模式下,我们值得思考,是不是代码过于冗余了。 现在我们把隔夜代码改为如下  CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/

2009-06-21 09:38:00 1075

原创 结构化编程的三重境界:见山不是山:正确但冗余的逻辑

因此我们了解到,我们需要更加精确的判断时间的界限。因此我们重新将代码改为如下:  CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->static void Main(string[] args){    DateTime ind

2009-06-21 09:38:00 1375

原创 结构化编程的三重境界:见山是山:朴素的直观逻辑编程

《五灯会元》卷十七中,有一则青原惟信禅师的语录:“老僧三十年前未参禅时,见山是山,见水是水。及至后来亲见知识,有个入处,见山不是山,见水不是水。而今得个休歇处,依前见山只是山,见水只是水。”这描述了我们对世界的一个观察和思考的过程,只要我们对事物进行执着的观察和思考,那在认识事物的过程中总是会经过以上的三个不同的过程和境界。我们在本节,将通过一个案例描述作为程序员应如何对待结构化编程的思

2009-06-21 09:38:00 1144

原创 数据类型转换:1人民币+1美元=?

数据类型转换是我们从小学就开始学习的内容,只不过在小学我们称为单位换算。比如一条狗加一匹马等于是多少呢?总不是两条狗或两匹马吧。我们需要把单位转为都可以计算的单位,比如动物。结果就是两只动物。这样的转换,我们称为数据类型转换。在C#中数据类型转换又分为隐式转换和显式转换。隐式转换是默认的转换,而显式转换就是必须明确说明的转换。比如¥1+$1的问题,在国际贸易结算中,默认将人民币转换为

2009-06-21 09:38:00 996

原创 值类型和引用类型和数据大小排名

在2.2.1我们对C#的基本数据类型有了基本了解。C#将数据类型分为:值类型、引用类型和指针类型。通用类型系统支持两种一般类别的类型,每一类都细分成子类别: q        值类型:值类型直接包含它们的数据,值类型的实例要么在堆栈上,要么内联在结构中。值类型可以是内联的(由运行库实现)、用户定义的或枚举的。有关内联值类型的列表,请参见 .NET Framework 类库。q  

2009-06-21 09:38:00 950

原创 异常:Exception

我们开发了函数,当函数的调用者在使用函数的时候,我们希望函数的调用者可以正确的使用函数,比如给予函数正确的参数值。但在实际的过程中,函数的调用者可能由于各种原因给予了错误的值。在这种情况下,我们需要向调用者抛出错误信息,并中断程序的执行,这个过程我们称为异常。程序必须能够统一处理在执行期间发生的错误。公共语言运行库提供了一个模型,以统一的方式通知程序发生的错误,从而为设计容错软件提供了极

2009-06-21 09:38:00 2290

原创 模块化编程:函数定义

在软件开发的过程中,我们经常会重复的使用一些代码片段,因此我们往往将这样的代码片段作为函数进行调用。函数有4种模式的定义和使用q        有参数,有返回值:y=f(x)q        有参数,无返回值:f(x)q        无参数,有返回值:y=f()q        无参数,无返回值:f()在游戏、图形、建筑领域的软件应用中,我们经常需要计算几何图形的面

2009-06-21 08:38:00 1487

原创 结构化编程:跳转控制break、continue

在循环或条件判断执行中,我们有时候需要中断当前的执行控制,C#提供了两个关键字break、continue。continue是用在循环语句中,将控制权传递给它所在的封闭迭代语句的下一次迭代。break 语句用于终止最近的封闭循环或它所在的 switch或if 语句。控制传递给终止语句后面的语句(如果有的话)。  CodeCode highlighting produced

2009-06-21 08:38:00 1373

原创 结构化编程:确定迭代循环控制for

很多时候的重复执行,是我们知道需要执行多少次。比如那道高斯经典的从1加到100的题目,用代码模拟高斯的同学的计算模型为如下 CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->static void Main(string[] arg

2009-06-21 08:38:00 827

原创 结构化编程:不确定迭代循环控制do while

很多时候,我们需要重复的执行一些代码,这样我们就需要迭代循环控制。以下案例描述了如何控制重复的执行。假设,你购买房子的首付需要30万人民币,你入职工作的第一年,每月工资是3500,以后每年薪水增长20%。你是一个很有计划的人,无论薪水多少,你都将收入的一半存起来。那么,你需要多少年可以存到你需要的首付呢? CodeCode highlighting produced by Act

2009-06-21 08:38:00 948

原创 结构化编程:多支条件判断switch case

有些条件判断并非简单的真假模式,而是在多种可能中选择一个处理。这种情况,我们需要使用switch case语句进行处理。以下是对上海地铁自动售票机的模拟 CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->static void 

2009-06-21 08:38:00 3916

原创 结构化编程:单支条件选择控制

在C#中,用于处理条件选择的语句有if, else, switch, case四个关键字。if, else用于处理单支的逻辑判断。以下代码演示根据age(年龄)的值输出信息: CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--

2009-06-21 08:38:00 670

原创 结构化编程:变量,常量和赋值

结构化程序设计(structured programming)是以模块功能和处理过程设计为主的详细设计。其概念最早由E.W.Dijikstra在1965年提出的,是软件发展的一个重要的里程碑。它的主要观点是采用自顶向下、逐步求精的程序设计方法,使用三种基本控制结构(顺序、选择、重复)构造程序。任何程序都可由这三种基本控制结构构造 。程序从主程序(Main)入口开始,逐行顺序执行,当遇到选

2009-06-21 08:38:00 1592

原创 理解标准输出流方法:WriteLine和Write

 控制台项目,Visual Studio 2008默认的为我们建立了Program.cs文件,并且在该文件中创建了一个Program的类(class),你应该看到大致如下的代码界面 CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-

2009-06-21 08:38:00 3439

原创 什么是编程?什么是软件开发?

  在学校里,为了实现课堂练习,为了完成作业,为了实现而实现的代码过程,我将其定义为编程,这个时候,你只要正确的让编译器把你的代码顺利的编译通过,输出你希望的或者说你的导师希望的结果即可,你不需要考虑弹性、扩展性和维护性,也不需要考虑你的代码是否强壮,也不需要考虑是否具有价值,因为你只是在编程。而软件开发,是使用代码编写出具有商业质量的软件,在这个过程中,你需要仔细的考察你的每行代码

2009-06-21 08:38:00 2421

原创 基础、理论、实践、实战

上周和文正的同学交流,忽然发现原来很多同学对“基础、理论、实践、实战”四个概念有理解错误呢。基础是完成技能的必要性训练,一些简单的,重复的,但在以后的实战中需要大量运用的,这些内容叫基础。比如对类型的正确认识,代码结构的无差错处理等。实践是指在基础之上,通过短小的模块训练,学习掌握并熟练运用技能的练习。你在这个实践的过程中,能发现自己原先基础还很薄弱的地方,能加强你测试和调试的能力。

2008-12-28 14:38:00 1636 1

原创 在51JOb上找工作

一直听说网上是java的工作职位比C#的多的多,我今天晚上做了一个测试,看看两者的数据。测试的平台51JOB我选择上海的区域,关键字选java,出现的结果是一年以上491二年以上868三年以上993五年以上422然后我输入C#,出现结果是一年以上228二年以上545三年以上490五年以上128两者一对比,吓我一跳,这个对比也太悬殊了吧,但我马上就反应过来了,哈哈,是分

2008-12-27 22:39:00 1391

原创 如果再回到从前

闲来无聊,在天涯行走,看到一个帖子“我要回到1997年了,真是舍不得你们”,一看标题,就基本的可以武断为是搞笑帖子,估计有心情留言的也就叫LZ记下彩票号码,或者06年买房,07年买股票,08年作外汇。但看了几个回帖后,开始控制不住的继续往下看了,被感动了。在我看到的大部分回帖中,都没有我这样的俗气,猜猜大部分人想什么?“好好学习,考个好大学,远离网游,不要因为一时的低落而放弃自己”。

2008-12-27 09:39:00 892

原创 为什么就业难,因为信息化的威力

最近几年,连续性的就业难,如果要吧就业难怪到经济危机,那也是人云亦云,看问题不够全面。自古以来,随着技术的发展,原先的传统性的职业必然的要消亡。比如吧:当年汽车开始面世的时候,马车系列工作(马车夫、养马的、制作马车的等等)都失业了,当时在英国也和我们一样的掀起一场巨大的风波。最终呢?有部分人明白,谁抢了我的工作,我就去学习谁。很多马车夫去学习开汽车,造马车的开始去汽车工厂作学徒,喂马的开始学习

2008-12-02 13:39:00 878 2

原创 使用泛型和反射,打造我们的完美实体基类(全文)

使用泛型和反射,打造我们的完美实体基类  背景 我在开发的过程中,实体和数据库的访问是一直要接触和编写的代码,考虑到团队中初学者比较多,我一直希望有一种方式可以改善目前编码的困境:ADO.Net的代码对于初学者来讲比较麻烦,需要他们更多的对ADO.Net有所了解。将数据库的值为实体属性赋值是一个比较繁琐的过程,程序员容易厌倦这个重复工作,或数据类型,或属性名称的赋

2008-11-19 16:39:00 3027 2

原创 三、定义主从实体基类

三、定义主从实体基类 定义主从实体基类的原因是我希望在类的定义时,可以很明确的了解类之间的主从关系。   3.1定义主表基类  定义PrimaryDataEntityBase

2008-11-19 15:39:00 1672

原创 2.8使用EntityBase

2.8使用EntityBase    返回单个实例对象 /// /// 按指定的名字返回城市对象 /// /

2008-11-19 14:39:00 2929

原创 二、打造实体基类

 二、打造实体基类  关系型数据表中一般有共性的部分是所有的实体都有ID(但ID的类型不一样),很多业务表都有主从的关系。  2.1表定义 比如下面的表  City定义

2008-11-19 14:39:00 2006

原创 使用我们的DataProvider

1.8使用DataProvider   使用DataProvider(Select) DataProviders.IDataProvider provider = CreateDataProvi

2008-11-19 12:39:00 3409

原创 一、打造DataProvider

一、打造DataProvider ADO.Net的封装已经有很多的实现了,但我总感觉那些实现还是没有透明化使用者对ADO.Net的了解。比如说很多人推崇的Enterprise Library的DataAccess,我认为就是封装不够彻底。我理想中封装彻底的ADO.Net对象是,使用者不需要(或尽可能的少)了解任何,而DataAccess还是需要使用者直接的处理很多ADO.Net的对象

2008-11-19 12:39:00 7581 1

原创 纸上得来终觉浅,绝知此事要躬行

有一种学习态度,我非常的不欣赏。往往有很多同学喜欢“听”课,对,仅仅是听,他参与的课程目的是知道,或者说是“有所耳闻”。他们抱有一种观点或态度就是:我知道啦,我了解了,但从来不愿意花精力去实现下,软件开发是一种实用技术,不是玄学,是需要参与者自身体验过程的一种经历。如果你不是亲自的编写下代码,而仅仅是看人家的代码,那你永远不知道你是不是真的能写出你所认为你知道的代码。要正确的让软

2008-10-15 23:39:00 1533

原创 有想象力才有进步

想象力是在你头脑中创造一个念头或思想画面的能力。在创造性想象中,你运用你的想象力去创造你希望去实现的一件事物的清晰形象,接着,你继续不断地把注意力集中在这个思想或画面上,给予它以肯定性的能量,直到最后它成为客观的现实。想象力的伟大是我们人类,能比其他物种优秀的根本原因。因为有想象力,我们才能创造发明,发现新的事物定理。如果没有想象力我们人类将不会有任何发展与进步。作为软件工程师,想象力简

2008-10-15 22:39:00 1169

原创 无障碍学习和正反向循环

什么叫无障碍学习?华大锐志的理解是后续的学习必须建立在前期知识完全消化的情况下,才能保持学习的无障碍和连续性。我们原先在学习的读书过程,其实一直是有障碍学习,在没有消化和理解前期的知识下,对后续的课程其实已经完全不能掌握,所以很多人在大学的4年是混过来的。混的根本原因是,从某一天开始,他的学习情况就进入了有障碍学习,而这些看似非常小的障碍到了他毕业的那天,已经累积成不可逾越的高墙了,这时候他

2008-10-15 21:39:00 1377

原创 宁静致远 厚积薄发

“宁静致远 厚积薄发”这是两句话。宁静致远来自出自诸葛亮的《戒子篇》: 夫学须静也,才须学也。是求学的道理:心境要宁静才能求学,才能要靠学问培养出来。厚积薄发我却一直不知道出处。但厚积薄发是人生成功的奥秘:无论什么励志方法,奋进技巧等等在这四个字下似乎是那么的微不足道。 任何一个人想要成功,总是需要有一段长时间的积累,等完成了这个历程,成功自然来临。在华大锐志的历来培训过程中,我们可

2008-10-15 20:39:00 3880

原创 涡轮五字诀

涡轮式培训的独特点是在短时间内,迅速的让参与学习的人将自己的技术能力提到数个等级。没有基础的人能完成非常扎实的职业基础,有基础的人能提高自己的技术水平。涡轮的五个要点是:尝试,理解,重现,提升或获取。有同学感觉这样解释不生动,前几天我上课的时候重新帮同学用更自然的语言定义了下:用:先学会用。改:然后要尝试着怎么改动代码以得到自己想要的效果。悟:再领悟代码和用途和含义。

2008-08-26 22:39:00 900

原创 善战者无赫赫之功,善医者无煌煌之名

我在BBS发表了一篇《汉书·霍光传》中的故事“曲突徙薪无功劳,焦头烂额为上客”。大致的意思非常简单:有一个过访主人的客人,看到(主人家)炉灶的烟囱是直的,旁边还堆积着柴草,便对主人说:“把烟囱改为拐弯的,使柴草远离(烟囱)。不然的话,将会发生火灾。”主人沉默不答应。不久,家里果然失火,邻居们一同来救火,幸好把火扑灭了。于是,(主人)杀牛置办酒席,答谢邻人们。被火烧伤的人安排在上席,其余的按照

2008-05-28 10:39:00 5685

原创 职场链

前天一位朋友用几乎悲愤的语气和我说:我再也不用没有经验的人了,浪费时间浪费钱。大有拉我去浇愁的气势,考虑到本人不胜酒力,我马上安慰他下次注意,并用红双喜把他熏的晕头转向。这是今年来,第二次有CEO级的朋友抱怨这个事情了。软件行业一直在持续发展是没有错,但涌入的大量资本迫使企业大力提高生产效率和自身竞争,说企业大量需要人也没有错,但企业需要的是符合现代软件开发的产业化人才,所以现在软件行业用人

2008-05-10 18:39:00 750 1

原创 关于委托的补充及多路委托的实现

上次我们讲解了委托的使用方式,那我们在什么时候需要使用委托呢?当使用事件设计模式时。当需要封装静态方法时(接口不允许描述静态方法)。当调用方不需要访问实现该方法的对象中的其他属性、方法或接口时。需要方便的组合。当类可能需要该方法的多个实现时。显然,我们的Order就属于是“当类可能需要该方法的多个实现时。”在以下情况中使用接口:当存在一组可能被调用的相关方法时。

2007-03-20 08:39:00 946

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除