关于索引器和访问器的访问修饰的小小细节
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();
}
}
}
相关文章推荐
- java——关于数组的定义 和 访问修饰符的修饰内容
- 关于makefile: 一个小小的细节
- 关于Android优化的小小细节
- 关于Java Final 修饰的局部变量,多线程可以访问
- 关于java访问权限修饰词
- 关于Java代码块的小小细节
- 注意访问器中的一个小细节,关于有访问器没有成员变量的问题
- C#中的修饰访问符,构造函数,析构函数,索引器
- 关于java中protected修饰的成员的访问控制
- 关于网站中FCKeditor用域名访问时提示“没有权限”的解决方法
- 关于在IIS中出现ASP.NET 未被授权访问所请求的资源问题的解决
- 关于PCBLayout的一些具体细节的认识(能力有限,请大家多多指点)
- 【java编程思想--学习笔记(二)】访问控制-Java访问权限修饰词
- 关于局域网中无法访问的解决方法
- 关于EXT的一点点中文乱码的小小问题.
- 关于maven启动tomcat后出现访问不了主页
- 有关于strlen的小细节
- 为什么内部类访问的外部变量需要使用final修饰
- 关于安装dark gdk的一些细节(转)
- 关于访问控件的问题