构造器初始化(三):巧用Static方法和base关键字

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();
        }
       
    }
}
  
r_123.jpg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值