C#系列
文章平均质量分 86
Kalen_Chen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
委托(一)
委托委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示:public delegate int PerformCalculation(int x, int y);与委托的签名(由返回类型和参数组成)匹配的任何方法都可以分配给该委托。这样就可以通过编程方式来更改方法调用,还可以向现有类原创 2007-06-17 20:30:00 · 724 阅读 · 0 评论 -
类, 组和名称空间
类、组件和名称空间 内容:l 类的介绍l 静态成员与实例成员l 名称空间l 组件 类(Classes)l 类定义了一个“模板”,通过这个“模板”可以生成一个或多个对象l 类定义了一个对象的“状态”和“行为” 类的成员:属性:用于描述“状态”,保持“状态原创 2007-06-12 20:24:00 · 835 阅读 · 0 评论 -
对象、类和结构(七)
嵌套类型在类或结构内部定义的类型称为嵌套类型。例如:class Container{ class Nested { Nested() { } }}不管外部类型是类还是结构,嵌套类型均默认为private,但是可以设置为public、protected internal、protected、internal或private。在上面的原创 2007-06-15 12:53:00 · 711 阅读 · 0 评论 -
对象、类和结构(八)
静态类和静态类成员静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。 静态类类可以声明为static的,以指示它仅包含静态成员。不能使用new关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由.NE原创 2007-06-15 15:48:00 · 709 阅读 · 0 评论 -
对象、类和结构(六)
字段字段是包含在类或结构中的对象或值。字段使类和结构可以封装数据。为了简单起见,这些示例使用public字段,但是不建议这样做。字段通常应为private。外部类应当通过方法、属性或索引器来间接访问字段。字段存储类要满足其设计所需要的数据。例如,表示日历日期的类可能有三个整数字段:一个表示月份,还有一个表示年份。在类块中声明字段的方式如下:指定字段的访问级别,然后指定字段的名称。例如:原创 2007-06-12 11:36:00 · 637 阅读 · 0 评论 -
索引
索引器索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。在下面的示例中,定义了一个泛型类,并为其提供了简单的get和set访问器方法(作为分配和检索值的方法)。Program类为存储字符串创建了此类的一个实例。class SampleCollectionT>...{ private T[] arr = new T原创 2007-06-17 14:51:00 · 666 阅读 · 0 评论 -
事件(二)
如何:实现接口事件接口可声明事件。下面的示例演示如何在类中实现接口事件。接口事件的实现规则与任何接口方法或属性的实现规则基本相同。在类中实现接口事件在类中声明事件,然后在适当的位置调用该事件。public interface IDrawingObject...{ event EventHandler ShapeChanged;}public class MyEventAr原创 2007-06-18 16:09:00 · 861 阅读 · 0 评论 -
泛型(一)
泛型泛型是2.0版C#语言和公共语言运行库(CLR)中的一个新功能。泛型将类型参数的概念引入.NET Framework,类型参数使得设计如下类和方法成为可能:这些类和方法将一个或多个类型的指定推迟到客户端代码声明并实例化该类或方法的时候。例如,通过使用泛型类型参数T,您可以编写其他客户端代码能够使用的单个类,而不致引入运行时强制转换或装箱操作的成本或风险,如下所示:// Declar原创 2007-06-19 14:15:00 · 976 阅读 · 0 评论 -
属性(一)
属性属性提供灵活的机制来读取、编写或计算私有字段的值。可以像使用公共数据成员一样使用属性,但实际上它们是称为“访问器”的特殊方法。这使得数据在可被轻松访问的同时,仍能提供方法的安全性和灵活性。示例在本示例中,类TimePeriod存储了一个时间段。类内部以秒为单位存储时间,但提供一个称为Hours的属性,它允许客户端指定以小时为单位的时间。Hours属性的访问器执行小时和秒之间的转换。原创 2007-06-16 14:30:00 · 796 阅读 · 0 评论 -
委托(二)
何时使用委托而不使用接口委托和接口都允许类设计器分离类型声明和实现。给定的接口可由任何类或结构继承和实现。可以为任何类中的方法创建委托,前提是该方法符合委托的方法签名。接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢?在以下情况中使用委托:l 当使用事件设计模式时l 当封装原创 2007-06-17 21:29:00 · 641 阅读 · 0 评论 -
事件(一)
事件在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。发送(或引发)事件的类称为“发行者”,接受(或处理)事件的类称为“订户”。在典型的C# Windows窗体或Web应用程序中,可订阅由控件(如按钮和列表框)引发的事件。可使用Visual C#集成开发环境(IDE)来浏览控件发布的事件,选择要处理的事件。IDE会自动添加空事件处理程序方法和订阅事件的代码。事件具有以下特点:原创 2007-06-18 10:14:00 · 963 阅读 · 0 评论 -
对象、类和结构(五)
析构函数析构函数用于析构类的实例备注l 不能在结构中定义析构函数。只能对类使用析构函数l 一个类只能有一个析构函数l 无法继承或重载析构函数l 无法调用析构函数。它们是被自动调用的l 析构函数既没有修饰符,也没有参数 例如,下面是类Car的析构函数的声明:class Car{原创 2007-06-11 22:49:00 · 763 阅读 · 0 评论 -
对象、类和结构(四)
构造函数任何时候,只要创建类或结构,就会调用它的构造函数。类或结构可能有多个接受不同参数的构造函数。构造函数使得程序员可设置默认值、限制实例化以及编写灵活便于阅读的代码。如果您没有为对象提供构造函数,则默认情况下C#将创建一个构造函数,该构造函数实例化对象,并将所有成员变量设置为此处列出的默认值。静态类和结构也可以有构造函数。 使用构造函数构造函数是在创建给定类型的对象时执行的原创 2007-06-11 11:03:00 · 700 阅读 · 0 评论 -
对象、类和结构(二)
继承类可以从其他类中继承。这是通过以下方式实现的:在声明类时,在类名称后放置一个冒号,然后在冒号后指定要从中继承的类(即基类)。例如:public class A{ public A() { }} public class B : A{ public B() { }}新类(即派生类)将获取基类的所有非私有数据和行为以及新类为自己定义的所有其他原创 2007-06-09 15:03:00 · 746 阅读 · 0 评论 -
泛型(二)
泛型类泛型类封装不是特定于具体数据类型的操作。泛型类最常用于集合,如链接列表、哈希表、堆栈、队列、树等,其中,像从集合中添加和移除项这样的操作都以大体上相同的方式执行,与所存储数据的类型无关。对于大多数需要集合类的方案,推荐的方法是使用.NET Framework 2.0类库中所提供的类。一般情况下,创建泛型类的过程为:从一个现有的具体类开始,逐一将每个类型更改为类型参数,直至达到通用原创 2007-06-20 15:34:00 · 781 阅读 · 0 评论 -
泛型(三)
泛型方法泛型方法是使用类型参数声明的方法,如下所示:static void Swap(ref T lhs, ref T rhs){ T temp; temp = lhs; lhs = rhs; rhs = temp;}下面的代码示例演示一种使用int作为类型参数的方法调用方式:public static void TestSwap()原创 2007-06-20 16:43:00 · 788 阅读 · 0 评论 -
.NET应用程序的执行
.NET应用程序的执行方式目标通过编译和链接生成单一的本地可执行文件(.EXE)的时代已经过去,在Microsoft Windows中,应用程序的执行早已演变成为基于DLL(动态链接库)的形式,而通过.NET,我们正在向基于虚拟机的程序执行模式演化。 主要内容l Managed Execution(受控执行或托管执行)l 基于组件的设计l原创 2007-05-21 22:26:00 · 779 阅读 · 0 评论 -
数据类型
C#是强类型语言;因此每个变量和对象都必须具有声明类型。数据类型概述:数据类型可描述为:l 内置数据类型,如int或charl 用户定义数据类型,如class或interface还可以定义为:l 值类型(用于存储值)l 引用类型(用于存储对实际数据的引用) 主要内容:l 强制转换原创 2007-05-24 21:26:00 · 663 阅读 · 0 评论 -
Main()和命令行参数
Main方法是程序的入口点,您将在那里创建对象和调用其他方法。(注:一个C#程序中只能有一个入口点)class TestClass...{ static void Main(string[] args)...{ //Display the number of command line arguments: Syste原创 2007-05-24 14:49:00 · 1882 阅读 · 0 评论 -
字符串
字符串string数据类型,它是String类的别名。 使用字符串C#字符串是使用string关键字声明的一个字符数组。字符串是使用引号声明的,如下例所示:string s = "Hello, World!";您可以提取字符串和连接字符串,如下所示:string s1 = "orange";string s2 = "red"; s1 += s2;Syst原创 2007-06-06 09:24:00 · 961 阅读 · 0 评论 -
对象、类和结构(一)
对象、类和结构C#是面向对象的编程语言,它使用类和结构来实现类型(如Windows窗口、用户界面控件和数据结构等)。C#应用程序由自定义的类和.NET Framework的类组成。C#提供了许多功能强大的类定义方式,例如,提供不同的访问级别,从其他类继承功能,允许程序员指定实例化或销毁类型时的操作。还可以通过使用类型参数将类定义为泛型,通过类型参数,客户端代码可以类型安全的有效方式来自原创 2007-06-08 09:02:00 · 1128 阅读 · 0 评论 -
语句、表达式和运算符
语句、表达式和运算符 语句语句是构造所有C#程序的过程构造块。语句可以声明局部变量或常数,调用方法,创建对象或将值赋予变量、属性或字段。控制语句可以创建循环,如for循环,也可以进行判断并分支到新的代码块,如if或switch语句。语句通常以分号终止。由大括号括起来的一系列语句构成代码块。方法体是代码块的一个示例。代码块通常出现在控制语句之后。在代码块中声明的变量或常数可用于同一代原创 2007-06-07 14:46:00 · 922 阅读 · 0 评论 -
数组
数组数组是一种数据结构,它包含若干相同类型的变量。数组是使用类型声明的:type[] arrayName; 数组概述数组具有以下属性:l 数组可以是一维、多维或交错的l 数值数组元素的默认值设置为零,而引用元素的默认值设置为nulll 交错数组是数组的数组,因此,它的元素是引用类型,初始化为nulll原创 2007-06-05 14:24:00 · 660 阅读 · 0 评论 -
对象、类和结构(三)
成员类和结构具有表示其数据和行为的成员。这些成员包括:l 字段:字段是被视为类的一部分的对象实例,通常保存类数据。例如,日历类可能具有一个包含当前日期的字段。l 属性:属性是类中可以像类中的字段一样访问的方法。属性可以为类字段提供保护,避免字段在对象不知道的情况下被更改。l 方法:方法定义类可以执行的操作。方法可以接受提供输入数据的参原创 2007-06-10 14:10:00 · 628 阅读 · 0 评论 -
属性(二)
接口属性可以在接口上声明属性。以下是接口索引器访问器的示例:public interface ISampleInterface{ // Property declaration: string Name { get; set; }}接口属性的访问器不具有体。因此,访问器的用途是指示是否为读写、只读或只写原创 2007-06-16 20:06:00 · 674 阅读 · 0 评论
分享