C# 'SerialPort' 不包含采用 6 个参数的构造函数

C# 'SerialPort' does not contain a constructor that takes 6 arguments

我正在开发 C# Windows 应用程序。我正在使用串行 USB 端口侦听来自所选 COM 端口的数据

SerialPort sp;
string t;
void Serial(string port_name)
{
    sp = new SerialPort(port_name, 9600, Parity.None, 8, StopBits.One,Handshake.None);

    sp.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
    sp.Open();
}

private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
    SerialPort sp = (SerialPort)sender;
    string list = sp.ReadLine();
    listBox1.Items.Add(list);
}

private void Form1_Load(object sender, EventArgs e)
{
    t = "COM5";
    Serial(t);
}

但是我得到一个错误

'SerialPort' does not contain a constructor that takes 6 arguments

在这里

这里有什么问题?有知道的请帮帮我

Constructor中没有Handshake,你必须这样做:

sp = new SerialPort(port_name, 9600, Parity.None, 8, StopBits.One);
sp.Handshake = Handshake.None;

那么只有 those 个构造函数

SerialPort()    
SerialPort(IContainer)  
SerialPort(String)  
SerialPort(String, Int32)   
SerialPort(String, Int32, Parity)   
SerialPort(String, Int32, Parity, Int32)    
SerialPort(String, Int32, Parity, Int32, StopBits)   

所以你可能想改变你的初始化语句

sp = new SerialPort(port_name, 9600, Parity.None, 8, StopBits.One,Handshake.None);

sp = new SerialPort(port_name, 9600, Parity.None, 8, StopBits.One);
sp.Handshake = Handshake.None;

来自 MSDN SerialPort class 还没有用 6 个参数构造。

SerialPort(String, Int32, Parity, Int32, StopBits) - 使用指定的端口名称、波特率、奇偶校验位、数据位和停止位初始化 SerialPort class 的新实例。

握手 - 您不能在构造函数中设置它。 你可以这样设置:

sp.Handshake = Handshake.None;

Handshake 不是 SerialPort 构造函数的参数之一。 SerialPortclass中有个属性"Handshake"可以设置。 默认值为 none。 https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.handshake(v=vs.110).aspx