首页 > 解决方案 > 我无法弄清楚两个简单代码之间的区别

问题描述

我试图用 C# 编写一个简单的代码,而我的编译器 Visual Studio 提出了我无法理解的不同版本的代码。

这是我首先得到的:

        public void addCard(Card card)
        {
            foreach (Card inDeckCard in cardDeck)
            {
                if (card.name == inDeckCard.name)
                {
                    return;
                }
            }
            cardDeck.Add(card);
        }

这就是编译器的建议:

        public void addCard(Card card)
        {
            foreach (Card inDeckCard in cardDeck)
            {
                if (card.name == inDeckCard.name)
                {
                    return;
                }
            }
            cardDeck.Add(item: card);
        }

item:我有和没有的时候有什么区别。在这种情况下,实际上是什么item:意思/做什么?

标签: c#

解决方案


它使用命名参数。

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments

摘抄:

PrintOrderDetails("礼品店", 31, "红杯");*

如果您不记得参数的顺序但知道它们的名称,您可以按任意顺序发送参数。*

PrintOrderDetails(orderNum: 31, productName: "Red Mug", SellerName: "Gift Shop");*

PrintOrderDetails(productName: "Red Mug", SellerName: "Gift Shop", orderNum: 31);*

不确定 CardDeck 是什么类型以及 Add 方法的调用签名是什么,但item: card说 card 参数要与 item 参数匹配。


推荐阅读