2010-03-12 66 views
1

對於使用應用程序語義使用#區域摺疊,而不是摺疊「語法」,您有什麼看法?語義#區域用法

例如:

#region Application Loop 
#region User Management 
#region This Kinf of stuffs 

代替

#region Private Routines 
#region Public Properties 
#region ThisRoutine // (Yes, I've seen this also!) 

在這樣的邏輯,我開始倍甚至常規機構。我開始喜歡#region指令(甚至在使用C++時使用#pragma區域!)。

+0

我會將此標記爲社區WIKI,否則它可能會關閉 – JaredPar 2010-03-12 19:28:52

回答

7

這會暗示你在一種類型中做得太多 - 爲什麼「應用程序循環」與「用戶管理」的類型相同?如果您發現自己想要這樣做,請考慮將功能分成不同的類型。

通常我使用接口實現,Equals/GetHashCode覆蓋和運算符的區域 - 但通常都是這樣。

+0

我認爲這些僅僅是示例,並不一定都在同一個文件中。 – 2010-03-12 19:33:01

+0

是的。那裏只有例子。一個完整的例子可能是這樣的:http://genomalib.svn.sourceforge.net/viewvc/genomalib/trunk/Derm/Render/RenderContext.cs?revision=60&view=markup或這個:http://genomalib.svn.sourceforge .net/viewvc/genomaib/trunk/Derm/Render/Shaders/ShaderObject.cs?revision = 61&view = markup – Luca 2010-03-12 20:01:36

+1

即使它們不在同一個文件中,我也不會期望在用戶中扮演重要角色的類型管理層做其他事情。 – 2010-03-12 20:19:41

1

我喜歡將我的代碼轉換成基於語法的地區,因爲我可以很容易地找到構造,覆蓋的方法等等...

1

我用地區組的方法與普通/相關的目的。

因此,而不是公有,保護私人的區域,認爲「初始化」的,「加載和保存」,「事件處理程序」等

這樣做的目的是爲摺疊類作爲功能的總結或概述,並使您可以輕鬆找到要查找的部件。理想情況下,您通常會在您的應用程序的類中使用幾個標準區域「類型」,以便它們都可以一直細分。

1

我見過過去做過這些的開發者,最終結果很少。問題在於期望那些關注的人能夠理解分組並正確識別他們添加的正確區域。根據我的經驗,最容易發生的情況是,最終導致新區域擴散,每次功能更改一次,最糟糕的是,在班級結束時,任何舊地方或無地區的新方法都會停止。

我想說的是一個明顯的計劃。最常見的是「私人領域/公共領域/私有財產/私有方法/公共財產/公共方法」計劃。 (就我個人而言,我喜歡根據知名度進行分組:「公共/內部/私人」,因爲頂端的更多可見成員因此成爲班級的臨時訪問者首先感興趣的內容,而哪裏仍然非常明顯。)

+0

這似乎是一個堅實的觀點。 – Luca 2010-03-12 20:10:07

2

我唯一使用區域的方法是隱藏一些未實現的接口方法或一堆代碼,但我沒有完全準備好殺死它。

我傾向於認爲,如果需要它摺疊,以幫助您跟蹤它都在那裏是文件太多代碼(或者其他通用代碼的氣味[或摺疊的氣味?]),如果不需要摺疊摺疊將實現唯一的事情是令人沮喪的人不得不去尋找應該在展示的代碼。

我不喜歡自己隱藏代碼。