以下は、行列の操作を実行するために使用しているクラスに含まれていた関数です。関数はブール値を返します。最初の IF ステートメントが TRUE でない場合は false の値を返します。したがって、この値が返されると、関数の残りの部分は既に値を返しているため実行されないと想定します。
私が関数を書いていたら、元の IF ステートメントに追加された ELSE 構造内に FOR ループを含めていたでしょう。私はプロのプログラマーではないので、答えが明らかである場合は申し訳ありません。この方法でコードを記述しなかっただけであり、この方法で記述されたすべての関数を変更する価値があるかどうかに興味があります。
public bool IsIdentityMatrix()
{
if (!this.IsSquareMatrix())
{
return false;
}
for (int i = 0; i < this.RowCount; i++)
{
for (int j = 0; j < this.ColumnCount; j++)
{
decimal checkValue = 0;
if (i == j)
{
checkValue = 1;
}
if (mInnerMatrix[i, j] != checkValue)
{
return false;
}
}
}
}