我正在编写一个小的C#控制台应用程序,我想知道是否有方法来改进这部分代码(特别是如何使它遵守“不要重复自己”的原则)。 我的应用程序在这种结构下也很好用,但我不喜欢它的样子。
if (rows % 2 == 0)
{
evenCell = '#';
oddCell = '.';
}
else
{
evenCell = '.';
oddCell = '#';
}
我是个新手,所以我可能错过了一些明显的东西。 提前谢谢!
也许这样简短的版本更好:
(rows % 2 == 0) ? (evenCell = '#'; oddCell = '.';) : ( evenCell = '.'; oddCell = '#');
您可以尝试条件运算符?:
var evenCell = rows % 2 == 0 ? '#' : '.';
var oddCell = rows % 2 == 0 ? '.' : '#';
它较短,但在本例中,您要计算行%2
表达式两次
您还可以使用具有元组模式的C#8switch
表达式
(char evenCell, char oddCell) result = (rows % 2) switch
{
0 => ('#', '.'),
_ => ('.', '#')
};