草庐IT

私有云建设

全部标签

c# - 匿名委托(delegate)中捕获的私有(private)字段

classA{publiceventEventHandlerAEvent;}classB{privateA_foo;privateint_bar;publicvoidAttachToAEvent(){_foo.AEvent+=delegate(){...UseBar(_bar);...}}}由于delegate捕获变量this._bar,它是否隐含地持有B的实例?B的实例是否会通过事件处理程序引用并由A的实例捕获变量?如果_bar是AttachToAEvent方法的局部变量,会有不同吗?因为在我的例子中,A的实例比B的实例生命周期长得多并且小得多,我担心会导致“内存泄漏”这样做。

c# - 如何使用反射获得重载的私有(private)/ protected 方法

usingSystem;usingSystem.Reflection;namespaceReflection{classTest{protectedvoidmethodname(inti){Console.WriteLine(("intheworldofthereflection-onlyi"));Console.Read();}protectedvoidmethodname(inti,intj){Console.WriteLine(("intheworldofthereflectioni,j"));Console.Read();}}classProgram{staticvoidMai

c# - 阻止访问私有(private)成员变量?强制使用公共(public)属性(property)?

我使用的是.NET2.0,因此无法访问自动属性。所以我必须求助于以下编码私有(private)变量和公共(public)属性的方法privatestringm_hello=null;publicstringHello{get{returnm_hello;}set{m_hello=value;}}对于上述private/public成员的包含类的方法,是否有限制访问private变量的方法?我不喜欢我可以使用m_hello或Hello。谢谢。 最佳答案 正如其他人所建议的那样,这应该是一个答案...当面向.NET2.0时,您仍然可以在

c# - 具有私有(private)密封类的 Activator.CreateInstance

我正在尝试新建一个LocalCommand实例,它是System.Data.SqlClient.SqlCommandSet的私有(private)类。我似乎能够很好地获取类型信息:AssemblysysData=Assembly.Load("System.Data,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089");localCmdType=sysData.GetType("System.Data.SqlClient.SqlCommandSet+LocalCommand");但是当我尝试实例化Activat

c# - 私有(private)成员在 API 方法调用中突然为 null

发生了奇怪的事情:在我的网络api中,我在使用Ninject解析时将一个存储库注入(inject)到Controller中。存储库存储在私有(private)只读成员变量中。工作得很好!当一个api方法被调用时,我访问了这个变量-只是发现它突然变成了null!伪例子:publicclassMyController:ApiController{privatereadonlyIRepo_repo;publicMyController(IReporepo){Guard.AgainstNullArgument("repo",repo);//guardingto//makesureit'snot

c# - 为什么 C# 在基本构造函数之前设置私有(private)变量,而 VB.NET 却相反?

有一个问题比较C#代码和VB.NET,看似相同的代码之间的结果完全不同。(Iwroteaprogramthatallowtwoclassesto"fight".ForwhateverreasonC#alwayswins.What'swrongwithVB.NET?)给出的解释是,C#会初始化类字段,然后调用基础构造函数,但VB.NET恰恰相反。我的问题是-为什么?语言不同是否有技术原因?乍一看,这两种方法似乎都同样有效,但我不明白为什么他们不会选择相同的方法。编辑:正如“JeffreyLWhitledge”所指出的那样,VB6没有继承,所以我认为我们不能说“让VB.NET和VB6保持更

c# - Json.NET 序列化私有(private)成员而不是只读属性

如何自定义Json.NET以序列化私有(private)成员而不序列化公共(public)只读属性(不使用属性)。我尝试过创建自定义IContractResolver,但有点迷茫。 最佳答案 对于部分答案,搞乱DefaultContractResolver.DefaultMembersSearchFlags可以让它包含私有(private)的东西:Newtonsoft.Json.JsonSerializerSettingsjss=newNewtonsoft.Json.JsonSerializerSettings();if(inclu

c# - 如何使静态构造函数成为非私有(private)的?

C#中的静态构造函数不允许使用public、private等访问修饰符。然而,VisualStudio代码分析在C#安全类别中有一个警告,显示“CA2121:Staticconstructorsshouldbeprivate”。是否可以使静态构造函数成为非私有(private)的?或者这是VisualStudio代码分析的错误?澄清:我并不是要让任何构造函数成为非私有(private)的。所以为什么?”问题无关紧要。我只是对两个Microsoft工具之间的矛盾感到好奇,想看看是否有任何我不知道的静态构造函数的处理方式。 最佳答案 C

C# 私有(private)(隐藏)基类

是否可以使C#基类仅在其编译到的库程序集中可访问,同时使从它继承的其他子类公开?例如:usingSystem.IO;classBaseOutput:Stream//Hiddenbaseclass{protectedBaseOutput(Streamo){...}...lotsofcommonmethods...}publicclassMyOutput:BaseOutput//Publicsubclass{publicBaseOutput(Streamo):base(o){...}publicoverrideintWrite(intb){...}}在这里,我希望我的库的客户端无法访问Ba

C# 私有(private)成员可见性

我们的业务模型中有一个Student类。让我感到奇怪的是,如果我们从另一个学生操纵一个学生,学生的私有(private)成员是可见的,这是为什么?classProgram{staticvoidMain(string[]args){Students1=newStudent();Students2=newStudent();s1.SeePrivatePropertiesAndFields(s2);}}publicclassStudent{privateString_studentsPrivateField;publicStudent(){_studentsPrivateField=Date