- - PR -
クラスの配列プロパティが宣言方法により、エラーとなる
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-08-29 15:09
>配列の要素数はいくつでしょう?
なちゃさん、配列要素は、使用PG側にまかせるので クラス内では、初期化しておこうとおもい、ゼロに しております。問題がありますか? あとReDimってVB.NETでみなさん使っているのでしょうか? ぜひご意見をお聞きしたいと思います。 | ||||||||||||
|
投稿日時: 2005-08-29 15:20
いえ。 System.Collections.Specialized.StringCollection です。 ちなみにStringBuilderはコレクションではないです。 | ||||||||||||
|
投稿日時: 2005-08-29 15:34
ゼロになってませんぜよ、と言いたかったわけです。
旧VBから使っている方では、それなりの割合でReDim使いまくりな人を見ます。 誰が書き始めたのか分かりませんが、ループ内で現在のカウント分再確保を行うReDimを書くというやりかたが、なぜか広まってしまっている?というのもあります。 VB.NETでは、基本的にReDimよりは、新しい配列を参照しなおすやり方の方が良いとおもいます。 まあ、Preserveみたいな使い方は出来ないわけですが、そういうことが必要であれば、代わりにコレクションのクラスを使えばよいわけです。 なんでReDimをお勧めしないかというと、なんとなく動作を勘違いしやすい、勘違いして乱用してしまいがち、VB.NETでしか使えない、などの理由があります。 ※.NETという環境での一般的な実装方法を覚える、使うべき、というのもあります。 | ||||||||||||
|
投稿日時: 2005-08-29 15:44
これどう考えても言語の欠陥ですよね。 ある変数の値分の長さの配列を作る場合にわざわざIfで分けて、
なんてやってます。 もっといい方法があれば誰か教えてください。 | ||||||||||||
|
投稿日時: 2005-08-29 15:51
もっといいやり方…↑ まあ、歴史上仕方がないのではありますが、私も欠陥だと思いますです、はい。 | ||||||||||||
|
投稿日時: 2005-08-29 15:53
私はStringCollectionはString配列と相互運用しにくいので敬遠気味ですねー。 なぜString配列を引数に取るコンストラクタやToArrayメソッドがないんでしょ。 包含してるArrayListには存在してるのに。 | ||||||||||||
|
投稿日時: 2005-08-29 15:59
うちでは、VB なまりのコーディングは禁止しています。 New ClassName([num]) {初期値, ...} ですね。 再確保・再配置が頻繁にあるのならば、ArrayList などを使いますし。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-08-29 16:06
burton999さん
ご返事ありがとうございます。 いろんなクラスがありますね。もう少し勉強して、 他の方の役に立つようにいたします。 なちゃさん 私も旧VB以来で、ReDimを普通に使用していました。 VB.NETの基礎の本でもReDimが動的配列の中に 標準みたいな感じで掲載されていました。(初心者用) .NETでは、あまり使用しないほうがいいみたいですね。 貴重なご意見ありがとうございました。 |