gpt4 book ai didi

c# - 如何编写返回实例集合的类方法

转载 作者:太空狗 更新时间:2023-10-30 01:12:23 26 4
gpt4 key购买 nike

我正在努力定义一个填充和返回实例集合的类方法。我不知道如何解决的问题是我要填充私有(private)属性。

让我们以 Book 类为例。我不希望代码直接设置(比如说)一本书的可用性。我希望代码必须在 Book 实例上使用 CheckOut 方法。所以我们有类似的东西:

public class Book
{
private int ID;
private bool pAvailableForCheckout;

public string Title { get; set; }
public bool AvailableForCheckout { get { return pAvailableForCheckout } }

// instance methods

public Book(int BookID)
{
// Load book from DB by ID
}
public CheckOut()
{
// perform everything involved with checking a book out
}
// .. other methods like saving a book, checking out books etc.

// class method

public static List<Book> FindAll()
{
// load Dataset of books
// foreach record in DB, use the Book(int BookID) constructor and add to List
// return list of books
}
}

所以,我可以在我的代码中使用它:

foreach(Book curBook in Book.FindAll())
{ /* do something with book */ }

上述实现的问题是我必须使用 N+1 次命中数据库来加载所有书籍,而不是仅仅 1 个查询。我该如何解决这个问题?

我确定这是编程 101,但我需要问一下。

最佳答案

您可以创建一个 protected 构造函数来直接填充私有(private)属性。

关于c# - 如何编写返回实例集合的类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/557323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com