1. ホーム
  2. c#

[解決済み] の定義を含まず、型の第一引数を受け入れる拡張メソッドも見つかりませんでした。

2022-02-01 18:46:14

質問

この問題に対する解決策をいくつか見て回りましたが、私が経験していることと同じではないようです。

呼び出そうとしているメソッド

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' が見つかりませんでした。 usingディレクティブかアセンブリ参照が足りない?)

CBetfairAPIクラスの他のメソッドを使用しても問題はありません。placeBets()は'CBetfairAPI.'を実行するとVisual studioのドロップダウンメニューに表示されません。(他のすべてのメソッドとフィールドはそうします)。

よろしくお願いします。

解決方法は?

placeBets(betList, stakeAmt) インスタンス メソッドではなく 静的 メソッドを使用します。のインスタンスを作成する必要があります。 CBetfairAPI を最初に作成します。

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