结构如下:我的类(class):超类(class)2父类(superclass)2:父类(superclass)1superClass2在Product.Web中,而SuperClass1在.NETSystem.Web程序集中我试图将一个值强加到SuperClass1上的私有(private)bool字段中。但无论我尝试什么,我都无法让字段从反射中返回。我将以下代码与不同的BindingFlag组合一起使用,但到目前为止没有任何效果。SuperClass1是一个抽象类。((SuperClass1)this).GetType().GetFields(System.Reflection.B
这是.NET哲学家的问题:据我了解,Microsoft有意拒绝在C#中使用私有(private)类。他们为什么这样做,他们这样做的理由是什么?例如,我正在构建一个包含报告工具的大型应用程序。该工具使用了很多仅在报告工具中使用而不在项目的其他部分中使用的业务对象。我想将它们封装起来,仅在报告工具本身内使用。伟大的决定是在VS中为这个工具创建单独的项目,我会这样做,但我很有趣,如果我不能这样做怎么办-例如我们的架构不够好,我们有大的单一项目。在“私有(private)类”后面,我指的是不能在任何其他命名空间中使用的类,除了它自己的。我的问题不是-我如何模拟这个,或者以其他方式做。我只是想知
这是.NET哲学家的问题:据我了解,Microsoft有意拒绝在C#中使用私有(private)类。他们为什么这样做,他们这样做的理由是什么?例如,我正在构建一个包含报告工具的大型应用程序。该工具使用了很多仅在报告工具中使用而不在项目的其他部分中使用的业务对象。我想将它们封装起来,仅在报告工具本身内使用。伟大的决定是在VS中为这个工具创建单独的项目,我会这样做,但我很有趣,如果我不能这样做怎么办-例如我们的架构不够好,我们有大的单一项目。在“私有(private)类”后面,我指的是不能在任何其他命名空间中使用的类,除了它自己的。我的问题不是-我如何模拟这个,或者以其他方式做。我只是想知
如果我定义一个带有私有(private)默认构造函数和带有参数的公共(public)构造函数的类,我如何访问私有(private)构造函数?publicclassBob{publicStringSurname{get;set;}privateBob(){}publicBob(stringsurname){Surname=surname;}}我可以像这样通过类上的静态方法访问私有(private)构造函数:publicstaticBobGetBob(){returnnewBob();}我认为我可以通过扩展方法访问私有(private)构造函数,因为(根据我的理解)扩展方法被翻译成它们看起
如果我定义一个带有私有(private)默认构造函数和带有参数的公共(public)构造函数的类,我如何访问私有(private)构造函数?publicclassBob{publicStringSurname{get;set;}privateBob(){}publicBob(stringsurname){Surname=surname;}}我可以像这样通过类上的静态方法访问私有(private)构造函数:publicstaticBobGetBob(){returnnewBob();}我认为我可以通过扩展方法访问私有(private)构造函数,因为(根据我的理解)扩展方法被翻译成它们看起
(灵感来自thiscomment)是否有过需要使用private关键字的情况?(换句话说,省略关键字会导致不同行为的情况) 最佳答案 publicclassFoo{publicintBar{get;privateset;}}省略“私有(private)”一词会改变可访问性。 关于c#-C#是否需要private关键字?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6349269
(灵感来自thiscomment)是否有过需要使用private关键字的情况?(换句话说,省略关键字会导致不同行为的情况) 最佳答案 publicclassFoo{publicintBar{get;privateset;}}省略“私有(private)”一词会改变可访问性。 关于c#-C#是否需要private关键字?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6349269
有没有其他人看到人们这样做:privatestring_name;publicstringName{get{return_name;}set{_name=value;}}如果您要对它的设置方式进行某种控制或在获取时对其执行某种功能,我理解使用访问器。但是,如果您只是打算这样做,为什么不直接将变量公开呢?我错过了什么吗? 最佳答案 如果您将成员设置为公共(public)字段,那么您以后不能在不更改类接口(interface)的情况下将其重构为属性。如果从一开始就将其作为属性公开,则可以根据需要对属性访问器函数进行任何更改,并且类的接口
有没有其他人看到人们这样做:privatestring_name;publicstringName{get{return_name;}set{_name=value;}}如果您要对它的设置方式进行某种控制或在获取时对其执行某种功能,我理解使用访问器。但是,如果您只是打算这样做,为什么不直接将变量公开呢?我错过了什么吗? 最佳答案 如果您将成员设置为公共(public)字段,那么您以后不能在不更改类接口(interface)的情况下将其重构为属性。如果从一开始就将其作为属性公开,则可以根据需要对属性访问器函数进行任何更改,并且类的接口
我在审查log4net的一些代码时遇到了这个问题。privatestaticreadonlyILoglogger=LogManager.GetLogger(typeof(AdminClient));我想知道为什么你需要有privatestaticreadonly。根据我的理解,private意味着除非有访问器方法或get属性,否则不能在类外使用该变量。static意味着该变量仅在该文件中起作用。readonly意味着您只能读取值而不能分配它。所以,我在想写这段代码的人。将其声明为私有(private)的,因为他们不希望它在类之外使用,而声明为静态的,因此不希望它在文件之外使用。但是,如