2017-09-11 9 views
0

を働いていない私は、文字列の配列は次のように宣言している:Array.Clear(名前、0、lenが)

string[] strA9 = new string[64]; 

それを使用した後、私は戻ってnullにすべての要素をリセットしたいが、このコード

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

は、以前に使用された最初の3つの要素のみを消去します。だから、要素が存在しないというエラーを出さずにstr9 [5]にアクセスすることはできません。

私は.Clearメソッドが配列を64個のnull要素に戻すと考えましたか?

+1

「Arrat.Clear」がそうしています。配列を使用して別の問題があります。 str9 [5]にアクセスしたときにどんなエラーが発生しますか?どのようにアクセスしますか?関連するコードを投稿してください。 –

+2

私の推測では、5つの要素しか持たない配列への参照である 'strA9'に新しい値を代入していると思います。しかし、[mcve]がなければ、私たちは本当に分からない。 –

答えて

1

documentation siteで定義されているものと同じですので、配列を消去する方法は正しいです(質問に投稿していないコードの後ろに何かがあるかもしれません)。

string[] strA9 = { "A", "B","java" }; 
Console.WriteLine(string.Join(",", strA9)); 
Console.WriteLine(strA9[1]); 
Array.Clear(strA9, 0, strA9.Length); 
Console.WriteLine(string.Join(",", strA9)); 
+3

もしそうなら、その質問の問題は何ですか?これは、OPが実際の問題以外の何かを述べたX-Yの問題です。したがって、私はこの答えが質問に答えるのを助けると確信していません。 –

+0

配列は次のように宣言されています: string [] strA9 = new string [64]; これは、以前にこのようなデータで使用されました: strA9 [0] = "TEST1" strA9 [1] = "TEST2" strA9 [2] = "TEST3" 私はこの配列をクリアしようとすると、私はこれを見ます: strA9 [0] = null strA9 [1] = null strA9 [2] = null なので、私は何とか64のサイズを失いました。したがって、次回、配列とアクセス要素、たとえば5を使用しようとすると、範囲外の実行時エラーが発生します。 私は、明確な配列によって、すべての64個の配列要素をnullに戻すことができると思いました。 – RalphF

+0

私はこれを使って解決しました。 strA9 = new string [64]; – RalphF

関連する問題