2016-03-19 4 views
0

Create a method with infinite parametersの方法を学んだあと、パラメータ配列を配列に格納するのは合理的でしょうか。私は多くの人々がこのアプローチを使用するとは思わないので、それは問題を引き起こしますか?以下C#無限のパラメータを持つメソッド配列のアクセス

コード:

class Foo 
{ 
    private String[] Strings; 

    public Foo(params String[] strings) 
    { 
     Strings = strings; 
    } 
    ... 
} 
+2

サイドノート:無限ではありません - 配列の最大サイズは 'int.MaxValue'です。 –

答えて

4

いいのよ - それはただの配列です。

Foo("x", "y"); 

へ:本当にこれだけです

Foo(new string[] { "x", "y" }); 

すべてのコンパイラはパラメータ配列で行うことは、このような呼び出しに変換されます。 2番目の呼び出しで適切と思われるものは、パラメータ配列で問題ありません。

パブリックメソッドに渡される配列は、すべての配列が可変であるため直接格納することはめったにありませんが、パラメータ配列に固有のものではなく可変パラメータ型をどのように扱うかが問題になります。

関連する問題