This example shows how built-in attributes Obsolete and Serializable work in C#. The class OldClass is marked with both. When compiling, the Obsolete attribute causes a warning telling the programmer to use a newer class. This warning does not stop the program from running. The Serializable attribute allows instances of the class to be saved or sent over a network. The variable 'obj' is created as an instance of OldClass normally. The program runs without errors, but the compiler shows the Obsolete warning as a helpful notice. This teaches that Obsolete is a compile-time caution, while Serializable affects object serialization capabilities.