Tag: 运营商

哪个更快? ++,+ =或x + 1?

我正在使用C#(这个问题也适用于像C ++这样的类似语言),我试图找出最快,最有效的增量方法。 在我的游戏中,它不仅仅是一个或两个增量,而是每秒300个增量。 就像屏幕上每个精灵的帧都在递增,我的RPG角色的速度和位置,相机的偏移等等。所以我在想,最有效的方法是什么? 例如,对于我可以做的每个动作增加5 y_pos : 1。 Player.YPos += 5; 2。 Player.YPos = Player.YPos + 5; 3。 for (int i = 0; i < 5; i++) { Player.YPos++; } 哪个是最有效的(也是最快的)?

问号在C#代码中意味着什么?

我见过类似以下不相关的代码: Console.Write(myObject?.ToString()); return isTrue ? “Valid” : “Lie”; return myObject ?? yourObject; int? universalAnswer = 42; 问号的所有用法是相关的还是不同的? 他们每个人的意思是什么?

如何让+运算符在相互添加两个点的同时工作?

有没有办法让+运算符为Point对象工作? 举个例子,这个小片段: this.cm1.Show((MouseEventArgs)e.Location+this.i_rendered.Location); 你看,我试着给彼此加两点。 它只是不起作用(这是预期的)。 我很乐意让这个工作。 有任何想法吗?

什么是| 和^运算符用于?

可能重复: 什么是按位运算符? 最近我遇到了一些使用了|的样本 和^运算符。 我猜这些是or negation运算符。 那么这些运营商究竟代表什么呢?

使用generics类型的任何优雅方式?

我正在一个小型教育项目中工作,我们必须实现一个n维矩阵。 根据上下文,此矩阵要么使用我们自己的内置ComplexNumber结构,要么使用System.Double ,对于非常简单的示例,使用整数类型(主要是System.Int32 )。 由于应用程序的性质,我们不需要实现闪电般快速的性能。 因此,我的第一个想法是实现一个Matrix ,其中T将以某种方式被限制为“数字” 。 这样做的一个明显问题是,语言中没有办法用定义的运算符约束generics类型T 另外,我没有看到将T为合理类型的简单方法。 我的问题是: 有人可以指点我用一种优雅的方式来进行数学运算,使用generics类型,不会过多地影响性能,并以某种方式使其与内置类型(如果可能)一起工作。 如果Eric读过这篇文章,那么这个function(通过定义的运算符约束generics类型)是否会出现在C#设计会议的假设未来版本中,并且它是否已经接近将其纳入语言? 我知道实现ComplexMatrix类型更简单,更好,并为每个矩阵“子类型”(double,integral等)创建包装器,并支付我们的复杂类型和矩阵元素中任何类型之间转换的性能成本碰巧是。 这个问题更多的是出于对某人如何实施类似场景的好奇心。

定义实现+运算符的通用

可能重复: .NETgenerics中重载运算符约束的解决方案 我有一个问题,我正在努力,目前它正在为int工作,但我希望它适用于所有可以使用+运算符添加的类。 有没有办法在通用中定义它? 例如, public List Foo() where T : ISummable 有没有办法做到这一点? 编辑: 传入委托进行求和而不是使用+ =类型为Int的性能最好慢540%。 调查可能的其他解决方案 最终解决方案 谢谢大家的建议。 我最终找到了一个不太慢的解决方案,并在编译时强制执行检查。 当一位同事帮我解决这个问题时,我无法完全信任。 无论如何,这里是: 以函数的forms实现一个包含所有必需操作符的接口 public interface IFoo { //Adds A to B and returns a value of type OutputType OutputType Add(InputType a, InputType b); //Subtracts A from B and returns a value of type OutputType OutputType […]