2016-05-04 13 views
1
Static i as integer 

は値を割り当てる前に設定します。vb6は静的Integerをどのように初期化するのですか?

これはちょうどゼロ(0)のようですが、私はそれを確認したかったのです。

+0

に役立ちます。静的変数は、メソッド呼び出しの間にその値を保持するローカル変数です。つまり、ローカル変数のスコープを持ちますが、モジュールレベルの変数の有効期間があります。 – BobRodes

+1

@BobRodesこれは、VB.NETの[全く同じ方法](https://msdn.microsoft.com/en-us/library/z2cty7t8.aspx)で使用されています。あなたはおそらく[C#](https://msdn.microsoft.com/en-us/library/98f28cdx.aspx)を考えているかもしれませんが、2つの異なる言語でのキーワードの使用を比較したり、代わりに ".NET"を使用することは正しくありません"C#" – GSerg

+0

@GSergかなり正しいです、私は訂正します。 – BobRodes

答えて

3

すべてのVBデータ型の変数は、プロシージャの開始時にそれぞれのデフォルト値を受け取ります。

これがゼロにすべての数字を初期化含み、空の文字列として文字列にゼロ(vbNullStringのその味に他のすべてのデータ型、まったく同じではないオブジェクトのための""、ブール値のためFalse、バリアントのためのEmpty、およびNothing )。 Visual Basicの、静的変数は関数またはSubプロシージャ内で宣言されたとき、それは0(数値データ型)または空の文字列に初期化される、「」(文字列データ型で通常

+0

デバッグステートメント '? vbNullstring = ""は "True"と評価されます。したがって、*正確には*空の文字列と同じではないかもしれません。同じ意味で、定数はその値と正確に同じではありません。しかし、すべての実用的な目的のために、私はコード内で互換性があるので、まったく同じであると言います。 – BobRodes

+3

@BobRodes VB '='では、2つのものが*同じ*のときだけでなく、同じものとして見ることができる他のものに強制することができるときにも '真 'と評価されます。例えば。 '? False = 0'または '? False = Empty'は、同じではないにもかかわらず、すべてTrueを返します。むしろ、すべてFalseです(https://developer.mozilla.org/en/docs/Glossary/Falsy)。 'vbNullString'は' '' '(' String')と同じ型であるために異なりますが、内容を比較することにのみ関心がある場合は実際には同じですが、 ](http://stackoverflow.com/a/20909528/11683)。 – GSerg

+1

'vbNullString'と' '' 'をいくつかのメソッド、プロパティなどに渡すときに得られる結果に違いがあるかもしれません。' vbNullString'を渡すことによってもnullポインタ例外が発生することがあります。 – Bob77

3

According to Microsoft

)を使用します。

だから、デフォルト値がゼロであることを確認できます。

ホープこれはVB6でStatic`は.NETで、その意味は全く異なる意味を持っている `、それは明らかではないが、念のために

+0

MSDN上のVB6ドキュメント、https://msdn.microsoft.com/en-us/library/aa243352(v=vs.60).aspx – jac

関連する問題