尝试比较结构成员值时收到以下错误
Posted
技术标签:
【中文标题】尝试比较结构成员值时收到以下错误【英文标题】:Receiving the following error while attempting to compare struct member values 【发布时间】:2021-12-14 14:20:02 【问题描述】:我刚刚开始探索 c# 的世界。 我一直在使用用户定义的类型 如下:
struct Obstacle
public static int x1 get; set;
public static int y1 get; set;
public static int x2 get; set;
public static int y2 get; set;
public Obstacle(int X1, int Y1, int X2, int Y2)
x1 = X1;
y1 = Y1;
x2 = X2;
y2 = Y2;
我在另一个文件包含的 classA 中构造了这些类型的列表。
List<Obstacle> o = new();
按照向列表添加元素的过程 我尝试比较特定列表元素的两个坐标(也在 classA 内):
for (int i = 0; i < obstacle_count; i++)
if (o.ElementAt(i).x1 != obstacles.ElementAt(i).x2)
//do something
else
//do something else
但是我收到类似这样的错误:“无法使用实例引用访问成员 'Obstacle.x1';改为使用类型名称对其进行限定”。
结构定义与上面介绍的其他代码 sn-ps 共享命名空间。
我应该如何解决这个问题?提前谢谢。 :)
【问题讨论】:
成员 x1, x2, y1,y2 是静态的,这意味着 Obstacle 类型的所有对象共享这些字段。在您的情况下,它们真的应该是静态的吗? 【参考方案1】:我相信这是因为 x1, x2 , ... 是静态的。你不能用函数影响静态值:)
【讨论】:
以上是关于尝试比较结构成员值时收到以下错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSFileManager 检索多个值时收到“致命错误:在展开可选值时意外发现 nil”
为啥我在尝试在 iOS Swift 中向服务器发出 post 请求时收到此错误:在展开 Optional 值时意外发现 nil?