# 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`