C# 不包含的定义,并且找不到接受类型为的第一个参数的扩展方法

C# 不包含的定义,并且找不到接受类型为的第一个参数的扩展方法,c#,betfair,C#,Betfair,我环顾了一下这个问题的一些解决方案,但它们似乎与我所经历的不一样 我尝试调用的方法: namespace BetfairAPI { public class CBetfairAPI { public ArrayList placeBets(ArrayList betList, double stakeSize) { // code to betList maniplulate return betL

我环顾了一下这个问题的一些解决方案,但它们似乎与我所经历的不一样

我尝试调用的方法:

namespace BetfairAPI
{
    public class CBetfairAPI
    {
        public ArrayList placeBets(ArrayList betList, double stakeSize)
        {
            // code to betList maniplulate

            return betList;
        }
    }
}
我从中调用的方法:

namespace Bot
{
    public partial class Form1 : Form
    {
            private void makeBets(MarketSummary mkt, double odds, double stakeAmt)
            {
                ArrayList betList = new ArrayList();

                // code to build "betList"

                ArrayList bets = MyBetfair.placeBets(betList, stakeAmt);

            }
        }
    }
}
我收到的错误:

错误1“BetfairAPI.CBetfairAPI”不包含
“placeBets”和无扩展方法“placeBets”接受第一个 找不到类型为“BetfairAPI.CBetfairAPI”的参数(是否为 缺少使用指令或程序集引用?)

在CBetfairAPI类中使用任何其他方法都没有问题。如果我使用“CBetfairAPI”,则placeBets()不会显示在Visual studio的下拉菜单中。(所有其他方法和字段都会显示)

感谢您的帮助。

placeBets(betList,stakeAmt)
是一种实例方法,而不是静态方法。您需要首先创建
CBetfairAPI
的实例:

MyBetfair api = new MyBetfair();
ArrayList bets = api.placeBets(betList, stakeAmt);

声明CBetfairAPI类的实例或将其设为静态。

有两种情况会引发此错误

  • 您没有声明所使用的变量
  • 您没有创建该类的实例

  • 变量
    MyBetfair
    在何处以及如何声明?尽管这两个变量都很有帮助,但最好明确说明您认为OP的特殊问题是什么。在这种情况下,看起来接受的答案已经解决了问题(因为这是一个相当古老的问题)。但在将来,如果你发布的答案是一个完整的解决方案,而不仅仅是强调可能的解决方案,那就最好了。