草庐IT

features2d_converters

全部标签

c# - (-) Convert 方法中使用的符号

我在浏览一些C#代码时发现了这一行:Matrix[i,j]=Convert.ToInt32(grab[i,j]-'0');(-)到底是做什么的?如果有的话,还有另一种写法吗? 最佳答案 -(减号)做的正是它一直做的事——减法。这里发生的事情是从[i,j]处的字符中减去零'0'的字符代码。这会将数字字符转换为相应数字的整数值。例如,如果你计算chardigitChar='7';intdigitVal=digitChar-'0';digitVal的值为七。 关于c#-(-)Convert方法

c# - 为什么 foreach(var i in array2D) 适用于多维数组?

给定以下C#代码:int[,]array2D=newint[10,10];intsum=0;foreach(variinarray2D){sum+=i;}问题是:是什么导致了i的类型?被正确推断为int?这一点都不明显,因为array2D是一个矩形数组。它没有实现IEnumerable.它还实现了一个GetEnumerator()方法,返回System.Collections.IEnumerator.因此,我希望i类型为object.我的代码使用的是.net4.03。相关问题:WhydoC#MultidimensionalarraysnotimplementIEnumerable?.

c# - 通过 ref : cannot convert from 'Foo' to 'ref IFoo' 传递实现

这个问题在这里已经有了答案:Whydoesn't'ref'and'out'supportpolymorphism?(10个答案)关闭3年前。有人可以向我解释为什么这在C#中是不正确的吗:namespaceNamespaceA{publicclassClassA{publicinterfaceIInterfaceA{StringProperty{set;}}}}namespaceNamespaceB{publicclassClassB{publicclassImpA:NamespaceA.ClassA.IInterfaceA{privateStringmProperty;publicSt

c# - Convert.ToDouble ("4089.90") 输出 40.899,00 为什么?

我正在开发一个使用数字精度的软件,但我遇到了这个问题,当我将一个字符串转换为double时,它​​会输出不同的文化。例如我使用Convert.ToDouble("4089.90");//itoutputs40.899,00很奇怪,因为在我的电脑上它工作正常,但在客户端的电脑上(在区域设置中具有相同的文化)向我显示了后者的输出。我知道我可以使用修复它Convert.ToDouble("4089.90",System.Globalization.CultureInfo.InvariantCulture);但程序中有很多代码使用“Convert.ToDouble”,我不想全部更改,另一方面我

c# - 两个向量 2D 之间的角度

我正在尝试计算两个向量之间的角度。我试过了,但它总是返回零:publicdoubleGetAngle(Vector2a,Vector2b){doubleangle=Math.Atan2(b.Y,b.X)-Math.Atan2(a.Y,a.X);returnangle;}GetAngle(newVector2(1,1),newVector2(50,50)); 最佳答案 你应该看看atan2(here)的文档。您正在寻找的是找到B(左上向量)和A(右下向量)之间的差异,然后将其作为参数传递给atan2returnMath.Atan2(b

c# - Func<T, TResult> 和 Converter<TInput, TOutput> 有什么区别?

查看Func和Converter委托(delegate)的签名,publicdelegateTResultFunc(Targ);publicdelegateTOutputConverter(TInputinput);我很难看出两者之间的区别。当然,如果我们重命名泛型类型参数,它们本质上是一样的吗?有人能解释一下为什么它们都存在吗? 最佳答案 没有区别。它们存在的原因是历史性的。Converter在.NET2.0中已经可用,但整个范围Func稍后添加了委托(delegate)类型。为了保持一致性,Func已添加,但它与Converte

c# - 为什么 System.Convert 有接受 DateTime 的 ToDateTime?

////Summary://ReturnsthespecifiedSystem.DateTimeobject;noactualconversionisperformed.////Parameters://value://Adateandtimevalue.////Returns://valueisreturnedunchanged.publicstaticDateTimeToDateTime(DateTimevalue);为什么System.Convert有接受DateTime的ToDateTime?方法文档声明该值保持不变。 最佳答案

c# - Convert.ChangeType 的更快版本

在我的应用程序中,我经常调用Convert.ChangeType以将值转换为动态加载的类型。但是,在使用ANTS进行分析后,我发现此Convert.ChangeType似乎需要花费大量时间(由于被频繁调用)。有没有人有比这更快的替代方法?此时我有一个包含目标的类型对象,以及一个包含值的string。以下是有问题的代码。我正在考虑对类型执行switch语句(因为它是类型的有限集合)并调用解析方法,尽管我不确定这是否会更快。if(attributeRow["Value"]!=DBNull.Value)sample[attr]=attr.AttributeType==typeof(Guid)

c# - Unity 4.3 - 2D,如何以编程方式将 Sprite 分配给对象

我正在尝试创建一个负责创建和显示不同Sprite的对象,因此我想以编程方式直接访问Assets/Sprite,而不是将Sprite拖放到该对象下的层次结构中。有一种方法可以通过编程方式创建一个新的Sprite并分配我在Assets文件夹中的内容吗?我还想要一种数据结构,在游戏开始时加载一些图像,一个数组或字典或类似的东西,这样我就可以根据某些情况更改我需要显示的图像。但是让我感到困惑的是,因为我是Unity的新手,所以如何使用Assets文件夹以编程方式引用Sprite来创建Sprite。随进度编辑:我创建了一个像这样的Sprite数组:publicSprite[]mySprites;

c# - Convert.ToDateTime 在下午日期/时间值上导致 FormatException

我们有一个应用程序解析以下格式的日期/时间值:2009-10-1009:19:12.1242009-10-1012:13:14.8522009-10-1013:00:002009-10-1015:23:32.022一个特定的服务器突然(今天)在13:00:00或更晚的任何时间开始解析失败。这个特定的客户端有五台服务器,只有一台有问题。我们有几十个其他客户,总共有数百台服务器没有问题。System.FormatException:StringwasnotrecognizedasavalidDateTime.atSystem.DateTimeParse.Parse(Strings,Date