Demonstrate ToString()

image_pdfimage_print

   

/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/


// Demonstrate ToString() 
 
using System; 
 
class MyClass { 
  static int count = 0; 
  int id; 
 
  public MyClass() { 
    id = count; 
    count++; 
  } 
 
  public override string ToString() { 
    return "MyClass object #" + id; 
  } 
} 
 
public class Test { 
  public static void Main() { 
    MyClass ob1 = new MyClass(); 
    MyClass ob2 = new MyClass(); 
    MyClass ob3 = new MyClass(); 
 
    Console.WriteLine(ob1); 
    Console.WriteLine(ob2); 
    Console.WriteLine(ob3); 
 
  } 
}


           
          


Illustrates how to override the ToString() method

image_pdfimage_print

   

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy

Publisher: Sybex;
ISBN: 0782129110
*/

/*
  Example7_7.cs illustrates how to override the ToString() method
*/

using System;


// declare the Car class
class Car
{

  // declare the fields
  public string make;
  public string model;

  // define a constructor
  public Car(string make, string model)
  {
    this.make = make;
    this.model = model;
  }

  // override the ToString() method
  public override string ToString()
  {
    return make + " " + model;
  }

}


public class Example7_7
{

  public static void Main()
  {

    // create Car objects
    Console.WriteLine("Creating Car objects");
    Car myCar = new Car("Toyota", "MR2");
    Car myOtherCar = new Car("Porsche", "Boxter");

    // call the ToString() method for the Car objects
    Console.WriteLine("myCar.ToString() = " +
      myCar.ToString());
    Console.WriteLine("myOtherCar.ToString() = " +
      myOtherCar.ToString());

  }

}

           
          


demonstrates overriding the ToString() method to provide a custom string output

image_pdfimage_print

   

/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa

Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
//  tm1.cs - demonstrates overriding the ToString() method to provide a custom
//           string output.
//
//           Compile this program using the following command line:
//               D:>csc tm1.cs
//
namespace nsStructure
{
    using System;
    using System.Globalization;
    public struct tm
    {
        public int tm_sec;       // Seconds after the minute
        public int tm_min;       // Minutes after the hour 
        public int tm_hour;      // Hours since midnight
        public int tm_mday;      // The day of the month
        public int tm_mon;       // The month (January = 0)
        public int tm_year;      // The year (00 = 1900)
        public int tm_wday;      // The day of the week (Sunday = 0)
        public int tm_yday;      // The day of the year (Jan. 1 = 1)
        public int tm_isdst;     // Flag to indicate if DST is in effect
        public override string ToString()
        {
            const string wDays = "SunMonTueWedThuFriSat";
            const string months = "JanFebMarAprMayJunJulAugSepOctNovDec";
            return (String.Format ("{0} {1} {2,2:00} " + 
                            "{3,2:00}:{4,2:00}:{5,2:00} {6}
", 
                             wDays.Substring (3 * tm_wday, 3),
                             months.Substring (3 * tm_mon, 3),
                             tm_mday, tm_hour, tm_min,
                             tm_sec, tm_year + 1900));
        }
    }
    public class tm1
    {
        static public void Main()
        {
            DateTime timeVal = DateTime.Now;
            tm tmNow = LocalTime (timeVal);
            Console.WriteLine (tmNow);
        }
        static public tm LocalTime(DateTime tmVal)
        {
            tm time;
            time.tm_sec = tmVal.Second;
            time.tm_min = tmVal.Minute;
            time.tm_hour = tmVal.Hour;
            time.tm_mday = tmVal.Day;
            time.tm_mon = tmVal.Month - 1;
            time.tm_year = tmVal.Year - 1900;
            time.tm_wday = (int) tmVal.DayOfWeek;
            time.tm_yday = tmVal.DayOfYear;
            TimeZone tz = TimeZone.CurrentTimeZone;
            time.tm_isdst = tz.IsDaylightSavingTime (tmVal) == true ? 1 : 0;
            return (time);
        }
    }
}


           
          


Demonstrates using the this intrinsic variable, which allows a class instance to identify itself

image_pdfimage_print

   

/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa

Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
//
// This.cs -- Demonstrates using the this intrinsic variable, which
//            allows a class instance to identify itself
//
//            Compile this program with the following command line:
//                C:>csc this.cs
//
namespace nsThis
{
    using System;
    
    public class ThisclsMain
    {
        static public void Main ()
        {
            // Declare an array of classes
            clsThis [] arr = new clsThis[]
                            {
                            new clsThis(), new clsThis(), new clsThis(),
                            new clsThis(), new clsThis(), new clsThis()
                            };
            Console.WriteLine ("{0} instances were created", arr[0].m_Instance);
            // Ask each instance in the array to identify itself
            foreach (clsThis inst in arr)
            {
                Console.WriteLine ("This is instance Number " +
                                inst.Identify().Instance);
            }
        }
    }
    internal class clsThis
    {
        public clsThis ()
        {
            m_Instance = ++Count;
        }
        private static int Count = 0;
        public int Instance
        {
            get {return (m_Instance);}
        }
        internal int m_Instance;
        public clsThis Identify ()
        {
            // Return this instance of the class
            return (this);
        }
    }
}



           
          


Illustrates the use of the this object reference

image_pdfimage_print

   

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy

Publisher: Sybex;
ISBN: 0782129110
*/
/*
  Example5_5.cs illustrates the use of the this
  object reference
*/


// declare the Car class
class Car
{

  public int yearBuilt;

  public void SetYearBuilt(int yearBuilt)
  {
    // the yearBuilt parameter hides the
    // the yearBuilt field
    this.yearBuilt = yearBuilt;
  }

}


public class Example5_5
{

  public static void Main()
  {

    // create a Car object
    Car myCar = new Car();

    myCar.SetYearBuilt(2000);
    System.Console.WriteLine("myCar.yearBuilt = " + myCar.yearBuilt);

  }

}


           
          


Using the this Object Reference

image_pdfimage_print
   
 

public class Product {

    public int yearBuilt;

    public void SetYearBuilt(int yearBuilt) {
        this.yearBuilt = yearBuilt;
    }
}
class MainClass{

    public static void Main() {
        Product myProduct = new Product();

        myProduct.SetYearBuilt(2000);
        System.Console.WriteLine("myProduct.yearBuilt = " + myProduct.yearBuilt);
    }
}

    


Conversions Between Structs 2

image_pdfimage_print
   


/*
A Programmer's Introduction to C# (Second Edition)
by Eric Gunnerson

Publisher: Apress  L.P.
ISBN: 1-893115-62-3
*/

// 24 - User-Defined ConversionsConversions Between Structs
// copyright 2000 Eric Gunnerson
using System;
using System.Text;
struct RomanNumeral
{
    public RomanNumeral(short value) 
    {
        if (value > 5000)
        throw(new ArgumentOutOfRangeException());
        
        this.value = value;
    }
    public static explicit operator RomanNumeral(
    short value) 
    {
        RomanNumeral    retval;
        retval = new RomanNumeral(value);
        return(retval);
    }
    
    public static implicit operator short(
    RomanNumeral roman)
    {
        return(roman.value);
    }
    
    static string NumberString(
    ref int value, int magnitude, char letter)
    {
        StringBuilder    numberString = new StringBuilder();
        
        while (value >= magnitude)
        {
            value -= magnitude;
            numberString.Append(letter);
        }
        return(numberString.ToString());
    }
    
    public static implicit operator string(
    RomanNumeral roman)
    {
        int        temp = roman.value;
        
        StringBuilder retval = new StringBuilder();
        
        retval.Append(RomanNumeral.NumberString(ref temp, 1000, 'M'));
        retval.Append(RomanNumeral.NumberString(ref temp, 500, 'D'));
        retval.Append(RomanNumeral.NumberString(ref temp, 100, 'C'));
        retval.Append(RomanNumeral.NumberString(ref temp, 50, 'L'));
        retval.Append(RomanNumeral.NumberString(ref temp, 10, 'X'));
        retval.Append(RomanNumeral.NumberString(ref temp, 5, 'V'));
        retval.Append(RomanNumeral.NumberString(ref temp, 1, 'I'));
        
        return(retval.ToString());
    }
    
    private short value;
}
struct BinaryNumeral
{
    public BinaryNumeral(int value) 
    {
        this.value = value;
    }
    public static implicit operator BinaryNumeral(
    int value) 
    {
        BinaryNumeral    retval = new BinaryNumeral(value);
        return(retval);
    }
    
    public static implicit operator int(
    BinaryNumeral binary)
    {
        return(binary.value);
    }
    
    public static implicit operator string(
    BinaryNumeral binary)
    {
        StringBuilder    retval = new StringBuilder();
        
        return(retval.ToString());
    }
    
    private int value;
}

public class ConversionsBetweenStructs1
{
    public static void Main()
    {
        RomanNumeral    roman = new RomanNumeral(12);
        BinaryNumeral    binary;
        binary = (BinaryNumeral)(int)roman;
    }
}