jjzjj

c# - C# 中的 ref 和 out 参数不能被标记为变体

声明是什么意思?FromhererefandoutparametersinC#andcannotbemarkedasvariant.1)是否意味着以下不能做。publicclassSomeClass:IVariant{publicvirtualRDoSomething(refAargs){returnnull;}}2)或者这是否意味着我不能拥有以下内容。publicdelegateRReader(Aarg,strings);publicstaticvoidAssignReadFromPeonMethodToDelegate(refReaderpReader){pReader=ReadF

c# - 从浏览器安装后启动 Silverlight Out-of-Browser

我正在Silverlight4Beta中构建原型(prototype)应用程序,并且正在使用浏览器外(OOB)功能。我需要OOB功能才能访问本地文件系统,并且我想避免编写ActiveX组件或Java小程序。我需要在客户端计算机上安装浏览器后能够启动OOB体验。我似乎能做的就是从浏览器检测该应用程序是否已安装,然后要求用户从桌面或开始菜单(作为普通应用程序)启动它。然而,这“破坏”了客户所需的体验,而这本应由浏览器引导。有没有人能够直接从浏览器启动OOB应用程序?谢谢,马丁 最佳答案 这应该是不可能的。仅仅因为用户已同意将应用程序安装

c# - 在 c# Parallel.ForEach 中的 List.Add() 上出现 "Index out of bounds"错误

这是代码Listsomething=newList();Parallel.ForEach(anotherList,r=>{..dosomeworksomething.Add(somedata);});Indexoutofbounds错误大约每百次运行1次。有没有办法防止由线程引起的冲突(我假设)? 最佳答案 为了防止出现此问题,您可以使用ConcurrentQueue而不是List或并行部分中的类似并发集合。并行任务完成后,您可以将其放入List中。.有关详细信息,请查看System.Collections.Concurrent命名

c# - 在声明点使用变量作为输出参数

当读取comment时对于一个答案,我看到了以下构造来声明和初始化变量:intvariable=int.TryParse(stringValue,outvariable)?variable:0;这在C#中是否被允许、正确且定义明确?引擎盖下发生了什么?会发生以下情况吗?变量是否首先初始化为零?然后传递给int.TryParse(它赋值)?然后可选地读取(如果int.TryParse返回true)?然后,再次分配/初始化? 最佳答案 是的,你适合处决。您还可以查看此处生成的MSILC#代码stringstringValue="5";i

c# - 反射(reflection)使用 out 参数的静态重载方法

我在通过反射调用带有out参数的重载静态方法时遇到一些问题,希望得到一些指示。我希望动态创建一个类型,如System.Int32或System.Decimal,然后调用静态TryParse(string,outx)方法。下面的代码有两个问题:t.GetMethod("TryParse",newType[]{typeof(string),t})未能返回我期望的MethodInfomi.Invoke(null,newobject[]{value.ToString(),concreteInstance})似乎成功但未设置输出参数concreteInstance到解析后的值交织到这个函数中,您

c# - 为什么在匿名方法中不允许使用 out 参数?

这不是Callingamethodwithreforoutparametersfromananonymousmethod的骗局我想知道为什么out参数在匿名方法中是不允许的。不允许ref参数对我来说更有意义,但是out参数,就没那么多了。你对此有何看法 最佳答案 在某些方面,这是一个骗局。Out参数是ref参数。C#语言使用的值只是一个额外的属性。不允许它们的原因与ref参数完全相同。这里的问题源于在匿名方法中使用在匿名方法之外声明的值的效果。这样做会捕获lambda中的值,并且出于必要而任意延长其生命周期,使其超出当前函数的生命周

c# - out 用于多个输出值或返回组合值类型更好吗?

例如,按照以下行:publicboolIntersect(Rayray,outfloatdistance,outVector3normal){}对比publicIntersectResultIntersect(Rayray){}publicclassIntersectResult{publicboolIntersects{get;set;}publicfloatDistance{get;set;}publicVector3Normal{get;set;}}哪个在清晰度、易用性和最重要的性能方面更好。 最佳答案 我会使用组合类型,我会

c# - 模拟使用参数的函数

我有一个使用out参数的函数。我如何模拟此功能?我的职能是:GetProperties(outstringname,outstringpath,outstringextension);在我的原始代码中,我是这样做的:stringName;stringPath;stringExtension;MyObject.GetProperties(outName,outPath,outExtension);现在,我该如何模拟它? 最佳答案 你应该在调用方法之前分配变量的值:stringName="name";stringPath="path";

c# - 如何确定 Console.Out 是否已重定向到文件?

如果我的程序正在打印到控制台,我会根据Console.WindowWidth通过插入换行符以某种方式执行自动换行-这非常有效。但是,如果程序的输出被重定向到一个文件或另一个程序,我希望它跳过自动换行。我如何才能检测到这种情况?Console.WindowWidth在两种情况下返回相同的数字。奖励如果解决方案可以区分重定向的Console.Out和重定向的Console.Error。 最佳答案 .NET4.5添加了Console.IsOutputRedirected和Console.IsErrorRedirected。

c# - 属性、索引器或动态成员访问不能作为 out 或 ref 参数传递

这个问题在这里已经有了答案:C#propertyandrefparameter,whynosugar?(9个回答)Apropertyorindexermaynotbepassedasanoutorrefparameter(9个回答)关闭9年前。您好,我无法弄清楚这一点。我有这些结构和类。structCircle{...}classPainting{Listcircles;publicListcircles{get{returncircles;}}}我正在尝试使用以下代码从绘画类外部修改其中一个圆圈:MutatePosition(refpainting.Circles[mutationI