草庐IT

function装饰器

全部标签

c# - 装饰者模式的实现

尝试从“HeadFirstDesignPatterns”一书中的代码(用Java编写)在C#中实现装饰器模式。我刚开始使用C#,因此对语法还是陌生的,所以我不确定为什么我不能让下面的注释代码行工作。这是装饰器模式中的第一个抽象基类及其派生类:usingSystem;publicabstractclassBeverage{privateStringm_description;//getadescriptionofthebeveragepublicvirtualStringDescription{get{returnm_description;}}//calculatecostoftheb

c# - 我可以将 C# 函数标记为 "this function does not enumerate the IEnumerable parameter"吗?

同一可枚举的多次枚举对我们来说一直是一个性能问题,因此我们尝试在代码中消除这些警告。但是我们有一个通用的扩展函数来抛出空参数异常,它会生成很多这样的警告。它的签名看起来像这样:publicstaticvoidVerifyArgumentIsNotNull(thisTvalue,stringvalueName)whereT:class它所做的只是检查null并抛出一个格式良好且本地化(对于当时正在使用的任何人类语言)的异常。当此函数用于IEnumerable参数时,它会使代码分析警告IEnumerable可能的多次迭代,因为分析器不知道该函数的作用。我想在这个函数上加上一些标签,上面写着

c# - Azure Function,EF Core,无法加载 ComponentModel.Annotations 4.2.0.0

我已经创建了几个.NetStandard2.0库,通过控制台应用程序测试了执行情况,还有一些测试-一切都很好。转到azure函数,并得到以下运行时错误:然后我尝试将该特定版本下载到API函数项目中:我使用的是VisualStudio版本15.7.0预览版5.0。我已将AzureFunctions更新到4.7...因为控制台和测试项目是-并且这些工作正常。在这方面待了太多小时..所以我希望这个决议不是什么疯狂的事情。EfCore2.1.0-rc1-final也在其中。对Required、MaxLength、NotMapped使用数据注释。图形错误说:Microsoft.EntityFra

c# - 神经网络 : why does my function return different outputs to the in-built one?

我正在使用NeuronDotNet用于C#中的神经网络。为了测试网络(以及训练网络),我编写了自己的函数来获取误差平方和。然而,当我通过在训练数据上运行它来测试这个函数并将它与反向传播网络的MeanSquaredError进行比较时,结果是不同的。我发现出现不同错误的原因是当我在学习阶段运行时网络返回不同的输出。我使用以下方法为每个TrainingSample运行它:double[]output=xorNetwork.Run(sample.InputVector);在学习阶段使用:xorNetwork.Learn(trainingSet,cycles);...使用委托(delegate

c# - 在 autofac 中注册装饰器,无需手动指定所有依赖项

我有一个装饰器,它有一些其他的依赖项,这些依赖项也应该使用容器来解决。示例:publicclassFooDecorator:IFoo{publicFooDecorator(IFooinner,IBarbar,IBazbaz)}我可以这样注册:builder.RegisterType().As();builder.RegisterDecorator((c,inner)=>newFooDecorator(inner,c.Resolve(),c.Resolve()),"key");这是有效的,但不是很好,我必须手动指定所有其他依赖项。我想做的是:builder.RegisterDecorat

c# - 公约问题: When do you use a Getter/Setter function rather than using a Property

令我印象深刻的是,在尝试操作类中的字段时应该使用C#中的属性。但是当涉及到复杂的计算或数据库时,我们应该使用getter/setter。这是正确的吗?什么时候对属性使用s/getter? 最佳答案 .NET设计指南在Propertiesvs.Methods中提供了这个问题的一些答案。部分。基本上,属性与字段具有相同的语义。你不应该让一个属性抛出异常,属性不应该有副作用,顺序不重要,属性应该相对快速地返回。如果这些事情中的任何一个可能发生,最好使用一种方法。该准则还建议使用返回数组的方法。在决定是使用属性还是方法时,如果我将其视为字段

c# - 如何从 C# 中的 "pure function"获得优化?

如果我有以下函数,它被认为是纯粹的,因为它没有副作用,并且在给定相同输入x的情况下总是会产生相同的结果。publicstaticintAddOne(intx){returnx+1;}据我了解,如果运行时了解功能纯度,它可以优化执行,这样就不必重新计算返回值。有没有办法在C#中实现这种运行时优化?我假设这种优化有一个名称。它叫什么?编辑:显然,我的示例函数不会从这种优化中获得太多好处。该示例是为了表达我心目中的纯度类型,而不是真实世界的示例。 最佳答案 正如其他人指出的那样,如果您想节省重新计算您已经计算过的结果的成本,那么您可以内存

C# 版本的 __FUNCTION__ 宏

有没有人对C#版本的C++__FUNCTION__宏有好的解决方案?编译器似乎不喜欢它。 最佳答案 尝试改用它。System.Reflection.MethodBase.GetCurrentMethod().NameC#没有像C++那样的__LINE__或__FUNCTION__宏,但是有等价物 关于C#版本的__FUNCTION__宏,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

C# P/调用 : Marshalling structures containing function pointers

对于接下来冗长的介绍,我们深表歉意。我需要比我更了解P/Invoke内部结构的人的见解。以下是我如何将包含函数指针的结构从C编码到C#。我想知道这是否是最干净和/或最有效的方式。我正在与一个用C编码的nativeDLL交互,它提供以下入口点:void*getInterface(intid);您必须传递getInterface(int)以下枚举值之一:enumINTERFACES{FOO,BAR};它返回一个指向包含函数指针的结构的指针,例如:typedefstructIFOO{void(*method1)(void*self,inta,floatb);void(*method2)(vo

c# - 有没有像 c# 的 python 装饰器之类的东西?

我正在包装对API的调用,我的大部分方法都在第一行:if(!Gree.Authorizer.IsAuthorized()){return;}在python中,我会用类似@login_required的东西来装饰这些方法。您会用什么在c#中重构这种类型的逻辑? 最佳答案 您正在寻找称为面向方面编程的更通用编程方法的子集。C#似乎通过几个库来支持它,并且由于某些CLR功能,人们也可以推出自己的库。参见AspectOrientedProgrammingusing.NET其中涵盖了它的基本原理(我正在链接文章中谈论C#细节的部分,但如果您正