Welcome 微信登录

首页 / 软件开发 / C#

C#的事件和索引指示器

C#的事件和索引指示器

C#的事件和索引指示器2007-09-25 本站 事件为类和类的实例提供了向外界发送通知的能力,而索引指示器则可以象数组那样对对象进行索引访问。在C和C++中,没有事件和索引指示器的概念,它们是在C#中首次提出的。13.1 13.2 索引指示器索引指示器(indexer)可以象数组那样对对象使用下标。它为我们提供了通过索引方式方便地访问类的数据信息的方法。13.2.1 13.2.2 实例本实例给出运用索引指示器的一个简单例子。例子是一个网络应用程序:根据域...
C#的继承机制

C#的继承机制

C#的继承机制2007-09-25 本站 14.1.1 C#继承概述现实世界中许多实体之间不是相互孤立的,它们往往具有共同的特征,也存在内存的差别。人们可以采用层次结构来描述这些实体之间的相似之处和不同之处。上图反映了鱼类的派生关系。最高层的实体往往具有最一般最普遍的特征,越下层的事物越具体,并且下层包含了上层的特征,它们之间的关系是基类与派生类之间的关系。为了用软件语言对现实世界中的层次结构进行模型化,面向对象的程序设计技术引入了继承的概念。一个类从另一...
C#中的多态性

C#中的多态性

C#中的多态性2007-09-25 本站 “多态性”一词最早用于生物学,指同一种族的生物体具有相同的特性。在C#中,多态性的定义是:同一操作作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的执行结果。C#支持两种类型的多态性:编译时的多态性编译时的多态性是通过重载来实现的。我们在第十一章中介绍了方法重载的操作符重载,它们都实现了编译时的多态性。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种...
接口与抽象类的恩恩怨怨

接口与抽象类的恩恩怨怨

接口与抽象类的恩恩怨怨2007-09-26 接口与抽象类是面向对象编程中两个非常重要的角色,二者各自起着非常重要的作用。但是很多初学的朋友往往会对使用接口还是抽象类存在的很大的迷惑。就我自己的一点心得,发表一下拙见。面向对象的一些回顾: 面向对象世界中有一个古老的法则:接口隔离原则,指的是不要把多个功能全部都集中在一个接口里面。接口实现的功能要相对单一;衍生开来可以得到另外一个结论:对一组或者称一系列功能的实现,尽量定义相对功能单一的小模块来实现这一组功能...
c#中实现各种进制的转换

c#中实现各种进制的转换

c#中实现各种进制的转换2007-09-26 在.net Framework中,System.Convert类中提供了较为全面的各种类型、数值之间的转换功能。其中的两个方法可以轻松的实现各种进制(2进制、8进制、10进制、16进制...)的数值间的转换:Convert.ToInt32(string value, int fromBase): 可以把不同进制数值的字符串转换为数字,其中fromBase参数为进制的格式,只能是2、8、10及16: 如Conve...
漫谈C#编程中的多态与new关键字

漫谈C#编程中的多态与new关键字

漫谈C#编程中的多态与new关键字2007-09-261. 你通常怎样用多态? 假设我有一个类,里面有一个 PrintStatus 方法,用于打印实例的当前状态,我希望该类的派生类都带有一个 PrintStatus 方法,并且这些方法都用于打印其实例的当前状态。那么我会这样表达我的愿望:// Code #01class Base{ public virtual void PrintStatus() { Console.WriteLine("...
C#构造函数和析构函数的用法

C#构造函数和析构函数的用法

C#构造函数和析构函数的用法2007-09-26构造函数与析构函数是一个类中看似较为简单的两类函数,但在实际运用过程中总会出现一些意想不到的运行错误。本文将较系统的介绍构造函数与析构函数的原理及在C#中的运用,以及在使用过程中需要注意的若干事项。一.构造函数与析构函数的原理作为比C更先进的语言,C#提供了更好的机制来增强程序的安全性。C#编译器具有严格的类型安全检查功能,它几乎能找出程序中所有的语法问题,这的确帮了程序员的大忙。但是程序通过了编译检查并不表...
C#.Net网络Socket程序开发

C#.Net网络Socket程序开发

C#.Net网络Socket程序开发2007-09-26 Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序。.Net类采用的分层结构允许应用程序在不同的控制级别访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket套接...
在C#中加载自己编写的动态链接库

在C#中加载自己编写的动态链接库

在C#中加载自己编写的动态链接库2007-09-26一、发生的背景 在开发新项目中使用了新的语言开发 C# 和新的技术方案 WEB Service,但是在新项目中,一些旧的模块需要继续使用,一般是采用 C 或 C++ 或 Delphi 编写的,如何利用旧模块对于开发人员来说,有三种可用方法供选择:第一、将 C 或 C++ 函数用 C# 彻底改写一遍,这样整个项目代码比较统一,维护也方便一些。但是尽管微软以及某些书籍说,C# 和 C++ 如何接近,但是改...
C#3.0扩展方法(Extension Methods)

C#3.0扩展方法(Extension Methods)

C#3.0扩展方法(Extension Methods)2007-09-27今天早上在MSDN站点看到这样一篇文章: C# 3.0 LINQ 的演变及其对 C# 设计的影响 。 从这篇文章我们就可以明显的看到,C# 3.0 所新增的这些特性,可以认为都是为了LINQ 的发展,为了LINQ更易用,所创建的一些新特性,当然这些新特性也可以被非LINQ相关功能所使用。LINQ的发展,带动了C#3.0 这一系列新特性的产生。回来说我们的话题,扩展方法,首先看一个最...
C#3.0 中使用扩展方法来扩展接口

C#3.0 中使用扩展方法来扩展接口

C#3.0 中使用扩展方法来扩展接口2007-09-27有关扩展方法的一些知识点请参看我的前篇博客:前篇博客中我重点介绍了两个特殊场景:1、扩展方法跟原来类的方法重名时候的处理逻辑2、扩展方法的嵌套现在我们来看扩展方法使用的第三个场景:使用扩展方法来扩展接口应用场景举例:我们有时候会发现最初定义的一个接口,在现在环境下,这个接口需要再增加一个函数。有了扩展方法后,我们在这种情况下又多了一种实现的选择。下面以代码来说明这个问题:namespace Hongj...
C#3.0对象初始化器和集合初始化器

C#3.0对象初始化器和集合初始化器

C#3.0对象初始化器和集合初始化器2007-09-27 blog.joycode.com C# 3.0 中对象初始化器(Object Initializers) 和 集合初始化器(Collection Initializers) ,就是简化我们的代码,让本来几行才能写完的代码一行写完。这样在LINQ的使用中,我们才不会把一个LINQ表达式写的巨复杂无比。 由于我看到几篇讲 对象初始化器(Object Initializers)和集合初始化器(Collec...
C#静态构造函数

C#静态构造函数

C#静态构造函数2007-09-27 静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。 class SimpleClass { // Static constructor static SimpleClass() { // } } 在使用静态构造函数的时...
<< 1 2 3 4 5 6 7 8 9 10 >>