C#总结(二)

静态类成员:静态类中的成员不属于任何对象,他可以通过类名直接访问而不需要new新对象后再访问。

静态成员变量不需要实例化就可以直接访问的到,而非静态的成员变量必须等到该类被实例化后才可以访问,

静态方法只能访问静态成员变量,静态成员变量在整个内存中只有一个,静态成员变量和访问这个静态成员变量的静态方法是写在同一个类中的。

构造函数:构造函数是类的一种特殊方法,每次创建类的实例都会调用它。其语法格式为:

[访问修饰符] <类名>()

{

构造函数的主体

}

在建立构造函数时类的名字是什么,构造函数的名字就是什么,没有返回值。如果使用了带有参数的构造函数,就应该写一个0个参数的构造函数。

静态构造函数就是为了初始化静态的成员变量,如下图:

C#总结(二)

析构函数:用于执行清除操作的特殊方法。析构函数与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统会自动执行析构函数来做清理善后的工作,如咋建立对象时用new开辟了一篇内存空间,应在退出前在析构函数中用delete释放。

如果我们没在类中定义自己的析构函数,系统会自动的合成一个析构函数,在该类行使完功能之后则会调用析构函数,即使我们自定义了析构函数,该类在行使完功能后先执行自定义的析构函数,然后再执行系统自身合成的析构函数。

析构函数的声明格式如下:

[访问修饰符] 返回类型~<方法名>([参数列表])

{

方法主体

}

访问修饰符默认情况下是private,注意在析构函数的函数名前要加一条波浪线。

方法重载:方法的名字是一样的,通过方法的参数和返回值来区别,如下图:

C#总结(二)

如何调用写好的类库:首先要写好一个类库,然后新建一个项目,然后添加引用,点击浏览,选择写好的类库(DLL),在最上面声明这个类库即USING 类库。

构造字符串的方法:

C#总结(二)

Str输出的是“ccc”,str2输出的是“abec”,str3输出的是“ab”,第一种方法string(‘字符X’,个数N)表示输出N个相同的字符X,第二种方法是先构造了一个数组,数组中每个元素都是一个字符,string(数组)的作用是将数组中每个元素连接为一个字符串并将这个字符串赋给一个变量。第三种string(字符串M,n1,n2)表示的是在字符串M中,从M的n1位置开始取n2个字符组成新的字符串并赋给一个变量。应注意方法一和方法二中字符要用单引号括起来。

在字符串中查找字符或字符串:

1.public int IndexOf(char) 在整个字符串中查找指定的字符,返回的是int类型的该字符所在的位置。

2.public int IndexOf(char,int)从字符串的指定位置int处开始查找字符串char,返回的字符串的位置仍然是原来的字符串的位置,如果查找不到则返回-1.

3.Public int IndexOf(char,int1,int2)从字符串的指定位置int1与指定位置int2之间进行查找,返回的仍然是字符在整个字符串中的位置,如果查找不到返回的仍然是-1.

在字符串中查找字符或子字符串:

要从字符串中提取一个子串,可以使用String类提供的SubString方法,它有两种重载形式分别是1.public string SubString(int)表示的是获得字符串自指定位置起直至结束的子串;2.public String SubString(int,int)获得字符串从指定位置开始的指定长度的子串。

获得删除了其中某些字符的字符串:

Public String Remove(int)得到的是从指定位置删除后面的字符串后剩余的字符串,也就是得到前int+1个字符。

Public String Remove(int ,int)获得的是删除从指定位置起指定长度字符串后得到字符串。

在字符串的指定位置插入一个字符串:

String str=”cartoon”;

String str1=str.Insert(int,”字符串”)

字符串的StartsWith方法,EndWith方法以及Contains方法:

C#总结(二)

字符串的比较:

C#总结(二)

字符串的其他函数:

1. padleft()函数string.padleft(int)在字符串的左边空出int个空格

2. string.padleft(int,’字符’)在字符串的左边先写出int个“字符”再写出string

3. string.remove(string.IndexOf(“字符”),int)从某个指定字符“字符”处开始移除int个字符。

4. string.replace(“字符甲”,“字符乙”)把字符甲替换成字符乙。

5. 字符串的join方法和split方法:

C#总结(二)

1. 构建stringbuilder对象:

C#总结(二)

C#总结(二)

C#总结(二)

委托:

委托也可以看成是一种数据类型,可以用于定义变量,但是他是一种特殊的数据类型,他所定义的变量接收的数值只能是一个函数,更确切的说,委托类型的变量可以接收的数值只能是一个函数,更确切的说,委托的变量可以接收一个函数的地址。

使用委托与直接使用函数的效果是一样的,使用的方法也是类似的。但是要注意委托的返回值类型、参数与它所要代理的函数的返回值类型、参数必须是要相同的才可以。首先声明一个委托public delegate 返回类型委托类型。如例:

publicdelegate int math() //声明一个math委托类,返回值类型为int

namespaceConsoleApplication3

{

class Program

{

public delegate int math(int value1, intvalue2);

static void Main(string[] args)

{

int m;

mathopt a = new mathopt();

math abc;

abc = a.add;

abc(1,2);

m = abc(1,2);

Console.WriteLine(Convert.ToString(m));

}

public class mathopt

{

public int add(int value1, intvalue2)

{

return value1 + value2;

}

}

}

}