标题: readonly vs. const [C#]
- Robot·H 2008-04-08 15:56 阅读:46
- 评论:0 | 添加评论

readonly vs. const [C#]

Updated on Friday, October 29, 2004

Written by Allen Lee

Features:

 

Examples:

[图片]using System;
[图片]
[图片]public class Order
[图片][图片][图片]{
[图片]    public Order()
[图片][图片]    [图片]{
[图片]        Guid guid = Guid.NewGuid();
[图片]        ID = guid.ToString("D");
[图片]    }
[图片]
[图片]    // 对于每一份订单,其订单序号都是实时确定的常量。
[图片]    public readonly string ID;
[图片]
[图片]    public override string ToString()
[图片][图片]    [图片]{
[图片]        return "Order ID: " + ID;
[图片]    }
[图片]}

Explaintion:

[图片]using System;
[图片]
[图片]class Customer
[图片][图片][图片]{
[图片]    public Customer(string name, int kind)
[图片][图片]    [图片]{
[图片]        m_Name = name;
[图片]        m_Kind = kind;
[图片]    }
[图片]
[图片]    public const int NORMAL = 0;
[图片]    public const int VIP = 1;
[图片]    public const int SUPER_VIP = 2;
[图片]
[图片]    private string m_Name;
[图片]    public string Name
[图片][图片]    [图片]{
[图片][图片]        get [图片]{ return m_Name; }
[图片]    }
[图片]
[图片]    private readonly int m_Kind;
[图片]    public int Kind
[图片][图片]    [图片]{
[图片][图片]        get [图片]{ return m_Kind; }
[图片]    }
[图片]
[图片]    public override string ToString()
[图片][图片]    [图片]{
[图片]        if(m_Kind == SUPER_VIP)
[图片]            return "Name: " + m_Name + "[SuperVip]";
[图片]        else if(m_Kind == VIP)
[图片]            return "Name: " + m_Name + "[Vip]";
[图片]        else
[图片]            return "Name: " + m_Name + "[Normal]";
[图片]    }
[图片]}

 


Remarks:

[图片]using System;
[图片]
[图片]namespace ConstantLab
[图片][图片][图片]{
[图片]    class Program
[图片][图片]    [图片]{
[图片]        static void Main(string[] args)
[图片][图片]        [图片]{
[图片]            Constant c = new Constant(3);
[图片]            Console.WriteLine("ConstInt = " + Constant.ConstInt.ToString());
[图片]            Console.WriteLine("ReadonlyInt = " + c.ReadonlyInt.ToString());
[图片]            Console.WriteLine("InstantReadonlyInt = " + c.InstantReadonlyInt.ToString());
[图片]            Console.WriteLine("StaticReadonlyInt = " + Constant.StaticReadonlyInt.ToString());
[图片]
[图片]            Console.WriteLine("Press any key to continue");
[图片]            Console.ReadLine();
[图片]        }
[图片]    }
[图片]
[图片]    class Constant
[图片][图片]    [图片]{
[图片]        public Constant(int instantReadonlyInt)
[图片][图片]        [图片]{
[图片]            InstantReadonlyInt = instantReadonlyInt;
[图片]        }
[图片]
[图片]        public const int ConstInt = 0;
[图片]
[图片]        public readonly int ReadonlyInt = 1;
[图片]
[图片]        public readonly int InstantReadonlyInt;
[图片]
[图片]        public static readonly int StaticReadonlyInt = 4;
[图片]    }
[图片]}

 

 

[图片]using System;
[图片]
[图片]enum CustomerKind
[图片][图片][图片]{
[图片]    SuperVip,
[图片]    Vip,
[图片]    Normal
[图片]}
[图片]
[图片]class Customer
[图片][图片][图片]{
[图片]    public Customer(string name, CustomerKind kind)
[图片][图片]    [图片]{
[图片]        m_Name = name;
[图片]        m_Kind = kind;
[图片]    }
[图片]
[图片]    private string m_Name;
[图片]    public string Name
[图片][图片]    [图片]{
[图片][图片]        get [图片]{ return m_Name; }
[图片]    }
[图片]
[图片]    private CustomerKind m_Kind;
[图片]    public CustomerKind Kind
[图片][图片]    [图片]{
[图片][图片]        get [图片]{ return m_Kind; }
[图片]    }
[图片]
[图片]    public override string ToString()
[图片][图片]    [图片]{
[图片]        return "Name: " + m_Name + "[" + m_Kind.ToString() + "]";
[图片]    }
[图片]}

 

 

Comments:


添加评论
返回顶部 | 返回首页