Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C从列表中删除项将在内部更新数据库_C#_Idisposable - Fatal编程技术网

C# C从列表中删除项将在内部更新数据库

C# C从列表中删除项将在内部更新数据库,c#,idisposable,C#,Idisposable,我目前正在研究一个编程场景。我想在删除项目的同时在后台执行一些特殊功能,在本例中,这些功能将更新外部数据库 我曾想过使用IDisposable,但它会在程序关闭时执行删除操作。如果这是正确的,是否有某种方法仅在我从列表中删除项目时执行清理操作,而不是在程序关闭期间 谢谢 编辑: 根据注释,以下是一些示例代码: public class CItem { private string Name; private int Data; public void destroy()

我目前正在研究一个编程场景。我想在删除项目的同时在后台执行一些特殊功能,在本例中,这些功能将更新外部数据库

我曾想过使用IDisposable,但它会在程序关闭时执行删除操作。如果这是正确的,是否有某种方法仅在我从列表中删除项目时执行清理操作,而不是在程序关闭期间

谢谢

编辑:

根据注释,以下是一些示例代码:

public class CItem
{
    private string Name;
    private int Data;

    public void destroy()
    {
        // Do something that performs clean up only during run-time, not program exiting
    }
}
public class CMain
{
    private List<CItem> items;

    public setItem(CItem newItem)
    {
        items.add(newItem);
    }

    public removeFirstItem()
    {
        items.remove(items[0]);  // remove the first item and dispose
    }
}

行items.removeitems[0]是否可能在移除和销毁某个项目时,我可以执行仅限于在运行时进行处置的后台处置?

首先,使用“using”语句:。第二,介意分享一些代码吗?这个问题让人很困惑,因为你想做什么,但有一件事我想我可以帮助你,那就是IDisposable在关机时不会被调用。您必须显式调用.Dispose以处置所有IDisposable对象。使用BindingList并订阅ListChanged事件。如果我没有错,您会问两个问题,对吗?1.如何在从listview中删除项时执行DML操作。2.如何在从listview中删除项时进行清理。若要对列表集合更改执行特殊操作,可以检查以下线程:http://stackoverflow.com/questions/10419419/observablecollectiont-collectionchanged-event