You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#访问struct静态成员报错“无法使用实例引用”如何解决?

错误原因

Obstacle结构体中的x1/y1/x2/y2属性被错误标记为了static(静态成员)。静态成员归类型所有,不属于单个结构体实例,因此你通过列表内的实例访问静态成员就会触发该报错。
此外你当前的写法还有逻辑隐患:静态成员的数值是全局共享的,每次新建Obstacle实例赋值时,都会覆盖之前所有实例的坐标值,就算语法不报错也无法实现存储多个不同障碍物坐标的需求。

解决方法

修改Obstacle结构体的属性定义,移除static关键字,改为实例成员即可:

struct Obstacle
{
    // 移除所有属性前的static修饰符
    public int x1 { get; set; }
    public int y1 { get; set; }
    public int x2 { get; set; }
    public int y2 { get; set; }

    public Obstacle(int X1, int Y1, int X2, int Y2)
    {
        x1 = X1;
        y1 = Y1;
        x2 = X2;
        y2 = Y2;
    }
}

修改完成后你原有循环的访问逻辑不需要做任何调整,即可正常运行。

内容的提问来源于stack exchange,提问作者curiousMind_85

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:36:04