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

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

User Comments

Title: sizar   
Name: sizar
Date: 2012-12-01 1:43:44 AM
Comment:
please check this website for more information http://fantasyaspnet.blogspot.in/2012/11/write-program-in-c-to-implement.html
Title: 1   
Name: 1
Date: 2012-11-15 6:38:39 AM
Comment:
1
Title: *   
Name: *
Date: 2012-09-06 9:38:19 AM
Comment:
*
Title: partial class   
Name: Bijay
Date: 2012-09-04 12:52:54 PM
Comment:
Thanks ,but not enough.
Title: Partial Class   
Name: Manoj
Date: 2012-08-09 9:19:03 PM
Comment:
good . Easy to understand !!!
Title: w   
Name: w
Date: 2012-07-02 6:25:22 AM
Comment:
q
Title: sfd   
Name: sdf
Date: 2012-06-12 5:14:19 PM
Comment:
sdf
Title: Awesome   
Name: Vinod
Date: 2012-05-15 1:07:46 AM
Comment:
Very Good and helpfull
Title: thanks   
Name: ajith
Date: 2011-08-26 7:54:19 AM
Comment:
super discription
Title: thanks   
Name: shaheen
Date: 2011-01-13 1:13:12 AM
Comment:
good........
Title: good   
Name: smithu valsalan
Date: 2011-01-13 1:07:37 AM
Comment:
very useful article
Title: kumar   
Name: umesh
Date: 2010-12-16 2:36:39 AM
Comment:
excellent....!
Title: Excellant Artical   
Name: Haribabu Nimmagadda
Date: 2010-07-22 7:58:00 AM
Comment:
It helps me alot.
Title: Good one!   
Name: Lakshmi Sudheendra
Date: 2010-05-26 8:53:17 AM
Comment:
Very useful article. Described in simple words and optimally covered the essential topics.
Title: excellent   
Name: vasudev
Date: 2010-05-22 6:10:46 AM
Comment:
excellent jestification
Title: I like the justification   
Name: george
Date: 2010-02-24 10:20:43 AM
Comment:
I was aware of the autogenerated code case, but code merging is the real day to day convenience this feature provides.
Title: very good explanation   
Name: krishna kishore
Date: 2010-02-16 9:29:59 AM
Comment:
your explanation is very clear. and simple
Title: Wonderfull   
Name: s.arul
Date: 2010-02-09 8:17:46 AM
Comment:
Wonderful article for asp.net beginers
Title: Good   
Name: Sanjeev
Date: 2010-02-09 5:29:54 AM
Comment:
Here in ur article u have described enough.. but plz try to add more examples so it will clear the doubts of readers.. all the best
Title: Good   
Name: Laxmi
Date: 2009-12-22 8:04:24 AM
Comment:
Its good but I have a question.I have a class which is splitted into two partial classes.These two partial classes have same methods.what happens at compile time.Please help me.thanks in advance..
Title: Nice Article   
Name: Senthil
Date: 2009-11-02 6:07:40 AM
Comment:
Very Nice Article!!
Title: Excellent !!   
Name: Sai
Date: 2009-10-30 3:10:32 AM
Comment:
Nice article for beginners.
Title: partial class   
Name: vikash kumar
Date: 2009-10-15 6:07:41 AM
Comment:
Article written by you is good but not enough.pls modify it.
Title: Great little read   
Name: Piao!
Date: 2009-09-18 11:34:43 AM
Comment:
Good writing style, and nice real world examples - cheers man!
Title: Nice Article   
Name: sam
Date: 2009-09-09 7:42:56 AM
Comment:
nice article Enrick. Can you suggest me some article on delegates & events?
Title: Good Article   
Name: Rajender Kumar
Date: 2009-08-28 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: 2009-07-01 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: confuseeeeeeeeee   
Name: sagar
Date: 2009-01-29 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: 2009-01-13 4:12:44 AM
Comment:
very good article
Title: I am heap to get you   
Name: zinabu Alemayehu
Date: 2008-11-08 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: 2008-09-23 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.






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


©Copyright 1998-2019 ASPAlliance.com  |  Page Processed at 2019-07-17 11:08:29 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search