C#
孟林-David.Meng
人要时刻冷静的客观看待自己
展开
-
再谈C#里4个访问权限修饰符
想必大家对这个四个修饰符都已经很了解了,但是我在这里还是要说,是为什么呢?因为每个人对它的理解不一样,我写出来对自己是个温故而知新,对大家是个分享,希望有什么不对的或需要谈论的地方大家指出来。C#里类及类成员的修饰符有以下五个如下:public 公开 类及类成员的修饰符 对访问成员没有级别限制private 私有 类成员的修饰符 只能在类的内部访问protected 受保护的 类成员的修饰符 只能在该类和该类的派生类中访问,不管该派生类和基类是否在同一程序集中internal 内部的 类及类成员的修饰符 访原创 2010-12-04 11:19:00 · 4142 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—6-out参数
out参数 out关键字与ref关键字很相似,out关键字也会导致参数通过引用来传递,与ref关键字不同,ref关键字要求变量必须在传递之前进行初始化,out关键字不要求变量在传递之前必须进行初始化,但是必须在方法中为变量赋值,如果使用out关键字,方法定义和调用方法都必须显示的使用out关键字 注意 1:如果在方法体中没有为out参数赋值,那么将无法编译 什么时候使用ou原创 2012-01-18 14:13:01 · 623 阅读 · 0 评论 -
C#温故而知新学习系列之XML编程—6-XmlSerializer类把复杂对象序列化为XML文档
前言 在上一文中我们讲了如何把对象序列化为XML文档,今天在这里我们讲一下如何把一个复杂对象序列化为XML文档。我们之前说过在创建一个实体类时,只要在该类的属性上加上自定义属性,XMLSerializer就可以读取这些属性,就可以将它们映射成XML元素和属性了。我们这里同样要用到这些原则。 思路 我们先看一下下面这张图,这张图是一家物流公司的接口文档,我们来看看它们这个XML文档原创 2011-12-30 16:36:31 · 1487 阅读 · 0 评论 -
C#温故而知新学习系列之XML编程—7-XmlValidatingReader类对XML文档验证
前言 XML文档验证是指表示这个XML文档是否符合规则,是否是个正确的XML文档,我们这里讲使用XmlValidatingReader类对XML文档验证,该类通过实现W3C建议所定义的有效性约束DTD,数据简化XDR,XML架构定义语言XSD验证服务。如果验证通过了证明这个XML文档是有效的,否则是无效的。 XmlValidatingReader类实现XmlReader类,并以只进的方原创 2011-12-30 16:37:02 · 704 阅读 · 0 评论 -
C#温故而知新学习系列之XML编程—8-XMLSerializer类把XML文档反序列化为对象
前言 之前我在一家电子商务公司做接口对接工作,同步快递公司给我们网站的订单数据,在这里我先给出快递公司给我的接口文档(见下图),我当时的做法是通过XmlDocument以及XmlElement,XmlNodeList等类去解析这个文档的,然后找到我要的数据更新至我们的数据库的,其实在这里有个更简单的做法,就是反序列化,把XML文档反序列化为对象。 实现步骤 一:X原创 2012-01-01 11:00:33 · 985 阅读 · 1 评论 -
C#温故而知新学习系列之面向对象编程—10-扩展方法
扩展方法 扩展方法是你能够向现有类型和自定义类型添加方法,而无需创建新的派生类型或者以其他方式修改原始类型 扩展方法是一个特殊的静态方法,它定义在一个静态类中,但是可以在其他类型(我们要扩展的那个类)的对象上像调用实例方法那样调用,因此通过扩展方法可以在不修改一个类的前提下对一个类进行功能上的补充 创建扩展方法 扩展方法和一般静态方法定义类似,惟一的区别是在第一个参数的前面原创 2012-02-19 00:35:52 · 496 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—11-自动属性
自动属性 当属性访问器中不需要其他逻辑时,自动实现的属性可时属性的声明变得更加简洁 创建自动属性 一旦在类中声明了自动属性,那么编译器将创建一个私有的匿名后备字段,但是这个私有字段只能通过属性的get和set访问器进行访问 自动属性必须同时声明get和set访问器,假如要创建只读的自动属性,必须在set访问器前加上privvate关键字 实例 using Sys原创 2012-02-19 00:37:51 · 530 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—13-类和结构的区别是什么?
类和结构的区别是什么? 结构和类的初始化都用new关键字,但是它们之间的差别很大,主要体现在三个方面 三点区别 1:结构是值类型,类是引用类型 2:结构不支持继承,类可以继承其他类,其自身也能被继承 3:结构没有构造函数和析构函数,类具有构造函数和析构函数每天学习一点点,每天进步一点点 用文字记录工作,用文字记录人生原创 2012-02-19 00:43:35 · 552 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—14-分布类是什么?
分布类 为了将在某种意义上讲比其他细节更重要的代码分离出来,可以将一个类的实现划分到多个C#文件中,这就是分布类,比如:有个Pesoon类的源文件叫 Pesoon.cs,有时候为了区分不同开发人员的维护范围,避免定义在同一个文件中造成互相干扰,C#通过分布类的做法,将一个类拆分为多个文件 partial class 类名称 { //类成员 } 如果使用这原创 2012-02-19 00:46:28 · 745 阅读 · 0 评论 -
C#温故而知新学习系列之.NET运行机制—1-.NET Framework概述及其组成
NET Framework .NET Framework简称.NET框架,该框架是微软公司推出的面向对象的软件开发与运行平台,.NET Framework具有两个组件,公共语言运行库(Common Language Runtime CLR)和.NET Framework类库(Class Library) 一:公共语言运行库(Common Language Runtime CLR原创 2012-02-19 00:50:32 · 1626 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—12-属性
字段 字段是存储类要满足其设计所需要的数据,字段是与类相关的变量 比如以前讲的Cat类中的private string _name;_name其实就是一个字段,它通常是类的私有变量 属性 属性是一个方法或者一对方法,但在调用它的代码来看,它是一个字段,即属性适合以字段的方式使用方法调用的场合 通常字段都是private,即私有变量,而属性是public,即公有变量,那原创 2012-02-19 00:39:51 · 571 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—15-对象初始化器
对象初始化器 对象初始化器,就是简化代码,让本来几行写完的代码,一行就写完了 使用对象初始值设定项,可以在创建对象时向对象的任何可访问的字段或属性分配值,而无须显示调用构造函数,其实对象初始化器最大的作用就是减少代码的书写量,把原本一些人做的事情交给了框架 举例 using System; using System.Collections.Generic; us原创 2012-02-19 00:47:22 · 576 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—16-析构函数
析构函数 析构函数是在类的破坏时自动执行的操作,析构函数在碎片收集时会自动调用,程序员无法控制何时调用析构函数,因为这是由垃圾回收器决定的 垃圾回收器 与运行时不进行垃圾回收的开发语言相比,C#无需太多的内存管理,这是因为.NETFramework垃圾回收器会隐式的管理对象的分配和释放,垃圾回收器检查是否存在应用程序不在使用的对象,如果垃圾回收器认为某个对象符合析构,则调用析构函原创 2012-02-19 00:48:30 · 566 阅读 · 0 评论 -
C#控件命名规则
Control Type Prefix ExampleButton btn btnOKGrid原创 2012-02-19 00:49:39 · 1040 阅读 · 0 评论 -
C#温故而知新学习系列之.NET运行机制—2-.NET中非托管代码是指什么?
在讲非托管代码这个概念的时候,我们先提几个涉及到的概念 我们“在解释执行和编译执行的区别?” 一文中讲到机器码的概念,机器码是指机器语言(machine language)是一种指令集的体系,这种指令集,称机器码(machine code),是电脑的CPU可直接解读的 CLR是.NET中的公共语言运行库,也就是说.aspx页面是通过CLR进行编译成dll文件的,因为aspx页面可以用C原创 2012-02-19 00:51:45 · 736 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—8-方法的重载
前言探讨 我们说过构造函数是对类进行初始化的,我们希望刚出生的小猫有个姓名叫“咪咪”,当它叫的时候,能说“我的名字叫咪咪”,此时就要用到构造函数了,如下代码没有加绿色代码的部分,但是问题来了?如果我们事先没有给小猫起好名字,那么就创建不了实例了,这种现象很正常,有些父母刚生下孩子的时候,姓名没有起好是很正常的事情,就以下的代码没有加绿色代码的部分,你如果写Cat cat = new Cat(原创 2012-01-18 14:14:45 · 532 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—5-ref参数
ref参数 不仅可以通过值为方法传递参数,还可以通过引用为方法传递参数,若通过引用为方法传递参数,需要使用ref关键字 如果把一个参数传递给方法,且这个方法的输入参数前带有ref关键字,那么这个方法对参数所作的任何改变都会影响原来对象的值 注意 1:通过ref传递的引用参数,在函数成员调用之前,必须已赋值,如果没有明确赋值会报错 实例 using System;原创 2012-01-18 14:12:20 · 542 阅读 · 0 评论 -
不得不提的事务处理
先说一下为什么要说到事务处理,实际上对于数据处理来说,对于数据库来说,整个程序开发发展到现在,任何程序任何项目都离不开数据处理,数据库,事务是一个非常重要的概念,不仅是ASP.NET当中甚至其他的编程语言编程环境当中,事务处理是一个非常重要的问题,也就是说事务处理本身是超脱于ASP.NET这个范围的; 1-有人问了什么是事务处理? 事务是一组组合成逻辑工作单元的数据库操作(所以看到这大家应该明白,事务是相对于数据库操作来的,事务本身是因为数据库的出现而出现的,为了对数据库操作过程中出现的问题而原创 2011-01-19 00:15:00 · 1880 阅读 · 0 评论 -
.NET四种注释规范
<br /> 不要小瞧注释,因为自己写的Code在很长时间后在修改时,可能连自己都记不得了,还有在其他人接手自己的Case的时候,也会造成阅读困难;<br /> .NET提供四种注释<br /> 一:类注释-在类的开始部分注释<br /> /*<br /> * 类说明<br /> * <br /> * <br /> */<br /> public class City<br /> {}<br /> 二:类属性注释-在类的属性前注释<br />原创 2011-02-17 13:18:00 · 746 阅读 · 0 评论 -
C#温故而知新学习系列之XML编程—1-XmlDocument类
前言 .NET的Framework的XML类提供了一个XML分析器对象XmlDocument,它是执行大多数XML操作的核心对象,在操作XML文档时,首先要定义一个XmlDocument对象,再将XML文档载入内存,最后对XML文档进行读写操作。 实例 如何获取我们想要的名称,性别以及年龄呢? 实现步骤 一:XML文件编写 XMLFile.xml原创 2011-12-20 17:06:26 · 446 阅读 · 0 评论 -
C#温故而知新学习系列之XML编程—3-Xml写入器XmlWriter类
前言 与XmlReader类相对应,.NETFramework也提供了一个以快速的,非缓存的,只向前的,动态写入XML数据的类即XmlWriter类,可以将XmlWriter类理解为与XmlReader类对等的类。 写入XML文档的步骤 为了写入属性,元素,需要调用一个WriteStrat()方法和WriteEnd()方法,在使用XmlWriter类的时候并不是简单的写入一个原创 2011-12-21 18:41:58 · 522 阅读 · 0 评论 -
C#温故而知新学习系列之XML编程—4-NET的DOM实现
前言 我们知道我们可以利用JavaScript来操作HTML的DOM结构,以便完成一些功能,同样在.NET中我们可以利用C#来操作XML的DOM结构来完成一些功能。下面我们就来举例说明一下。 实现步骤 一:XML文件编写 我以图书商城为例其中以我国著名的四大名著写了个XML文档图示如下 1.1 XMLFile1.xml 二:原创 2011-12-22 12:14:52 · 612 阅读 · 0 评论 -
C#温故而知新学习系列之XML编程—2-Xml读取器XmlReader类
前言 XmlReader类提供了对XML文档内容快速的,只向前的访问,但不适合对文档内容和结构进行修改,XmlReader从XML文档的顶部开始读取数据,每次读取一个节点 读取XML文档的步骤 1-使用XmlReader类的Create()方法创建该类的实例,并将XML文档名称作为参数传入方法。 2-建立一个循环调用Read()方法,逐节点读取整个XML文档,如果存在一原创 2011-12-21 18:36:43 · 766 阅读 · 0 评论 -
C#温故而知新学习系列之XML编程—5-XmlSerializer类把对象序列化为XML文档
前言 在XMLSerializer类中,包含了把对象序列化为XML文档和把XML文档反序列化为对象的方法,在创建一个类时,只要在该类的属性上加上自定义属性,XMLSerializer就可以读取这些属性,就可以将它们映射成XML元素和属性了。 在XMLSerializer类中,把对象序列化为XML文档用Serialize()方法实现,反序列化通过Deserialize()方法实现。原创 2011-12-27 11:23:57 · 732 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—1-定义类与创建类的对象
定义类 在C#中使用class关键字,一个名称,一对大括号来定义一个新类,类的数据成员和方法位于类的主体内(一对大括号之间) 类的语法格式 class MyClass { //类的主体 } 类修饰符 在定义类的时候可以在类的前面加上访问修饰符,类的修饰符用于控制被访问的范围,默认情况下,类的修饰符为internal 我们可以看到我们在类前面原创 2012-01-12 15:50:28 · 679 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—2-定义结构
定义结构 结构与类相似,主要区别在于,类是存储在堆上的引用类型,而结构是存储在堆栈上的值类型,以及访问方式和一些特征(结构不支持继承)。 在C#中使用struct关键字,一个名称,一对大括号来定义一个结构,也是使用new关键字声明实例。 结构的语法格式 struct MyStruct { //结构主体 } 实例 u原创 2012-01-12 15:50:59 · 515 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—7-构造函数
构造函数 构造函数又叫构造方法,其实就是对类进行初始化,构造函数与类同名,无返回值,也不需要void,在new时候调用 所有的类都有构造函数,如果你不写构造函数的话,系统默认生成空的构造函数,若你有自定义的构造函数,那么默认的构造函数就失效了,也就是说,由于你没有在Cat类中定义过构造函数,C#会生成一个空的构造函数Cat(),当然这个空的函数什么也不做,只是为了让能顺利的实例化而已原创 2012-01-18 14:14:00 · 555 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—9-静态方法
静态方法 定义静态方法和定义非静态方法类似,只是在定义静态方法时,需要在返回值类型前加static关键字,静态方法在程序启动的时候,系统就会为静态方法在内存中创建一个实例,不需要再手动去实例静态方法,通过类名可以直接调用静态方法,静态方法在内存中占有一定的内存空间。 在类中一旦定义了静态方法,那么就可以直接通过类名调用静态方法,并不需要实例化对象访问静态方法 实例 usin原创 2012-01-18 14:42:03 · 613 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—3-类的数据成员
类的数据结构 类是一种包括数据成员,函数成员,嵌套类型进行封装的数据结构 类包含的数据成员 构造函数,析构函数,常数,字段,属性,方法,事件,委托,类,结构,接口,索引器 数据成员可以是静态成员,即与整个类相关,也可以是实例成员,即与对象相关 字段是与类相关的变量,与声明变量的方式相同,字段在类中声明,变量则在主函数和方法中声明 实例 using Syst原创 2012-01-18 14:10:28 · 485 阅读 · 0 评论 -
C#温故而知新学习系列之面向对象编程—4-方法
方法 在C#中通过创建函数实现方法,方法是一个执行可以由对象和类完成计算或者行为的成员,方法通过指定访问级别,返回值,方法名称,方法参数,在类或者结构中声明的,这些部分统称为方法的“签名”,访问修饰符默认为private 方法格式 如果为方法传递参数,必须声明数据类型,如果方法有返回值,return必须与返回值一起使用以指明出口点 访问修饰符 返回值类型 方法名称 方法参数原创 2012-01-18 14:11:23 · 480 阅读 · 0 评论 -
C#温故而知新学习系列之.NET运行机制—3-.NET中托管代码是指什么?
托管代码 托管代码就是基于.NET元数据格式的代码,运行于.NET平台之上,所有的与操作系统的交换由.NET平台来完成,就像是把这些功能委托给.NET,所以称之为托管代码 由公共语言运行库环境执行的代码,而不是直接由操作系统执行的代码,托管代码应用程序可以获得公共语言运行库CLR的服务,例如自动垃圾回收,运行库类型检查,安全支持等服务,这些服务帮助提供独立于平台和语言的,统一的托管代码原创 2012-02-19 00:52:58 · 956 阅读 · 0 评论