Listing 2
using namespace System;
using namespace System::Threading;
/*1*/
public ref class Transaction abstract
{
TransactionType typeOfTransaction;
/*2*/ DateTime dateTimeOfTransaction;
public:
/*3a*/ property TransactionType TypeOfTransaction
{
TransactionType get() { return typeOfTransaction; }
private:
void set(TransactionType value) { typeOfTransaction = value; }
}
/*3b*/ property DateTime DateTimeOfTransaction
{
DateTime get() { return dateTimeOfTransaction; }
private:
void set(DateTime value) { dateTimeOfTransaction = value; }
}
/*4*/ virtual void PostTransaction() abstract;
protected:
/*5*/ Transaction(TransactionType transType)
{
/*6*/ Thread::Sleep((gcnew Random)->Next(1000,2001));
/*7*/ TypeOfTransaction = transType;
/*8*/ DateTimeOfTransaction = DateTime::Now;
}
};