質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

15397閲覧

Unity におけるtypeofはどういった使い方をするのでしょうか?

dialbird

総合スコア379

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

1グッド

0クリップ

投稿2016/04/24 23:40

おはようございます。

Unityを使っていて、変数の型を調べたいと思った時に、

C#

1void Start () { 2 print(typeof(transform.localPosition.y)); 3 }

のような使い方をすると、

error CS0246: The type or namespace name `transform' could not be found. Are you missing a using directive or an assembly reference?

というふうにエラーを吐きます。

typeofの使い方が違うのでしょうか?よくわからないので正しい使い方を教えてください。

また、似たようなものにgetType()なるものもあったのですが、こちらはどう言った用途に使うのでしょうか?

よろしくお願いいたします。

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

C#のtypeofは型に対する演算子です。
型から「型の情報」型(Typeクラス)のインスタンスを生成します。

今回のように、インスタンスが何の型かを調べるときは
GetType()を使います。

投稿2016/04/24 23:49

ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dialbird

2016/04/24 23:54

ozwkさん 早速のご返答ありがとうございます。 さっそく以下のように打ってみたのですが、 print(transform.localPosition.y.GetType()); System.Singleのように帰ってきました。 私が知りたかったのはintとかfloatとかなのですが........どういうことなのでしょうか?
ozwk

2016/04/25 02:42 編集

System.Singleはfloatのことです。 というか、32ビット浮動小数点型は .NETではSystem.Singleという名前の型で用意されています。 頻繁に使うのでfloatという別名を使えるようになっているだけです。
dojikko

2016/04/25 02:58

transform.localPosition.yはSystem.Singleという型ですよ 型(.NET Framework型):System.Single 別名(C#型):float 意味:単精度実数(32bit) 最小値:-3.402823E+38 最大値:3.402823E+38
dialbird

2016/04/27 12:17

ozwkさん dojikkoさん 返信が遅くなってしまい誠に申し訳ありません! そうだったのですね。逐一調べていく必要性があるみたいです。 ありがとうございます! お二方ともにお世話になったのですが、お先に答えていただいたozwkさんをベストアンサーにさせていただきます。 重ねて、本当にありがとうございました。
guest

0

typeof (C# リファレンス)
は読まれましたか?

投稿2016/04/24 23:50

dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dialbird

2016/04/25 00:33

dojikkoさん ご返答ありがとうございます。 拝読はしてみたのですが、結局よくわからないのです........ type型を使いたくても error CS0246: The type or namespace name `Type' could not be found. Are you missing a using directive or an assembly reference? というエラーが出て弾かれてしまうのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問