9

関数Array.Clear()を使用して配列を空にしていますが、エラーが発生します。これは私が使用していたコードです:

private int[] activeFielderNumber = new int[10];
private string[] activeFielderAction = new string[10];  
....
...
....
Array.Clear(activeFielderNumber, 0, activeFielderNumber.Length);
Array.Clear(activeFielderAction, "", activeFielderAction.Length);

エラーは次のとおりです。

error CS0103: The name `Array' does not exist in the current context

どうすればこの問題を解決できますか?

4

8 に答える 8

12

使いましたか

using System;

修正するもう1つのポイント:

Array.Clear(activeFielderAction, "", activeFielderAction.Length);

そのはず

Array.Clear(activeFielderAction, 0, activeFielderAction.Length);

最後の 2 つのパラメーターは、クリアするインデックス範囲です。

于 2012-12-07T05:29:40.243 に答える
7

これを試して

Array.Clear(yourArray, 0, yourArray.Length);
于 2014-07-10T07:38:47.877 に答える
4

Array.Clear() 関数を使用して配列を空にしています。しかし、それはエラーを投げていました

いいえ、そうではありませんでした。Clear 関数はエラーをスローしていませんでしたが、COMPILER はエラーをスローしていました。

エラー CS0103: 'Array' という名前は現在のコンテキストに存在しません

CS0103 を探すと、Google は次のように言います。

MSDN のコンパイラ エラー CS0103 (C#)

クラス、名前空間、またはスコープに存在しない名前を使用しようとしました。名前のスペルをチェックし、using ステートメントとアセンブリ参照をチェックして、使用しようとしている名前が使用可能であることを確認してください。よくある間違いの 1 つは、次の例に示すように、ループまたは try ブロック内で変数を宣言してから、外側のコード ブロックまたは別のコード ブロックから変数にアクセスしようとすることです。

翻訳: 配列がコンテキストで見つかりません。「使用」ステートメントがありませんか?

于 2012-12-07T05:29:51.353 に答える
2

次のコードが機能しました。

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] activeFielderNumber = new int[10];
string[] activeFielderAction = new string[10];  

Array.Clear(activeFielderNumber, 0, activeFielderNumber.Length);
Array.Clear(activeFielderAction, 0, activeFielderAction.Length);
        }
    }
}
于 2012-12-07T05:27:57.433 に答える
1

Array.Clear()メソッドは、アレイをデフォルト状態にリセットするだけです。

声明に基づいて

Array.Clear(activeFielderAction, "", activeFielderAction.Length);エラーが発生する場合があります。

実際のステートメントは

Array.Clear(activeFielderAction, 0, activeFielderAction.Length);

また、importing Using.System;名前空間であるかどうかも確認してください。

以下のコードを試してください。

int[] activeFielderNumber = new int[10];
activeFielderNumber[1] = 10;
activeFielderNumber[2] = 20;

string[] activeFielderAction = new string[10];
Array.Clear(activeFielderNumber, 0, activeFielderNumber.Length);
Array.Clear(activeFielderAction, 0, activeFielderAction.Length);
于 2012-12-07T05:33:12.577 に答える
1

残念ながら、コメントを投稿するのに十分なポイントがないため、ここで「回答」を提供する必要があります...そこにある「スピードジャンキー」のために、配列をクリアする方法は多数あります(Array.Clearだけではありません)here に示されているように、通常はArray.Clearが最も簡単で最速です。

「o1」がオブジェクト配列である配列を(サイトから直接)クリアするためにテストされた3つの方法を次に示します。

for (int x = 0; x < MAX; x++)
{
    o1[x] = null;
}

Array.Clear(o1, 0, o1.Length);

Parallel.For(0, MAX, x =>
{   //arrays are thread safe if only one thread is writing to an index
    o1[x] = null;
});

Array.Clear以外の別の方法 (特に並列ループを使用) を試すことを考え直したことがなかったので、興味深い読み物だと思いました。

于 2014-07-10T07:33:20.713 に答える
0

この線

Array.Clear(activeFielderAction, "", activeFielderAction.Length);

Array.Clear()の有効な使用法ではありません- 前の行のように、中間パラメーターは int である必要があります。

于 2012-12-07T05:30:07.963 に答える
0

単に Array オブジェクト参照を null の例に設定するだけです

文字列 url = " http://localhost/RestWebService/employee ?" 名前 + "," + ID; String[] arr = url.Split('?');

        arr = null;
        arr = url.Split('?');

それで全部です

于 2016-08-19T10:42:31.567 に答える