Cam*_*tin 106 c# specifications private access-modifiers auto-generate
据我所知,private
是默认无处不在C#中(也就是说,如果我不写public
,protected
,internal
等这将是private
默认情况下).(如果我错了,请纠正我.)
那么,编写该关键字的原因是什么,或者为什么它甚至存在于成员中?
例如,当自动生成事件处理程序时,它看起来像这样:
private void RatTrap_MouseEnter(object sender, CheeseEventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
但是,如果暗示和默认,为什么它甚至写私人?只是为了让新手开发人员(不知道它是C#默认值)知道它是私有的吗?或者编译器有区别吗?
此外,是否存在写"私人"(单独)会改变会员的可访问性的情况?
Ree*_*sey 166
AFAIK,private是C#中的默认值(意思是如果我不写public,protected,internal等,默认情况下它将是私有的).(如果错误,请纠正我).
这不是真的.默认情况下,命名空间中定义的类型(类,结构,接口等)将是内部的.此外,不同类型的成员具有不同的默认可访问性(例如接口成员的公共可访问性).有关详细信息,请参阅MSDN上的辅助功能级别.
也,
那么,编写该关键字的原因是什么,或者为什么它甚至存在?
明确指定这有助于表示您打算将类型设为私有,非常明确.这有助于提高代码的可维护性.这可以帮助其他开发人员(或您自己)知道某个成员是默认的还是故意的,等等.
Jon*_*eet 117
AFAIK,private是C#中的默认值
不完全 - 默认是"此声明可用的最受限制的访问权限".例如,对于顶级类型,默认值为internal
; 对于嵌套类型,默认值为private
.
那么,编写该关键字的原因是什么,或者为什么它甚至存在?
它使它显而易见,这有两个原因:
至于你的最后一部分:
此外,是否存在写"私人"(单独)会改变会员的可访问性的情况?
是的,因为使一半的财产比另一个更具限制性:
// Public getter, public setter
public int Foo { get; set; }
// Public getter, private setter
public int Bar { get; private set; }
Run Code Online (Sandbox Code Playgroud)
我曾经在任何地方都使用默认设置,但我已经确信(部分由Eric Lippert)明确表示你已经考虑过并决定私有化是一个好主意.
我个人希望有这样做的密封/启封,也为类型声明的方式-可能甚至有一个默认值.我怀疑很多开发人员(如果我不小心的话,我自己也包括在内)只是因为没有密封的课程,因为它比没有密封.
Rya*_*ndy 11
private
增加了视觉上的混乱.对于那些坚持让事情变得明确的人,我会问:你是否也用数学做过这个?例如:
var answer = a + b / c;
Run Code Online (Sandbox Code Playgroud)
如果没有多余的括号,你会发现不清楚b / c
吗?
C#中的规则非常简单:默认情况下,所有内容都尽可能接近私有. 因此,如果您需要比默认值更可见的内容,请添加修饰符.否则,请勿在代码中添加不必要的关键字.
据我所知,私有是C#中的默认值
明确声明私有,意味着你知道它是私有的.不只是认为它,因为据你所知,它是默认的.这也意味着看到代码的其他人知道它是什么.
有没有"我认为这是","我敢肯定它是"等它只是为.每个人都在同一页上.
我不是C#开发人员.如果我不得不使用一些未明确声明为私有的代码,我可能会认为它是内部的.
当隐含地设置事物时我不喜欢.它永远不会像明确设置时那样清晰.
很多人(像我这样的人!)经常使用几种不同的语言进行编程。明确地处理这些事情可以让我不需要记住我编程所用的所有语言的所有神秘细节。
归档时间: |
|
查看次数: |
14494 次 |
最近记录: |