- PR -

クラスの配列プロパティが宣言方法により、エラーとなる

投稿者投稿内容
みけ
会議室デビュー日: 2005/08/16
投稿数: 8
投稿日時: 2005-08-29 15:09
>配列の要素数はいくつでしょう?

なちゃさん、配列要素は、使用PG側にまかせるので
クラス内では、初期化しておこうとおもい、ゼロに
しております。問題がありますか?

あとReDimってVB.NETでみなさん使っているのでしょうか?
ぜひご意見をお聞きしたいと思います。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-08-29 15:20
引用:

StringBuilderでしょうか?
現行のPGMでは、修正が難しいので次回のVerUpに再検討します。



いえ。
System.Collections.Specialized.StringCollection
です。
ちなみにStringBuilderはコレクションではないです。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-08-29 15:34
引用:

みけさんの書き込み (2005-08-29 15:09) より:
>配列の要素数はいくつでしょう?

なちゃさん、配列要素は、使用PG側にまかせるので
クラス内では、初期化しておこうとおもい、ゼロに
しております。問題がありますか?


ゼロになってませんぜよ、と言いたかったわけです。

引用:

あとReDimってVB.NETでみなさん使っているのでしょうか?


旧VBから使っている方では、それなりの割合でReDim使いまくりな人を見ます。
誰が書き始めたのか分かりませんが、ループ内で現在のカウント分再確保を行うReDimを書くというやりかたが、なぜか広まってしまっている?というのもあります。

VB.NETでは、基本的にReDimよりは、新しい配列を参照しなおすやり方の方が良いとおもいます。
まあ、Preserveみたいな使い方は出来ないわけですが、そういうことが必要であれば、代わりにコレクションのクラスを使えばよいわけです。

なんでReDimをお勧めしないかというと、なんとなく動作を勘違いしやすい、勘違いして乱用してしまいがち、VB.NETでしか使えない、などの理由があります。
※.NETという環境での一般的な実装方法を覚える、使うべき、というのもあります。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-08-29 15:44
引用:

なちゃさんの書き込み (2005-08-29 15:34) より:
ゼロになってませんぜよ、と言いたかったわけです。



これどう考えても言語の欠陥ですよね。
ある変数の値分の長さの配列を作る場合にわざわざIfで分けて、
コード:
If i = 0 Then
  arr = New String() {}
Else
  arr = New String(i - 1) {}
End If


なんてやってます。

もっといい方法があれば誰か教えてください。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-08-29 15:51
引用:

一郎さんの書き込み (2005-08-29 15:44) より:
これどう考えても言語の欠陥ですよね。
ある変数の値分の長さの配列を作る場合にわざわざIfで分けて、
コード:
If i = 0 Then
  arr = New String() {}
Else
  arr = New String(i - 1) {}
End If


なんてやってます。

もっといい方法があれば誰か教えてください。


コード:
arr = New String(i - 1) {}


もっといいやり方…↑
まあ、歴史上仕方がないのではありますが、私も欠陥だと思いますです、はい。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2005-08-29 15:53
引用:

burton999さんの書き込み (2005-08-29 14:09) より:
配列の要素数が動的なら
Stringの配列ではなくStringCollectionを使ったほうがよいのではないでしょうか?



私はStringCollectionはString配列と相互運用しにくいので敬遠気味ですねー。
なぜString配列を引数に取るコンストラクタやToArrayメソッドがないんでしょ。
包含してるArrayListには存在してるのに。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-08-29 15:59
引用:

あとReDimってVB.NETでみなさん使っているのでしょうか?
ぜひご意見をお聞きしたいと思います。


うちでは、VB なまりのコーディングは禁止しています。
New ClassName([num]) {初期値, ...} ですね。
再確保・再配置が頻繁にあるのならば、ArrayList などを使いますし。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
みけ
会議室デビュー日: 2005/08/16
投稿数: 8
投稿日時: 2005-08-29 16:06
burton999さん
ご返事ありがとうございます。
いろんなクラスがありますね。もう少し勉強して、
他の方の役に立つようにいたします。

なちゃさん
私も旧VB以来で、ReDimを普通に使用していました。
VB.NETの基礎の本でもReDimが動的配列の中に
標準みたいな感じで掲載されていました。(初心者用)

.NETでは、あまり使用しないほうがいいみたいですね。
貴重なご意見ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)