15/11/08 12:49:12.21 cfidXKbm.net
>>631
List<T>でFindeIndex(s => s.id == searchID)とか
でもidがprivateだな
検索数多いなら632が言うようにキーがIDの辞書作った方が速い
656:デフォルトの名無しさん
15/11/08 13:05:36.69 qxSNyhqm.net
privateなプロパティを持っているとLINQで匿名型をnewしようとしてもアクセス出来ないレベル
というエラーが出るしなあ
そして匿名型はコンストラクタを呼び出す手段がないので次のようなコードがコンパイルできない
URLリンク(ideone.com)
657:631
15/11/08 13:35:56.75 gApUJ0pc.net
回答ありがとうございます
>>632
Dictionaryを詳しく調べてみます
データを格納後に、Dictionaryで別途索引を作る…というイメージですよね、たぶん
LINQも調べて勉強してみます
>>636
FindIndexも調べてみます
FindIndexは構造体のIDがprivateでなければ使えるのかな?
なお、件数はおそらく多くなりますので、Dictionaryでいこうと思います
>>637
構造体のつくり自体がそもそもまずいということですね
データを扱うのに構造体が良さそうだと思い使おうとしていたのですが、
まだまだ勉強不足のようで…勉強し直します
匿名型というのも分かってないレベルです
ひとまず頂いた回答・ヒントからいろいろ調べてやってみます
つまづいてどうしようもなくなったらまた質問に来ますので
その際はみなさんよろしくお願いします
658:デフォルトの名無しさん
15/11/08 14:11:47.01 IOiPLIcZ.net
>>635
wpfのことは忘れてFormsアプリを作�
659:驍セ
660:633
15/11/08 14:13:41.26 pl2PgCRK.net
>>639
今あえてWPFでなくFormsを学ぶ理由は何なんでしょう?
661:デフォルトの名無しさん
15/11/08 14:21:58.19 qxSNyhqm.net
匿名型やめて普通にnewすれば行けるよ
この場合でも読み出し専用のプロパティは必要だけど
URLリンク(ideone.com)
662:デフォルトの名無しさん
15/11/08 14:22:03.96 qE8APb0L.net
そりゃあ情報量だろ
663:633
15/11/08 14:24:04.50 pl2PgCRK.net
>>642
なるほどな…すまんが、それでもやっぱりWPFでいきたいわ
情報量が、と言うならC++でもやってろ、という話になるので
664:デフォルトの名無しさん
15/11/08 14:26:58.36 qxSNyhqm.net
それとToArray()はこの場合は不要だった
遅延評価でいいや
それとインデックスが不要なんだから(tt, n)でなくて(tt)でいい
適当に書いたからいろいろおかしかった
665:デフォルトの名無しさん
15/11/08 14:28:16.90 jwSrphbk.net
フォームアプリだとストア対応はまた別スキル?
666:デフォルトの名無しさん
15/11/08 14:48:07.12 t8ezhEA7.net
WPFはマイクロソフトからもとっくの昔に見捨てられたコンテンツだからな
2010年くらいからほぼ更新されてない
開発者も減ってるし今更やっても無駄
そんなのやるくらいなら注目度高いElectronでもやったほうが100倍モチベーション上がるだろ
667:デフォルトの名無しさん
15/11/08 14:48:47.97 0dVpsRSu.net
>>638
キーが決まってるならKeyedCollectionなんてのもある
構造体orクラスの問題は、大抵の場合、クラスの方がいい
構造体はnewのコストが問題になった時に試してみればいい
668:633
15/11/08 15:05:42.53 pl2PgCRK.net
>>646
すまん。Electronも考えたんだが、いかにもWebアプリっぽい見た目と動作になるのが気持ち悪くてなぁ…
WPFは見捨てられたと言うのであれば、皆WindowsでGUIアプリを作るには何を使ってるんだろう?
669:デフォルトの名無しさん
15/11/08 15:10:08.20 qL6T2MEr.net
>>646
.Net4.6で改良されてるし、どこまで本気か分からないけど最近微妙にやる気出してるようだよ。
URLリンク(blogs.msdn.com)
670:デフォルトの名無しさん
15/11/08 15:14:56.34 b5oYWyCu.net
フォームのほうが見捨てられてるからWPF以上に未来はないと思うが、だからといってWPFに乗り換える気が起きない。
んで結局、フォームから未だ抜け出せずにいる。
671:デフォルトの名無しさん
15/11/08 15:18:18.25 t8ezhEA7.net
これからはWPFと言いながら10年近く全く普及せずに下降線を辿ってきたからな
だいたいGUIアプリにしてもWindowsデスクトップに固執するような時代はとっくに終わってる
672:デフォルトの名無しさん
15/11/08 15:51:44.93 +dkH7XCP.net
WPFは早期に標準コントロールを充実させていれば多少は広まったんじゃないのかな
673:デフォルトの名無しさん
15/11/08 16:09:34.75 b5oYWyCu.net
MVVMだなんだの言いながらデフォルトでそれ系のまともなフレームワークが入ってないのが敗因だろうな。
674:デフォルトの名無しさん
15/11/08 16:21:43.65 IOiPLIcZ.net
wpfのまともな文献がないというのが
このFrameworkの実態を表しているような気がするね
ネットにあるのは、Formsとは違うんです!っていう営業トークか
MVVMという概念がすごいんですってだけだろ
実際MVVMが必要になるような高度なアプリケーションなんてあるのか?
リアルタイムにデータを処理するにしてもイベントドリブンモデルのほうが簡潔で扱いやすい
MVVMはオブジェクト指向を「こじらせた」典型例だと思うんだよね
675:デフォルトの名無しさん
15/11/08 16:40:41.80 qWpIgAsz.net
>>654
いや英語では結構本出てるよ。
MVVMがウンコなのは同意するけどw
676:デフォルトの名無しさん
15/11/08 16:57:42.27 qE8APb0L.net
設計がとにかく野暮ったい
僕の考えた最強の~って感じ
引き算を覚えてくれ頼むから
WPFを
677:除けば成功しているMVVMフレームワークはいくらでもあるし 設計センスの問題だと思う
678:デフォルトの名無しさん
15/11/08 17:02:03.13 t8ezhEA7.net
mvcとかやりたければ本流のhtml5使えばいい
標準フレームワークも用意されないWPFが流行るわけもない
マイクロソフトも普及させる気はないよ
ポーズだけ
Silverlight潰したりマイクロソフトは既に独自技術の普及を断念してる
代わってTypescript用意したりweb標準技術の採用に舵を切ってる
679:デフォルトの名無しさん
15/11/08 21:46:02.90 SGCCwhdk.net
>>650
フォームは現時点でほぼ完成しているから何も変える必要ないんじゃないの?足りない機能ある?
680:デフォルトの名無しさん
15/11/08 22:53:03.65 X/vorztS.net
prism使って、データバインドが非常に協力でコードもすっきり書けるけど、
Formsなら簡単に出来た事がものすごく手間だったり、
独自のUIが簡単にというが実際はとてつもなく面倒くさい。
datagridの配色変えるだけでも、
あの部分をどこで色を変えられるのか調べるだけで相当時間がかかる
681:デフォルトの名無しさん
15/11/08 22:54:49.77 b5oYWyCu.net
>>658
フォームに関しては、今更機能追加されたところであれだし、現状維持してくれれば十分だな。
682:デフォルトの名無しさん
15/11/08 22:55:41.36 HlEs+VqN.net
俺はMFC FeaturePack並のツールバーやドッキングウィンドウが標準で欲しいなぁ。
今はサードパーティー頼みだし。
MFCも、もうメンテナンスモードだろうと思ってた頃にFeaturePack出てきたんだから
ワンチャンあると信じたい。
683:デフォルトの名無しさん
15/11/08 22:58:52.76 l/gAevhW.net
WPFのDataGridは全く使い物にならない
あの糞がそのまま放置されてるんだから、MSのやる気の無さがよくわかる
まあそもそもWPFは設計思想的にDataGrid的なものはListViewをカスタマイズして作るもんであって、
出来合いのDataGridをそのまま使うようないい加減なGUIでいいのならWPF使う必要は全く無いんだけどね
684:デフォルトの名無しさん
15/11/08 23:04:24.23 b5oYWyCu.net
WPFならMVVMでドメインとビューの分離が~とか言うが、フォームでもある程度は、データバインドできるし、
WPFほどまでは行かないにしろ、そこそこの分離は、可能だと思う。
いざとなれば、ビューを直接扱えるし、WPFみたいに変に手回ししなくていいしフォームのほうが楽。
685:デフォルトの名無しさん
15/11/08 23:26:11.25 X/vorztS.net
WPFはC#を習得した人用だからなあ、
いきなりC#とXaml両方まなぶのはきついんじゃない?
GUIを今後一切変更しないならFormsでいいだろうけど、
変更したくなった時、クソ面倒くさい
686:デフォルトの名無しさん
15/11/09 00:30:33.40 nH7Pt/o2.net
言語としてのC#にそんなに覚えることがあるとは思えんが、
WPFは覚えることだらけだな。
しかもMSDNのどこにも明示されてない仕様も結構あってかなり萎える。
687:デフォルトの名無しさん
15/11/09 00:42:01.77 YzX/XRY3.net
>>662
>DataGrid的なものはListViewをカスタマイズして作るもんであって、
このカスタマイズする前に大量のオブジェクトの前に力尽きる人が多かったから
WPFは流行らなかったんだろうな
オブジェクト指向の継承って結構早い段階から使うのやめとけ
って言われてたと思うけどwpfって継承地獄なんだよなあ
688:デフォルトの名無しさん
15/11/09 01:51:51.42 q+BDOfSy.net
継承(is a)より包含(has a)とか、無駄に複雑な継承関係にしないとかなら分かるけど、
一般論としてそんなこと言われてたっけ?
689:デフォルトの名無しさん
15/11/09 03:56:53.75 m77m/g5H.net
WPFが出た当時、そちらに移行しなかった最大の理由は
リファクタしたら、XAMLだけ手作業修正になったから
今は、ちゃんと連動してるんだろうか?
していた�
690:ニころで、あんだけ複雑で、しかも機能的にフォームから浮いていると移行する気にはなれないけど
691:デフォルトの名無しさん
15/11/09 04:06:23.65 m77m/g5H.net
>>654
同感、WPFからATL臭がする
これからはWPFだといっている人は何見て、WPFが流行っていると思っているのだろうか?
692:デフォルトの名無しさん
15/11/09 08:53:11.53 AkXykSSl.net
wpfのControlTemplateは、FormsのOwnerDrawに比べたら格段に楽だと思うけどな
693:デフォルトの名無しさん
15/11/09 09:23:03.24 eW5XCVAC.net
部分を誇っても仕方ない
一芸に秀でていれば使えないこともない人間とは違うんだよ
フレームワークは全体のバランスが求められる
694:デフォルトの名無しさん
15/11/09 12:09:04.18 6wZmioGw.net
でも結局は作りたいものに適した形をしているか、ってだけだからな。
適してれば(=開発工数を抑えられるならば)、どんなんだって使うことはあるし。
ここで声高に否定することに意味があるとは思えん。むしろなにか作為でもある?
695:デフォルトの名無しさん
15/11/09 12:24:46.82 7FJWPJQr.net
自動生成はWPFのが簡単でいいよね
工数削れるよ
696:デフォルトの名無しさん
15/11/09 12:30:10.88 eW5XCVAC.net
否定派の前で肯定するから否定されてんだろ
頭悪いんじゃねえのか?
697:デフォルトの名無しさん
15/11/09 12:35:57.06 EOVCHtBm.net
639が聞かれてもいないお節介を焼いたのがそもそもの原因だ
発狂するまでXAML書き続けて死ね
698:デフォルトの名無しさん
15/11/09 13:09:55.63 6wZmioGw.net
声高に否定しhとかないと不安なのかと。w
699:デフォルトの名無しさん
15/11/09 13:22:50.09 eW5XCVAC.net
書き込みの推敲もできないほどではないんじゃねえの~
クソでも漏らしそうなのか?
漏らすなよ、ただでさえ臭いんだからな
700:デフォルトの名無しさん
15/11/09 13:31:13.13 6wZmioGw.net
え。まさかの図星だったんだ。w
701:デフォルトの名無しさん
15/11/09 16:23:18.75 m77m/g5H.net
>>672
作為とか特にないけど、俺の知っている業界の範囲でWPFを使っている所なんてないし
一時使っていたところも全部切り上げてFormsに戻ったからな
誰が使っているんだ?って思って書いてみた
702:デフォルトの名無しさん
15/11/09 16:25:52.00 m77m/g5H.net
あと、自分の経験から、フレームワークが死ぬかどうかの嗅覚センサーは高精度にしておいた方がいい
システムが大規模になってから、さあ元に戻ろうとかいう話になると地獄みるでw
703:デフォルトの名無しさん
15/11/09 18:25:32.73 s3Itz59O.net
WPFは、やたらと抽象化しすぎで、解りづらいんだよなぁ
704:デフォルトの名無しさん
15/11/09 19:32:07.70 YzX/XRY3.net
声高に否定しとかないと、ふらっと誰かが立ち入るかもしれないだろ?
誰も助けられないエリアに人が立ち入ろうとしたら全力で止める
それは時間の無駄と戦い続けてきたICT分野の精神そのもの
705:デフォルトの名無しさん
15/11/09 20:45:05.97 XHl8ePvc.net
出来損ない人間のくせにそういう意識だけ持ってられると非常に迷惑
706:デフォルトの名無しさん
15/11/09 20:47:24.37 Z/Tj9+xS.net
クズ同士で反目しあっていたらいつまでたっても地獄から抜けだせないよ?
707:デフォルトの名無しさん
15/11/09 20:48:06.82 aHPhV6ij.net
C#erならあらゆる分野でTypescriptを使っていくべきだろ
ヘルスバーグ監修だしな
あれはC#と違ってGoogleのAngular2に採用されて正真正銘の世界標準になった
708:デフォルトの名無しさん
15/11/09 20:49:00.07 Kluqtjpy.net
上を見るより隣の奴の足を引っ張って蹴り落とす方が楽しいから。
709:デフォルトの名無しさん
15/11/09 20:57:32.51 Kluqtjpy.net
ああ、typescriptはいいね。
空前絶後究極醜悪仕様のjavascriptのせいもあるが、
コードを書いてて幸せを感じられる。
710:デフォルトの名無しさん
15/11/09 21:17:06.11 HVtjB7Nt.net
スピルバーグ?(難聴)
711:デフォルトの名無しさん
15/11/09 23:52:05.55 xUV9On1g.net
コマンドやプロパティ周りに同じような記述をしないといけないのが面倒
すべてのイベントがコマンドでできたらなー
トリガー?イベントを言い換えただけじゃないか
ビヘイビア?そこまでして必死に分離する必要あるのか?
それに物理的に分離してても、特定のViewに意味的に依存したコードに変わりないよね
だったらイベントでいいじゃない
とにかくMVVMの強迫観念が付きまとう
オシャレなGUIもいらない
もっさり
情報がない
調べる時間が勿体無い
Xamlとコードを行ったり来たりが面倒くさい
フォームはイベントハンドラだらけ、データバインド面倒ってだけかな
712:デフォルトの名無しさん
15/11/10 00:37:56.86 TRBM8DsG.net
Xamlはそろそろ終わりだろう
流行ってない上に目玉が需要のないWindowsストアだからお先真っ暗
MFCと同レベルの状況だよ
そのなのやる暇あったらTypescriptとNode.jsをやれ
Visual Studio CodeはElectronで作られてるしNode.jsデバッガ標準装備だしMSも舵をきった
Web標準技術路線の流れは止まらんよ
713:デフォルトの名無しさん
15/11/10 01:49:09.88 Ovp34esS.net
じゃあ、次期VisualStudioはwebアプリかな。
714:デフォルトの名無しさん
15/11/10 01:54:38.52 5g3VdvzW.net
VS Codeあるしな
715:デフォルトの名無しさん
15/11/10 02:33:43.83 fx55niMq.net
フォームで不満があるすれば、ちょっと凝ったデザインにしようとした途端、恐ろしく面倒なことぐらいだな。
716:デフォルトの名無しさん
15/11/10 04:07:57.25 Vbdvj8E0.net
MFCはまだまだ普通に需要あるでしょう
おっさん全然離れないし
WPFの絶望感はなんともかんとも
古い人は移行しないし、新しい人は来ないし、ストアとか誰が使うんだよって感じだし
やりたきゃ、素直に別途スマートフォンに特化したOS作りゃいいのにね
717:デフォルトの名無しさん
15/11/10 05:05:14.87 x1SFUzCz.net
Windows用のちょっとしたツールを作る場合みんな何で作ってるの?
スクレイピング、zip再圧縮、画像加工、ファイル移動、ファイルリネームなど
これからそれぞれ自分用に作っていこうと思ってる
718:デフォルトの名無しさん
15/11/10 05:24:29.79 Vbdvj8E0.net
batファイルかなw
719:デフォルトの名無しさん
15/11/10 07:03:54.72 ysgs5SCx.net
スクレイピングはruby
zipはそのまんまzipコマンド
画像加工はimagemagick
全体の制御やファイル操作はperl
720:デフォルトの名無しさん
15/11/10 11:39:52.84 mVStRMDa.net
全部python
721:デフォルトの名無しさん
15/11/10 13:27:08.88 Y54LX3ro.net
powershell
722:デフォルトの名無しさん
15/11/10 15:30:35.44 zPPOQadD.net
Windows7とVS2012だと、Bluetooth LEのGATTプロファイルとかって使えないの?
URLリンク(msdn.microsoft.com)
723:デフォルトの名無しさん
15/11/10 18:12:09.50 jCBnlrqE.net
MSから出してるのではGATTは使えないと思った
724:デフォルトの名無しさん
15/11/10 21:42:14.52 96BnYR0W.net
非常に細かいことなのですが、
IEnumerable<T>を実装したクラス(もしくはオブジェクト)のことは何と呼べばいいのでしょうか?
列挙子?それともコレクション?
どちらも微妙に違う気がするので、質問させていただきました。
725:デフォルトの名無しさん
15/11/10 21:46:42.28 ysgs5SCx.net
一般的にはコレクションでいい
順番を意識する場合は明示的に「要素のシーケンス」と呼んだりすることもある
726:デフォルトの名無しさん
15/11/10 22:03:45.37 Iud
727:Fs22n.net
728:デフォルトの名無しさん
15/11/10 22:05:22.32 96BnYR0W.net
ありがとうございます。
コレクションにします。
729:デフォルトの名無しさん
15/11/10 22:13:49.61 mVStRMDa.net
たかがデサインパターンに強迫観念まで持ってしまうって凄い
影響されやすいにもほどがある
730:デフォルトの名無しさん
15/11/11 00:11:06.49 Roxx949g.net
iOSアプリの開発はAndroidアプリより30%安価--あるソフト開発会社が示したデータ
URLリンク(japan.zdnet.com)
また、Infinumは開発時の経験から、
Androidアプリのレイアウトで用いられるXMLの使われ方が、iOSで用られるWYSIWIGによるアプローチ
ほど効率的でない点を指摘している。
まさにこれ、xamlの不利な点もこれに同じ
対してiOSはformsの発展系みたいなシステムだから即効作れる
731:デフォルトの名無しさん
15/11/11 00:21:31.22 /+peIgnx.net
>>703
>>703
要素のシーケンス?
IEnumerable<T>は列挙される要素の順序なんて保障しないし
列挙される要素を返すオブジェクトの事だろ
要素でもないしシーケンスでもないじゃないか
732:デフォルトの名無しさん
15/11/11 00:33:42.89 1POahPwI.net
蛇遣いなのでイテラブル/イテレータ
733:デフォルトの名無しさん
15/11/11 00:35:00.27 hQ+Ng6ni.net
マイクロソフトがシーケンスって呼んでるんだから、シーケンスって呼べよ
混乱の元
734:デフォルトの名無しさん
15/11/11 00:36:20.71 hQ+Ng6ni.net
俺何でも知ってる、賢いだろうw
と、話が通じない流れはこうして始まる
735:デフォルトの名無しさん
15/11/11 00:39:46.19 1POahPwI.net
下品な単芝だなぁ
736:デフォルトの名無しさん
15/11/11 00:45:36.61 /+peIgnx.net
>>710
MSの用語で、列挙で返されるものをシーケンスと呼んでいるところはあるけど
IEnumerable<T>実装クラスのことをシーケンスと呼んでるところなんて無いだろ
737:デフォルトの名無しさん
15/11/11 00:47:40.91 hQ+Ng6ni.net
話聞かない回答者がまた暴れだす、死ね
738:デフォルトの名無しさん
15/11/11 00:59:29.52 2vpVS7Y/.net
こんな時間からID真っ赤にしないようにちゃんと変えとくんだゾ
739:デフォルトの名無しさん
15/11/11 00:59:45.55 jhfL3S8B.net
Enumerable.SequenceEqualとかまさしくシーケンスじゃないの?
740:デフォルトの名無しさん
15/11/11 01:04:34.29 qdWTE3pv.net
TupleのitemXって任意名称に変えられないのかね
使いたいけど、itemXが何を指すのか明示し辛くて毎回クラス作る羽目になる
741:デフォルトの名無しさん
15/11/11 01:13:37.70 MPuvgpwO.net
>>717
C# 7.0でそこらへん改善しようという動きはあるが、現状だと無理だな。
742:デフォルトの名無しさん
15/11/11 02:15:32.79 J1zmvVNV.net
>>713
言いたいことは分からんでもないが列挙で返されるものは要素であってシーケンスじゃないよw
ニュアンス的には、イテレーターやクエリ式みたいにIEnumerable<T>を実装したクラスであるかのようにふるまう
何者かのことをシーケンスと呼んでるようにも感じるけど、機能的に等価なんだから同じでしょ。
743:デフォルトの名無しさん
15/11/11 02:24:54.15 /+peIgnx.net
>>716
IEnumerable<T>で返される集合がシーケンス、その構成物が要素
IEnumerable<T>そのものは要素でもシーケンスでもない
まあ仮に、IEnumerable<T>そのものがシーケンスと呼ばれるとしても
IEnumerable<T>実装クラスはシーケンスじゃないし
744:デフォルトの名無しさん
15/11/11 02:27:02.08 dpUw/w5G.net
IEmunerableを実装したクラスはIEnumerableと呼んでるな
だってIEnumerableとして使うわけだし
もと質問者の求める答えとはちょっと違うか・・・
745:デフォルトの名無しさん
15/11/11 04:08:25.76 MPuvgpwO.net
IEmunerable<T> Hoge() みたいなメソッドのサマリーを書くとして、「○○を列挙します。」と説明するのが一番自然だと思う。
「○○のコレクションを返します。」だと、List<T>とか配列のようなものが返されるイメージだし、「○○のシーケンスを…」だと違和感が残る。
746:デフォルトの名無しさん
15/11/11 05:06:28.14 FnAxvR+K.net
全然知らないんですがMoveNextとかはEnumerator実装ですよね?
Enumerableでも使えるのはGetEnumeratorでEnumerator取ってるからですか?
747:デフォルトの名無しさん
15/11/11 10:46:36.52 MPuvgpwO.net
IEnumerable<T>の定義を見てみよう。
748:デフォルトの名無しさん
15/11/11 17:51:33.59 jH4gdhBC.net
ある文字列の中で、2つのキーワードの中にある文字列をLINQを使って抽出したいのですが、やり方が分かりません。
例えば、下の文字列の
「ABCD<a>123</a>EFG」
の中から、<a>と</a>に囲まれた部分だけを取るという事がしたいのです。
749:デフォルトの名無しさん
15/11/11 17:55:09.09 DUfHt6hF.net
バカには無理
750:デフォルトの名無しさん
15/11/11 17:55:24.62 h0434h88.net
なぜLINQでやろうと思った?
751:デフォルトの名無しさん
15/11/11 18:08:23.13 Usz+Er1r.net
縛りプレイもしくは宿題
752:デフォルトの名無しさん
15/11/11 18:20:02.61 +wF1gX1q.net
おまえらどんだけLINQが嫌いなんだよ~
立て続けに素晴らしい連体感だなww
753:デフォルトの名無しさん
15/11/11 18:20:11.07 jH4gdhBC.net
>>727
最終的にしたいのは、大きめのファイルをFile.ReadLinesを使って読み込み、その中から特定の文字列を取りたいのです。
File.ReadLinesでLINQを使って(正規表現併用でもして)抽出できないのかと、思案してる所です。
754:デフォルトの名無しさん
15/11/11 18:23:29.23 87RveuhT.net
>File.ReadLinesを使って読み込み
まずそこから間違ってる
755:デフォルトの名無しさん
15/11/11 18:40:07.71 YDOXgbvn.net
ABCD<a>12<a>3</a>EF</a>G
みたいなのはどうする?
756:デフォルトの名無しさん
15/11/11 18:53:04.03 jH4gdhBC.net
>>731
巨大なファイル内にある特定の文字を取りたくて、File.ReadLinesを使おうと思ったのです。
ちなみに、これを使う事になったのは↓のサイトの処理速度を見てこれは使えそうと思いました。
URLリンク(devlights.hatenablog.com)
>>732
<a>~</a>の組み合わせは今のところ一つだけを想定しています。
757:デフォルトの名無しさん
15/11/11 19:05:23.62 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:デフォルトの名無しさん
15/11/11 19:21:42.43 jH4gdhBC.net
>>734
ソース有難うございます。
まだ、不明な点がありますが調べてみます。
759:デフォルトの名無しさん
15/11/11 19:35:10.88 hQ+Ng6ni.net
別にLINQ嫌いじゃないが、そんな事すんなよなとは思ったw
760:デフォルトの名無しさん
15/11/11 19:36:07.54 ZERl/AOH.net
>>734
ReadLinesは遅延評価だからReadAllLinesとは違って巨大なファイルでも効率いいよ
761:デフォルトの名無しさん
15/11/11 19:40:57.26 MPuvgpwO.net
>>737
すまん、ああ、それと勘違いしてた…
762:デフォルトの名無しさん
15/11/11 19:41:01.76 YDOXgbvn.net
改行をまたいでたらどうすんだってことだろ
763:デフォルトの名無しさん
15/11/11 19:46:45.62 MPuvgpwO.net
そこは想定外ってことで…
764:デフォルトの名無しさん
15/11/11 20:06:32.47 je1SKr0C.net
WindowsFormアプリケーションを勉強中ですが、タブレットPCでもWindowsFormは動作しますかね
実機に触ったことがないのでよくわからんのですが、
Windows8やWindows10あたりが入ってるタブレット端末なら作ったWindowsFormのアプリも
使えますでしょうか?(画面サイズを考慮して作るのは当然として)
それともストアアプリとしてじゃないと入れられなかったりするんでしょうか
765:デフォルトの名無しさん
15/11/11 20:15:23.36 MPuvgpwO.net
>>741
特に問題なく動作可能。
ただ高dpi環境とかで動かすと残念なことになるかも知れないけど
766:デフォルトの名無しさん
15/11/11 2
767:2:32:02.21 ID:WW0Z/7Lv.net
768:デフォルトの名無しさん
15/11/11 23:20:47.01 hQ+Ng6ni.net
向き不向きは考えた方がいいかもね
LINQで文字列処理とか、Formでモバイル系とか
769:デフォルトの名無しさん
15/11/11 23:55:46.17 2kBONmlk.net
データの集まりに対する統一的な操作だからね
770:デフォルトの名無しさん
15/11/12 00:25:57.38 b15uPX39.net
実際にどうか分からんが、件のデータがhtmlだとしたらHtml Agility Packなんか使ったほうがトラブルに巻き込まれずに済むかもしれんね
771:デフォルトの名無しさん
15/11/12 02:25:12.08 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:デフォルトの名無しさん
15/11/12 07:56:05.65 Los5n9AY.net
求めてるのは分かりやすさではなく自己満足だ
余計な世話を働くな
773:デフォルトの名無しさん
15/11/12 07:58:25.66 FwVQMCtV.net
どう見てもLINQの方が見易い
774:デフォルトの名無しさん
15/11/12 08:03:54.52 dubRMvMU.net
そうだな
このケースは実質的には
行の集合→フィルタ→変換→フィルタ→結果の集合
という要素ごとに独立な集合操作なのでLINQを使うのはおかしくはない
775:デフォルトの名無しさん
15/11/12 09:27:42.54 b15uPX39.net
htmlのタグは行をまたぐことも多いから、行の集合体として処理するとエライ事になるよ
776:デフォルトの名無しさん
15/11/12 17:10:09.52 2y0wDvFa.net
>>747
foreach使ったら遅延の意味ないし
さらに新たにlist作ってるのが古臭い
777:デフォルトの名無しさん
15/11/12 18:06:53.36 sljIQlRZ.net
>foreach使ったら遅延の意味ないし
?
778:デフォルトの名無しさん
15/11/12 19:38:54.77 Ky5LrglX.net
今時2.0のレガシーなソースコードを流用しないといけないんだけど、XML Webサービスと型付データセットでこれををEFとEDMに置き換えることによるデメリットって何かある?
ちなみに同一アセンブリ内からしか呼び出ししてないのになぜかASP.NETでWeb参照作ってSQL Serverと接続させてる元開発者の意図が読み取れないんだけど・・・
779:デフォルトの名無しさん
15/11/12 19:45:39.77 EC9THrMO.net
>>754
今となってはEFだからとコードファーストにする必要も無く、既存のDBから作れるし別に問題ないんじゃね
動作環境を4.5.2にしないと来年早々にサポートが切れることぐらいか
780:デフォルトの名無しさん
15/11/12 20:05:38.85 yYqeH5aP.net
わざわざList<T>なんぞ作らず、yield returnにしておけばいい。
それならforeach使おうが、遅延評価されるやろ。
781:デフォルトの名無しさん
15/11/12 20:18:02.90 sljIQlRZ.net
??
782:デフォルトの名無しさん
15/11/12 20:58:20.79 VAIEdV8u.net
脳に障害でも抱えてんのかお前
783:デフォルトの名無しさん
15/11/12 21:23:02.20 cKAT5bUn.net
すみません。
すぐ片付けますので。
784:デフォルトの名無しさん
15/11/12 22:04:08.00 Ky5LrglX.net
>>755
いやどっちみち既存DB使うからデータベースファーストなんだけど、SqlCommandじゃなくてLINQ to Entity使いたいからEFなんだよ
785:デフォルトの名無しさん
15/11/12 22:07:54.82 EC9THrMO.net
>>760
何が言いたいのかわらかないけど、使いたいなら使えとしか・・・
786:デフォルトの名無しさん
15/11/12 22:14:13.84
787:VAIEdV8u.net
788:デフォルトの名無しさん
15/11/12 22:27:48.52 AjxvVfcS.net
>>760
今なら既存DBからコードファーストというオプションが存在するんだぜ
LINQ使いたいだけならLINQ to DataSetって方法もあるぞ
既存コードの量にもよるけど、既存コード全部修正してまでEF導入するほどのメリットがあるのか
あるいはEFとADO.NET直接や型付きデータセットを混在させるのは容認されるのか
789:デフォルトの名無しさん
15/11/12 22:38:34.20 2y0wDvFa.net
>>753
本当に分からないの?
すべての要素を実体化させてるからなんだけどね。
790:デフォルトの名無しさん
15/11/12 23:05:26.00 +tTEt6jT.net
>>764
ごめん
俺もわからん
解説plz
791:デフォルトの名無しさん
15/11/12 23:08:48.25 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:デフォルトの名無しさん
15/11/12 23:13:38.94 Dz+qxRLQ.net
>>764
遅延評価させる意味というか目的を教えてほしい。
793:デフォルトの名無しさん
15/11/12 23:19:26.88 dubRMvMU.net
>>766
それjが一つだから進行Label.Textは最初から全部10001になるだろ
BeginInvokeは引数を渡せるオーバーロードがあるから進捗情報はそっちで渡せ
jをループ内で宣言し直す方法もあるけど、
コンテキストをまたがって変数を共有するのはトラブルの元なので極力避けることをお勧めする
794:デフォルトの名無しさん
15/11/12 23:29:31.65 qQwabUEl.net
>>768さん
アドバイスありがとうございます。
jの件仰るとおりでした
それと肝心のBeginInvokeですがつまりActionではなく
デリゲードを生成してそちらに引数を渡せば解決するということでしょうか?
795:デフォルトの名無しさん
15/11/12 23:35:00.45 yYqeH5aP.net
そもそも、今の時代にBeginInvokeなんか使ってるのが間違い。
Task.、async / awaitを使うべき。
796:デフォルトの名無しさん
15/11/12 23:45:09.01 qQwabUEl.net
>>770さん
仰る通りだと思うんですがasync/awaitは4.5?でしたか。環境が駄目でorz
797:デフォルトの名無しさん
15/11/12 23:52:28.74 FwVQMCtV.net
foreach使ったらダメとか思い込んでる奴は恐ろしいな
遅延評価は最後のforeachのためだぞ
798:デフォルトの名無しさん
15/11/13 00:05:42.71 0XMaJRAY.net
LINQの話が自演荒らし臭くなってきた
799:デフォルトの名無しさん
15/11/13 01:32:54.47 mVyjF6P7.net
Linqで作成したqueryをforeachにかけるならいいけどね
800:デフォルトの名無しさん
15/11/13 03:14:28.15 fOj/PJch.net
もしファイルが巨大ならスレッドブロックしちゃうし、listに追加したらメモリ使い果たしちゃう
状況にもよるけど、別スレッドでファイルとかに逐次書き出すとかが理想
801:デフォルトの名無しさん
15/11/13 07:05:08.20 iH7KAiTO.net
>>771
URLリンク(blog.xin)
802:9le.net/entry/2012/12/26/125214 4.0でも使えないわけじゃない
803:デフォルトの名無しさん
15/11/13 21:50:19.26 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:デフォルトの名無しさん
15/11/13 21:56:43.98 qRfCc0Iv.net
なんでわざわざdelegate宣言してんの?
特別、ref とか outを使いたいとかじゃない限り、Action<T>、Func<T> を使うべき。
805:デフォルトの名無しさん
15/11/13 22:05:31.10 WHtd9CIG.net
>>778さん
あっ宣言しなくても省略できるんですか・・
void Action<T>(T obj)・・これは知らなかったです・すいません。
Tにメソッドを入れて引数にT objを指定する感じですかな。
どうにも疎くて;;
806:デフォルトの名無しさん
15/11/13 22:11:25.68 v46Ke5nq.net
死ねアッチョンブリケ
807:デフォルトの名無しさん
15/11/13 22:16:22.98 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:デフォルトの名無しさん
15/11/14 00:12:23.08 PWAfQw+v.net
>>781
非UIスレッド側からUIスレッドにイベントを通知したい、なんてケースもあるので万能じゃないけどね。
809:デフォルトの名無しさん
15/11/14 00:28:17.73 zC8KxVmn.net
>>782
そういうのは、Rx使ってる。
810:デフォルトの名無しさん
15/11/14 00:45:14.09 JMgFPTs6.net
.NET MVCで画面作るときに
viewに複雑のユーザー定義クラスを渡す時ってカスタムbinderつくるしかない??
例えば検索フォームと一覧で構成される画面で
検索フォームmodelと一覧modelをバインディングするみたいな。
811:デフォルトの名無しさん
15/11/14 01:45:16.57 J/xjBQ6p.net
何をわけの分からんことを
class 俺モデル
{
public 検索フォームmodel M1;
public 一覧model M2;
}
これをモデルとして渡せばOK
812:デフォルトの名無しさん
15/11/14 02:49:03.10 JMgFPTs6.net
>>785
view側で
@TextBoxFor(m => m.M1.Unko)
@TextBoxFor(m => m.M2.Chinko)
みたいなのをformで送ったが、
ActionメソッドをIndex(俺モデル myModel)
としても、値とってこれないんだよね
813:デフォルトの名無しさん
15/11/14 02:56:01.24 T0Fy32Ow.net
>>781の兄者・・
駄目でした;;
既にtaskは使っていて
var task1 = Task.Factory.StartNew(() =>
これの終了に別のタスクで繋いで終了表示をしてるんですが
781の兄者のやり方のとおりに子タスクを設定してみたんです。
したら親タスクのつなぎタスクに繋がらないときがあるみたいで;;
なんで繋がなくなる時がある上に終了してるのに
終了ウィンドウがしばらくしないと出ないのか・・
きっと妖怪のせい・・
814:デフォルトの名無しさん
15/11/14 11:18:55.84 10oOQI9U.net
まず日本語が、正しく以下略
815:デフォルトの名無しさん
15/11/14 13:23:53.12 m53r0/yX.net
こういうのを見ているとTaskチェインよりもawaitの方がスマートだというのがはっきり分かるな
816:デフォルトの名無しさん
15/11/14 16:57:33.34 g6rNXfjz.net
>>786だけど
getter setterつけたらいけたわ。
817:デフォルトの名無しさん
15/11/14 18:56:20.98 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:デフォルトの名無しさん
15/11/14 19:13:53.28 nPG81Nq1.net
設定ファイルを別に用意して for ループかなにかでインスタンス作るのはダメなん?
819:デフォルトの名無しさん
15/11/14 19:15:20.30 Ldro2YxR.net
>>791
ファイルに出せ
820:デフォルトの名無しさん
15/11/14 19:16:41.03 x0D1OM5m.net
>>791
それが無駄だと全然思わないんだけど、
static Aa[] ToAaArray(params string[] args){...}
みたいなメソッドでも用意するとか。
821:デフォルトの名無しさん
15/11/14 19:21:51.68 0hbObyK2.net
ゲーム作ってますと何百個のクラス作ってますがどうしたらいいでしょうか
はワンセットになりつつある
822:デフォルトの名無しさん
15/11/14 19:22:29.23 OxpghztZ.net
>>792
>>793
ファイルに出すというのはテキストファイルを別に作って読み込むという方法でしょうか?
それも考えたんですけどそれだとテキストファイルを作る時引数の入力補完が効かなくなって
かえって間違えやすくなると思うんですけど
>>794
入力補完を利かすため引数のデータをデータ型通りの形で並べたいんですけどどうしたらいいですかね
823:デフォルトの名無しさん
15/11/14 19:35:41.52 zC8KxVmn.net
>>791
var aa = new [] { new Aa( 10 , "aaa" ) , new Aa( 20 , "bbb" ) };
824:デフォルトの名無しさん
15/11/14 19:39:17.01 OxpghztZ.net
>>797
外側減らしたって意味無いすよw
中が圧倒的に多いんだから
825:デフォルトの名無しさん
15/11/14 19:44:59.12 zC8KxVmn.net
外部にテキストファイル、例えばcsvなんかを用意して読み込むようにするか、
もしくは、partial class を作って別ファイルにメソッドを隔離しておくか。
826:デフォルトの名無しさん
15/11/14 20:08:15.99 nPG81Nq1.net
>>796
入力補完?
入力候補が決まってるなら、EXCEL でも使ってセルの入力規則のリストでも利用すればすむ事じゃん。
こっちの方が列で管理出来るから引数の順番とか間違えなくて(その意味では)便利だろ。
別にお前に限ったことじゃないけど、条件の後出しはよせ。正直ムカつく。
827:デフォルトの名無しさん
15/11/14 20:10:22.93 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:デフォルトの名無しさん
15/11/14 20:18:02.62 OxpghztZ.net
>>800
基本的にunityのmonodevelopで完結させたいんだよね
monodevelopは使い方も知ってるし
>>801
それだと例えば1番目なら1番目の項目の書いてる場所がバラバラになってしまって
とても管理出来そうにない
みなさんありがとうございました
自分が今まで致命的な勘違いをしてた訳じゃないとわかっただけでも収穫でした
newとクラス名連打で作りたいと思います
829:デフォルトの名無しさん
15/11/14 20:23:51.44 vsCbl3R/.net
テキストファイル作る時の引数って意味がわからん。
オブジェクト作成時に値チェックかけて、
整合性が保証されてる状態で書き出せばいいだろ。
830:デフォルトの名無しさん
15/11/14 20:27:37.98 OxpghztZ.net
>>803
それだと実行させなきゃエラーを出せない
unityのmonodevelopは初期化の時引数の型が間違ってたら書いたその場でインフォメーションしてくれる
831:デフォルトの名無しさん
15/11/14 20:57:41.24 Qc99f8i6.net
>>804
単体テスト書けば良いんじゃないの。書いたその場で、とは行かないが。
832:デフォルトの名無しさん
15/11/14 21:00:39.59 vsCbl3R/.net
>>804
モデルのオブジェクト(メンバの型)を経由するのにどう引数間違える可能性あるんだよ?
833:デフォルトの名無しさん
15/11/15 00:43:58.51 PNJd8cmY.net
>>791
var bullets=Enumerable.Range(0,100).Select(i=> new {Id=i,Num=10,Str="100" });
834:デフォルトの名無しさん
15/11/15 01:30:33.23 8pwk8L+v.net
URLリンク(it.srad.jp)
混迷極まってるな、MS工作員にはモバイル用は別OSにするって発想はでないのかね?
別に、コアコードは変わる訳じゃなかろうに、上っ面の部分だけモバイル向きに作り替えて
アップデートのタイミングをそれぞれに調整すれば良いだけ
モバイルで流行らないのは、単にWindows8に商品力が無いだけだ
デスクトップ向きはWindows7に戻しちまえばいいのに
Windows10とか誰も欲しがらないだろ・・・
835:デフォルトの名無しさん
15/11/15 01:31:54.15 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:デフォルトの名無しさん
15/11/15 02:56:43.32 m6nrC5L1.net
やっぱりLINQ最高
837:デフォルトの名無しさん
15/11/15 06:35:48.77 Ro5/nML1.net
Formをある程度デザインし終わった時に、ウィンドウそのもののフォントをUIゴシックからメイリオに切り替えると
サイズや配置が変わって一気に崩れるんだけどなんで?
そもそも個別のコントロールにフォントを設定していたらウィンドウのフォントって触る必要がないもの?
みなさんフォントは何使ってるんだろう モリサワとか入れてるんだろうか
838:デフォルトの名無しさん
15/11/15 07:24:16.58 m7boHCrI.net
テキストの幅がちょっと変わっただけで崩れるようなデリケートなデザインを作らないのが基本
業務アプリとかでクソ細かい要求を受け入れなきゃいけないなら全部MS Pゴシック
839:デフォルトの名無しさん
15/11/15 07:33:24.90 wjlQu+Ap.net
>>811
まずFontはアンビエントプロパティ。特に設定してない子コントロールは親のフォントを使う
よってFormのフォント変えると、子コントロールのフォントも変わる。
さらにFormのAutoScaleModeはFontがデフォ。
フォントによってAutoScaleDimentionの値が変わる
よって各コントロールの大きさが変わる。以上。
AutoScaleModeはDPIにしとこう
840:デフォルトの名無しさん
15/11/15 13:44:16.69 Ro5/nML1.net
>>813
具体的なご指導に感謝いたします
独学でやってるとなかなかそうしたものまで及ば�
841:ネいので本とありがたい
842:デフォルトの名無しさん
15/11/15 14:45:22.59 s1AdXoMj.net
dbプログラミングで検索するとentity framreorkと言うのが出て来るがこれは何よ?使わ無くてもいいのか?使うといいの?
843:デフォルトの名無しさん
15/11/15 14:54:00.71 giTGvBPC.net
>>815
DBを扱うためのフレームワークの一つ。
何をどれぐらいの規模で作りたいかによる。
小規模なのは、適当なDBで十分、FEは、機能が多すぎてちょっとしたものに適応するには重すぎるだろう。
サーバーを必要としないようなクライアントアプリならSQLiteあたり使っておけばいい。
ORMがやりたいならDapperあたり使えばいい。
844:デフォルトの名無しさん
15/11/15 15:00:11.33 19LeITHM.net
質問です
enum Syurui{
a,b,c
}
string moji=“a”;
Syurui syurui=/この部分
この部分と書いたところに変数mojiの中身を列挙型のSyurui.aに変換して
syuruiに入れる処理はどう書いたらいいでしょうか?
845:デフォルトの名無しさん
15/11/15 15:04:30.20 giTGvBPC.net
>>817
Syurui hoge = (Syurui)Enum.Parse( typeof( Syurui ) , moji );
もしくは、
Syurui hoge;
Enum.TryParse<Syurui>( moji , out hoge );
846:デフォルトの名無しさん
15/11/15 15:04:59.41 s1AdXoMj.net
>>816
詳しい説明有難うございました。
windows vpsサーバーにmysqlいれていてdbプログラミングの勉強中です。月間ページビュー1000万くらいの規模のdbアプリを目指したいです。そういう場合はEFが良いですか?
847:デフォルトの名無しさん
15/11/15 15:05:44.14 XKYu6RGQ.net
Enum.Parseを使う
848:デフォルトの名無しさん
15/11/15 15:06:56.73 giTGvBPC.net
>>819
その規模になると、SQLiteとかじゃ耐えれないだろうから、EF使うと良いと思う。
849:デフォルトの名無しさん
15/11/15 15:11:31.11 s1AdXoMj.net
>>821
有難うございました。
早速やってみます。1000万pv達成出来たら報告します。
850:デフォルトの名無しさん
15/11/15 15:12:13.39 SModPTsN.net
>>819
アクセス数よりDBの構造の規模で。
どの程度学習してるか、これから学習するのかわからないけど
とりあえず簡単なものを両方のやり方で試してみるのがいいと思うよ。
851:デフォルトの名無しさん
15/11/15 15:26:03.20 19LeITHM.net
>>818
できました~
ありがとうございます
ちゃんと列挙型の変数に格納されて違う値入れたらエラーも出ました
852:デフォルトの名無しさん
15/11/15 16:06:04.89 bBffLHE3.net
Dapper使うとして、SQL文字列を組み立てるじゃん。
stringbuilderで組み立てていったとき、
なんちゃらフラグのときは~みたいな条件がたくさんあると
if,elseとかのネストがきったなくなるんだけど、どうしたらいいんだろ?
853:デフォルトの名無しさん
15/11/15 16:38:51.59 kqjPbh/t.net
SQLをシンプルにして、LINQでごにょごにょする。
かなり綺麗になる。でも、巨大なデータをメモリ上に置くことになるので
これが最適かどうかはわからない。
どうしたらいいんだろう…。
854:デフォルトの名無しさん
15/11/15 16:44:09.23 hXzxGHNH.net
遅延ローディングできないんですかね
855:デフォルトの名無しさん
15/11/15 17:06:33.10 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:デフォルトの名無しさん
15/11/15 17:24:45.76 SModPTsN.net
まあif文とこ別関数にしてメソッドチェーンみたいにしてもいいしね
DBは別のサーバにあることが多いから通信も考慮しないとね
858:デフォルトの名無しさん
15/11/15 17:25:22.41 giTGvBPC.net
100万件レコードがあったとして、何も100万件全部読み出す必要はないし、そんなことするなら設計を見直すべきだろう。
WHERE句とLIMIT句を指定してレコード数を制限して必要な分だけ読み込めばいい。
859:デフォルトの名無しさん
15/11/15 19:36:39.93 CvRB/UR5.net
メソッドチェーンの使い所ってどんな時?
860:デフォルトの名無しさん
15/11/15 19:55:51.71 5wcT3tcL.net
>>831
使いたい時に使えばいい
LINQがいい例
>>819
本当にパフォーマンスが必要ならEFなんてやめとけ
EFは文字列でSQLを作りたくない時に導入するもの
861:デフォルトの名無しさん
15/11/15 20:12:14.42 s1AdXoMj.net
>>832
そういう事ですか!
文字列で
select 文を書く普通のやり方で十分なのでef使うのは中止します。
862:デフォルトの名無しさん
15/11/16 12:51:54.53 Ffgt4uY8.net
質問です
文字列を変数名として扱う方法はありませんでしょうか?
例
int a=0;
string amoji=“a”;
kansu(ref ここ);
void kansu(ref int a){
Debug.Log(a);
}
「ここ」と書いた場所にstring型の変数amojiの内容である”a”から変数aを用いる
ためのコードの書き方はどうしたらいいでしょうか
変数のリストをテキストファイルで管理しようと思っているのでこういうのが
必要になりました
863:デフォルトの名無しさん
15/11/16 12:55:17.48 AqzFwWr1.net
まっ、その気になればやってやれん事はないのだが、やめろ
864:デフォルトの名無しさん
15/11/16 12:58:11.19 Eod8iMW6.net
>>834
これじゃダメ?
int Kansu(string amoji){
return "a"→aの処理;
}
テキストファイルから読み込んで変数リストの管理を行うなら別のやり方になりそうだけど
865:デフォルトの名無しさん
15/11/16 13:01:18.51 Ffgt4uY8.net
>>836
その「"a"→aの処理」っていうのはどうやるんでしょうかね?
866:デフォルトの名無しさん
15/11/16 13:05:25.95 mRFC3bAE.net
何故そんなことをしたいのかわからないが…
やめとけ。
ろくなことにならないからw
867:デフォルトの名無しさん
15/11/16 13:14:01.22 6H4dK92G.net
>>834
javascriptなら出来るんじゃないか?
868:デフォルトの名無しさん
15/11/16 13:29:25.05 RuGtzWomJ
mapを使えばできる
869:デフォルトの名無しさん
15/11/16 13:16:03.85 Ffgt4uY8.net
>>838
そんなダメですかw
誰もやってない方法ならやめときます
>>839
c#では一般的なやり方じゃないようですね
別の方法を考えます
870:デフォルトの名無しさん
15/11/16 13:35:59.43 htc6fDTL.net
C#関係なしに一般的ではないと
871:デフォルトの名無しさん
15/11/16 13:36:29.71 vMsjPxDw.net
ev
872:alが使いたいという話でもないのか
873:デフォルトの名無しさん
15/11/16 13:50:11.34 p+PVyYp5.net
ダーティーハックが尊ばれる下痢便言語ではよくある手だろ
874:デフォルトの名無しさん
15/11/16 14:39:35.24 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:デフォルトの名無しさん
15/11/16 14:49:16.58 mRFC3bAE.net
やろうとしていることが根本的にズレているんだよ
876:デフォルトの名無しさん
15/11/16 14:52:29.58 Ffgt4uY8.net
>>846
要するに文字列から関数や変数にアクセスしたいって事なんですけど
そんなにおかしいですか
文字列から直接アクセスできないとなれば変数や関数を列挙型でリストアップして
使うときはswitch文で分岐なんていう情けないコードにしかならないと思うのですが
877:デフォルトの名無しさん
15/11/16 15:01:52.67 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:デフォルトの名無しさん
15/11/16 15:03:36.05 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:デフォルトの名無しさん
15/11/16 15:13:31.76 Ffgt4uY8.net
>>848
>>849
Invokeというメソッドを今初めて知ってよくわからないんですけど
どうもかなり遅いらしいですね
ゲームを作っているのでそれでは都合が悪いです
やっぱりずらずらとリストアップする方法でやりたいと思います
ありがとうございました
880:デフォルトの名無しさん
15/11/16 15:14:46.20 Eod8iMW6.net
これID:OxpghztZだろw
881:デフォルトの名無しさん
15/11/16 15:21:13.63 Ffgt4uY8.net
>>851
バレちゃったw
結局テキストファイルを読み込んでやる事にしたんです
それでテキストファイルに変数名や関数名を書きたいなぁと思って質問しました
882:デフォルトの名無しさん
15/11/16 15:39:44.62 mRFC3bAE.net
ActionとかFuncのInvoke自体は、普通のデリゲートコールなので遅くない。
Action a => () => { } ;
a(); と a.Invoke() は、同じことをやっている。
null伝播使うとき、 ?.() という書き方ができないので、?.Invoke() にしてあるだけだ。
もちろん、普通のメソッドに比べれば、インライン化されないなどの僅かな差はあるだろうが、気にするほどではない。
遅いのは、>>849がやってるようなリフレクションだ。
こいつは、桁違いで遅い。ExpressionTreeで実行時にデリゲートを構築してやれば、速度の問題はある程度解消できるだろう。
あとは細かいところで変数のキャプチャ、ボックス化が生じてパフォーマンス低下につながることになる。
883:デフォルトの名無しさん
15/11/16 15:46:42.66 Ffgt4uY8.net
>>853
正直初心者なのでその区別もつかないです
dictionaryとかならわかる範囲なのでそれでも使おうかなと思ってます
多少コードが冗
884:長になっても
885:デフォルトの名無しさん
15/11/16 16:12:09.04 4iBaA+8B.net
関数と文字列が予め決まっているなら、switch文で分岐して関数呼ぶのが早いだろうが
886:デフォルトの名無しさん
15/11/16 16:42:18.72 Ffgt4uY8.net
>>855
やっぱりそれが一般的なんですかね
別のゲームにも再利用しやすい仕組みにできないかなと色気を出してしまったのも
今回こういう質問をした理由なんですけども
887:デフォルトの名無しさん
15/11/16 16:46:44.96 mRFC3bAE.net
よくわかっていないうちは、今後再利用しようなんてやめとけ。。
再利用しようとしたときには、(誰だ、この糞設計したのは!糞コード書いたやつ死ねよ?…自分か…)ってなってゴミと化すだけだから。
888:デフォルトの名無しさん
15/11/16 18:04:07.44 /wMXw7Lm.net
型が決まってて値取り出したいだけならシリアライズで十分とも思うけども。
889:デフォルトの名無しさん
15/11/16 18:40:32.23 LDaVIeza.net
>>858
「変数のリストをテキストファイルで管理しようと思っている」って>>834で書いてるから、変数の値は保存してないんじゃねえの?
全く意味不明だけど
890:デフォルトの名無しさん
15/11/16 19:19:50.00 Ffgt4uY8.net
>>858
シリアライズとはどういう機能なんでしょうか?
ググってもイマイチわからなかったのでこの件とどういう関係があるのか教えてもらえませんでしょうか
891:デフォルトの名無しさん
15/11/16 19:19:59.69 /wMXw7Lm.net
>>859
あ、そうか、外してたな
892:デフォルトの名無しさん
15/11/16 19:37:02.75 mRFC3bAE.net
シリアライズというか、設定値なりパラメータをソースコードじゃなく外部で管理したいだけなら、XMLとかJSONとかで読み込めば良いだけだろう。
893:デフォルトの名無しさん
15/11/16 19:38:00.43 diuJbJ+U.net
>>860
シリアライズはオブジェクトを通信で送るのに使う
ローカルファイルへの保存に使うのはドツボにはまるのでやってはいけない
XmlSerializerみたいなスキーマありきの奴ならいいけどね
894:デフォルトの名無しさん
15/11/16 19:42:53.32 mRFC3bAE.net
>>863
設定データの保存用にBinaryFormatter使ってたら、古いデータとの互換性取れなくなってドツボにはまったことあるわ。
895:デフォルトの名無しさん
15/11/16 20:34:38.26 HIZPDz5u.net
クソみたいなゲーム作ってないで宿題やってクソして寝ろ
896:デフォルトの名無しさん
15/11/16 20:45:10.02 Ffgt4uY8.net
>>865
うるせーなw
大きなお世話だw
897:デフォルトの名無しさん
15/11/16 22:21:51.30 bfEVOxks.net
>>ID:Ffgt4uY8
こういう人って必要な分だけネットで覚えたから知識に穴だらけ
基礎もままならない状態だから、ある目的のためにダメな手段を
思いつきでやろうとするから>>834のようなことになる
newを100回書こうとしたりね
目的を自分の中で明確にして質問すればいいのにな
ここにいる人も気づいているのに
からかい半分に間違った手段のために律儀に答えようとしてるし
みんなもわかっているんだろ、本当に彼がしたいことを
焦る気持ちはわかるけど、まずは基礎だよ
基礎がしっかりしてないと、コピパーになるよ
898:デフォルトの名無しさん
15/11/16 22:27:42.07 LDaVIeza.net
変数のリストをテキストファイルで管理ってのが理解不能すぎて解決策が出せないんだよな
変数名しか管理しないんならソースコードに直接書けばいいとしか思えないんだけど、多分深い理由があるんだろうからテキストファイルから変数を取得する方法を教えるしかない
899:デフォルトの名無しさん
15/11/16 22:41:27.09 p+PVyYp5.net
別に間違ってる奴は間違ってるまま突っ走ってくれて構わんだろ
垂れ流しのウンコを擦り付けてくるなよってだけ
900:デフォルトの名無しさん
15/11/16 22:43:40.13 p+PVyYp5.net
DSLを設計するのが好きな奴と関わりあいになりたくない
901:デフォルトの名無しさん
15/11/16 22:48:59.73 Eod8iMW6.net
皆律儀に構ってやるから居ついちゃうんだよな
902:デフォルトの名無しさん
15/11/16 22:50:19.96 mRFC3bAE.net
たぶん設計とか何も考えてないと思う…
おそらく、変数というものを最近知ったんだろう。
だが、クラスを自分で定義したり、Dictionaryを使ったりする方法は知らないと思われる。
903:デフォルトの名無しさん
15/11/16 23:01:20.17 AqzFwWr1.net
どうしても必要不可欠になったとか
これができなきゃプロジェクト崩壊、ヤバイ死ぬとか
そういう話なら、答えてやらんでもないがね >文字列を変数名
最初から使用を前提にするとか有り得ない
904:デフォルトの名無しさん
15/11/16 23:41:45.35 Ffgt4uY8.net
ボロクソ言ってくれるよなぁw
俺のやりたい事はアドベンチャーゲームに近いんだけどゲームを「シナリオ単位」
に分けてそのシナリオを遷移させる事で
ゲームを進めるという仕組みにしたかったんだよ
で、最初はシナリオクラスをたくさんnewして並べようと思ったんだけどそれはやめて
テキストファイルから読み込んでやる事にした
それでそのシナリオの中には○○関数を呼び出したいとか○○変数を使いたいみたいなのも
含まれる
それでテキストファイルの中にaaaaと書いてあって
それを読みだしてaaaa変数が使えたら便利なんじゃないか?
というのが今回の質問の趣旨
905:デフォルトの名無しさん
15/11/16 23:46:31.65 diuJbJ+U.net
「シナリオプレイヤーを作る」と割り切って考えてシナリオとプレイヤーの仕様を明確にすれば、
変数を文字列で選ぶようなメタな仕組みは必要ないと分かるはず
初心者はそこをごっちゃにするからおかしくなる
906:デフォルトの名無しさん
15/11/16 23:59:23.74 bfEVOxks.net
>>874
わかるよーADV用のスクリプト言語開発したいんでしょ
吉里吉里みたいなもんでしょ
UnityだとJokerScriptというのがあるみたいだね
自作のゲーム用フレームワークを作って開発効率あげようってことでしょ
ゲーム制作は専門外なのでぼくは答えられませんけど
がんばってね!
907:デフォルトの名無しさん
15/11/17 00:06:19.08 R+1w9ien.net
>>875
設計がおかしいというのは薄々わかってました
今回おかしいと言われてようやく明確な自覚を持てました
それがわかっただけで有意義な質問だったと思います
ありがとうございました
>>876
そういう事なんですよ
スクリプトというほど高等な物じゃなくて簡易的なものなんですけど
908:デフォルトの名無しさん
15/11/17 00:10:46.96 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:デフォルトの名無しさん
15/11/17 00:16:26.67 WTj4x1Uo.net
>>877
アスペなのかもしれないから教えておくけど、875はそういうスクリプトを使えってことを嫌味を込めて言ってるんだと思うぞ
車輪の再発明は無駄だからな
910:デフォルトの名無しさん
15/11/17 00:19:58.23 R+1w9ien.net
>>878
その考えで根本的に作り直したいと思います
まだ準備段階なのでやり直しが効きますので
>>879
自分で作るというのはすでに決まってます
だから小規模でまとめようと思ってます
911:デフォルトの名無しさん
15/11/17 00:37:33.94 3fiu8XQQ.net
ハッキングして遠隔操作みたいのをしてみたいんですけど、どうすればいいんですか?
学校でC言語とJavaは習いました。
912:デフォルトの名無しさん
15/11/17 01:07:53.71 lYlDUfoh.net
まず自殺します
913:デフォルトの名無しさん
15/11/17 01:09:58.66 +UlWRHgW.net
>>874
C#でやるべき方法じゃないと思う
動的言語rubyとかでやったほうがたぶん早い
914:デフォルトの名無しさん
15/11/17 01:12:35.98 MdYEWsJu.net
アスペに「アスペなのかもしれないから教えておくけど」と言ったところで
アスペなんだから伝わるわけないわな
無駄無駄ァ
915:デフォルトの名無しさん
15/11/17 01:13:29.87 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:デフォルトの名無しさん
15/11/17 01:14:37.99 lYlDUfoh.net
IronPythonでも組み込んどけばいい
自作する価値はない
シベリア超特急エンドレスで見た方がマシ
918:デフォルトの名無しさん
15/11/17 01:20:05.47 0HyN1ztj.net
c# 6.0ならRoslyn for Scriptingが使えるのでスクリプト機能を簡単に組み込めるだろう。
919:uy ◆Qawu9.2l1E
15/11/17 13:02:45.67 +c9tLHNn.net
>>878
そんな作りで効率上がると思ってんの?wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
920:デフォルトの名無しさん
15/11/17 13:12:19.65 0HyN1ztj.net
何このアスペwww
921:uy ◆Qawu9.2l1E
15/11/17 13:26:31.53 +c9tLHNn.net
やりたい事の最終目標はそのシナリオごとに単体で開発して起動テストが出来て、そのままゲームに組み込める形だろ
HTMLを書いてブラウザで表示させるようなものをゲームプログラミングで行う
つまりブラウザ開発
922:uy ◆Qawu9.2l1E
15/11/17 13:33:24.71 +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:デフォルトの名無しさん
15/11/17 13:43:42.85 R+1w9ien.net
>>891
俺はこの方法でやろうと思う
テキストファイルを読み込む時に個々の命令はクラスの配列に全部入れてしまう
だからゲーム中に命令解釈のなんていうのかオーバーヘッドみたいなのは発生しない
それでちゃんと動くと思うよ
924:デフォルトの名無しさん
15/11/17 14:37:25.22 lYlDUfoh.net
ぐだぐだ言ってないで手を動かした方がいい
その方が挫折が早くなって時間を有意義に使える
925:uy ◆Qawu9.2l1E
15/11/17 15:03:15.83 +c9tLHNn.net
>>892
動くと思うけど動かせないと思うよ
技術力的に
926:デフォルトの名無しさん
15/11/17 16:22:29.57 slq8dUH/.net
>>892
>>885
シカトすんな
927:デフォルトの名無しさん
15/11/17 16:58:51.42 R+1w9ien.net
>>895
回答遅れてすいません
それはキャラクターの動作をリストで持ってるだけですよね
俺としてはシナリオにそのシナリオのラベルや分岐情報などをつけたいと思ってるんです
928:デフォルトの名無しさん
15/11/17 17:00:51.13 7LzXRzXH.net
>>896
それ、やるにしてもXMLで管理すればよくない?
929:デフォルトの名無しさん
15/11/17 17:11:59.62 CRnDMuhn.net
>>896
全部書かなきゃわからんのか!
あれを応用すれば言ってること全部できるだろ!
分岐するなら新しいリスト作ればいいだろ!
テキストから読むこともない
何が不満なんだよ!アホ!
930:デフォルトの名無しさん
15/11/17 17:16:13.59 R+1w9ien.net
>>898
やってくれなんて言ってませんw
どう回答したものかと困ってこういう書き方になってしまいました
スンマセン
当然自分でやります
931:デフォルトの名無しさん
15/11/17 17:18:33.49 kJodvt3B.net
それなら普通にコード書いたほうが良くないか?
932:デフォルトの名無しさん
15/11/17 18:34:42.67 3nwXwekt.net
シナリオを人間が書きやすくする必要がないならコードで書いたほうが早いな
どうせクソゲームなんだろうから誰もシナリオなんて書いてくれないわけで
自分でひりだすんだろうからコードで書いたほうが時間の節約になるな
933:デフォルトの名無しさん
15/11/17 18:37:45.69 kJodvt3B.net
ノベルゲーとかなら、わざわざゲームエンジンから作らなくても、既に実績のある吉里吉里とか使った方がいいしな
934:デフォルトの名無しさん
15/11/17 19:05:22.52 sj29+6cn.net
あんまりレスの内容見てないけど、ゲームできたら見せてくれよ
935:デフォルトの名無しさん
15/11/17 19:20:52.79 A3FVmbuJ.net
どんなゲーム?
c#を
936:覚えるまでみたいなゲームだと面白いな ああああはレベルが上がった! if文を覚えた!条件分岐ができるようなった!
937:デフォルトの名無しさん
15/11/17 21:30:57.69 lYlDUfoh.net
それはどこかがやってたような?
938:デフォルトの名無しさん
15/11/17 22:16:03.94 jwVZTkmN.net
プレイヤーが作った虫同士をネットで対戦させるようなゲームがやりたいな
939:デフォルトの名無しさん
15/11/17 22:16:57.43 SR74YNAG.net
>>887
roslynのc#scriptingはまだプレリリースだし、仕様が安定してないところがあるので、
luaとかの組み込み用言語使った方がいいと思うなぁ。
c#scriptingはなかなか魅力的だけど。
940:uy ◆Qawu9.2l1E
15/11/17 22:19:04.52 H8TlhYuF.net
リアルタイムで自機のショットアルゴリズム記述して
進んでいくSTG作ろうとした事あったけど色々無理があってやめた
941:デフォルトの名無しさん
15/11/18 00:33:12.41 SNPtSU1p.net
面白そうではあるな
近い趣向のものでは、NPCに戦略支持を出してくものがあるけど
ビジュアルスクリプトにするにせよ、テンポ調整が難しそうだな
むむむ…
942:デフォルトの名無しさん
15/11/18 07:37:45.36 by9GKQSy.net
ファミコン時代の記憶が蘇ったわ
ブリーダー (ディスクシステム)
URLリンク(youtu.be)
943:デフォルトの名無しさん
15/11/18 08:05:33.01 G8OYuYmR.net
Dispose()を呼び出さないといけないクラスがありますが
Formアプリを強制終了したり、Dispose()を呼び出さないでFormを終了した場合
何か問題になったりしますか?
944:デフォルトの名無しさん
15/11/18 10:21:52.47 4O1y0zjC.net
>>911
そんなこと気にせずにドンドン必死でプログラム書けばいつか答えが見つかるよ。
945:デフォルトの名無しさん
15/11/18 12:46:54.84 /pyqs2gq.net
>>911
using使いなさいよ
946:デフォルトの名無しさん
15/11/18 14:35:01.75 8OGiKQJm.net
Formにusingなんか使えないだろw
ShowDialogで表示してるなら別として…
947:デフォルトの名無しさん
15/11/18 16:00:50.19 1FcAcZvq.net
Formに使う話にいつ変わったの?
948:デフォルトの名無しさん
15/11/18 20:35:15.11 by9GKQSy.net
>>911
参照が切れればいつかはGCされる
プロセスが終了すればOSに回収される
949:デフォルトの名無しさん
15/11/18 22:21:51.16 LvRn/Spf.net
>>914
いつもusingしてるが
お前は何を言っているんだ低能
950:デフォルトの名無しさん
15/11/18 22:53:39.77 XBTkD2/m.net
Usingもわからな・・・あ、ここ初心者スレかw
951:デフォルトの名無しさん
15/11/18 22:55:58.03 s071DD2K.net
単芝は余裕ぶりたい心の見栄
952:デフォルトの名無しさん
15/11/19 01:22:50.82 6x5+bHoL.net
んんんんっwwwwwwwwww
953:デフォルトの名無しさん
15/11/19 05:51:38.88 cNWt69lk.net
クラスを作る時
インターフェースから書いていきます?
実装から書いていきます?
954:デフォルトの名無しさん
15/11/19 06:08:49.37 yq8an3Lp.net
インターフェイス前提のクラスなら実装から書かないでしょ
955:デフォルトの名無しさん
15/11/19 06:18:09.35 cNWt69lk.net
あ、違った
アプリ作る時
インターフェースから作っていきます?
実装から作っていきますか?
今インターフェースを勉強しているんだけど
インターフェースから作った方が綺麗なコードが
書けるんじゃないかなって思ったんですけど
956:デフォルトの名無しさん
15/11/19 07:14:47.20 my8rYb+Z.net
先にインターフェイスを作るのなら、その前に設計書を書かなければならない
最初に全体の完璧な設計が出来上がってるのであれば当然インターフェイスから作るのが後戻りがないわな
それができないんなら汚くていいから実装→リファクタ
957:デフォルトの名無しさん
15/11/19 07:43:41.76 YneMFXa5.net
C#のTextBoxコントロールで
MultiLineプロパティをtrueにセット複数入力が出来る場合で
入力エリアの一番下の位置に空白が出来るのを何とかしたいのですが
何か方法はありませんでしょうか?
現状 /=入力スペース
-----------------------------
1233333/////////////////////スクロールバー
1233333/////////////////////↑
1233333/////////////////////
1233333/////////////////////↓
←ここに余白が出来る。エンターを押すと更に下に移動する
------------------------------
希望 /=入力スペース
-----------------------------
1233333/////////////////////スクロールバー
1233333/////////////////////↑
1233333/////////////////////
1233333/////////////////////↓
------------------------------
よろしくお願いします。
958:デフォルトの名無しさん
15/11/19 07:51:55.38 cNWt69lk.net
>>924
インターフェイスの抽出なんて機能があったんだ
設計書は書けないから実装からのほうが良さそうですね
959:デフォルトの名無しさん
15/11/19 08:59:06.47 jS0xGfYR.net
ブラッド・コックスとトム・ラブがObjective-Cを作り「この言語はCのメモリ安全性とSmalltalkの高速性を合わせたものだ」と宣言する。
現代の歴史家は2人が失読症ではないかと疑っている。
URLリンク(twitter.com)
960:デフォルトの名無しさん
15/11/19 10:30:02.98 A33ByGDA.net
test
961:デフォルトの名無しさん
15/11/19 10:39:22.99 A33ByGDA.net
interfaceはセマンティクスの定義なんだよ。
チーム開発においてクラスメンバのシグネチャを強制すれば振る舞いを誰が実装しても大きな問題おきないでしょ。
実装なんてブラックボックスでいいんだよ、利用者はシグネチャさえわかればいいんだから。
数百、数千億規模のプロジェクトでもまともにinterface作ってない場合多いからレベル低すぎるね。
上流がコーディングできなんじゃ設計なんてできるわけないんだよ。
962:デフォルトの名無しさん
15/11/19 12:49:16.71 G20bfr3g.net
>>925
自力でやるしかないんじゃね?
963:デフォルトの名無しさん
15/11/19 12:58:52.05 h0D34cF3.net
>>925
何を言ってるのかよく分からない。
そんなこと起こらんけど。
>>927
気付いてないのかもしれないが、コピペマンのお前さんこそ統合失調の疑いが濃厚だよ
馬鹿じゃないの。
964:デフォルトの名無しさん
15/11/19 13:16:57.34 WApHXGH2.net
>>925
TextBoxのHeightを小さくして入力スペースぴったりになるようにすれば?
965:デフォルトの名無しさん
15/11/19 13:46:03.31 7AHNe+Hm.net
>>929
本当それ
基礎中の基礎なのにinterfaceの使い方もしらないオレオレ設計者しかいないわ、うちの会社
1.1 ボタン押下時イベント
みたいなExcel方眼紙にオレオレ詳細設計書書くのが普通になってるし
966:デフォルトの名無しさん
15/11/19 14:36:23.31 j6gYHvV7.net
>>925
最後の改行を消せ
967:デフォルトの名無しさん
15/11/19 14:42:03.70 gXUiymqK.net
3行以上書く奴はキチガイ←せいかい
968:デフォルトの名無しさん
15/11/19 15:07:03.92 h0D34cF3.net
>>935
唐突に意味不明なこと書くお前がキチガイなんだ馬鹿。
969:デフォルトの名無しさん
15/11/19 15:13:15.38 f/FwklKJ.net
>>925
若いもんはそういう些細な事が気になるもんじゃ。
970:デフォルトの名無しさん
15/11/19 15:28:03.26 A33ByGDA.net
極論すると要件を理解してる前提であればInterfaceあれば仕様書や手順書なくたってコーディングできるんだよ。
運用の問題はアトリビュート、共通化したい機能はトレイト・ミックスインで対応可能。
いい加減、ドキュメント作成より実装に工数かけようぜ。
971:デフォルトの名無しさん
15/11/19 16:07:33.31 PQiMaMHb.net
URLリンク(security.srad.jp)
昨今のマイクロソフトは日々おかしな事しでかすな
もう、めんど臭いし、全員でLINUX移ろうぜ
972:デフォルトの名無しさん
15/11/19 16:26:04.89 h0D34cF3.net
>>938
誰と戦ってるの?w
973:デフォルトの名無しさん
15/11/20 00:05:26.71 U2PcGSVo.net
xmlやjsonをファイルで扱いたいのですが、\などをエスケー�
974:vしないようにreadwriteするにはどうすればいいでしょうか?
975:デフォルトの名無しさん
15/11/20 06:50:13.45 0b9D5XOx.net
もともとエスケープなんかされない
ソースコード上にリテラルとして文字列書く場合だけ\\か@使う
976:デフォルトの名無しさん
15/11/20 15:56:07.37 JvKaxnpE.net
>>925の人気に嫉妬
977:デフォルトの名無しさん
15/11/20 16:58:48.84 IfcC+Den.net
GraphicsPathのAddStringで文字列の先頭に空白があると削除されてしまいます。
これを回避する方法はありますでしょうか。
978:デフォルトの名無しさん
15/11/21 17:21:44.96 hR7d38wi.net
foreach(x,,,)
{
foreach(y,,,)
{
yield return x==y
}
}
foreachが入れ子になっているのは
ラムダで表現するのは無理だよね?
979:デフォルトの名無しさん
15/11/21 17:25:46.50 JFj+7Wuj.net
>>945
SelectMany
980:デフォルトの名無しさん
15/11/21 17:50:16.36 w45vfkw8.net
string str = "ああ123.45abc678";
の時にstrを数値に変換するとして、変換出来る最初の部分文字列
"123.45"
を数値化したいのですが、そういう関数ありますか?
さらに、
string str = "ああ1.2E3abc678";
なら、
1200
が得られるといいのですが。
つまり全角半角どちらでも良くて、かつ指数表示にも対応している。
標準の関数でありますか?
981:デフォルトの名無しさん
15/11/21 23:22:04.67 lPfCyIV+.net
列挙型の要素を動的に追加したり削除したりってできる?
982:デフォルトの名無しさん
15/11/21 23:23:57.45 GdR6w5S8.net
通常の手法ではできません
983:デフォルトの名無しさん
15/11/22 00:27:01.45 iT1tZCI1.net
>>948
目的は?
984:デフォルトの名無しさん
15/11/22 03:00:05.12 JSdSEHUd.net
>>950
Unityのエディタとスクリプトが依存しあってる環境でエディタ上での変更に柔軟に対応したい(つまり一々コードを手作業で書き換えず楽したい)のと、
文字列を引数にして検索するメソッドを使う際にできれば列挙型か文字列定数で安全に取り扱いたい
というのが目的だったけど列挙型のスクリプトを生成するスクリプトを書くのが現実的なのかな
985:デフォルトの名無しさん
15/11/22 03:03:06.28 o24m0lwv.net
またID:OxpghztZかよ
986:デフォルトの名無しさん
15/11/22 03:06:45.63 u++Mym7W.net
ばれてやんのwww
お前もうコテハン名乗れよwww
お前ぐらいだよ。そんな変な質問するのwwww
987:デフォルトの名無しさん
15/11/22 05:54:12.53 c83Tb2v8.net
もう馬鹿なんじゃないかっていうくらい基本の質問で恥ずかしいんですが・・・
実際の開発でメンバー修飾子(public intenal etc..)ってどういう基準でつけてるもんなんですか?
データベースと連携した業務アプリケーションをちまちま作ってるんですが、
privateにしなきゃというところは、何となく考えながらつけてるんですが、
そうでないところで(他クラスからアクセスさせたいプロパティとか)
publicでいいのか、せめてinternalをつけた方がいいのかどうも明確に意識して設計できないのです
開発チームとかあるわけでなく、一人で作っていて使い分けの事例なんか見ててもピンとこないというか
988:デフォルトの名無しさん
15/11/22 06:06:55.82 zwZfG106.net
>>954
パッケージとして独立させてAPI公開する気がないんだったら
迷うところはpublicでいいだろ
つか一人で作ってるなら全く気にする必要ないような…
989:デフォルトの名無しさん
15/11/22 07:37:23.55 PowSWGiN.net
>>947
全角/半角変換、日本語を扱うのは、Linuxでは、
nkf ライブラリを使うけど、C#には無いの?
それか最初に、全角を半角に変換してから、正規表現を使えば?
990:デフォルトの名無しさん
15/11/22 13:10:53.96 eHZxB5Wh.net
>>952
別人だよw
ID:OxpghztZは俺だからw
991:デフォルトの名無しさん
15/11/22 13:21:21.34 YBzI3bTB.net
ゲーム作ろうとしてる奴なんか十把一絡げでいい
総じて低レベルだから
992:デフォルトの名無しさん
15/11/22 16:34:36.06 2L1cven6.net
プログラミングでゲームを作ろうというというのは、
誰にでも思いつく発想だからな
殆どは挫折する
993:デフォルトの名無しさん
15/11/22 17:26:57.27 KDgQ57Ye.net
だがベーマガ時代はそうはならなかった。
日本中の少年少女がゲームプログラミングに熱中し、
作成したゲームのソースをベーマガという雑誌に投稿し掲載されたものだ。
今、日本のIT業界を支えてるのは高スキルな彼らである。
994:デフォルトの名無しさん
15/11/22 17:52:36.89 Z+udvk0o.net
>>960
前も書いた気がするけど、ベーマガなんてお子様向けの子供だましの雑誌だよw
まあ評価は世代にもよるだろうけどね。
少なくとも俺の評価はそう。
まあそれはどうでもいいけど、そういうネトウヨ的自己陶酔は傍目に気色悪い。
それが自己陶酔だって気が付いてないんだろうけど。
ついでに言うと、ベーマガの時代(って言っても20年あるから一口には言えないが)はゲームも
PCのハードも素朴な物だったから低スキルでもそれなりに評価されるものが作れたが、
今の時代WindowsにしろAndroidにしろそもそもゲーム向きじゃない上に
ユーザーの目も肥えてるから、はっきり言って今の時代ゲームを作る方が何十倍も大変だと思う。
実際問題今時のゲームプログラマってプログラマ全体の中でも地頭がよくないと出来ないんじゃないの?
995:デフォルトの名無しさん
15/11/22 18:06:41.65 YBzI3bTB.net
ゲーム作ろうとしてる奴とゲームプログラマを同列に扱った覚えはない
ゲーム作ろうとしてる奴はゲームプログラマではない
996:デフォルトの名無しさん
15/11/22 18:31:41.01 GP1Qn5OD.net
ベーマガのプログラムを今のゲーム制作と比較するのは低能のすること。
企画 + ゲームデザイン + プログラミングをすべて一人でやってたのをお子様とか言っちゃうのはゆとりかな?
997:デフォルトの名無しさん
15/11/22 18:34:49.04 fPUy/JrI.net
>>961
× 実際問題今時のゲームプログラマってプログラマ全体の中でも地頭がよくないと出来ないんじゃないの?
○ プログラマって本当は地頭がよくないと出来ない
本来の問題は日本では頭が悪い奴がプログラマになって無駄なデスマーチ&生産性が上がらないための低給料
というデフレスパイラル的なものに陥っていることだろ。(アメリカではこれを回避できているらしい)
ゲームプログラマだけが特に頭がいい必要があるとは思えない、というか、
本来はどの方面のプログラマも頭がよくないと駄目なんだよ。
ただ、プログラミングなんて手段でしかないんだから、
ゲーム好きがゲームを作ろうとするのは自然なことだと思うし、いいことだと思うよ。
とはいえ、今ここでやろうとしている2人は両方とももう少し基本を押さえるべきではあるが。
C#は軽量言語ではない。ほぼ全てのケースに対して対応できる記述能力/ライブラリは既にある。
逆に言えば、初心者が先人が全く想定していなかったケースにいきなり当たる確率はほぼ無い。
今お前らがやろうとしていることが出来ないのは、やり方が間違っているからだ。
(普通は違うやり方で実装し、その方がいい/それで問題ないからその実装手段が提供されていない)
998:デフォルトの名無しさん
15/11/22 18:42:55.24 NW0PnoYA.net
>>948
文脈わからんし動的に追加、削除の含意も知らんが
それってDictinary<string,int>の仕事じゃないのって、アドバイスしとくね
あとは列挙型の内部実装がどうなってるかしらないけどどうせクラスか構造体かでしょ
他にあるとすればリフレクション使ったりで列挙型クラスを動的構築するとかになるのか?
まあやりたくないよね、そんなこと
999:デフォルトの名無しさん
15/11/22 18:47:35.92 j30Wwuuw.net
List<int,string,double>みたいなのは
将来使えるようになる?
1000:デフォルトの名無しさん
15/11/22 18:51:26.08 NW0PnoYA.net
>>966
なにそれ?どうやって使うの?
1001:デフォルトの名無しさん
15/11/22 19:03:27.41 Z+udvk0o.net
>>964
本質的にプログラマに向かない奴がプログラマになってる(それで2chとかでブラックがどうのとか自分の無能を棚上げして
被害妄想全開)って現状認識はその通りだと思うが、プログラマって一口に言っても要求される能力は全然違うわけで、
例えばC#で特定企業向けの業務ソフトを作ってる人間とゲームプログラマじゃ、恐らく後者の方が圧倒的に
高い能力が要求されるのはまあ事実だと思うよ。
そのくせ社会的な評価はあんまり高いように思えんから何か損な仕事だな。
俺はゲームプログラマじゃないけどね。
1002:デフォルトの名無しさん
15/11/22 19:03:55.53 DtMt13r7.net
Tupleの事でしょ
今でもプロパティ名がItem1~って固定な簡易Tupleならある
でもプロパティ名もその場で付けれるちゃんとしたTupleの実装予定はあるよ
1003:デフォルトの名無しさん
15/11/22 19:06:02.36 KDgQ57Ye.net
>>961
ゆとりの言い分はよく分った。
1004:デフォルトの名無しさん
15/11/22 19:08:06.34 +71DZHa4.net
技術を磨くだけだったら好きなら誰にでもできる
社会的に成功するのはその上ビジネスが分かってる奴で、これは稀
1005:デフォルトの名無しさん
15/11/22 19:12:42.09 Z+udvk0o.net
>>970
俺から見たらベーマガ世代こそどっぷりゆとり世代なんだけど。
1006:デフォルトの名無しさん
15/11/22 19:15:10.11 fPUy/JrI.net
>>969
ちょっと脱線するが、Tupleって結局何がいいんだ?
構造体やクラスで問題なく実装できるよね?
ただ流行っているみたいだから、何か利点があると思うのだが、、、
1007:デフォルトの名無しさん
15/11/22 19:21:08.24 +71DZHa4.net
>>973
タプルがじゃなくて関数型プログラミングが(意識高い系の連中の中で)流行ってる
関数型プログラミングでは複数の値を一つにまとめて扱いたいことが多いのでタプルが必要
オブジェクト指向プログラミングならフィールド書き換えればいいので本来不要
1008:デフォルトの名無しさん
15/11/22 19:30:38.64 KDgQ57Ye.net
>>972
中高生が一種や二種を取るんだ。そして当時の試験範囲は大学レベルの英語や数学、そして商業、工業も含まれてる。
おれも余裕で合格したけどね。今みたいに簡単じゃないよ?選択マークじゃなく筆記だし。
1009:デフォルトの名無しさん
15/11/22 19:37:26.35 fPUy/JrI.net
>>968
ゲーム:チューニングゴリゴリ、ただし基本的に1発出して終わり
特定企業向け業務ソフト:動けばいいが、長期的メンテナンスが求められる
ゲームプログラミングの方が単品では難しいのは事実だけど、
業務ソフトには長期メンテを考慮した構成が求められる。(難しさの方向が違う)
ただ、チームとしては、ゲームは10人中10人バリバリでないと駄目なのに対し、
業務ソフトなら、トップ1人が美しい構成を考え、残り9人は並みでいい。
だからゲームチームを作る方が難しいし、
一般論としてゲームプログラミングの方が難しいというのもその通りだろう。
1010:デフォルトの名無しさん
15/11/22 19:55:16.96 NW0PnoYA.net
ゲームはオクルージョンカリングとか空間分割木とか意味不明なまでに難しい世界があるからな
単純な2Dゲーなら今はマシンパワーもあるし、複雑怪奇な最適化はしなくてもいいと思うけど
マルチスレッドとか、メモリアクセスやファイルアクセスのタイミングとかやりだすと
複雑そうな感じは受ける
1011:デフォルトの名無しさん
15/11/22 20:19:08.43 fPUy/JrI.net
>>974
さらに脱線して申し訳ないのだが、関数型プログラミングは何で流行っているの?
正直、余りメリットを感じないのだが�
1012:B(なお使っているのはJavaScript) HaskellかLispやらないと理解不能かな? 言っちゃ悪いが、Lispなんて昔からあっても誰も使ってなかった=実用レベルに達していないゴミ だと考えている。それとは別に、内部状態を持たないとか、カリー化とかで検証がし易くなるのは事実だけど、 今その手の言語を使っている奴らがそこまでの検証レベルを要求されているとは到底思えない。 (言語いじって遊んでいるだけのように見える) JavaScriptとかでも(俺は本業ではないが) ・ローレベルコードは書かない(キリッ (for文を絶対に使わず、map(匿名関数)で処理) ・内部状態を持たない(キリッ (途中一部分だけで済む場合も頭から全部処理) も多くて、確かにこの方法ならバグりにくいが糞遅い。実感としては大半がこんな感じ。 お前ら明らかに方向を間違ってるよなーとしか思えないのだが。 (問題ない場合はこの手の超富豪プログラミングもありだが、問題あっても対策しない感じがある。 宗教がかった聖域というか。)
1013:デフォルトの名無しさん
15/11/22 20:38:22.50 xDxhP+Cq.net
流行ってねえよ
声がでかい奴が拡声器でわめいてるからそう感じるだけだ
1014:デフォルトの名無しさん
15/11/22 20:45:30.67 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:デフォルトの名無しさん
15/11/22 21:03:03.77 T8hXZH4x.net
関数型は、スクリプト等の言語を作りたい人とか、高度な文字列処理が必要不可欠な人とか
科学計算駆使しなきゃならない人とかが使うんだよ
そういった領域では実用的というより必須になる
最近話題にのぼりやすい言語では、R言語とかがあるが関数型になっている
C#は汎用言語なので色々な領域の処理をする人が居て、こういった処理をしたいと望む人には欲しい機能なんだ
最近は、ビッグデータとか取り扱う人も多いでしょうし、例えば金融関係とかトレーディング等でHaskellの採用があったりする
そういう意味では地味に流行ってはいるかもしれない、ビッグデータもバズワードになる程
1016:度には流行ってるからね タプルは自分も欲しいと思っている機能、オブジェクト指向が不向きな領域の処理多いが ユーザーインターフェイスと別けて別言語でというのも煩わしいので >声がでかい奴が拡声器でわめいてる ラムダ式の人とかうざいよね、これだけは同感w 昨日の要求はしたいが、声高々に流行っている言う程のもんかよwww
1017:デフォルトの名無しさん
15/11/22 21:07:02.69 o24m0lwv.net
なにこれ、自演祭り?
1018:デフォルトの名無しさん
15/11/22 21:09:34.06 T8hXZH4x.net
あぁ、また自演なのかな、例のヤツの自演なのかもしれん
>>981 だけは違いますんでw
1019:デフォルトの名無しさん
15/11/22 21:31:52.46 GP1Qn5OD.net
「スレチ」という便利な言葉がある
1020:デフォルトの名無しさん
15/11/22 21:35:46.49 T8hXZH4x.net
自演してでも自分の話したい話題に流れを変えたい酷いかまってちゃんが居るだけですよw
彼にとって、スレチとか関係ないのです、誰もお前とは話したないから、さっさと自殺すればいいのに
1021:デフォルトの名無しさん
15/11/22 21:54:59.54 fPUy/JrI.net
>>980
> 純粋関数はマルチスレッドに良い影響をもたらす
これは確かにその通りなのだが、同じ事はオブジェクト指向でも言われていたはず。
OOPも1オブジェクトに対して1スレッドを割り当てれば干渉しない。
関数型で自動マルチスレッドを期待するのなら、結果的に完全に同じものになる。
> 内部状態を極力持たずにというのはweb(HTTP)の考え方だし
JavaScriptに関してはこれは多少弁解の余地があって、
実際やっていると503エラーとかで内部状態がずれる時がよくあるので、
最初から管理しないというのも一つの方法にはなる。(ただし糞遅い)
> JsonやXMLや(S式)で非同期処理するということを考えると関数型は流行らざるをえない
これはよく分からない。関数型の方が綺麗に書けるか?
ちなみにPromiseとか欲しいとも思わない。主に手続き型で書いているからというのもあるとは思うが。
JavaScriptはPromiseを採用、async/awaitも検討中だ。
C#はPromiseなし、async/awaitありだ。俺はこっちの方が理解しやすいのだが、これもスタイルの違いなのか?
1022:デフォルトの名無しさん
15/11/22 22:09:26.92 xDxhP+Cq.net
口から下痢たれ流すの止めてくんない
1023:デフォルトの名無しさん
15/11/22 22:09:50.22 fPUy/JrI.net
>>981
> 例えば金融関係とかトレーディング等でHaskellの採用があったりする
これは知っているが、結局のところ、今Haskellが出来る=それなりの頭である事がある程度期待できる
だけであって、>>980の指摘通りで、別にHaskellが適しているわけではない気がするのだが。
> C#は汎用言語なので色々な領域の処理をする人が居て、こういった処理をしたいと望む人には欲しい機能なんだ
俺はJavaScriptをやって初めてクロージャを知り、確かに便利だと実感した。
ただもっと驚いたのは、C#も2.0からクロージャを普通に使えたことだ。
とはいえC#がクロージャをガンガン使っているイメージはない。
逆に言えば、C#のスタイルなら大して恩恵がないのだと思う。で、以下なのだが、
> タプルは自分も欲しいと思っている機能
これ何がうれしいんだ?
既に書いたが、普通に構造体やクラスでやるのと同じとしか思えない。
関数型風に書いたらタプルの方が綺麗に書けるって事?(それでも変わらない気がするが、、、、)
1024:デフォルトの名無しさん
15/11/22 22:12:50.69 rVLRuBGq.net
3行以上書く奴はキチガイって嘘じゃなかったね
ゴメンね(ゝω・)v キャピ
1025:デフォルトの名無しさん
15/11/22 22:24:15.75 yPUHF/WV.net
>>981
> そういった領域では実用的というより必須になる
たかが言語で必須とか…
関数型言語がない時代は、
> スクリプト等の言語作成
> 高度な文字列処理
> 科学計算を駆使
する奴は居なかったのかよ
1026:デフォルトの名無しさん
15/11/22 22:29:28.42 fPUy/JrI.net
誰と勘違いしているのかは知らんが、スレを変えたい場合は俺は問題ない。
誰かが俺に対して他のスレでレスを付けた場合、俺がレスを返すのならそこで返す。
だからレスをくれる奴がいるのなら、スレを選んでくれていい。(テストスレでも可)
1027:デフォルトの名無しさん
15/11/22 22:41:52.29 iT1tZCI1.net
Tupleは複数値リターンのために導入されたものと思っていたが、複数値リターンが未だ導入されない
1028:デフォルトの名無しさん
15/11/22 22:50:34.89 fPUy/JrI.net
>>992
てか問題なくね?
URLリンク(www.atmarkit.co.jp)
1029:デフォルトの名無しさん
15/11/22 22:57:18.42 T8hXZH4x.net
そんなタプルは問題ありありだよw
1030:デフォルトの名無しさん
15/11/22 22:59:26.10 Bfhlr/Lz.net
Item1,Item2とかソースに出てくる時点で失格
多重代入と引数リストへの展開ができない限りは使うべきでない
1031:デフォルトの名無しさん
15/11/22 23:58:35.59 SVdGikuE.net
>>974
まぁ、そのためだけに構造体とか作るの面倒くさいしな
1032:デフォルトの名無しさん
15/11/23 00:24:30.36 NS56NU1F.net
>>981, ID:T8hXZH4x
自分がついていけない話になるとすぐスレチだと言い出すクソガキはどこのスレにもいる。
お前が嘘を嘘と見抜けない池沼でいるのはお前の自由だが、
荒らしでないつもりなら>>1読んでスレ立てろ。