扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:谢启东编译 来源:天极开发 2007年11月12日
关键字:
using namespace System; using namespace System::IO; public ref class Point { int x; int y; /*1*/ int ID; /*2*/ static int nextAvailableID; /*3*/ static int GetNextAvailableID() { return nextAvailableID++; } /*4*/ static bool traceID = false; /*5*/ static String^ masterFileLocation; /*6*/ static Point() { /*6a*/ AppDomain^ appDom = AppDomain::CurrentDomain; /*6b*/ masterFileLocation = String::Concat(appDom->BaseDirectory, "\\PointID.txt"); /*6c*/ try { /*6d*/ StreamReader^ inStream = File::OpenText(masterFileLocation); /*6e*/ String^ s = inStream->ReadLine(); /*6f*/ nextAvailableID = Int32::Parse(s); /*6g*/ inStream->Close(); /*6h*/ appDom->ProcessExit += gcnew EventHandler(&Point::ProcessExitHandler); } /*6i*/ catch (FileNotFoundException^ ioFNFEx) { //采取某些必要的措施 } /*6j*/ finally { appDom = nullptr; } } /*7*/ static void ProcessExitHandler(Object^ sender, EventArgs^ e) { /*7a*/ StreamWriter^ outStream = File::CreateText(masterFileLocation); /*7b*/ outStream->WriteLine("{0}", nextAvailableID); /*7c*/ outStream->Close(); } public: // ... /*8*/ static property bool TraceID { bool get() { return traceID; } void set(bool val) { traceID = val; } } // define instance constructors Point() { /*9*/ ID = GetNextAvailableID(); X = 0; Y = 0; } Point(int xor, int yor) { /*10*/ ID = GetNextAvailableID(); X = xor; Y = yor; } Point(Point% p) // copy constructor { /*11*/ ID = GetNextAvailableID(); X = p.X; Y = p.Y; } // ... /*12*/ virtual int GetHashCode() override { // ... } virtual String^ ToString() override { /*13*/ if (traceID) { return String::Format("[{0}]({1},{2})", ID, X, Y); } else { return String::Format("({0},{1})", X, Y); } } }; |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者