アプリ版:「スタンプのみでお礼する」機能のリリースについて

visual studio 2019において、宣言していない変数があるのにエラーなくビルド出来ました。

これと同じ現象になったり、不可思議な出来事があった方いますか?

A 回答 (6件)

訂正:


誤) Option Strict Off
正) Option Explicit Off
    • good
    • 0

CやC++ではなくて BASIC ですか?

    • good
    • 0

質問に具体性無さ過ぎ。


言語は?
ソースは?


こういう質問は問題が再現する最小のリースを示すと
多くの人が取り組んでくれるが
何も示さなければおこられるだけ。
    • good
    • 3

せめて, どういうプログラミング言語でどんなプログラムを書いたのくらいは出せないものかねぇ....



「visual studio 2019」がプログラミング言語ではない, ことくらいは認識できている?
    • good
    • 5

Option Explicit が Off だからです。


プロジェクトのプロパティ -> コンパイル のタブに設定があります。

ツール -> オプション -> プロジェクトおよびソリューション -> Visual Basic の既定値から、既定値を設定できます。

型定義について厳密かつ質の高いコードを求めるならば、On にした方がよいでしょう。

なお、下記も、上記と同じ場所で既定値を設定できます。
Option Strict
 型の厳密性を高めるものです。
 On だと、例えば文字列型に数値を入れていたり、その逆をしようと
 している場合にエラーになります。
 Dim value1 As Integer = 1
 Dim value2 As String = value1 ' On だとエラーになる, Off だとエラーにならない
 Dim value2 As String = value1.ToString() ' On は明示的に型変換する
 厳密性を高めて誤ったコードを防ぎたいなら On にします。

Option Compare
 文字列比較の時、大文字/小文字/全角/半角/ひらがな/カタカナを区別するかどうかです。
 Binary は区別し、Text は区別しません。
 Text の区別しない判断は、システムロケールに依存します。

Option Infer
 変数定義と同時に初期値が設定される場合、型推論によって
 変数を定義可能かどうかです。
 On は可能で、Off は不可能です。
 On の場合、下記のようなコードが許容されます。
 Dim value1 = "String" ' value1 は String型となる
 Dim value2 = 123 ' value2 は Integer型となる
 Dim value3 = value1 ' value3 は String型となる
 Dim value4 = 123L ' value4 は Long型となる

 On にすることで、無駄な型指定の記述を省くことができます。
 特に長ったらしい型定義などは、Off の場合はDRY原則に反して
 冗長的であるため、コードが汚く見えるしイラつくこと間違いなしです。

個人的には必ず下記のようにして、厳密性を最も高めています。
 Option Explicit -> On
 Option Strict -> On
 Option Compare -> Binary
 Option Infer -> On

型や比較の厳密性が緩ければ緩いほど、数値の加算をしようと思っていたのに、実は片方に数値以外が含まれている時があって実行エラーを起こした、などといったような業務仕様とは異なったコードというとても低次元なレベルでバグを生み出しやすいです。
(バグの原因はそれだけではありませんが)

型の厳密性が高い他の言語に触れて、そのお作法を好む場合、私と同じような設定になると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
offではありませんでした。

お礼日時:2023/03/08 21:35

これだけではなんとも言えません。


・VB.NetでOption Strict Off状態、Python等、宣言しなくても使える
・#IF~、コメントアウト等で変数が使われていない
・グローバル変数、親クラスのメンバー等、別なところで宣言されている
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!