- PR -

Arraylist と 構造体について

投稿者投稿内容
みー助
会議室デビュー日: 2005/04/14
投稿数: 5
投稿日時: 2005-04-14 18:37
解決しました。
Resくださったみなさん、ありがとうございます。

Public AList As New ArrayList
Public Structure tSt
 dim a as String
 dim b as ArrayList
End Structure
Public tpSt As tSt

sub Test()
 tpSt.a = "ABC"
 tpSt.b = New ArrayList  ← ここを追加
 AList.Add(tpSt)

 ある処理

 AList(0).b.Add("123")
end sub
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-04-14 19:03
これは不幸のレスです。
このレスを見た人は1週間以内にOptionStrictをOnにしないとVB神の呪いによりプログラマとして不幸な人生を送ることになります。
実際私の知り合いはTextBoxのTextプロパティに平然と数値を代入しようとしやがります。


勉強頑張ってください。
みー助
会議室デビュー日: 2005/04/14
投稿数: 5
投稿日時: 2005-04-14 20:54
VB神の呪いって、.NET VBにバグがあるということですか?
OptionStrictを調べたのですが、遅延バインディングではちゃんと動かない?!

HPを見ると、Option StrictステートメントをOffにすることにより暗黙の遅延バインディングを使用できます。と書いてありました。

もう少し詳しく教えてもらえると助かります。
よろしくお願いします。
猫山みやお
大ベテラン
会議室デビュー日: 2004/09/09
投稿数: 119
投稿日時: 2005-04-14 21:16
VB.NET は Option Strict を使ってやっと c# と同じ土俵に立てます。
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2005-04-14 21:26
> VB神の呪いって、.NET VBにバグがあるということですか?
VB.NETのバグじゃなくて人がバグを作り込みやすくなるってことです
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2005-04-14 21:59
引用:

みー助さんの書き込み (2005-04-14 20:54) より:
VB神の呪いって、.NET VBにバグがあるということですか?
OptionStrictを調べたのですが、遅延バインディングではちゃんと動かない?!

HPを見ると、Option StrictステートメントをOffにすることにより暗黙の遅延バインディングを使用できます。と書いてありました。

もう少し詳しく教えてもらえると助かります。
よろしくお願いします。


http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet27/vb6tonet27_01.html
MSDNで理解できなければ@ITの記事を見ると良い。
@ITは会議室だけに在らず。

_________________
仕事あってのプライベート、プライベートあっての仕事
■7月9日名古屋OFF参加者募集中!■

[ メッセージ編集済み 編集者: まゆりん 編集日時 2005-04-14 22:04 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-04-14 22:38
 呪いねぇ。。。

 動かない呪いではなく、苦労する呪いです(・_・)きっぱり

 遅延バインディングに頼ると、何が入っているかわからなくなります。例えば、ArrayListはObjectクラスを受け付けます。したがって、このようなコードが通ります。
コード:
Dim arr As New ArrayList
arr.Add("これは文字列")
arr.Add(1D) ' これは十進数値
arr.Add(10.5F) ' これは実数
arr.Add(2S) ' これは16ビット整数値
arr.Add(MyClassInstance) ' 適当なクラスのインスタンス


さて、入れるときはかまいません。出すときは、どうなるでしょう?


 これじゃわからんな。わからんっつうか、型付けされたコレクションの勧め、になるな。


 Double型の計算をして、結果をIntegerに入れようとすると、どうなりますか?
「小数部が処理されて、整数になる」
だと、20点です。(点数はてきとー)

 一郎さんの例だと、ユーザが入力できるString型のTextプロパティに数値を入れました。それを取り出すとき、「自分は数値を入れたから」と、数値で受けていると、どうなるでしょう。

 キャストすれば入ってしまいますけど、「暗黙」つまり開発者が知らないうちにされるのと、開発者が知って行うのとでは、不幸度が変わってきます。

_________________
みー助
会議室デビュー日: 2005/04/14
投稿数: 5
投稿日時: 2005-04-15 12:28
Resくださったみなさん、ありがとうございました。

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