草庐IT

multiple-variable-return

全部标签

C# Generic List of Multiple Types 泛型列表

这是我的问题的抽象和简化:我有一套玩具和这些玩具对应的盒子。我希望用户能够指定盒子可以容纳的最大类型的玩具:publicclassBox{}然后在Box类中我想要一个通用的玩具列表,但是盒子中包含的每个玩具都有一个通用类型:publicclassBox{publicList=newList();publicboolWhatever;[memberfunctions,constructors...][ThememberfunctionswilldependonT]}Toys类将如下所示:publicclassToywhereT:struct//Tisanytype{publicList=

c# - 如何调整 "is a type but is used like a variable"?

我正在尝试在网络服务中生成一些代码。但它返回了2个错误:1)List是一种类型,但像变量一样使用2)方法“Customer”没有重载接受“3个参数”[WebService(Namespace="http://tempuri.org/")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)][ToolboxItem(false)]publicclasswstest:System.Web.Services.WebService{[WebMethod]publicListGetList(){Listli=List();li.A

c# - 最佳实践 : ref parameter or return value?

其实我是做一个列表作为引用参数如下:publicstaticListListMethod(Listresult)我也看到有人这样做:publicstaticvoidListMethod(refListresult)如果我没记错的话,“my”方法也将list作为引用参数,您应该可以像“other”在他的方法中一样使用它。但在我看来,您输入一个参数,对它做一些事情并在方法返回值中返回它似乎更“干净”。支持或反对一种方法或另一种方法的任何好的论据? 最佳答案 可能您不需要使用ref-但是有区别的。通常当我看到人们使用ref作为引用类型参数

c# - yield return 是可重入的吗?

是否可以从多个线程调用使用yieldreturn安全返回IEnumerable的静态类中的静态函数?publicstaticIEnumerableFooClassObjects(){foreach(FooClassWrapperobjinlistOfFooClassWrappers){yieldreturnobj.fooClassInst;}}是否每个调用它的线程都会收到对集合中每个对象的引用?在我的情况下,listOfFooClassWrappers在程序开始时被写入一次,所以我不需要担心它在调用此函数期间发生变化。我编写了一个简单的程序来对此进行测试,但我没有看到任何问题迹象,但线

c# - nest yields to return IEnumerable<IEnumerable<T>> with lazy evaluation

我写了一个LINQ扩展方法SplitBetween类似于String.Split.>newList(){3,4,2,21,3,2,17,16,1}>.SplitBetween(x=>x>=10)[3,4,2],[3,2],[],[1]来源://partitionsequenceintosequenceofcontiguoussubsequences//behaveslikeString.SplitpublicstaticIEnumerable>SplitBetween(thisIEnumerablesource,FuncseparatorSelector,boolincludeSepa

c# - CA1819 : Properties shouldn't return arrays - What is the right alternative?

我以前遇到过这个FxCop规则,但对如何解决违规问题并不满意(thread1、thread2)。我现在有另一个案例,我需要纠正违反CA1819的行为亲切。具体来说,我有一个算法库,它使用如下所示的公共(public)“输入对象”对曲线(x,y)执行一些分析计算:publicclassInputObject{publicdouble[]X{get;set;}publicdouble[]Y{get;set;}//+lotsofotherthingswell}此对象的X和Y属性在库中的数百个位置使用,通常使用索引。输入对象永远不会被算法改变,但实际上如果是这样也无关紧要。另外,.Length

C# Linq : Combine multiple . Where() with an *OR* 子句

我一直在搜索有关我当前问题的大量信息,但找不到解决该问题的真正答案。我正在尝试构建一个生成以下SQL的LINQ查询:SELECT*FROMTABLEWHERE(Field1=X,Field2=Y...)or(Field3=Z)在正常情况下我会这样做:Object.Where(c=>(c.Field1==X&&c.Field2==Y)||(c.Field3==Z))我不能使用这种方法,因为查询是通过使用多个.Where()调用构建的。举个例子://Thisisashortexample,therealworldsituationhas20fieldstocheckandtheyareal

c# - 调用使用 yield 返回的方法时出现错误 'Iterator cannot contain return statement '

我希望有更好的方法来编写此方法和重载,同时减少代码重复。我想返回列表中项目之间的一系列增量。这个方法:-publicstaticIEnumerableCalculateDeltas(thisIEnumerablesequence){decimalprev=default(decimal);foreach(variteminsequence){varcurrent=item;decimaldiff=current-prev;prev=item;yieldreturndiff;}}工作得很好。然后我想到了一个允许绝对增量的重载,但如果不需要绝对值,则会调用原始方法:-publicstati

c# - 编译器错误 : "error CS0307: The variable ' int' cannot be used with type arguments"

如果我有以下代码:privatevoidCheck(boola,boolb){}privatevoidCheck(inta,intb,intc,boolflag){Check(a(flag?c:b-10));}我在调用Check(int,int)时遇到编译时错误:errorCS0307:Thevariable'int'cannotbeusedwithtypearguments我也遇到了这些错误:errorCS0118:'b'isavariablebutisusedlikeatypeerrorCS0118:'a'isavariablebutisusedlikeatype为什么会出现这些错

c# - 如果 yield return 从未发生,是否返回 null?

该方法通过yieldreturn语句返回IEnumerable。如果yield语句从未发生(它在条件逻辑中),该方法会返回null,还是会返回一个计数为0的Enumerable? 最佳答案 一个有效的IEnumerable,当您遍历它时不产生任何值。试想一下:您可以将IEnumerable生成器存储在一个变量中-代码本身只会在您实际遍历结果时执行。如果您有null,您如何执行代码?或者您如何知道该函数在不运行的情况下不会产生任何结果。 关于c#-如果yieldreturn从未发生,是否返