Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C语言中实现来自一个位置的消息的最佳实践#_C# - Fatal编程技术网

C# 在C语言中实现来自一个位置的消息的最佳实践#

C# 在C语言中实现来自一个位置的消息的最佳实践#,c#,C#,我必须在winform应用程序的某个位置管理对话框消息内容, 我主要关心的是,所有内容都应该放在一个地方,这样程序员就可以轻松地访问它,并且不会在每个代码文件中创建重复的消息。第二件事是,它可以轻松地找到这些消息,现在我可以通过以下方式来管理它: 1.通过app-config文件,但如果我将所有消息放在app-config上,则消息的键数将为“n”,从可读性的角度来看,这将搞乱app-config 使用Class,创建一个类“MessageConstant”,并将所有消息放在该类中,但同样地,所

我必须在winform应用程序的某个位置管理对话框消息内容, 我主要关心的是,所有内容都应该放在一个地方,这样程序员就可以轻松地访问它,并且不会在每个代码文件中创建重复的消息。第二件事是,它可以轻松地找到这些消息,现在我可以通过以下方式来管理它:

1.通过app-config文件,但如果我将所有消息放在app-config上,则消息的键数将为“n”,从可读性的角度来看,这将搞乱app-config

  • 使用Class,创建一个类“MessageConstant”,并将所有消息放在该类中,但同样地,所有消息都在平面类中,这样会弄乱,没有分类,根据类别在类中划分区域

  • 通过使用类和,然后在类内创建类作为分类方式,并将这些常量放置在这些类内


  • 我有点困惑,这是一个最佳实践,可以在这一点上指导我,它应该如何实施

    我建议使用内置资源。这将使您能够通过生成的代码成员在C#中引用它们,并为以后提供内置翻译功能。

    我建议使用内置资源。这将使您能够通过生成的代码成员在C#中引用它们,并为以后构建翻译功能。

    如果您想使用第一个选项,您可以使用配置文件的特殊功能,允许您在单独的文件中指定部分:

    <configuration>
        <appSettings configSource="appSettings.config" />
    </configuration>
    
    
    

    这样,您的主
    app.config
    文件仍然精简且可读,并且所有消息都保存在单独的文件中。这使您可以选择在不重新编译的情况下更改文本。

    如果要使用第一个选项,您可以使用配置文件的特殊功能,允许您在单独的文件中指定节:

    <configuration>
        <appSettings configSource="appSettings.config" />
    </configuration>
    
    
    

    这样,您的主
    app.config
    文件仍然精简且可读,并且所有消息都保存在单独的文件中。这使您可以选择在不重新编译的情况下更改文本。

    如果要使用常量并对消息进行分类,可以在其中创建多个类:

    public class Messages 
    {
        public class Errors 
        { 
            public const string UnspecifiedError = "An unspecified error has occurred";
        }
    
        public class Others
        {
           public const string Something = "Some other message";
        }
    }
    

    但我真的建议您使用资源。这样,您可以在需要时轻松实现本地化。您还可以创建多个资源,这样您就可以有一个用于错误消息,另一个用于您需要的任何其他类别

    如果要使用常量并对消息进行分类,可以在其中创建多个类:

    public class Messages 
    {
        public class Errors 
        { 
            public const string UnspecifiedError = "An unspecified error has occurred";
        }
    
        public class Others
        {
           public const string Something = "Some other message";
        }
    }
    

    但我真的建议您使用资源。这样,您可以在需要时轻松实现本地化。您还可以创建多个资源,这样您就可以有一个用于错误消息,另一个用于您需要的任何其他类别

    创建一个消息表,从数据库中检索它们。这是我能想到的最好的做法

    如果需要,给他们ID、类型和基于模块的规范


    然后创建一个简单的类,通过它们的ID从数据库中检索

    创建一个消息表,从数据库中检索它们。这是我能想到的最好的做法

    如果需要,给他们ID、类型和基于模块的规范


    然后创建一个简单的类,通过它们的ID从数据库中检索

    我通常创建一个
    Resource.resx
    文件来存储所有字符串文本。我通常创建一个
    Resource.resx
    文件来存储所有字符串文本。