Csharp/C Sharp/Class Interface/readonly
Содержание
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
}
}