2012-02-02 48 views
1

我正在閱讀關於MVC-Linq to SQL的教程。在這裏,我注意到他們正在使用的對象名稱下劃線(在對象名稱第一個字符),如「_dataContext」以下劃線開頭的對象名稱

下面是代碼:

using System.Collections.Generic; 
using System.Linq; 

namespace MvcApplication1.Models 
{ 
     public class MovieRepository : IMovieRepository 
     { 
       private MovieDataContext _dataContext; 

       public MovieRepository() 
       { 
        _dataContext = new MovieDataContext(); 
       } 

       #region IMovieRepository Members 

       public IList<Movie> ListAll() 
       { 
        var movies = from m in _dataContext.Movies 
         select m; 
        return movies.ToList(); 
       } 

       #endregion 
     } 
    } 

我的問題是,什麼是使用這個的目的強調?

+0

相關閱讀:[成員變量的下劃線前綴。 intellisense](http://stackoverflow.com/q/833811) – 2012-02-02 22:22:36

回答

6

我的問題是,使用這個下劃線的目的是什麼?

無技術目的。這僅僅是一些人用來指定私人領域的慣例。它完全是可選的,只是一種風格選擇。

+4

我發現它的最大優點是,intellisense /調試窗口進行排序,所以所有的支持字段一起出現在一個地方。我發現的最糟糕的優勢是它能夠激起關於編碼風格的激烈辯論。 – 2012-02-02 22:28:13

+0

@HansJonus我同意 - 編碼風格非常個人化。我個人使用較低的駱駝案例,但僅僅是因爲StyleCop會強制執行此操作,並且有一個工具可幫助保證項目的一致性。但是,在這裏使用任何約定都沒有技術上的理由。 – 2012-02-02 22:36:48

0

這基本上可以一目瞭然地區分類級別字段和局部變量以及方法參數。

0

從其他類型的字段中劃出私有實例變量。這是一個慣例;沒有語義價值。

順便說一句,「官方」MS C#編程指南建議駱駝案例爲私人類變量。這個決定取決於你和你的團隊,但是我個人不喜歡它,因爲名稱經常會與方法參數相沖突。我自己使用下劃線,但是再次使用最適合您和代碼的其他維護者的任何工具。唯一的硬性規定是一致的。

1

按照慣例劃分的下劃線表示私人成員,但沒有實際效果。而且,任何以下劃線開頭的非私有成員都會引發編譯器警告。

0

我見過這個用於程序員有VB.NET背景的項目:由於VB大多不區分大小寫,這將有助於字段和屬性之間的區別(例如,它是指示私有字段的編碼約定,我認爲)。

VB程序員這樣寫:

Public Class Princess 
    Private _pretty 
    Public ReadOnly Property Pretty As Boolean 
     Get 
      Return _pretty 
     End Get 
    End Property 
End Class 

而C#程序員可以編寫

public class Princess 
{ 
    private bool pretty; 
    public bool Pretty { get { return pretty; } } 
} 

注意,在這兩種情況下,這些類型的默認公主將是醜陋的。

+1

有點不對勁,叫我VB程序員!:D – 2012-02-02 22:53:31

+0

C#程序員不會在同一行上放置大括號({) – MyKuLLSKI 2012-02-03 07:25:31

+0

@MyKuLLSKI同意這樣做,主要是爲了使示例代碼更簡潔一些。儘管編輯它雖然! – Jeroen 2012-02-03 09:16:18

1

它,所以你不必來堆棧溢出,解釋爲什麼這給你一個堆棧溢出

private int someValue; 

public int SomeValue {get {return someValue; } set {SomeValue = value;}} 

名字只是不同的情況下,不喜歡......

+0

好吧,先生:) – 2012-02-02 23:57:53

相關問題