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?

Original source