小编Jos*_*egl的帖子

有没有办法打破一个返回void的函数?

我有一个函数,为给定另一个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)

c# oop

6
推荐指数
3
解决办法
8862
查看次数

我不熟悉我遇到的这种javascript语法

我刚开始一个新工作,我有一些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]

换句话说,括号是什么意思?

javascript ecmascript-6 reactjs redux

4
推荐指数
1
解决办法
99
查看次数

如何确定我在列表中引用的子类?

我有一个大约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这样的控制结构引用该列表,我怎么知道哪些瓷砖是教堂或房屋.基本上我需要将两种不同类型的瓷砖进行比较.是否有可能知道我引用了哪个子类?我确信对此有一个简单的解释,但是当谈到面向对象的编程时我并不是很精通,所以我甚至不能完全确定在提供帮助时我应该寻找什么.

c# oop abstraction

2
推荐指数
1
解决办法
154
查看次数

访问静态随机实例的性能如何?

可能重复:
随机数生成器只生成一个随机数
类System.Random ..为什么不静态?

我有一个公共静态类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# oop random static class

0
推荐指数
1
解决办法
264
查看次数

标签 统计

c# ×3

oop ×3

abstraction ×1

class ×1

ecmascript-6 ×1

javascript ×1

random ×1

reactjs ×1

redux ×1

static ×1