写代码的麒麟臂 2015-12-16 06:45 采纳率: 50%
浏览 1392
已采纳

我想问下最后主函数里的lib[i] = b是什么意思?

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

namespace ConsoleApplication1
{
class Book
{
private string bid;
private string bname;
public string Bid
{
get { return bid; }
set { bid = value; }
}

    public string Bname
    {
        get { return bname; }
        set { bname = value; }
    }
}
class Library
{
    Book[] book;

    public Library(int len)
    {
        book = new Book[len];
    }
    public Book this[int idx]
    {
        get
        {
            return book[idx];
        }
        set
        {
            book[idx] = value;
        }
    }
}
class Program
{
    static void Main(string[] args)
    {
        int length;
        Console.Write("图书馆容量:");
        length = Convert.ToInt32(Console.ReadLine());
        Library lib = new Library(length);
        for (int i = 0; i < length; i++)
        {
            Book b = new Book();
            Console.Write("编号{0}:", i + 1);
            b.Bid = Console.ReadLine();
            Console.Write("书名{0}:", i + 1);
            b.Bname = Console.ReadLine();
            lib[i] = b;
        }
        for (int i = 0; i < 3; i++)
        {
            Console.WriteLine(lib[i].Bid + " " + lib[i].Bname);
        }
    }
}

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2015-12-16 06:50
    关注

    这个程序应该是一个习作,目的是练习使用C#的索引器(Indexer)语法。
    lib[i] = b;的作用是调用Library定义的那个索引器的set方法,把Book对象b传给Book[]数组。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题