- - PR -
構造体の警告を消したい
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-09 19:40
構造体を使ってみたのですが、次の警告が出ます。
でないように細工するにはどうすれば良いのですか? dim item as UserListItem item.Init(1, "田中一郎") ← ここで出る。 item.Init(2, "田中二郎") ____________________________________________________ 警告 変数 'item' は、値が割り当てられる前に参照によって 使用されています。Null 参照の例外が実行時に発生す る可能性があります。構造体、またはすべての参照メン バが使用前に初期化されていることを確認してください。 ____________________________________________________ Private Structure UserListItem Public Code As Long Public Name As String Public Sub Init(ByVal code_ As Integer, ByVal name_ As String) Code = code_ Name = name_ End Sub End Structure | ||||||||
|
投稿日時: 2005-11-09 19:52
UserListItem のインスタンスをnewで作ってないからでは?
[追記] お節介とは思いますが,「警告が出ないように細工」てな発想は危ないです。 警告出るのはどこかにおかしい部分がある(可能性が高い)わけですから。 _________________ Future Is What We Are! [ メッセージ編集済み 編集者: 117 編集日時 2005-11-09 19:59 ] | ||||||||
|
投稿日時: 2005-11-09 19:56
消えました。ありがとうございました。
| ||||||||
|
投稿日時: 2005-11-09 21:28
Init という名前からしても初期化を行うわけですよね。
だとすれば、コンストラクタで強制すべきでしょう。 また、Code は Long なのに、Integer しか渡せないのも不自然です。
このようにして、
とすべきですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-11-11 13:53
>init という名前からしても初期化を行うわけですよね。
そうです。 >だとすれば、コンストラクタで強制すべきでしょう。 そうですね。その方がわかりやすくて統一感もありますよね。 ありがとうございました。 |
1