1 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 20:50:08.06 ID:IGV3Viy6.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/tech/1436344868/ ■関連スレ C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/tech/1443271409/ ■コードを貼る場合は↓を使いましょう。 ideone.com/
817 名前:デフォルトの名無しさん [2015/11/14(土) 18:56:20.98 ID:OxpghztZ.net] 今unityでゲームを作ってるんですがc#のクラスの配列について質問です こういうコードがあるとします public class Aa{ int i; string b; public Aa(int iH,string bH){ i=iH; b=bH; } } Aa [] aa=new Aa[]{ new Aa(10,"aaa"), new Aa(20,"bbb") }; これでコンパイルは通るのですがこの後半に書かれたクラスの配列の初期化が なんとも気持ち悪くて仕方がありません これから何百行もクラスの初期化のコードを書くつもりなのでnewとかAaとかが無意味に並んでる辺りが 非常に醜いと思います もっと初期化を簡略化する書き方はないでしょうか?
818 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:13:53.28 ID:nPG81Nq1.net] 設定ファイルを別に用意して for ループかなにかでインスタンス作るのはダメなん?
819 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:15:20.30 ID:Ldro2YxR.net] >>791 ファイルに出せ
820 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:16:41.03 ID:x0D1OM5m.net] >>791 それが無駄だと全然思わないんだけど、 static Aa[] ToAaArray(params string[] args){...} みたいなメソッドでも用意するとか。
821 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:21:51.68 ID:0hbObyK2.net] ゲーム作ってますと何百個のクラス作ってますがどうしたらいいでしょうか はワンセットになりつつある
822 名前:デフォルトの名無しさん [2015/11/14(土) 19:22:29.23 ID:OxpghztZ.net] >>792 >>793 ファイルに出すというのはテキストファイルを別に作って読み込むという方法でしょうか? それも考えたんですけどそれだとテキストファイルを作る時引数の入力補完が効かなくなって かえって間違えやすくなると思うんですけど >>794 入力補完を利かすため引数のデータをデータ型通りの形で並べたいんですけどどうしたらいいですかね
823 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:35:41.52 ID:zC8KxVmn.net] >>791 var aa = new [] { new Aa( 10 , "aaa" ) , new Aa( 20 , "bbb" ) };
824 名前:デフォルトの名無しさん [2015/11/14(土) 19:39:17.01 ID:OxpghztZ.net] >>797 外側減らしたって意味無いすよw 中が圧倒的に多いんだから
825 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:44:59.12 ID:zC8KxVmn.net] 外部にテキストファイル、例えばcsvなんかを用意して読み込むようにするか、 もしくは、partial class を作って別ファイルにメソッドを隔離しておくか。
826 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 20:08:15.99 ID:nPG81Nq1.net] >>796 入力補完? 入力候補が決まってるなら、EXCEL でも使ってセルの入力規則のリストでも利用すればすむ事じゃん。 こっちの方が列で管理出来るから引数の順番とか間違えなくて(その意味では)便利だろ。 別にお前に限ったことじゃないけど、条件の後出しはよせ。正直ムカつく。
827 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 20:10:22.93 ID:FGqqqIfB.net] >>798 テキストファイル読み込んで作るか、もしくはnewをいっぱい書くのが普通だと思うけど それでも無理やり減らそうと考えるならこれかな。 var aa = new List<Aa>(); var elements1 = new[] { 10, 20, 30 }; var elements2 = new[] { "aaa", "bbb", "ccc" }; for(int i = 0; i < elements1.Length; i++) { aa.Add(new Aa(elements1[i], elements2[i])); } これだとタプルを分解して書かないといけないから不満が残るけど (10, "aaa")のような形でインスタンスを作れない以上どうしようもない気がする。 最近C#触っていないからもっといい方法があるかもしれないが。
828 名前:デフォルトの名無しさん [2015/11/14(土) 20:18:02.62 ID:OxpghztZ.net] >>800 基本的にunityのmonodevelopで完結させたいんだよね monodevelopは使い方も知ってるし >>801 それだと例えば1番目なら1番目の項目の書いてる場所がバラバラになってしまって とても管理出来そうにない みなさんありがとうございました 自分が今まで致命的な勘違いをしてた訳じゃないとわかっただけでも収穫でした newとクラス名連打で作りたいと思います
829 名前:デフォルトの名無しさん [2015/11/14(土) 20:23:51.44 ID:vsCbl3R/.net] テキストファイル作る時の引数って意味がわからん。 オブジェクト作成時に値チェックかけて、 整合性が保証されてる状態で書き出せばいいだろ。
830 名前:デフォルトの名無しさん [2015/11/14(土) 20:27:37.98 ID:OxpghztZ.net] >>803 それだと実行させなきゃエラーを出せない unityのmonodevelopは初期化の時引数の型が間違ってたら書いたその場でインフォメーションしてくれる
831 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 20:57:41.24 ID:Qc99f8i6.net] >>804 単体テスト書けば良いんじゃないの。書いたその場で、とは行かないが。
832 名前:デフォルトの名無しさん [2015/11/14(土) 21:00:39.59 ID:vsCbl3R/.net] >>804 モデルのオブジェクト(メンバの型)を経由するのにどう引数間違える可能性あるんだよ?
833 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 00:43:58.51 ID:PNJd8cmY.net] >>791 var bullets=Enumerable.Range(0,100).Select(i=> new {Id=i,Num=10,Str="100" });
834 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 01:30:33.23 ID:8pwk8L+v.net] it.srad.jp/story/15/11/13/210208/ 混迷極まってるな、MS工作員にはモバイル用は別OSにするって発想はでないのかね? 別に、コアコードは変わる訳じゃなかろうに、上っ面の部分だけモバイル向きに作り替えて アップデートのタイミングをそれぞれに調整すれば良いだけ モバイルで流行らないのは、単にWindows8に商品力が無いだけだ デスクトップ向きはWindows7に戻しちまえばいいのに Windows10とか誰も欲しがらないだろ・・・
835 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 01:31:54.15 ID:PNJd8cmY.net] static void Main(string[] args){ //AaValues.txt //10,aaa //20,bbb AaFct(File.ReadLines("AaValues.txt").Select(l=>l.Split(',')));} private static void AaFct(IEnumerable<string[]> values){ using (var f = File.AppendText("Aa.cs")){ foreach (var v in values){ f.WriteLine($"new Aa({v[0]},\"{v[1]})\",");}}}
836 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 02:56:43.32 ID:m6nrC5L1.net] やっぱりLINQ最高
837 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 06:35:48.77 ID:Ro5/nML1.net] Formをある程度デザインし終わった時に、ウィンドウそのもののフォントをUIゴシックからメイリオに切り替えると サイズや配置が変わって一気に崩れるんだけどなんで? そもそも個別のコントロールにフォントを設定していたらウィンドウのフォントって触る必要がないもの? みなさんフォントは何使ってるんだろう モリサワとか入れてるんだろうか
838 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 07:24:16.58 ID:m7boHCrI.net] テキストの幅がちょっと変わっただけで崩れるようなデリケートなデザインを作らないのが基本 業務アプリとかでクソ細かい要求を受け入れなきゃいけないなら全部MS Pゴシック
839 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 07:33:24.90 ID:wjlQu+Ap.net] >>811 まずFontはアンビエントプロパティ。特に設定してない子コントロールは親のフォントを使う よってFormのフォント変えると、子コントロールのフォントも変わる。 さらにFormのAutoScaleModeはFontがデフォ。 フォントによってAutoScaleDimentionの値が変わる よって各コントロールの大きさが変わる。以上。 AutoScaleModeはDPIにしとこう
840 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 13:44:16.69 ID:Ro5/nML1.net] >>813 具体的なご指導に感謝いたします 独学でやってるとなかなかそうしたものまで及ば
841 名前:ネいので本とありがたい [] [ここ壊れてます]
842 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 14:45:22.59 ID:s1AdXoMj.net] dbプログラミングで検索するとentity framreorkと言うのが出て来るがこれは何よ?使わ無くてもいいのか?使うといいの?
843 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 14:54:00.71 ID:giTGvBPC.net] >>815 DBを扱うためのフレームワークの一つ。 何をどれぐらいの規模で作りたいかによる。 小規模なのは、適当なDBで十分、FEは、機能が多すぎてちょっとしたものに適応するには重すぎるだろう。 サーバーを必要としないようなクライアントアプリならSQLiteあたり使っておけばいい。 ORMがやりたいならDapperあたり使えばいい。
844 名前:デフォルトの名無しさん [2015/11/15(日) 15:00:11.33 ID:19LeITHM.net] 質問です enum Syurui{ a,b,c } string moji=“a”; Syurui syurui=/この部分 この部分と書いたところに変数mojiの中身を列挙型のSyurui.aに変換して syuruiに入れる処理はどう書いたらいいでしょうか?
845 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:04:30.20 ID:giTGvBPC.net] >>817 Syurui hoge = (Syurui)Enum.Parse( typeof( Syurui ) , moji ); もしくは、 Syurui hoge; Enum.TryParse<Syurui>( moji , out hoge );
846 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:04:59.41 ID:s1AdXoMj.net] >>816 詳しい説明有難うございました。 windows vpsサーバーにmysqlいれていてdbプログラミングの勉強中です。月間ページビュー1000万くらいの規模のdbアプリを目指したいです。そういう場合はEFが良いですか?
847 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:05:44.14 ID:XKYu6RGQ.net] Enum.Parseを使う
848 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:06:56.73 ID:giTGvBPC.net] >>819 その規模になると、SQLiteとかじゃ耐えれないだろうから、EF使うと良いと思う。
849 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:11:31.11 ID:s1AdXoMj.net] >>821 有難うございました。 早速やってみます。1000万pv達成出来たら報告します。
850 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:12:13.39 ID:SModPTsN.net] >>819 アクセス数よりDBの構造の規模で。 どの程度学習してるか、これから学習するのかわからないけど とりあえず簡単なものを両方のやり方で試してみるのがいいと思うよ。
851 名前:デフォルトの名無しさん [2015/11/15(日) 15:26:03.20 ID:19LeITHM.net] >>818 できました〜 ありがとうございます ちゃんと列挙型の変数に格納されて違う値入れたらエラーも出ました
852 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 16:06:04.89 ID:bBffLHE3.net] Dapper使うとして、SQL文字列を組み立てるじゃん。 stringbuilderで組み立てていったとき、 なんちゃらフラグのときは〜みたいな条件がたくさんあると if,elseとかのネストがきったなくなるんだけど、どうしたらいいんだろ?
853 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 16:38:51.59 ID:kqjPbh/t.net] SQLをシンプルにして、LINQでごにょごにょする。 かなり綺麗になる。でも、巨大なデータをメモリ上に置くことになるので これが最適かどうかはわからない。 どうしたらいいんだろう…。
854 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 16:44:09.23 ID:hXzxGHNH.net] 遅延ローディングできないんですかね
855 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 17:06:33.10 ID:kqjPbh/t.net] ユーザー情報がID、名前、年齢、パスワード、メールアドレスで管理されているとする。 IDが4バイト、名前が255バイト、年齢1バイト、パスワード255バイト、メールアドレス255バイト だとすると、1レコードで770バイト。1万人を管理するとして、7,700,000バイトつまり7MB。 メモリ数が4GBだとすると、1/600くらいをメモリが占めることになる。思ったより巨大。 例えば年齢が25歳以下のユーザーだけを取り出したいとする。 そのために、.Where(u => u.age <= 25) というLINQ式を追加する。 7MBのデータを一つずつ見ていかなければならないとすると、一つのメソッドでどれくらいの時間がかかるだろうか?
856 名前:完全に適当だが、1レコードで100万分の1秒くらいと予想。 1万人で0.01秒。つまりメソッド一つで0.01秒しかかからない。 メモリもすぐに解放される。1/600と聞くと意外と大きな割合のように思えるが、存在しているのはほんの0.01秒である。 さて、メソッドが連なっている場合はどうなるか。 一つ目のメソッドでWbereメソッドを使っているとすると、二つ目以降のメソッドでは、処理対象のレコードが少なくなる。 それは例えば1万→5000といったように。 すると当然、処理時間も減少する。上の例では0.005秒と半分になる。 対象レコード数が1万程度なら何も問題はなさそうだ。 だから僕は、効率よりもソースコードの綺麗さを取ることにする。 これが100万行とかになると、1メソッドで1秒かかることになる。流石にそれはまずいので、 SQL分にWHERE句を追加して、RDBMSに条件の絞り込みの処理を任せる。 if,elseなどを使う必要がある場合はLINQを、最初から決まっている絞り込み条件の場合はそのままWHERE句を 使用する。そうすることにより、早さを維持しながらソースコードを綺麗にすることができる。 [] [ここ壊れてます]
857 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 17:24:45.76 ID:SModPTsN.net] まあif文とこ別関数にしてメソッドチェーンみたいにしてもいいしね DBは別のサーバにあることが多いから通信も考慮しないとね
858 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 17:25:22.41 ID:giTGvBPC.net] 100万件レコードがあったとして、何も100万件全部読み出す必要はないし、そんなことするなら設計を見直すべきだろう。 WHERE句とLIMIT句を指定してレコード数を制限して必要な分だけ読み込めばいい。
859 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 19:36:39.93 ID:CvRB/UR5.net] メソッドチェーンの使い所ってどんな時?
860 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 19:55:51.71 ID:5wcT3tcL.net] >>831 使いたい時に使えばいい LINQがいい例 >>819 本当にパフォーマンスが必要ならEFなんてやめとけ EFは文字列でSQLを作りたくない時に導入するもの
861 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 20:12:14.42 ID:s1AdXoMj.net] >>832 そういう事ですか! 文字列で select 文を書く普通のやり方で十分なのでef使うのは中止します。
862 名前:デフォルトの名無しさん [2015/11/16(月) 12:51:54.53 ID:Ffgt4uY8.net] 質問です 文字列を変数名として扱う方法はありませんでしょうか? 例 int a=0; string amoji=“a”; kansu(ref ここ); void kansu(ref int a){ Debug.Log(a); } 「ここ」と書いた場所にstring型の変数amojiの内容である”a”から変数aを用いる ためのコードの書き方はどうしたらいいでしょうか 変数のリストをテキストファイルで管理しようと思っているのでこういうのが 必要になりました
863 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 12:55:17.48 ID:AqzFwWr1.net] まっ、その気になればやってやれん事はないのだが、やめろ
864 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 12:58:11.19 ID:Eod8iMW6.net] >>834 これじゃダメ? int Kansu(string amoji){ return "a"→aの処理; } テキストファイルから読み込んで変数リストの管理を行うなら別のやり方になりそうだけど
865 名前:デフォルトの名無しさん [2015/11/16(月) 13:01:18.51 ID:Ffgt4uY8.net] >>836 その「"a"→aの処理」っていうのはどうやるんでしょうかね?
866 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:05:25.95 ID:mRFC3bAE.net] 何故そんなことをしたいのかわからないが… やめとけ。 ろくなことにならないからw
867 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:14:01.22 ID:6H4dK92G.net] >>834 javascriptなら出来るんじゃないか?
868 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:29:25.05 ID:RuGtzWomJ] mapを使えばできる
869 名前:デフォルトの名無しさん [2015/11/16(月) 13:16:03.85 ID:Ffgt4uY8.net] >>838 そんなダメですかw 誰もやってない方法ならやめときます >>839 c#では一般的なやり方じゃないようですね 別の方法を考えます
870 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:35:59.43 ID:htc6fDTL.net] C#関係なしに一般的ではないと
871 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:36:29.71 ID:vMsjPxDw.net] ev
872 名前:alが使いたいという話でもないのか [] [ここ壊れてます]
873 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:50:11.34 ID:p+PVyYp5.net] ダーティーハックが尊ばれる下痢便言語ではよくある手だろ
874 名前:デフォルトの名無しさん [2015/11/16(月) 14:39:35.24 ID:Ffgt4uY8.net] じゃあこういうのはどうですか? public delegate void Aa(); Aa a; string kansuu=“Bb”; public void Bb(){ Debug.Log(“Bb”); } a=//ここにaに文字列kansuuの中身の”Bb”を関数Bbに変換するコードを入れる a();//ここでBb()を呼び出す
875 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 14:49:16.58 ID:mRFC3bAE.net] やろうとしていることが根本的にズレているんだよ
876 名前:デフォルトの名無しさん [2015/11/16(月) 14:52:29.58 ID:Ffgt4uY8.net] >>846 要するに文字列から関数や変数にアクセスしたいって事なんですけど そんなにおかしいですか 文字列から直接アクセスできないとなれば変数や関数を列挙型でリストアップして 使うときはswitch文で分岐なんていう情けないコードにしかならないと思うのですが
877 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 15:01:52.67 ID:mRFC3bAE.net] private readonly Dictionary<string,Func<object>> values = new Dictionary<string,Func<object>>(); Hoge(){ string x = 100; this.values[nameof(x)] = () = x; int ans = this.GetValue<int>( nameof( x ) ) * 2; Console.WriteLine( ans ); } T GetValue<T>( string name ) => (T)this.values[name]?.Invoke(); みたいなことをやれば辛うじてできなくはないが、保守性も効率も最悪なので普通はやらない。
878 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 15:03:36.05 ID:vMsjPxDw.net] Dictionary に入れといて呼ぶとかでいいじゃん、、 まあReflection使えばできる public static void Bb() { Debug.WriteLine("Bb"); } void test() { Type thisType = GetType(); string kansuu = "Bb"; MethodInfo mi = thisType.GetMethod(kansuu); mi.Invoke(null, null); } とか、、、delegateでもいけるかな
879 名前:デフォルトの名無しさん [2015/11/16(月) 15:13:31.76 ID:Ffgt4uY8.net] >>848 >>849 Invokeというメソッドを今初めて知ってよくわからないんですけど どうもかなり遅いらしいですね ゲームを作っているのでそれでは都合が悪いです やっぱりずらずらとリストアップする方法でやりたいと思います ありがとうございました
880 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 15:14:46.20 ID:Eod8iMW6.net] これID:OxpghztZだろw
881 名前:デフォルトの名無しさん [2015/11/16(月) 15:21:13.63 ID:Ffgt4uY8.net] >>851 バレちゃったw 結局テキストファイルを読み込んでやる事にしたんです それでテキストファイルに変数名や関数名を書きたいなぁと思って質問しました
882 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 15:39:44.62 ID:mRFC3bAE.net] ActionとかFuncのInvoke自体は、普通のデリゲートコールなので遅くない。 Action a => () => { } ; a(); と a.Invoke() は、同じことをやっている。 null伝播使うとき、 ?.() という書き方ができないので、?.Invoke() にしてあるだけだ。 もちろん、普通のメソッドに比べれば、インライン化されないなどの僅かな差はあるだろうが、気にするほどではない。 遅いのは、>>849 がやってるようなリフレクションだ。 こいつは、桁違いで遅い。ExpressionTreeで実行時にデリゲートを構築してやれば、速度の問題はある程度解消できるだろう。 あとは細かいところで変数のキャプチャ、ボックス化が生じてパフォーマンス低下につながることになる。
883 名前:デフォルトの名無しさん [2015/11/16(月) 15:46:42.66 ID:Ffgt4uY8.net] >>853 正直初心者なのでその区別もつかないです dictionaryとかならわかる範囲なのでそれでも使おうかなと思ってます 多少コードが冗
884 名前:長になっても [] [ここ壊れてます]
885 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 16:12:09.04 ID:4iBaA+8B.net] 関数と文字列が予め決まっているなら、switch文で分岐して関数呼ぶのが早いだろうが
886 名前:デフォルトの名無しさん [2015/11/16(月) 16:42:18.72 ID:Ffgt4uY8.net] >>855 やっぱりそれが一般的なんですかね 別のゲームにも再利用しやすい仕組みにできないかなと色気を出してしまったのも 今回こういう質問をした理由なんですけども
887 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 16:46:44.96 ID:mRFC3bAE.net] よくわかっていないうちは、今後再利用しようなんてやめとけ。。 再利用しようとしたときには、(誰だ、この糞設計したのは!糞コード書いたやつ死ねよ?…自分か…)ってなってゴミと化すだけだから。
888 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 18:04:07.44 ID:/wMXw7Lm.net] 型が決まってて値取り出したいだけならシリアライズで十分とも思うけども。
889 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 18:40:32.23 ID:LDaVIeza.net] >>858 「変数のリストをテキストファイルで管理しようと思っている」って>>834 で書いてるから、変数の値は保存してないんじゃねえの? 全く意味不明だけど
890 名前:デフォルトの名無しさん [2015/11/16(月) 19:19:50.00 ID:Ffgt4uY8.net] >>858 シリアライズとはどういう機能なんでしょうか? ググってもイマイチわからなかったのでこの件とどういう関係があるのか教えてもらえませんでしょうか
891 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 19:19:59.69 ID:/wMXw7Lm.net] >>859 あ、そうか、外してたな
892 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 19:37:02.75 ID:mRFC3bAE.net] シリアライズというか、設定値なりパラメータをソースコードじゃなく外部で管理したいだけなら、XMLとかJSONとかで読み込めば良いだけだろう。
893 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 19:38:00.43 ID:diuJbJ+U.net] >>860 シリアライズはオブジェクトを通信で送るのに使う ローカルファイルへの保存に使うのはドツボにはまるのでやってはいけない XmlSerializerみたいなスキーマありきの奴ならいいけどね
894 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 19:42:53.32 ID:mRFC3bAE.net] >>863 設定データの保存用にBinaryFormatter使ってたら、古いデータとの互換性取れなくなってドツボにはまったことあるわ。
895 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 20:34:38.26 ID:HIZPDz5u.net] クソみたいなゲーム作ってないで宿題やってクソして寝ろ
896 名前:デフォルトの名無しさん [2015/11/16(月) 20:45:10.02 ID:Ffgt4uY8.net] >>865 うるせーなw 大きなお世話だw
897 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:21:51.30 ID:bfEVOxks.net] >>ID:Ffgt4uY8 こういう人って必要な分だけネットで覚えたから知識に穴だらけ 基礎もままならない状態だから、ある目的のためにダメな手段を 思いつきでやろうとするから>>834 のようなことになる newを100回書こうとしたりね 目的を自分の中で明確にして質問すればいいのにな ここにいる人も気づいているのに からかい半分に間違った手段のために律儀に答えようとしてるし みんなもわかっているんだろ、本当に彼がしたいことを 焦る気持ちはわかるけど、まずは基礎だよ 基礎がしっかりしてないと、コピパーになるよ
898 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:27:42.07 ID:LDaVIeza.net] 変数のリストをテキストファイルで管理ってのが理解不能すぎて解決策が出せないんだよな 変数名しか管理しないんならソースコードに直接書けばいいとしか思えないんだけど、多分深い理由があるんだろうからテキストファイルから変数を取得する方法を教えるしかない
899 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:41:27.09 ID:p+PVyYp5.net] 別に間違ってる奴は間違ってるまま突っ走ってくれて構わんだろ 垂れ流しのウンコを擦り付けてくるなよってだけ
900 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:43:40.13 ID:p+PVyYp5.net] DSLを設計するのが好きな奴と関わりあいになりたくない
901 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:48:59.73 ID:Eod8iMW6.net] 皆律儀に構ってやるから居ついちゃうんだよな
902 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:50:19.96 ID:mRFC3bAE.net] たぶん設計とか何も考えてないと思う… おそらく、変数というものを最近知ったんだろう。 だが、クラスを自分で定義したり、Dictionaryを使ったりする方法は知らないと思われる。
903 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 23:01:20.17 ID:AqzFwWr1.net] どうしても必要不可欠になったとか これができなきゃプロジェクト崩壊、ヤバイ死ぬとか そういう話なら、答えてやらんでもないがね >文字列を変数名 最初から使用を前提にするとか有り得ない
904 名前:デフォルトの名無しさん [2015/11/16(月) 23:41:45.35 ID:Ffgt4uY8.net] ボロクソ言ってくれるよなぁw 俺のやりたい事はアドベンチャーゲームに近いんだけどゲームを「シナリオ単位」 に分けてそのシナリオを遷移させる事で ゲームを進めるという仕組みにしたかったんだよ で、最初はシナリオクラスをたくさんnewして並べようと思ったんだけどそれはやめて テキストファイルから読み込んでやる事にした それでそのシナリオの中には○○関数を呼び出したいとか○○変数を使いたいみたいなのも 含まれる それでテキストファイルの中にaaaaと書いてあって それを読みだしてaaaa変数が使えたら便利なんじゃないか? というのが今回の質問の趣旨
905 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 23:46:31.65 ID:diuJbJ+U.net] 「シナリオプレイヤーを作る」と割り切って考えてシナリオとプレイヤーの仕様を明確にすれば、 変数を文字列で選ぶようなメタな仕組みは必要ないと分かるはず 初心者はそこをごっちゃにするからおかしくなる
906 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 23:59:23.74 ID:bfEVOxks.net] >>874 わかるよーADV用のスクリプト言語開発したいんでしょ 吉里吉里みたいなもんでしょ UnityだとJokerScriptというのがあるみたいだね 自作のゲーム用フレームワークを作って開発効率あげようってことでしょ ゲーム制作は専門外なのでぼくは答えられませんけど がんばってね!
907 名前:デフォルトの名無しさん [2015/11/17(火) 00:06:19.08 ID:R+1w9ien.net] >>875 設計がおかしいというのは薄々わかってました 今回おかしいと言われてようやく明確な自覚を持てました それがわかっただけで有意義な質問だったと思います ありがとうございました >>876 そういう事なんですよ スクリプトというほど高等な物じゃなくて簡易的なものなんですけど
908 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 00:10:46.96 ID:0HyN1ztj.net] はじめからどういう目的があるのかを質問に含めないから厄介なことになるんだ。 BASICみたいな感じで簡易スクリプト言語を組んでしまえばいい。 MSG 何かのメッセージ MSGEND SET A=100 GET B,A みたいなやつを決めて、C#側での変数管理は、Dictionary<string,object> values;のようなディクショナリでまとめておいて、 SET命令が出てきたら、values["A"] = 100。 GET B,Aなら、values["B"] = values["A"] って感じで実行するように組んでおけばいい。
909 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 00:16:26.67 ID:WTj4x1Uo.net] >>877 アスペなのかもしれないから教えておくけど、875はそういうスクリプトを使えってことを嫌味を込めて言ってるんだと思うぞ 車輪の再発明は無駄だからな
910 名前:デフォルトの名無しさん [2015/11/17(火) 00:19:58.23 ID:R+1w9ien.net] >>878 その考えで根本的に作り直したいと思います まだ準備段階なのでやり直しが効きますので >>879 自分で作るというのはすでに決まってます だから小規模でまとめようと思ってます
911 名前:デフォルトの名無しさん [2015/11/17(火) 00:37:33.94 ID:3fiu8XQQ.net] ハッキングして遠隔操作みたいのをしてみたいんですけど、どうすればいいんですか? 学校でC言語とJavaは習いました。
912 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:07:53.71 ID:lYlDUfoh.net] まず自殺します
913 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:09:58.66 ID:+UlWRHgW.net] >>874 C#でやるべき方法じゃないと思う 動的言語rubyとかでやったほうがたぶん早い
914 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:12:35.98 ID:MdYEWsJu.net] アスペに「アスペなのかもしれないから教えておくけど」と言ったところで アスペなんだから伝わるわけないわな 無駄無駄ァ
915 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:13:29.87 ID:slq8dUH/.net] >>880 できたよ class Player{
916 名前:public void Say(object str){ Console.WriteLine(str); } public void Dance(object d){}} class Game{ List<Action<object>> scenario = new List<Action<object>>(); public void Init_Scenario() { var akane = new Player(); var player = new Player(); scenario.AddRange(new Action<object>[] { o=>akane.Say("おはよう"), o=>player.Say("おはよう"), o=>akane.Dance(1), o=>player.Say("いきなり踊るな!"), });}} [] [ここ壊れてます]
917 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:14:37.99 ID:lYlDUfoh.net] IronPythonでも組み込んどけばいい 自作する価値はない シベリア超特急エンドレスで見た方がマシ
918 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:20:05.47 ID:0HyN1ztj.net] c# 6.0ならRoslyn for Scriptingが使えるのでスクリプト機能を簡単に組み込めるだろう。
919 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/17(火) 13:02:45.67 ID:+c9tLHNn.net] >>878 そんな作りで効率上がると思ってんの?wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
920 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 13:12:19.65 ID:0HyN1ztj.net] 何このアスペwww
921 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/17(火) 13:26:31.53 ID:+c9tLHNn.net] やりたい事の最終目標はそのシナリオごとに単体で開発して起動テストが出来て、そのままゲームに組み込める形だろ HTMLを書いてブラウザで表示させるようなものをゲームプログラミングで行う つまりブラウザ開発
922 名前:uy ◆Qawu9.2l1E [2015/11/17(火) 13:33:24.71 ID:+c9tLHNn.net] > >877 :デフォルトの名無しさん:2015/11/17(火) 00:10:46.96 ID:0HyN1ztj >はじめからどういう目的があるのかを質問に含めないから厄介なことになるんだ。 >BASICみたいな感じで簡易スクリプト言語を組んでしまえばいい。 > >MSG >何かのメッセージ >MSGEND > >SET A=100 >GET B,A > >みたいなやつを決めて、C#側での変数管理は、Dictionary<string,object> values;のようなディクショナリでまとめておいて、 >SET命令が出てきたら、values["A"] = 100。 >GET B,Aなら、values["B"] = values["A"] って感じで実行するように組んでおけばいい。 低能晒しあげ
923 名前:デフォルトの名無しさん [2015/11/17(火) 13:43:42.85 ID:R+1w9ien.net] >>891 俺はこの方法でやろうと思う テキストファイルを読み込む時に個々の命令はクラスの配列に全部入れてしまう だからゲーム中に命令解釈のなんていうのかオーバーヘッドみたいなのは発生しない それでちゃんと動くと思うよ
924 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 14:37:25.22 ID:lYlDUfoh.net] ぐだぐだ言ってないで手を動かした方がいい その方が挫折が早くなって時間を有意義に使える
925 名前:uy ◆Qawu9.2l1E [2015/11/17(火) 15:03:15.83 ID:+c9tLHNn.net] >>892 動くと思うけど動かせないと思うよ 技術力的に
926 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 16:22:29.57 ID:slq8dUH/.net] >>892 >>885 シカトすんな
927 名前:デフォルトの名無しさん [2015/11/17(火) 16:58:51.42 ID:R+1w9ien.net] >>895 回答遅れてすいません それはキャラクターの動作をリストで持ってるだけですよね 俺としてはシナリオにそのシナリオのラベルや分岐情報などをつけたいと思ってるんです
928 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 17:00:51.13 ID:7LzXRzXH.net] >>896 それ、やるにしてもXMLで管理すればよくない?
929 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 17:11:59.62 ID:CRnDMuhn.net] >>896 全部書かなきゃわからんのか! あれを応用すれば言ってること全部できるだろ! 分岐するなら新しいリスト作ればいいだろ! テキストから読むこともない 何が不満なんだよ!アホ!
930 名前:デフォルトの名無しさん [2015/11/17(火) 17:16:13.59 ID:R+1w9ien.net] >>898 やってくれなんて言ってませんw どう回答したものかと困ってこういう書き方になってしまいました スンマセン 当然自分でやります
931 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 17:18:33.49 ID:kJodvt3B.net] それなら普通にコード書いたほうが良くないか?
932 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 18:34:42.67 ID:3nwXwekt.net] シナリオを人間が書きやすくする必要がないならコードで書いたほうが早いな どうせクソゲームなんだろうから誰もシナリオなんて書いてくれないわけで 自分でひりだすんだろうからコードで書いたほうが時間の節約になるな
933 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 18:37:45.69 ID:kJodvt3B.net] ノベルゲーとかなら、わざわざゲームエンジンから作らなくても、既に実績のある吉里吉里とか使った方がいいしな
934 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 19:05:22.52 ID:sj29+6cn.net] あんまりレスの内容見てないけど、ゲームできたら見せてくれよ
935 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 19:20:52.79 ID:A3FVmbuJ.net] どんなゲーム? c#を
936 名前:覚えるまでみたいなゲームだと面白いな ああああはレベルが上がった! if文を覚えた!条件分岐ができるようなった! [] [ここ壊れてます]
937 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 21:30:57.69 ID:lYlDUfoh.net] それはどこかがやってたような?
938 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 22:16:03.94 ID:jwVZTkmN.net] プレイヤーが作った虫同士をネットで対戦させるようなゲームがやりたいな
939 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 22:16:57.43 ID:SR74YNAG.net] >>887 roslynのc#scriptingはまだプレリリースだし、仕様が安定してないところがあるので、 luaとかの組み込み用言語使った方がいいと思うなぁ。 c#scriptingはなかなか魅力的だけど。
940 名前:uy ◆Qawu9.2l1E [2015/11/17(火) 22:19:04.52 ID:H8TlhYuF.net] リアルタイムで自機のショットアルゴリズム記述して 進んでいくSTG作ろうとした事あったけど色々無理があってやめた
941 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 00:33:12.41 ID:SNPtSU1p.net] 面白そうではあるな 近い趣向のものでは、NPCに戦略支持を出してくものがあるけど ビジュアルスクリプトにするにせよ、テンポ調整が難しそうだな むむむ…
942 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 07:37:45.36 ID:by9GKQSy.net] ファミコン時代の記憶が蘇ったわ ブリーダー (ディスクシステム) https://youtu.be/xz3N-d-e-RQ
943 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 08:05:33.01 ID:G8OYuYmR.net] Dispose()を呼び出さないといけないクラスがありますが Formアプリを強制終了したり、Dispose()を呼び出さないでFormを終了した場合 何か問題になったりしますか?
944 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 10:21:52.47 ID:4O1y0zjC.net] >>911 そんなこと気にせずにドンドン必死でプログラム書けばいつか答えが見つかるよ。
945 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 12:46:54.84 ID:/pyqs2gq.net] >>911 using使いなさいよ
946 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 14:35:01.75 ID:8OGiKQJm.net] Formにusingなんか使えないだろw ShowDialogで表示してるなら別として…
947 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 16:00:50.19 ID:1FcAcZvq.net] Formに使う話にいつ変わったの?
948 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 20:35:15.11 ID:by9GKQSy.net] >>911 参照が切れればいつかはGCされる プロセスが終了すればOSに回収される
949 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 22:21:51.16 ID:LvRn/Spf.net] >>914 いつもusingしてるが お前は何を言っているんだ低能
950 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 22:53:39.77 ID:XBTkD2/m.net] Usingもわからな・・・あ、ここ初心者スレかw
951 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 22:55:58.03 ID:s071DD2K.net] 単芝は余裕ぶりたい心の見栄
952 名前:デフォルトの名無しさん [2015/11/19(木) 01:22:50.82 ID:6x5+bHoL.net] んんんんっwwwwwwwwww
953 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 05:51:38.88 ID:cNWt69lk.net] クラスを作る時 インターフェースから書いていきます? 実装から書いていきます?
954 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 06:08:49.37 ID:yq8an3Lp.net] インターフェイス前提のクラスなら実装から書かないでしょ
955 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 06:18:09.35 ID:cNWt69lk.net] あ、違った アプリ作る時 インターフェースから作っていきます? 実装から作っていきますか? 今インターフェースを勉強しているんだけど インターフェースから作った方が綺麗なコードが 書けるんじゃないかなって思ったんですけど
956 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 07:14:47.20 ID:my8rYb+Z.net] 先にインターフェイスを作るのなら、その前に設計書を書かなければならない 最初に全体の完璧な設計が出来上がってるのであれば当然インターフェイスから作るのが後戻りがないわな それができないんなら汚くていいから実装→リファクタ
957 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 07:43:41.76 ID:YneMFXa5.net] C#のTextBoxコントロールで MultiLineプロパティをtrueにセット複数入力が出来る場合で 入力エリアの一番下の位置に空白が出来るのを何とかしたいのですが 何か方法はありませんでしょうか? 現状 /=入力スペース ----------------------------- 1233333/////////////////////スクロールバー 1233333/////////////////////↑ 1233333///////////////////// 1233333/////////////////////↓ ←ここに余白が出来る。エンターを押すと更に下に移動する ------------------------------ 希望 /=入力スペース ----------------------------- 1233333/////////////////////スクロールバー 1233333/////////////////////↑ 1233333///////////////////// 1233333/////////////////////↓ ------------------------------ よろしくお願いします。
958 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 07:51:55.38 ID:cNWt69lk.net] >>924 インターフェイスの抽出なんて機能があったんだ 設計書は書けないから実装からのほうが良さそうですね
959 名前:デフォルトの名無しさん [2015/11/19(木) 08:59:06.47 ID:jS0xGfYR.net] ブラッド・コックスとトム・ラブがObjective-Cを作り「この言語はCのメモリ安全性とSmalltalkの高速性を合わせたものだ」と宣言する。 現代の歴史家は2人が失読症ではないかと疑っている。 https://twitter.com/okdshin/status/666903312151613440
960 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 10:30:02.98 ID:A33ByGDA.net] test
961 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 10:39:22.99 ID:A33ByGDA.net] interfaceはセマンティクスの定義なんだよ。 チーム開発においてクラスメンバのシグネチャを強制すれば振る舞いを誰が実装しても大きな問題おきないでしょ。 実装なんてブラックボックスでいいんだよ、利用者はシグネチャさえわかればいいんだから。 数百、数千億規模のプロジェクトでもまともにinterface作ってない場合多いからレベル低すぎるね。 上流がコーディングできなんじゃ設計なんてできるわけないんだよ。
962 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 12:49:16.71 ID:G20bfr3g.net] >>925 自力でやるしかないんじゃね?
963 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 12:58:52.05 ID:h0D34cF3.net] >>925 何を言ってるのかよく分からない。 そんなこと起こらんけど。 >>927 気付いてないのかもしれないが、コピペマンのお前さんこそ統合失調の疑いが濃厚だよ 馬鹿じゃないの。
964 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 13:16:57.34 ID:WApHXGH2.net] >>925 TextBoxのHeightを小さくして入力スペースぴったりになるようにすれば?
965 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 13:46:03.31 ID:7AHNe+Hm.net] >>929 本当それ 基礎中の基礎なのにinterfaceの使い方もしらないオレオレ設計者しかいないわ、うちの会社 1.1 ボタン押下時イベント みたいなExcel方眼紙にオレオレ詳細設計書書くのが普通になってるし
966 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 14:36:23.31 ID:j6gYHvV7.net] >>925 最後の改行を消せ
967 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 14:42:03.70 ID:gXUiymqK.net] 3行以上書く奴はキチガイ←せいかい
968 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 15:07:03.92 ID:h0D34cF3.net] >>935 唐突に意味不明なこと書くお前がキチガイなんだ馬鹿。
969 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 15:13:15.38 ID:f/FwklKJ.net] >>925 若いもんはそういう些細な事が気になるもんじゃ。
970 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 15:28:03.26 ID:A33ByGDA.net] 極論すると要件を理解してる前提であればInterfaceあれば仕様書や手順書なくたってコーディングできるんだよ。 運用の問題はアトリビュート、共通化したい機能はトレイト・ミックスインで対応可能。 いい加減、ドキュメント作成より実装に工数かけようぜ。
971 名前:デフォルトの名無しさん [2015/11/19(木) 16:07:33.31 ID:PQiMaMHb.net] security.srad.jp/story/15/11/18/0610220/security.srad.jp/story/15/11/18/0610220/ 昨今のマイクロソフトは日々おかしな事しでかすな もう、めんど臭いし、全員でLINUX移ろうぜ
972 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 16:26:04.89 ID:h0D34cF3.net] >>938 誰と戦ってるの?w
973 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 00:05:26.71 ID:U2PcGSVo.net] xmlやjsonをファイルで扱いたいのですが、\などをエスケー
974 名前:vしないようにreadwriteするにはどうすればいいでしょうか? [] [ここ壊れてます]
975 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 06:50:13.45 ID:0b9D5XOx.net] もともとエスケープなんかされない ソースコード上にリテラルとして文字列書く場合だけ\\か@使う
976 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 15:56:07.37 ID:JvKaxnpE.net] >>925の人気に嫉妬
977 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 16:58:48.84 ID:IfcC+Den.net] GraphicsPathのAddStringで文字列の先頭に空白があると削除されてしまいます。 これを回避する方法はありますでしょうか。
978 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 17:21:44.96 ID:hR7d38wi.net] foreach(x,,,) { foreach(y,,,) { yield return x==y } } foreachが入れ子になっているのは ラムダで表現するのは無理だよね?
979 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 17:25:46.50 ID:JFj+7Wuj.net] >>945 SelectMany
980 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 17:50:16.36 ID:w45vfkw8.net] string str = "ああ123.45abc678"; の時にstrを数値に変換するとして、変換出来る最初の部分文字列 "123.45" を数値化したいのですが、そういう関数ありますか? さらに、 string str = "ああ1.2E3abc678"; なら、 1200 が得られるといいのですが。 つまり全角半角どちらでも良くて、かつ指数表示にも対応している。 標準の関数でありますか?
981 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 23:22:04.67 ID:lPfCyIV+.net] 列挙型の要素を動的に追加したり削除したりってできる?
982 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 23:23:57.45 ID:GdR6w5S8.net] 通常の手法ではできません
983 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 00:27:01.45 ID:iT1tZCI1.net] >>948 目的は?
984 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 03:00:05.12 ID:JSdSEHUd.net] >>950 Unityのエディタとスクリプトが依存しあってる環境でエディタ上での変更に柔軟に対応したい(つまり一々コードを手作業で書き換えず楽したい)のと、 文字列を引数にして検索するメソッドを使う際にできれば列挙型か文字列定数で安全に取り扱いたい というのが目的だったけど列挙型のスクリプトを生成するスクリプトを書くのが現実的なのかな
985 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 03:03:06.28 ID:o24m0lwv.net] またID:OxpghztZかよ
986 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 03:06:45.63 ID:u++Mym7W.net] ばれてやんのwww お前もうコテハン名乗れよwww お前ぐらいだよ。そんな変な質問するのwwww
987 名前:デフォルトの名無しさん [2015/11/22(日) 05:54:12.53 ID:c83Tb2v8.net] もう馬鹿なんじゃないかっていうくらい基本の質問で恥ずかしいんですが・・・ 実際の開発でメンバー修飾子(public intenal etc..)ってどういう基準でつけてるもんなんですか? データベースと連携した業務アプリケーションをちまちま作ってるんですが、 privateにしなきゃというところは、何となく考えながらつけてるんですが、 そうでないところで(他クラスからアクセスさせたいプロパティとか) publicでいいのか、せめてinternalをつけた方がいいのかどうも明確に意識して設計できないのです 開発チームとかあるわけでなく、一人で作っていて使い分けの事例なんか見ててもピンとこないというか
988 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 06:06:55.82 ID:zwZfG106.net] >>954 パッケージとして独立させてAPI公開する気がないんだったら 迷うところはpublicでいいだろ つか一人で作ってるなら全く気にする必要ないような…
989 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 07:37:23.55 ID:PowSWGiN.net] >>947 全角/半角変換、日本語を扱うのは、Linuxでは、 nkf ライブラリを使うけど、C#には無いの? それか最初に、全角を半角に変換してから、正規表現を使えば?
990 名前:デフォルトの名無しさん [2015/11/22(日) 13:10:53.96 ID:eHZxB5Wh.net] >>952 別人だよw ID:OxpghztZは俺だからw
991 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 13:21:21.34 ID:YBzI3bTB.net] ゲーム作ろうとしてる奴なんか十把一絡げでいい 総じて低レベルだから
992 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 16:34:36.06 ID:2L1cven6.net] プログラミングでゲームを作ろうというというのは、 誰にでも思いつく発想だからな 殆どは挫折する
993 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 17:26:57.27 ID:KDgQ57Ye.net] だがベーマガ時代はそうはならなかった。 日本中の少年少女がゲームプログラミングに熱中し、 作成したゲームのソースをベーマガという雑誌に投稿し掲載されたものだ。 今、日本のIT業界を支えてるのは高スキルな彼らである。
994 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 17:52:36.89 ID:Z+udvk0o.net] >>960 前も書いた気がするけど、ベーマガなんてお子様向けの子供だましの雑誌だよw まあ評価は世代にもよるだろうけどね。 少なくとも俺の評価はそう。 まあそれはどうでもいいけど、そういうネトウヨ的自己陶酔は傍目に気色悪い。 それが自己陶酔だって気が付いてないんだろうけど。 ついでに言うと、ベーマガの時代(って言っても20年あるから一口には言えないが)はゲームも PCのハードも素朴な物だったから低スキルでもそれなりに評価されるものが作れたが、 今の時代WindowsにしろAndroidにしろそもそもゲーム向きじゃない上に ユーザーの目も肥えてるから、はっきり言って今の時代ゲームを作る方が何十倍も大変だと思う。 実際問題今時のゲームプログラマってプログラマ全体の中でも地頭がよくないと出来ないんじゃないの?
995 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:06:41.65 ID:YBzI3bTB.net] ゲーム作ろうとしてる奴とゲームプログラマを同列に扱った覚えはない ゲーム作ろうとしてる奴はゲームプログラマではない
996 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:31:41.01 ID:GP1Qn5OD.net] ベーマガのプログラムを今のゲーム制作と比較するのは低能のすること。 企画 + ゲームデザイン + プログラミングをすべて一人でやってたのをお子様とか言っちゃうのはゆとりかな?
997 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:34:49.04 ID:fPUy/JrI.net] >>961 × 実際問題今時のゲームプログラマってプログラマ全体の中でも地頭がよくないと出来ないんじゃないの? ○ プログラマって本当は地頭がよくないと出来ない 本来の問題は日本では頭が悪い奴がプログラマになって無駄なデスマーチ&生産性が上がらないための低給料 というデフレスパイラル的なものに陥っていることだろ。(アメリカではこれを回避できているらしい) ゲームプログラマだけが特に頭がいい必要があるとは思えない、というか、 本来はどの方面のプログラマも頭がよくないと駄目なんだよ。 ただ、プログラミングなんて手段でしかないんだから、 ゲーム好きがゲームを作ろうとするのは自然なことだと思うし、いいことだと思うよ。 とはいえ、今ここでやろうとしている2人は両方とももう少し基本を押さえるべきではあるが。 C#は軽量言語ではない。ほぼ全てのケースに対して対応できる記述能力/ライブラリは既にある。 逆に言えば、初心者が先人が全く想定していなかったケースにいきなり当たる確率はほぼ無い。 今お前らがやろうとしていることが出来ないのは、やり方が間違っているからだ。 (普通は違うやり方で実装し、その方がいい/それで問題ないからその実装手段が提供されていない)
998 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:42:55.24 ID:NW0PnoYA.net] >>948 文脈わからんし動的に追加、削除の含意も知らんが それってDictinary<string,int>の仕事じゃないのって、アドバイスしとくね あとは列挙型の内部実装がどうなってるかしらないけどどうせクラスか構造体かでしょ 他にあるとすればリフレクション使ったりで列挙型クラスを動的構築するとかになるのか? まあやりたくないよね、そんなこと
999 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:47:35.92 ID:j30Wwuuw.net] List<int,string,double>みたいなのは 将来使えるようになる?
1000 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:51:26.08 ID:NW0PnoYA.net] >>966 なにそれ?どうやって使うの?
1001 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:03:27.41 ID:Z+udvk0o.net] >>964 本質的にプログラマに向かない奴がプログラマになってる(それで2chとかでブラックがどうのとか自分の無能を棚上げして 被害妄想全開)って現状認識はその通りだと思うが、プログラマって一口に言っても要求される能力は全然違うわけで、 例えばC#で特定企業向けの業務ソフトを作ってる人間とゲームプログラマじゃ、恐らく後者の方が圧倒的に 高い能力が要求されるのはまあ事実だと思うよ。 そのくせ社会的な評価はあんまり高いように思えんから何か損な仕事だな。 俺はゲームプログラマじゃないけどね。
1002 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:03:55.53 ID:DtMt13r7.net] Tupleの事でしょ 今でもプロパティ名がItem1~って固定な簡易Tupleならある でもプロパティ名もその場で付けれるちゃんとしたTupleの実装予定はあるよ
1003 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:06:02.36 ID:KDgQ57Ye.net] >>961 ゆとりの言い分はよく分った。
1004 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:08:06.34 ID:+71DZHa4.net] 技術を磨くだけだったら好きなら誰にでもできる 社会的に成功するのはその上ビジネスが分かってる奴で、これは稀
1005 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:12:42.09 ID:Z+udvk0o.net] >>970 俺から見たらベーマガ世代こそどっぷりゆとり世代なんだけど。
1006 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:15:10.11 ID:fPUy/JrI.net] >>969 ちょっと脱線するが、Tupleって結局何がいいんだ? 構造体やクラスで問題なく実装できるよね? ただ流行っているみたいだから、何か利点があると思うのだが、、、
1007 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:21:08.24 ID:+71DZHa4.net] >>973 タプルがじゃなくて関数型プログラミングが(意識高い系の連中の中で)流行ってる 関数型プログラミングでは複数の値を一つにまとめて扱いたいことが多いのでタプルが必要 オブジェクト指向プログラミングならフィールド書き換えればいいので本来不要
1008 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:30:38.64 ID:KDgQ57Ye.net] >>972 中高生が一種や二種を取るんだ。そして当時の試験範囲は大学レベルの英語や数学、そして商業、工業も含まれてる。 おれも余裕で合格したけどね。今みたいに簡単じゃないよ?選択マークじゃなく筆記だし。
1009 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:37:26.35 ID:fPUy/JrI.net] >>968 ゲーム:チューニングゴリゴリ、ただし基本的に1発出して終わり 特定企業向け業務ソフト:動けばいいが、長期的メンテナンスが求められる ゲームプログラミングの方が単品では難しいのは事実だけど、 業務ソフトには長期メンテを考慮した構成が求められる。(難しさの方向が違う) ただ、チームとしては、ゲームは10人中10人バリバリでないと駄目なのに対し、 業務ソフトなら、トップ1人が美しい構成を考え、残り9人は並みでいい。 だからゲームチームを作る方が難しいし、 一般論としてゲームプログラミングの方が難しいというのもその通りだろう。
1010 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:55:16.96 ID:NW0PnoYA.net] ゲームはオクルージョンカリングとか空間分割木とか意味不明なまでに難しい世界があるからな 単純な2Dゲーなら今はマシンパワーもあるし、複雑怪奇な最適化はしなくてもいいと思うけど マルチスレッドとか、メモリアクセスやファイルアクセスのタイミングとかやりだすと 複雑そうな感じは受ける
1011 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 20:19:08.43 ID:fPUy/JrI.net] >>974 さらに脱線して申し訳ないのだが、関数型プログラミングは何で流行っているの? 正直、余りメリットを感じないのだが
1012 名前:B(なお使っているのはJavaScript) HaskellかLispやらないと理解不能かな? 言っちゃ悪いが、Lispなんて昔からあっても誰も使ってなかった=実用レベルに達していないゴミ だと考えている。それとは別に、内部状態を持たないとか、カリー化とかで検証がし易くなるのは事実だけど、 今その手の言語を使っている奴らがそこまでの検証レベルを要求されているとは到底思えない。 (言語いじって遊んでいるだけのように見える) JavaScriptとかでも(俺は本業ではないが) ・ローレベルコードは書かない(キリッ (for文を絶対に使わず、map(匿名関数)で処理) ・内部状態を持たない(キリッ (途中一部分だけで済む場合も頭から全部処理) も多くて、確かにこの方法ならバグりにくいが糞遅い。実感としては大半がこんな感じ。 お前ら明らかに方向を間違ってるよなーとしか思えないのだが。 (問題ない場合はこの手の超富豪プログラミングもありだが、問題あっても対策しない感じがある。 宗教がかった聖域というか。) [] [ここ壊れてます]
1013 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 20:38:22.50 ID:xDxhP+Cq.net] 流行ってねえよ 声がでかい奴が拡声器でわめいてるからそう感じるだけだ
1014 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 20:45:30.67 ID:NW0PnoYA.net] Lispが使われないのは、JavaやC#のように熱心な営業攻勢が無かったからだよ 関数型を学ぶメリットはドキュメントが営業的観点で腐っていないということ コミュニティがそれによって質の高い状態が保たれている 一番のメリットは「ユーザーにバカが少ない」ということこれに尽きる LispやHaskellなんて、それこそ熱心な勉強家でなければ手に取らないということ 純粋関数はマルチスレッドに良い影響をもたらす というかGUIとかスレッドとかどう見ても関数が主役でオブジェクトがシンタックスの邪魔をしている 最近勢力を誇っているwebサービスもほとんどが関数型指向でかかれているし Javascriptが今隆盛を誇っているのも結局はそういうことなんだよな まあHadoopやMapReduceとか必要になるようなアプリケーション書くような企業は限られてるけど マルチコアが前提となってくると結局関数の純粋性が常に問われてくる 幸いまだC#はLINQやTaskで関数型やマルチスレッドをサポートしてるので生存の余地はあるけどね というかC#にLINQが導入されたのは、どう考えてもSQLではなく関数型の影響だしな 内部状態を極力持たずにというのはweb(HTTP)の考え方だし JsonやXMLや(S式)で非同期処理するということを考えると関数型は流行らざるをえない 関数型が流行っているというよりwebベンチャーが流行ってるというのが正しいな まあJavascriptがそのポテンシャルを見いだされるまでに10年近くかかったわけだし Javascriptが微妙なのは同意するよ
1015 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:03:03.77 ID:T8hXZH4x.net] 関数型は、スクリプト等の言語を作りたい人とか、高度な文字列処理が必要不可欠な人とか 科学計算駆使しなきゃならない人とかが使うんだよ そういった領域では実用的というより必須になる 最近話題にのぼりやすい言語では、R言語とかがあるが関数型になっている C#は汎用言語なので色々な領域の処理をする人が居て、こういった処理をしたいと望む人には欲しい機能なんだ 最近は、ビッグデータとか取り扱う人も多いでしょうし、例えば金融関係とかトレーディング等でHaskellの採用があったりする そういう意味では地味に流行ってはいるかもしれない、ビッグデータもバズワードになる程
1016 名前:度には流行ってるからね タプルは自分も欲しいと思っている機能、オブジェクト指向が不向きな領域の処理多いが ユーザーインターフェイスと別けて別言語でというのも煩わしいので >声がでかい奴が拡声器でわめいてる ラムダ式の人とかうざいよね、これだけは同感w 昨日の要求はしたいが、声高々に流行っている言う程のもんかよwww [] [ここ壊れてます]
1017 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:07:02.69 ID:o24m0lwv.net] なにこれ、自演祭り?
1018 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:09:34.06 ID:T8hXZH4x.net] あぁ、また自演なのかな、例のヤツの自演なのかもしれん >>981 だけは違いますんでw
1019 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:31:52.46 ID:GP1Qn5OD.net] 「スレチ」という便利な言葉がある
1020 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:35:46.49 ID:T8hXZH4x.net] 自演してでも自分の話したい話題に流れを変えたい酷いかまってちゃんが居るだけですよw 彼にとって、スレチとか関係ないのです、誰もお前とは話したないから、さっさと自殺すればいいのに
1021 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:54:59.54 ID:fPUy/JrI.net] >>980 > 純粋関数はマルチスレッドに良い影響をもたらす これは確かにその通りなのだが、同じ事はオブジェクト指向でも言われていたはず。 OOPも1オブジェクトに対して1スレッドを割り当てれば干渉しない。 関数型で自動マルチスレッドを期待するのなら、結果的に完全に同じものになる。 > 内部状態を極力持たずにというのはweb(HTTP)の考え方だし JavaScriptに関してはこれは多少弁解の余地があって、 実際やっていると503エラーとかで内部状態がずれる時がよくあるので、 最初から管理しないというのも一つの方法にはなる。(ただし糞遅い) > JsonやXMLや(S式)で非同期処理するということを考えると関数型は流行らざるをえない これはよく分からない。関数型の方が綺麗に書けるか? ちなみにPromiseとか欲しいとも思わない。主に手続き型で書いているからというのもあるとは思うが。 JavaScriptはPromiseを採用、async/awaitも検討中だ。 C#はPromiseなし、async/awaitありだ。俺はこっちの方が理解しやすいのだが、これもスタイルの違いなのか?
1022 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:09:26.92 ID:xDxhP+Cq.net] 口から下痢たれ流すの止めてくんない
1023 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:09:50.22 ID:fPUy/JrI.net] >>981 > 例えば金融関係とかトレーディング等でHaskellの採用があったりする これは知っているが、結局のところ、今Haskellが出来る=それなりの頭である事がある程度期待できる だけであって、>>980 の指摘通りで、別にHaskellが適しているわけではない気がするのだが。 > C#は汎用言語なので色々な領域の処理をする人が居て、こういった処理をしたいと望む人には欲しい機能なんだ 俺はJavaScriptをやって初めてクロージャを知り、確かに便利だと実感した。 ただもっと驚いたのは、C#も2.0からクロージャを普通に使えたことだ。 とはいえC#がクロージャをガンガン使っているイメージはない。 逆に言えば、C#のスタイルなら大して恩恵がないのだと思う。で、以下なのだが、 > タプルは自分も欲しいと思っている機能 これ何がうれしいんだ? 既に書いたが、普通に構造体やクラスでやるのと同じとしか思えない。 関数型風に書いたらタプルの方が綺麗に書けるって事?(それでも変わらない気がするが、、、、)
1024 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:12:50.69 ID:rVLRuBGq.net] 3行以上書く奴はキチガイって嘘じゃなかったね ゴメンね(ゝω・)v キャピ
1025 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:24:15.75 ID:yPUHF/WV.net] >>981 > そういった領域では実用的というより必須になる たかが言語で必須とか… 関数型言語がない時代は、 > スクリプト等の言語作成 > 高度な文字列処理 > 科学計算を駆使 する奴は居なかったのかよ
1026 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:29:28.42 ID:fPUy/JrI.net] 誰と勘違いしているのかは知らんが、スレを変えたい場合は俺は問題ない。 誰かが俺に対して他のスレでレスを付けた場合、俺がレスを返すのならそこで返す。 だからレスをくれる奴がいるのなら、スレを選んでくれていい。(テストスレでも可)
1027 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:41:52.29 ID:iT1tZCI1.net] Tupleは複数値リターンのために導入されたものと思っていたが、複数値リターンが未だ導入されない
1028 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:50:34.89 ID:fPUy/JrI.net] >>992 てか問題なくね? www.atmarkit.co.jp/fdotnet/dotnettips/1024tuple/tuple.html
1029 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:57:18.42 ID:T8hXZH4x.net] そんなタプルは問題ありありだよw
1030 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:59:26.10 ID:Bfhlr/Lz.net] Item1,Item2とかソースに出てくる時点で失格 多重代入と引数リストへの展開ができない限りは使うべきでない
1031 名前:デフォルトの名無しさん [2015/11/22(日) 23:58:35.59 ID:SVdGikuE.net] >>974 まぁ、そのためだけに構造体とか作るの面倒くさいしな
1032 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 00:24:30.36 ID:NS56NU1F.net] >>981 , ID:T8hXZH4x 自分がついていけない話になるとすぐスレチだと言い出すクソガキはどこのスレにもいる。 お前が嘘を嘘と見抜けない池沼でいるのはお前の自由だが、 荒らしでないつもりなら>>1 読んでスレ立てろ。
1033 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 00:51:40.63 ID:2bvpc+pi.net] 説教怖〜い
1034 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 00:55:30.12 ID:d/p1Vajd.net] 埋まりそうだったので宣言無しで建てました、失礼 ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/tech/1448207673/
1035 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 01:36:08.01 ID:5/8mbdQh.net] ついていけるとかついていけないとか関係ない、キモすぎ、触りたくない
1036 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 02:03:44.01 ID:V0PiNkF/.net] おれが神
1037 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
1038 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています