0

if..elseのこの長いループがあります。誰かが「switchcase」がこれに適しているのか「if..else」に適しているのかを知るのを手伝ってもらえますか?

if (meals == null)
{
    bfast.Hide();
    lunch_rb.Hide();
    dinner_rb.Hide();
}
else if (meals != null)
{
    if (breakfast != null && lunch == null && dinner == null)
    {
        lunch_rb.Hide();
        dinner_rb.Hide();
    }
    if (breakfast == null && lunch != null && dinner == null)
    {
        bfast.Hide();
        dinner_rb.Hide();
    }
    if (breakfast == null && lunch == null && dinner != null)
    {
        bfast.Hide();
        lunch_rb.Hide();
    }
    if (breakfast != null && lunch != null && dinner == null)
    {
        dinner_rb.Hide();
    }
    if (breakfast != null && lunch == null && dinner != null)
    {
        lunch_rb.Hide();
    }
    if (lunch != null && breakfast == null && dinner != null)
    {
        bfast.Hide();
    }

私はWindowsCE5.0用のアプリケーションを開発しています(これが役立つ場合)

4

6 に答える 6

10

この場合のより良い解決策は次のとおりだと思います。

if (breakfast == null)
  bfast.Hide();
if (lunch == null)
  lunch_rb.Hide();
if (dinner == null)
  dinner_rb.Hide();
于 2012-09-29T08:00:08.010 に答える
6

このようなことを試すことができます。複数の変数に条件があるため、スイッチに渡すための式を作成する必要があるため、以下に示すようにifを使用すると簡単になります。

if (breakfast == null)
      bfast.Hide();

if (lunch == null)
      lunch_rb.Hide();

if (dinner == null)
      dinner_rb.Hide();
于 2012-09-29T08:01:15.983 に答える
1

この特定のシナリオでは、複雑な条件があり、それは switch-case ではできないことなので、if-else の方が優れています。

于 2012-09-29T07:58:52.970 に答える
0

if...elseこの質問については、十分だと思います。switch...caseこのような複雑な状況に対処することはできません。お気軽にご利用ください。

于 2012-09-29T08:02:21.013 に答える
0

Switch case は常に if...else if よりも優れています。なぜなら、タイピングが少なくて済み、コードが読みやすく理解しやすいからです。

于 2012-09-29T08:10:12.780 に答える
0

ifとのswitchステートメントのパフォーマンス レベルに大きな違いはありません。とにかく、あなたのコードは条件の混乱です。ピゲイラスの答えを考慮してください。何かのようなもの

bfast.Hide();
lunch_rb.Hide();
dinner_rb.Hide();
if (meals != null) {
  if (breakfast != null)
    bfast.Show();
  if (lunch =! null)
    lunch_rb.Show();
  if (dinner =! null)
    dinner_rb.Show();
}
于 2012-09-29T08:23:47.863 に答える