Parity Property

SerialPort::Parity Property


Gets or sets the parity-checking protocol.

Namespace:   System.IO.Ports
Assembly:  System (in System.dll)

property Parity Parity {
	Parity get();
	void set(Parity value);

Property Value

Type: System.IO.Ports::Parity

One of the enumeration values that represents the parity-checking protocol. The default is None.

Exception Condition

The port is in an invalid state.

- or -

An attempt to set the state of the underlying port failed. For example, the parameters passed from this SerialPort object were invalid.


The Parity value passed is not a valid value in the Parity enumeration.

Parity is an error-checking procedure in which the number of 1s must always be the same—either even or odd—for each group of bits that is transmitted without error. In modem-to-modem communications, parity is often one of the parameters that must be agreed upon by sending parties and receiving parties before transmission can take place.

If a parity error occurs on the trailing byte of a stream, an extra byte will be added to the input buffer with a value of 126.

The following code example demonstrates the use of the SerialPort class to allow two users to chat from two separate computers connected by a null modem cable. In this example, the users are prompted for the port settings and a username before chatting. This code example is part of a larger code example provided for the SerialPort class.

    static void Main()
        String^ name;
        String^ message;
        StringComparer^ stringComparer = StringComparer::OrdinalIgnoreCase;
        Thread^ readThread = gcnew Thread(gcnew ThreadStart(PortChat::Read));

        // Create a new SerialPort object with default settings.
        _serialPort = gcnew SerialPort();

        // Allow the user to set the appropriate properties.
        _serialPort->PortName = SetPortName(_serialPort->PortName);
        _serialPort->BaudRate = SetPortBaudRate(_serialPort->BaudRate);
        _serialPort->Parity = SetPortParity(_serialPort->Parity);
        _serialPort->DataBits = SetPortDataBits(_serialPort->DataBits);
        _serialPort->StopBits = SetPortStopBits(_serialPort->StopBits);
        _serialPort->Handshake = SetPortHandshake(_serialPort->Handshake);

        // Set the read/write timeouts
        _serialPort->ReadTimeout = 500;
        _serialPort->WriteTimeout = 500;

        _continue = true;

        Console::Write("Name: ");
        name = Console::ReadLine();

        Console::WriteLine("Type QUIT to exit");

        while (_continue)
            message = Console::ReadLine();

            if (stringComparer->Equals("quit", message))
                _continue = false;
                    String::Format("<{0}>: {1}", name, message) );


    static void Read()
        while (_continue)
                String^ message = _serialPort->ReadLine();
            catch (TimeoutException ^) { }

.NET Framework
Available since 2.0
Return to top
© 2015 Microsoft