草庐IT

c# - 使用 getter 和 setter 声明私有(private)属性有什么好处吗?

我正在审查另一个开发人员的代码,他为类级别变量编写了很多类似于以下内容的代码://////howoftentocheckformessages///privateintCheckForMessagesMilliSeconds{get;set;}//////applicationpath///privatestringAppPath{get;set;}由于变量是私有(private)的,以这种方式编码不会增加不必要的开销吗?我不是在考虑私有(private)变量需要这种编码模式的情况吗? 最佳答案 这就像说私有(private)方法没

c# - 从 Winforms 控制 cmd.exe

问题:我想在winforms中控制cmd.exe我并不是说单个进程中的每个命令,带有启动信息,然后停止。我的意思是例如启动(我的)SQL或GDB命令提示符,发送命令,接收答案,发送下一个命令,接收下一个答案,停止SQL命令提示符退出流程。基本上我想在任何控制台应用程序之上编写一个GUI。我想将cmd.exe的输出重定向到一个文本字段,而输入来自另一个文本字段(按下回车/确定按钮)。我没有找到任何样本。有办法吗? 最佳答案 CodeProject上有一个很好的例子祝你好运!-编辑:我认为这更像它,我创建了一个简单的表单、2个文本框和三

c# - DTE2 事件不触发

在尝试开发我的第一个VS插件时,我在触发DTE2事件时遇到了问题。基本上,DocumentOpened和LineChanged事件由于某种原因不会触发。我错过了什么重要的部分?namespaceTestAddin{publicclassConnect:IDTExtensibility2{privateAddIn_addInInstance;privateDTE2_applicationObject;publicvoidOnConnection(objectapplication,ext_ConnectModeconnectMode,objectaddInInst,refArraycus

c# - 从 C# 中的派生类调用私有(private)基方法

派生类如何调用基类的方法?另一方面,其他类不应具有访问权限。我的情况:我有一个基类,我在其中编写了一个私有(private)方法来注册一些值。privatevoidregister(stringparam1,intparam2){//...}我这样做是为了允许子类注册不同的东西。问题是,派生类无法访问基类的私有(private)方法或字段。这对我来说很有意义,因为私有(private)意味着私有(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# - 如何通过反射执行带有可选参数的私有(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# - 如何从 MDI 父窗体的 MDIClient 组件中删除 3d 边框(凹陷)?

我正在VS2010(.NET4.0)中开发WinFormsMDI应用程序,我只是讨厌MDI父窗体中的3D边框。关于如何移除它(使其平坦或完全没有边框)有什么想法吗? 最佳答案 我知道这是一篇旧文章,但我花了一些时间和精力从互联网上的片段中找出3D边框的东西(因为我也需要它),包括:ElementsfromJacobSlusser'spageatcodeproject.com(Accessed1stAug'12)所以这里是:usingSystem;usingSystem.Collections.Generic;usingSystem.

c# - 为什么我不能使用 XmlSerializer 序列化只读字段?

XmlSerializer不序列化只读字段、只读属性(仅使用getter)、私有(private)字段等。此外,如果类没有无参数构造函数,它也不会序列化对象。我的问题:据我所知,这些问题的出现是因为在反序列化时无法访问(和更改)私有(private)(和只读)字段。但是如果我不反序列化呢?我没有这个选项吗?由于同样的原因(反序列化问题),如果类没有无参数构造函数,它不会序列化对象。但是当我添加一个私有(private)的无参数构造函数时,它工作正常。怎么办?我不喜欢为每个类都添加一个无参数构造函数,并将所有字段设为公共(public)和非只读,只是为了能够对其进行序列化。现在我在私有(