0

以下は、私が使用しているコードです。組み込み型にメソッドを追加して、配列内にある場合に配列内の要素のインデックスを見つけます。私が抱えている問題は、char[].IndexOf メソッドのコードは機能しますが、string[,] の新しいコードは機能しないことです。

string[,].IndexOf(変数からの文字列, int x,int y);

エラーを表示します: 'System.Array.IndexOf(int[], int, int)' に最適なオーバーロードされたメソッド マッチには無効な引数がいくつかあります 引数 1: 'string' から 'int[]' に変換できません

何が問題なのかわかりません。整数配列ではなく文字列を取るメソッドを定義しましたが、その型には IndexOf 関数が組み込まれていません。

コードの抜粋: (正確なコードではなく、問題があることを願っています)

Using Extensions;

namespace one
{
    class Form
    private static char[] Alp = {'s','f'};

    private method1
    {
         int pos = Alp.IndexOf(char[x]);
    }

    private method2
    {
          string[,] theory = table of letters

          theory.IndexOf(string_array[0], x, y);
    }

namespace Extensions
{
    public static class MyExtensions
    {
        //Add method IndexOf to builtin type char[] taking parameter char thing
        public static int IndexOf(this char[] array, char thing)
        {
            for (int x = 0; x < array.Length; x++)
            {
                char element = array[x];
                if (thing == element) { return x; }
            }
            return -1;
        }

        public static void IndexOf(this string[,] array, string find, ref int x, ref int y)
        {

        }
    }
}
4

3 に答える 3

0
public static void IndexOf(this string[,] array, string find, ref int x, ref int y)

x と y は参照によって要求されるため、ref キーワードを使用して呼び出す必要もあります。最初のパラメーターが間違っているとエラーが言った理由がわかりました。

回答を投稿してくださった皆様、ありがとうございました。

于 2013-08-02T00:01:44.833 に答える