【发布时间】:2021-06-03 09:36:05
【问题描述】:
下面的程序运行良好,但在每个函数中都重复了相同的四行。把它变成一个函数,然后直接用值调用它。不需要变量。
void __fastcall TfrmMain::Num1()
{
String name = GetCurrentDir() + "\\first.exe";
if(FileExists(name))
{
ShellExecute(NULL, L"runas", name.c_str(), NULL, NULL, SW_SHOWNORMAL);
}
else
{
Message();
}
}
void __fastcall Main::Num2()
{
String name = GetCurrentDir() + "\\second.exe";
if(FileExists(name))
{
ShellExecute(NULL, L"runas", name.c_str(), NULL, NULL, SW_SHOWNORMAL);
}
else
{
Message();
}
}
void __fastcall Main::Num3()
{
String name = GetCurrentDir() + "\\third.exe";
if(FileExists(name))
{
ShellExecute(NULL, L"runas", name.c_str(), NULL, NULL, SW_SHOWNORMAL);
}
else
{
Message();
}
}
【问题讨论】:
-
问题是什么?
-
唯一的区别是要运行的程序的名称吗?然后将其作为参数传递给单个函数。
-
顺便说一句,这应该更适合the code review SE site。
-
@Someprogrammerdude,它不适合Code Review,因为它要求替换代码而不是审查实际代码。而且它还需要更多的上下文才能进行审查。
标签: c++ c++builder