3

明示的に何かを行う関数を作成する方が良いですか (つまり、HideForm/ShowForm など...)

それとも、「トグル」タイプの関数 (つまり、ToggleVisibility) を作成する方が良いですか?

コードを読んで状態を追跡するのは難しいため、トグル型の関数は扱いにくいと思います。

トグル型の機能どのような場面で役立ちますか?

4

2 に答える 2

1

私はJavasScriptでボタン(のようなチェックボックス)と可視性を処理するために時々それを使用しますが、処理しようとしている思考の状態を制御するのが少し難しくなるため、ほとんどの場合それを避けます。

初期状態がわからない、またはわからない場合は、悪い場合があります(ただし、通常は可能です)。とにかく、ほとんどの場合、実行するためにいくつかの「simetric」または単純なコードを必要としないので、私は.toogleをあまり使いません

于 2010-04-13T18:55:32.953 に答える
1

目標が読みやすさである場合は、2 つの別個の関数を使用します。

ShowXYZ()HideXYZ()またはToggleXYZ(bool show)。後者はコード内でToggleXYZ(true)orとしてのみ表示されToggleXYZ(false)、それぞれが何をするのかがやや不明確になります。それらを 2 つの別個の関数として配置すると、その関数が何をすべきかについて推測することができなくなります。

別のオプションがあるので、あなたが尋ねた質問を少し拡張します。2つ以上の状態がある場合の拡張性のために、使用している言語を利用できます (ここでは C# で例を示しているため、YMMV です)。

したがって、C# の場合、 を作成しenumてさまざまな状態を提供し、コードを読みやすくすることができます。次のようなものがあります。

SetXYZState(XYZState.Show)

また

SetXYZState(XYZState.MakeWaffles)

同じ関数シグネチャを使用している間、これは非常に明確です。

これは、状態が 2 つしかない場合 (または、後で拡張する場合は 1 つだけ) の状況に適用できますが、セットアップのオーバーヘッドは、単純に 2 つの関数を記述するよりもおそらく多くの作業になります。

于 2010-04-13T19:10:25.443 に答える