2012-04-29 1 views
0

У меня есть следующий фрагмент кода, который я использую, чтобы установить серию этикеток к невидимым, когда TestType 2 выполняетсяОбъединение нескольких, если заявления

 if ((int)testType == 2) 
      indmetaL.Visible = false; 
     if ((int)testType == 2) 
      midmetaL.Visible = false; 
     if ((int)testType == 2) 
      rinmetaL.Visible = false; 
     if ((int)testType == 2) 
      litmetaL.Visible = false; 

Я попытался структурировать эти заявления, как это:

if ((int)testType == 2) 
     indmetaL.Visible = false; 
     midmetaL.Visible = false; 
     rinmetaL.Visible = false 
     litmetaL.Visible = false; 

однако, когда я делаю midmetaL, rinmetaL и litmetaL оставаться невидимыми во время TestType 1

я уверен, что есть способ, чтобы установить все эти «видимые» Prope rties к false в одной строке, но я не уверен в синтаксисе, любая помощь приветствуется, спасибо!

+0

@ChaosPandion он, вероятно, просто Python написания разработчик кода Python в C#;) – gordy

ответ

3
if ((int)testType == 2) 
{ 
     indmetaL.Visible = false; 
     midmetaL.Visible = false; 
     rinmetaL.Visible = false 
     litmetaL.Visible = false; 
} 
+0

я знал это было что-то смехотворно просто, это то, что я получаю за работу слишком поздно, спасибо: D –

+0

Я думаю, что мне нужно больше объяснений, чтобы проголосовать. Такая фундаментальная концепция должна быть понята до написания серьезного кода. – ChaosPandion

1

Вы должны использовать фигурные скобки, чтобы определить statement block для if, в противном случае только первая строка относится к нему. Так это работает:

if ((int)testType == 2) 
{ 
    indmetaL.Visible = false; 
    midmetaL.Visible = false; 
    rinmetaL.Visible = false 
    litmetaL.Visible = false; 
} 

Why is it considered a bad practice to omit curly braces?

1

Используйте фигурные скобки для группировки нескольких операторов в блок;

if ((int) testType == 2) 
{ 
    indmetaL.Visible = false; 
    midmetaL.Visible = false; 
    rinmetaL.Visible = false; 
    litmetaL.Visible = false; 
} 

В C#, то if оператор условно выполняет только сразу после заявления или блока. Таким образом, вам нужны фигурные скобки. То же самое, как правило, относятся и к другим операторам управления потоком, таким как for, while и т.д.

+0

Имейте в виду, что блок является инструкцией. – ChaosPandion

+0

Правильно, вот в чем смысл. Но это может быть не очевидно для менее опытных программистов. Таким образом, я явно сказал «заявление или блок», если кто-то не знаком с этой эквивалентностью. –

2

либо использовать фигурные скобки, чтобы создать блок кода:

if ((int)testType == 2) 
{ 
    indmetaL.Visible = false; 
    midmetaL.Visible = false; 
    rinmetaL.Visible = false 
    litmetaL.Visible = false; 
} 

или использование цепи, назначение:

if ((int)testType == 2) 
    indmetaL.Visible = midmetaL.Visible = rinmetaL.Visible = litmetaL.Visible = false; 
+0

whoa Я не знал, что вы можете сделать это в C# +1 для изучения чего-то нового. Пусть также сделайте его однострочным и назначьте их всем '((int) testType == 2) – gordy

0

используйте операторы Switch. Они быстрее, чем операторы, потому что они прямо переходят к правильному случаю.

switch((int)testType) 
{ 
    case 2: 
     indmetaL.Visible = false; 
     midmetaL.Visible = false; 
     rinmetaL.Visible = false; 
     litmetaL.Visible = false; 
    break; 
} 

или если вы хотите, если заявление вы можете записать его в одной строке без фигурных скобок, как этот

if((int)testType==2) 
    indmetaL.Visible = midmetaL.Visible = rinmetaL.Visible = litmetaL.Visible = false; 

 Смежные вопросы

  • Нет связанных вопросов^_^