警告:我是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) 在OpenGL中,我可以这样做:
glOrtho(-10, 10, -10, 10, -1, 1)
Run Code Online (Sandbox Code Playgroud)
建立一个坐标系,其中x的范围是-10到10,y的范围是-10到10.
有没有办法在WPF中更改画布的坐标系?
当以下内容提交给编译器时
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?
我安装了以下适用于 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)
然而,我显然想避免这种情况,因为它关闭了检测真正未定义变量的好功能。
code .。