我在审查log4net的一些代码时遇到了这个问题。privatestaticreadonlyILoglogger=LogManager.GetLogger(typeof(AdminClient));我想知道为什么你需要有privatestaticreadonly。根据我的理解,private意味着除非有访问器方法或get属性,否则不能在类外使用该变量。static意味着该变量仅在该文件中起作用。readonly意味着您只能读取值而不能分配它。所以,我在想写这段代码的人。将其声明为私有(private)的,因为他们不希望它在类之外使用,而声明为静态的,因此不希望它在文件之外使用。但是,如
到目前为止我有这段代码:NetworkInterface[]adapters=NetworkInterface.GetAllNetworkInterfaces();foreach(NetworkInterfaceadapterinadapters){IPInterfacePropertiesproperties=adapter.GetIPProperties();foreach(IPAddressInformationuniCastinproperties.UnicastAddresses){//Ignoreloop-backaddresses&IPv6if(!IPAddress.Is
到目前为止我有这段代码:NetworkInterface[]adapters=NetworkInterface.GetAllNetworkInterfaces();foreach(NetworkInterfaceadapterinadapters){IPInterfacePropertiesproperties=adapter.GetIPProperties();foreach(IPAddressInformationuniCastinproperties.UnicastAddresses){//Ignoreloop-backaddresses&IPv6if(!IPAddress.Is
首先,我知道这个问题已经被问过好几次了,最后,这主要是个人喜好问题,但是阅读了所有关于这个主题的帖子,有些事情我不太清楚。基本上,大多数人至少同意的一点是公共(public)成员应该是PascalCased,而私有(private)成员应该是lowerCamelCased。通常引起争论的问题是是否在私有(private)成员前加上下划线或其他任何前缀。前缀违反了几个StyleCop规则(虽然很明显可以关闭)不加前缀的理由是你应该使用它。改为前缀。我的问题是我不明白它是如何产生影响的?我的意思是,这并不是说你不能在类里面对公共(public)成员使用它。让我们想象一个Customer类,
首先,我知道这个问题已经被问过好几次了,最后,这主要是个人喜好问题,但是阅读了所有关于这个主题的帖子,有些事情我不太清楚。基本上,大多数人至少同意的一点是公共(public)成员应该是PascalCased,而私有(private)成员应该是lowerCamelCased。通常引起争论的问题是是否在私有(private)成员前加上下划线或其他任何前缀。前缀违反了几个StyleCop规则(虽然很明显可以关闭)不加前缀的理由是你应该使用它。改为前缀。我的问题是我不明白它是如何产生影响的?我的意思是,这并不是说你不能在类里面对公共(public)成员使用它。让我们想象一个Customer类,
classTestClass{privatestring_privateString="hello";voidChangeData(){TestClassotherTestClass=newTestClass();otherTestClass._privateString="world";}}此代码在C#中编译,等效代码在PHP中运行,但有人可以解释为什么可以在此处更改otherTestClass._privateString的原因吗?我原以为类的实例在任何情况下都不能更改私有(private)成员变量,并且尝试访问otherTestClass._privateString会给出“由于
classTestClass{privatestring_privateString="hello";voidChangeData(){TestClassotherTestClass=newTestClass();otherTestClass._privateString="world";}}此代码在C#中编译,等效代码在PHP中运行,但有人可以解释为什么可以在此处更改otherTestClass._privateString的原因吗?我原以为类的实例在任何情况下都不能更改私有(private)成员变量,并且尝试访问otherTestClass._privateString会给出“由于
在下面的代码中:publicclassMovieRepository:IMovieRepository{privatereadonlyIHtmlDownloader_downloader;publicMovieRepository(IHtmlDownloaderdownloader){_downloader=downloader;}publicMovieFindMovieById(stringid){varidUri=...buildURI...;varhtml=_downloader.DownloadHtml(idUri);return...parseIDHTML...;}publi
在下面的代码中:publicclassMovieRepository:IMovieRepository{privatereadonlyIHtmlDownloader_downloader;publicMovieRepository(IHtmlDownloaderdownloader){_downloader=downloader;}publicMovieFindMovieById(stringid){varidUri=...buildURI...;varhtml=_downloader.DownloadHtml(idUri);return...parseIDHTML...;}publi
使用Type.GetProperties(),您可以检索当前类的所有属性和基类的public属性。是否也可以通过某种方式获取基类的private属性?classBase{privatestringFoo{get;set;}}classSub:Base{privatestringBar{get;set;}}Subs=newSub();PropertyInfo[]pinfos=s.GetType().GetProperties(BindingFlags.NonPublic|BindingFlags.Public|BindingFlags.Instance|BindingFlags.Stat