【发布时间】:2019-02-18 20:03:35
【问题描述】:
我有一个可以正常工作的程序。这是一个正确的代码。
public static double Smth(int x, int y, double[,] original, int lengthX, int lengthY)
{
var pixelsFields = new List<double>();
double median;
for (int areasX = -1; areasX < 2; areasX++)
for (int areasY = -1; areasY < 2; areasY++)
if ((x + areasX > -1) && (y + areasY > -1) && (x + areasX < lengthX) && (y + areasY < lengthY))
pixelsFields.Add(original[x + areasX, y + areasY]);
但是,我想改进我的代码。表达式“x + areaX”和“y + areaY”经常重复,所以我决定创建两个变量。不幸的是,我对新变量有一个错误:“错误 CS1023:嵌入式语句不能是声明或标记语句”。
public static double Smth(int x, int y, double[,] original, int lengthX, int lengthY)
{
var pixelsFields = new List<double>();
double median;
for (int areasX = -1; areasX < 2; areasX++)
for (int areasY = -1; areasY < 2; areasY++)
var diffX = x + areasX;
var diffY = y + areasY;
if ((diffX > -1) && (diffY > -1) && (diffX < lengthX) && (diffY < lengthY))
pixelsFields.Add(original[diffX, diffY]);
你能帮我纠正一下吗?
【问题讨论】:
-
尝试声明 var diffX 和 diffY 来处理 pxelsFields
-
你需要大括号来表达你的 for 循环的范围。不建议使用大括号来表示范围。它可能会令人困惑并导致此类错误
标签: c#