暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

IT日志之开发:C#实例控制台程序--(文件打读取)

Louise的50个梦想 2021-09-18
911
    namespace 控制台应用程序
    {
    class Program
    {
    static void Main(string[] args)
    {
    while (true)
    {
    Console.WriteLine(">");
    string input = Console.ReadLine();
    if (input == "exit")
    {
    //结束程序
    break;
    }
    //有个输入如果不是exit,则执行
    //父类 f= create(input); f.运行();
    FileBase file = factory.CreateInstance(input);
    if (file != null)
    {
    file.Open();
    }
    }
    }
    }
    }

    factory.cs

      namespace 控制台应用程序
      {
      class factory
      {
      public static FileBase CreateInstance(string input)
      {
      //根据文件的类型创建对应的子类对象来打开程序
      //path.getextension: 获取文件的扩展名
      string ext= Path.GetExtension(input);
      //将文件扩展名都小写
      switch (ext.ToLower())
      {
      case ".mp3":return new Media();
      default: break;
      }
      return new FileBase();
      }
      }
      }

      FileBase.cs

        namespace 控制台应用程序
        {
        class FileBase
        {
        public virtual void Open()
        {
        Console.WriteLine("不是系统命令,无程序可以打开");

        }
        }
        }

        Media.cs

          namespace 控制台应用程序
          {
          class Media:FileBase
          {
          public override void Open()
          {
          Console.WriteLine("这个是音乐文件,使用音乐播放器打开");
          }


          }
          }

          运行结果:


          人性一点:输入123.MP3 显示123.MP3这个是音乐文件,使用音乐播放器打开。(传入参数)

            namespace 控制台应用程序
            {
            class Program
            {
            static void Main(string[] args)
            {
            while (true)
            {
            Console.WriteLine(">");
            string input = Console.ReadLine();
            if (input == "exit")
            {
            //结束程序
            break;
            }
            //有个输入如果不是exit,则执行
            //父类 f= create(input); f.运行();
            FileBase file = factory.CreateInstance(input);
            if (file != null)
            {
            file.Open(input);
            }
            }
            }
            }
            }
              namespace 控制台应用程序
              {
              class FileBase
              {
              public virtual void Open(string cmd)
              {
              Console.WriteLine("{0}不是系统命令,无程序可以打开",cmd);

              }
              }
              }
                namespace 控制台应用程序
                {
                class Media:FileBase
                {
                public override void Open(string cmd)
                {
                Console.WriteLine("{0}这个是音乐文件,使用音乐播放器打开",cmd);
                }


                }
                }

                • 使用构造方法传参

                  namespace 控制台应用程序
                  {
                  //class FileBase
                  //{
                  // public virtual void Open(string cmd)
                  // {
                  // Console.WriteLine("{0}不是系统命令,无程序可以打开",cmd);

                  // }
                  //}
                  class FileBase
                  {
                  string file;
                  public string File
                  {
                  get { return file; }
                  }
                  //构造函数
                  public FileBase(string cmd)
                  {
                  file = cmd;
                  }
                  public virtual void Open()
                  {
                  Console.WriteLine("{0}不是系统命令,无程序可以打开", file);
                  }
                  }
                  }
                    namespace 控制台应用程序
                    {
                    // class Media:FileBase
                    // {
                    // public override void Open(string cmd)
                    // {
                    // Console.WriteLine("{0}这个是音乐文件,使用音乐播放器打开",cmd);
                    // }


                    // }
                    class Media : FileBase
                    {
                    public Media(string cmd) : base(cmd)
                    { }
                    public override void Open()
                    {
                    Console.WriteLine("{0}这个是音乐文件,使用音乐播放器打开", File);
                            }
                    }
                    }
                      namespace 控制台应用程序
                      {
                      class factory
                      {
                      public static FileBase CreateInstance(string input)
                      {
                      //根据文件的类型创建对应的子类对象来打开程序
                      //path.getextension: 获取文件的扩展名
                      string ext= Path.GetExtension(input);
                      //将文件扩展名都小写
                      switch (ext.ToLower())
                      {
                      case ".mp3":return new Media(input);
                      default: break;
                      }
                      return new FileBase(input);
                      }
                      }
                      }
                        namespace 控制台应用程序
                        {
                        class Program
                        {
                        static void Main(string[] args)
                        {
                        while (true)
                        {
                        Console.WriteLine(">");
                        string input = Console.ReadLine();
                        if (input == "exit")
                        {
                        //结束程序
                        break;
                        }
                        //有个输入如果不是exit,则执行
                        //父类 f= create(input); f.运行();
                        FileBase file = factory.CreateInstance(input);
                        if (file != null)
                        {
                        file.Open();
                        }
                        }
                        }
                        }
                        }


                        文章转载自Louise的50个梦想,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                        评论