sách gpt4 ăn đã đi

c# - IEnumerable 评估

In lại Tác giả: Walker 123 更新时间:2023-11-30 21:04:39 26 4
mua khóa gpt4 giày nike

在这个实现中,每次都会评估 hand 并返回另一个列表吗?

foreach (Card card in hand.Cards)
{

}

我们应该用下面的实现替换上面的实现吗?

var cards = hand.Cards;
foreach (Card card in cards)
{

}

câu trả lời hay nhất

没有。实际上,这两个片段产生相同的代码。在下面的代码片段中:

foreach (Card card in hand.Cards)
{

}

hand.Cards 将只被调用一次。

biên tập:

我创建了一个小片段,我希望它能证明两者之间没有任何区别:

void Main()
{
Hand hand = new Hand();
foreach( var card in hand.Cards() )
{
Console.WriteLine("{0}", card);
}

var allCards = hand.Cards();
foreach( var anotherCard in allCards )
{
Console.WriteLine("{0}", anotherCard);
}
}

public class Card
{
private string _cardName;
public Card( string cardName )
{
this._cardName = cardName;
}

public override string ToString()
{
return this._cardName;
}
}

public class Hand
{
public IEnumerable Cards()
{
yield return new Card("Ace");
yield return new Card("King");
}
}

输出(对于这两种方法)如下:

Ace
King
Ace
King

关于c# - IEnumerable 评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12228482/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress