C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: var 変数名=(クラス)クラス.フィールド という文


(過去ログ 136 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■79921 / inTopicNo.1)  var 変数名=(クラス)クラス.フィールド という文
  
□投稿者/ DOZO (16回)-(2016/05/28(Sat) 20:31:58)

分類:[C#] 

平素お世話になります。

https://github.com/altseed/STGLecture/blob/master/Document/cs/19.md 
このサイトで見た下記ステートメントについて質問させていただきます。



-----------------------------------
var scene = (GameScene)Layer.Scene;
-----------------------------------


このステートメントの"(GameScene)"
という部分が何をしているのかわかりません。


私が理解していること

・var型の変数sceneの宣言である。
・GameSceneというクラスが存在する。
・Layerという名のクラスが存在する。
・SceneはLayerクラスのプロパティである。

 
 ご存知の方いらっしゃいましたらご教授お願いします。
引用返信 編集キー/
■79922 / inTopicNo.2)  Re[1]: var 変数名=(クラス)クラス.フィールド という文
□投稿者/ Azulean (644回)-(2016/05/28(Sat) 20:51:45)
No79921 (DOZO さん) に返信
> -----------------------------------
> var scene = (GameScene)Layer.Scene;
> -----------------------------------
> このステートメントの"(GameScene)"
> という部分が何をしているのかわかりません。

その付近に書いてある「シーンを取得し、GameSceneクラスにキャストして」にあたります。
なぜキャストが必要かという部分がわからないとなると、Scene プロパティの型の意識、継承関係を学ぶ、復習する必要があるかもしれません。


> ・var型の変数sceneの宣言である。

var は型ではありません。
右辺の値を元に、コンパイル時に型を自動決定するためのキーワードです。
右辺は GameScene 型にキャストすると書いてあることから、コンパイル時に scene 変数は GameScene 型だと判定されます。


いきなりゲーム作りという行為を否定するつもりはないですが、一気にジャンプしすぎると、自分の知識と、書かれているコンテンツとの知識の差に翻弄されると思います。
特に外部のフレームワークを利用するコンテンツだと、足下固めしていないと、言語仕様を理解できていないのか、フレームワーク独特の常識を知らないだけなのか、わからなくなりますので。
引用返信 編集キー/
■79924 / inTopicNo.3)  Re[2]: var 変数名=(クラス)クラス.フィールド という文
□投稿者/ DOZO (18回)-(2016/05/29(Sun) 00:01:00)
2016/05/29(Sun) 15:25:58 編集(投稿者)

No79922 (Azulean さん) に返信


返信ありがとうございます。

 varは型ではないのですね。専門用語が身についていないため混乱を招いてしまい申し訳ありません。
 "プロパティの型"という考え方を理解していないようです。学習し直します。 


>いきなりゲーム作りという行為を否定するつもりはないですが・・・

 仰るとおりです。C#の理解不足なのか、ゲームエンジンの知識不足なのかわからず、不安の中で学んでいます。今の私は入門書(猫でもわかるC#)を一通り学び終えたところです。しかし入門からゲーム作成の段階へ導いてくれる資源(書籍・指導者)が見つからず、一足飛びにゲームプログラミングを学んでいる次第です。そのため、このような掲示版で皆様にご教授頂いています。


この度はご回答頂きありがとうございました。今後共よろしくお願いします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -