-1

我对 Xamarin 和 C# 还是很陌生(但是,我确实知道 C++ 和 Java,所以到目前为止我对后者一直做得很好)。IOnCheckedChangedListener在为我在我的(Android-)应用程序中使用的复选框创建一个复选框时,我遇到了一个警告。

到目前为止,我已经创建了一个简单的类OnCheckedChangedListener,它继承自Java.lang.Object并实现了IOnCheckedChangeListener. 当然,该方法OnCheckedChanged()也已被实施。

我已经通过使用设置了监听器

OnCheckedChangedListener listener = new OnCheckedChangedListener();
checkBox.SetOnCheckedChangeListener(listener);

到目前为止一切正常,但在所有对它的引用超出范围之前,我收到警告“调用 System.IDisposable.Dispose 对由‘new OnCheckedChangedListener()’创建的对象。”

listener.Dispose()我可以通过在设置监听器后调用或将整个事物(如创建监听器并将其设置在复选框中的事物)包装到一个using块中来删除此警告。这消除了警告,但是每当调用监听器时都会导致运行时错误(我认为这是因为我已经有效地删除了监听器,但程序仍然试图调用它)。

根据这个线程,不需要实际调用Dispose(),但我真的很想摆脱警告。有没有一种摆脱它的好方法(最好不要告诉编译器简单地忽略它)?

4

1 回答 1

1

如果您想在用户选中或取消选中复选框时执行某些操作,您可以注册 RadioGroup 的 CheckedChange 事件,如下所示

checkBox.CheckedChange += OnCheckedChange;
private void OnCheckedChange(object sender, RadioGroup.CheckedChangeEventArgs e)
{
        //include your code logic here
}

或者你可以直接使用 lambda

checkBox.CheckedChange += (s, e) =>
{
    //include your logic here
    //s = sender (checkbox)
    //e = RadioGroup.CheckedChangeEventArgs
};
于 2020-01-16T10:00:21.497 回答