トップページ > プログラム > 2014年06月07日 > ylifU+oO

書き込み順位&時間帯一覧

6 位/234 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000200000000000100227



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
ふらっとVisual C#,C♯,C#(初心者用) Part111

書き込みレス一覧

ふらっとVisual C#,C♯,C#(初心者用) Part111
723 :デフォルトの名無しさん[sage]:2014/06/07(土) 07:23:16.31 ID:ylifU+oO
http://pastebin.com/qGsLgJvv

nullや未定義的なことができたら、
最後のif(isValid)をif(null != type)みたいにしてisValidを無くしたいです。

型のある言語に慣れてないせいかもしれませんが、
変な書き方をしちゃってると思っています。
どう書くのがいいんでしょうか?

ちなみにUnity用のコードで、usingやクラス定義は省略してます。
ふらっとVisual C#,C♯,C#(初心者用) Part111
726 :デフォルトの名無しさん[sage]:2014/06/07(土) 07:50:41.30 ID:ylifU+oO
>>725
あざます。
.HasValueと.Valueってのがあるんですね。
初期値をnullにできました。

isValidの初期trueでdefalut:でfalseにするのも、確かにそのほうがいいですね。
今回は、switchの中で決まるはずのtypeに、警告つぶすために2行目で

PrimitiveType type = PrimitiveType.Sphere;

しちゃってたのが気になるので、

PrimitiveType? type = null;

にしてisValidは消そうと思います。
ふらっとVisual C#,C♯,C#(初心者用) Part111
729 :デフォルトの名無しさん[sage]:2014/06/07(土) 19:18:29.79 ID:ylifU+oO
>>727
2行目のPrimitiveType type = PrimitiveType.Sphere;はあまり気にしなくてもいいんですかね・・
まぁ確かに動きとしては問題ないんですけど。

C#のことぜんぜん分かってないんですが、そんなことをしなくてもってことは、
Nullableはあまり積極的に使わないほうがいい感じなんですか?

列挙体をググってみたんですが、valueが数値系に限定されたkey valueな何かという理解であってますか?
もしそうなら、PrimitiveType.Sphereなどの中身が数値なら、使えそうですね。
ふらっとVisual C#,C♯,C#(初心者用) Part111
735 :デフォルトの名無しさん[sage]:2014/06/07(土) 22:41:24.66 ID:ylifU+oO
>>727 >>734
あざます。
C#っぽいというか、C#ではこうするといった感覚もまだ持ててないので助かります。

列挙体は、まだいまいち飲み込めてない感じですが、実際に使って慣れないと分からなさそうな気がしています。

enum fooEnum{ foo = 5, bar = 10 };
Enum.Parse(typeof(fooEnum), "foo") // たぶんenum型? fooEnumもenum型?
(int)Enum.Parse(typeof(fooEnum), "foo") // 5

ただ、Enum.TryParse()は、Unityが乗っかってるmonoのバージョンが2.6.5で、どうやら使えないみたいです。
ふらっとVisual C#,C♯,C#(初心者用) Part111
736 :デフォルトの名無しさん[sage]:2014/06/07(土) 22:42:39.68 ID:ylifU+oO
http://pastebin.com/Ph7JksAf

もうひとつ質問させてください。
薄々、慣れているJavaScriptとか他の言語での考え方にとらわれてる気がしてますが、
C#でならこう書くというのが分かりません。

やりたいことは、fooメソッドの引数によって、作るオブジェクトの名前と、設定するTypeが変わるので、
それをハッシュテーブルに定義して置きたいというものです。

Dictionary<string, Dictionary<string, string>> のようにして多次元Dictionaryができる見たいですが、
2次元目はstringとintが混ざるので、匿名型にしてみたところでつまずいてます。
ふらっとVisual C#,C♯,C#(初心者用) Part111
739 :デフォルトの名無しさん[sage]:2014/06/07(土) 23:20:04.95 ID:ylifU+oO
レスあざます。

>>737
http://pastebin.com/bRKcDjjG

objectに入れるってこういう感じですか?
いわれてnew objectできる事を知ったんですが、
ググってみたところ、複数の値を持たせるにはobjectの配列になるみたいなので、やってみました。
が、fooメソッド内では配列として認識されてないっぽいエラーメッセージが出ました・・・

>>738
ちょっとした使い捨てのデータのつもりだったんですが、
クラス作るしかないんでしょうか?
C#では作っていくのが自然なんですか?
ふらっとVisual C#,C♯,C#(初心者用) Part111
743 :デフォルトの名無しさん[sage]:2014/06/07(土) 23:59:38.62 ID:ylifU+oO
>>740 >>741 >>742
あざます。
C#、というより静的な言語難しいですね。
JavaScriptなどのスクリプト言語しか経験がないので、C#の考え方を身に着けないと、
設計の見直しもままならなさそうですね。
これは、じっくり考えないといけなさそう。

一応、やりたいことは、>>723 とほぼ同じ何ですが、オブジェクト名とタイプの2つが必要になって、
今回の試行錯誤を始めました。

GameObject gObj = new GameObject(obj.Name);
gObj.type = obj.Type;

ざっくり書くと、
用意されたパターンの中から、ユーザー入力でパターンを指定してGameObjectを生成したいです。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。