首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟人生3的游戏发射器

模拟人生3的游戏发射器
EN

Code Review用户
提问于 2014-01-01 12:00:38
回答 2查看 434关注 0票数 2

有什么方法可以提高我的代码的可读性,还是我终于赢得了反对草率编码的战争?

下面是我为Sims 3制作的一个游戏启动程序,用来修复大缓存文件造成的糟糕性能。

代码语言:javascript
复制
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Forms;

namespace Sims_3___Anti_Cache
{
    public partial class Form1 : Form
    {
        Game Sims3;

        public Form1()
        {
            InitializeComponent();

            Sims3 = new Game();
            Sims3.cache = new List<string>() { "CASPartCache.package", "compositorCache.package", "scriptCache.package",
                                               "simCompositorCache.package", "socialCache.package" };

            Sims3.cache_path = "C:/Users/DarkShadow/Documents/Electronic Arts/The Sims 3/";
            Sims3.clear_cache();
            Sims3.path = "C:/Program Files (x86)/Electronic Arts/The Sims 3/Game/Bin/TS3.exe";

            isCleared.Enabled = true;
        }

        private void isCleared_Tick(object sender, System.EventArgs e)
        {
            if (Sims3.cache_cleared)
            {
                Process.Start(Sims3.path);
                Application.Exit();
            }
        }

    }
}
EN

回答 2

Code Review用户

回答已采纳

发布于 2014-01-01 15:28:19

从代码中移除硬编码字符串会使您受益。最好将它们放入app.config文件或资源文件中。配置文件的另一个优点是用户可以在不重新编译的情况下更改字符串。

方法和属性的命名对于C#来说不是标准的。对于公共方法和属性使用Pascal大小写,不带底栏。

代码语言:javascript
复制
Sims3.CachePath = configCachePath;
Sims3.ClearCache();

局部变量和私有方法的命名使用camel case。

代码语言:javascript
复制
isClearedTick();
票数 4
EN

Code Review用户

发布于 2014-01-01 15:36:54

Game类是什么?是干什么的呢?

不过,有些问题:

  • 硬编码文件的位置和名称是一个问题。至少,您应该通过使这些值可配置(命令行,使用像PROGRAMFILES(X86)CSIDL_MYDOCUMENTS这样的变量)来使代码更易于移植。
  • 您不需要进行任何验证来确保数据的实际存在。

从您显示的代码中,这个启动程序不会做很多事情,它会清除一个缓存(在后台?)并且(在回叫时)启动子进程。

您是否需要为此创建一个完整的程序?批处理文件似乎是正确的工具(也许您需要一个程序来清除实际的缓存文件?):

代码语言:javascript
复制
@echo off
rem clear cache files
ClearCaches "%CSIDL_MYDOCUMENTS%\Electronic Arts\The Sims 3\*Cache.package"
rem start game
"%PROGRAMFILES(X86)%\Electronic Arts\The Sims 3\Game\Bin\TS3.exe"

P.S.谷歌搜索后我找到了这个建议:

单击批处理文件时,它将运行并删除四个缓存文件,然后运行Sims。

代码语言:javascript
复制
@echo off
del "C:\Documents and Settings\My Computer\My Documents\Electronic Arts\The Sims 3\CASPartCache.package"
del "C:\Documents and Settings\My Computer\My Documents\Electronic Arts\The Sims 3\scriptCache.package"
del "C:\Documents and Settings\My Computer\My Documents\Electronic Arts\The Sims 3\compositorCache.package"
del "C:\Documents and Settings\My Computer\My Documents\Electronic Arts\The Sims 3\simCompositorCache.package"
start /d "C:\Program Files\Electronic Arts\The Sims 3 Ambitions\Game\Bin" Sims3Launcher.exe
票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/38383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档