using namespace System; using namespace System::IO; using namespace System::Runtime::Serialization::Formatters::Binary;
/*1*/ [Serializable] ref class Employee { /* ... */};
int main() { Employee^ emp1 = gcnew Employee(); Employee^ emp2 = gcnew Employee(); Employee^ emp3 = emp2; /*2a*/ Console::WriteLine("emp1 == emp2 is {0}", (emp1 == emp2)); /*2b*/ Console::WriteLine("emp2 == emp3 is {0}", (emp2 == emp3)); /*2c*/ Console::WriteLine("emp1 == emp3 is {0}", (emp1 == emp3));
array<Object^>^ list = gcnew array<Object^>(2); list[0] = emp1; list[1] = list[0]; /*2d*/ Console::WriteLine("list[0] == list[1] is {0}", (list[0] == list[1])); /*2e*/ Console::WriteLine("list[0] == emp1 is {0}", (list[0] == emp1)); /*2f*/ Console::WriteLine("list[1] == emp1 is {0}", (list[1] == emp1));
//将数据串行化到文件
BinaryFormatter^ formatter = gcnew BinaryFormatter; Stream^ file = File::Open("Sr03.ser", FileMode::Create);
/*3a*/ formatter->Serialize(file, emp1); /*3b*/ formatter->Serialize(file, emp2); /*3c*/ formatter->Serialize(file, emp3); /*3d*/ formatter->Serialize(file, list);
file->Close();
//从文件中反串行化数据--即读取数据
file = File::Open("Sr03.ser", FileMode::Open);
/*4a*/ emp1 = static_cast<Employee^>(formatter->Deserialize(file)); /*4b*/ emp2 = static_cast<Employee^>(formatter->Deserialize(file)); /*4c*/ emp3 = static_cast<Employee^>(formatter->Deserialize(file)); /*4d*/ list = static_cast<array<Object^>^>(formatter->Deserialize(file));
file->Close();
/*5a*/ Console::WriteLine("emp1 == emp2 is {0}", (emp1 == emp2)); /*5b*/ Console::WriteLine("emp2 == emp3 is {0}", (emp2 == emp3)); /*5c*/ Console::WriteLine("emp1 == emp3 is {0}", (emp1 == emp3)); /*5d*/ Console::WriteLine("list[0] == list[1] is {0}", (list[0] == list[1])); /*5e*/ Console::WriteLine("list[0] == emp1 is {0}", (list[0] == emp1)); /*5f*/ Console::WriteLine("list[1] == emp1 is {0}", (list[1] == emp1)); } |