【问题标题】:What does it mean the something is Hardcoded ?硬编码的东西是什么意思?
【发布时间】:2014-04-22 05:57:52
【问题描述】:

我正在关注 MoviesMVC here 的 MVC 教程,作者说了以下的话:

public string Index() 
{ 
    return "This is my <b>default</b> action..."; 
} 

目前,Index 方法返回一个带有消息的字符串 硬编码在控制器类中。更改 Index 方法以返回 一个View对象,如下代码所示:

public ActionResult Index() 
{ 
    return View(); 
}

嗯,好的,所以他改变了函数的签名。但他为什么称它为硬编码?

【问题讨论】:

标签: c# asp.net asp.net-mvc asp.net-mvc-4 hardcode


【解决方案1】:

当你硬编码某些东西时,它通常指的是诸如字符串值和其他设置之类的东西,它们是编译代码的一部分。

简而言之,如果您想更改 Index 方法返回的内容,您必须进行更改并重新编译。

另一种方法是使用配置文件进行设置,例如 app.config 和 web.config 文件。当涉及到某些字符串(用作用户界面消息)时,您可以使用资源文件来存储多语言字符串。

这些文件允许您对应用程序进行更改,而无需重新编译所有内容。这是需要的(通常),因为:

  1. 在生产环境中工作时,通常情况下您的代码可能会解决用户标记的问题。如果您需要重新编译和重新部署以对短信进行更改(这可能经常发生,尤其是在营销活动期间),必须重新编译代码来更改消息可能会导致不需要的更改,或者仍然存在的更改正在部署中。

  2. 某些客户可能有自己的营销人员,并希望让他们访问某些网站页面。如果他们可以在旅途中更改文本,通常可以节省他们通过开发公司的时间,这通常会让客户更满意。

【讨论】:

    【解决方案2】:

    硬编码是什么意思

    当您在代码中编写某些内容并且需要更改代码以更改值时,则称为硬代码。如果我们从任何来源(如数据库)加载内容,那么您不需要更改代码。有些内容可能不会像列标题那样改变,那么它们必须用代码(硬编码)编写。

    硬编码(也称为硬编码或硬编码)是指软件 嵌入什么可能的开发实践,也许只在 回溯,被视为直接输入或配置数据 程序或其他可执行对象的源代码,或固定的 格式化数据,而不是从外部获取该数据 源或在程序本身中生成数据或格式化 给定的输入,Reference

    【讨论】:

      【解决方案3】:
      1. 硬编码是指直接给出值而不是使用变量。变量可以在代码中的不同位置重复使用。所以最好不要硬编码。

      2. 建议查看而不是直接提供字符串,因为它易于本地化和国际化。

      3. 另外,您不需要将代码重新编译成 DLL。您只需上传视图(aspx、ascx、cshtml 等),一切就开始工作了。

      4. 如果不想使用视图,可以使用字符串资源,使用资源id代替硬编码。

      【讨论】:

        【解决方案4】:

        可以构建他/她自己的ViewEngine 并将其插入到 MVC 管道中。这将允许仅在执行之后确定 HTML 内容。

        当有人用字符串编码返回语句时,不可能修改该方法返回的 HTML 内容,因为它是不可更改的。

        【讨论】:

          【解决方案5】:

          这只是意味着您正在打印结果或使用某个值,而不是从数据库或用户输入中获取它。

          所以假设您正在使用这样的人名。 string personName = [从数据库中获取值] string personName = [从用户输入中获取值]

          没关系。

          但是如果你这样使用它

          string personName = "Smit"

          您只是对值进行硬编码。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-10-24
            • 2023-03-27
            • 2018-04-09
            • 2021-12-08
            • 2012-01-22
            • 1970-01-01
            • 2013-07-06
            相关资源
            最近更新 更多