2017-07-17 22 views
1

只是櫃面我模糊的描述是不夠的,給你完整的圖片,我的意思是這樣的:分組變量類型有什麼作用,而不是看起來整潔?

private bool 
    f = true, 
    oo = false, 
    b, 
    a, 
    r = false; 

代替:

private bool f = true; 
private bool oo = false; 
private bool b; 
private bool a; 
private bool r = false; 

是否有分組任何顯着的優勢或劣勢在這條路?

+0

沒有。僅供參考,你可以檢查IL。 – Botonomous

+2

我強烈懷疑兩者都會編譯成相同的結果。 – David

+3

對我而言,_not_分組看起來更整潔。 –

回答

4

粘貼您的兩個例子爲LINQPad產生相同的結果IL:

IL_0000: nop   
IL_0001: ldc.i4.1  
IL_0002: stloc.0  // f 
IL_0003: ldc.i4.0  
IL_0004: stloc.1  // oo 
IL_0005: ldc.i4.0  
IL_0006: stloc.s  04 // r 
IL_0008: ret  

因此,沒有功能上的區別,只是個人喜好。

+0

不錯! Omg btw,wtf是IL? – n00dles

+1

@ n00dles [中級語言](https://en.wikipedia.org/wiki/Common_Intermediate_Language)。 –

+0

哦,對!那個東西!那麼,我該如何檢查性能?我可以在VS2017內做到嗎? – n00dles

3

編譯器爲這兩個代碼片段生成的代碼將是相同的,因此唯一剩下的問題是生成的代碼的可維護性。

至於可維護性而言,主要的區別是,「取消組合」的方式讓你寫文檔註釋爲每個單獨的變量,即

/// <summary>Red color component</summary> 
private int red; 
/// <summary>Green color component</summary> 
private int green; 
/// <summary>Blue color component</summary> 
private int blue; 

而「分組」的方法可以讓你指定一個整個組的文檔評論:

/// <summary>RGB color components</summary> 
private int red, green, blue; 

兩種方法都不比其他;他們只是不同。

+1

GA!(好的答案)(......現在多餘)所以,如果你想對一個小組進行一攬子評論,那很好。這很好。 – n00dles

0

所以從我能從評論和答案中收集到的東西;在分組與非分組之間沒有實際的性能差異;出於各種原因,分組通常是'皺眉'。然而,分組變量確實看起來像是如果你要組密切相關的變量,這將總是共享相同的類型無障礙評論它可能是有利的。這可以提高效率和工作流程的性能,但在廣泛使用的情況下可能不太清晰。

相關問題