我有一个函数,为给定另一个tile的特定tile设置绘制状态.绘制状态将更改的图块比较周围的图块然后相应地更新.我将尝试在下面说明
[b] [b] [a]
[b] [a] [a]
[a] [a] [a] where a = sand && b = water
Run Code Online (Sandbox Code Playgroud)
当a检测到b正在接近它时,它必须更新其绘制状态.所以我有一个适用于大写,小写,左大小写和右大小写的函数.我现在需要修改该功能,以便它可以处理左右情况,右上角情况,右下角情况等.这是我的功能
public override void CompareBorderingTiles(Tile T)
{
if (T is Water)
{
float leftBound = location.X - (Tile.TileWidth * Tile.TileScale);
float rightBound = location.X + (Tile.TileWidth * Tile.TileScale);
float upperBound = location.Y - (Tile.TileHieght * Tile.TileScale);
float bottomBound = location.Y + (Tile.TileHieght * Tile.TileScale);
if (T.GridLocation.X == leftBound)
{
drawstate = DrawState.Left;
}
if (T.GridLocation.X == rightBound)
drawstate = DrawState.Right;
if (T.GridLocation.Y …Run Code Online (Sandbox Code Playgroud) 我刚开始一个新工作,我有一些React代码需要维护,有一个名为authenticationHandlers.jsthis 的文件就是代码在文件中的样子.
const events = require("./authenticationEvents.js");
const authenticationHandlers = {
[events.Errored.Name](prev, event) {
const update = {
UnauthorizedError: event.Error
};
return Object.assign({}, prev, update);
},
[events.ClearError.Name](prev, event) {
const update = {
UnauthorizedError: null
};
return Object.assign({}, prev, update);
}
};
module.exports = authenticationHandlers;
Run Code Online (Sandbox Code Playgroud)
我对代码的功能没有任何疑问,但是括号语法在行[events.Erorred.Name]和行上做了什么[events.ClearError.Name]
换句话说,括号是什么意思?
我有一个大约100个对象的列表,恰好是瓷砖.它看起来像这样:
List<Tile> Tiles;
Run Code Online (Sandbox Code Playgroud)
在我的代码的其他地方,我有从tile基类派生的类,我将使用house作为这个例子:
public class house : Tile
Run Code Online (Sandbox Code Playgroud)
在列表顶部我已经在数据结构中添加了不同类型的切片:
Tiles.add(new house());
Tiles.add(new church()); //ect. ect.
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我通过像for-loop这样的控制结构引用该列表,我怎么知道哪些瓷砖是教堂或房屋.基本上我需要将两种不同类型的瓷砖进行比较.是否有可能知道我引用了哪个子类?我确信对此有一个简单的解释,但是当谈到面向对象的编程时我并不是很精通,所以我甚至不能完全确定在提供帮助时我应该寻找什么.
我有一个公共静态类RandomGenerator,只有一个值apublic static random = new Random();
这就是它的样子
public static class RandomGenerator
{
public static Random random = new Random();
}
Run Code Online (Sandbox Code Playgroud)
我不得不这样做,因为当我的代码去访问一个随机的时候会生成太多重复的副本(我相信它与Random在内存中的位置有关)
上面的代码很棒!我的代码每次调用时都会生成一个真正的随机值.我的问题是为什么C#语言的内置静态函数不是随机的?是因为以这种方式访问某些内容会导致性能下降吗?我编写代码的方式是否存在明显的性能问题?
c# ×3
oop ×3
abstraction ×1
class ×1
ecmascript-6 ×1
javascript ×1
random ×1
reactjs ×1
redux ×1
static ×1