小编dha*_*ech的帖子

C#中带有"包边"的二维数组

警告:我是C#newb.除了回答我的问题,如果您在看到我的代码后有任何一般的提示,欢迎他们.

假设我在C#中定义了一个大小为10x10的二维数组:

var arr = new int[10,10];
Run Code Online (Sandbox Code Playgroud)

访问索引超出0-9范围的元素是错误的.在某些应用程序中(例如,某些2D阵列代表世界的游戏),必须"包裹"阵列的边缘.所以举个例子

arr[-1, 0]
Run Code Online (Sandbox Code Playgroud)

实际上会引用arr [9,0]中的元素.

我一直在使用的一种方法是以下课程.我没有将System.Array子类化,因为C#显然禁止这样做.

用法示例:

var grid = new Grid(10,10);
grid.set(-1, 0, 100); // Set element at (-1,0) to value 100.
grid.at(-1,0); // retrieve element at (-1,0)
Run Code Online (Sandbox Code Playgroud)

班级本身:

class Grid
{
    public int[,] state;

    public int width { get { return state.GetLength(0); } }
    public int height { get { return state.GetLength(1); } }

    public Grid(int width_init, int height_init)
    {
        state = new int[width_init, height_init];
    }

    int mod(int a, int b) …
Run Code Online (Sandbox Code Playgroud)

c# arrays subclass multidimensional-array

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

相当于WPF中的glOrtho

在OpenGL中,我可以这样做:

glOrtho(-10, 10, -10, 10, -1, 1)
Run Code Online (Sandbox Code Playgroud)

建立一个坐标系,其中x的范围是-10到10,y的范围是-10到10.

有没有办法在WPF中更改画布的坐标系?

c# wpf xaml

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

如何重写Vec.append"赞成"扩展?

当以下内容提交给编译器时

fn main()
{
    let abc = vec![10u, 20u, 30u];

    let bcd = vec![20u, 30u, 40u];

    let cde = abc.append(bcd.as_slice());

    println!("{}", cde);
}
Run Code Online (Sandbox Code Playgroud)

编译器发出以下警告:

不推荐使用此函数,而使用extend()

相同的外观如何使用extend?

vector append sequence deprecated rust

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

vscode Haskell 扩展未检测到新函数

我安装了以下适用于 Haskell 的 Visual Studio Code 扩展:

在此输入图像描述

假设我创建了一个新的堆栈项目:

stack new vscode-red-squiggly-test
Run Code Online (Sandbox Code Playgroud)

并设置Lib.hs如下Main.hs:

在此输入图像描述

这构建并运行得很好:

stack build
stack exec vscode-red-squiggly-test-exe
Run Code Online (Sandbox Code Playgroud)

现在,如果我添加一个项目xyz并Lib.hs在其中引用它Main.hs:

在此输入图像描述

如您所见,下面出现了一条红色的波浪线xyz。

现在,我可以很好地构建并运行该程序。

当我将鼠标悬停在波浪形上时的提示如下:

在此输入图像描述

如果我关闭 vscode,运行stack build,然后通过 重新启动 vscode code .,波浪就会消失。

那么...有没有一种方法可以让波浪消失而无需重新启动 vscode?

建议的快速修复是将以下内容添加到文件中:

{-# OPTIONS_GHC -Wno-deferred-out-of-scope-variables #-}
Run Code Online (Sandbox Code Playgroud)

然而,我显然想避免这种情况,因为它关闭了检测真正未定义变量的好功能。

笔记

  • 我的 Haskell 环境在 Windows 上的 WSL 中运行。
  • vscode 实例在 Windows 上运行,通过 .vscode 从内部启动code .。

更新

  • 我已将此作为问题提交。

haskell visual-studio-code haskell-language-server

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