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/
654 名前:633 mailto:age [2015/11/08(日) 12:05:28.12 ID:pl2PgCRK.net] >>634 なるほど…今はPrismの方がいいのか。さんくす テキストは…ストアアプリは作る気がないしなぁ プログラミングWindowsのWPF XAML向けの解説は一応あるけど、 さすがにいちいち照らしあわせて読むのは大変そう blogs.msdn.com/b/shozoa/archive/2014/07/24/using-programming-windows-chapter1.aspx 結局テキストをどうしたらいいのかわからんね これを見つけたんだが、まだ去年のものだし古くもなく大丈夫だろうか?(同内容のkindle版もあり) www.slideshare.net/okazuki0130/wpf45-38048141
655 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 12:49:12.21 ID:cfidXKbm.net] >>631 List<T>でFindeIndex(s => s.id == searchID)とか でもidがprivateだな 検索数多いなら632が言うようにキーがIDの辞書作った方が速い
656 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 13:05:36.69 ID:qxSNyhqm.net] privateなプロパティを持っているとLINQで匿名型をnewしようとしてもアクセス出来ないレベル というエラーが出るしなあ そして匿名型はコンストラクタを呼び出す手段がないので次のようなコードがコンパイルできない ideone.com/QVNres
657 名前:631 mailto:sage [2015/11/08(日) 13:35:56.75 ID:gApUJ0pc.net] 回答ありがとうございます >>632 Dictionaryを詳しく調べてみます データを格納後に、Dictionaryで別途索引を作る…というイメージですよね、たぶん LINQも調べて勉強してみます >>636 FindIndexも調べてみます FindIndexは構造体のIDがprivateでなければ使えるのかな? なお、件数はおそらく多くなりますので、Dictionaryでいこうと思います >>637 構造体のつくり自体がそもそもまずいということですね データを扱うのに構造体が良さそうだと思い使おうとしていたのですが、 まだまだ勉強不足のようで…勉強し直します 匿名型というのも分かってないレベルです ひとまず頂いた回答・ヒントからいろいろ調べてやってみます つまづいてどうしようもなくなったらまた質問に来ますので その際はみなさんよろしくお願いします
658 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:11:47.01 ID:IOiPLIcZ.net] >>635 wpfのことは忘れてFormsアプリを作
659 名前:驍だ [] [ここ壊れてます]
660 名前:633 mailto:sage [2015/11/08(日) 14:13:41.26 ID:pl2PgCRK.net] >>639 今あえてWPFでなくFormsを学ぶ理由は何なんでしょう?
661 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:21:58.19 ID:qxSNyhqm.net] 匿名型やめて普通にnewすれば行けるよ この場合でも読み出し専用のプロパティは必要だけど ideone.com/VQnbmB
662 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:22:03.96 ID:qE8APb0L.net] そりゃあ情報量だろ
663 名前:633 mailto:sage [2015/11/08(日) 14:24:04.50 ID:pl2PgCRK.net] >>642 なるほどな…すまんが、それでもやっぱりWPFでいきたいわ 情報量が、と言うならC++でもやってろ、という話になるので
664 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:26:58.36 ID:qxSNyhqm.net] それとToArray()はこの場合は不要だった 遅延評価でいいや それとインデックスが不要なんだから(tt, n)でなくて(tt)でいい 適当に書いたからいろいろおかしかった
665 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:28:16.90 ID:jwSrphbk.net] フォームアプリだとストア対応はまた別スキル?
666 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:48:07.12 ID:t8ezhEA7.net] WPFはマイクロソフトからもとっくの昔に見捨てられたコンテンツだからな 2010年くらいからほぼ更新されてない 開発者も減ってるし今更やっても無駄 そんなのやるくらいなら注目度高いElectronでもやったほうが100倍モチベーション上がるだろ
667 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:48:47.97 ID:0dVpsRSu.net] >>638 キーが決まってるならKeyedCollectionなんてのもある 構造体orクラスの問題は、大抵の場合、クラスの方がいい 構造体はnewのコストが問題になった時に試してみればいい
668 名前:633 mailto:sage [2015/11/08(日) 15:05:42.53 ID:pl2PgCRK.net] >>646 すまん。Electronも考えたんだが、いかにもWebアプリっぽい見た目と動作になるのが気持ち悪くてなぁ… WPFは見捨てられたと言うのであれば、皆WindowsでGUIアプリを作るには何を使ってるんだろう?
669 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 15:10:08.20 ID:qL6T2MEr.net] >>646 .Net4.6で改良されてるし、どこまで本気か分からないけど最近微妙にやる気出してるようだよ。 blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx
670 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 15:14:56.34 ID:b5oYWyCu.net] フォームのほうが見捨てられてるからWPF以上に未来はないと思うが、だからといってWPFに乗り換える気が起きない。 んで結局、フォームから未だ抜け出せずにいる。
671 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 15:18:18.25 ID:t8ezhEA7.net] これからはWPFと言いながら10年近く全く普及せずに下降線を辿ってきたからな だいたいGUIアプリにしてもWindowsデスクトップに固執するような時代はとっくに終わってる
672 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 15:51:44.93 ID:+dkH7XCP.net] WPFは早期に標準コントロールを充実させていれば多少は広まったんじゃないのかな
673 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 16:09:34.75 ID:b5oYWyCu.net] MVVMだなんだの言いながらデフォルトでそれ系のまともなフレームワークが入ってないのが敗因だろうな。
674 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 16:21:43.65 ID:IOiPLIcZ.net] wpfのまともな文献がないというのが このFrameworkの実態を表しているような気がするね ネットにあるのは、Formsとは違うんです!っていう営業トークか MVVMという概念がすごいんですってだけだろ 実際MVVMが必要になるような高度なアプリケーションなんてあるのか? リアルタイムにデータを処理するにしてもイベントドリブンモデルのほうが簡潔で扱いやすい MVVMはオブジェクト指向を「こじらせた」典型例だと思うんだよね
675 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 16:40:41.80 ID:qWpIgAsz.net] >>654 いや英語では結構本出てるよ。 MVVMがウンコなのは同意するけどw
676 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 16:57:42.27 ID:qE8APb0L.net] 設計がとにかく野暮ったい 僕の考えた最強の〜って感じ 引き算を覚えてくれ頼むから WPFを
677 名前:除けば成功しているMVVMフレームワークはいくらでもあるし 設計センスの問題だと思う [] [ここ壊れてます]
678 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 17:02:03.13 ID:t8ezhEA7.net] mvcとかやりたければ本流のhtml5使えばいい 標準フレームワークも用意されないWPFが流行るわけもない マイクロソフトも普及させる気はないよ ポーズだけ Silverlight潰したりマイクロソフトは既に独自技術の普及を断念してる 代わってTypescript用意したりweb標準技術の採用に舵を切ってる
679 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 21:46:02.90 ID:SGCCwhdk.net] >>650 フォームは現時点でほぼ完成しているから何も変える必要ないんじゃないの?足りない機能ある?
680 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 22:53:03.65 ID:X/vorztS.net] prism使って、データバインドが非常に協力でコードもすっきり書けるけど、 Formsなら簡単に出来た事がものすごく手間だったり、 独自のUIが簡単にというが実際はとてつもなく面倒くさい。 datagridの配色変えるだけでも、 あの部分をどこで色を変えられるのか調べるだけで相当時間がかかる
681 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 22:54:49.77 ID:b5oYWyCu.net] >>658 フォームに関しては、今更機能追加されたところであれだし、現状維持してくれれば十分だな。
682 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 22:55:41.36 ID:HlEs+VqN.net] 俺はMFC FeaturePack並のツールバーやドッキングウィンドウが標準で欲しいなぁ。 今はサードパーティー頼みだし。 MFCも、もうメンテナンスモードだろうと思ってた頃にFeaturePack出てきたんだから ワンチャンあると信じたい。
683 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 22:58:52.76 ID:l/gAevhW.net] WPFのDataGridは全く使い物にならない あの糞がそのまま放置されてるんだから、MSのやる気の無さがよくわかる まあそもそもWPFは設計思想的にDataGrid的なものはListViewをカスタマイズして作るもんであって、 出来合いのDataGridをそのまま使うようないい加減なGUIでいいのならWPF使う必要は全く無いんだけどね
684 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 23:04:24.23 ID:b5oYWyCu.net] WPFならMVVMでドメインとビューの分離が〜とか言うが、フォームでもある程度は、データバインドできるし、 WPFほどまでは行かないにしろ、そこそこの分離は、可能だと思う。 いざとなれば、ビューを直接扱えるし、WPFみたいに変に手回ししなくていいしフォームのほうが楽。
685 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 23:26:11.25 ID:X/vorztS.net] WPFはC#を習得した人用だからなあ、 いきなりC#とXaml両方まなぶのはきついんじゃない? GUIを今後一切変更しないならFormsでいいだろうけど、 変更したくなった時、クソ面倒くさい
686 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 00:30:33.40 ID:nH7Pt/o2.net] 言語としてのC#にそんなに覚えることがあるとは思えんが、 WPFは覚えることだらけだな。 しかもMSDNのどこにも明示されてない仕様も結構あってかなり萎える。
687 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 00:42:01.77 ID:YzX/XRY3.net] >>662 >DataGrid的なものはListViewをカスタマイズして作るもんであって、 このカスタマイズする前に大量のオブジェクトの前に力尽きる人が多かったから WPFは流行らなかったんだろうな オブジェクト指向の継承って結構早い段階から使うのやめとけ って言われてたと思うけどwpfって継承地獄なんだよなあ
688 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 01:51:51.42 ID:q+BDOfSy.net] 継承(is a)より包含(has a)とか、無駄に複雑な継承関係にしないとかなら分かるけど、 一般論としてそんなこと言われてたっけ?
689 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 03:56:53.75 ID:m77m/g5H.net] WPFが出た当時、そちらに移行しなかった最大の理由は リファクタしたら、XAMLだけ手作業修正になったから 今は、ちゃんと連動してるんだろうか? していた
690 名前:ニころで、あんだけ複雑で、しかも機能的にフォームから浮いていると移行する気にはなれないけど [] [ここ壊れてます]
691 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 04:06:23.65 ID:m77m/g5H.net] >>654 同感、WPFからATL臭がする これからはWPFだといっている人は何見て、WPFが流行っていると思っているのだろうか?
692 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 08:53:11.53 ID:AkXykSSl.net] wpfのControlTemplateは、FormsのOwnerDrawに比べたら格段に楽だと思うけどな
693 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 09:23:03.24 ID:eW5XCVAC.net] 部分を誇っても仕方ない 一芸に秀でていれば使えないこともない人間とは違うんだよ フレームワークは全体のバランスが求められる
694 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 12:09:04.18 ID:6wZmioGw.net] でも結局は作りたいものに適した形をしているか、ってだけだからな。 適してれば(=開発工数を抑えられるならば)、どんなんだって使うことはあるし。 ここで声高に否定することに意味があるとは思えん。むしろなにか作為でもある?
695 名前:デフォルトの名無しさん [2015/11/09(月) 12:24:46.82 ID:7FJWPJQr.net] 自動生成はWPFのが簡単でいいよね 工数削れるよ
696 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 12:30:10.88 ID:eW5XCVAC.net] 否定派の前で肯定するから否定されてんだろ 頭悪いんじゃねえのか?
697 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 12:35:57.06 ID:EOVCHtBm.net] 639が聞かれてもいないお節介を焼いたのがそもそもの原因だ 発狂するまでXAML書き続けて死ね
698 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 13:09:55.63 ID:6wZmioGw.net] 声高に否定しhとかないと不安なのかと。w
699 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 13:22:50.09 ID:eW5XCVAC.net] 書き込みの推敲もできないほどではないんじゃねえの〜 クソでも漏らしそうなのか? 漏らすなよ、ただでさえ臭いんだからな
700 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 13:31:13.13 ID:6wZmioGw.net] え。まさかの図星だったんだ。w
701 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 16:23:18.75 ID:m77m/g5H.net] >>672 作為とか特にないけど、俺の知っている業界の範囲でWPFを使っている所なんてないし 一時使っていたところも全部切り上げてFormsに戻ったからな 誰が使っているんだ?って思って書いてみた
702 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 16:25:52.00 ID:m77m/g5H.net] あと、自分の経験から、フレームワークが死ぬかどうかの嗅覚センサーは高精度にしておいた方がいい システムが大規模になってから、さあ元に戻ろうとかいう話になると地獄みるでw
703 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 18:25:32.73 ID:s3Itz59O.net] WPFは、やたらと抽象化しすぎで、解りづらいんだよなぁ
704 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 19:32:07.70 ID:YzX/XRY3.net] 声高に否定しとかないと、ふらっと誰かが立ち入るかもしれないだろ? 誰も助けられないエリアに人が立ち入ろうとしたら全力で止める それは時間の無駄と戦い続けてきたICT分野の精神そのもの
705 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 20:45:05.97 ID:XHl8ePvc.net] 出来損ない人間のくせにそういう意識だけ持ってられると非常に迷惑
706 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 20:47:24.37 ID:Z/Tj9+xS.net] クズ同士で反目しあっていたらいつまでたっても地獄から抜けだせないよ?
707 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 20:48:06.82 ID:aHPhV6ij.net] C#erならあらゆる分野でTypescriptを使っていくべきだろ ヘルスバーグ監修だしな あれはC#と違ってGoogleのAngular2に採用されて正真正銘の世界標準になった
708 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 20:49:00.07 ID:Kluqtjpy.net] 上を見るより隣の奴の足を引っ張って蹴り落とす方が楽しいから。
709 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 20:57:32.51 ID:Kluqtjpy.net] ああ、typescriptはいいね。 空前絶後究極醜悪仕様のjavascriptのせいもあるが、 コードを書いてて幸せを感じられる。
710 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 21:17:06.11 ID:HVtjB7Nt.net] スピルバーグ?(難聴)
711 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 23:52:05.55 ID:xUV9On1g.net] コマンドやプロパティ周りに同じような記述をしないといけないのが面倒 すべてのイベントがコマンドでできたらなー トリガー?イベントを言い換えただけじゃないか ビヘイビア?そこまでして必死に分離する必要あるのか? それに物理的に分離してても、特定のViewに意味的に依存したコードに変わりないよね だったらイベントでいいじゃない とにかくMVVMの強迫観念が付きまとう オシャレなGUIもいらない もっさり 情報がない 調べる時間が勿体無い Xamlとコードを行ったり来たりが面倒くさい フォームはイベントハンドラだらけ、データバインド面倒ってだけかな
712 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 00:37:56.86 ID:TRBM8DsG.net] Xamlはそろそろ終わりだろう 流行ってない上に目玉が需要のないWindowsストアだからお先真っ暗 MFCと同レベルの状況だよ そのなのやる暇あったらTypescriptとNode.jsをやれ Visual Studio CodeはElectronで作られてるしNode.jsデバッガ標準装備だしMSも舵をきった Web標準技術路線の流れは止まらんよ
713 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 01:49:09.88 ID:Ovp34esS.net] じゃあ、次期VisualStudioはwebアプリかな。
714 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 01:54:38.52 ID:5g3VdvzW.net] VS Codeあるしな
715 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 02:33:43.83 ID:fx55niMq.net] フォームで不満があるすれば、ちょっと凝ったデザインにしようとした途端、恐ろしく面倒なことぐらいだな。
716 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 04:07:57.25 ID:Vbdvj8E0.net] MFCはまだまだ普通に需要あるでしょう おっさん全然離れないし WPFの絶望感はなんともかんとも 古い人は移行しないし、新しい人は来ないし、ストアとか誰が使うんだよって感じだし やりたきゃ、素直に別途スマートフォンに特化したOS作りゃいいのにね
717 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 05:05:14.87 ID:x1SFUzCz.net] Windows用のちょっとしたツールを作る場合みんな何で作ってるの? スクレイピング、zip再圧縮、画像加工、ファイル移動、ファイルリネームなど これからそれぞれ自分用に作っていこうと思ってる
718 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 05:24:29.79 ID:Vbdvj8E0.net] batファイルかなw
719 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 07:03:54.72 ID:ysgs5SCx.net] スクレイピングはruby zipはそのまんまzipコマンド 画像加工はimagemagick 全体の制御やファイル操作はperl
720 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 11:39:52.84 ID:mVStRMDa.net] 全部python
721 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 13:27:08.88 ID:Y54LX3ro.net] powershell
722 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 15:30:35.44 ID:zPPOQadD.net] Windows7とVS2012だと、Bluetooth LEのGATTプロファイルとかって使えないの? https://msdn.microsoft.com/en-us/library/windows.devices.bluetooth.genericattributeprofile.gattdeviceservice.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1
723 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 18:12:09.50 ID:jCBnlrqE.net] MSから出してるのではGATTは使えないと思った
724 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 21:42:14.52 ID:96BnYR0W.net] 非常に細かいことなのですが、 IEnumerable<T>を実装したクラス(もしくはオブジェクト)のことは何と呼べばいいのでしょうか? 列挙子?それともコレクション? どちらも微妙に違う気がするので、質問させていただきました。
725 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 21:46:42.28 ID:ysgs5SCx.net] 一般的にはコレクションでいい 順番を意識する場合は明示的に「要素のシーケンス」と呼んだりすることもある
726 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 22:03:45.37 ID:Iud
] [ここ壊れてます]
727 名前:Fs22n.net mailto: >>689 使いこなせてないだけ。というか何か誤解してる。 使いまわししない場面でビヘイビアやトリガーを無理して使う必要ない。 [] [ここ壊れてます]
728 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 22:05:22.32 ID:96BnYR0W.net] ありがとうございます。 コレクションにします。
729 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 22:13:49.61 ID:mVStRMDa.net] たかがデサインパターンに強迫観念まで持ってしまうって凄い 影響されやすいにもほどがある
730 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:11:06.49 ID:Roxx949g.net] iOSアプリの開発はAndroidアプリより30%安価--あるソフト開発会社が示したデータ japan.zdnet.com/article/35073153/ また、Infinumは開発時の経験から、 Androidアプリのレイアウトで用いられるXMLの使われ方が、iOSで用られるWYSIWIGによるアプローチ ほど効率的でない点を指摘している。 まさにこれ、xamlの不利な点もこれに同じ 対してiOSはformsの発展系みたいなシステムだから即効作れる
731 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:21:31.22 ID:/+peIgnx.net] >>703 >>703 要素のシーケンス? IEnumerable<T>は列挙される要素の順序なんて保障しないし 列挙される要素を返すオブジェクトの事だろ 要素でもないしシーケンスでもないじゃないか
732 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:33:42.89 ID:1POahPwI.net] 蛇遣いなのでイテラブル/イテレータ
733 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:35:00.27 ID:hQ+Ng6ni.net] マイクロソフトがシーケンスって呼んでるんだから、シーケンスって呼べよ 混乱の元
734 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:36:20.71 ID:hQ+Ng6ni.net] 俺何でも知ってる、賢いだろうw と、話が通じない流れはこうして始まる
735 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:39:46.19 ID:1POahPwI.net] 下品な単芝だなぁ
736 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:45:36.61 ID:/+peIgnx.net] >>710 MSの用語で、列挙で返されるものをシーケンスと呼んでいるところはあるけど IEnumerable<T>実装クラスのことをシーケンスと呼んでるところなんて無いだろ
737 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:47:40.91 ID:hQ+Ng6ni.net] 話聞かない回答者がまた暴れだす、死ね
738 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:59:29.52 ID:2vpVS7Y/.net] こんな時間からID真っ赤にしないようにちゃんと変えとくんだゾ
739 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:59:45.55 ID:jhfL3S8B.net] Enumerable.SequenceEqualとかまさしくシーケンスじゃないの?
740 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 01:04:34.29 ID:qdWTE3pv.net] TupleのitemXって任意名称に変えられないのかね 使いたいけど、itemXが何を指すのか明示し辛くて毎回クラス作る羽目になる
741 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 01:13:37.70 ID:MPuvgpwO.net] >>717 C# 7.0でそこらへん改善しようという動きはあるが、現状だと無理だな。
742 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 02:15:32.79 ID:J1zmvVNV.net] >>713 言いたいことは分からんでもないが列挙で返されるものは要素であってシーケンスじゃないよw ニュアンス的には、イテレーターやクエリ式みたいにIEnumerable<T>を実装したクラスであるかのようにふるまう 何者かのことをシーケンスと呼んでるようにも感じるけど、機能的に等価なんだから同じでしょ。
743 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 02:24:54.15 ID:/+peIgnx.net] >>716 IEnumerable<T>で返される集合がシーケンス、その構成物が要素 IEnumerable<T>そのものは要素でもシーケンスでもない まあ仮に、IEnumerable<T>そのものがシーケンスと呼ばれるとしても IEnumerable<T>実装クラスはシーケンスじゃないし
744 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 02:27:02.08 ID:dpUw/w5G.net] IEmunerableを実装したクラスはIEnumerableと呼んでるな だってIEnumerableとして使うわけだし もと質問者の求める答えとはちょっと違うか・・・
745 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 04:08:25.76 ID:MPuvgpwO.net] IEmunerable<T> Hoge() みたいなメソッドのサマリーを書くとして、「○○を列挙します。」と説明するのが一番自然だと思う。 「○○のコレクションを返します。」だと、List<T>とか配列のようなものが返されるイメージだし、「○○のシーケンスを…」だと違和感が残る。
746 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 05:06:28.14 ID:FnAxvR+K.net] 全然知らないんですがMoveNextとかはEnumerator実装ですよね? Enumerableでも使えるのはGetEnumeratorでEnumerator取ってるからですか?
747 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 10:46:36.52 ID:MPuvgpwO.net] IEnumerable<T>の定義を見てみよう。
748 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 17:51:33.59 ID:jH4gdhBC.net] ある文字列の中で、2つのキーワードの中にある文字列をLINQを使って抽出したいのですが、やり方が分かりません。 例えば、下の文字列の 「ABCD<a>123</a>EFG」 の中から、<a>と</a>に囲まれた部分だけを取るという事がしたいのです。
749 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 17:55:09.09 ID:DUfHt6hF.net] バカには無理
750 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 17:55:24.62 ID:h0434h88.net] なぜLINQでやろうと思った?
751 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:08:23.13 ID:Usz+Er1r.net] 縛りプレイもしくは宿題
752 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:20:02.61 ID:+wF1gX1q.net] おまえらどんだけLINQが嫌いなんだよ〜 立て続けに素晴らしい連体感だなww
753 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:20:11.07 ID:jH4gdhBC.net] >>727 最終的にしたいのは、大きめのファイルをFile.ReadLinesを使って読み込み、その中から特定の文字列を取りたいのです。 File.ReadLinesでLINQを使って(正規表現併用でもして)抽出できないのかと、思案してる所です。
754 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:23:29.23 ID:87RveuhT.net] >File.ReadLinesを使って読み込み まずそこから間違ってる
755 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:40:07.71 ID:YDOXgbvn.net] ABCD<a>12<a>3</a>EF</a>G みたいなのはどうする?
756 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:53:04.03 ID:jH4gdhBC.net] >>731 巨大なファイル内にある特定の文字を取りたくて、File.ReadLinesを使おうと思ったのです。 ちなみに、これを使う事になったのは↓のサイトの処理速度を見てこれは使えそうと思いました。 ttp://devlights.hatenablog.com/entry/20101116/p2 >>732 <a>〜</a>の組み合わせは今のところ一つだけを想定しています。
757 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:05:23.62 ID:MPuvgpwO.net] 巨大のファイルをFile.ReadLinesで読み込むのはちょっと…ってのはおいといて var urls = File.ReadLines( @"hoge.txt" ) .Where( x => !string.IsNullOrWhiteSpace( x ) ) .Select( x => Regex.Match( x , "<a href=\"(?<url>.*?)\".*?>(?<text>.*?)</a>" , RegexOptions.IgnoreCase ).Groups["url"]?.Value ) .Where( x => !string.IsNullOrWhiteSpace( x ) ); みたいにすれば取り出せるだろうけど
758 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:21:42.43 ID:jH4gdhBC.net] >>734 ソース有難うございます。 まだ、不明な点がありますが調べてみます。
759 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:35:10.88 ID:hQ+Ng6ni.net] 別にLINQ嫌いじゃないが、そんな事すんなよなとは思ったw
760 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:36:07.54 ID:ZERl/AOH.net] >>734 ReadLinesは遅延評価だからReadAllLinesとは違って巨大なファイルでも効率いいよ
761 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:40:57.26 ID:MPuvgpwO.net] >>737 すまん、ああ、それと勘違いしてた…
762 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:41:01.76 ID:YDOXgbvn.net] 改行をまたいでたらどうすんだってことだろ
763 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:46:45.62 ID:MPuvgpwO.net] そこは想定外ってことで…
764 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 20:06:32.47 ID:je1SKr0C.net] WindowsFormアプリケーションを勉強中ですが、タブレットPCでもWindowsFormは動作しますかね 実機に触ったことがないのでよくわからんのですが、 Windows8やWindows10あたりが入ってるタブレット端末なら作ったWindowsFormのアプリも 使えますでしょうか?(画面サイズを考慮して作るのは当然として) それともストアアプリとしてじゃないと入れられなかったりするんでしょうか
765 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 20:15:23.36 ID:MPuvgpwO.net] >>741 特に問題なく動作可能。 ただ高dpi環境とかで動かすと残念なことになるかも知れないけど
766 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 2
] [ここ壊れてます]
767 名前:2:32:02.21 ID:WW0Z/7Lv.net mailto: 無関係だが スレタイにはちゃんと (初心者用) と書かれているよな [] [ここ壊れてます]
768 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 23:20:47.01 ID:hQ+Ng6ni.net] 向き不向きは考えた方がいいかもね LINQで文字列処理とか、Formでモバイル系とか
769 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 23:55:46.17 ID:2kBONmlk.net] データの集まりに対する統一的な操作だからね
770 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 00:25:57.38 ID:b15uPX39.net] 実際にどうか分からんが、件のデータがhtmlだとしたらHtml Agility Packなんか使ったほうがトラブルに巻き込まれずに済むかもしれんね
771 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 02:25:12.08 ID:NUMUMJ+D.net] LINQは同じようなデータに対する処理を書くものだから正規表現とかやるならLINQである必要性が薄い たとえばnew{Name, Kokugo, Sansu, Rika, Shakai}みたいなクラスを作れる成績表ファイルだったらFile.ReadLinesでLINQが有効 >>734 のやりかたなら普通にforeachしたほうがわかりやすいと思う var list = new List<string>(); foreach(var line in File.ReadLines( @"hoge.txt" )){ if(!string.IsNullOrWhiteSpace(line)){ var str = Regex.Match(line , "<a href=\"(?<url>.*?)\".*?>(?<text>.*?)</a>" , RegexOptions.IgnoreCase ).Groups["url"]?.Value; if(!string.IsNullOrWhiteSpace(str)) list.Add(str); } }
772 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 07:56:05.65 ID:Los5n9AY.net] 求めてるのは分かりやすさではなく自己満足だ 余計な世話を働くな
773 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 07:58:25.66 ID:FwVQMCtV.net] どう見てもLINQの方が見易い
774 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 08:03:54.52 ID:dubRMvMU.net] そうだな このケースは実質的には 行の集合→フィルタ→変換→フィルタ→結果の集合 という要素ごとに独立な集合操作なのでLINQを使うのはおかしくはない
775 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 09:27:42.54 ID:b15uPX39.net] htmlのタグは行をまたぐことも多いから、行の集合体として処理するとエライ事になるよ
776 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 17:10:09.52 ID:2y0wDvFa.net] >>747 foreach使ったら遅延の意味ないし さらに新たにlist作ってるのが古臭い
777 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 18:06:53.36 ID:sljIQlRZ.net] >foreach使ったら遅延の意味ないし ?
778 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 19:38:54.77 ID:Ky5LrglX.net] 今時2.0のレガシーなソースコードを流用しないといけないんだけど、XML Webサービスと型付データセットでこれををEFとEDMに置き換えることによるデメリットって何かある? ちなみに同一アセンブリ内からしか呼び出ししてないのになぜかASP.NETでWeb参照作ってSQL Serverと接続させてる元開発者の意図が読み取れないんだけど・・・
779 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 19:45:39.77 ID:EC9THrMO.net] >>754 今となってはEFだからとコードファーストにする必要も無く、既存のDBから作れるし別に問題ないんじゃね 動作環境を4.5.2にしないと来年早々にサポートが切れることぐらいか
780 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 20:05:38.85 ID:yYqeH5aP.net] わざわざList<T>なんぞ作らず、yield returnにしておけばいい。 それならforeach使おうが、遅延評価されるやろ。
781 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 20:18:02.90 ID:sljIQlRZ.net] ??
782 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 20:58:20.79 ID:VAIEdV8u.net] 脳に障害でも抱えてんのかお前
783 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 21:23:02.20 ID:cKAT5bUn.net] すみません。 すぐ片付けますので。
784 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:04:08.00 ID:Ky5LrglX.net] >>755 いやどっちみち既存DB使うからデータベースファーストなんだけど、SqlCommandじゃなくてLINQ to Entity使いたいからEFなんだよ
785 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:07:54.82 ID:EC9THrMO.net] >>760 何が言いたいのかわらかないけど、使いたいなら使えとしか・・・
786 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:14:13.84 ID:
] [ここ壊れてます]
787 名前:VAIEdV8u.net mailto: ファイト一発 [] [ここ壊れてます]
788 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:27:48.52 ID:AjxvVfcS.net] >>760 今なら既存DBからコードファーストというオプションが存在するんだぜ LINQ使いたいだけならLINQ to DataSetって方法もあるぞ 既存コードの量にもよるけど、既存コード全部修正してまでEF導入するほどのメリットがあるのか あるいはEFとADO.NET直接や型付きデータセットを混在させるのは容認されるのか
789 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:38:34.20 ID:2y0wDvFa.net] >>753 本当に分からないの? すべての要素を実体化させてるからなんだけどね。
790 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:05:26.00 ID:+tTEt6jT.net] >>764 ごめん 俺もわからん 解説plz
791 名前:デフォルトの名無しさん [2015/11/12(木) 23:08:48.25 ID:qQwabUEl.net] お世話になります。 非同期処理でUIにアクセスするさいにBeginInvokeを使っているのですが 回転数が少なく条件にマッチしない場合BeginInvokeの方が先に終わってしまうのか labelの方は100000と書いてあるのに終了のメッセージボックスがしばらくしないと出ない感じに なってしまいます。。 Taskスタートのつもり { for (j = 0; j <10000; j++) { メソッド1(j); bool flg=メソッド2(j); if (flg) this.Invoke(new Action(() => HITLabel.Text = "hiT")); this.BeginInvoke(new Action(() =>進行Label.Text=j+1.ToString()));// } //ループ終了 }); MessageBox.Show("完了せり"); とこんな感じでかなりあれなんですが・・・ Invokeにすれば同期できるんですが終了待ちする関係で 時間が掛かってしまい3秒くらい追加になってしまうようです。 BeginInvokeを使いループ終了と同期させる方法がないでしょうか? 200万ぐらいから同期するみたいなんですが。
792 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:13:38.94 ID:Dz+qxRLQ.net] >>764 遅延評価させる意味というか目的を教えてほしい。
793 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:19:26.88 ID:dubRMvMU.net] >>766 それjが一つだから進行Label.Textは最初から全部10001になるだろ BeginInvokeは引数を渡せるオーバーロードがあるから進捗情報はそっちで渡せ jをループ内で宣言し直す方法もあるけど、 コンテキストをまたがって変数を共有するのはトラブルの元なので極力避けることをお勧めする
794 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:29:31.65 ID:qQwabUEl.net] >>768 さん アドバイスありがとうございます。 jの件仰るとおりでした それと肝心のBeginInvokeですがつまりActionではなく デリゲードを生成してそちらに引数を渡せば解決するということでしょうか?
795 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:35:00.45 ID:yYqeH5aP.net] そもそも、今の時代にBeginInvokeなんか使ってるのが間違い。 Task.、async / awaitを使うべき。
796 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:45:09.01 ID:qQwabUEl.net] >>770 さん 仰る通りだと思うんですがasync/awaitは4.5?でしたか。環境が駄目でorz
797 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:52:28.74 ID:FwVQMCtV.net] foreach使ったらダメとか思い込んでる奴は恐ろしいな 遅延評価は最後のforeachのためだぞ
798 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 00:05:42.71 ID:0XMaJRAY.net] LINQの話が自演荒らし臭くなってきた
799 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 01:32:54.47 ID:mVyjF6P7.net] Linqで作成したqueryをforeachにかけるならいいけどね
800 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 03:14:28.15 ID:fOj/PJch.net] もしファイルが巨大ならスレッドブロックしちゃうし、listに追加したらメモリ使い果たしちゃう 状況にもよるけど、別スレッドでファイルとかに逐次書き出すとかが理想
801 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 07:05:08.20 ID:iH7KAiTO.net] >>771 blog.xin
802 名前:9le.net/entry/2012/12/26/125214 4.0でも使えないわけじゃない [] [ここ壊れてます]
803 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 21:50:19.26 ID:WHtd9CIG.net] >>768 さん private delegate void デリゲート(int n); private void 進行表示なのよさ(int n) { 進行Label.Text=n.ToString()));// } デリゲート デリゲート進行なのよメソッド= new デリゲート(進行表示なのよさ); this.BeginInvoke(デリゲート進行なのよメソッド, new object[] { j }); と渡しましたけど無事に死亡確認しました。orz 変らず・・・・ なんか5万でやったら処理が間に合わないのかデッドロック >>776 さん あっライブラリーを別にインストールしてやる感じですか。 ありがとうございます。
804 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 21:56:43.98 ID:qRfCc0Iv.net] なんでわざわざdelegate宣言してんの? 特別、ref とか outを使いたいとかじゃない限り、Action<T>、Func<T> を使うべき。
805 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 22:05:31.10 ID:WHtd9CIG.net] >>778 さん あっ宣言しなくても省略できるんですか・・ void Action<T>(T obj)・・これは知らなかったです・すいません。 Tにメソッドを入れて引数にT objを指定する感じですかな。 どうにも疎くて;;
806 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 22:11:25.68 ID:v46Ke5nq.net] 死ねアッチョンブリケ
807 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 22:16:22.98 ID:qRfCc0Iv.net] .NET 4.0ならBeginInvokeとかInvokeとか使わずTaskを使うといい。 Task.Factory.StartNew( () => { // 別スレッド Thread.Sleep( 3000 ); // 重い処理のつもり return 1000; } ).ContinueWith( task => { // UIスレッド this.label.Text = task.Result.ToString(); } , TaskScheduler.FromCurrentSynchronizationContext() );
808 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 00:12:23.08 ID:PWAfQw+v.net] >>781 非UIスレッド側からUIスレッドにイベントを通知したい、なんてケースもあるので万能じゃないけどね。
809 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 00:28:17.73 ID:zC8KxVmn.net] >>782 そういうのは、Rx使ってる。
810 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 00:45:14.09 ID:JMgFPTs6.net] .NET MVCで画面作るときに viewに複雑のユーザー定義クラスを渡す時ってカスタムbinderつくるしかない?? 例えば検索フォームと一覧で構成される画面で 検索フォームmodelと一覧modelをバインディングするみたいな。
811 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 01:45:16.57 ID:J/xjBQ6p.net] 何をわけの分からんことを class 俺モデル { public 検索フォームmodel M1; public 一覧model M2; } これをモデルとして渡せばOK
812 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 02:49:03.10 ID:JMgFPTs6.net] >>785 view側で @TextBoxFor(m => m.M1.Unko) @TextBoxFor(m => m.M2.Chinko) みたいなのをformで送ったが、 ActionメソッドをIndex(俺モデル myModel) としても、値とってこれないんだよね
813 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 02:56:01.24 ID:T0Fy32Ow.net] >>781 の兄者・・ 駄目でした;; 既にtaskは使っていて var task1 = Task.Factory.StartNew(() => これの終了に別のタスクで繋いで終了表示をしてるんですが 781の兄者のやり方のとおりに子タスクを設定してみたんです。 したら親タスクのつなぎタスクに繋がらないときがあるみたいで;; なんで繋がなくなる時がある上に終了してるのに 終了ウィンドウがしばらくしないと出ないのか・・ きっと妖怪のせい・・
814 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 11:18:55.84 ID:10oOQI9U.net] まず日本語が、正しく以下略
815 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 13:23:53.12 ID:m53r0/yX.net] こういうのを見ているとTaskチェインよりもawaitの方がスマートだというのがはっきり分かるな
816 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 16:57:33.34 ID:g6rNXfjz.net] >>786 だけど getter setterつけたらいけたわ。
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 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています