2011-03-23 20 views
1

可能重複的缺點:
public variables vs private variables with accessors哪些優點和使用訪問在C#

我目前正在建設一個小的應用程序來管理一個XML文件。每個條目在代碼中由自定義類的實例表示。現在設置並獲取屬性,我可以允許直接訪問它們,也可以使用訪問器。哪一個會更好,爲什麼?

+0

如果您試圖在.NET中管理Xml文件,您應該查看XML序列化和xsd.exe。 – rsbarro 2011-03-23 16:42:23

+0

可能的重複:http:// stackoverflow。com/questions/168169/public-variables-vs-private-variables-with-accessors – MPelletier 2011-03-23 16:45:35

回答

1

優點:

  1. 封裝 - 可以在以後修改設計而無需重新編譯使用DLL
  2. 可裝入接口(不能有字段)
  3. 可以覆蓋一切(發虛)
  4. 許多串行只會序列化的屬性,而不是場
  5. WPF綁定僅適用於性能

缺點:

  1. 更多的代碼輸入(但真的不具備自動實現的屬性更多)

一般情況下,我會一直使用他們在任何顯著類。至少我會使用自動屬性。

0

在這種特定情況下,訪問器的明顯的好處是,你可以限制只訪問那些屬性和有效的XML模式的孩子(假設的模式存在,這應該是這樣,因爲你是在控制XML)。這將由制定者實施,但獲得者也將幫助你減少打字次數。

0

訪問者讓你在未來的變化的東西引擎蓋下是如何工作的...也許你完全改變XML架構或XML溝......你可以修改訪問實施,使任何代碼調用你的類可以保持原樣是。

使用訪問器的而不是的唯一好處是您只需少量幾行代碼即可維護。

肯定使用訪問器類之間共享的東西。

2

有真不是個優點和使用存取與否的利弊:你必須使用它們。

這只是一個OOP原則:封裝訪問類的字段或計算值,讓消費者他們不會在意一些值是如何獲取或分配。

爲什麼?由於封裝。它是面向對象編程最重要的原理之一,因爲這確保了在單一點上檢索和分配值的方式。

+0

使用公共變量有*一些*合法邊緣情況。參見[John Skeet的文章,](http://csharpindepth.com/Articles/Chapter8/PropertiesMatter.aspx)在「Exceptional Cases」的副標題下,以及他鏈接的文章:[http://blogs.msdn.com/ricom /archive/2006/09/07/745085.aspx](http://blogs.msdn.com/ricom/archive/2006/09/07/745085.aspx) – 2011-03-23 16:57:02

+0

好的,但這只是意見,我可以與圖形編程中的第二個鏈接一致,但無論如何,99.9%的情況必須是「使用屬性並且不要直接暴露字段」。 – 2011-03-23 21:17:07

相關問題