oops concepts in c# with examples codeproject