はじめに(なぜ今 VB.NET 4.8.1か?)
こんにちは、 @uehatsu です。先日VB.NET 4.8.1を業務で使うことになったので、普段使っているPHP 8.xや、TypeScript 5.xとの言語仕様比較をしてみたいと思い立ちまとめ始めました。結構なボリュームになったので公開してみます。
PHP 8.x / TypeScript 5.x / VB.NET 4.8.1 言語仕様比較
第1章 概要
- 1.1 各言語の設計思想と歴史
- 1.2 実行環境(インタプリタ/コンパイラ/ランタイム)
- 1.3 型システムの分類(動的型付け/静的型付け)
第2章 基本構文
- 2.1 プログラム構造とエントリーポイント
- 2.2 文の終端(セミコロン/改行)
- 2.3 コメント記法
- 2.4 識別子と命名規則
- 2.5 大文字・小文字の区別
第3章 データ型
- 3.1 プリミティブ型(数値、文字列、真偽値)
- 3.2 null/undefined/Nothing の扱い
- 3.3 型推論
- 3.4 型変換(暗黙的/明示的)
- 3.5 リテラル記法
第4章 変数と定数
- 4.1 変数宣言(var/let/const/Dim/Const)
- 4.2 スコープ(ブロック/関数/モジュール)
- 4.3 ホイスティング
- 4.4 参照型と値型
第5章 演算子
- 5.1 算術演算子
- 5.2 比較演算子(厳密等価/緩い等価)
- 5.3 論理演算子
- 5.4 文字列結合演算子
- 5.5 Null合体演算子(??/?.)
- 5.6 三項演算子/If演算子
第6章 制御構造
- 6.1 条件分岐(if/switch/Select Case)
- 6.2 ループ(for/foreach/while/Do Loop)
- 6.3 例外処理(try-catch/Try-Catch)
- 6.4 パターンマッチング
第7章 関数とメソッド
- 7.1 関数定義と呼び出し
- 7.2 引数(デフォルト値/可変長/名前付き)
- 7.3 戻り値と型注釈
- 7.4 オーバーロード
- 7.5 アロー関数/ラムダ式
第8章 クラスとオブジェクト指向
- 8.1 クラス定義
- 8.2 コンストラクタとデストラクタ
- 8.3 プロパティとフィールド
- 8.4 アクセス修飾子(public/private/protected)
- 8.5 静的メンバー(static/Shared)
- 8.6 継承とオーバーライド
- 8.7 抽象クラスとインターフェース
- 8.8 トレイト/ミックスイン
第9章 ジェネリクス
- 9.1 ジェネリック型の定義
- 9.2 型制約
- 9.3 共変性と反変性
第10章 コレクションと配列
- 10.1 配列
- 10.2 連想配列/オブジェクト/Dictionary
- 10.3 リスト/Set/Map
- 10.4 イテレーション
- 10.5 LINQ/配列メソッド
第11章 文字列操作
- 11.1 文字列リテラル(シングル/ダブルクォート)
- 11.2 文字列補間/テンプレートリテラル
- 11.3 エスケープシーケンス
- 11.4 マルチバイト文字の扱い
第12章 非同期処理
- 12.1 Promise/async-await
- 12.2 Async/Await(VB.NET)
- 12.3 コールバック
- 12.4 並行処理とスレッド
第13章 モジュールと名前空間
- 13.1 名前空間/Namespace
- 13.2 モジュールシステム(import/export/Imports)
- 13.3 パッケージ管理
第14章 属性とメタデータ
- 14.1 属性/Attribute(VB.NET)
- 14.2 アノテーション(PHP)
- 14.3 デコレータ(TypeScript)
第15章 列挙型
- 15.1 Enum定義
- 15.2 数値型/文字列型Enum
- 15.3 フラグEnum
第16章 Null安全性
- 16.1 Nullable型
- 16.2 Null条件演算子
- 16.3 Null合体演算子
- 16.4 厳格なNullチェック
第17章 エラーハンドリング
- 17.1 例外クラス階層
- 17.2 カスタム例外
- 17.3 エラー伝播
- 17.4 Result型パターン
第18章 リフレクションとメタプログラミング
- 18.1 型情報の取得
- 18.2 動的メソッド呼び出し
- 18.3 コード生成
付録
- A. 予約語一覧
- B. 演算子優先順位
- C. 型変換対応表
- D. 構文比較早見表