摘要: 类作为面向对象特别是创建窗体程序的基础还需要包含一些其他的特征一、事件事件是一种使对象或类能够提供通知的成员。客户端可以通过提供事件处理程序为相应的事件添加可执行代码 事件有很多地方类似与委托他就像一个针对特殊用途的委托 注册到事件上的方法会在事件发生时被调用1.1.与事件有关的事项:1.触发事件 调用或触发事件当事件触发时所有注册到它的方法都会被依次调用 2.发布者 让事件被其他类或者结构可见并使用的类或者结构(定义事件的类) 2.订阅者 把事件和发布者关联注册的类或者结构 3.事件处理程序 注册到事件的方法可以在事件所在的类或者结构中或者在不同的类或者结构中事件包含了一个私有委托或者说他将 阅读全文
posted @ 2013-02-25 17:21 redher 阅读(150) 评论(0) 推荐(0)
摘要: 委托和类一样的实际上,"定义一个委托"是指"定义一个新类"。委托实现为派生自基类System. Multicast Delegate的类,System.MulticastDelegate又派生自基类System.Delegate。System.Delegate又是委托类型的基类(System.Delegate类本身不是委托是一个抽象类该类用于派生委托类型)委托类似于函数指针(在C中每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数)而委托是一个类型安全的函数指针他封装了函数的细节(返回值类型和 阅读全文
posted @ 2013-02-24 21:43 redher 阅读(178) 评论(0) 推荐(0)
摘要: 数组是一种包含若干变量的数据结构,这些变量可以通过计算索引进行访问数组中包含的变量(数组元素)具有相同类型,数组的元素可以是任意类型包括字符串和数组类型数组的秩表示和每个数组元素关联的索引个数又称为数组的维度。(秩为1的数组为一维数组等)数组的维度都有一个关联的长度为一个大于等于零的整数,数组中的元素总数是数组中各维度长度的乘积(索引值只能是0到N-1范围的整数N为维度的长度)System.Array类型是所有数组类型的抽象基类型。(存在从任何数组类型到System.Array的隐式转换)运行时System.Array类型的值可以是null或者对任何数组类型的实例的引用一、声明数组1.1.一维 阅读全文
posted @ 2013-02-24 15:42 redher 阅读(274) 评论(0) 推荐(0)
摘要: 转换是将一种类型的表达式可以被视为另一种类型。转换可以是隐式的也可以是显式的一、隐式转换1.1.隐式数值转换:对于内置的数值类型(包括整型浮点型decimal字符型等)可以从存储量小的隐式转换为存储量大的数值(根本上说是能存储更多细节的)例如int能隐式转换为long float double等(转换是注意无符号数 可以把无符号数根据规则隐式转换为有符号数而反过来不行) 特别的对于char类型它可以隐式转换成其他类型但不能由其他类型隐式转换(比如Byte不能隐式转换成char)需要强制转换1.2.隐式枚举转换:允许将十进制整数0转换为任何枚举类型1.3.隐式引用转换:·从任何引用类型 阅读全文
posted @ 2013-02-24 01:48 redher 阅读(222) 评论(0) 推荐(0)
摘要: 类是C#中的两种基本封装构造之一(另一个是结构),类是逻辑相关的数据和函数的封装,通常代表真是世界中的或概念上的事物。类包括数据成员和函数成员两项内容。其中数据成员用于存储数据包括字段和常量,函数成员用于执行代码包括方法、属性、构造函数、析构函数、运算符、索引和事件。(类中允许嵌套类)一、类定义类基础声明:<修饰符> class 标识符 : 基类,接口1,接口2,……修饰符说明abstract抽象类 于作为基类不能创建该类的实例,不能同时定义为sealed 抽象类中允许有抽象成员(不是必须的但有抽象成员的类必须为抽象类)internal访问修饰符 类只能从同一个程序集的其他类中访问 阅读全文
posted @ 2013-02-24 00:07 redher 阅读(212) 评论(0) 推荐(0)
摘要: 面向对象是一种编程思想,其思想上在于一切皆为对象。对象是现实世界的一种事物的映射它从类型中创建表示该类型的实例。类型和对象有区别类型是一类事物的模版集中了这类事物的通用属性,而对象是类型的实例是事物的一个个体。 一、封装 封装就是将抽象得到的数据和行为相结合现成一个统一的整体形成类其中数据和函数都是类的成员。 1.类:类是面向对象中最基础的封装类型,并且可以专门创建抽象类用于继承。类通... 阅读全文
posted @ 2013-02-23 14:48 redher 阅读(150) 评论(0) 推荐(0)
摘要: 一、流程控制语句1.条件语句:对条件进行判断并根据判断的结果来决定执行的方向1.1 if-else语句不同于C语言if后的逻辑表达式的返回值必须为boolean值不能是非0即真(可用三目运算符实现),if语句可以不接else语句也可以跟多个if-else语句,if语句块中只有一条语句可以不用大括号else同样但最好带上,1.2 switch语句完全可以用if-else改写但他可以简化代码量,switch后表达式可以是整型或者String,case子句定义与表达式进行比较的常量表达式以:结束,C#中case语句块中必须有break或者goto除非没有语句块,可以有default子语句用于表示不匹 阅读全文
posted @ 2013-02-23 01:16 redher 阅读(225) 评论(0) 推荐(0)
摘要: 一、运算符1.算术运算符:负责基本的算术运算以及递增递减运算符说明+加法运算或者正值运算-减法运算或者负值运算*乘法运算/除法运算~按位求补运算&求模运算++前置后置增量运算--前置后置减量运算2.赋值运算符:将一个值赋予一个变量运算符说明=赋值运算符+=a+=b等效于a = a + b-=a-=b等效于a = a - b*=a*=b等效于a = a * b/=a/=b等效于a = a / b%=a%=b等效于a = a % b<<=a<<=b等效于a = a << b>>=a>>=b等效于a = a >> b&a 阅读全文
posted @ 2013-02-22 22:07 redher 阅读(173) 评论(0) 推荐(0)
摘要: 一、变量1.变量定义的方法:datatype identifier; 例如 int i1;2.变量的初始化:变量在使用前必须进行初始化,使用未初始化的变量会报错对于方法中的局部变量必须显式初始化后才能使用对于类或者结构中的字段如果没有显式初始化(使用构造函数)则在new新对象后其值默认为03.类型推断:用var定义变量编译器会根据变量初始化的值来推断变量的类型var someThing = 0; //根据初始化0推断someThing的类型为int注意一旦被赋值推断出相应的数据类型后此变量的类型就不能再改变了4.变量作用域对于局部变量存在于表示声明该变量的块语句方法结束的封闭花括号之前的作用域 阅读全文
posted @ 2013-02-22 20:16 redher 阅读(301) 评论(0) 推荐(0)
摘要: 一、HelloWorld几乎所有讲授编程语言的书籍都是从HelloWorld开始已经成为一种习惯,我们也不例外。using System;using SC = System.Console;public class WelcomeC{ public static void Main(string[] args) { SC.WriteLine("HelloWorld"); }}二、分析程序1.using指令作用:1.using 命名空间\命名空间.类这样可以在程序中直接用命名空间中的类型或类中的方法2.using 别名 = 命名空间\命名空间.类这样可以个命名空间... 阅读全文
posted @ 2013-02-21 19:02 redher 阅读(1414) 评论(0) 推荐(0)