肯定:
int lowIndex = 0;
int highIndex = 1;
if ( end[0].X.ConvertToMillimetres() == end[1].X.ConvertToMillimetres()
&& end[0].Y.ConvertToMillimetres() > end[1].Y.ConvertToMillimetres()
|| end[0].X.ConvertToMillimetres() != end[1].X.ConvertToMillimetres()
&& end[0].X.ConvertToMillimetres() > end[1].X.ConvertToMillimetres())
{
lowIndex = 1;
highIndex = 0;
}
end[0].X.ConvertToMillimetres() != end[1].X.ConvertToMillimetres() && end[0].X.ConvertToMillimetres() > end[1].X.ConvertToMillimetres()
總是會等同於end[0].X.ConvertToMillimetres() > end[1].X.ConvertToMillimetres()
,所以因此:
int lowIndex = 0;
int highIndex = 1;
if ( end[0].X.ConvertToMillimetres() == end[1].X.ConvertToMillimetres()
&& end[0].Y.ConvertToMillimetres() > end[1].Y.ConvertToMillimetres()
|| end[0].X.ConvertToMillimetres() > end[1].X.ConvertToMillimetres())
{
lowIndex = 1;
highIndex = 0;
}
最後,我不確定ConvertToMillimetres的結果是什麼或它是多麼複雜/如果ConvertToMillimetres是時間密集型的以使用一些局部變量來捕獲這些方法的值以減少計算,那麼可能是有意義的......然後再次如果不是這樣,則可能不值得污染你的本地範圍,節省一點時間。可能,這是一個相當微不足道的功能,所以它不會很有優勢。 (結尾[0]和結尾1可能會更好地作爲局部變量,因爲克里希納說,甚至結束1 .X和結束1.Y等,但如果你這樣做,不妨保存結果。)
//capture values
var end0Xm = end[0].X.ConvertToMillimetres();
var end1Xm = end[1].X.ConvertToMillimetres();
var end0Ym = end[0].Y.ConvertToMillimetres();
var end1Ym = end[1].Y.ConvertToMillimetres();
//define proper lowIndex, highIndex
int lowIndex = 0;
int highIndex = 1;
if ( end0Xm == end1Xm
&& end0Ym > end1Ym
|| end0Xm > end1Xm)
{
lowIndex = 1;
highIndex = 0;
}
這可能是保存測試以備將來使用的結果是有用的,也即消除了,如果塊,這給少了機會爲別人弄亂的未來。但是,你仍然必須有條件地做一些事情。下一個代碼塊假定您知道並瞭解C#'s ternary operator。
var end0Xm = end[0].X.ConvertToMillimetres();
var end1Xm = end[1].X.ConvertToMillimetres();
var end0Ym = end[0].Y.ConvertToMillimetres();
var end1Ym = end[1].Y.ConvertToMillimetres();
//define proper lowIndex, highIndex
bool testCase = (end0Xm == end1Xm
&& end0Ym > end1Ym
|| end0Xm > end1Xm);
int lowIndex = testCase? 1 : 0;
int highIndex = testCase? 0 : 1;
或者,也許你喜歡highIndex = !testcase? 1: 0
,甚至highIndex = 1 - lowIndex
。
等等等等。
[codereview.se] – Adam
爲什麼你需要轉換爲毫米來比較值?似乎多餘。你自己也說過這是一個簡單的代碼塊。因此是否需要使它更簡單?可讀性是國王。 –
[標題不需要標籤](http://meta.stackexchange。com/questions/19190/should-questions-include-tags-in-titles) – Default