// compile with: /doc:DocFileName.xml
/// text for class TestClass
public class TestClass
{
/// <summary>
/// The GetZero method.
/// </summary>
/// <example> This sample shows how to call the <see cref="TestClass.GetZero"/> method.
/// <code>
/// class TestClass
/// {
/// static int Main()
/// {
/// return GetZero();
/// }
/// }
/// </code>
/// </example>
public static int GetZero()
{
return 0;
}
/// text for Main
static void Main()
{
}
}
ASP.NET & Csharp (C#)
ASP.NET & Csharp (C#) , Here you can find my posts about .NET c# .
XML based comments
using System;
/// <summary>
/// Main method.
/// <para>This sample is useless.</para>
/// </summary>
class SayHello {
/// <summary>
/// This is the Main method for the class and is
/// the execution starting point for our application.
/// Please note that <paramref name="args">args</paramref>
/// is a array of strings.
/// </summary>
/// <param name="args">params for Main method</param>
/// <returns>Returns a value depending on how the program
/// was called.</returns>
//We want Main to return an integer.
public static int Main(string[] args) {
if (args.Length > 0) {
return (0);
}
return (1);
}
}
How to write the Xml based document
using System;
using System.Collections.Generic;
using System.Text;
namespace XmlDocCar
{
/// <summary>
/// This is a simple Car.
/// </summary>
public class Car
{
/// <summary>
/// Do you have a sunroof?
/// </summary>
private bool hasSunroof = false;
/// <summary>
/// The ctor lets you set the sunroofedness.
/// </summary>
/// <param name="hasSunroof"></param>
public Car(bool hasSunroof)
{
this.hasSunroof = hasSunroof;
}
/// <summary>
/// This method allows you to open your sunroof.
/// </summary>
/// <param name="state"> </param>
public void OpenSunroof(bool state)
{
if (state == true && hasSunroof == true)
Console.WriteLine("has sub roof!");
else
Console.WriteLine("you don't have a sunroof.");
}
}
}
XML Documentation: Compiler Support Tags
using System;
namespace Payroll
{
/// <summary>
/// Comments for the class
/// This class class contains a <see cref="String">string</see>
/// </summary>
public class Employee
{
/// <summary>
/// Constructor for an Employee instance. Note that
/// <paramref name="name">name2</paramref> is a string.
/// </summary>
/// <param name="id">Employee id number</param>
/// <param name="name">Employee Name</param>
public Employee(int id, string name)
{
this.id = id;
this.name = name;
}
/// <summary>
/// Parameterless constructor for an employee instance
/// </summary>
/// <remarks>
/// <seealso cref="Employee(int, string)">Employee(int, string)</seealso>
/// </remarks>
public Employee()
{
id = -1;
name = null;
}
int id;
string name;
}
}
Use summary element
namespace SimpleXML
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args) {}
/// <summary>
/// This method does something interesting.
/// </summary>
public static void Foo() {}
}
}
set up project with one file containing the tag
namespace SimpleXML
{
/// <include file='supporting.xml'
/// path='MyDocs/MyMembers[@name="Class1"]/*' />
class Class1
{
public static void Main() {}
}
/// <include file='supporting.xml'
/// path='MyDocs/MyMembers[@name="Class2"]/*' />
class Class2
{
public void Foo() {}
}
}
Access Reordering and Volatile:Use of volatile
using System;
public class Singleton
{
static object sync = new object();
static volatile Singleton singleton = null;
private Singleton()
{
}
public static Singleton GetSingleton()
{
if (singleton == null)
{
lock(sync)
{
if (singleton == null)
singleton = new Singleton();
}
}
return(singleton);
}
}