博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

随笔分类 -  网络收藏《.net》

反正是我觉得还不错的东西就收藏起来了!
摘要:唉,网上到处找一圈,真是麻烦,自己结合别人写的,重新整理一个。 这个破玩意最大的作用就是写微信那种没法顺利断点调试的程序的时候,在需要的地方写日志,然后去查看。真是回到当年用DW4写php的年代了,可惜一点怀旧的喜悦都没有,有的只是慢慢的无奈using System.Collections.Gene... 阅读全文

posted @ 2015-07-15 18:30 天轰穿 阅读(3297) 评论(2) 推荐(2) 编辑

摘要:构造函数是在实例化对象时自动调用的函数。构造函数的名字不能随便起,它们必须与所属的类同名。除了名字外,构造函数的另一个特别之处是没有返回值类型,这与返回值类型为void的函数不同。构造函数用于初始化字段的值。在你可以访问一个类的方法、属性或任何其它东西之前,第一条执行的语句是包含有相应类的构造函数。甚至你自己不写一个构造函数,也会有一个缺省构造函数提供给你。如下。 //如果类没有显示的写构造函数,那么在实例化的时候//实际上系统会给这个类分配如下这样一个由CLR提供的构造函数 class Product { public Product(): base(){ } // 由CLR提供 } 小天: 阅读全文

posted @ 2012-12-28 13:47 天轰穿 阅读(729) 评论(0) 推荐(1) 编辑

摘要:老田:这就需要用属性了。而属性的使用和字段有很大的相似之处。如下例:创建Windows桌面应用程序;添加类Product,代码如下:using System;using System.Text;namespace _4_5_ProductManagr{ public class Product { ///<summary> ///商品名 这是VS能够认识的字段的注释方式 ///</summary> private string _name; // 价格 这种注释方式VS无法认识,也就无法提供智能提示 private decimal _price; // 颜色 priva 阅读全文

posted @ 2012-12-27 15:15 天轰穿 阅读(370) 评论(0) 推荐(0) 编辑

摘要:类成员老田:类中的所有成员都可以声明为public或private。具体什么情况下该用哪一种这个就必须从类的成员的主要用途来说了。不同的用途所要使用的访问修饰符也会有区别。下面我们就类中的成员来分别说下吧。类中的数据和函数称为类的成员。Microsoft的正式术语对数据成员和函数成员进行了区分。除了这些成员外,类还可以包含嵌套的类型(例如其他类)。函数成员提供了操作类中数据的某些功能,包括方法、属性、构造函数和析构函数、运算符以及索引器。方法是与某个类相关的函数,它们可以是实例方法,也可以是静态方法。实例方法处理类的某个实例,静态方法提供了更一般的功能,不需要实例化一个类(例如Console. 阅读全文

posted @ 2012-12-26 13:50 天轰穿 阅读(298) 评论(0) 推荐(0) 编辑

摘要:一点都不麻烦,它只是通过访问修饰符来控制的,我们昨天的例题中就用到过,public 就是一个,不过它的作用就是将成员完全公开出来。接下来我们看下全部访问修饰符。Public——允许任何人来访问。Internal——只要在同一个项目(不是解决方案)中均可访问。protected——继承时子类可以对基类有完全访问权。protected internal ——唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。private——只允许同一个类中的成员访问。例:做一个商品出售的Demo ,界面如图4-14 图4-14创建一个Products的类,在Products.cs中添 阅读全文

posted @ 2012-12-25 13:21 天轰穿 阅读(507) 评论(0) 推荐(0) 编辑

摘要:封装 小天:那是不是所有只要类中定义了的都会显示出来呢?老田:当然不是,C#可还有一个很重要的特性叫封装,通过这个机制,就可以控制那些被公开,那些私有了。这也就是我们前面看到的private、public这两个访问修饰符的功能了。但实际上访问修饰符还有几个,并不只是我们看到的这两个,下面分别来解释。为什么要封装 小天:等等,什么是封装,他和装箱、拆箱是什么关系? 老田:没有关系。装箱、拆箱我们在本书第二章中有讲到,自己去看。至于什么是封装,我们给你打个比方:“你去买一台笔记本,你只需要知道怎么开机,开关无线,屏幕是多大的,CPU多大频率,内存容量,硬盘容量等,至于数据如何被放到内存中,运算时如 阅读全文

posted @ 2012-12-24 14:03 天轰穿 阅读(291) 评论(0) 推荐(0) 编辑

摘要:继续回答你的第二个问题:VS为什么自己就知道并智能显示user._age和user._name?因为当我们实例化了一个类对象之后,这个对象所属的类所具备的属性和方法这个对象也就具备了,而我们之前类库中建立的User类也定制了年龄和姓名两个字段,还有一个user.GetUser()方法。第三个问题:为什么赋给user._age的值还要转换给INT32类型呢?我们在User类中定义的_age字段是一个INT类型,这里要给这个int类型的字段赋值,所以必须将窗体上接受到的string类型的字符串转换为int类型;第四个问题:为什么user.GetUser() 这个不和上面两个一样,多了个括号呢?调用 阅读全文

posted @ 2012-12-21 15:07 天轰穿 阅读(305) 评论(0) 推荐(0) 编辑

摘要:实例化就是创建对象的过程。使用new关键字可以建立类的一个实例,而我们这一句中小写的user 就是对象引用的名字。同理,我们还可以使用如下语法,实例化出更多的对象:User user = new User(); User user_a = new User(); User user_b; //创建对象引用 user_b = new User(); //创建对象这个前两句的意思是分别创建了user和user_a两个对象,第三和第四句是什么意思?对象与对象引用老田:这个问题我建议你再回去看下第二章关于引用类型的介绍。在第二章我们说到类是引用类型,而引用类型最大的特点是,申明变量其实只是创建了引用, 阅读全文

posted @ 2012-12-20 13:28 天轰穿 阅读(643) 评论(0) 推荐(0) 编辑

摘要:第一个问题:这一句就是使用我们刚才创建的oop_demo类库里面的User类实例化一个名为user的对象,注意两个user的大小写不同的。老田,如果每一次我们使用类库中的类都要写类库名字,那会不会太麻烦了?首先要说明的是,我们使用的并不是类库名字,而是User类的命名空间,不过它们恰恰同名。至于什么是命名空间下面马上就会讲到,现在只要知道如果两个类之间的命名空间不同,如果要使用的话就都必须引入命名空间。不过上面也多次说到,引用还可以使用using关键字在类的顶部添加对某个命名空间的引用,注意到图4-13的第9句,有了这一句就可以在使用时直接写类名了,再不用在类名前加上命名空间了。图4-13知道 阅读全文

posted @ 2012-12-18 13:29 天轰穿 阅读(776) 评论(1) 推荐(0) 编辑

摘要:我们就前面做的这个oop_demo类库中类的使用来做一个实例,然后进一步讲解吧。1. 因为目前解决方案中只有一个类库项目,还看不见解决方案名称,所以用vs2010左上角的【文件】菜单-【添加】-【新建项目】,如图4-10 图4-10完成后,第一件事就是为UserManager添加对oop_demo的引用。因为它们都在同一个解决方案中,可以以添加项目的方式添加。老田:接下来,可以直接在要使用该类库中某个类的文件上引用被引用类的命名空间。例如要使用4.2.3小节中创建的User类,首先得看该类的命名空间是什么。确认出User类的命名空间为oop_demo,有了这个信息之后,使用就比较明确了,看看怎 阅读全文

posted @ 2012-12-17 10:58 天轰穿 阅读(347) 评论(0) 推荐(0) 编辑

摘要:老田:首先我们要生成项目,有两种方式:1. 顶部菜单的【生成–生成oop_demo (这里是随你项目名字变化的,例如“生成XXXX”)】;2. 在资源管理器中的项目名称上面点鼠标右键–生成;点击生成后,可以看到生成的dll所在的具体位置,如图4-10图4-10接下来我们就该谈到如何引用这个类库了。之前一直都看到using引用。注意,引用其实应该分两次来说。首先是项目中必须已经引用了要使用的类库项目或者已经生成的类库文件(通常是dll文件,类库直接生成的也是dll文件)。然后第二次引用是指将要使用的类库引用到当前类中,这个时候使用using关键字。小天:这个会不会存在重复引用?换句话说,我在类文 阅读全文

posted @ 2012-12-14 13:17 天轰穿 阅读(697) 评论(0) 推荐(0) 编辑

摘要:小天:好难写啊,都不知道怎么开始。 老田:很简单,我们一个个的来分析。首先说商品这个类吧,因为没有特定的指定到底是那种商品,所以就抽出所有商品都有的共性。比如说商品名,商品价格,颜色(这个不一定都有,比如卖概念的)等等,还有很多你随便想就是了。想出这些特性后继续确定他们的数据类型。因为计算机表现出来的就是可描述的字符,所以商品名我们用string类型,价格用decimal类型。这些特性出来以后,接着就该想下商品的方法了。 小天:你不是说方法就是对象的动作嘛?这个商品哪里有动作呢?虽然汽车可以开,飞机可以飞。但是还是有很多商品不能动,比如电线杆、铁塔。 老田:我吐血。。。,你思维不要这么固化好不 阅读全文

posted @ 2012-12-13 13:39 天轰穿 阅读(1134) 评论(1) 推荐(0) 编辑

摘要:接下来,我们删除Class1.cs,重新创建一个 User.cs 类,在资源管理器中的项目名称上面点鼠标右键–添加–类[或者新建项] –在模板框中选择类–名称修改为 User.cs 。在创建这个类之前,我们首先要明白的是:创建类的过程实际上是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。类定义了每个类对象(称为实例)可以包含什么数据和功能。例如这个User类,我们假设只有用户名和年龄,而具体操作则是返回当前对象的详细信息,在类中代码如下:using System; //下面还有些引用的其它本类不必要的名称空间,被删除了namespace oop_demo{ public c 阅读全文

posted @ 2012-12-12 13:32 天轰穿 阅读(952) 评论(0) 推荐(0) 编辑

摘要:接着我们来说你最开始提出的那个关于提高用户体验的问题。根据你的描述,我们认为急需要修改的是当程序遇到错误之后不应该是直接中断,而是给出提示,并使得用户可以重新输入。在C#中错误和异常的解释是不一样的。异常是程序运行中发生的错误,异常处理是程序设计一部分。异常将导致不完善或者不需要的结果,因此在程序设计中需要处理异常。异常也可以是像"IndexOutOfBounds"(索引超过绑定)这样的错误,这个错误表示程序试图访问数组中不存在的元素;比如数组最大元素为100,当试图访问元素101时就将会发生这样的错误。但这些都是内建的异常,可以直接通过Exception基类处理,如果发生 阅读全文

posted @ 2012-11-27 14:12 天轰穿 阅读(461) 评论(0) 推荐(0) 编辑

摘要:所以最好的方式还是自己看帮助文档,也就是MSDN。要知道市面上所有关于.Net的书籍所描述的内容都是MSDN所包含了的。 不过因为MSDN只是一部包含全部知识点的帮助文档。所以它不存在任何的学习线路。当然,MSDN中也有很多完整的案例。可惜由于MSDN的超高耦合度,导致了很多人根本无法看懂。这就好比一个逛街狂去王府井逛街。本来计划好买一双鞋子,最后回家居然买了一大堆衣服、帽子、围巾。偏偏连双袜子、鞋垫都没有买到。 小天:那我有什么办法可以从一大堆知识中准确的找到我自己想要的东西呢? 老田:VS中提供了一个叫动态帮助的工具栏。这里随时显示你光标所在位置的相关帮助。如图2-2和图... 阅读全文

posted @ 2012-09-26 10:16 天轰穿 阅读(455) 评论(0) 推荐(0) 编辑

摘要:学C#编程和学其他技术有一个非常重要的区别。那就是如何快速的、随时随地的获取到帮助。 只有这点掌握好了,那么你无论学习还是以后的工作过程都会异常的轻松。 通常来说,获取帮助的途径有三条: 一是查看帮助文档(.net的帮助基本上都可以从MSDN中获取); 从搜索引擎上找答案; 像其他人求助; 后面两条都受很大限制,如果你能够上网,当然去搜索引擎找答案是很不错的选择。我记得我曾经说过一句话:"95%的问题在网上都有具体的解决方案,如果你找不到,那最大的可能是你没有用对方式或者不足够耐心。另外5%的答案可能是由于你的天才导致了别人都遇不到,偏偏你遇上了。" ... 阅读全文

posted @ 2012-09-25 09:23 天轰穿 阅读(963) 评论(0) 推荐(0) 编辑

摘要:在C#代码中,另一个常见的语句是注释。注释并不是严格意义上的C#代码,但代码最好有注释。注释就是解释,即给代码添加描述性文本 编译器会忽略这些内容(在本系列的Sql Server 2008书中也有详细讲到为什么要用注释)。在开始处理比较长的代码段时,注释可用于给正在进行的工作添加提示,例如在本书第一章中那两个实例中,我们自己写的代码上都写了注释。C#添加注释的方式有两种。可以在注释的开头和结尾分别放置"/*"和" */"标记,也可以如上一章实例中那样使用一个标记"//",不过使用这种方式的注释,是不能换行的哦。也就是说一个 // 符号 阅读全文

posted @ 2012-09-24 09:43 天轰穿 阅读(1264) 评论(0) 推荐(0) 编辑

摘要:特别要注意的一点是,C#代码是区分大小写的。与其它语言不同,必须使用正确的大小写形式输入代码,因为简单地用大写字母代替小写字母会中断项目的编译。 这个在第一章做的两个实例中,我们都提醒了多次。这里再次举个例,比如下面的代码 MessageBox.Show("小天天我来啦!"); 正确 messagebox.Show("小天天我来啦!"); 错误,messagebox大小写错误 MessageBox。Show("小天天我来啦!");错误。符号用的是全角 幸好,VS在代码的输入方面提供了许多帮助,在大多数情况下,它都知道(程序也知道)我们 阅读全文

posted @ 2012-09-24 09:41 天轰穿 阅读(558) 评论(0) 推荐(0) 编辑

摘要:控制台应用程序的主要展现形式是一个CMD窗口。普通的控制台应用程序在创建好以后也只有一个窗口和一个Program.cs文件是我们写代码的主要场景。 小天:新创建的控制台应用程序、Winform和WebForm应用程序中自动生成的那些代码都有什么用呢?我们可以随意修改不? 老田:这个问题涉及到很多东西,就现在所学的东西还无法全部说清楚,不过我们先用控制台应用程序来对C#类的代码框架做个简单的介绍,让你不至于茫然吧。 控制台应用程序的主要展现形式是一个CMD窗口。普通的控制台应用程序在创建好以后也只有一个窗口和一个Program.cs文件是我们写代码的主要场景。在本章后面的实... 阅读全文

posted @ 2012-09-24 09:35 天轰穿 阅读(932) 评论(0) 推荐(1) 编辑

摘要:与其它的语言的编译器不同,无论代码中是都有空格、回车或者tab字符等空格符,C#编译器都不考虑这些字符。 C#代码的外观和操作方式与C++和JAVA非常的类似。初看起来,其语法可能比较混乱,不像书面英语或者其它的语言,但是,在C#编程中,使用的样式是比较清晰的,不用花太多的力气就可以编写出可读性很强的代码。 与其它的语言的编译器不同,无论代码中是都有空格、回车或者tab字符等空格符,C#编译器都不考虑这些字符。这样格式化代码就有很大的自由度,但是遵循某些规则将有助于使代码更易于阅读。关于这些规则,参考本最后的"编写更高质量的代码"章节。 本文为天轰穿原著,转载请注明出处及. 阅读全文

posted @ 2012-09-21 09:36 天轰穿 阅读(844) 评论(0) 推荐(1) 编辑