草庐IT

as_yielded

全部标签

c# - 为什么 "as"运算符在 C# 中不使用隐式转换运算符?

我在C#中定义了从/到某种类型的隐式字符串转换(伪代码):publicclassMyType{publicstringValue{get;set;}publicstaticimplicitoperatorMyType(stringfromString){returnnewMyType{Value=fromString};}publicstaticimplicitoperatorstring(MyTypemyType){returnmyType.Value;}}在外部库代码的某处,MyType的实例作为对象参数传递给方法。该方法的一部分看起来像这样:privatevoidFoo(obje

c# - 使用没有返回类型的 yield

我有一个像这样的长循环程序:publicvoidProcess(){booldone=false;do{//dostuff}while(!done);}我想分成几部分,让调用例程在某种UI中显示我的进度。它是一个类库,因此调用者可以是任何东西(控制台应用程序、WinForms、WebApp等)。如果我能做到,那将是最简单的:publicvoidProcess(){booldone=false;do{//dostuffyieldreturn;}while(!done);}因此调用者可以继续调用该方法直到它完成。这听起来更像是BackgroundWorker的工作,但对于控制台应用程序来说

c# - 序列化和 Yield 语句

是否可以序列化包含yield语句的方法(或包含此类方法的类),以便在重新水化该类时,保留生成的迭代器的内部状态? 最佳答案 是的,你可以做到这一点。注意事项。可以在此处找到使用yield序列化方法、反序列化和继续的示例:http://www.agilekiwi.com/dotnet/CountingDemo.cs(WebArchiveLink)。一般来说,尝试序列化而不做一些额外的工作会失败。这是因为编译器生成的类没有用Serializable属性标记。但是,您可以解决这个问题。我会注意到它们没有标记为可序列化的原因是因为它们是一个

c# - 我想知道在迭代数据读取器对象时连接状态和 'yield' 对代码性能的影响

这是我用来从数据库中获取数据的示例代码:在DAO层上:publicIEnumerableGetDATA(ICommonSearchCriteriaDtocommonSearchCriteriaDto){using(DbContext){DbDataReaderreader=DbContext.GetReader("ABC_PACKAGE.GET_DATA",oracleParams.ToArray(),CommandType.StoredProcedure);while(reader.Read()){yieldreturnreader;}}}在BO层我调用上面的方法如下:ListGri

c# - 内部使用 yield

如果我没记错的话,当我在usingSqlConnectionblock中使用yield时,我遇到了运行时异常。using(varconnection=newSqlConnection(connectionString)){varcommand=newSqlCommand(queryString,connection);connection.Open();SqlDataReaderreader=command.ExecuteReader();//CallReadbeforeaccessingdata.while(reader.Read()){yieldreader[0];}//CallC

c# - 带有 yield 返回的异步任务<IEnumerable>?

以下方法无法编译。替代方案?publicstaticasyncTask>GetRecordsAsync(thisTransactiontransaction,stringcommandText,paramsSqlParameter[]parameters){//GetaSqlDataReadervarreader=awaittransaction.GetReaderAsync(commandText,parameters);varfieldCount=-1;//Beginiteratingthroughrecordsasynchronouslywhile(awaitreader.Rea

c# - 当右侧操作数是泛型时, "as"运算符如何翻译?

我刚刚发布了一个answer至thisquestion但我并不完全相信我的回答。有两件事我想知道,请考虑这段代码:classFoo{voidSomeMethod(){stringstr="foo";Foof=strasFoo;}}根据C#Specification5.0,asoperator有两种不同的转换方式.Ifthecompile-timetypeofEisnotdynamic,theoperationEasTproducesthesameresultasEisT?(T)(E):(T)nullIfthecompile-timetypeofEisdynamic,unlikethec

嵌套方法中的 C# yield

如果我单步执行以下代码,将跳过对ReturnOne()的调用。staticIEnumerableOneThroughFive(){ReturnOne();yieldreturn2;yieldreturn3;yieldreturn4;yieldreturn5;}staticIEnumeratorReturnOne(){yieldreturn1;}我只能假设编译器将其删除,因为我所做的是无效的。我希望能够将我的枚举隔离为各种方法。这可能吗? 最佳答案 您实际上并没有使用ReturnOne的结果。您正在调用该方法,并忽略返回值……这意味着

javascript - 传单js : draw POIs as canvas

我想用Leaflet画很多地理点。因此我想使用HTML5canvas来提高性能。我的数据源是geoJSON。正如我在Leaflet的文档中看到的那样,还不能将地理位置绘制为Canvas。varanotherGeojsonLayer=newL.GeoJSON(coorsField,{pointToLayer:function(latlng){returnnewL.Marker(latlng,{icon:newBaseballIcon()});}});我想我应该在这里Hook:pointToLayer:function(latlng){}有人知道如何将我的latlng对象绘制为Canvas

javascript - 使用带有 typescript 的样式化组件 "as" Prop

我目前正在构建一个模式库,我在其中构建了一个Button组件使用React和styled-components.基于Button组件,我想要我所有的Links组件看起来完全一样,并接收完全相同的Prop。为此,我使用asProp来自styled-components,这让我可以将已构建的元素用作另一个标签或组件。按钮组件import*asReactfrom'react'import{ButtonBorderAnimation}from'./ButtonAnimation'import{ButtonProps,ButtonVariant}from'./Button.types'impor