Unity(C#)でメソッド外、内で変数を宣言する事の違いを知りたいです。 初心者です。

C言語関連 | プログラミング95閲覧xmlns="http://www.w3.org/2000/svg">250

ベストアンサー

0

なるほど。スコープ(初耳でした)を優先にどこで宣言するのを決めるのが一般的なんですね。大変申し訳ありませんが重ねて質問よろしいでしょうか? 例えのUpdateはUnityだと(すいませんUnity上のC#しか存じませんので)呼ばれている限り継続的に処理し続けるメソッドで、処理の度にint xという宣言がされてしまうと思うのですが、それでもスコープ重視で問題ないほど影響はないものなのでしょうか? 回答者様の意を汲めていない返信かもしれないですがよろしくお願いします。

ThanksImg質問者からのお礼コメント

プロファイラとはそれまた初耳でした。なんだかわかりませんがとても便利そうというか今後のプログラムの書き方そのものがガラリと変わりそうなので早速活用してみたいと思います。 >基本的に変数はスコープを基準に宣言するのが望ましい 改めてスコープの事は自身で調べてみますが基本はその方向でやってみます。 明確かつとことん目線を私に下げて教えて下さりありがとうございました。とても助かりました。失礼します。

お礼日時:2/24 1:09

その他の回答(1件)

0

基礎をまっっっっったく理解してませんね。 メソッド内で宣言…おそらく、『ローカル変数』に相当し、 もう一方が『フィールド』でしょうね。 フィールドにあるのは『メモリ削減』とかそういうのではないです。 前提自体が違います。 また、意味なくフィールドにするのも考え物です。 それって、C言語の『グローバル変数』と一緒だからです。 http://blog.livedoor.jp/crackstars/archives/1497887.html だから非推奨。 でもC#とかでいうフィールドはグローバル変数の代わり…ではないです。 そもそもオブジェクト指向って何でしょうか。 これが理解できていないとわからないはずです。

オブジェクト指向(以降, OOP)は、 『データ(= フィールド)と処理(= メソッド)をひとまとめにした、オブジェクト』なるものを中心に見る発想法です。 フィールドとは、『オブジェクトが管理・処理するデータ』、 メソッドとは、『オブジェクトが行う操作・処理』です。 IoFile file = new IoFile( "ファイル.txt" ); file.write( "hello" ); みたいにして、『fileさん、この"hello"っていうデータを書き込んでね』っていう感じです。 オブジェクトだけが担当するデータと処理を知っています。 だから外部からは基本的にデータにアクセスする事はしません。 (できるにはできるが…)