If I add the [Serializable] attribute to a class, does this introduce any overhead? How about if the class is never used in any serialization operations?
This doesn't add any overhead to the normal runtime use of the object.
Marking a class as Serializable doesn't even result in a size difference in metadata. It just sets a bit in the typedef flag. (Thanks to thecoop for pointing that out)