天使と悪魔選手権

C#2005で、C++の const int* dataを置き換えるにはどうしたらよいでしょうか?

メソッドの引数でdataを渡しているのですが、dataは intの配列です。
メソッド内では書きかえられたくないのでC++の時にconstを付けました。
C#ではどのように記述するのが正しいでしょうか?

C++からC#に置き換えていますが、参考になるサイトがありましたら教えてください。

A 回答 (3件)

 こんにちは。


 配列をメソッドの引数に渡したいのでしょうか。

 以下の通り
 http://msdn.microsoft.com/ja-jp/library/hyfeyz71 …

private void test()
{
int[] data = { 0, 1, 2 };
this.Method(data);
}

private void Method(int[] data)
{
//dataを見る
}

 で出来るのではないでしょうか。

 其の他参考になりそうなサイト
 http://ufcpp.net/study/csharp/sp_ref.html

 constキーワードに関しては諦めるしかないと思います。
 例えばC#でwin32APIを呼び出す場合でも、const ???* のパラメータをSystem.IntPtr等として指定します(constである事を意識していない)。
    • good
    • 0

>大きい配列ですが、インデクサでは処理効率は落ちませんか?


そもそもC#の配列は全てSystem.Arrayクラスのオブジェクトのはずなので、ネイティブなC++と比べる意味は無いかと。
一度試して速度を検討してみてはどうでしょうか?としか言えません。
    • good
    • 0

C#は配列をconstに出来ないので、クラスでインデクサを使って配列に見せかけた上でインデクサの機能で書き換えを阻止するしか無いんじゃないでしょうか。


っても私もC#を始めて1週間ぐらいなんですけどね。違っていたら申し訳ないです。

この回答への補足

大きい配列ですが、インデクサでは処理効率は落ちませんか?

補足日時:2009/10/06 13:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!