2009-01-25 56 views
3

每隔一段時間,我都會修改一段代碼,我想「鎖定」或使代碼區域爲「只讀」。這樣,我可以修改代碼的唯一方法是如果我先解鎖它。有沒有辦法做到這一點?有沒有辦法在Visual Studio中創建一個只讀區域?

+0

也許你可以爲VS編寫一個插件來檢查一個區域是否被擴展,區域名稱是否以某個關鍵字開頭? – 2009-01-25 22:53:57

+0

寫一個VS插件有多困難? – danmine 2009-01-26 06:23:09

回答

1

將代碼拆分爲單獨的文件,然後檢入源代碼控制系統?

5

在許多情況下,最簡單的方法是使其成爲部分類型 - 即其源代碼分佈在多個文件中的單個類。然後你可以讓一個文件是隻讀的,另一個文件是可寫的。

要聲明一個局部類型,你只需要使用partial上下文關鍵字聲明:

// MyClass.First.cs: 
public partial class MyClass 
{ 
    void Foo() 
    { 
     Bar(); 
    } 

    void Baz() 
    { 
    } 
} 

// MyClass.Second.cs: 
public partial class MyClass 
{ 
    void Bar() 
    { 
     Baz(); 
    } 
} 

正如你所看到的,它結束了,好像來源是都在同一個文件 - 你可以調用在另一個文件中聲明的方法沒有問題。

0

我想過這個,但我寧願將這個類放在一個文件中。 - danmine

對不起,mac。巫毒教的位爲SVN預先承諾可能趕上它,但是否則沒有其他比
//如果更改此代碼,你被解僱了

2

它編譯成成庫DLL,並使其可在參比溶液其他的項目。

1

鑑於您對部分類別的反駁......我無法知道單個文件中缺少文檔。其他選項?

  • 繼承;但基類中的受保護代碼(在您控制的程序集中);繼承者只能撥打public/protected成員
  • postsharp - 堅持保護邏輯屬性聲明外部

然而,這兩個仍然需要多個文件(也可能是多個組件)。

0

如果您使用版本控制系統,這是完全不必要的。因爲一旦你檢查了它,編輯代碼的哪一部分並不重要,你總是可以進行比較或回滾。哎呀,你可能會意外地清除所有的源代碼,並仍然得到它。

我得到一個非常糟糕的「code smell」的事實,你想鎖定代碼的某些部分。我在猜測,也許你在一個課堂上做得太多了,在這種情況下,將它重構爲適當的一組課程。事實上,經過10多年的視覺工作室的存在,這個功能是不可用的,應該表明,也許你的願望是由於設計不佳。

相關問題