Partial Class vs Extension Method
c#, extension-methods, partial-classes
Solution
Some of differences that will determine whether you want to use a Partial Class or an Extension Method are
Partial Class
- Only works against classes in the same project/assembly
- Target class has to be marked as partial
- Has access to the Target class' fields and protected members
- Target must be a class implementation
Extension Method
- Can be applied against classes in other assembles
- Must be static, has access to only the Target classes public members
- Target of extension can be a concrete type, or an abstract type or interface
Problem
I dont have much experience of using these 2 ways to extend a class or create extension methods against a class. By looking others work, I have a question here. I saw people using a partial class to extend an entity class in a project. Meanwhile, in the same project, there is another folder containing a lot extension methods to the entity class. Is it right to do so? I mean these 2 ways both work well. Could you give me some real idea of how to pick one or the other when I want extend a class?