索引器的使用

某购物网站有多个网店,一个网店有多个会员,每个会员都有其会员账号和会员余额。
请创建网店类和会员类,要求实现以下功能
在网店类中,通过构造函数初始化多个会员对象,并可以通过索引值或会员账号查询或修改会员余额
在会员类中,通过构造函数中初始化会员账号和会员余额;修改会员账号时,要求会员账号必须是3位;查询会员余额时,如果会员余额小于等于0,则返回“无可用金额!”。
创建完网店类和会员类后,请访问网店类和会员类,初始化多个会员,并查询或修改会员余额

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ShopAndVip
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个有三个会员的网店
            Shop peoples = new Shop(3);
            //创建三个会员
            Vip one = new Vip("kin",23);
            Vip two = new Vip("sin",12);
            Vip three = new Vip("zha",0);
            //向网店中加载会员
            peoples[0] = one;
            peoples[1] = two;
            peoples[2] = three;
            //按索引检索
            Vip obj1people = peoples[1];
            obj1people.User = "wun";
            Console.WriteLine(obj1people.User+' '+obj1people.Balance);
            //按名称检索
            Vip obj2people=peoples["zha"];
            Console.WriteLine(obj2people.User+' '+obj2people.Balance);


            obj1people.User = "wang";


            Console.Read();
        }
    }
    class Shop
    {
        Vip[] vips;
        public Shop(int num)
        {
            vips = new Vip[num];
        }
        public Vip this[int index]
        {
            get 
            { 
                //验证索引范围
                if (index < 0 || index >= vips.Length)
                {
                    Console.WriteLine("索引无效");
                    return null;
                }
                //对于有效索引,返回
                return vips[index];
            }
            set
            {
                if (index < 0 || index >= vips.Length)
                {
                    Console.WriteLine("索引无效");
                    return;
                }
                vips[index] = value;
            }
        }
        public Vip this[string user]
        {
            get
            { 
                //遍历所有用户
                foreach (Vip v in vips)
                { 
                    //将用户账号与索引器比较
                    if (v.User == user)
                    {
                        return v;
                    }
                }
                Console.WriteLine("未找到");
                return null;
            }
        }
    }
    class Vip
    {
        string user;
        double balance;
        public Vip(string u, double bal)
        {
            user = u;
            balance = bal;
        }
        public string User
        {
            get { return user; }
            set
            {
                if (user.Length != 3)
                    Console.WriteLine("账号应该是三位");
                else
                    user = value;
            }
        }
        public double Balance
        {
            get { return balance; }
            set 
            {
                if (balance <= 0)
                    Console.WriteLine("无可用余额");
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值