placeBets(betList, stakeAmt)
is an instance method not a static method. You need to create an instance of CBetfairAPI
first:
MyBetfair api = new MyBetfair();
ArrayList bets = api.placeBets(betList, stakeAmt);
Question
I've looked around at some of the solutions to this problem but they don't seem to be the same as what I'm experiencing.
Method that I'm trying to call:
namespace BetfairAPI
{
public class CBetfairAPI
{
public ArrayList placeBets(ArrayList betList, double stakeSize)
{
// code to betList maniplulate
return betList;
}
}
}
Method that I'm calling from:
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);
}
}
}
}
Error that I'm receiving:
Error 1 'BetfairAPI.CBetfairAPI' does not contain a definition for
'placeBets' and no extension method 'placeBets' accepting a first argument of type 'BetfairAPI.CBetfairAPI' could be found (are you missing a using directive or an assembly reference?)
I have no problem using any other methods in the CBetfairAPI class. placeBets() doesn't show up in the drop down menu in Visual studio if I do 'CBetfairAPI.' (all the other methods and fields do).
Thanks for your help.
Solution
placeBets(betList, stakeAmt)
is an instance method not a static method. You need to create an instance of CBetfairAPI
first:
MyBetfair api = new MyBetfair();
ArrayList bets = api.placeBets(betList, stakeAmt);
OTHER TIPS
Declare an instance of the CBetfairAPI class or make it static.
There are two cases in which this error is raised.
Try using the this
keyword in your placeBets
method.
To my understanding, you can use this
to create an extension method for a given type. In this case, you are creating an extension method for Arraylists.
public ArrayList placeBets(this ArrayList betList, double stakeSize)
{
// code to betList maniplulate
return betList;
}