2012-10-16 31 views
3

有什麼辦法可以重構這段代碼,不必使用臨時變量,仍然使用與對象初始值設定項關聯的語法糖嗎?如何使用對象初始值設定項與使用語句?

FrmSomeForm someTempForm = new FrmSomeForm() 
{ 
    SomePropA = "A", 
    SomePropB = "B", 
    SomePropC = "C" 
}; 
using (FrmSomeForm someForm = someTempForm) 
{ 
    someForm.ShowDialog(); 
} 
+0

你可以做一個基本的'新'代碼塊代入圓括號,但它現在的方式更加清潔。 –

回答

4
using (FrmSomeForm someForm = new FrmSomeForm(){ 
    SomePropA = "A", 
    SomePropB = "B", 
    SomePropC = "C" 
}) 
{ 
    someForm.ShowDialog(); 
} 

不這項工作? OO

3

嘗試:

 using (FrmSomeForm someForm = new FrmSomeForm() 
         { 
          SomePropA = "A", 
          SomePropB = "B", 
          SomePropC = "C" 
         }) 
     { 
      someForm.ShowDialog(); 
     } 
0
using (FrmSomeForm someForm = new FrmSomeForm() 
    { 
     SomePropA = "A", 
     SomePropB = "B", 
     SomePropC = "C" 
    }) 
{ 
    someForm.ShowDialog(); 
} 

如果你不喜歡的格式,你可以做這樣的事情:

using (FrmSomeForm someForm = new FrmSomeForm() { SomePropA = "A", SomePropB = "B", SomePropC = "C" }) 
{ 
    someForm.ShowDialog(); 
} 

或者:

private FrmSomeForm InitFrmSomeForm() 
{ 
    return new FrmSomeForm() 
    { 
     SomePropA = "A", 
     SomePropB = "B", 
     SomePropC = "C" 
    }; 
} 

using (FrmSomeForm someForm = InitFrmSomeForm()) 
{ 
    someForm.ShowDialog(); 
} 
5
using (FrmSomeForm someForm = new FrmSomeForm()) 
{ 
    someForm.SomePropA = "A"; 
    someForm.SomePropB = "B"; 
    someForm.SomePropC = "C"; 
    someForm.ShowDialog(); 
} 

我認爲這是最簡單的方法,甚至在我看來更具可讀性...

讓事情簡單 :-)

+0

雖然不使用對象初始值設定項。 –

+1

@AndrewMartin這個答案的重點是你不應該也不需要。正如其他答案所示,使用它會產生更糟糕的代碼。 – Servy

+0

是的,但爲什麼在這種情況下使用對象初始值設定項?它沒有任何意義... – aleroot

0

你可以像下面這樣做

using 
(
    FrmSomeForm someForm = new FrmSomeForm() 
    { 
     SomePropA = "A", 
     SomePropB = "B", 
     SomePropC = "C" 
    } 
) 
{ 
    someForm.ShowDialog(); 
} 
相關問題