Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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# 如何访问SerialPort.Flush()和SerialPort.Finalize()函数_C#_.net_Winforms_Io - Fatal编程技术网

C# 如何访问SerialPort.Flush()和SerialPort.Finalize()函数

C# 如何访问SerialPort.Flush()和SerialPort.Finalize()函数,c#,.net,winforms,io,C#,.net,Winforms,Io,我刚刚浏览了msdn,发现了这个。我以前从未见过函数SerialPort.Flush()或SerialPort.Finalize()。所以我尝试使用这些函数,但是我得到了一个错误 我添加了System.IO.Ports名称空间,但在Finalize()函数中出现以下错误: 无法通过“System.IO.Ports.SerialPort”类型的限定符访问受保护成员“object.~object()”;限定符的类型必须为“STP_Design.SerialCom”(或从中派生) 我在Flush()函

我刚刚浏览了msdn,发现了这个。我以前从未见过函数
SerialPort.Flush()
SerialPort.Finalize()
。所以我尝试使用这些函数,但是我得到了一个错误

我添加了
System.IO.Ports
名称空间,但在
Finalize()
函数中出现以下错误:

无法通过“System.IO.Ports.SerialPort”类型的限定符访问受保护成员“object.~object()”;限定符的类型必须为“STP_Design.SerialCom”(或从中派生)

我在
Flush()
函数中得到以下错误:

“System.IO.Ports.SerialPort”不包含“Flush”的定义,并且找不到接受“System.IO.Ports.SerialPort”类型的第一个参数的扩展方法“Flush”(是否缺少using指令或程序集引用?

我想我访问finalizing函数的方法是错误的(我可能根本不能访问它),但是我真的很想知道
Flush()
函数是怎么回事

我用了这样的方法:

    private void test()
    {
        SerialPort s1 = new SerialPort();
        s1.PortName = "COM1";
        s1.Open();
        thread.Sleep(200);
        s1.WriteLine("test");
        s1.Flush();
        s1.Close();
        thread.Sleep(200);
        s1.Finalize();
    }
有什么见解吗

编辑:SerialPort.Dispose(布尔)函数也有同样的问题可选的布尔值也不可访问…

:no
Flush
。您看到的是.Net Micro Framework,它显然有一个
Flush


垃圾收集结束时,GC调用终结器。用户代码无法从外部访问它们,也不应显式调用它们。

您可以使用DiscardInBuffer()和DiscardBuffer()

您永远不能直接调用终结器……也没有
刷新
方法。您可以尝试
SerialPort.BaseStream.Flush
也许。您正在查看.NET微框架的文档。这似乎很公平。。。我认为不应该从代码中调用Finalize,我认为dispose函数中的bool是受保护的。谢谢你的回答!MySerial.DiscardInBuffer()