私はJSを勉強した後に.Netのプログラマになったので、どの言語にもオブジェクト(JS)みたいな概念があると思っていました。
ですので、JSのオブジェクトみたいなのが、.netにはない?
(※.netにも似ているデータ構造は用意されています!)
そもそもオブジェクトってなに?と初期はなったのでまとめています。
結論から言うと、以下3つの単語をまとめましたが、それぞれすべて違う意味で使われます。
1.オブジェクト
2.オブジェクト型
3.JSのオブジェクト
1.オブジェクト
特にオブジェクト指向の言語で使われる用語で、誤解を恐れず書くと、クラス、インスタンスのことです。
何かしらを作り上げる工程をプログラム。そのプログラムが動いて出来上がったデータのことをオブジェクトといいます。
ネット上でも結構曖昧に使われているので深堀するとわけわからなくなります。
とにかく、「プログラムされて出来上がった結果物」という理解をしておけば大体意味が通ります。
2.オブジェクト型
データ型の1種。
オブジェクト型は全型(String等の変数定数で使う型からクラス型まで。とにかく全て。)なんでも入ります。
型の種類はクラス型(参照型)。
基本的に、オブジェクト型はオブジェクト型のままで使用せず、そのオブジェクトを違う型に変更、または勝手に変更されて初めて使用されます。
重要なのは、オブジェクト型を宣言して使用するのは推奨されません。
'これは推奨されない
Dim object as Object
何故なら、以下2点です。
1.処理が遅くなる 2.エラーに気づくのが遅くなる
※ただ自分の職場ではたまに宣言して使っているのを見ます。
3.JSのオブジェクト
JSのオブジェクト型の一種で、格納するデータ型を統一する必要のない便利な連想配列です。関数も入ります。
ここからはVB,C#との比較になりますが、
この二つの言語にも、データ型を気にせず格納できるタプルや匿名型が用意されています。
(匿名型はスコープ内でしか使用できませんが..)