# Create and Use Types *This portion takes up 25-30% of the exam* ### Create types Create value types, including structs and enum; create reference types, generic types, constructors, static variables, methods, classes, extension methods; create optional and named parameters; create indexed properties; create overloaded and overriden methods ### Consume types Box or unbox to convert between value types; cast types; convert types; handle dynamic types; ensure interoperability with code that accesses COM APIs ### Enforce encapsulation Enforce encapsulation by using properties; enforce encapsulation by using accessors, including public, private, protected, and internal; enforce encapsulation by using explicit interface implementation ### Create and implement a class hierarchy Design and implement an interface; inherit from a base class; create and implement classes based on the IComparable, IEnumerable, IDisposable, and IUnknown interfaces ### Find, execute, and create types at runtime by using reflection Create and apply attributes; read attributes; generate code at runtime by using CodeDom and Lambda expressions; use types from the System.Reflection namespace, including Assembly, PropertyInfo, MethodInfo, Type #### George note: Ucommerce usage of reflection: https://github.com/Ucommercenet/Ucommerce/blob/develop/src/UCommerce.Umbraco7/Umbraco77Compatability/UmbracoUserExtensions.cs#L37 ### Manage the object life cycle Manage unmanaged resources; implement IDisposable, including interaction with finalization; manage IDisposable by using the Using statement; manage finalization and garbage collection ### Manipulate strings Manipulate strings by using the StringBuilder, StringWriter, and StringReader classes; search strings; enumerate string methods; format strings; use string interpolation ### Preparation resources * [Types (C# programming guide)](http://msdn.microsoft.com/library/ms173104.aspx) * [Classes and structs (C# programming guide)](http://msdn.microsoft.com/library/vstudio/ms173109.aspx) * [Object-oriented programming (C# and Visual Basic)](http://msdn.microsoft.com/library/dd460654.aspx) ###### tags: `Microsoft` `Certification`