---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! --------------------
类的静态方法可能通过 类名.静态方法名 这种格式来调用,不能使用 实例名.静态方法名 这种方法调用。
因为类的静态方法为类所有(是属于类本身的),而非实例所有(不是属于类的实例的)。
类的静态方法可以访问类的任何静态成员,但不能访问类的实例成员。
C#中类的变量称为字段。类的public变量称为类的公共字段。
类的属性由一个protected(也可以是private)字段和getter和setter方法构成:
class Address
{
protected string zipCode; //protected字段,注意大小写
public string ZipCode
{
get //getter方法
{
return zipCode;
}
set //setter方法
{
zipCode = value; //被传递的值自动被在这个value变量中
}
};
}
只读属性是指省略setter方法的属性,只读属性只能读取,不能设置。
属性也可以用限定符virtual,override和abstract修饰,功能同其他类的方法。
属性有一个用处称为懒惰的初始化(lazy initialization)。即在需要类成员时才对它们进行
初始化。如果类中包含了很少被引用的成员,而这些成员的初始化又会花费大量的时候和系统
资源的话,懒惰的初始化就很有用了。
C#中数组对象共同的基类是System.Array。
将数组声明为类的一个成员时,声明数组与实例化数组必须分开,这是因为只能在运行时创建了
类的实例对象之后,才能实例化数组元素值。
声明:
int[] intArray; //一维数组
int[,,] int3Array; //三维数组
初始化:
intArray = new int[3] {1,2,3};
int[,] int2Array = new int[2,3] {{1,2,3},{4,5,6}}; //声明时可以初始化
遍历:
1)一维数组
for (int i = 0; i < intArray.Length; i++); //Array.Length返回数组所有元素的个数
foreach (int i in intArray);
for (int i = 0; i < intArray.GetLength(0); i++);//Array.GetLength(0)返回数组第一维的个数
2)多维数组
for (int i = 0; i < int3Array.GetLength(0); i++) //遍历三维数组
for (int j = 0; j < int3Array.GetLength(1); j++)
for (int k = 0; k < int3Array.GetLength(2); k++)
{
...
}
数组的维数就是该数组的秩(Rank)。Array.Rank可以返回数据的秩。
锯齿数组(jagged Array)是元素为数组的数组,例:
int[][] jaggedArray = new int[2][]; //包含二个元素,每个元素是个数组
jaggedArray[0] = new int[2]; //每个元素必须初始化
jaggedArray[1] = new int[3];
for (int i = 0; i < jaggedArray.Length; i++) //遍历锯齿数组
for (int j = 0; j < jaggedArray.Length; j++)
{
...
}
类的属性称为智能字段,类的索引器称为智能数组。由于类本身作数组使用,所以用
this作索引器的名称,索引器有索引参数值。例:
using System;
using System.Collections;
class MyListBox
{
protected ArrayList data = new ArrayList();
public object this[int idx] //this作索引器名称,idx是索引参数
{
get
{
if (idx > -1 && idx < data.Count)
{
return data;
}
else
{
return null;
}
}
set
{
if (idx > -1 && idx < data.Count)
{
data = value;
}
else if (idx = data.Count)
{
data.Add(value);
}
else
{
//抛出一个异常
}
}
}
}
------------------------ Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://net.itheima.com/