C#中的引用类型有四种:类、数组、代表和接口。
1.类
类是面象对象编程的基本单位,包括数据成员,函数成员的数据结构.类的数据成员有变量、域和事件。函数成员包括方法、属性、构造函数和析构函数等等。类和结构同样都包含了自己的成员,但他们之间最主要在于:类是引用类型,而结构是值类型。
类支持继承机制,通过继承,派生可以扩展类的数据成员和函数方法,进而达到代码重用和设计重用的目的。 C#中两个经常用到的类是 object 类和 string 类。object 类是所有其他类型的基类,C#中的所有类型都直接或间接的从 object 类中继承。因此,对一个 object 的变量可以赋予任何类型的值。
2.数组
数组是一组类型相同的有序数据,要得到该数组中元素的个数可以通过数组名加“.Length”来获得.
using System;
class test{
static void Main() {
int[] arr1=new int[2];
int[] arr2=new int[]{1,2,3};
string[] arr3={"six"," is ","me"};
int[,] arr4={{1,2},{3,4}};
int[,] arr5=new int[3,4];
for(int i=0;i<arr1.Length;i++) {
arr1[i]=i*i*i;
Console.WriteLine("arr1[{0}]={1}",i,arr1[i]);
}
for (int i=0;i<4;i++) {
for(int j=0;j<3;j++) {
arr5[j,i]=i*j;
Console.WriteLine("arr5[{0},{1}]={2}",j,i,arr5[j,i]);
}
}
}
}
3.代表
代表可以理解为指代,就是定义一种变量来指代一个函数或者一个方法
using System;
delegate int mydelegate();
class myclass {
public int InstMethod() {
Console.WriteLine("Call the InstMethod.");
return 0;
}
}
class Test
{
static public void Main()
{
myclass p=new myclass();
mydelegate d=new mydelegate(p.InstMethod);
d(); //指代p.InstMethod
}
}
4.接口
接口描述了组件对外提供的服务。在组件和组件之间、组件和客户之间都通过接口进行交互。因此组件一旦发布,它只能通过预先定义的接口来处理合理的、一致的服务。
从技术上讲,接口是一组包含了函数型方法的数据结构。通过这组数据结构,客户代码可以调用组件对象的功能。接口(Interface)可以含有属性(Property)。接口的使用方法如所示。
using System;
namespace InterfaceTest{
interface IPoint {
int x {
get;
set;
}
int y {
get;
set;
}
}
class MyPoint : IPoint {
private int myX;
private int myY;
public MyPoint(int x, int y) {
myX = x;
myY = y;
}
public int x {
get {
return myX;
}
set {
myX = value;
}
}
public int y {
get {
return myY;
}
set {
myY = value;
}
}
}
class Class1{
static void Main(string[] args){
MyPoint p = new MyPoint(2,3);
Console.Write("My Point: ");
PrintPoint(p);
}
private static void PrintPoint(IPoint p) {
Console.WriteLine("x={0}, y={1}", p.x, p.y);
}
}
}