我在Notepad ++中重构了一大块代码,并在parameters.cpp
if
/ else
语句的等效系列是什么?
答案 0 :(得分:3)
这似乎更像是打字挑战而非实际问题......
const TCHAR *pFolderStyleStr;
if ( svp._folderStyle == FOLDER_STYLE_SIMPLE )
pFolderStyleStr = TEXT("simple");
else if ( svp._folderStyle == FOLDER_STYLE_ARROW )
pFolderStyleStr = TEXT("arrow");
// (same for circle and none)
else
pFolderStyleStr = TEXT("box");
此处switch
优于if..else
,但我认为没有理由更改原始代码。 “重构”并不意味着“为了它而改写”。
如果你真的想重构,那么我的建议就是:
const TCHAR *pFolderStyleStr = folder_style_string(svp._folderStyle);
并添加一个函数:
const TCHAR *folder_style_string(WHATEVER_TYPE style)
{
switch(style)
{
case FOLDER_STYLE_SIMPLE: return TEXT("simple");
// ...
default: return TEXT("box");
}
}
答案 1 :(得分:0)
这相当于这样的事情:
if(folder_style == SIMPLE)
text = "simple"
else if(folder_style == ARROW)
text = "arrow"
//...more statements
else
text = "box"
答案 2 :(得分:0)
对于嵌套的三元表达式,我建议切换/ case语句比if / else更有效。