オブジェクト型変数とは?

WinActorからUiPathにRPAツール移行を検討中です。
UiPathには、WinActorにはない、オブジェクト型という変数の型があることを知りました。
これはどのような場合に使うのでしょうか?

こんにちは

UiPathというよりは.net で定義されている型です。任意の型の情報を格納することができます。

こんにちは、返信ありがとうございます!generic型変数と何か違うところはありますか?目指している方向性は同じ気がします。

こんにちは

いいえ違います。Objectは上記の説明の通り、すべてのクラスの基本クラスという位置づけです。
その位置づけの特性上、任意の型を格納できるだけです。また格納した任意の型を引き出す
ときには、基本的には明示的なキャストが必要になります。

GenericValue型のことと思いますが、こちらはUiPathでよく使うであろういくつかの型を
一つのクラス(インスタンス)で柔軟に使えるようにしたものです。そのためobjectに比べ
範囲は限定的ですが、明示的な型指定をしなくてもいくつかの演算ができることが利点かと
思います。

例えば以下例参照ください。GenericValueは加算演算子も定義され、演算時に自動で型整合を
とってくれ、結果は3になりますが、Objectの場合は、加算演算子自体が定義されていません
ので、静的エラーとなります

1 Like

オブジェクト型変数とは任意の型を格納できるが、格納した任意の型を引き出すときには、基本的には明示的なキャストが必要になる。
ーー>オブジェクト型変数とは、複数の変数の型が混在した構造体と考えればだいたい合ってますか?
例えば、「学校の生徒全体」というオブジェクト型変数には、テストの成績がInt32で格納されていたり、生徒名がStringで格納されているイメージです。

ちがいます。構造体ではなく、すべてのクラスの継承元となる基底クラスです。このあたりを正しく理解するためには、オブジェクト指向の「継承」の概念を理解する必要があります。まずは「オブジェクト指向」「継承」「基底クラス」あたりで検索いただくと良いように思えます。