设计一个读者结构体,并测试
时间: 2024-10-29 14:11:27 浏览: 21
在C#中,我们可以创建一个简单的`Reader`结构体来代表一位读者,包含一些基本信息如姓名、书籍列表等。这里是一个基本的设计:
```csharp
using System;
using System.Collections.Generic;
// 定义读者结构体
public struct Reader
{
// 属性
public string Name { get; set; }
public List<Book> BooksRead { get; private set; }
// 构造器
public Reader(string name)
{
Name = name;
BooksRead = new List<Book>();
}
// 方法,例如添加读过的书
public void AddBook(Book book)
{
BooksRead.Add(book);
}
}
// 假设我们有一个名为Book的类
public class Book
{
public string Title { get; set; }
// ... 其他属性和方法
}
// 测试代码
class Program
{
static void Main(string[] args)
{
// 创建读者实例
Reader reader1 = new Reader("Alice");
// 添加书籍到读者的读书列表
Book book1 = new Book { Title = "Pride and Prejudice" };
Book book2 = new Book { Title = "To Kill a Mockingbird" };
reader1.AddBook(book1);
reader1.AddBook(book2);
Console.WriteLine($"Reader {reader1.Name} has read:");
foreach (Book book in reader1.BooksRead)
{
Console.WriteLine("- {0}", book.Title);
}
// 示例结束
}
}
```
在这个例子中,我们首先定义了`Reader`结构体,然后创建了一个`Book`类表示书籍。在`Reader`结构体中,我们有姓名和书籍阅读列表两个属性,以及一个构造函数用于设置初始值。`AddBook`方法用于增加读过的书籍。
在`Main`方法中,我们创建了一个`Reader`实例并添加了两本书,最后输出读者所读过的所有书籍标题。
阅读全文
相关推荐



















