1、可变参数
将实参列表中跟可变参数类型一致的元素都可以当作数组的元素去处理
params可变参数必须是形参列表中的最后一个元素。
Test("小明", 66, 89, 90);
public static void Test(string name, params int[] score)
{
int sum = 0;
foreach (int i in score)
{
sum += i;
}
Console.WriteLine(sum);
}
2、析构函数
帮助我们释放资源
~Student() {
Console.WriteLine("释放资源用");
}
3、C#中的访问修饰符
public :公共的
private:私有的,只能在当前类的内部使用
protected: 受保护的,只能在当前类的内部以及该类的子类中访问
internal: 只能在同一个程序集中访问
1)、能够修饰类的访问修饰符只有两个:public、internal
2)、可访问性不一致
子类的访问权限不能高于父类的访问权限。4、序列化与反序列化
1)、序列化:就是将对象转换成二进制
将要序列化的类通过Serializable标记
2)、反序列化:就是将二进制转换成对象
作用:传输数据,保存数据用
Person p= new Person();
p.Age = 1;
p.Name= "Test";
using (FileStream fsWrite = new FileStream(@"E:\vsLearn\A.txt",FileMode.OpenOrCreate,FileAccess.Write))
{
//开始序列化对象
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fsWrite, p);
}
Console.WriteLine("序列化成功");
Console.ReadKey();
//将对方发送过来的文件,反序列化成对象
Person p2;
using (FileStream fsRead = new FileStream(@"E:\vsLearn\A.txt", FileMode.OpenOrCreate, FileAccess.Read))
{
BinaryFormatter bf = new BinaryFormatter();
p2 = (Person) bf.Deserialize(fsRead);
}
Console.WriteLine(p2.Name);
Console.ReadKey();
}