|Yes, those will be visible to other classes that instantiate the object you are using.
I too was a long time embedded programmer who jumped into PC development. I also am using serial ports HEAVILY in .NET.
A suggestion for you:
Abstractions are a good thing. For example, I have a wireless device that uses 900MHz to communicate. This device has a companion (Aerocomm antenna) that attaches to a PC through a serial port. So, instead of accessing serial ports through out my software, I encapsulated the functionality into one class (object). So, the Aerocomm antenna class has all the stuff for the serial port contained within it. It exposes functions to other classes in order to communicate with the Aerocomm antenna - like configuring it, setting what device to communicate with, set it into broadcast mode, etc.
In your case, you are communicating with a device. I would create a class that represents the device. Then, create functions within the class that will get abstracted data from the device. So, for example, say you want to get the version number of the device. You would have a function in your class like:
// Code to get the version number from the device, including the serial port commands, etc.
This function could also possibly be a property as well, but it would still have functional code in it.
Basic idea is to keep the accesses and functionality where it needs to be. This is a fundamental idea behind object-oriented programming.
Oh and one other thing - USB-Serial devices can cause exceptions when pulled out of a computer while the serial port is open. You will need to be aware of that and handle that as well.