C# 2 - Intermediate

Print the objectives

  Take a beta test

Because we are developers before being Java developers, this site welcomes interesting non-Java technologies that a (Java) developer might need in his career (JavaScript, Ruby and now ... C#).

C# is technically a very well though language. Liking Microsoft or not is another story that we don't want to debate on JavaBlackBelt.

  Released  Beta  Frozen  

Object  3 questions

Override the following methods correctly:
  • HashCode
  • ToString
  • Equals
Identify correct and incorrect statements about these methods.
0 18 0

Inheritance  3 questions

Define a class hierarchy.
Identify the fact that polymorphic classes and methods are deactivated by default in C#.
Use the virtual keyword to enable polymorphic calls.
Use the new keyword to redefine methods.
Understand that if you use 'new' keyword to redefine a method, there are circumstances where the new method will not be called, but the old one will.
Use the override keyword to override methods.
Declare an Interface and be aware of the proper NamingConvention for interfaces( Interfaces should start with a uppercase IInterface because C# defines no implements keyword).
Implement an interface either implicit or explicit.
Call base-class methods.
Call base-class constructors.
0 16 1

IEnumerable  1 question

Implements the interface IEnumerable.
Use multiple yield statements in an iterator correctly
0 7 1

Sorting  1 question

Define a natural sort order with the interfaces IComparable and IComparer
0 6 0

Component Development  4 questions

Define Indexer.
Define Attributes.
Overloads the following operators:
  • +
  • -
  • ++
  • --
  • ==
  • !=
  • *
  • /
Identify operators which can only be overloaded in pairs(==, !=)
Define user defined conversions both implicit and explicit.
0 5 2

Delegates  4 questions

Declare and uses delegates.
Recognize that every delegate inherits from System.MulticastDelegate but direct inheritance from this class is not allowed.
Be aware of the meaning of the + and - operator for delegates.
Declare multicast delegates.
Declare an event and register a delegate as an eventhandler.
Write code which declares a anonymous method.
Write code that declares generic anonymous methods and or which uses parameters.
0 5 5

Threads  4 questions

Instantiate and starts thread.
Use the following functions from the thread class:
  • Join
  • Sleep
  • Interrupt
  • Yield
Execute tasks with the class ThreadPool.
Use explicit locking with the Monitor class.
Use the Wait, Pulse and PulseAll methods of the Monitor class.
Uses the lock block.
Identify the advantages of using Monitor over lock blocks and vice versa.
0 12 1

Generics  4 questions

Declare generic classes and methods.
Write code that declare Type-Constraints on typeparameters.
Use all six available types of generic constraints.
Use generic classes from the System.Collections.Generic package:
  • List
  • Queue
  • HashSet
  • Stack
Be able to distinct generic collection classes and non generic.
Identify situations where it is appropriate to use generics in the namespace System.Collections.ObjectModel and where it is appropriate to use collections in the namespace System.Collections.Generic.
0 7 1

Enums  2 questions

Declare an enum.
Cast enums.
Change the ordinal order of enums.
Use the methods of the class System.Enum to interact with enums.
Recognize that an enum is a value type.
Change the type of the members of an enum.
0 4 2

Strucs  2 questions

Write code that uses structures.
Identify valid keywords inside a structure.
Know that the memory space of a structure is allocated on the stack.
Identify a structure as a value type.
Define methods, constructors and properties inside a structure.
0 14 1

Exam information

  • 42 minutes
  • 28 questions (108)
  • 78% required
  • +4 √
  • - 12  points
  • 15 day delay
  • status: under construction

Exam leader

Top contributors