2011-07-04 15 views
2

これはこれのための場所ではないかもしれません、もしそうなら、私は謝罪し、あなたが私に答えを得ることが適切かもしれない方向に私を向けるように頼んでください。これは、私が多くのコードを書くときに遭遇する問題です。複雑な数式を書式設定する方法は?

new Vector2(parent.Coordinates.X + (Position + parent.Prompt.Length - parent.visibilityIndex) * parent.font.Width, parent.Coordinates.Y); 

これはかなりのラインです!だから私は2つに分解する:

new Vector2(parent.Coordinates.X + (Position + parent.Prompt.Length - parent.visibilityIndex) * parent.font.Width, 
      parent.Coordinates.Y); 

それは少し良いが、まだまだ長いです。他のどこでも私が行を分割しようとすると、任意のように見え、コードを難読化するために役立つ。私が間違っている?職業はなんですか?再度、私はこれが間違った場所であるかどうかわからないので、お詫び申し上げます。

+0

話題外でも非建設的でも閉鎖されるかもしれませんが、わかりません。おそらく、[programmers.se]の適切なコーディングスタイルの質問でしょうか?それとも、あまりにも低レベルの詳細ですか? –

+0

ええ、それはプログラマーでなければなりません。 –

答えて

4

これは主観的ですが、この場合は別の変数に分割します。

var fontWidth = parent.font.Width; 
var index = parent.visibilityIndex; 
var offset = (Position + parent.Prompt.Length - index) * fontWidth; 
return new Vector2(parent.Coordinates.X + offset, parent.Coordinates.Y); 

どのような方法でもあなたを最も分かりやすく分けます。

1

@Ed S.はかなりの変数を使用しますが、少ないもので同じ結果を達成できます。

double x = (Position + parent.Prompt.Length - parent.visibilityIndex); 
x *= parent.font.Width; 
x += parent.Coordinates.X; 
new Vector2(x, parent.Coordinates.Y); 
+0

..しかし、読むのが簡単です。 –

+0

..より多くのメモリを使用します。 –

+1

ええ、はい、その2つの余分なスタック割り当て変数は高価です!ボトルネックになったら私に見せてください。そして私はあなたに同意します。また、私はあなたに、その主張をする前に解体を見てほしい。 –

1

私は通常、ちょうどコラム80のコラムガイドを設定し、私はガイドの前に見つける最初のオペレータに破る:

new Vector2(parent.Coordinates.X + (Position + parent.Prompt.Length -   | 
    parent.visibilityIndex) * parent.font.Width, parent.Coordinates.Y);  | 

それは(おそらく最も読みやすいアプローチではありません、時にはいくつかの調整を必要とします特にridiculouslyLongVariableOrMethodNamesに対処する必要がある場合)、それは私の仕事です。 YMMV。

+0

私も列ガイドを追加しますが、この例では最初の引数がどこで終了するかをカンマで調べる必要があります。元の例よりも読みやすいとは言えません。 –

+0

@Ed:私は反対意見は言えません - 私が答えて言ったように、確かに*最も読みやすいアプローチではありません。つまり、コンマを強調表示するように微調整することもできます(たとえば、区切りが必要ではないにもかかわらず、コンマを区切るなど)。 – Mac

関連する問題