草庐IT

float_ref

全部标签

c# - 如何重新解释将 float 转换为 int?是否有用于 'this' 转换的非静态转换运算符或用户定义的赋值运算符?

这个问题在这里已经有了答案:Convertintbitstofloatbits(8个答案)关闭2年前。1.我如何重新解释将float转换为int(或将double转换为long)?floatf=2.0f;inti=(int)f;//causesconversion我只想将位模式从f复制到i。如何做到这一点?2。C#中的隐式和显式运算符使用一个中间对象,因为运算符函数是静态的publicstaticimplicitoperatorMyClass(doubles){returnnewMyClass(s);}....MyClassm=2.2;//thiscodeuses'm'andonein

c# - "ref"使用实例

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion我正在努力如何在实际应用程序中使用“ref”(通过引用传递参数)。我想要一个简单且主要有意义的例子。到目前为止,我发现的所有内容都可以通过向方法添加返回类型轻松重做。有人知道吗?谢谢!

c# - 测试 float NaN 会导致堆栈溢出

C#、VS2010我需要确定浮点值是否为NaN。使用NaN测试floatfloat.IsNaN(aFloatNumber)因堆栈溢出而崩溃。也是一样aFloatNumber.CompareTo(float.NaN).以下不会崩溃,但它没有用,因为它无论如何都会返回NaN:aFloatNumber-float.NaN搜索“堆栈溢出”会返回有关此网站的结果,而不是有关实际堆栈溢出的结果,因此我找不到相关答案。为什么我的应用程序在测试NaN时会发生堆栈溢出?编辑:调用堆栈:编辑:这显然是我的代码中的内容:这条语句:boolaaa=float.IsNaN(float.NaN);在应用程序的构造

c# - 如何从抛出异常的方法中通过 out/ref 参数获取值?

此代码输出“输出值”。classP{publicstaticvoidMain(){stringarg=null;try{Method(outarg);}catch{}Console.WriteLine(arg);}publicstaticvoidMethod(outstringarg){arg="outvalue";thrownewException();}}但是这个没有。classP{publicstaticvoidMain(){object[]args=newobject[1];MethodInfomi=typeof(P).GetMethod("Method");try{mi.In

c# - 对可空 float 进行加法时的奇怪行为

在处理可空float时,我注意到一些非常奇怪的事情。采取以下代码:float?a=2.1f;float?b=3.8f;float?c=0.2f;float?result=(a==null?0:a)+(b==null?0:b)+(c==null?0:c);float?result2=(a==null?0:a.Value)+(b==null?0:b.Value)+(c==null?0:c.Value);result是6.099999而result2是6.1。我很幸运完全偶然发现了这一点,因为如果我更改a、b和c的值,行为通常看起来是正确的.这也可能发生在其他算术运算符或其他可空值类型上,但

c# - 使用反射调用静态方法时如何通过ref传递参数?

我正在使用反射在对象上调用静态方法:MyType.GetMethod("MyMethod",BindingFlags.Static).Invoke(null,newobject[]{Parameter1,Parameter2});如何通过ref而不是通过值来传递参数?我假设它们默认是按值计算的。第一个参数(数组中的“Parameter1”)应该是ref,但我不知道如何以这种方式传递它。 最佳答案 对于引用参数(或C#中的out),反射会将新值复制到对象数组中与原始参数相同的位置。您可以访问该值以查看更改后的引用。publicclas

c# - 为什么 float.parse 返回错误值?

我有一个问题。当我将像“0.005”这样的字符串解析为float或double时,它在我的电脑上运行良好,但当我将我的程序安装到我的客户端电脑时,它返回5。(我的电脑和我的客户端电脑都使用Windows7x64).这是我的例子publicfloatgetFloat(){floatmn=float.Parse("0.005");doublemn2=Convert.ToDouble("0.005");returnmn;} 最佳答案 这可能是系统文化设置的问题。试试这个:float.Parse("0.005",CultureInfo.In

c# - 为什么可以通过ref参数修改readonly字段?

考虑:classFoo{privatereadonlystring_value;publicFoo(){Bar(ref_value);}privatevoidBar(refstringvalue){value="helloworld";}publicstringValue{get{return_value;}}}//...varfoo=newFoo();Console.WriteLine(foo.Value);//"helloworld"这如何编译,仍然有效?我不应该能够在构造函数之外为_value字段分配不同的值,因为它被标记为readonly。但是,通过ref传递给方法,确实可以操

c# - 当 .NET 反射器显示它已在 .NET Framework 中完成时,为什么我不能将属性或索引器作为 ref 参数传递?

好的,我将从.NET反射器中剪切和粘贴以演示我正在尝试做的事情:publicoverridevoidUpdateUser(MembershipUseruser){//Abunchofirrelevantcode...SecUtility.CheckParameter(refuser.UserName,true,true,true,0x100,"UserName");//Moreirrelevantcode...}这行代码直接来自.NETFramework中的System.Web.Security.SqlMembershipProvider.UpdateUser(System.Web.d

c# - 有趣的 "params of ref"功能,有什么解决方法吗?

我想知道对于值类型是否有任何类似的方法......publicstaticclassExtensionMethods{publicstaticvoidSetTo(thisBooleansource,paramsBoolean[]bools){for(inti=0;i那么这将是可能的:Booleana=true,b,c=true,d=true,e;b.SetTo(a,c,d,e);当然,这是行不通的,因为bool是值类型,所以它们作为值而不是引用传递给函数。除了将值类型包装成引用类型(通过创建另一个类)之外,还有什么方法可以在使用params修饰符时通过引用(ref)将变量传递给函数?