如何处理一个字段

问题描述 投票:0回答:2

我最近开始使用代码分析器和OOOO!男孩,我有很多违法行为吗?大部分是iDisposable,我一直在做研究,到目前为止,我已经设法处理掉了其中的一些。但是我想我已经用尽了一点智慧,所以可以帮助任何人。

我已经尝试将惯用语添加到公共局部类Form1中:Form:Idispose ...但...知道这没有任何意义。

   public partial class Form1 : Form 

   {

    private readonly SpeechRecognitionEngine _recognizer = new 
    SpeechRecognitionEngine(new System.Globalization.CultureInfo("en- 
    US"));

   }

我需要知道如何处置这种领域

c# idisposable
2个回答
0
投票

Dipose方法由IDisposable接口公开,只有实现此接口的对象才具有该方法。使用此方法可以关闭或释放由实现此接口的类的实例持有的非托管资源,例如文件,流和句柄。按照惯例,此方法用于与释放对象所拥有的资源或准备对象以供重用相关的所有任务。如果SpeechRecognitionEngine没有实现IDisposable,则它将没有Dispose方法。有关更多信息,请参见official docs


0
投票

表单已经实现了IDisposable。您需要做的就是重写Dispose(bool),如果dispose为true,则调用_recognizer.Dispose():

public partial class Form1 : Form 
{
    private readonly SpeechRecognitionEngine _recognizer = 
        new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"));

    protected override void Dispose (bool disposing)
    {
        if (disposing)
        {
            _recognizer.Dispose();
        }
        base.Dispose(disposing);
    }

}

© www.soinside.com 2019 - 2024. All rights reserved.