TOGOUTECH

function

全部标签

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

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

c# - 将成员委托(delegate)给经典函数有更多优点或缺点?

classmy_class{publicintadd_1(inta,intb){returna+b;}publicfunc<int,int,int>add_2=(a,b)=>{returna+b;}}add_1是一个函数,而add_2是一个委托(delegate)。然而,在这种情况下,委托(delegate)可以扮演类似的角色。由于先例和语言的设计,C#方法的默认选择应该是函数。然而,这两种方法各有利弊,所以我列出了一份list。这两种方法还有更多优点或缺点吗?传统方法的优势。更传统函数的外部用户看到命名参数-对于add_2语法arg_n和类型通常没有足够的信息。与i

c# - 在构造函数局部函数 c# 中设置只读字段

以下不编译。publicclassA{privatereadonlyinti;publicA(){voidSetI(){i=10;}SetI();}}失败并出现此错误:CS0191Areadonlyfieldcannotbeassignedto(exceptinaconstructororavariableinitializer)从技术上讲,我们仍然不在构造函数中,因为局部函数的可见性是有限的,所以我想知道为什么它不能编译。 最佳答案 编译器将SetI局部函数到一个单独的类级方法中。由于这个单独的类级方法不是构造函数,因此您不能从中

c# - 为什么 `Predicate<T>` 与 `Func<T,bool>` 不匹配?

我尝试在C#中编译以下代码:publicstaticTFirstEffective(IEnumerable<T>list){Predicate<T>pred=x=>x!=null;returnEnumerable.FirstOrDefault(list,pred);}编译器(Mono/.NET4.0)给出以下错误:File.cs(139,47)Thebestoverloadedmethodmatchfor`System.Linq.Enumerable.FirstOrDefault<T>(thisSystem.Collections.Generi

c# - Excel 电子表格中缺少列

我有一张发票list,我将它们转移到Excel电子表格中。除工作日期列外,所有列都创建到电子表格中。那是电子表格中的空白。代码如下:stringDirectory=ConfigurationSettings.AppSettings["DownloadDestination"]+Company.Current.CompCode+"\\";stringFileName=DataUtils.CreateDefaultExcelFile(Company.Current.CompanyID,txtInvoiceID.Value,Directory);FileInf

c# - 如何将输出值绑定(bind)到我的异步 Azure 函数?

如何将我的输出绑定(bind)到异步函数?将参数设置为out的常用方法不适用于异步函数。例子usingSystem;publicstaticasyncvoidRun(stringinput,TraceWriterlog,outstringblobOutput){log.Info($"C#manuallytriggeredfunctioncalledwithinput:{input}");awaitTask.Delay(1);blobOutput=input;}这会导致编译错误:[timestamp](3,72):errorCS1988:Asyncmethodscanno

c# - 仿函数和 "generics"有什么区别

我正在查看OCaml'sfunctors.在我看来,它与C++/C#/Java中所谓的通用对象非常相似。如果您暂时忽略Java的类型删除,并忽略C++模板的实现细节(我对语言特性感兴趣),仿函数与泛型完全相同。如果我理解正确的话,仿函数会根据您提供的类型为您提供一组新的函数,例如List<MyClass>.GetType()!=List<MyOtherClass>.GetType()但是你可以粗略地重写OCaml的#moduleSet=functor(Elt:ORDERED_TYPE)->structtypeelement=Elt.ttypeset

c# - 为什么 Func<...> 和 Action 不统一?

我发现自己一直想传递一个有返回值且没有输入的Func来代替Action,例如Func<int>DoSomething=...;Task.Run(DoSomething);在哪里,我真的不关心DoSomething的返回值。但是,这些类型并不统一,我最终结束了调用Task.Run(()=>{DoSomething();});有没有办法在不包装的情况下使这些类型统一?另外,它们不统一是否有好的设计原因? 最佳答案 您希望以下陈述为真:IfIhaveaFunc<T>,Ishouldbeabletouseitw

c# - 我是否使用 C# 动态实现了 Y 组合器,如果没有,它是什么?

我的大脑似乎处于自虐模式,所以在被this淹没之后,this和this,它想在C#中进行一些DIY。我想到了以下内容,我认为不是Y组合器,但它确实似乎设法使非递归函数递归,不涉及自身:Func<Func<dynamic,dynamic>,Func<dynamic,dynamic>>Y=x=>x(x);鉴于这些:Func<dynamic,Func<dynamic,dynamic>>fact=self=>n=>n==0?1:n*self(self)(n-1);Func<dynamic,Func<dyn

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