您的位置:首页 > 其它

关于索引器和访问器的访问修饰的小小细节

2010-07-19 16:30 295 查看

using System;


using System.Collections.Generic;


using System.Text;


using System.Drawing;




namespace Practise513


{


class Program


{


static void Main(string[] args)


{




}


}


class Employee


{


private string name;


private decimal salary;




/// <summary>


/// 类的三大特征之一:封装


/// 利用属性来进行封装数据。


/// 属性本质上是方法,所以属性不能直接存储数据,


/// 通常一个属性都对应着一个字段,属性的数据是存储在对应的字段里。


/// 这个字段通常称为后备字段。


/// </summary>


public string Name


{




get


{


return name;


}


set


{


name = value;


}




}


public decimal Salary


{


get { return salary; }


///设定为private set 在类的内部可以访问,而在外部不可以访问。


///只有两个访问器时,才能够指定访问修饰符。


///但是在属性中,只能为一个访问器设定访问修饰符


///访问器的访问修饰符必须要比属性的访问修饰符的访问权限更严格。


private set


{




if (value < 1000 || value > 10000)


{


throw new Exception("薪水值不在所定义的范围内。");


}


salary = value;


}


}




}




class Entity


{


private static int count;


/// <summary>


/// 静态属性


/// 它是类相关的,而不是对象相关的。


/// </summary>


public static int Count


{


get


{


return count;


}


}


public Entity()


{


count++;


}


}


public class StaticProperty


{


private static void Main()


{


Entity et1 = new Entity();


Entity et2 = new Entity();


int count = Entity.Count;


Console.WriteLine("当前该类的实例数目共有:{0}",count);


Console.Read();


}


}


/// <summary>


/// 该类包含了一组颜色


/// </summary>


public class Colors


{


public Color GetColor(string colorName)


{


colorName = colorName.ToLower();


switch (colorName)


{


case "red":


return Color.FromArgb(255, 0, 0);


case "green":


return Color.FromArgb(0, 255, 0);


case "blue":


return Color.FromArgb(0, 0, 255);


case "yellow":


return Color.FromArgb(255, 255, 0);


default:


return Color.FromArgb(0, 0, 0);


}


}


/// <summary>


/// 定义一个索引器


/// 语法:


/// 返回类型 this[类型 参数,....]


/// {


/// get;


/// set;


/// }


/// </summary>


/// <param name="colorName"></param>


/// <returns></returns>


public Color this[string colorName]


{


get


{


return GetColor(colorName);


}


}


/// <summary>


/// 索引器也可以构成重载


/// </summary>


/// <param name="colorIndex"></param>


/// <returns></returns>


public Color this[int colorIndex]


{


get


{


switch (colorIndex)


{


case 0:


return Color.FromArgb(255, 0, 0);


case 1:


return Color.FromArgb(0, 255, 0);


case 2:


return Color.FromArgb(0, 0, 255);


case 3:


return Color.FromArgb(255, 255, 0);


default:


return Color.FromArgb(0, 0, 0);


}


}


}


}




public class UserIndexer


{


public static void Main(string[] args)


{


Colors color1 = new Colors();




}


}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: