草庐IT

public_private

全部标签

c# - 有没有办法使只读(不仅仅是私有(private))自动属性?

自动属性让我替换这段代码:privateMyTypemyProperty;publicMyTypeMyProperty{get{returnmyPropertyField;}}使用此代码:publicMyTypeMyProperty{get;privateset;}在这里和那里进行了一些更改-但有没有办法替换此代码:privatereadonlyMyTypemyProperty;publicMyTypeMyProperty{get{returnmyPropertyField;}}有类似的东西吗? 最佳答案 的确,目前没有办法做到这一

C#:使用私有(private)静态成员进行单元测试?

我有一个类的结构是这样的:privatestaticDictionary_historyManagers=newDictionary();让我们说2种方法:publicvoidAddSth(){_historManagers.Add(newContract(),newPriceHistoryManager());}publicintCountDic(){return_historyManagers.Count();}问题:当运行单元测试时,没有办法“重置”字典,当我用类的单独实例创建多个单元测试时,“CountDic”会给出不可预测的结果,我无法测试监听。问题:这通常被认为是一种“坏”

c# - 确保 Controller 有一个无参数的公共(public)构造函数

我收到这个错误Anerroroccurredwhentryingtocreateacontrolleroftype'AnalyticController'.Makesurethatthecontrollerhasaparameterlesspublicconstructor.代码可以在测试环境中运行,但不能在生产服务器上运行。知道是什么导致了这个问题吗?这是我的ControllerpublicclassAnalyticController:ApiController{privateAnalyticBLLanalyticBLL=newAnalyticBLL();//POSTapi/sta

c# - 如何通过反射执行带有可选参数的私有(private)静态方法?

我有一个带有可选参数的私有(private)静态方法的类。我如何通过反射从另一个类调用它?有一个类似的question,但它不涉及静态方法或可选参数。publicclassFoo{privatestaticvoidBar(stringkey=""){//dostuff}}如何调用Foo.Bar("test")和Foo.Bar()(例如,不传递可选参数)? 最佳答案 C#中的可选参数值是通过在调用点注入(inject)这些值来编译的。IE。即使你的代码是Foo.Bar()编译器实际上生成了这样的调用Foo.Bar("")在查找方法时,

c# - 为什么类实例的私有(private)成员在 Equals() 方法体中可用?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Whyaremyprivatesaccessible?Whyareprivatefieldsprivatetothetype,nottheinstance?很可能我遗漏了一个明显的事实,但我真的看不出原因:当我覆盖Equals()方法并且当我将对象转换为我的类型时,我能够调用它的私有(private)成员没有任何问题!我正在初始化一个实例,我希望它的私有(private)成员不可访问。但是为什么被转换的对象在Equals()方法中向我开放它的私有(private)?查看下面示例代码中的Equals实现,看看我

c# - 静态工厂方法与公共(public)构造函数

背景:这是我目前正在处理的代码。首先是基类,它是一个帐户类,其中包含有关帐户的信息,并具有一些在大多数情况下更改类属性值的方法。publicclassAccount{privatestring_username;[...]publicstringUsername{get{return_username;}}[...]publicAccount(){}publicAccount(string[]args){[...]}publicvirtualvoidChangePassword(stringnewPassword){[...]}}然后,我有另一个类用于创建帐户,我将其命名为Active

c# - 使用 DTO 而不是在公共(public)程序集中共享对实体的引用是否有好处?

我正试图为一个让我抓狂了很长时间的问题找到一个明确的最终答案。通常表示BLL应包含业务逻辑和业务对象(BO),并具有对DAL的引用。另一方面,DAL不能引用BLL,因此它不能接受BO作为参数,或返回BO作为返回值。这个问题最传统的答案是:a)接受简单参数,返回(最好是Typed)DataSets和DataTables返回数据:命名空间DAL{公共(public)课联系方式公共(public)数据表GetContacts(){...}公共(public)UpdateContacts(DataTable联系人){...}b)第二个最推荐的解决方案是定义临时的、可序列化的数据传输对象(DTO

c# - 如何通过反射获取类及其父类的私有(private)字段?

我有类B和它的父类A,它们都在命名空间域中。A类,有私有(private)字段a;B类,有私有(private)字段b;然后我在namespaceReflect中有一个ReflectionUtil。如果我使用这条线instanceOfB.GetType().GetFields(BindingFlags.NonPublic|BindingFlags.Public|BindingFlags.Instance);要查找所有字段(a和b),我只得到b。但是当我将a设置为protected或公开时,我也会找到它们。我还需要做什么才能找到基类的私有(private)字段?

c# - List<T> 应该是私有(private)的吗?

我需要您对此发表意见,因为我已经阅读了很多关于该主题的不同内容。如果你有List或类声明中的任何类型的列表,您是将其设为私有(private),然后使用特定方法添加或删除项目,还是将其设为公开?对于每个选项的任何缺点/优点,您的意见将不胜感激。举个例子,假设我们有一个classEmployer有私有(private)领域name和List.我的问题是,我们应该将员工名单设为私有(private)还是公开,以及这两种情况的优缺点是什么。 最佳答案 对于List明确是的,它应该是私有(private)的,具体取决于您公开的功能应该做什么

c# - 访问 Visual Studio 2017 的私有(private)注册表配置单元

VisualStudio使用私有(private)注册表配置单元而不是“污染”系统注册表-通常可以在如下位置找到:C:\Users\Abx\AppData\Local\Microsoft\VisualStudio\15.0_4b0ba1c0\privateregistry.bin[为了确定已安装的扩展,我们需要查看以下键:Software\Microsoft\VisualStudio\15.0_4b0ba1c0\ExtensionManager\EnabledExtensions]在C#中通过按键加载和访问此文件的最简单方法是什么? 最佳答案