You can see part 1 here, part 2.1 here, part 2.2 here, part 2.3 here and part 2.4 here
Partial classes are brilliant idea. In my opinion it is one of the features that increases the productivity. Simply, it allows you to define one class in different files which helps a lot when you are using code generators. Another reason that may be stupid is when you have more than one working in the same class and you have source control with exclusive checkout. Later, we can see partial methods in C# 3.0 and C# 3.5. One of the problems that may be produced as a result of having the class separated in many files may lead us deviating from the Single responsibility principle as it will be somehow harder to trace. If you want also to see how Microsoft uses this feature in Visual Studio IDE when creating web or windows project.
Let's see an example for partial Classes
1 public partial class Calculator
2 {
3 public long DoTheMath()
4 {
5 Add2Numbers(10, 20);
6 ....
7 ....
8 return theValue;
9 }
10 }
11
12 public partial class Calculator
13 {
14 private int Add2Numbers(int a, int b)
15 {
16 return a + b;
17 }
18 }
As we see on the above example, we have 2 classes called Calculator which should be in 2 separate files.