首页 > 解决方案 > 访问 X 上的成员可能会导致运行时异常,因为它是 marshal-by-reference 类的字段

问题描述

我有两种形式,在第一种形式中,我声明了一个应该过滤 a 的日期的 int 变量,List<DateTime>例如“获取星期三的所有日期”。这个 int 被称为WednesdayTotal.

在form1中,我放置了一个标签并按WednesdayTotal值更改了它的文本,它显示“2”,我想在form 2中使用该值,所以修饰符WednesdayTotal是public,(因为它现在只是一个测试),当我想用它,它显示0。为什么?

表格 1 代码:

public int WednesdayTotal;    
WednesdayTotal = DateList.Count(x => x.DayOfWeek == DayOfWeek.Wednesday);

表格 2 代码:

if (Home.WednesdayTotal >= 1)
{
    WednesdayPin.Visible = true;
    WednesdayValue.Visible = true;
    WednesdayValue.Text = Home.WednesdayTotal.ToString();
}

在以下行中:

  WednesdayValue.Text = Home.WednesdayTotal.ToString();

显示错误:

警告 CS1690 访问 Form1.WednesdayTotal 上的成员可能会导致运行时异常,因为它是 marshal-by-reference 类的字段

标签: c#

解决方案


如果您使用的是 Visual Studio,则可以快速轻松地解决此问题:

  1. 按 Ctrl + Alt + E 打开异常设置。
  2. 取消选中标有“托管调试助手”的框

这应该会阻止您看到警告。如果你真的想修复警告,出于某种原因,我只能引导你到这里


推荐阅读