Understanding and Using Partial Classes in C#
page 3 of 8
by Brendan Enrick
Feedback
Average Rating: 
Views (Total / Last 10 Days): 29480/ 434

Creating Partial Classes

As I've mentioned, partial classes allow you to separate code for a class into multiple class definitions. So as an example I will write a few class definitions. One will be a whole definition of a class without using partial classes, and the other one will be the same class split into two partial classes. Observe here my single definition class of AIPlayer.

Listing 1: A Standard Class

public class AIPlayer
{
  public AIPlayer()
  {
    // Construct your class here.
  }
  public Move GetMove()
  {
    // Choose the best move and return it.
  }
}

In this simple example I've defined a basic constructor as well as one simple method. Not much, but we don't need to have a lot for our example here. The important thing to note here is the possibility to create these classes and how they work. So notice on the next one how we will separate these two methods, the constructor and the GetMove function, into two separate class definitions.

Listing 2: A Class Split Into Two Partial Classes

public partial class AIPlayer
{
  public AIPlayer()
  {
    // Construct your class here.
  }
}     
public partial class AIPlayer
{     
  public Move GetMove()
  {
    // Choose the best move and return it.
  }
}

Without having the partial keyword in there I would probably get a compiler error. The reason for this is that I would be declaring two different classes in the same namespace with the same name, and that would generate the error. Since I have the partial keyword there, the compiler knows that I am just extending the existing class. It will take that into account and will combine the code before trying to compile it.

As a note, make sure to use the partial keyword on ALL definitions of the class even the original one. This is not necessary for VB, but in C# all of the classes must have the partial keyword. I think it is great that this is included, because it is a hint to a programmer that there might be another piece of a class somewhere else. If you ever see the partial keyword on classes you're working with, it is a nice warning that there might be more to the class elsewhere.


View Entire Article

Article Feedback

Title:  
Name:  
Url: ( Optional )
Comment:  
Please add 1 and 4 and type the answer here:

User Comments

Title: Nice Article   
Name: Senthil
Date: 11/2/2009 6:07:40 AM
Comment:
Very Nice Article!!
Title: Excellent !!   
Name: Sai
Date: 10/30/2009 3:10:32 AM
Comment:
Nice article for beginners.
Title: partial class   
Name: vikash kumar
Date: 10/15/2009 6:07:41 AM
Comment:
Article written by you is good but not enough.pls modify it.
Title: Great little read   
Name: Piao!
Date: 9/18/2009 11:34:43 AM
Comment:
Good writing style, and nice real world examples - cheers man!
Title: Nice Article   
Name: sam
Date: 9/9/2009 7:42:56 AM
Comment:
nice article Enrick. Can you suggest me some article on delegates & events?
Title: Good Article   
Name: Rajender Kumar
Date: 8/28/2009 12:49:41 AM
Comment:
i am a web developer Asp.Net C#. i have read this article, that is well understandig for beginners.
Thanks for taking time for this post.
Title: Thank you   
Name: phil
Date: 7/1/2009 8:01:46 PM
Comment:
Thanks for posting this. I despise .net but I have to do it at work so its nice to find articles that teach the concepts rather than syntax.
Title: Well written   
Name: Satyajeet
Date: 6/4/2009 3:43:57 PM
Comment:
Hey dude,
I'm a developer starting of with C# and .NET rather late. But I think this is an excellent article. And I pity some of the morons who've barely got enough grasp over English to criticize you. This article is extremely crisp and helpful, and so thanks a lot!
Title: confuseeeeeeeeee   
Name: sagar
Date: 1/29/2009 1:48:30 AM
Comment:
Hi.. i am cleared abt partial class in c#.... but u r article mix with aspx... ca u clarify this
Title: partial classes   
Name: shraddha
Date: 1/13/2009 4:12:44 AM
Comment:
very good article
Title: I am heap to get you   
Name: zinabu Alemayehu
Date: 11/8/2008 10:00:40 AM
Comment:
I need some help from you based on the asp,c#,and vb.if you get full of code about some project please send to me via my email.

I always Thank u.........
Title: Thank you   
Name: Shawn F.
Date: 9/23/2008 10:55:07 AM
Comment:
Thanks for taking the time to post this. It helps clear things up.

BTW...You're able to describe things well enough for me.
Title: not decribe well   
Name: vivek rai
Date: 5/4/2008 7:21:53 AM
Comment:
u r not able to decribe well....

Product Spotlight
Product Spotlight 






Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2009 ASPAlliance.com  |  Page Processed at 11/8/2009 5:50:11 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search