using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//如何运行前不知道的值传递给 CommandDelimitedFile构造器?答案:使用静态方法,与base关键字一起使用。
namespace InitialConstruct
{
class CommandDelimitedFile
{
public CommandDelimitedFile(string fileName)
{
Console.WriteLine("[CommandDelimitedFile."+"CommaDelimitedFile] file name={0}",fileName);
}
}
enum TableId
{
Customers,
Suppliers,
Vendors
}
class DbTable : CommandDelimitedFile
{
static string GetFileName(TableId tableId)
{
string fileName;
switch (tableId)
{
case TableId.Customers:
fileName = "customers.txt";
break;
case TableId.Suppliers:
fileName = "suppliers.txt";
break;
case TableId.Vendors:
fileName = "venders.txt";
break;
default:
throw new ArgumentNullException("DbTable.GetFileName] Could not rsolve table name");
}
return fileName;
}
public DbTable(TableId tableId)
: base(GetFileName(tableId))
{
Console.WriteLine("[DbTable.DbTable] tableId={0} ", tableId.ToString());
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("[Main] Instantianting a " + "Customer Table object...");
DbTable derived = new DbTable(TableId.Customers);
Console.ReadKey();
}
}
}