草庐IT

c# - 使用 AutoMapper 获取异常

我正在对一种方法进行单元测试,该方法使用自动映射器将我的域中的类映射到linqtosql类。粗略地说,类和映射如下(SupplierEligibilityAllocated是L2S自动生成的类)。publicclassSupplierEligibilityTransactionByQuantity{publicdecimalEligibility{get;privateset;}publicdecimalCoreValue{get;privateset;}publicint?TransactionId{get;privateset;}publicSupplierTransactionS

c# - 结构的私有(private)字段值未使用异步方法更新

我刚刚在结构中使用异步方法时遇到了一个奇怪的行为。有人可以解释为什么会发生这种情况,最重要的是是否有解决方法?为了演示问题,这里有一个简单的测试结构publicstructStructure{privateint_Value;publicStructure(intiValue){_Value=iValue;}publicvoidChange(intiValue){_Value=iValue;}publicasyncTaskChangeAsync(intiValue){awaitTask.Delay(1);_Value=iValue;}}现在,让我们使用该结构并进行以下调用varsIns

c# - 在 Windows 服务上设置恢复选项

我最近编写了一个小类(class)来帮助我更改Windows服务的恢复选项(我在网上某处找到的大部分代码)。该代码为第一次、第二次和后续失败创建一个FailureAction。每个Failure对象都包含一个类型(None、Restart、Reboot、RunCommand)和一个以毫秒为单位的延迟(int)。这些对象打包在结构中并传递到ChangeServiceConfig2(WinAPIP/Invoke)。但是,当我实际右键单击控制台上的服务并转到“恢复”选项卡时,您只能为所有故障(第一次、第二次和后续)设置一次延迟(“重启服务器”字段)。当我以编程方式设置它时,它会延迟第一个Fa

c# - 速记访问器和修改器

我正在学习C#,并且正在学习如何使字段对类私有(private),以及使用Getters和Setters公开方法而不是字段值。是get;set;在方法1和方法2中是否等效?例如一个是另一个的简写吗?classStudent{//Instancefieldsprivatestringname;privateintmark;//Method1publicstringName{get;set;}//Method2publicintMark{get{returnmark;}set{mark=value;}}}最后,当您想在获取或设置值之前执行计算时,是否会使用方法2?例如将值转换为百分比或执行

c# - 私有(private)嵌套静态类 - 好的还是坏的做法?

将私有(private)静态类嵌套在非静态类中会被认为是一种不好的做法吗?publicclassOuter{privatestaticclassInner{}}这里的想法是“Outer”的所有实例都将共享对静态的访问。另一种方法可能是让内部类成为非静态类并使用它的静态实例:publicclassOuter{privatestaticinnerInstance=newInner();privateclassInner{}}类似的效果。这种方法的优点/缺点或其他注意事项是什么?我必须承认我几乎从不使用嵌套类,无论是否是静态的,但我对这个特定概念很感兴趣.. 最佳

c# - 单元测试私有(private)代码

这个问题在这里已经有了答案:UnittestingprivatemethodsinC#(16个答案)关闭6年前。我目前正在使用C#进行开发-以下是一些背景信息:我们用我们的客户端应用程序实现MVP,并且我们有一个圈规则,该规则规定任何方法的圈复杂度都不应大于5。这导致了很多小的私有(private)方法,这些方法通常只负责一件事。我的问题是关于对类进行单元测试的:通过公共(public)方法测试私有(private)实现没问题......我在实现这个方面没有问题。但是……下面的情况呢:Example1.Handletheresultofanasyncdataretrivalreques

c# - 在静态方法中访问参数的私有(private)成员?

这段代码如何编译?operatorint中的以下代码可以访问MyValue类的私有(private)变量?为什么?classProgram{staticvoidMain(string[]args){Myvaluemy=newMyvalue(100);Console.WriteLine(my+100);Console.Read();}}publicclassMyvalue{privateint_myvalue;publicMyvalue(intvalue){_myvalue=value;}publicstaticimplicitoperatorint(Myvaluev){returnv.

c# - 我应该让我的私有(private)类方法静态化吗?

是否有将类中的私有(private)方法设为静态的最佳实践?我有一个有几种方法的类(class)。其中一些可以很容易地变成静态的,因为它们只是处理数据。我应该让它们保持静态还是保持原样?这更多是风格问题吗?是否有性能方面的考虑?编辑:Methodcanbemadestatic,butshouldit? 最佳答案 如果方法不访问任何类型的状态,那么它们应该是静态的。静态方法调用提供了优于实例方法的性能增益,并且静态方法的存在告诉future代码的读者调用此方法不会对该类型的当前实例的状态产生副作用。静态方法的性能提升来自于这样一个事实

c# - 如何访问嵌套类的私有(private)成员?

背景:我已经将(父)类E和嵌套类N封闭起来,并在E中包含多个N实例。在封闭的(父)类中,我正在做一些计算,并为嵌套类的每个实例设置值。像这样:n1.field1=...;n1.field2=...;n1.field3=...;n2.field1=...;...这是一个很大的eval方法(在父类中)。我的意图是——因为所有计算都在父类中(它们不能在每个嵌套实例中完成,因为它会使代码更复杂)——使setter仅对父类可用,而getter公开。现在有一个问题:当我将setter设为私有(private)时,父类无法访问它们当我将它们公开时,每个人都可以改变这些值C#没有友元概念我无法在构造函

c# - 附加文本时如何防止文本框自动滚动?

我有一个带有垂直滚动条的多行文本框,用于记录实时处理的数据。目前,每当textBox.AppendText()添加新行时,TextBox都会滚动到底部,这样您就可以看到最后一个条目,这很棒。但是我有一个复选框来指示是否允许TextBox自动滚动。有什么办法吗?注意:我想使用TextBox,因为添加的文本具有多行和空格对齐,因此与ListBox或ListView一起使用并不简单。我尝试通过textBox.Text+=text添加新行,但TextBox不断滚动到顶部。如果我们有解决方案,那么还有一个问题是当用户使用滚动条查看TextBox中的其他位置而TextBox附加文本时如何防止Tex