在控制台应用程序中处理行为,自定义功能等的基类?

埃里克·阿斯托·奥比利塔斯(Erick Asto Oblitas)

我有一个类似的控制台应用程序:

public enum TypeMessage : int
{
    Log,
    Success,
    Warning,
    Alert
}

class Program
{
    static void Main(string[] args)
    {
        //do stuff
        WriteMessage("Sucess .... etc", TypeMessage.Success);
    }

    static void WriteMessage(string message, TypeMessage typeMessage = TypeMessage.Log)
    {
        switch (typeMessage)
        {
            case TypeMessage.Success:
                Console.ForegroundColor = ConsoleColor.Green;
                break;
            case TypeMessage.Warning:
                Console.ForegroundColor = ConsoleColor.Yellow;
                break;
            case TypeMessage.Alert:
                Console.ForegroundColor = ConsoleColor.Red;
                break;
            default:
                Console.ResetColor();
                break;
        }
        Console.WriteLine(message);
        Console.ResetColor();
    }

    static void ExecuteAction(Action action)
    {
        try
        {
            action.Invoke();
        }
        catch (Exception ex)
        {
            throw;
        }
    }

    /*....*/
}

我想创建一个BaseProgram类,class Program : BaseProgram并在其中放置初始化设置,helpers方法等:

  • Console.Title =标题;
  • 静态无效WriteMessage(字符串消息,TypeMessage typeMessage = TypeMessage.Log)
  • 静态void ExecuteAction(动作)

我尝试在BaseProgram类中使用静态构造函数并设置控制台标题,但是没有用。

static BaseProgram()
{
    Console.Title = "Some Title";
}

如何实现呢?

钢铁怪胎

除非您BaseProgram在应用程序入口点(Program.Main()调用/实例化其或其派生类,否则当前使用静态构造函数的实现将无法正常工作

class Program : BaseProgram
{
  static void Main(string[] args)
  {
     new BaseProgram(); // or, new Program();

     //do stuff
     WriteMessage("Sucess .... etc", TypeMessage.Success);
  }
}

话虽如此,BaseProgram您可以考虑像这样实现它,而不是使用静态构造函数

public abstract class BaseProgram
{      
  protected BaseProgram()
  {
    Console.Title = "Some Title";
    // other common initialization
  }

  public abstract void Run(string[] args);

  public void WriteMessage(string message, TypeMessage typeMessage = TypeMessage.Log)
  {
    ...
  }

  // other methods
}

public class Program : BaseProgram
{
  public static void Main(string[] args)
  {
    var program = new Program();
    program.Run(args);        
  } 

  public override void Run(string[] args)
  {
    //do stuff
    WriteMessage("Sucess .... etc", TypeMessage.Success);
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#控制台应用程序-使用自定义标题进行肥皂呼叫

来自分类Dev

在运行多个应用程序的同时使自定义控制台命令在Yii2中工作时出现问题

来自分类Dev

从自定义URL处理程序启动.bat文件而不显示控制台窗口

来自分类Dev

C#控制台应用程序中剪贴板的奇怪行为

来自分类Dev

我可以在js中创建自定义控制台日志功能吗?

来自分类Dev

在“ asp.net 5控制台”应用程序中,“控制台”不包含“ ReadKey”的定义

来自分类Dev

从控制台应用程序调用的类的MailMessage

来自分类Dev

如何在程序类(控制台应用程序)中访问变量

来自分类Dev

NSTextView/NSViewController\NSNotification 用于 SWIFT 中 MacOS 应用程序的控制台日志功能

来自分类Dev

在正在运行的Windows控制台应用程序中处理拖放文件

来自分类Dev

在控制台应用程序中快速处理可可按键事件(按键)

来自分类Dev

在Inno Setup中以交互方式运行控制台应用程序/批处理文件

来自分类Dev

如何在控制台应用程序中处理WM_ENDSESSION

来自分类Dev

.NET Core DI-在控制台应用程序中处理Singleton服务

来自分类Dev

如何在控制台应用程序中处理新格式(appsettings.json)的配置

来自分类Dev

在控制台应用程序中定义连接字符串

来自分类Dev

WebJob控制台应用程序中的ProcessQueueMessage函数

来自分类Dev

在控制台应用程序中实现导航菜单

来自分类常见问题

在控制台应用程序中显示图像

来自分类Dev

控制台应用程序中的进度栏问题

来自分类Dev

控制台应用程序中的颜色

来自分类Dev

在控制台应用程序中同步运行的任务

来自分类Dev

控制台应用程序中的存储过程

来自分类Dev

在Nim中退出控制台应用程序

来自分类Dev

控制台应用程序中的异步等待

来自分类Dev

控制台应用程序中的Linux Qt QSystemTrayIcon

来自分类Dev

控制台应用程序中的Unity Config错误

来自分类Dev

控制台应用程序中的存储过程

来自分类Dev

简单控制台测试应用程序中的NullPointerException

Related 相关文章

  1. 1

    C#控制台应用程序-使用自定义标题进行肥皂呼叫

  2. 2

    在运行多个应用程序的同时使自定义控制台命令在Yii2中工作时出现问题

  3. 3

    从自定义URL处理程序启动.bat文件而不显示控制台窗口

  4. 4

    C#控制台应用程序中剪贴板的奇怪行为

  5. 5

    我可以在js中创建自定义控制台日志功能吗?

  6. 6

    在“ asp.net 5控制台”应用程序中,“控制台”不包含“ ReadKey”的定义

  7. 7

    从控制台应用程序调用的类的MailMessage

  8. 8

    如何在程序类(控制台应用程序)中访问变量

  9. 9

    NSTextView/NSViewController\NSNotification 用于 SWIFT 中 MacOS 应用程序的控制台日志功能

  10. 10

    在正在运行的Windows控制台应用程序中处理拖放文件

  11. 11

    在控制台应用程序中快速处理可可按键事件(按键)

  12. 12

    在Inno Setup中以交互方式运行控制台应用程序/批处理文件

  13. 13

    如何在控制台应用程序中处理WM_ENDSESSION

  14. 14

    .NET Core DI-在控制台应用程序中处理Singleton服务

  15. 15

    如何在控制台应用程序中处理新格式(appsettings.json)的配置

  16. 16

    在控制台应用程序中定义连接字符串

  17. 17

    WebJob控制台应用程序中的ProcessQueueMessage函数

  18. 18

    在控制台应用程序中实现导航菜单

  19. 19

    在控制台应用程序中显示图像

  20. 20

    控制台应用程序中的进度栏问题

  21. 21

    控制台应用程序中的颜色

  22. 22

    在控制台应用程序中同步运行的任务

  23. 23

    控制台应用程序中的存储过程

  24. 24

    在Nim中退出控制台应用程序

  25. 25

    控制台应用程序中的异步等待

  26. 26

    控制台应用程序中的Linux Qt QSystemTrayIcon

  27. 27

    控制台应用程序中的Unity Config错误

  28. 28

    控制台应用程序中的存储过程

  29. 29

    简单控制台测试应用程序中的NullPointerException

热门标签

归档