- ふらっと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を生成したいです。
|