您的位置:首页 > 编程语言 > C#

C#基础知识—基本概念

2011-06-13 22:44 309 查看
1.大多数面向对象编程语言都有两种截然不同的类型:一种是语言本身所固有的类型(基本类型),一种是可以由语言的使用者来创建的类型(类)。

2.C#根据数据的存储位置,把数据类型分为两种类型:值类型变量把其值存储在堆栈中,引用类型的变量把数据存放在堆中。

3.值类型

a.值类型

当我们拥有一个数值类型的变量时,实际上就拥有了一个包含了实际数据的变量。数值类型的首要规则就是它不能为空(NULL)。

b.结构

在C#中,结构是一种特殊的类,它是值类型。结构是在堆栈上。

c.枚举

枚举有以下优点:

△枚举可以使代码更便于维护,有助于确保给变量指定合法、期望的值。

△枚举使代码更清晰,允许用描述性的名称表示整数值,而不是用含义模糊的数来表示。

△枚举便于使代码更易于键入。

在编程时,创建一个枚举从长远来看可以节省大量的时间。聪明地、适当地使用枚举是专业程序员的一个特点。

当缺省时,枚举值是从0开始的,以1为增量。

4.引用类型

在C#中定义了多种引用类型,如类、数组、委托和接口。

a.Object类型

所有的类都是从Object派生的,包括自己定义的类。

Object类型执行许多基本的用途的方法。如Equals和ToString方法。

Equals方法是对对象的实例进行相等比较。

ToString方法在默认情况下是用来获得对象名字的。

b.字符串

为了解决其他语言中的字符串问题,C#创建了String类。

C#中的String类处于System名字空间中。String是一个类,有几个相关的方法。

这些方法有Compare,Format,Trim,ToUpper,ToLower,Split,IndexOf,IndexOfAny,Replace,Contains

c.数组

数组的生命方式如下:

数组类型[] 数组名;

数组必须在使用前进行初始化,访问没有初始化的数组将会报错。

数组的初始化有两种:

int[] myArray={1,2,3,4};或是int[] myArray=new int[4];

5.封箱和拆箱

封箱(boxing):把值类型转换为System.Object类型,拆箱(unboxing):相反地转换过程。

6.类成员

a.数据成员包含类的数据,主要有字段、常量和事件。

字段是与类相关的变量。常量是指在编译时已知并保持不变的值。常数被声明为字段,声明时在字段的类型前面使用const关键字。常数必须在声明时初始化。

事件可以让对象通知调用某些特定的行为发生的时间。

b.函数成员

函数成员提供了操作类中数据的某些功能,包括方法、属性、构造函数和析构函数、运算符和索引。

方法是与某个特定类相关的函数,它们可以是实例方法,也可以是静态方法。实例方法处理类的特定实例,静态方法提供了更一般的功能,不需要实例化就可以调用。比如,我们经常使用的Console类下面的WriteLine和ReadLine方法。

方法的声明格式为:

访问修饰符 返回类型 方法名(参数列表)

属性是用于访问类的公共字段类似方法访问的函数。C#为读写类上的属性提供了专用语法,使类的开发人员更易于维护属性的代码。

构造函数是在实例化对象时调用的函数。它们必须与所属的类同名,且不能有返回类型,构造函数可用于在实例化对象时设置字段的值。

析构函数在对象被析构时调用。它们的名称和类相同,但是在前面有一个“~”符号。

索引允许对象以数组或集合的方式进行访问类成员变量。

c.访问修饰符

声明的可访问性 含义

public 访问不受限制

protected 访问仅限于包含类或从包含类派生的类型

internal 访问仅限于当前程序集

protected internal 访问仅限于包含类派生的当前程序集或类型

private 访问仅限于包含类型

d.方法的重载

我们把在同一个类中定义几个同名的方法,但是这些方法带有不同类型的或是数量不同的参数,称为方法重载。

方法重载对编译器有两个限制。重载的方法的参数必须不同,即要么参数的个数不同,要么参数的类型不同。方法名必须要相同。

重载使用的场合1.默认的参数;2.不同的输入类型。

e.构造函数:有时候,我们在实例化类对象的时候,希望对对象中的变量进行初始化。这个时候,我们可以定义一些特殊的方法,无论何时创建类的实例时,总可以调用这些方法。这些方法就是构造函数。

使用构造函数的好处:它能保证兑现被使用之前经过合适的初始化过程。当用户实例化一个对象时,该对象的构造函数首先被调用,并在用户对该对象进行其他操作时,构造函数必须执行完。

在C#中,类的构造函数必须与类同名,而且没有返回类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息