草庐IT

数学问题

全部标签

C# 数学与 XNA MathHelper

自从我需要在C#中使用PI(3.1415...)以来,我一直使用Math.PI来获取值。通常我只会使用像Math.PI/2.0或2.0*Math.PI这样的值,但现在我刚刚注意到XNA提供了一个MathHelper类。这样做的好处是我可以调用MathHelper.PiOver2和MathHelper.TwoPi,从而使极其微不足道的步骤变得更加微不足道。;-)我假设这两个类可以互换,但我注意到Math.PI/2.0!=MathHelper.PiOver2。我试图研究为什么会这样,但我一无所获。所以,我想我会在这里碰碰运气。关于使用PI,Math类和MathHelper类之间有什么区别吗

c# - 如何强制我的 lambda 表达式提前求值?修复 lambda 表达式的怪异问题?

我编写了以下C#代码:_locationsByRegion=newDictionary>();foreach(stringregionIdinregionIds){IEnumerablelocationIds=Locations.Where(location=>location.regionId.ToUpper()==regionId.ToUpper()).Select(location=>location.LocationId);//IfIcasttoanarrayhere,itworks._locationsByRegion.Add(regionId,LocationIdsIds)

c# - Microsoft Office 互操作性能问题

我尝试在我的C#4.0Windows应用程序中将datagridview数据导出到excel文件。我们使用了Microsoft.Office.Interop.Exceldll版本12.0.0.0。一切都很好很好。但是当我尝试导出超过1000条datagridview记录时,它花费的时间太长了时间。我怎样才能提高性能。请参阅下面的Excel帮助程序代码。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.IO;usingMicrosoft.Office.Inte

C# linq 联合问题

谁能解释一下LINQ中的Union是如何工作的?据说它合并了两个序列并删除了重复项。但我能否以某种方式自定义重复删除行为-假设我希望在重复的情况下使用第二个序列中的元素或第一个序列中的元素。或者即使我希望以某种方式将这些值组合到结果序列中?应该如何实现?更新我想我对问题的描述不正确,假设我们有一些值(value):classValue{StringnameIntwhatever;}并且使用的比较器执行x.name==y.name检查。假设有时我知道我应该从第二个序列中获取元素,因为它的whatever字段比第一个序列的whatever字段更新/更好.无论如何,我会使用方法的sequen

c# - BinaryWriter Endian 问题

我正在使用BinaryWriter类将二进制文件写入磁盘。当我调用Write方法并传递一个无符号短值时,它以小端格式写入。例如:bw.Write(0xA000);将二进制文件中的值写入0x000xA0。有没有办法让BInaryWriter使用BigEndian?如果不行,是否可以新建一个类,继承BinaryWriter,重载Write函数,让它写bigendian? 最佳答案 您可以在MiscUtil中使用我的EndianBinaryWriter.这使您可以指定所需的字节顺序。还有EndianBinaryReader和EndianB

c# - XML 序列化和 DefaultValue ("") c# 中的相关问题

我的类属性具有将被序列化的默认值。publicclassDeclaredValue{[XmlElement(ElementName="Amount",DataType="double",IsNullable=false),DefaultValue(999)]publicdoubleAmount{get;set;}[XmlElement(ElementName="Reference2",DataType="string",IsNullable=false),DefaultValue("")]publicstringReference2{get;set;}}因此我们创建DeclaredVa

c# - 循环优化或 lambda 闭合有问题?

在下面的方法中,我发送了一个Action枚举,并希望返回一个调用Action的ICommand数组。包装那些Action(relayCommand需要)。问题是,如果我在foreach(甚至是for循环)中执行此操作,我得到的命令总是执行参数中传递的第一个操作。publicstaticICommand[]CreateCommands(IEnumerableactions){Listcommands=newList();Action[]actionArray=actions.ToArray();//works//commands.Add(newRelayCommand(o=>{actio

c# - 旋转图像数学 (C#)

我有一个有两个点的图像,对齐方式如下:|----------------||||.||||.||||----------------|我有两个点的X、Y坐标,我需要将图像旋转X度,使其看起来像这样:|----------------||||||..||||||----------------|基本上是为了让它们彼此相邻对齐,这是什么数学原理?(C#中的代码示例会更好,但不是必需的) 最佳答案 这取决于您想将哪个点用作旋转的“中心”。我们称该点为上方和左侧的点A,右侧和下方的点为点B。如果您想围绕点A旋转,使点B与其对齐,则以弧度为单

C# 日期时间解析问题

尝试将日期/时间从字符串转换为DateTime时,我没有得到正确的值。DateTimetestDate=DateTime.ParseExact("2012-08-10T00:51:14.146Z","yyyy-MM-ddTHH:mm:ss.fffZ",CultureInfo.InvariantCulture,DateTimeStyles.AssumeUniversal);我的结果是2012-08-098:51:14PM。为什么会被抵消?我只是希望它具有相同的值(value)。 最佳答案 您正在解析UTC日期,但DateTime.Ki

c# - 在 C# 4 中使用 Nullable<T> 时遇到的问题

我刚开始写一个组件,我发现声明一些属性可为空可能很有用,而不是让它们求助于默认值。但是,我意识到我以前从未使用过non-nullable-type?语法或Nullable之前打字,所以可能会有一些陷阱很快就会跳出来咬我。所以……使用Nullable时最大的陷阱是什么?和速记?语法?我该如何解决它们?当我开始使用它们时,它们给我带来的最大优势/新可能性是什么? 最佳答案 一个常见的陷阱是尝试使用条件表达式分配给可为空的变量,如下所示:booluseDefault=true;intdefaultValue=50;int?y=useDef