Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 1
Chapter 16
How to organize and
document your classes
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 2
Objectives
Applied
1. Add XML documentation to your classes.
2. Create and use a class library.
Knowledge
1. Describe two ways that you can code two or more classes in a
single file.
2. Describe the benefits of creating and using a class library.
3. Describe the use of namespaces.
4. Describe the use of partial classes.
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 3
A file with two classes coded one after the other
public class Class1
{
// Body of Class1
}
public class Class2
{
// Body of Class2
}
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 4
A file with nested classes
public class OuterClass
{
// code that uses the inner class
InnerClass ic = new InnerClass();
// Body of OuterClass
public class InnerClass
{
// Body of InnerClass
}
}
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 5
A Customer class that’s split into two files
The first file
public partial class Customer
{
// Some members of the Customer class
}
The second file
public partial class Customer
{
// The rest of the members of the Customer class
}
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 6
A Form class that’s split into two files
The Form1.cs file
public partial class Form1 : Form
{
// The code for the Form1 class that's added
// by the programmer
}
The Form1.designer.cs file
partial class Form1
{
// The code for the Form1 class that's generated
// by Visual Studio
}
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 7
Code that declares a namespace
namespace ProductMaintenance
{
public partial class Form1 : Form
{
// Body of Form1 class
}
}
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 8
Code that declares nested namespaces
namespace Murach
{
namespace Validation
{
// Body of Validation namespace
}
}
Another way to nest namespaces
namespace Murach.Validation
{
// Body of Validation namespace
}
A using statement that specifies a namespace
using Murach.Validation;
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 9
Part of a Validator class with XML documentation
/// <summary>
/// Provides static methods for validating data.
/// </summary>
public class Validator
{
public Validator()
{
}
/// <summary>
/// The title that will appear in dialog boxes.
/// </summary>
public static string Title = "Entry Error";
/// <summary>
/// Checks whether user entered data into a text box.
/// </summary>
/// <param name="textBox">
/// The text box control to be validated.
/// </param>
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 10
Part of a Validator class with XML documentation
(cont.)
/// <returns>
/// True if the user has entered data.
/// </returns>
public static bool IsPresent(TextBox textBox)
{
if (textBox.Text == "")
{
MessageBox.Show(textBox.Tag
+ " is a required field.", Title);
textBox.Focus();
return false;
}
return true;
}
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 11
XML elements you can use for class
documentation
Element Description
<summary> Provides a general description of a class,
property, method, or other element.
<value> Describes the value of a property.
<returns> Describes the return value of a method.
<param name="name"> Describes a parameter of a method.
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 12
A screen tip with documentation for a method
A screen tip with documentation for a parameter
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 13
Two projects that use the Validator class
Project 1
Validator
(Validation
class)
Form1
(Form class)
Project 2
Validator
(Validation
class)
Form1
(Form class)
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 14
Two projects that access the Validator class via a
class library
Project 1
Form1
(Form class)
ValidationLibrary Project 2
Form1
(Form class)
Validator
(Validation
class)
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 15
A class library project
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 16
A project with a reference to a class library
Murach’s C# 2010, C16 © 2010, Mike Murach & Associates, Inc. Slide 17
A using statement for the validation class library
using Murach.Validation;

C# Tutorial MSM_Murach chapter-16-slides

  • 1.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 1 Chapter 16 How to organize and document your classes
  • 2.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 2 Objectives Applied 1. Add XML documentation to your classes. 2. Create and use a class library. Knowledge 1. Describe two ways that you can code two or more classes in a single file. 2. Describe the benefits of creating and using a class library. 3. Describe the use of namespaces. 4. Describe the use of partial classes.
  • 3.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 3 A file with two classes coded one after the other public class Class1 { // Body of Class1 } public class Class2 { // Body of Class2 }
  • 4.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 4 A file with nested classes public class OuterClass { // code that uses the inner class InnerClass ic = new InnerClass(); // Body of OuterClass public class InnerClass { // Body of InnerClass } }
  • 5.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 5 A Customer class that’s split into two files The first file public partial class Customer { // Some members of the Customer class } The second file public partial class Customer { // The rest of the members of the Customer class }
  • 6.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 6 A Form class that’s split into two files The Form1.cs file public partial class Form1 : Form { // The code for the Form1 class that's added // by the programmer } The Form1.designer.cs file partial class Form1 { // The code for the Form1 class that's generated // by Visual Studio }
  • 7.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 7 Code that declares a namespace namespace ProductMaintenance { public partial class Form1 : Form { // Body of Form1 class } }
  • 8.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 8 Code that declares nested namespaces namespace Murach { namespace Validation { // Body of Validation namespace } } Another way to nest namespaces namespace Murach.Validation { // Body of Validation namespace } A using statement that specifies a namespace using Murach.Validation;
  • 9.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 9 Part of a Validator class with XML documentation /// <summary> /// Provides static methods for validating data. /// </summary> public class Validator { public Validator() { } /// <summary> /// The title that will appear in dialog boxes. /// </summary> public static string Title = "Entry Error"; /// <summary> /// Checks whether user entered data into a text box. /// </summary> /// <param name="textBox"> /// The text box control to be validated. /// </param>
  • 10.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 10 Part of a Validator class with XML documentation (cont.) /// <returns> /// True if the user has entered data. /// </returns> public static bool IsPresent(TextBox textBox) { if (textBox.Text == "") { MessageBox.Show(textBox.Tag + " is a required field.", Title); textBox.Focus(); return false; } return true; }
  • 11.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 11 XML elements you can use for class documentation Element Description <summary> Provides a general description of a class, property, method, or other element. <value> Describes the value of a property. <returns> Describes the return value of a method. <param name="name"> Describes a parameter of a method.
  • 12.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 12 A screen tip with documentation for a method A screen tip with documentation for a parameter
  • 13.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 13 Two projects that use the Validator class Project 1 Validator (Validation class) Form1 (Form class) Project 2 Validator (Validation class) Form1 (Form class)
  • 14.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 14 Two projects that access the Validator class via a class library Project 1 Form1 (Form class) ValidationLibrary Project 2 Form1 (Form class) Validator (Validation class)
  • 15.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 15 A class library project
  • 16.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 16 A project with a reference to a class library
  • 17.
    Murach’s C# 2010,C16 © 2010, Mike Murach & Associates, Inc. Slide 17 A using statement for the validation class library using Murach.Validation;