C# 如何访问SerialPort.Flush()和SerialPort.Finalize()函数
我刚刚浏览了msdn,发现了这个。我以前从未见过函数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()函
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(布尔)函数也有同样的问题可选的布尔值也不可访问…:noFlush
。您看到的是.Net Micro Framework,它显然有一个Flush
垃圾收集结束时,GC调用终结器。用户代码无法从外部访问它们,也不应显式调用它们。您可以使用DiscardInBuffer()和DiscardBuffer()您永远不能直接调用终结器……也没有
刷新
方法。您可以尝试SerialPort.BaseStream.Flush
也许。您正在查看.NET微框架的文档。这似乎很公平。。。我认为不应该从代码中调用Finalize,我认为dispose函数中的bool是受保护的。谢谢你的回答!MySerial.DiscardInBuffer()