2014-06-05 31 views
2

我最近繼承了一些長達數千行並且極度混亂的代碼。在C#中,有沒有辦法將同一個類中的代碼分離成單獨的文件?

我試圖重新考慮它,以便代碼至少更容易找到,但由於它是在Visual Studio中構建的,所有內容都包含在一個「表單」類中,並且它的寫法使它很難分開代碼而不會破壞某些東西。

有沒有辦法讓我的代碼可以在不同的文件中生存,但仍然保持在同一個類中?

+6

查找「部分類」,在多個類別 –

+1

爲什麼不拆的功能呢? – Max

+1

記住先使用谷歌:複製粘貼你的標題給出第一個結果的答案。 http://msdn.microsoft.com/en-us/library/bb514141.aspx –

回答

7

是的。只需使用partial關鍵字爲班級文件中類的每個「部分」。

// example class A in file: A1.cs 
public partial class A { } 

// example class A in file: A2.cs 
public partial class A { } 

更多信息,MSDN發現和其他成千上萬的網站和博客。

+0

謝謝,這完美地解決了我的問題! – Ahmed

0

是的,這是可能的。這是Visual Stuido爲Win Forms等產品生成代碼的方式。它能夠將實現分成兩個單獨的文件,並且使用戶能夠只改變一個文件,從而減少將問題搞砸的可能性。

該概念被稱爲partial classes。您可以在兩個不同的文件中定義相同的類,但類定義需要在字體中包含partial。 structsinterfaces也是可能的。

更多在這裏閱讀:
http://msdn.microsoft.com/en-us/library/wa80x488.aspx

1

還要考慮使用#region指令分割成代碼更通航塊。由於一個文件可以與類保持一致,因此這也將更容易導航,並且沒有人需要在不同文件中挖掘同一類的各個部分。

+0

區域只允許摺疊文件的一部分。 – Andro

+0

該問題還指出了這是一個臃腫,混亂的類文件的原因。因此,我提供了一種替代解決方案,因爲部分類(分割文件本身的唯一方法)已經被建議(多次) – David

0

使用部分類。例如:

如果你有Example.cs一類這樣:

public class Example 
{ 
    public void Func1() 
    { 

    } 

    public void Func2() 
    { 

    } 

    public void Func3() 
    { 

    } 

    public void Func4() 
    { 

    } 
} 

您可以輕鬆地將它更改爲:

Example.cs

public partial class Example 
{ 
    public void Func2() 
    { 

    } 

    public void Func4() 
    { 

    } 
} 

RestOfTheExample.cs

public partial class Example 
{ 
    public void Func1() 
    { 

    } 

    public void Func3() 
    { 

    } 
} 

希望這有助於!

0

通過使用部分類爲前

public partial class Employee 
{ 
    public void DoWork() 
    { 
    } 
} 

public partial class Employee 
{ 
    public void GoToLunch() 
    { 
    } 
} 
相關問題