2008-12-28 139 views
1

使用自動implemnted性的判定像C# - 使用自動實現的屬性和命名約定

公共字符串myProperty的{獲得;組; }

這很棒,直到你來命名約定。

我用強調了一流的水平,即場

串_MyProperty;

所以用auto實現就意味着它不是什麼明顯的變量和範圍。

如果你明白我的意思,任何想法?

馬爾科姆

編輯:屬性是公共你不希望用一個下劃線。

回答

0

當你使用自動屬性和現代IDE(如visual studio)時,你根本不需要_。如果您使用自動屬性和不同的可見性,智能感知將正常工作。編譯器也會檢查它。

public string SomeString { private set; get; } 

    private string some2string; 

    public string Some3string { set; get; } 

這意味着SomeString只是內部可寫的。你不會在課外獲得財產。所以沒有魔法等

如果你有一個真正的類屬性,那麼就沒有必要使財產,只是一個領域。

0

該屬性本身是公共的。編譯器爲您的屬性生成私有字段。由於自動實現的屬性不是由MSIL本機支持的。但是因爲私有字段是由編譯器生成的,所以你不需要直接處理它們。

關於命名約定的一本很棒的書是Brad Abrams的第二版框架設計指南。 link

一個偉大的工具來執行命名約定是Stylecop

0

字段/屬性:

如果只是用「獲取,設置」在我的例子,你是對的,應該是什麼區別,但是,也許你會做一些額外的任務,如果有人打電話給財產,或設置財產。也許你會檢查一下設置屬性,或者更新對象的內部狀態。