Current .Net Version: 2.0.50727
Home
Articles
C# & .Net Framework Reference
Practice C# Online
XML Web Services
RSS Feeds
Code Snippets
T-SQL Scripts
Videos
Valuable Links
Contact Us
Mike's C#, VS.NET and SQL Blog




ROR XML Info.
What's New in C# 2.0 - Partial Classes
Author: Michael G.     Last Updated:9/29/2005 8:03:35 PM
Category(ies): C# 2.0
Description: Learn all about the new C# 2.0 Framework feature: Partial Classes.
  Add & View Comments About this Article

Tested with Microsoft Visual C# 2005 Beta 1, .Net 2.0.40607.42

Partial Classes are classes that can be defined at more than one location, but which contain different members. Partial Classes also allow you to store the same class, with different members, in different physical locations.

The following illustrates how partial classes can be implemented:

Partial Classes in the same physical file: // Class File: DotNetFun.SQL.SProc.cs namespace DotNetFun.SQL { using System; using System.Data; using System.Data.Sql; using System.Data.SqlServer; using System.Data.SqlTypes; using System.Xml; public partial class SProc { // members that implement XML related CLR stored procedures... [SqlProcedure] public static MyXMLSProc() { ... } } public partial class SProc { // members that implement DataSet related CLR stored procedures... [SqlProcedure] public static MyDataSetSProc() { ... } } }

Partial Classes in two different physical files: // Class File: DotNetFun.SQL.SProc.XML.cs namespace DotNetFun.SQL { using System; using System.Data; using System.Data.Sql; using System.Data.SqlServer; using System.Data.SqlTypes; using System.Xml; public partial class SProc { // members that implement XML related CLR stored procedures... [SqlProcedure] public static MyXMLSProc() { ... } } } // Class File: DotNetFun.SQL.SProc.DataSet.cs namespace DotNetFun.SQL { using System; using System.Data; using System.Data.Sql; using System.Data.SqlServer; using System.Data.SqlTypes; using System.Xml; public partial class SProc { // members that implement DataSet related CLR stored procedures... [SqlProcedure] public static MyDataSetSProc() { ... } } }

Partial Classes may each derive from the same base types and interfaces, but may not each contain different base types and interfaces: // This is OK: public partial class SProc : System.Object { // members that implement XML related CLR stored procedures... [SqlProcedure] public static MyXMLSProc() { ... } } public partial class SProc : System.Object { // members that implement DataSet related CLR stored procedures... [SqlProcedure] public static MyDataSetSProc() { ... } } // This is ALSO OK: public partial class SProc : System.Object { // members that implement XML related CLR stored procedures... [SqlProcedure] public static MyXMLSProc() { ... } } public partial class SProc { // members that implement DataSet related CLR stored procedures... [SqlProcedure] public static MyDataSetSProc() { ... } } // This is NOT OK: public partial class SProc : System.Object { // members that implement XML related CLR stored procedures... [SqlProcedure] public static MyXMLSProc() { ... } } public partial class SProc : System.Collections.ArrayList { // members that implement DataSet related CLR stored procedures... [SqlProcedure] public static MyDataSetSProc() { ... } }



Comments Click Here to Add your Comment
 
COPYRIGHT/DISCLAIMER | CONTACT US