Существует вполне законная причина использовать его в C #: , если код должен быть также расширяемым из VB.NET.(В противном случае я бы не стал.)
Поскольку VB.NET нечувствителен к регистру, в этом коде нет простого способа получить доступ к защищенному члену field
:
public class CSharpClass
{
protected int field;
public int Field { get { return field; } }
}
Напримерэто приведет к получению свойства, а не к полю:
Public Class VBClass
Inherits CSharpClass
Function Test() As Integer
Return Field
End Function
End Class
Черт, я даже не могу написать field
в нижнем регистре - VS 2010 просто продолжает исправлять его.
Чтобы сделать этоЛегко доступный для производных классов в VB.NET, нужно придумать другое соглашение об именах.Префикс подчеркивания является, вероятно, наименее навязчивым и наиболее «исторически приемлемым» из них.