[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/04/22(Fri) 19:31
投稿者名:ハロハロ
Eメール:
URL :
タイトル:
何故 型が違うのに代入できる?
始めまして。
VB6勉強をしてます。

dim str as string
str = 10
のようにInteger型の値を代入することができますが、何故できるのでしょうか?
Option Explicitは宣言してます。
今までDelphiを使っていたのですが、VBは何で出来るのかなと、、、
すみませんが、ご存知の型がいましたら教えて下さい。

投稿時間:2005/04/22(Fri) 20:19
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: 何故 型が違うのに代入できる?
> dim str as string
> str = 10
> のようにInteger型の値を代入することができますが、何故できるのでしょうか?

異なる型の場合、代入される前に、実行時に型の変換を試みるからです。
標準の型である、数値型(日付型も含む)、文字列型、オブジェクト型、
一部の配列、の代入は、それぞれの変換ルーチンが内部で呼ばれるよう
になっています。

まぁ、「何故」という問いに対しては、「仕様だから」と答えた方が
いいかも知れませんね。

投稿時間:2005/04/22(Fri) 20:19
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: 何故 型が違うのに代入できる?
> のようにInteger型の値を代入することができますが、何故できるのでしょうか?
「そういう風に作られているから」としか言えません。(^^;

> Option Explicitは宣言してます。
Option Explicit は、「変数宣言」を強制するだけです。
暗黙の型変換を無効にするわけではありません。

ちなみに VB.NET では、「Option Explicit」の指定とは別に、
「Option Strict」によって、この「暗黙の型変換」を禁止する事ができます。

投稿時間:2005/04/23(Sat) 08:36
投稿者名:ハロハロ
Eメール:
URL :
タイトル:
Re: 何故 型が違うのに代入できる?
K.J.K.さん 魔界の仮面弁士さん

仕様ということで、理解しました。
有難う御座いました。