草庐IT

my_numeric_cast

全部标签

c# - 无法转换类型 : why is it necesssary to cast twice?

鉴于这个高度简化的例子:abstractclassAnimal{}classDog:Animal{publicvoidBark(){}}classCat:Animal{publicvoidMew(){}}classSoundRecorderwhereT:Animal{privatereadonlyT_animal;publicSoundRecorder(Tanimal){_animal=animal;}publicvoidRecordSound(stringfact){if(this._animalisDog){((Dog)this._animal).Bark();//Compiler

c# - .NET : Unable to cast object to interface it implements

我有一个类(TabControlH60),它既继承自基类(UserControl)又实现了一个接口(interface)(IFrameworkClient)。我使用.NETActivator类实例化该对象。使用返回的实例,我可以转换为UserControl基类,但不能转换为接口(interface)。我得到的异常在代码片段下方。如何转换到界面?objectobj=Activator.CreateInstance(objType);Type[]interfaces=obj.GetType().GetInterfaces();//containsIFrameworkClientm_Clie

c# - 包装 System.Numerics.VectorS 的成本很高——为什么?

TL;DR:为什么包装System.Numerics.Vectors类型很昂贵,我能做些什么吗?考虑以下代码:[MethodImpl(MethodImplOptions.NoInlining)]privatestaticlongGetIt(longa,longb){varx=AddThem(a,b);returnx;}privatestaticlongAddThem(longa,longb){returna+b;}这会将JIT转换为(x64):00007FFDA3F94500learax,[rcx+rdx]00007FFDA3F94504ret和x86:00EB2E20pushebp0

c# - 为什么 OfType<> 比 Cast<> 快?

回答以下问题:HowtoconvertMatchCollectiontostringarray给定两个Linq表达式:vararr=Regex.Matches(strText,@"\b[A-Za-z-']+\b").OfType()//OfType.Select(m=>m.Groups[0].Value).ToArray();和vararr=Regex.Matches(strText,@"\b[A-Za-z-']+\b").Cast()//Cast.Select(m=>m.Groups[0].Value).ToArray();OfType由用户Alex进行了基准测试稍微快一点(并由我自

c# - 计算 BigInteger 的平方根 (System.Numerics.BigInteger)

.NET4.0为任意大的整数提供了System.Numerics.BigInteger类型。我需要计算BigInteger的平方根(或合理的近似值——例如整数平方根)。这样我就不必重新实现轮子,有人对此有很好的扩展方法吗? 最佳答案 CheckifBigIntegerisnotaperfectsquare具有计算JavaBigInteger的整数平方根的代码。这里翻译成C#,作为扩展方法。publicstaticBigIntegerSqrt(thisBigIntegern){if(n==0)return0;if(n>0){intbi

c# - 我的 System.Numerics 命名空间在哪里?

我正在使用VisualStudio2010并尝试在C#程序中使用BigInteger类型。这种类型应该在System.Numerics命名空间中可用,但我似乎没有在.Net4.0框架中安装它。当我在VS2010中键入“usingSystem.Numerics;”时,红色下划线出现在“Numerics”下方。还有其他人遇到过这个问题吗?如果是这样,你是如何解决的?我刚刚重新下载并重新安装(修复)了.Net4.0框架,但这没有帮助。我编写的其他C#程序从未遇到过任何问题,所以我想知道我遗漏了什么。 最佳答案 您需要添加对System.N

c# - 业务应用程序 : Will F# make my life easy?

我主要开发业务线应用程序。没有科学操作。没有复杂的计算。只需将用户界面绑定(bind)到数据库。我使用线程的唯一原因是在后台做一些工作并仍然保持UI响应。这可能不是最好的方法,但这是我遵循的方法1.首先创建一个工作应用程序(无线程)并将其提供给最终用户以进行反馈。2.一旦所有需求都被锁定,我会尝试在任何对提高性能有意义的地方使用线程。步骤1和2的代码截然不同,线程代码主导了实际代码。1.对于业务线应用程序,F#会让我的生活更轻松吗?2.是否有任何特定的UI技术最适合F#?我主要从事ASP.NET和Silverlight方面的工作。时不时地使用WPF。3.是否有使用F#的业务线应用程序/

c# - 为什么这个 Linq Cast 在使用 ToList 时会失败?

考虑这个人为的、微不足道的例子:varfoo=newbyte[]{246,127};varbar=foo.Cast();varbaz=newList();foreach(varsbinbar){baz.Add(sb);}foreach(varsbinbaz){Console.WriteLine(sb);}借助二进制补码的魔力,-10和127被打印到控制台。到目前为止,一切都很好。眼尖的人会看到我正在迭代一个可枚举并将其添加到列表中。这听起来像ToList:varfoo=newbyte[]{246,127};varbar=foo.Cast();varbaz=bar.ToList();//

c# - .Cast 优于 .Select 有什么好处?

我有一个带有隐式转换运算符到大多数基本类型的类型,并尝试使用.Cast()在这种类型的集合上,失败了。当我深入研究它时,我注意到通过as类型转换不使用隐式或显式转换,只是不会编译,所以我想这就是.Cast的地方摔倒。所以这失败了varenumerable=source.Cast();但这行得通varenumerable=source.Select(x=>(string)x);那么Cast有什么好处呢?当然,它短了几个字符,但似乎更受限制。如果可以用来转换,除了语法更紧凑之外还有什么好处吗? 最佳答案 转换用法Cast的好处|当您的收

c# - C#中SQL Server的Numeric的等效数据类型是什么

在SQLServer中,我们可以将数据写入Numeric(15,10)..这在C#中的等价物是什么?我知道Numeric的等价物是Decimal但如何表示Numeric(15,10)? 最佳答案 没有直接的等效项,因为据我所知,没有内置的.NET类型允许您明确指定精度/比例。没有像NUMERIC这样的固定点类型。decimal和double是.NET中常见的浮点类型,decimal实现了decimalfloatingpoint。(类似于T-SQL中的NUMERIC)和double实现binaryfloatingpoint行为(如T-