C#学习
文章平均质量分 77
Oneil_Sally
这个作者很懒,什么都没留下…
展开
-
排序总结
对数组排序的三种通用方法:交换排序Exchange选择排序Selection插入排序Insertion我们通过一叠扑克牌形象地理解以上三种方法。用交换方法对扑克牌排序时,把扑克牌摊在桌上,花色朝上然后交换顺序已乱的牌,直到一副牌都有序为止。 用选择方法对扑克牌排序时,把牌摊在桌上,把数值最小的牌抽出,放在手中。然后在剩余牌中再找到最小者,把其放在手中,如此继续到桌上无牌原创 2008-11-24 17:19:00 · 608 阅读 · 0 评论 -
(转帖)C#存取SQL Server数据库之一:二进制存取图片文件
创建项目1. 添加一个名为RWTest的表到 SQL Server MYTest 数据库。 表字段设置如下: a. 唯一标识字段名称为"ID",类型为Int。 b. 名称为"Description"的VarChar类型的字段,字段长度为50。 c. 名称为"ImgField" 的Image 类型的字段。 2. 启动 Vi转载 2008-08-23 01:41:00 · 733 阅读 · 0 评论 -
(转帖)Beginning C# Objects 抓住一个对象
3.4.2.1 封装(Encapsulation)封装(Encapsulation)是一个正式术语,表示将对象状态和行为绑到单一逻辑单元中的机制。理论上,对于某个特定学生,我们需要了解的情况,要么直接表现为对象的字段(field),要么间接表现为给出问题的答案或影响对象状态的方法(method)。封装不是OO语言所独有的,但从某种意义上说,被OO语言完善了。如果你熟悉C语言,会知道一个C转载 2008-08-23 01:15:00 · 609 阅读 · 0 评论 -
(转帖)C#中的异步调用
异步调用,在 C# 中可以使用这样的形式: public class TestClass { // 声明一个代理 public delegate void Test(); // 发送邮件信息 public PostEMail() { // ... } // 运行测试类 public TestRun() {转载 2008-08-23 00:36:00 · 467 阅读 · 0 评论 -
接口
一教师类实现了驾驶证接口IDriverLicense,则教师类实例t能否成功转为驾驶证接口IDriverLicenseif(IDriverLicense d=t as IDriverLicense){Console.write(“可以驾驶汽车”);}相当于驾驶证在车管所登记过。 二IAIB:IAClass C:IBIA IB接口有相同的方法。则I原创 2008-08-23 00:27:00 · 430 阅读 · 0 评论 -
(转帖)泛型
什么是泛型我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并代码了吗?泛型的出现就是专门解决这个问题的。读完本篇文章,你会对泛型有更深的了解。IList 是 C# 2.0 中转载 2008-08-23 00:15:00 · 500 阅读 · 0 评论 -
(转帖)小菜编程成长记(三 复制VS复用)
小菜:“我明白了,他说用任意一种面向对象语言实现,那意思就是要用面向对象的编程方法去实现,对吗?OK,这个我学过,只不过当时我没想到而已。” 大鸟:“所有编程初学者都会有这样的问题,就是碰到问题就直觉的用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程。这其实是用计算机的方式去思考,比如计算器这个程序,先要求输入两个数和运算符号,然后根据运算符号判断选择如何运算,得转载 2008-08-22 13:20:00 · 464 阅读 · 0 评论 -
(转帖)小菜编程成长记(一 面试受挫——代码无错就是好?)
小菜今年计算机专业大四了,学了不少软件开发方面的东西,也学着编了些小程序,踌躇满志,一心要找一个好单位。当投递了无数份简历后,终于收到了一个单位的面试通知,小菜欣喜若狂。 到了人家单位,前台小姐给了他一份题目,上面写着,“请用C++、Java、C#或VB.NET任意一种面向对象语言实现一个计算器控制台程序,要求输入两个数和运算符号,得到结果。” 小菜一看,这个还不简单,转载 2008-08-22 13:17:00 · 447 阅读 · 0 评论 -
白话C# 委托与事件 (转自Autumoon)
我们出去吃饭,总是喜欢去人多生意好的馆子,因为这样的馆子往往味道和服务都比较好,而那些生意冷清的馆子往往无人问津。生意好的馆子固然有其长处,但去这样地方就餐又总是需要先排队等位置,所以排号是比较流行的方式。当然,如果这家馆子的座位充足,就不需要排号,但是上菜又比较慢。无论怎样,如果厨房一时半会儿无法做好你的菜,那么你就只好耐心地等待,在这个时候你可以做自己的事情,跟朋友聊天、玩手机或者看美女,没有转载 2008-08-22 02:33:00 · 552 阅读 · 0 评论 -
(转帖)用C#创建SQL Server的存储过程
通常,开发人员使用的是T-SQL来创建SQL Server的存储过程、函数和触发器。 而现在的SQL Server 2005已经完全支持.NET通用语言运行时(CLR)了。 这就意味着,你可以使用.NET的语言,如C#、VB.NET之类的来开发SQL Server的存储过程、函数和触发器。 SQL Server 和 CLR 的集成给我们带来了n多好处,如实时编译、类型安全、增强的安全性以及增强的编转载 2008-08-23 01:49:00 · 676 阅读 · 0 评论 -
(转帖)我的软件经历
我在程序员的时候,我一开始追逐这个API怎么用,数据库SQL怎么写更优化,Dcom技术的细节 然后我发现我写出来的产品为了符合客户需求必须要大量修改,但是我的代码却粘在了一起 第一个感觉就是一个函数太长,一看就头痛,而且一个函数干了好多事。这些事本来可以一段一段的,每段写上注释,然后有意义命名,自己管理错误和内存,然后把这些函数连在一起 然后我作了这些: 1小函数 2写上注释 3有意义命名 4自己转载 2008-08-23 01:52:00 · 528 阅读 · 0 评论 -
(转帖)《扣开C#之门》定义C#的类
四、定义C#的类既然类类型是C#中最重要、最常见的类型,因此它是我要介绍的重点,实际上,C#中的许多特性都可以通过类类型来体现。前面已经介绍,一个类对象中,主要包括字段、属性和方法。不过除此之外,在类类型中还可以定义嵌套类,也可以定义一个常量。对于一个没有任何编程知识的初学者而言,也许还应介绍一下常量与变量。不过从它们的名字就可以非常清晰地辨明二者的区别,常量其值是不可改变的,而变量的转载 2008-08-23 23:38:00 · 601 阅读 · 0 评论 -
二叉树 陈广老师
6.2.2 二叉树的存储结构二叉树的存储可分为两种:顺序存储结构和链式存储结构。1. 顺序存储结构把一个满二叉树自上而下、从左到右顺序编号,依次存放在数组内,可得到图6.8(a)所示的结果。设满二叉树结点在数组中的索引号为i,那么有如下性质。(1) 如果i = 0,此结点为根结点,无双亲。(2) 如果i > 0,则其双亲结点为(i -1) / 2 。(注意,这里转载 2008-11-19 19:34:00 · 1398 阅读 · 0 评论 -
插入排序
插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。 本节介绍两种插入排序方法:直接插入排序和希尔排序。 直接插入排序基本思想1、基本思想 假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次转载 2008-09-23 11:39:00 · 844 阅读 · 0 评论 -
(转帖)简单明了的图片到数据库的存储
1private void btnSaveToDB_Click(object sender, EventArgs e) 2{ 3 SqlConnection conn = new SqlConnection(@"data source=MICROSOF-D0EE36;uid=sa;pwd=freebsd;database=test"); 4 conn.Open(); 5 SqlComman转载 2008-09-01 14:43:00 · 604 阅读 · 0 评论 -
(转帖)数据库封装类
1using System; 2using System.Collections.Generic; 3using System.Text; 4using System.Data; 5using System.Configuration; 6using System.Data.Common; 7using System.Data.SqlClient; 8using System.Dat转载 2008-09-01 14:41:00 · 701 阅读 · 0 评论 -
(转帖) 设计模式随笔-从“有病”说起(工厂模式前传)
十年前,我有一个很有钱的朋友,他家有三辆汽车(VOLVO(沃尔沃)、BENCH(奔驰)、MAZDA(马自达)),还雇了司机为他开车。不过,这个人上车后跟司机说的话取决于他坐的车:当他坐上VOLVO后,会跟司机说“开沃尔沃车!”,坐上BENCH后他说“开奔驰车!”,坐上MAZDA后他说“开马自达车!”。大家猜这个人怎么着?.....有病!其实我这个朋友叫“C”。注:我对C一直很虔诚,上大转载 2008-08-29 13:37:00 · 722 阅读 · 0 评论 -
(转帖)《解剖PetShop》系列之四 PetShop之ASP.NET缓存
PetShop之ASP.NET缓存 四 PetShop之ASP.NET缓存如果对微型计算机硬件系统有足够的了解,那么我们对于Cache这个名词一定是耳熟能详的。在CPU以及主板的芯片中,都引入了这种名为高速缓冲存储器(Cache)的技术。因为Cache的存取速度比内存快,因而引入Cache能够有效的解决CPU与内存之间的速度不匹配问题。硬件系统可以利用Cache存储CPU访问概率高的那转载 2008-08-24 00:48:00 · 430 阅读 · 0 评论 -
(转帖)解决方案、项目、程序集、命名空间
《叩开C#之门》系列之一前言:表弟想要学编程,我推荐他学习.Net和C#。这一推荐不打紧,我却承担上了指导的职责。我又出差在外,直接辅导是不行了,通过邮件也太麻烦。推荐了几本书,可惜他太菜了,总有无从下手的感觉。推及他人,在初学C#时,是否也有这样的感觉呢?所以,就有了这个系列文章。表弟是我把他带入计算机行业的,当初什么都不懂,我曾经打开计算机机箱,指点他哪里是硬盘、哪里是内存,是CPU,转载 2008-08-23 23:28:00 · 539 阅读 · 0 评论 -
(转帖)《解剖PetShop》系列之一 PetShop4.0的系统架构设计
《解剖PetShop》系列之一前言:PetShop是一个范例,微软用它来展示.Net企业系统开发的能力。业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来。这种争论不可避免带有浓厚的商业色彩,对于我们开发人员而言,没有必要过多关注。然而PetShop随着版本的不断更新,至现在基于.Net 2.0的PetShop4.0为止,整个设计逐渐变得成熟而优雅转载 2008-08-24 00:32:00 · 462 阅读 · 0 评论 -
C#多态
首先理解一下什么叫多态。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。多态性通过派生类覆写基类中的虚函数型方法或者抽象方法来实现。多态性分为两种,一种是编译时的多态性,一种是运行时的多态性。编译时的多态性:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。运行时的多态性:运行时的多态原创 2008-08-22 02:01:00 · 1309 阅读 · 1 评论 -
(转帖)《扣开C#之门》const、readonly和static
五、const、readonly和static在第四节中,我介绍了常量的定义,其关键字就是const。在定义常量时,必须赋予其初始值。一旦赋予了初始值后,就不能修改其值。也就是所谓的常量值不能更改的含义。由于C#是一门纯粹的面向对象语言,并不存在一个常量或者变量游离于对象之外,因此,这些定义,必然都是在一个类型内完成的。关于常量的使用,除了会用作一些算法的临时常量值以外,最重要的是定义一些转载 2008-08-23 23:39:00 · 630 阅读 · 0 评论 -
(转帖)《扣开C#之门》对象的封装与C#的类
三、对象的封装与C#的类面向对象思想有三个核心要素:封装、继承与多态。如能正确理解这三要素,那么基本上可以算是在编程中建立了面向对象思想。在第二节中我曾介绍,在C#中,所有数据类型的实例都是“对象”,不过最能体现对象特质的类型,还是“类”,同时它也是C#中最重要、最频繁使用的类型。接下来,我将通过介绍C#的类,来充分理解对象封装的概念。所谓“对象”,形象地说,我们可以把它理解为一块积木。设转载 2008-08-23 23:37:00 · 489 阅读 · 0 评论 -
(转帖)小菜编程成长记(九 反射——程序员的快乐!)
“到底如何去改良策略模式呢?”小菜恳切地问道。 “你仔细观察过没有,你的代码,不管是用工厂模式写的,还是用策略模式写的,那个分支的switch依然去不掉。原因在哪里?”大鸟反问道。 “因为程序里有下拉选择,用户是有选择的,那么程序就必须要根据用户的选择来决定实例化哪一个子类对象。无论是在客户端窗体类编程还是到工厂类里编程,这个switch总是少不掉的。问题主要出在转载 2008-08-22 14:06:00 · 449 阅读 · 0 评论 -
(转帖)小菜编程成长记(五 体会简单工厂模式的美妙)
次日,小菜再来找大鸟,问道:“你昨天说计算器这样的小程序还可以用到面向对象三大特性?继承和多态怎么可能用得上,我实在不可理解。” 大鸟:“小菜很有钻研精神吗?好,今天我让你功力加深一级。你先要考虑一下,你昨天写的这个代码,能否做到很灵活的可修改和扩展呢?” 小菜:“我已经把业务和界面分离了呀,这不是很灵活了吗?” 大鸟:“那我问你,现在如果我希望增加一个开转载 2008-08-22 13:26:00 · 431 阅读 · 0 评论 -
(转帖)小菜编程成长记(四 业务的封装)
小菜:“你的意思是分一个类出来? 哦,对的,让计算和显示分开。” 大鸟:“准确的说,就是让业务逻辑与界面逻辑分开,让它们之间的耦合度下降。只有分离开,才容易达到容易维护或扩展。” 小菜:“让我来试试看。” class Program { static void Main(string[] args) {转载 2008-08-22 13:21:00 · 528 阅读 · 0 评论 -
(转帖)小菜编程成长记(二 代码规范、重构)
大鸟说:“且先不说出题人的意思,单就你现在的代码,就有很多不足的地方需要改进。比如变量命名,你的命名就是ABCD,变量不带有任何具体含义,这是非常不规范的;判断分支,你这样的写法,意味着每个条件都要做判断,等于计算机做了三次无用功;数据输入有效性判断等,如果用户输入的是字符符号而不是数字怎么办?如果除数时,客户输入了0怎么办?这些都是可以改进的地方。” “哦,说得没错,这个我以前听老师说过,可是原创 2008-08-22 13:18:00 · 561 阅读 · 0 评论 -
(转帖)C#中的接口是如何工作的
本文中所有图示纯为个人理解(参考了Assembly中元数据的存储方式),与真实情况可能有所出入。 图中绿色表示公有方法,红色表示私有方法。本文将通过以下四个案例来分析C#中的接口究竟是如何工作的。1、公有方法实现接口方法尽管C#在定义接口时不用指明接口方法的访问控制方式,但默认接口方法均为public型(这可以从反编译的IL代码中看到)。下面是使用Reflector查看的接口IL代码.转载 2008-08-22 10:20:00 · 522 阅读 · 0 评论 -
转帖 C#编程之委托与事件(二)
C#编程之委托与事件(二) 我在上一篇文章(C#编程之委托与事件(一) )中通过示例结合的方法介绍了委托,在本文中,我同样以代码示例的方式来介绍C#里的事件机制。二、事件 1.了解概念 事件就是当对象或类状态发生改变时,对象或类发出的信息或通知。发出信息的对象或类称为"事件源",对事件进行处理的方法称为"接收者",通常事件源在发出状态改变信息时,它并不知道由哪个事件接收者转载 2008-08-22 09:31:00 · 481 阅读 · 0 评论 -
白话C# 多线程 (转自Autumoon)
多线程是程序员面试时常常会面对的问题,对多线程概念的掌握和理解水平,也会被一些老鸟用来衡量一个人的编程实力的重要参考指标。不论是实际工作需要还是为了应付面试,掌握多线程都是程序员职业生涯中一个必须经过的环节。其实当你把“多线程”和你的“职业生涯”联系在一起考虑的时候,就会觉得“多线程”是多么的渺小,对,没有跨越不过的山。不过就算它很渺小,但也有可能改变你的人生轨迹。不用担心,如果你对多线程还不太熟转载 2008-08-22 02:27:00 · 524 阅读 · 0 评论 -
白话C# 泛型(转自Autumoon )
泛型是C# 2.0版本才开始有的语言特性,不过“泛型”这个概念并不是最先出现在编程领域的,例如C++中的模板。List就是一个泛型应用。你可以在需要时声明一个强类型的List实例,然后随意地往里面添加、删除和查询同一类型的元素。泛型就是一个非常方便的数据结构,长期使用C#的朋友大多都常常用到泛型。本文就简单地通过创建自己的泛型类来介绍一下泛型,希望能够加深初学者对泛型(这个名字很奇怪的东西)的转载 2008-08-22 02:24:00 · 531 阅读 · 0 评论 -
(转帖)小菜编程成长记(十一 三层架构,分层开发)
“大鸟,我们继续讨论吧!”小菜很沮丧的说。 “小伙子,不会修收音机也是很正常的,没什么大不了的,用不着丧着一个脸。好象失恋一样,男人再强也要学会说‘不’。”大鸟安慰着说,“如果你的目标是要成为修理电器专家,那么你连收音机都不会修,那是很郁闷的事。但你现在的目标是什么?” “我想成为软件架构师,编程专家。”小菜毫不含糊的说。 “就是,你的人生目标很明确,别的方面转载 2008-08-22 14:14:00 · 423 阅读 · 0 评论 -
(转帖)小菜编程成长记(十二 无熟人难办事?——聊设计模式迪米特法则)
次日傍晚,小菜敲开了大鸟家的门。 “回来啦!怎么样?第一天上班感受多吧。”大鸟关心的问道。 “感受真是多哦!!!”小菜一脸的不屑一顾。 “怎么了?受委屈了吗。说说看怎么回事?” “委屈谈不上,就感觉公司氛围不是很好。我一大早就到他们公司,正好我的主管出去了不在公司。人事处的小杨让我填了表后,就带我到IT部领取电脑,她向我介绍了一个叫‘小张转载 2008-08-22 14:15:00 · 561 阅读 · 0 评论 -
转帖 C#编程之委托与事件(一)
C#编程之委托与事件(一) 本文试图在.net Framework环境下,使用C#语言来描述委托、事件的概貌。希望本文能有助于大家理解委托、事件的概念,理解委托、事件的用途,理解它的C#实现方法,理解委托与事件为我们带来的好处。C#是一种新的语言,希望大家能通过本文清楚地看到这些,从而可以对委托、事件等技术进行更深入的理解和探索。 一. 委托委托的本质 --在C#中,委托是一个特殊的转载 2008-08-22 09:28:00 · 609 阅读 · 0 评论 -
(转帖)《扣开C#之门》C#与面向对象编程语言
二、C#与面向对象编程语言C#是纯粹的面向对象编程语言,它真正体现了“一切皆为对象”的精神。在C#中,即使是最基本的数据类型,如int,double,bool类型,都属于System.Object类型。此外,使用C#编程,不会存在与游离于对象之外的属于过程的东西。因此,学习C#,就必须具有面向对象思想,不明白所谓的“面向对象思想”,就不可能掌握C#的精髓,而对于C#的理解,就只能仅限于语言特色转载 2008-08-23 23:35:00 · 500 阅读 · 0 评论 -
(转帖)面向对象设计原则
[转] 面向对象设计原则 一、单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。测试驱动的开发实践常常会在设计出现臭味之前就迫使我们分离职责。 二、开闭原则(OCP) 软件实体(类、模块、函数)应该是可扩展的,但是不可修改的。也就是说:对于扩展是开放的,对于更改是转载 2008-08-23 01:34:00 · 644 阅读 · 0 评论 -
ATA总结
动态链接库优点:1. 需要的时候才加载,节省内存2. 在线更新方便。附:可执行文件越小越好。类库和应用程序分几层是没有关系的。缺点:类库没有可执行界面,靠别人调用才能工作。依赖其他类库,实例化其他类,实例化,实例化…… 学好Petshop! Framwork处理计算机底层的东西,它已经处理好了,直接应用即可! 用户拿到数据库的原创 2008-08-23 01:01:00 · 991 阅读 · 0 评论 -
(转帖)小菜编程成长记(十三 有了门面,程序员的程序会更加体面!)
大鸟说道:“实际上没有学过设计模式去理解三层架构会有失偏颇的,毕竟分层是更高一级别的模式,所谓的架构模式。不过在程序中,有意识的遵循设计原则,却也可以有效的做出好的设计。” “不要告诉我,刚才讲的‘迪米特法则’就会在分层中用得上?”小菜说。 “当然用得上,否则讲它干吗,你当我是在安慰你而临时编个法则来骗骗你呀?来,再来看看你上次写的代码。” 1 private转载 2008-08-22 14:16:00 · 676 阅读 · 0 评论 -
(转帖)小菜编程成长记(十 会修电脑不会修收音机?——聊设计模式原则)
小菜学会了反射后,正在兴奋,想着大鸟的问题。此时,突然声音响起。 “死了都要爱,不淋漓尽致不痛快,感情多深只有这样,才足够表白。死了都要爱……” 原来是小菜的手机铃声,大鸟吓了一跳,说道:”你小子,用这歌做铃声,吓唬人啊!这要是在公司开大会时响起,你要被领导淋漓尽致爱死!MD,还在唱,快接!” 小菜很是郁闷,拿起手机一看,一个美女来的电话,由转,马上接通了手转载 2008-08-22 14:12:00 · 449 阅读 · 0 评论 -
(转帖)小菜编程成长记(八 用“策略模式”是一种好策略)
小菜次日来找大鸟,说:“《深入浅出设计模式》的第一章我看完了,它讲的是策略模式(Strategy)。『策略模式』定义了算法家族,分别封装起来,让它们之间可以互相替换, 此模式让算法的变化, 不会影响到使用算法的客户。看来商场收银系统应该考虑用策略模式?” “你问我?你说呢?”大鸟笑道,“商场收银时如何促销,用打折还是返利,其实都是一些算法,用工厂来生成算法对象,感觉是不是很怪?而最重要的转载 2008-08-22 13:59:00 · 449 阅读 · 0 评论