Csharp/C Sharp/Class Interface/readonly — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (1 версия)
 
(нет различий)

Текущая версия на 11:39, 26 мая 2010

Demonstrate readonly

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/

// Demonstrate readonly. 
 
using System; 
 
class MyClass { 
  public static readonly int SIZE = 10; 
} 
 
public class DemoReadOnly { 
  public static void Main() { 
    int[]nums = new int[MyClass.SIZE]; 
 
    for(int i=0; i<MyClass.SIZE; i++) 
      nums[i] = i; 
 
    foreach(int i in nums) 
      Console.Write(i + " "); 
 
    // MyClass.SIZE = 100; // Error!!! can"t change 
  } 
}


ReadOnly Fields

 
using System;
using System.Collections.Generic;
using System.Text;
class Tire {
    public static readonly Tire GoodStone = new Tire(90);
    public static readonly Tire FireYear = new Tire(100);
    public int manufactureID;
    public Tire() { }
    public Tire(int ID) { manufactureID = ID; }
}
class Employee {
    public readonly string SSN;
    public Employee(string empSSN) {
        SSN = empSSN;
    }
}
class Program {
    static void Main(string[] args) {
        Tire myTire = Tire.FireYear;
        Console.WriteLine("ID of my tire is: {0}", myTire.manufactureID);
        Employee e = new Employee("111-22-1111");
        // e.SSN = "222-22-2222"; // error!
    }
}


Readonly Property

 
using System;
//VersionTest
public class VersionReporter {
    public static string version {
        get {
            return "2.0.0.0";
        }
    }
    public VersionReporter() {
    }
}

class VersionOutput {
    static void Main(string[] args) {
        string ver = VersionReporter.version;
        Console.WriteLine("Using version {0}", ver);
    }
}


The use of readonly fields

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
  Example6_3.cs illustrates the use of readonly fields
*/

// declare the Car class
class Car
{
  // declare a readonly field
  public readonly string make;
  // declare a static readonly field
  public static readonly int wheels = 4;
  // define a constructor
  public Car(string make)
  {
    System.Console.WriteLine("Creating a Car object");
    this.make = make;
  }
}

public class Example6_3
{
  public static void Main()
  {
    System.Console.WriteLine("Car.wheels = " + Car.wheels);
    // Car.wheels = 5;  // causes compilation error
    // create a Car object
    Car myCar = new Car("Toyota");
    System.Console.WriteLine("myCar.make = " + myCar.make);
    // myCar.make = "Porsche";  // causes compilation error
  }
}