I think these questions apply for any programming project in any language, not just C#.
1. What is the best way to explain a C# program?
With any program, I would give an overview of what the program DOES, in at most a few sentences. I would also explain every input and output of the program (gets input from a commmand line and outputs to a file, or gets input from a web page and outputs to other pages and the database). Then I would give an overview of the various components of the program -- UML diagrams help with this. From that point, I'd have the developers start looking at the code, and have them seek further clarification if necessary.
2. What is the major mistake done by developers while explaining a program to their Team leader?
Not being completely honest about the problems they're running into, or giving a real estimate on how long they think it'll take them to finish.
3. If you are a team leader, what will you look for in that explanation from your team memeber?
I'd want to know exactly what they're currently working on, if they're running into any problems, if there's any way that I can help them, and how long they estimate it'll take to finish what they're working on.
4. Any tips for your team member about explaining a program?
Give them the overview and any/all documentation, diagrams, etc., in a document or email. I find it very helpful if I've got a copy that I can read and reread as necessary, and refer to when discussing problems with the team lead.