ふらっと C#,C♯,C#(初心者用) Part134
: デフォルトの名無しさん (ワッチョイ 0f9a-KsIq) [sage] 2017/11/29(水) 19:23:58.05:GNLsbK4F0 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください を踏んだ人は新スレを建てて下さい。 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part133 ttp://mevius.5ch.net/test/read.cgi/tech/1510056685/ ■関連スレ C#, C♯, C#相談室 Part95 ttp://mevius.5ch.net/test/read.cgi/tech/1508180530/ C#, C♯, C#相談室 Part93 ttps://mevius.5ch.net/test/read.cgi/tech/1492818720/ ■コードを貼る場合は↓を使いましょう。 ttp://ideone.com/ ttps://dotnetfiddle.net/ ■情報源 ttps://msdn.microsoft.com/ja-jp/library/gg145045.aspx ttps://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index ttps://msdn.microsoft.com/en-us/library/gg145045.aspx ttp://referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured : デフォルトの名無しさん (ワッチョイ 27e3-RHkz) [sage] 2017/11/29(水) 19:31:14.12:rMr3voC10 (*゚∀゚)v2get! : デフォルトの名無しさん (ササクッテロレ Spbd-CjLb) [sage] 2017/12/05(火) 12:25:34.83:cln+gySGp 今年の夏くらいからプログラミング勉強し始めたけど結局なーんも身についてなくて笑えない ちょっと応用すれば出来るはずのことも全く同じサンプルがないと何も出来ないし頭の悪い奴ってのはほんとに必要ないなと実感したわ こんなの身についてるってみんなすげーよ ほんと尊敬する : デフォルトの名無しさん (ブーイモ MM0a-bGuk) [sage] 2017/12/05(火) 12:44:40.61:WFyLCtnzM 趣味なら続けてればそのうちできるようになるよ もし仕事にするつもりだったなら今すぐ考え直したほうがいい 向いてない人が業界入っても生涯最底辺確定だよ : デフォルトの名無しさん (ワッチョイ 6ad2-AEDt) [sage] 2017/12/05(火) 12:53:46.29:C7A8AnoX0 今振り返るとプログラムを書けると自信を持って言えるようになるまで5年くらいかかった : デフォルトの名無しさん (ワッチョイ 4a60-CnPo) [sage] 2017/12/05(火) 13:17:45.00:x6DQdw1l0 はやいね… : デフォルトの名無しさん (ワッチョイ 6d02-k94u) [sage] 2017/12/05(火) 16:30:38.85:wkVlcZxF0 レベル2の症状だろ レベル3になると、実はまだまだヒヨコに過ぎなかったと気づく : デフォルトの名無しさん (ササクッテロル Spbd-CjLb) [sage] 2017/12/05(火) 23:51:30.36:3JpFSBB9p 最近始めたんやけど、ラムダ式がまだまだ身につかんな… 自称プログラマーもまだまだ遠いと感じる : デフォルトの名無しさん (ワッチョイ 398a-fjL1) [sage釣] 2017/12/06(水) 00:18:23.00:NYn2QdoV0 LISPしなされ : デフォルトの名無しさん (ワッチョイ 8903-8BY9) [sage] 2017/12/06(水) 00:27:28.54:WT/THAC00 レベル3の症状だろ レベル4になると、実はプログラマに向いてないって事に気付き始める : デフォルトの名無しさん (ササクッテロレ Sp8b-1eZt) [sage] 2017/12/07(木) 08:25:05.89:AtZ2X5K5p VS2015を用いてC#でアプリを作っています 現在テストを行う中でスタブを使おうと考えたのですがどういうものかの記述はしてあっても実装の仕方が見つけられないのでどう実装するべきものなのかアドバイスをお願い致します なにか決まった構文などがありますか? スレ違いなら申し訳ありません : デフォルトの名無しさん (スプッッ Sd3f-SaVx) [sage] 2017/12/07(木) 08:42:17.58:15g2M7EDd moq : デフォルトの名無しさん (ブーイモ MMbb-/Bld) [sage] 2017/12/08(金) 08:21:40.76:PpC6VnTrM 普通に実装するんだよ たとえばリポジトリクラスをモックするなら、DBの変わりにListやファイルを使うように実装する Moqみたいなアドホックなモックに頼るのは都合のいい脳内彼女状態になりやすいからお勧めしないな : デフォルトの名無しさん (スップ Sd3f-SaVx) [sage] 2017/12/08(金) 10:48:33.70:MNtGar8nd 頼るんじゃなくて賢く利用するんだよおバカ : デフォルトの名無しさん (ワッチョイ d714-tojf) [sage] 2017/12/08(金) 14:00:50.88:qb513BYK0 ゲスい : デフォルトの名無しさん (ワッチョイ ff9a-StTJ) [sage] 2017/12/08(金) 20:43:50.51:0wYNAdO30 言語以前の問題だから板違いではないがスレ違いだな 「デバッグに何か決まった手順はありますか」って聞くようなもの そして「使おうと考えた」のではなく「使えと指示された」と邪推 : デフォルトの名無しさん (ワッチョイ 5723-/Bld) [sage] 2017/12/09(土) 09:15:02.44:BBiO47QN0 その賢い利用というのが、テストが正しいかどうかはともかく、 なんでもいいからとにかくテストをパスさせて仕事から逃げることを意味するなら積極的にMoqを使うべきだな プロダクトの機能に対して責任を持つのか、コーディング作業員として単体テストのレビューが通るところまでの責任なのか プログラマの立場次第であり、絶対的にどちらが正しいとはいえない : デフォルトの名無しさん (ワッチョイ 9fd2-SaVx) [sage] 2017/12/09(土) 11:18:08.25:ZhOJxZh30 Moqの使い方すら理解できないキチガイがわめいてる : デフォルトの名無しさん (スップ Sdbf-SaVx) [sage] 2017/12/09(土) 11:20:12.53:4MNbsZWJd xUnit自体のテストでもMoq使ってんのに何言ってんのこいつ : デフォルトの名無しさん (ワッチョイ 5723-/Bld) [sage] 2017/12/09(土) 11:59:32.42:BBiO47QN0 xunit見てみたけど、内部的な依存関係の差し替えには全く使われてないね テストツールをテストするという特殊な事情ゆえ、テストには(ユーザーにとっての)テスト対象コードが必要になる その代わりとして極一部でMoqやNSubstituteが使われてるようだ 賢い使い方の一つだとは思うけど、リポジトリクラスやサービスクラスを差し替えたりするのとは全くの別物と考えるべきかと : デフォルトの名無しさん (ワッチョイ ff81-tojf) [sage] 2017/12/09(土) 12:06:36.64:JB9pjNrg0 またヤバそうなのが湧いてるなw 先週みたいになるのかな? いやーゴミは世に憚るってホントだね : デフォルトの名無しさん (ブーイモ MMbf-/Bld) [sage] 2017/12/09(土) 12:17:46.40:awJ9eWLVM んな大袈裟な 俺は自分の経験(個人・チーム含む)からアドホックなモックは上手くいかないと思ってるけど、 実際に効果的に使われてるケースがあるならぜひ知りたいよ xUnitのテストなんて超特殊な例じゃなくてもっと適切な例をplz : デフォルトの名無しさん (ワッチョイ 9fd2-SaVx) [sage] 2017/12/09(土) 12:19:44.13:ZhOJxZh30 どうやらUnit TestとIntegration Testの違いさえ理解できないガイジのようだ : デフォルトの名無しさん (ワッチョイ 97a5-fvxL) [sage] 2017/12/11(月) 20:41:46.07:f/7OfSkR0 ワイクソ馬鹿 そもそも何のためにスタブとかモックとかがあってどういう時に有用なのか分からない 足りない所を補うみたいなイメージなんだけどプログラムが全部完成してからのテストなら必要ない? : デフォルトの名無しさん (ワッチョイ d716-tojf) [sage] 2017/12/11(月) 21:01:08.81:cWpuydkA0 C#関係ねえ : デフォルトの名無しさん (ワッチョイ 9fd2-SaVx) [sage] 2017/12/11(月) 21:02:58.97:xzgxDEt/0 たとえばあるメソッドをテストするとして、テスト目的の箇所以外の依存関係をモック/スタブで差し替えれば、目的のロジックに集中できるしパフォーマンス的にも有利 : デフォルトの名無しさん (ドコグロ MM4b-45bT) [sage] 2017/12/11(月) 21:20:39.43:y3IM1v6ZM 例えばテスト対象のメソッドが何らかのAPI呼び出してるとして、そのAPIがエラーを返すケースのテストをする時にスタブを使ってエラーを返したりする : デフォルトの名無しさん (ブーイモ MMcf-/Bld) [sage] 2017/12/11(月) 21:38:59.51:Y2G40TozM テストしてて、ここ触りたくねえなあデータ用意すんの面倒臭えなあと思うことあるだろ? 正しいかどうかは別にして、とりあえず臭いものに蓋をしたまま手っ取り早くテストを終わったことにして帰宅できる : デフォルトの名無しさん (ワッチョイ 9fd2-SaVx) [sage] 2017/12/11(月) 21:50:44.91:xzgxDEt/0 あほ : デフォルトの名無しさん (ワッチョイ 97a5-fvxL) [sage] 2017/12/11(月) 21:54:52.65:f/7OfSkR0 ありがとう そしてC#じゃない話広げてごめん テストの為にSQLだったりなんか色々条件準備するの大変だからスタブで置き換えちゃおうみたいな感覚なのかな : デフォルトの名無しさん (ワッチョイ 9fd2-SaVx) [sage] 2017/12/11(月) 21:57:48.40:xzgxDEt/0 大変だからというか、テスト目的と関係ないAPIやDBアクセスに依存しないようにするため : デフォルトの名無しさん (ワッチョイ ff81-tojf) [sage] 2017/12/11(月) 22:30:20.58:oxZtEftd0 こういう奴らってサーバーがAWSとかGAEのサーバーが503で落ちてる時のテストとかどうやってんの? DoS掛けて落としてるの? : デフォルトの名無しさん (ワッチョイ 9fd2-SaVx) [sage] 2017/12/11(月) 22:32:42.57:xzgxDEt/0 テストしないんだろ : デフォルトの名無しさん (ブーイモ MMbb-T+jR) [sage] 2017/12/12(火) 12:55:00.41:IcKwzfnVM サーバーが落ちてる状態をスタブ/モックで再現すればいいんちゃう? : デフォルトの名無しさん (ドコグロ MMeb-45bT) [sage] 2017/12/12(火) 13:38:31.25:55mcEBCKM そういう話をしてるんだが... : デフォルトの名無しさん (ワッチョイ d716-tojf) [sage] 2017/12/12(火) 14:04:29.84:/mkMVrEb0 ニホンゴムズカシイネ : デフォルトの名無しさん (ワッチョイ 97a5-1g/A) [sage] 2017/12/12(火) 22:16:10.60:TlJgX2b/0 プログラミング始めたてなんだけど、CSVファイルの先頭何行を無視してそれ以外のデータをデータベースに入れたいって状況になったんだけど、経験者の人はめっちゃ簡単だよって言ってて、 でも俺には全く想像もつかなくて、プログラミング出来る人の頭の中はほんとどうなってるんだ… やっぱみんなもこれくらいのコード書くのは楽勝なの? : デフォルトの名無しさん (ワッチョイ b781-9VJ3) [sage] 2017/12/12(火) 22:19:09.90:lT+kB2MF0 一瞬でアルゴ思いつくけど、おまえやばくね? : デフォルトの名無しさん (ワッチョイ 97a5-1g/A) [sage] 2017/12/12(火) 22:23:02.58:TlJgX2b/0 やっぱ経験者からすると簡単なんだ すげぇなぁ… CSVなんて触った事ないしそこから先頭何行とか全く想像もつかん 始めて数ヶ月だけどオレ向いてないんだろなぁ : デフォルトの名無しさん (ワッチョイ ff9a-StTJ) [sage] 2017/12/12(火) 22:33:48.31:CW11BSat0 テキストの数行をスキップするのならすぐできるだろ。それがCSVになるだけ CSVのパーサーについては ttps://dobon.net/vb/dotnet/file/readcsvfile.html にいくつもやり方が乗っている ネットで調べればC#初心者でもできる案件 : デフォルトの名無しさん (ワッチョイ 9fd2-LLtl) [sage] 2017/12/12(火) 23:21:09.16:5Qo60rlq0 いっぺんに全部やろうとするんじゃなくて、小さい作業に分解して考えるんだよ 今回なら「先頭数行を無視してテキストファイル読み込む」にCSVは関係ないでしょ?まず欲しい分だけ読み込んで、CSVとしてパースするのはその後に考えればいい ググって出てくるくらいまで分解すれば、あとは組み合わせておしまい : デフォルトの名無しさん (ワッチョイ ff9a-StTJ) [sage] 2017/12/12(火) 23:28:56.01:CW11BSat0 >今回なら「先頭数行を無視してテキストファイル読み込む」 要素内に改行がある場合(めったにないが)を想定しなきゃならないので先にパーサーを通す必要がある 元の要件が「CSVファイルの先頭何行を無視して」だから : デフォルトの名無しさん (ワッチョイ 9fa4-jOus) [sage] 2017/12/13(水) 00:33:52.07:dUmCylYF0 この場合、先頭数行はヘッダーでcsvじゃないのでは : デフォルトの名無しさん (ドコグロ MMdf-45bT) [sage] 2017/12/13(水) 07:16:49.88:55R6yVv7M まずは ・CSV の先頭になんかワケわからん行がくっついてる のか ・CSV のデータを何件か読み飛ばす のかをはっきりしろって話だわな : デフォルトの名無しさん (ワッチョイ 3703-ZqID) [] 2017/12/13(水) 07:25:32.55:Iqcr0fg80 どうせ読み飛ばすんだからどっちでもええやろそんなもんw : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/22(金) 02:36:25.35:agnD/jLFa 向こう使い終わったな : デフォルトの名無しさん (スププ Sd1f-U61R) [sage] 2017/12/22(金) 04:56:06.32:6xfAUU/Sd ここ数日ここ見てたんだが自称上級者様がドヤ顔してるだけのスレだな : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/22(金) 06:19:42.32:agnD/jLFa どんなのが理想なんだ? ぶっちゃけほとんどの質問に回答がもらえてるようだが : デフォルトの名無しさん (ワッチョイ 6302-+TNz) [sage] 2017/12/22(金) 09:45:16.77:Vx5ddxy90 ワードサラダボーイがいないスレ : デフォルトの名無しさん (ガックシ 067f-Iw9I) [sage] 2017/12/22(金) 09:53:06.84:8f8y8qIA6 それは何ですか? : デフォルトの名無しさん (ワッチョイ 9306-buzn) [sage] 2017/12/22(金) 09:55:25.36:oR3DRk2W0 会計システムはクラサバが最低限の要件なので、計算はDBでやるからクラス分けなど何の役にも立たないし却って邪魔だ 彼はクラサバと無縁なスタンドアローンの世界に住んでいるのかもしれんね : デフォルトの名無しさん (ブーイモ MM27-bebx) [sage] 2017/12/22(金) 10:08:25.66:2CqGXpCvM スタンドアロンだとして、どういうデータ設計したら費用項目ごとにクラスができるんだろうね 日付, 費用種別コード, 金額 まさかこんなタプルで管理してるんだろうか : デフォルトの名無しさん (ワッチョイ ffb3-6aYH) [sage] 2017/12/22(金) 10:17:07.48:sp7ymsVp0 自称上級者様ご降臨〜 w : デフォルトの名無しさん (ブーイモ MM27-vkjg) [] 2017/12/22(金) 10:23:52.41
:lyRs/gAjM そ、ギョーミーな戦場ではオブジェクト指向などと言う玩具の武器は役に立たない : デフォルトの名無しさん (ワッチョイ ffd2-Xao7) [sage] 2017/12/22(金) 10:26:29.36:xQ825djR0 いまだにこんな老害がいるからね : デフォルトの名無しさん (ブーイモ MM27-vkjg) [] 2017/12/22(金) 10:32:48.81
:lyRs/gAjM 何をいっておる、LinqもLambdaも戦場の小火器として使えるが腐ったオブジェクト指向など使えぬわ : デフォルトの名無しさん (ワッチョイ 634b-Iw9I) [sage] 2017/12/22(金) 10:56:00.35:pMoYdCae0 関数型がいいって言いたいの? : デフォルトの名無しさん (ブーイモ MM27-vkjg) [] 2017/12/22(金) 10:59:19.90
:lyRs/gAjM 腐ったオブジェクト指向脳で単純なものを複雑にするヤツが大嫌いなだけ : デフォルトの名無しさん (ワッチョイ cfe8-7LW1) [sage] 2017/12/22(金) 11:05:05.39:oEPXElot0 結局個人的感情か 毎回レスの最後に ※個人の感想です って付けとけよ : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/22(金) 11:10:42.54:cOtumJc5a 全レスそうだから省略できる もちろん個人の感想だが : デフォルトの名無しさん (ブーイモ MM27-vkjg) [] 2017/12/22(金) 11:11:28.05
:lyRs/gAjM オブジェクト指向は過去の遺物 : デフォルトの名無しさん (ワッチョイ 6f9e-rt3g) [sage] 2017/12/22(金) 12:24:49.48:4JyKqZfo0 じゃあ今流行りは何? : デフォルトの名無しさん (ガックシ 067f-Iw9I) [sage] 2017/12/22(金) 12:29:43.88:E5w5T/306 大きなスケール→ガチガチのオブジェクト指向 小さなスケール→手続き型、関数型 : デフォルトの名無しさん (ワントンキン MM9f-OPDc) [sage] 2017/12/22(金) 12:35:16.71:3WJNmOAXM 名前、住所、電話番号、みたいなデータがあったとして、 Aさんの住所を参照するのに、["A"]的なアクセスするやつ、なかったでしたっけ? : デフォルトの名無しさん (ワッチョイ ffb3-6aYH) [sage] 2017/12/22(金) 12:41:08.55:sp7ymsVp0 Dictionaryでいいんじゃね? : デフォルトの名無しさん (ガックシ 067f-Iw9I) [sage] 2017/12/22(金) 12:47:31.71:E5w5T/306 ttps://ideone.com/opVzhA : デフォルトの名無しさん (アウアウウー Sa67-bqMz) [sage] 2017/12/22(金) 13:06:22.96:4dlvq16La そういう仕組みはインデクサという : デフォルトの名無しさん (ワッチョイ f3f7-fDUi) [] 2017/12/22(金) 19:32:54.21:w6Zu6k6M0 ボタンを押すと処理を緊急停止するプログラムを作りたいのですがどのような方法がありますでしょうか? : デフォルトの名無しさん (ワッチョイ cf9a-RBuR) [sage] 2017/12/22(金) 19:39:03.10:Ta4DCaCP0 とりあえずthis.Close()でFormを閉じる それでだめなら要件を挙げて : デフォルトの名無しさん (ワッチョイ f3f7-fDUi) [] 2017/12/22(金) 19:46:47.55:w6Zu6k6M0 今はbackgroundWorkerで処理を実行しているのですが CancelAsync()で停止させても if (backgroundWorker1.CancellationPending) { e.Cancel = true; return; } というコードに到達するまで停止しないので停止までに時間があるのを改善したいです このコードをたくさん差し込むしかないのでしょうか? : デフォルトの名無しさん (ワッチョイ cf9a-RBuR) [sage] 2017/12/22(金) 19:51:25.63:Ta4DCaCP0 親フォームでkillしたらbackgroundWorkerも止まるんじゃないの? : デフォルトの名無しさん (ワッチョイ f3f7-fDUi) [] 2017/12/22(金) 19:53:12.14:w6Zu6k6M0 どういうことでしょう あらゆる処理をForm1に書いていまして killの仕方がわからないです : デフォルトの名無しさん (ワッチョイ cf9a-RBuR) [sage] 2017/12/22(金) 19:59:46.81:Ta4DCaCP0 backgroundWorker以外の処理は生かしておきたいって話なら分からないな というかキャンセル用のフラグ作って止めなきゃならないところに停止処理差し込むのがそんな大変だとも思えないけど 楽したいってのはわかるけど、それは他の人に聞いて : デフォルトの名無しさん (ワッチョイ c3b3-QXzE) [sage] 2017/12/22(金) 20:00:08.26:W8xzYPPc0 >このコードをたくさん差し込むしかないのでしょうか? >あらゆる処理をForm1に書いていまして まず、設計の仕方を覚えた方が良い : デフォルトの名無しさん (ワッチョイ ff19-vkjg) [] 2017/12/22(金) 20:10:01.65:HDUqSz1r0 Application.Exit(); : デフォルトの名無しさん (ワッチョイ 03c9-buzn) [sage] 2017/12/22(金) 20:31:26.17:kA+szNzE0 自作プログラムでSemaphoreFullExceptionが発生したんだけど、これってSemaphore使って無くてもTaskやawait使っていれば発生するようなもんなの? : デフォルトの名無しさん (ブーイモ MM27-bebx) [sage] 2017/12/22(金) 20:34:55.44:2CqGXpCvM なぜスタックトレースを見ないのか : デフォルトの名無しさん (ワッチョイ 03c9-buzn) [sage] 2017/12/22(金) 20:39:08.36:kA+szNzE0 Unhandledで拾ったは良いものの、例外詳細見たらスタックトレースに他の発生行が無くてその例外行だけだったのよ どこかでthrowし直してたとしてもその行が表示されるのにな : デフォルトの名無しさん (アウアウウー Sa67-bqMz) [sage] 2017/12/22(金) 20:40:07.26:4dlvq16La まあ普通に使い方間違えてバグってんでしょ : デフォルトの名無しさん (アウアウエー Sadf-HQem) [sage] 2017/12/22(金) 20:47:43.11:G9MI+OvKa なんか先週ぐらいも同じ質問してた人がいたけどw だからさあ、メソッドを外から強制的に止めようって発想が間違ってる。 メソッド自身が何かをポーリングして自分で止まるように作る : デフォルトの名無しさん (ワッチョイ f3f7-fDUi) [] 2017/12/22(金) 21:17:12.68:w6Zu6k6M0 それ自分です! : デフォルトの名無しさん (ワッチョイ cf81-+TNz) [sage] 2017/12/22(金) 21:18:00.45:UrkxRoCQ0 二度も同じことを聞くんじゃない : デフォルトの名無しさん (アウアウエー Sadf-HQem) [sage] 2017/12/22(金) 21:27:30.25:G9MI+OvKa マジすかw : デフォルトの名無しさん (ワッチョイ c3b3-QXzE) [sage] 2017/12/22(金) 21:30:54.07:W8xzYPPc0 わろす : デフォルトの名無しさん (ワッチョイ ffd2-VulL) [sage] 2017/12/22(金) 21:46:10.24:Kw0QQsKg0 潔くてすき : デフォルトの名無しさん (ワッチョイ 6f9e-rt3g) [sage] 2017/12/22(金) 22:28:43.29:4JyKqZfo0 backgroundworkerとtaskの違いは何よ? : デフォルトの名無しさん (ワッチョイ 6f76-5z/u) [] 2017/12/22(金) 22:41:34.49:Iyc/J/sJ0 BackgroundWorkerはレガシー : デフォルトの名無しさん (ワッチョイ 138d-6js8) [sage] 2017/12/22(金) 23:26:00.99:vOV0CWVO0 ここで2回も聞くぐらいなら やりたいことを英語にしてGoogleで検索した方がいいよ ここにいる人が知らないか教えないだけで やり方はちゃんとある ポーリングとか今どきダサすぎるからやめとけ : デフォルトの名無しさん (アウアウエー Sadf-HQem) [sage] 2017/12/22(金) 23:41:50.51:G9MI+OvKa いやいやないからアホかw あるなら言ってみ。まあ無理せんでよろしい。 生スレッドは強制終了できるが普通は推奨されない。 : デフォルトの名無しさん (アウアウエー Sadf-HQem) [sage] 2017/12/22(金) 23:43:22.66:G9MI+OvKa そもそも外から強制的に止めるって発想に疑問を持たない時点でセンスがない : デフォルトの名無しさん (ワッチョイ 6f7f-HrVW) [sage] 2017/12/22(金) 23:43:31.65:teKS3rfy0 スレッドの強制停止は推奨されないから、事実上ポーリング的な手法しか無いと思うけど。 (マルチプロセスは考えないとして) : デフォルトの名無しさん (ワッチョイ 6f7f-HrVW) [sage] 2017/12/22(金) 23:48:36.08:teKS3rfy0 CancellationToken.ThrowIfCancellationRequested()使うけど、これもポーリングだしな。 : デフォルトの名無しさん (ワッチョイ 9306-buzn) [sage] 2017/12/22(金) 23:54:28.61:oR3DRk2W0 つか、今標準のCancellationTokenもポーリングが基本だよ そっから抜け出るのに例外使うのがミソではあるが : デフォルトの名無しさん (ワッチョイ 2323-bebx) [sage] 2017/12/23(土) 01:24:21.53:ti8BrBts0 スリープで時間かかってたり繰り返しスリープ入れてるなら Interruptを使って無理矢理中断させることもできる : デフォルトの名無しさん (ワッチョイ cf80-fDvV) [sage] 2017/12/23(土) 08:12:59.96:FPRjmoIB0 Async が付いている関数は、非同期処理だから、コンテキストが異なる。 だから、処理が実行される順番が確定しない Sync なら同期処理だから、順番が1つに決まる。 つまり、ソースコードの上から下へ、順に実行される コンテキストが異なるもの同士が通信するには、プロセス間通信(IPC)を使う。 基本的には、相手のキューに、投入することしかできない 1. 依頼する。A プロセス → OS → B プロセス 2. B が届いたメッセージを処理する 3. 返事する。B プロセス → OS → A プロセス これを同期処理にすると、1〜3 の処理中、 アプリが止まる(ストール)から、GUI では嫌われる。 50ms 以上掛かる処理は、非同期処理にすべき 逆に、CUI では同期処理にして、コンソールが止まる : デフォルトの名無しさん (ワッチョイ cf81-+TNz) [sage] 2017/12/23(土) 08:22:18.86:7ZChdQbJ0 このどことなくズレたレスをつける句読点過剰くんってのは、やはり糖質なのだろうか? : デフォルトの名無しさん (ワッチョイ 2323-bebx) [sage] 2017/12/23(土) 08:23:33.88:ti8BrBts0 句読点箇条君はすぐわかるな そして必ず間違ってる スレッドが違うだけならIPCなんか使う必要ない 普通は単にメモリを共有する FormsのBeginInvokeなどで使われているSynchronizationContextのキューも普通にメモリを共有してるだけだ : 95 (ワッチョイ cf80-fDvV) [sage] 2017/12/23(土) 08:24:22.31:FPRjmoIB0 つまり、1〜3 は、OS が行っている事だから、何もできる事が無い。 OS レスのマイコンとかなら、自分でプログラミングするけど 何かをしようとしても、OS がCPU のタイムスライス、 プロセスの優先度・実行順番を決めているから、何もできない それがOS。 OSレスなら、それらを自分でプログラミングしないといけないから、無理 : デフォルトの名無しさん (ワッチョイ 2323-bebx) [sage] 2017/12/23(土) 08:45:11.75:ti8BrBts0 このアスペはも理解してないんだと思うけど、初心者スレだから改めて否定しておく スレッドが違うだけなら、の123は正しくはこう 1. スレッドAがジョブの情報Jをメモリ上のキューQに登録する 2. スレッドBはQからJを取り出し、Jの内容に従って処理を実行する 3. Bは処理結果RをキューQ'に登録する 4. AはQ'からRを取り出し、後続処理を実行する AとBの間で普通にQやQ'を直接共有してるだけで、OSなんか全く関係ない そもそもマルチスレッドに限った話でもなく、例えば、ゲーム内で2つのキャラクターの間でやり取りしたい、 でも直接メソッドを呼ぶと長くなるとか、間にウェイトを入れたいとかで一旦処理をゲームループに戻したい、なんて時にも使える : デフォルトの名無しさん (ワッチョイ 6f9f-M1U4) [sage] 2017/12/23(土) 10:27:32.58:AW7swrGi0 オレオレキューなんぞつかわずにTaskを使え バックグラウンドといえどインプロセスで長大な処理を発生させるな そういうのはジョブ管理サービスを使えHangfireとかな : デフォルトの名無しさん (ワッチョイ cf81-+TNz) [sage] 2017/12/23(土) 11:10:58.80:7ZChdQbJ0 今回はTaskかどうかは問題ではなく 「BackgroundWorkerの処理を中断する方法で、ポーリングより面倒くさくない方法があったら教えて」 なので Thread.Abortでも使え : デフォルトの名無しさん (ワッチョイ cf81-+TNz) [sage] 2017/12/23(土) 11:12:40.52:7ZChdQbJ0 Task大好きッ子もなかなかスレの流れ読んでねえよな : デフォルトの名無しさん (ワッチョイ 6325-Iw9I) [sage] 2017/12/23(土) 11:29:15.39:m8DTIJvo0 asyncつけてるとエラー発生したらデバッグの実行位置の矢印の動きがおかしくなる : デフォルトの名無しさん (オイコラミネオ MMff-HtKy) [sage] 2017/12/23(土) 11:42:39.57:A76YiAtwM RunWorkerCompletedでイベントオブジェクトのフラグをいじり、それを待機とかだめ? : デフォルトの名無しさん (ワッチョイ 8f33-9Igo) [sage] 2017/12/23(土) 12:51:18.15:kNBZIa630 Task関連は7標準のランタイムだと使えないからいまだにBackgroundWorker使ってる まあ他ソフトの事情で.NET 4以降一切入れないってことはないんだけどさ : デフォルトの名無しさん (ワッチョイ 8f33-9Igo) [sage] 2017/12/23(土) 13:21:31.65:kNBZIa630 自分のBackgroundWorker使ってるソース見てみると、 処理単位でループして1処理終った後と、長い処理の途中でwk.CancellationPending == trueで抜けるか判定してる イベント待ちはタイムアウト設定して一旦抜ける という感じだった Task使っても同じだろう : デフォルトの名無しさん (ワンミングク MM9f-Px6h) [sage] 2017/12/23(土) 13:24:28.81:eJOJ1LQ5M @Abortはしたくない Aメインループのフラグチェックでは頻度が足りない Bでもフラグチェック処理を書き足すのは嫌だ 要件はこれでいいか? 真面目に考えるとメタプログラミングの領域だな チェック頻度とパフォーマンスのトレードオフも考えなきゃならん 初心者スレ民の実力では難しいんじゃないか? : デフォルトの名無しさん (ワッチョイ 03c9-buzn) [sage] 2017/12/23(土) 13:34:41.82:ktMndlca0 この頻度が足りないって、メインループの記述が冗長とか別の理由ありそうな気がするわ : デフォルトの名無しさん (ワンミングク MM9f-Px6h) [sage] 2017/12/23(土) 13:41:27.68:eJOJ1LQ5M クッソ長いループ書いてんだろうな マルチスレッドより先に基本的なコード整理術を覚えたほうがいい : デフォルトの名無しさん (ワッチョイ f3f7-fDUi) [] 2017/12/23(土) 13:46:44.49:suzKftpB0 たくさんレスありがとうございます。 わからない言葉がたくさんあるので調べてまた来ます。 : デフォルトの名無しさん (ワッチョイ f3f7-fDUi) [] 2017/12/23(土) 14:02:46.78:suzKftpB0 キーボードをa,b,c,dと順番に5秒置きに押していくメソッドをBackgroundWorker内で無限ループさせていて キャンセルボタンを押したときすぐに止まって欲しいのですが必ずdまで押されてから止まるので困っているという感じです private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { while (true) { play_abcd(); if (backgroundWorker1.CancellationPending) { // イベントをキャンセルする e.Cancel = true; return; } } } : デフォルトの名無しさん (ワッチョイ 6316-+TNz) [sage] 2017/12/23(土) 14:10:55.29:saCRURuP0 そりゃそうだろって反応しか返ってこないと思う : デフォルトの名無しさん (ワッチョイ f3f7-fDUi) [] 2017/12/23(土) 14:19:46.07:suzKftpB0 キーボードをa,b,c,dと順番に5秒置きに押していってすぐ途中で止められるプログラムを作るには どういう方法があるんでしょうか?BackgroundWorkerにはこだわりません。 play_abcd()メソッドには押したボタンをtextBoxに表示する機能もあってBackgroundWorkerを使うと プログラム実行中でもきちんと表示されるのでBackgroundWorkerを使っています : デフォルトの名無しさん (ワッチョイ 6f9f-M1U4) [sage] 2017/12/23(土) 14:42:50.03:AW7swrGi0 private IEnumerable<Action> GetJobs(int sleepMilliseconds) { /**/var buttons = new [] { btnA, btnB, btnC, btnD }; /**/while (true) { /**//**/foreach (var button in buttons) { /**//**//**/yield return () => button.Click(); /**//**//**/yield return () => Thread.Sleep(sleepMilliseconds); /**//**/} /**/} } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { /**/while (true) { /**//**/foreach (var job in GetJobs()) { /**//**//**/job(); /**//**//**/if (backgroundWorker1.CancellationPending) { /**//**//**//**/e.Cancel = true; /**//**//**//**/return; /**//**//**/} /**//**/} /**/} } : デフォルトの名無しさん (ワッチョイ c3bb-+TNz) [sage] 2017/12/23(土) 14:43:52.99:7NR5j+Xf0 play_aとplay_bとplay_cとplay_dを分ける デリゲート配列にしてforeachで回せばチェックは一カ所で済む : デフォルトの名無しさん (ワッチョイ f381-7LW1) [sage] 2017/12/23(土) 14:47:49.51:97OmZxF20 メソッドの名前がメンタルに悪い : デフォルトの名無しさん (ワンミングク MM9f-Px6h) [sage] 2017/12/23(土) 14:57:49.84:eJOJ1LQ5M 5chはいつになったらGFM対応するんだ : デフォルトの名無しさん (ワッチョイ 9306-buzn) [sage] 2017/12/23(土) 15:46:06.35:KAucFFwx0 BackgroundWorkerじゃなくてタイマー使うべきだよ : デフォルトの名無しさん (アウアウエー Sadf-HQem) [sage] 2017/12/23(土) 16:17:28.04:Nxx0V5wTa >play_abcd()メソッドには押したボタンをtextBoxに表示する機能もあって ってことはたぶんplay_abcdの中でbackgroundWorker1.ReportProgressを呼んでいる、 つまりbackgroundWorker1を参照できる場所にplay_abcdはあるんだから、 素直にCancellationPendingをポーリングするだけじゃないの? 本当はよくないと思うけどねこういうの 本当は前も書いたみたいにplay_abcdのシグネチャを void play_abcd(Func<bool> canceled){...} とかにして、呼び出すときに、 play_abcd(() => backgroundWorker1.CancellationPending); がいいと思う っていうか、そもそも >キーボードをa,b,c,dと順番に5秒置きに押していくメソッド をビジーループで実弁する必要本当にある?w それ、タイマーで十分実現できると思うんだけど... : デフォルトの名無しさん (ワンミングク MM9f-Px6h) [sage] 2017/12/23(土) 16:39:39.92:eJOJ1LQ5M タイマーとかめんどくさいだけだろ : デフォルトの名無しさん (ワッチョイ 3317-7LW1) [sage] 2017/12/23(土) 16:58:02.75:oBD8VcBx0 BackgroundWorkerのほうが実装が綺麗になるよね : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/23(土) 17:54:59.64:433UoltE0 スペース2つで改行だっけ? 普通のレスの書き方と分離するためにコマンドを先頭に付けるとかかな 専ブラが対応すれば専ブラだけでは見れるな : デフォルトの名無しさん (ワッチョイ 6f9e-rt3g) [sage] 2017/12/23(土) 18:17:28.09:MO+dM8J20 どう言う理由で? : デフォルトの名無しさん (ワッチョイ ff06-buzn) [sage] 2017/12/23(土) 18:52:05.60:vwLvtl/C0 タイマーなら、キャンセルでタイマー止めればそれで終わりでしょ 実装が見苦しいようには見えんね : デフォルトの名無しさん (ワッチョイ 6f9f-M1U4) [sage] 2017/12/23(土) 18:57:13.19:AW7swrGi0 ためしに書いてみてよ : デフォルトの名無しさん (ワッチョイ ff06-buzn) [sage] 2017/12/23(土) 19:41:20.88:vwLvtl/C0 ttps://ideone.com/bZPXyC 色々端折ったけどこんな感じでどう? : デフォルトの名無しさん (ワッチョイ 8f9f-9TLc) [sage] 2017/12/23(土) 19:47:21.47:PvZdk9430 そもそも、なんで提示したコードがdまで実行しないとキャンセルされないか理解できてる? 理解出来てればBackgroundWorkerを別の手法に変えても意味がないことは分かると思うんだけど : デフォルトの名無しさん (ワッチョイ 6f9d-FmKA) [sage] 2017/12/23(土) 20:47:59.87:afY4COyy0 >Abortはしたくない 元質問者はAbortしたくないとは言ってないと思うぞ : デフォルトの名無しさん (ワッチョイ 6302-Iw9I) [sage] 2017/12/23(土) 21:18:44.75:XrEDpSoU0 バックグラウンドなんちゃらってなんだ? タイマーでいいじゃん : デフォルトの名無しさん (ワンミングク MM9f-Px6h) [sage] 2017/12/23(土) 21:19:57.12:eJOJ1LQ5M そんなに悪くないね bの後2秒待ってコンソールにハゲと出力 3秒後にc みたいな仕様変更があったとしたらどうなる? : デフォルトの名無しさん (ワッチョイ 6302-Iw9I) [sage] 2017/12/23(土) 21:21:13.92:XrEDpSoU0 アホなん? そんなレアケース持ち出して何が楽しいんだ? そんな風になったら別のコーディングするに決まってんじゃん : デフォルトの名無しさん (ワッチョイ 6302-Iw9I) [sage] 2017/12/23(土) 21:26:21.49:XrEDpSoU0 タイマーでもTickイベントを1秒おきにすればその実装できるし while+sleepとかアホすぎるわ : デフォルトの名無しさん (ワンミングク MM9f-Px6h) [sage] 2017/12/23(土) 21:29:55.10:eJOJ1LQ5M 推測でしかないが質問者のやりたい事ってAPIが提供されてないアプリのGUIオートメーションだと思うんだ やってみるとわかるけど、等間隔キー入力の繰り返し、のような単調な操作のほうがむしろレアケースだよ : デフォルトの名無しさん (ワッチョイ 83c3-v9+e) [sage] 2017/12/23(土) 21:31:02.84:YgD70bUC0 態々スレッド分ける様な処理じゃないのは間違いない : デフォルトの名無しさん (ワッチョイ 6302-Iw9I) [sage] 2017/12/23(土) 21:33:38.79:XrEDpSoU0 バックグラウンドワーカーとかタイマーじゃなくてTask.Runの中にwhileとsleepとカウンタを全部ねじ込んだほうががまとまりがいいな : デフォルトの名無しさん (ワッチョイ 6302-Iw9I) [sage] 2017/12/23(土) 21:37:57.32:XrEDpSoU0 やっぱなんでもない 俺のレスはスルーで : デフォルトの名無しさん (ワッチョイ 3317-7LW1) [sage] 2017/12/23(土) 21:39:10.88:oBD8VcBx0 相変わらず質問者抜きの議論が大好きだなお前らは : デフォルトの名無しさん (ワンミングク MM9f-Px6h) [sage] 2017/12/23(土) 21:42:59.27:eJOJ1LQ5M ちなみにの実装ならマクロが多少複雑化しても可読性がそこそこ良いのでオススメ IEnumerable<Action> GetJobs() { while (true) { yield return () => SendKeys("A"); yield return () => Sleep(5000); yield return () => SendKeys("B"); yield return () => Sleep(2000); yield return () => SendKeys("ハゲ"); yield return () => Sleep(3000); yield return () => SendKeys("C"); yield return () => Sleep(5000); yield return () => SendKeys("D"); yield return () => Sleep(5000); } この考え方を進化させてJobsをActionの列挙ではなく式木にしたら記述が楽そうだな、とかインタープリターパターンで実装したらユーザー目線で便利そうだな、とか発展していく : デフォルトの名無しさん (ワッチョイ cf81-+TNz) [sage] 2017/12/23(土) 22:13:16.73:7ZChdQbJ0 百万年発展し続けてろバーカ : デフォルトの名無しさん (ワンミングク MM9f-Px6h) [sage] 2017/12/23(土) 22:20:22.98:eJOJ1LQ5M 初心者用スレというか子供用スレだったのか : デフォルトの名無しさん (ワッチョイ cf80-fDvV) [] 2017/12/23(土) 22:36:15.16:FPRjmoIB0 非同期処理は、コンテキストが異なるから、処理の実行順番は確定しない ビジーループするのは、もってのほか。 ビジーループは同期処理 非同期処理は、コールバック関数を使う。 相手の処理が終わったら、コールバック関数を呼んでもらう コンテキストが異なるものは、マルチスレッド・マルチプロセスでも、 OS がCPU のタイムスライス、スレッド・プロセスの優先度・実行順番を決めているから、 プログラマーができる事は無い 複数のスレッド・プロセスは、無関係に同時に、異なるCPU で動く(並行処理)から、 処理時間が短くなるが、処理の実行順番は、OS が決めるから確定しない 同期処理とは異なる : デフォルトの名無しさん (ワッチョイ ff06-buzn) [sage] 2017/12/23(土) 23:00:34.49:vwLvtl/C0 一番の問題は、最悪5秒戻ってこないポンコツってことだと思う : デフォルトの名無しさん (ワンミングク MM9f-Px6h) [sage] 2017/12/23(土) 23:04:50.10:eJOJ1LQ5M 結論はやっぱりTask使えって事だな : デフォルトの名無しさん (ワッチョイ cf80-fDvV) [sage] 2017/12/23(土) 23:31:47.43:FPRjmoIB0 そもそも、ビジーループ(ポーリング)しても意味がない 例えば、スレッドA から、10ms 毎にポーリングしても、 スレッドB の処理が10秒掛かれば、千回のポーリングは無意味 ポーリングしても、異なるスレッドの処理を速めることはできない。 OS がCPU のタイムスライス、スレッド・プロセスの優先度・実行順番を決めているから プログラマーにできることは、コールバック関数を登録することだけ。 スレッドBの処理が終われば、それを呼んでもらうだけ : デフォルトの名無しさん (ワッチョイ 6302-+TNz) [sage] 2017/12/23(土) 23:34:38.24:oRgQl+h80 鈴虫がまだ何か言ってるな 鈴虫は鈴虫の学校にでも通ってな : デフォルトの名無しさん (ワッチョイ 8f33-9Igo) [sage] 2017/12/24(日) 02:28:49.95:BEcZgz8A0 フリーズしない/しても問題ないUIにすればいいだけだと思うが : デフォルトの名無しさん (ワッチョイ 8f9f-mmj6) [sage] 2017/12/24(日) 07:08:55.16:kiz3NtEj0 play_abcdって雑な作りから察すると5秒おきってのはaの動作が終わってから5秒なんじゃね? 本当に5秒感覚でキーを押したいならタイマーがいいけど、各動作を5秒感覚で実行したいならタイマーは使わない方がいいかな : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/24(日) 07:21:26.36:ZzoS8BMq0 へー、そんなんだ。すごーい。 : デフォルトの名無しさん (ワッチョイ 0353-HtKy) [sage] 2017/12/24(日) 07:22:49.50:bwNsD4dr0 クリスマスぐらい女と過ごせよ : デフォルトの名無しさん (アウーイモ MM67-1kTE) [sage] 2017/12/24(日) 14:33:03.85:WF18n6kNM 2〜3台のPCだけで使う小規模なアプリケーションで、不変で追加もしない500×3列程度のデータを扱いたいです。EXCELでいうvlookup関数みたいな参照を行いたいのですが、EntityFrameworkだとSQLserverのインストールが必要?なため別の方法を模索中です。 csvやtxtファイルを実行ファイルと同じフォルダにいれて参照するのがいいか、もしくは別の方法があればご教示いただきたいです : デフォルトの名無しさん (オッペケ Sr87-0cyC) [sage] 2017/12/24(日) 14:33:41.85:EoGwjq2qr 朝Hしてきたww : デフォルトの名無しさん (ワッチョイ ff06-buzn) [sage] 2017/12/24(日) 14:39:27.53:h6xl/PRx0 EF知ってるならSQLiteが現実的じゃね? : デフォルトの名無しさん (ワントンキン MM9f-Px6h) [sage] 2017/12/24(日) 14:40:54.62:i8D7y6TzM そんなもんコード埋め込みでいいよめんどくせえ 動きゃいいんだよ C#erってそういうの好きだろ : デフォルトの名無しさん (ブーイモ MM67-bebx) [sage] 2017/12/24(日) 14:44:06.81:BNj/0IJ2M 俺ならそんなもん一枚のHTMLとJavaScriptで作ってAWS S3に置くわ その程度のことにデプロイの手間をかけるのはアホらしすぎる : デフォルトの名無しさん (ワッチョイ 6302-Iw9I) [sage] 2017/12/24(日) 17:13:18.55:LxzgKTLN0 いちいちブラウザひらくのめんどくさ ブラウザだとウィンドウサイズでかいし : デフォルトの名無しさん (ブーイモ MM67-bebx) [sage] 2017/12/24(日) 17:45:11.77:BNj/0IJ2M 今時一切ブラウザ使わない業務システムなんか存在するのか? ブラウザくらい常に開いてるだろ : デフォルトの名無しさん (ワッチョイ 0f9c-XiD2) [sage] 2017/12/24(日) 18:29:58.39:/uYLPwgV0 500×3でたかだが1500前後にデータベースは大げさだ .resxファイルで済む量だろう : デフォルトの名無しさん (ワッチョイ 039e-rt3g) [sage] 2017/12/24(日) 22:22:23.70:Pk6n0aea0 >2〜3台のPCだけで使う小規模なアプリケーションで、不変で追加もしない500×3列程度のデータ だったら500x3の二次元配列で行けると思う。 : デフォルトの名無しさん (ワッチョイ 6f9d-PGwP) [sage] 2017/12/24(日) 22:47:41.55:fqHoYjgG0 DataTableでいいんじゃね : デフォルトの名無しさん (ワッチョイ 3317-7LW1) [sage] 2017/12/24(日) 22:53:06.60:MFJnXVyx0 てきとーなクラス作ってXmlSerializerで永続化すりゃOK 検索も500件程度なら速度を気にせずLINQで楽々実装可能 : デフォルトの名無しさん (ワッチョイ 2323-bebx) [sage] 2017/12/24(日) 23:03:51.51:V0wW1gjw0 今時新規でXMLはないわ このまま衰退して消えてくれ : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/24(日) 23:08:30.69:T0V8golIa 最新だと何が人気? : デフォルトの名無しさん (ワッチョイ 03c9-buzn) [sage] 2017/12/24(日) 23:09:33.19:8Z10fIlT0 読むだけだしJSONやYAMLでよくね? : デフォルトの名無しさん (ワッチョイ 138d-6js8) [sage] 2017/12/24(日) 23:22:41.54:Tzue5pu10 JSONの指定があればJSONでもいいけど 何も指定がなければXMLで書くけどな 別にレガシーでもなくね? : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/24(日) 23:22:45.70:T0V8golIa 大してかわんねーじゃん : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/24(日) 23:29:42.77:ZzoS8BMq0 結論:好きにしろ : デフォルトの名無しさん (ワッチョイ f38a-IlPN) [sage釣] 2017/12/25(月) 00:41:48.94:eNXAkvu40 じゃprofileで : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/25(月) 01:51:22.86:GOMg9JlCa でも項目数多くなって激遅になったらCSVに戻せる構造なら戻したほうがいいよ : デフォルトの名無しさん (ワッチョイ f381-0FwS) [sage] 2017/12/25(月) 03:41:46.71:Jnt6vkvB0 jsonってxmlとくらべて何がおいしいの? : デフォルトの名無しさん (アウアウアー Saff-1kTE) [sage] 2017/12/25(月) 07:08:19.08:8aC1MlXsa xml、resx、json、yaml、SQLiteといろいろ選択肢がありますね。少し調べてみて良さそうなもの選んでみます。ありがとうございました : デフォルトの名無しさん (オッペケ Sr87-0cyC) [sage] 2017/12/25(月) 08:10:28.38:r7ITo5Fnr 軽い : デフォルトの名無しさん (ワッチョイ 2323-bebx) [sage] 2017/12/25(月) 08:12:45.88:W15ZQhn00 XML比なら、 人間にとって扱いやすい サイズが小さい 読み書きが速い 属性と要素の使い分けをしなくていい JSON SchemaはXML Schemaより圧倒的に分かりやすく書きやすい 配列、マップ、数値、論理値、文字列という最低限の型付けがあるので、 プログラミング言語のデータ構造とのマッピングがしやすい(XMLは属性やXML Schemaで明示的にマッピングしてやらないと使い物にならない) : デフォルトの名無しさん (ワキゲー MMdf-fEFx) [sage] 2017/12/25(月) 10:12:18.83:eSLpDS2SM 人間にとって扱いやすいだけはXMLの方が優れてると思うな 特にデータ量が増えるにしたがってjsonはそのまま読むのが不可能になってくる : デフォルトの名無しさん (ガックシ 067f-Iw9I) [sage] 2017/12/25(月) 10:15:18.25:rqAJYeIu6 どっちでもいい 好きな方を使えばいい : デフォルトの名無しさん (ワッチョイ 7306-buzn) [sage] 2017/12/25(月) 11:30:37.90:ny2AXHbu0 この案件だと、Excelで加工しやすいcsvがマッチしているんじゃないかな? そりゃxmlだって出来るが、仕組みが大きくなる : デフォルトの名無しさん (ガックシ 067f-Iw9I) [sage] 2017/12/25(月) 11:35:31.66:FHswaYKc6 たしかに 終了 : デフォルトの名無しさん (ワッチョイ 0f9c-XiD2) [sage] 2017/12/25(月) 11:47:08.20:IEH/2als0 SYLKファイルにしたっていいんだぜ どうせ作業量変わんないだろ : デフォルトの名無しさん (ブーイモ MM27-vkjg) [] 2017/12/25(月) 12:20:28.09:sz9H2GSPM 美容番長だっけ? : デフォルトの名無しさん (オッペケ Sr87-0cyC) [sage] 2017/12/25(月) 12:22:02.34:r7ITo5Fnr 今時パーサーやシリアライザが揃ってるんだからどれでも同じな気はする : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/25(月) 12:56:04.14:OQg4hGpXa データ量が多くなるとおせーんだよなxml,json んで運用入ってから素人でも編集できるいいツールはないの? って普通に無いからな(笑) 本気で作るものほどcsvやxls : デフォルトの名無しさん (スッップ Sd1f-Xao7) [sage] 2017/12/25(月) 14:38:00.28:MGc+vt78d ねーよ : デフォルトの名無しさん (ワッチョイ 23ea-9Igo) [sage] 2017/12/25(月) 18:37:57.59:/b5JEuJS0 結局は小さいデータなら下手なDBとか使うより、 csvの方が丈夫さとか確認のしやすさで良いって言うw : デフォルトの名無しさん (ワッチョイ b303-G8t+) [] 2017/12/25(月) 18:59:27.21:8wInAEQh0 だから上手なDBとか使えばcsvの方より良いんだろ : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/25(月) 19:08:03.17:OOxEDqwma DBはトランザクションあるから規模に関係無く必要だと思ったら使っとけ 設定ファイル的な話としたら xmlとjsonって微妙だよねと : デフォルトの名無しさん (ワッチョイ b303-G8t+) [] 2017/12/25(月) 19:15:27.15:8wInAEQh0 設定ファイル的な話だとしたらjsonって微妙だけどxmlはクソ xmlはどんな用途向けにもクソ : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/25(月) 19:44:00.45:OOxEDqwma 言うほど変わらんような気がするけど 何が嫌なんだ? : デフォルトの名無しさん (ガックシ 067f-Iw9I) [sage] 2017/12/25(月) 19:48:52.98:Mbt+5Db+6 ※個人の感想です : デフォルトの名無しさん (アウアウカー Sac7-Vzer) [] 2017/12/25(月) 20:07:35.17:y0MybC9Za ぶっちゃけこれだろ : デフォルトの名無しさん (ワッチョイ b303-G8t+) [] 2017/12/25(月) 20:13:26.84:8wInAEQh0 嫌なのではなくクソだと言っとるのだが? : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/25(月) 20:18:39.56:OOxEDqwma じゃあ大好物じゃん : デフォルトの名無しさん (アウアウエー Sadf-HQem) [sage] 2017/12/25(月) 20:18:59.89:PGo3p3P9a アホちゃいまんねんパーでんねんって言われてもどう違うのか本人にしか分からんよw : デフォルトの名無しさん (ワッチョイ b303-G8t+) [] 2017/12/25(月) 20:24:10.15:8wInAEQh0 何が気にいらんのか知らんけど変な絡み方するのやめてもらえんかな? : デフォルトの名無しさん (ガックシ 067f-Iw9I) [sage] 2017/12/25(月) 20:27:44.84:Mbt+5Db+6 クソって言いたいだけだろって言いたいんだろう : デフォルトの名無しさん (ドコグロ MMdf-6aYH) [sage] 2017/12/25(月) 20:27:48.56:hykLc5AjM むしろお前が無駄に絡んでる気がするが... 俺もでFAだと思う : デフォルトの名無しさん (ガックシ 067f-Iw9I) [sage] 2017/12/25(月) 20:31:09.26:Mbt+5Db+6 好きなの使えって結論を昨日出しただろ おわり : デフォルトの名無しさん (ワッチョイ b303-G8t+) [] 2017/12/25(月) 20:35:26.95:8wInAEQh0 同じって事はないよ どの形式でも必要十分な機械可読性を得られるなら 選択の決め手になるのは速度などではなく人間可読性 ヒューマンリーダビリティ xmlはこれが壊滅的にクソ : デフォルトの名無しさん (ワッチョイ 6f9d-FmKA) [sage] 2017/12/25(月) 20:54:00.52:axpIwit20 可読性しか判断基準がないとか話にならん : デフォルトの名無しさん (ワッチョイ 6f9f-M1U4) [sage] 2017/12/25(月) 20:55:38.22:HvFCkquc0 バックエンドだと設定ファイルは.csがベスト 貧弱なインテリセンスで間違えやすい設定なんか書きたくないっすわ テストまで考えるとビルドなしで変更可能である意味がほとんどないしな : デフォルトの名無しさん (ワッチョイ b303-G8t+) [] 2017/12/25(月) 21:26:28.09:8wInAEQh0 今日は特別に俺からのクリスマスプレゼントの言葉を贈ってやろう お前らはもう少し自分の無知無能と真剣に向きあった方が良い : デフォルトの名無しさん (ブーイモ MM67-bebx) [sage] 2017/12/25(月) 21:42:53.76:NbKIcSglM 多くなるならJSON Linesの方が効率いいよ ログとかで普通に使われるファイル形式 CSVはスキーマが変わると面倒なんだよな : デフォルトの名無しさん (アウアウウー Sa67-0cyC) [sage] 2017/12/25(月) 22:21:29.72:NVmmOTaCa 今時csvはなんちゅう本中華 レガシーへ(から)の接続ならしょうがないが : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/25(月) 22:37:36.04:6sU1sWLU0 次スレからスレタイに雑談を付加してくれ : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/25(月) 22:48:43.23:VEnbH/i+a いいアイディアだな ただこのスレはこのまま残して 初心者雑談用として新しくスレが欲しいな : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/25(月) 22:50:13.06:6sU1sWLU0 そんなことしても質問スレで雑談が始まるのは目に見えてるやん... : デフォルトの名無しさん (ワッチョイ a38a-buzn) [sage] 2017/12/25(月) 22:54:47.74:UoNk991a0 議論スレがあるじゃん 脱線しそうなら自発的に移動して ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net ttps://mevius.5ch.net/test/read.cgi/tech/1469538912/ : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/25(月) 22:56:14.63:6sU1sWLU0 無理でしょ どこまでが質問の答えなのか雑談なのか区切りが曖昧だし : デフォルトの名無しさん (ワッチョイ 3317-7LW1) [sage] 2017/12/25(月) 23:14:27.18:B733ZmRI0 ID真っ赤の奴が出てきたら議論スレに誘導 : デフォルトの名無しさん (ワッチョイ 0353-HtKy) [sage] 2017/12/26(火) 02:32:13.70:pUXlD1DI0 ごめんなさい。 今日の朝、靴下にその言葉入ってたら読んでたよサンタさん! : デフォルトの名無しさん (ドコグロ MMdf-6aYH) [sage] 2017/12/26(火) 06:50:53.13:tKLgMVXTM みたいに自覚ない奴がいる限り誘導しても無駄でしょ まあXMLに親でも殺されたんだろうな w : デフォルトの名無しさん (ワッチョイ 7fc3-HtKy) [sage] 2017/12/26(火) 08:12:53.60:cT/2Pkr20 ボクのおとうさんは、XMLというやつに殺されました 俺はWPFだなw : デフォルトの名無しさん (ワントンキン MM9f-OPDc) [sage] 2017/12/26(火) 09:02:34.41:4/m6WkoIM 初心者なので教えてください。 xml ならDataSet.ReadXml()でお手軽に扱えてたんですが、jsonはどう読み込んで使うのですか? ちょっとググったら、jQueryとか、webっぽいのが目についたのですが、ローカルexeでも使えるんでしょうか? : デフォルトの名無しさん (ブーイモ MM1f-vkjg) [] 2017/12/26(火) 09:11:46.70:x+COpgJUM NuGetでJson.NETを拾ってくる : デフォルトの名無しさん (ワッチョイ 0f9c-XiD2) [sage] 2017/12/26(火) 09:16:47.35:zc8zApfr0 UWPならWindows.Data.Jsonが使えるのでダウンロードしなくてもよい : デフォルトの名無しさん (ワッチョイ 33d2-FS06) [sage] 2017/12/26(火) 11:03:19.55:TKx0k9Mu0 XMLは無能ほど嫌うよな、わかりやすくていいわw : デフォルトの名無しさん (アウアウウー Sa67-bqMz) [sage] 2017/12/26(火) 12:28:40.93:OUkXE0b1a XML最高って言う奴がいるけどDTDとかちゃんと理解して使ってるのか疑問 俺はさっぱりわからなないので放置してる XMLは賢い人が集まって俺って賢いだろを連発してクソ企画になったって本で読んだ : デフォルトの名無しさん (アウアウウー Sa67-bqMz) [sage] 2017/12/26(火) 12:32:57.48:OUkXE0b1a XMLは同じようなものが大量に並んでてゲシュタルト崩壊?してタグがタグに見えなくなる : デフォルトの名無しさん (ワッチョイ ff06-buzn) [sage] 2017/12/26(火) 12:45:02.83:VJsVtqG+0 jsonの問題はコメントだな、一応使える場合もあるけど本式はコメント使えない ググると作者が原理主義者でどうにもならんようだ : デフォルトの名無しさん (ガックシ 067f-Iw9I) [sage] 2017/12/26(火) 12:50:09.20:oDLVQMSx6 もう飽きたよこの話題 次の質問マダー? : デフォルトの名無しさん (スッップ Sd1f-9TLc) [sage] 2017/12/26(火) 18:42:54.83:k2JgsGmBd じゃあ折角だし ListviewItemCollectionやCollection<T>をソートするいい方法ってなんかある? 別インスタンスにするのはNG 並び替えたやつをループしてRemoveとAddを繰り返しやる方法以外思いつかなかった : デフォルトの名無しさん (ワッチョイ 6f9d-FmKA) [sage] 2017/12/26(火) 19:16:47.40:cWcYrW8d0 いいってのは何がいいんだ? メモリ効率か? ソート速度か? コーディングの手軽さか? : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/26(火) 19:19:35.90:biBlc3d/0 並び替えたやつをループとは? どうやって並べ替えた? : デフォルトの名無しさん (アウアウウー Sa67-fOQO) [sage] 2017/12/26(火) 19:20:20.73:tRG2bysKa 普通に関数作ればよくね? : デフォルトの名無しさん (ワッチョイ ffd2-VulL) [sage] 2017/12/26(火) 20:21:15.18:V+MeXN2+0 そもそもICollection<T>に要素の並び順なんてものはない IEnumerable<T>として列挙されるときの順番ならOrderBy その順番を使い回したいならToArray : デフォルトの名無しさん (ワッチョイ 8f9f-9TLc) [sage] 2017/12/26(火) 20:24:15.51:0luiAFcJ0 分かりづらかったんで質問を変える private readonly Collection<string> hoge のhogeを文字列順にするとき foreach(var s in hoge.orderby()){ hoge.Remove(s); hoge.Add(s); } でできたんだけど理由があってaddは使いたくなかった add使わないで並び替えってできる? : デフォルトの名無しさん (ワッチョイ 0f9c-XiD2) [sage] 2017/12/26(火) 20:27:07.94:zc8zApfr0 Comparison書いてSortすりゃいいのでは この手の問題は並び順のルールの方に重点が置かれる、並び替え方なんてこの際どうでもいい : デフォルトの名無しさん (アウアウエー Sadf-HQem) [sage] 2017/12/26(火) 20:30:23.64:Nu277XVha Collection<string>がICollectionの間違いならToListして代入するだけじゃないの? : デフォルトの名無しさん (ワッチョイ 8f9f-9TLc) [sage] 2017/12/26(火) 20:46:11.62:0luiAFcJ0 Sortがあったら楽だったんだけどね ttp://https://msdn.microsoft.com/ja-jp/library/ms132397 "> ttps://msdn.microsoft.com/ja-jp/library/ms132397 (v=vs.110).aspx 読み取り専用だから代入できない ICollectionは継承してるクラス ToListした時点で別インスタンスだからそれに対してSortしても意味無い : デフォルトの名無しさん (ワッチョイ f3f7-fDUi) [] 2017/12/26(火) 20:58:13.89:YcrPMu9B0 point(1,1) を axis(1,1) に正規表現で置換したいのですがどうすればいいでしょうか? visualstudio2015です : デフォルトの名無しさん (ワッチョイ f3f7-fDUi) [] 2017/12/26(火) 21:01:11.62:YcrPMu9B0 point\({.*}\) axis(\1) とやっても出来ないので悩んでいます : デフォルトの名無しさん (アウアウエー Sadf-HQem) [sage] 2017/12/26(火) 21:01:50.76:Nu277XVha なるほどw でもreadonlyにこだわる必要本当にあるの? : デフォルトの名無しさん (ワッチョイ 6f9d-FmKA) [sage] 2017/12/26(火) 21:07:02.01:cWcYrW8d0 自分でソートロジックかいて要素入れ替えていけば良いだけ おれならそうとうな量でない限り、ソート済みの別インスタンスと入れ替えるがな : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/26(火) 21:10:38.37:biBlc3d/0 理論的に考えてインデクサを持たないICollectionをAdd無しに内部での並び順を変えるのは不可能だろ : デフォルトの名無しさん (ワッチョイ 6f9d-FmKA) [sage] 2017/12/26(火) 21:10:38.80:cWcYrW8d0 もし元インスタンスにさわりたくないなら、元のコレクションとは別に ソートした結果のインデックス位置をもつコレクションつくってそっちから引っ張るけど : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/26(火) 21:11:48.58:biBlc3d/0 {}ではなく()では? : デフォルトの名無しさん (ワッチョイ 8f9f-9TLc) [sage] 2017/12/26(火) 21:20:16.36:0luiAFcJ0 IListも継承してるクラスだからインデクサ持ってんじゃないかな 元インスタンスに触りたくないというよりは元インスタンスにも反映させたい 別クラスで作られたオブジェクトのインスタンスを渡してもらっていて、それをreaonlyにセットこっちのを並び替えたら同じ様に元のデータも並び替えられるって感じ ここら辺の構成は弄れない 本当に勘弁してほしいわ : デフォルトの名無しさん (ワッチョイ f3f7-fDUi) [] 2017/12/26(火) 21:21:35.79:YcrPMu9B0 (にしてもだめでした ttp://d.hatena.ne.jp/cjohn/20090105/1231156636 このページの通りにやっているのですが出来ません : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/26(火) 21:24:39.45:biBlc3d/0 ICollectionはIEnumerableしか継承してないんだがIListも継承してるとは? : デフォルトの名無しさん (ワッチョイ 8f9f-9TLc) [sage] 2017/12/26(火) 21:33:32.33:0luiAFcJ0 今議題にしてるのがCollection<T>クラスだからそっちの継承をみてくれ : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/26(火) 21:34:59.26:biBlc3d/0 マイクロソフトのドキュメントみて\1を$1にしたらできた : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/26(火) 21:38:58.29:biBlc3d/0 すまんな じゃあ先頭から参照書き換えていけばいいのでは? : デフォルトの名無しさん (ワッチョイ f3f7-fDUi) [] 2017/12/26(火) 21:43:23.19:YcrPMu9B0 (にして$にしたらできました!有難う御座います! : デフォルトの名無しさん (ワッチョイ 8f9f-9TLc) [sage] 2017/12/26(火) 21:57:00.69:0luiAFcJ0 なるほど、Add、Removeじゃなくてhoge[i]=s みたいな感じで順に設定し直せばいいのか 多分も同じことを言ってたんだろうけど別の意味で捉えてた 次からそうするわ : デフォルトの名無しさん (アウアウエー Sadf-HQem) [sage] 2017/12/26(火) 22:15:00.14:Nu277XVha 車輪の再発明感全開だなw public static class Extensions { public static void CopyTo<T>(this IList<T> src, IList<T> dst) { int count = Math.Min(src.Count, dst.Count); for (int i = 0; i < count; i++) dst[i] = src[i]; } public static void Sort<T, TKey>(this IList<T> x, Func<T, TKey> keySelector) { x.OrderBy(keySelector).ToList().CopyTo(x); } } : デフォルトの名無しさん (ワッチョイ 6f9f-M1U4) [sage] 2017/12/26(火) 22:17:42.69:DUnSIAzj0 いい機会だからリファクタしようぜ : デフォルトの名無しさん (ササクッテロロ Sp87-6js8) [sage] 2017/12/26(火) 22:34:38.39:OyWBWrx4p 親切杉ワロタ : デフォルトの名無しさん (アウアウウー Sa67-bqMz) [sage] 2017/12/26(火) 22:59:22.02:OUkXE0b1a srcやdistがnullの場合は? : デフォルトの名無しさん (オッペケ Sr87-0cyC) [sage] 2017/12/27(水) 06:40:33.49:8vUn4Dy4r 即死 : デフォルトの名無しさん (ワッチョイ ffd2-VulL) [sage] 2017/12/27(水) 08:15:03.92:F/ihue6L0 即死するべき : デフォルトの名無しさん (ワッチョイ f3d5-EmoC) [] 2017/12/27(水) 17:55:28.81:LR8quwCc0 C#はメモリ不足でコンパイルできないことはありますか? : デフォルトの名無しさん (ワッチョイ cf9a-RBuR) [sage] 2017/12/27(水) 18:05:13.47:P6EO0z0h0 該当するコンパイラのスレで聞いてください : デフォルトの名無しさん (スッップ Sd1f-Xao7) [sage] 2017/12/27(水) 18:23:31.71:BZ3b6503d 絶対にないとはいえないけど、そもそもそんなマシンじゃ開発なんてできやしない。 : デフォルトの名無しさん (ブーイモ MM1f-bebx) [sage] 2017/12/27(水) 20:06:48.22:hg84Qb1oM その前にVSが重すぎてまともに動かないから大丈夫 : デフォルトの名無しさん (ワッチョイ ffd2-Xao7) [sage] 2017/12/27(水) 20:47:39.32:Jr44gGH00 コンパイルとVisual Studioは別問題 : デフォルトの名無しさん (ワッチョイ b303-G8t+) [sage] 2017/12/27(水) 20:53:22.02:CubzVxEy0 コンパイルに何の問題があると? : デフォルトの名無しさん (ワッチョイ ff19-1kTE) [sage] 2017/12/27(水) 20:56:02.93:gu8VevGS0 Windowsアプリケーションにおいて、ソースファイルのフォルダ分けはどのようにされていますか? : デフォルトの名無しさん (ワッチョイ f3eb-tmg3) [] 2017/12/27(水) 22:08:35.73:RcFlfCwd0 自前のクラスに、作成済みオブジェクトを探してオブジェクトを返すメソッドを作るにはどうすれば良いんですか? Xamarin Androidにいうfindbyname()、UnityでいうGameObject.Find<T>()のようなものを自前のクラスにもつけたいんですが・・・・ : デフォルトの名無しさん (ワッチョイ a375-Iw9I) [sage] 2017/12/27(水) 22:19:15.35:ZvzZDw7/0 もっと詳しく : デフォルトの名無しさん (ワッチョイ b303-G8t+) [sage] 2017/12/27(水) 22:21:38.34:CubzVxEy0 もっと激しく : デフォルトの名無しさん (ワッチョイ f3eb-tmg3) [sage] 2017/12/27(水) 22:27:50.77:RcFlfCwd0 ときには情熱的に : デフォルトの名無しさん (アウアウウー Sa67-bqMz) [sage] 2017/12/27(水) 23:50:53.96:INWFuiTDa Dictionaryに名前でオブジェクト登録という方法があるけど わざわざそんな無意味なことをする意味が分からない UWPやWPFやwindows forrmsでは xamarinのfindbynameみたいなものわざわざ使わないでもいいのに : デフォルトの名無しさん (ワッチョイ 4ad2-pjZ7) [sage] 2017/12/28(木) 03:01:35.82:OJX4Pfid0 コンパイルの質問なのにVisual Studioの問題にすり替えるのが不適切だと言ったまで : デフォルトの名無しさん (バットンキン MM93-ZbzW) [sage] 2017/12/28(木) 07:08:39.80:THqyhi+6M データにメソッドをチェーンするのが関数型言語の特徴なのかなと解釈してるんですけど、c#は関数型言語も内包してると考えて良いのでしょうか? で、F#は関数型専用言語という位置づけで : デフォルトの名無しさん (スップ Sd8a-2grh) [sage] 2017/12/28(木) 07:22:15.38:mHFTOa6Td F#は関数型専用ではなく、マルチパラダイム : デフォルトの名無しさん (バットンキン MM93-ZbzW) [sage] 2017/12/28(木) 07:27:00.29:THqyhi+6M そうなんですか となるとc#にかなり接近してる気がするのですが、F#がなぜ作られたか不思議です : デフォルトの名無しさん (アウアウカー Sacb-ab5z) [sage] 2017/12/28(木) 07:43:07.29:yMSttuCfa まず大前提としてメソッドチェーンと関数型プログラミングは何にも関係ない 下手にオブジェクト指向とのマルチパラダイムから入るより、まずはML系とかHaskell, Schemeみたいなちゃんとした関数型言語を触って特徴を掴むのがいいと思う : デフォルトの名無しさん (アウアウウー Sa2f-ekUK) [sage] 2017/12/28(木) 08:13:25.30:ux20Gvlta 最終目的は何なん? : デフォルトの名無しさん (ワッチョイ 0b23-bc8k) [sage] 2017/12/28(木) 08:24:33.51:8DtRzb3L0 関数型言語やるとコードが綺麗になるから目的なんか関係なく一度は経験するべき : デフォルトの名無しさん (スップ Sd8a-2grh) [sage] 2017/12/28(木) 10:07:38.23:mHFTOa6Td あくまでも専用ではないという指摘ね : デフォルトの名無しさん (オッペケ Sr03-OTL/) [sage] 2017/12/28(木) 10:27:05.35:UQgDKgtxr ケースバイケース 一つの答は無い : デフォルトの名無しさん (ワッチョイ 5fd5-7ecw) [] 2017/12/28(木) 11:30:41.15:MTDYAVo/0 パソコンのメモリは十分に余裕があると仮定してプログラム的な容量の限界が知りたいです。 C#は無限にコードが書きこめるということですか? : デフォルトの名無しさん (ワッチョイ 1bb3-Lfr5) [sage] 2017/12/28(木) 12:42:40.91:ISLNvVJt0 C#言語にはソースコードサイズの限界なんて定義されてない むしろ定義されてる言語って存在するの? : デフォルトの名無しさん (スフッ Sdea-2grh) [sage] 2017/12/28(木) 12:42:57.97:kdbduM9Wd 無限にコードが書き込めるって、具体的にどういうことを想定してるの? : デフォルトの名無しさん (ガックシ 0686-kJbS) [sage] 2017/12/28(木) 13:03:29.10:qTeBLGvd6 コンパイル可能なソースコードサイズがコンピュータのメモリ資源に依存するコンパイラがあるってことじゃね : デフォルトの名無しさん (ワッチョイ 5fd5-7ecw) [] 2017/12/28(木) 13:29:50.10:MTDYAVo/0 VB6は数百万行で限界が来てコンパイルできなくなりました。 コードを千万行単位で書き込んでも大丈夫か知りたいです。 : デフォルトの名無しさん (ブーイモ MM76-bc8k) [sage] 2017/12/28(木) 13:37:17.01:bfoeL7nqM 適宜プロジェクト分ければ楽勝だろ VS自体のソースとかだと余裕で超えてるだろうし : デフォルトの名無しさん (JP 0H93-Auke) [sage] 2017/12/28(木) 14:18:54.84:2t6rj/eWH 銀行の基幹システムかよ : デフォルトの名無しさん (ブーイモ MM27-QRIm) [] 2017/12/28(木) 14:28:23.21:4EMpIOJ0M コンパイラーの上限値を明記してる処理系はあるけどc#の見つからんな。 何処かにあるはず。 : デフォルトの名無しさん (ブーイモ MM27-QRIm) [] 2017/12/28(木) 15:01:10.61:4EMpIOJ0M コンパイラエラーCS1033の記述に /debugオプションを指定した場合は16,707,556行。しない場合は268,435,454行って書いてある。 1つのソースコードファイルにそんな行数を想定してるんだw : デフォルトの名無しさん (ササクッテロロ Sp03-PByf) [sage] 2017/12/28(木) 15:02:08.30:Pbz8zTsrp 1ファイルの行数の制限はCで見たことあるけど プロジェクトやモジュール単位での総行数の制限は見たことないな 本当にそんなのあるの? : デフォルトの名無しさん (ブーイモ MM27-QRIm) [] 2017/12/28(木) 15:02:46.82:4EMpIOJ0M そんなサイズのVB6なんて見たことないw : デフォルトの名無しさん (ブーイモ MM27-QRIm) [] 2017/12/28(木) 15:06:16.70:4EMpIOJ0M リンカーに上限値があるかもね。 : デフォルトの名無しさん (ワッチョイ ee9c-Hmb5) [sage] 2017/12/28(木) 15:18:45.90:0QpKKHbp0 約1600万行のcsファイル開きたくないな どう考えてもGodClassですがな : デフォルトの名無しさん (ブーイモ MM27-QRIm) [] 2017/12/28(木) 15:26:24.91:4EMpIOJ0M Visual Studioのエディタがハングするだろ : デフォルトの名無しさん (ワッチョイ ea60-rhJv) [sage] 2017/12/28(木) 15:29:15.32:qUCulPnS0 lisp/scheme は関数型にはいりますか? : デフォルトの名無しさん (ワッチョイ cab3-tILW) [sage] 2017/12/28(木) 15:46:38.41:VwS/1tfY0 > コードを千万行単位で書き込んでも大丈夫か知りたいです。 試せばいいだけ : デフォルトの名無しさん (アウアウウー Sa2f-ekUK) [sage] 2017/12/28(木) 15:47:41.32:4ftZK9Tqa そーでもない もし本当に超えそうなら : 片山博文MZ ◆T6xkBnTXz7B0 (ワッチョイ b3b3-9B3r) [sage] 2017/12/28(木) 15:55:49.66:4SlZSkiq0 OSが止まる可能性アリ。 : デフォルトの名無しさん (アウアウカー Sacb-ab5z) [sage] 2017/12/28(木) 16:06:05.42:HXzpTfmra 何をもって入らないにしたいのかわからないくらい入るじゃん : デフォルトの名無しさん (ワッチョイ ea60-rhJv) [sage] 2017/12/28(木) 16:33:31.43:qUCulPnS0 lisp って太古の昔から存在しているじゃない、これに比肩するのは cobol とか fortran とか、位に そんな昔に関数型が存在できたのか? : デフォルトの名無しさん (アウアウエー Sac2-LEnz) [sage] 2017/12/28(木) 16:52:34.19:BvK/JshZa コンパイラなんて自分で書いたことも理論勉強したこともないけど、 扱える識別子の数の上限とかは当然あるんだろうなあ もっとも、恐らく全部がオンメモリで動いてるはずのインテリセンスの限界ですら 普通のプログラマはたぶん経験してないはずで、必要ならディスクも使えるはずの コンパイラの限界なんて実用上は無限と想定してよいんじゃないかしら : デフォルトの名無しさん (アウアウウー Sa2f-ekUK) [sage] 2017/12/28(木) 17:01:12.05:4ftZK9Tqa 言語を二次コードとして 一次コードから生成する形のプログラムを組んだらそういう限界を超えやすいかもしれんな : デフォルトの名無しさん (アウアウカー Sacb-ab5z) [sage] 2017/12/28(木) 17:51:47.90:Ub6XmzY9a 実装として問題ない性能が出たかは別として、関数型パラダイム自体は大昔からある ラムダ計算も提唱された時期はチューリングマシンとあまり変わりなかったはず 関数型なんて要は文より式を多用する書き方ってくらいの認識でいいよ 初期Lispだって十分関数型といえる : デフォルトの名無しさん (ワッチョイ 1bf2-YrVP) [sage] 2017/12/28(木) 21:01:15.87:0+I+cwib0 >作成済みオブジェクトを探してオブジェクトを返す という点だけで反応するけど、シングルトンのオブジェクトを共有したいみたいな話なら MEFとかUnity(ゲームじゃない方)とかのDIコンテナ利用すればいいんじゃないかな。 : デフォルトの名無しさん (ワンミングク MM3a-mfdi) [sage] 2017/12/29(金) 09:36:53.74:oOC6ueEnM リフレクションしたいんだろ : デフォルトの名無しさん (ワッチョイ 5f81-Ixt9) [sage] 2017/12/30(土) 12:06:27.98:fp/oHxe90 javascriptで生成後の値をスクレイピングして取得するにはどのような方法がおすすめですか? : デフォルトの名無しさん (ワンミングク MM3a-mfdi) [sage] 2017/12/30(土) 12:28:35.27:fH0y6h0/M 普通にヘッドレスブラウザ & Seleniumでいいよ 今ならchromeやfirefoxがヘッドレス対応してる C#はSeleniumライブラリの出来がイマイチなのでpythonやその他の言語を使ったほうがいいだろうね : デフォルトの名無しさん (ワッチョイ 5f81-Ixt9) [sage] 2017/12/30(土) 14:14:37.73:fp/oHxe90 ベースはC#で行きたい場合、スクレイピングはpythonで作って、dllにでもして呼び出すイメージでしょうか? : デフォルトの名無しさん (ワンミングク MM3a-mfdi) [sage] 2017/12/30(土) 14:16:47.93:fH0y6h0/M C#でもSeleniumは動かせるよ おすすめはしないってだけ : デフォルトの名無しさん (ワンミングク MM3a-mfdi) [sage] 2017/12/30(土) 14:21:49.39:fH0y6h0/M python使うならモジュールではなくサービスにしたほうがいいだろうね : デフォルトの名無しさん (ブーイモ MM76-bc8k) [sage] 2017/12/30(土) 14:23:22.82:IKvN98q1M 普通にProcess.Startでいいよ スクレイピングなんかそれ自体クソ重いから連携はファイルベースで全く問題ない : デフォルトの名無しさん (ワッチョイ 83d2-2grh) [sage] 2017/12/30(土) 14:47:06.31:gOML52to0 なぜ? : デフォルトの名無しさん (ワッチョイ 1b02-Xn0J) [sage] 2017/12/31(日) 01:25:27.69:/ykdU4z00 出来がイマイチだから : デフォルトの名無しさん (ワッチョイ 83d2-2grh) [sage] 2017/12/31(日) 06:36:51.88:5u0blHAo0 何に比べてどうイマイチなの? : デフォルトの名無しさん (ワッチョイ 0a19-MgI2) [sage] 2018/01/01(月) 20:52:37.58:G7LbeSvc0 oracleに接続するのはodp.net安定ですか? : デフォルトの名無しさん (ワッチョイ 83d2-2grh) [sage] 2018/01/02(火) 00:30:47.40:TZO8s3980 それ以外に何を考えてんの? : デフォルトの名無しさん (ワッチョイ 460f-2YEI) [sage] 2018/01/02(火) 20:06:46.76:c6AfmmkU0 ファイル、新しいプロジェクトを選びます Windowsフォームアプリケーション を選択したいのですが、見当たりません visual studio 2017インストールし、C#の勉強をしようとしています 背景が真っ黒で白地にしたいですが、表示(V)を左クリックしても背景を変更する設定が分かりません c#本を2010年に買って、8年かかってやっとインストールする気になり…当時はvisual studio2010をインストールしてね、でしたが… 2017をインストールしました : デフォルトの名無しさん (アウアウウー Sa2f-ekUK) [sage] 2018/01/02(火) 20:12:18.10:lWw7BAnPa ttp://www.softantenna.com/wp/tips/visual-studio-2017-install/ ワークロードで.netデスクトップアプリ開発をインストールしてねんじゃね? : デフォルトの名無しさん (ワッチョイ 460f-2YEI) [sage] 2018/01/02(火) 20:33:51.04:c6AfmmkU0 スタートボタンからblend for visual studio 2017を起動してました vのvisual studio2017から起動したら、白背景、Windowsフォームアプリケーション(.net flamework)ボタンがありました .NET Frameworkは外したいけと、外せないようですね : デフォルトの名無しさん (ワッチョイ 460f-2YEI) [sage] 2018/01/02(火) 21:59:17.87:c6AfmmkU0 307さん、ありがとう 本のサンプルプログラム、1つ動かせました 早く.exe作りたいです 少しずつページを進めます! : デフォルトの名無しさん (ワッチョイ 0b23-bc8k) [sage] 2018/01/02(火) 22:06:55.09:NRmrCA2E0 楽しみにしているところ申し訳ないが、動かせたのなら既にお前は.exeを作っている : デフォルトの名無しさん (ワッチョイ de81-Xn0J) [sage] 2018/01/02(火) 23:08:41.27:jqAIBNHq0 驚愕の事実だな : デフォルトの名無しさん (アウアウウー Sa2f-FiVz) [sage] 2018/01/02(火) 23:11:08.00:kv7Tqflpa プロジェクトが作れない こんなのがFAQなんだからMSはいろいろと見直したほうがいい : デフォルトの名無しさん (アウアウエー Sac2-LEnz) [sage] 2018/01/02(火) 23:37:02.78:T7ovXE0Aa 初心者でも落ち着いて考えれば十分解決可能な問題のような気もするんだけどね : デフォルトの名無しさん (ワッチョイ de81-Xn0J) [sage] 2018/01/02(火) 23:42:05.33:jqAIBNHq0 鳥には芋虫の考えなんてわからないよ : デフォルトの名無しさん (ワッチョイ 460f-2YEI) [sage] 2018/01/02(火) 23:53:32.38:c6AfmmkU0 まったりとした雰囲気ありがとう、皆さん 自分は古く融通が利かないタイプです フォルダ作ってコンパイラとリンカ放り込み、パスを通してbat作ってコンパイル エラーが出たら、エラーリストをテキストエディタで読みタグジャンプ、エラー修正… 開発環境はFD1枚で持ち運び だから今の開発環境インストール50GBに驚愕、ソースバックアップどうするの??開発環境はノーパソごと持ち運びか?とか visual studio2000いくつかを過去にインストールした時はOSごと落ちてOS再インストールを味わって困惑してました 奮起してゆっくり覚えます : デフォルトの名無しさん (ワッチョイ 03c9-Auke) [sage] 2018/01/03(水) 00:01:56.60:gYcQuPfn0 batでコンパイルならMSBuildはまだ現役だからそうそう焦ることは無いんじゃね ソースバックアップは今ならオンラインでGit使えば履歴・差分管理も出来て楽だよ : デフォルトの名無しさん (ワッチョイ ce33-Kkzi) [sage] 2018/01/03(水) 01:17:17.11:E10k9nmq0 テスト : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 01:36:11.94:zucBe8Ms0 言うほど何個ものコンピュータで開発するか? それぞれで環境作ればよくね? プロジェクトは個人ならOneDriveかグループならGithubとか : デフォルトの名無しさん (ワッチョイ ce33-Kkzi) [sage] 2018/01/03(水) 01:38:01.68:E10k9nmq0 なんかcmd.exe←全部半角にすると書き込めないね : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 01:44:24.84:zucBe8Ms0 a.exe : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 01:45:06.51:zucBe8Ms0 cmd.exe : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 01:47:07.02:zucBe8Ms0 a.js : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 01:48:25.71:zucBe8Ms0 script : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 01:48:44.83:zucBe8Ms0 <> : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 01:51:42.79:zucBe8Ms0 <script> ←これも書き込めない : デフォルトの名無しさん (ワッチョイ caa4-xflF) [sage] 2018/01/03(水) 03:03:39.73:BLwnNh6e0 ここはテストスレではありません : デフォルトの名無しさん (ワッチョイ 9ff7-57r9) [] 2018/01/03(水) 21:40:35.60:4IoSL1o20 int a=2; int b=3; int c=9; int d=11; このうち10より小さいもののうちで一番大きいものを選択する(アルファベットを返す)コードはどういうふうに書けばよいでしょうか? : デフォルトの名無しさん (ワッチョイ 4ad2-Auke) [sage] 2018/01/03(水) 21:49:31.09:asJzHhKy0 var list = new List<int> { a, b, c, d }; var result = list.Where(l => l < 10).Max(); : デフォルトの名無しさん (ワッチョイ 9ff7-57r9) [] 2018/01/03(水) 21:52:22.30:4IoSL1o20 ありがとうございます。 : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 21:55:57.06:zucBe8Ms0 var dict = new Dictionary<string, int>(){ {"a", 2}, {"b", 3}, {"c", 9}, {"d", 11} }; var result = dict.Where(data=>data.Value<10).Max(data=>data.Value).Key; : デフォルトの名無しさん (ワッチョイ 9ff7-57r9) [] 2018/01/03(水) 22:08:04.88:4IoSL1o20 何度もすいません int a=2; int b=3; int c=9; int d=11; 同じアルファベットに対応したフラグ bool a_flag=true; bool b_flag=true; bool c_flag=true; bool d_flag=false; このうちフラグがtrueの中のもので一番大きいものを選択する(アルファベットを返す)コードはどういうふうに書けばよいでしょうか? : デフォルトの名無しさん (アウアウウー Sa2f-FiVz) [sage] 2018/01/03(水) 22:21:19.29:wQKC+m+qa そういうことをやりたいなら C#入門を全部終えてからやれ : デフォルトの名無しさん (アウアウウー Sa2f-FiVz) [sage] 2018/01/03(水) 22:26:46.45:wQKC+m+qa 処理内容を変数の名前に依存するのは悪いやり方 int aがbool a_fragに関連していると決めているのはコードを書いてる人間だけ プログラム上は関連づけられてない とんでもない愚かなコード : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 22:28:33.33:zucBe8Ms0 ttps://ideone.com/5Ob6vu : デフォルトの名無しさん (ワッチョイ de81-Xn0J) [sage] 2018/01/03(水) 22:30:30.27:MV/bJa3c0 C#でなくパッパラパー向けの言語やればいい Pなんとかっていう : デフォルトの名無しさん (ワッチョイ 4ad2-Auke) [sage] 2018/01/03(水) 22:30:39.56:asJzHhKy0 それだと最大値をもつものが複数あった場合が考慮されていない : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 22:33:25.93:zucBe8Ms0 うむ。 一応Valueは重複しないものとして最初に出現したやつを選ぶことにしておいた : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 22:39:35.15:zucBe8Ms0 最大値を持つアルファベットをすべて出力するVer ttps://ideone.com/RfUhMp : デフォルトの名無しさん (ワッチョイ 9ff7-57r9) [] 2018/01/03(水) 22:43:09.66:4IoSL1o20 ありがとうございます 自分のコードにあてはめて書いてみます また来ます : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 22:47:32.12:zucBe8Ms0 何故Max関数はリストの要素そのものではなく判別に使った式の値を出力する仕様にしたのか : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 22:48:35.18:zucBe8Ms0 と思ったけど最大値が複数あるときにそうじゃないと困るからか!初めて気付いた : デフォルトの名無しさん (アウアウウー Sa2f-FiVz) [sage] 2018/01/03(水) 22:56:32.16:wQKC+m+qa いやいやそんな理由じゃないぞw 最大値を求める関数から要素返されても困るだろ : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 22:59:13.78:zucBe8Ms0 まあそうなんだけどさw 要素自体を抽象的な順序数として考えれば要素が返されてもおかしくないのにって思ってたは w : デフォルトの名無しさん (ワッチョイ 6b75-kJbS) [sage] 2018/01/03(水) 23:02:45.49:zucBe8Ms0 DateTimeオブジェクトみたいな w : デフォルトの名無しさん (ワッチョイ de81-RYVm) [sage] 2018/01/03(水) 23:04:14.73:a50vShvf0 どれか一個えらぶ関数じゃなくて一応演算の結果を返す関数だからな SumとかAvgとかと挙動違ったら面倒くさい : デフォルトの名無しさん (アウアウウー Sa2f-FiVz) [sage] 2018/01/03(水) 23:07:01.35:wQKC+m+qa そういう問題でもない… : デフォルトの名無しさん (ワッチョイ 5f81-Ixt9) [sage] 2018/01/03(水) 23:09:47.06:kBuweVPR0 さっきの解を、swichで判定だな。 もしくはdictionary型をつかう。 : デフォルトの名無しさん (ワッチョイ 9ff7-57r9) [] 2018/01/03(水) 23:59:11.68:4IoSL1o20 var list = new List<bool> { true, false, true, true, true, true }; Console.WriteLine(list.Count(true)); trueの数を表示させたいのですがこの場合ラムダ式はどのように書けばいいでしょうか? : デフォルトの名無しさん (アウアウエー Sa3f-iSeT) [sage] 2018/01/04(木) 00:05:25.85:7evDO2yEa それは「この場合ラムダ式」が分からないんじゃなくて、そもそもラムダ式がまるで分からないんだと思うw 質問する前にやることがあるんじゃないのかな : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/04(木) 00:08:30.14:dskbzAHG0 すいません… LINQ触るの初めてなもので… : デフォルトの名無しさん (アウアウウー Sa8f-aKZ8) [sage] 2018/01/04(木) 00:22:00.97:jrk7LVb6a ラムダ式以前にc#がわかってないだろ コード書くには早すぎる 入門書を読み返せ 回答が出てないなら新しいのを買え : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/04(木) 00:28:30.17:dskbzAHG0 var list = new List<bool> { true, false, true, true, true, true }; Console.WriteLine(list.Count(n => n == true)); とりあえずこれで動きました nはメソッドの引数みたいなものでなんでも構わないのでしょうか? var list = new List<bool> { true, false, true, true, true, true }; textBox1.Text = list.Count(n => n == true).ToString(); また上の様にすると動かないのですが、これは何故でしょうか? 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f) : デフォルトの名無しさん (ワッチョイ 3bb5-CJXz) [sage] 2018/01/04(木) 00:36:28.14:uPERGx+M0 質問です わたしはパッパラパーなりにC#を勉強してきて、自分用の初歩的なGUIアプリを作れる程度には覚えれたんですが Pなんとかのほうが良かったんですか? それがパッパラパーに向いてる理由をふくめて教えていただけるとありがたいです : デフォルトの名無しさん (ワッチョイ cb75-rVxj) [sage] 2018/01/04(木) 00:42:55.37:T+TxDQDt0 そう、nは引数。 動かないとは具体的にどうなる?エラーとかでテルル : デフォルトの名無しさん (ワッチョイ cb75-rVxj) [sage] 2018/01/04(木) 00:43:17.15:T+TxDQDt0 でテルルじゃなくて出てる? : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/04(木) 00:44:43.18:dskbzAHG0 Tostringの後の;で 型 'System.NullReferenceException' のハンドルされていない例外が LINQtest.exe で発生しました 追加情報:オブジェクト参照がオブジェクト インスタンスに設定されていません。 と出ます : デフォルトの名無しさん (ワッチョイ cb75-rVxj) [sage] 2018/01/04(木) 00:45:23.69:T+TxDQDt0 Pなんとか=Python? Pythonだと高度な機能が無いから簡単ってことかな? でもC#で簡単な機能だけ使えばいいのでは... : デフォルトの名無しさん (ワッチョイ cb75-rVxj) [sage] 2018/01/04(木) 00:46:43.86:T+TxDQDt0 うーん...ideoneに全部貼ってうp頼む : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/04(木) 00:49:07.59:dskbzAHG0 ttps://ideone.com/mDt50q こちらになります お手数おかけしますがよろしくお願い致します。 : デフォルトの名無しさん (ワッチョイ cb75-rVxj) [sage] 2018/01/04(木) 00:52:04.58:T+TxDQDt0 Form1メソッドはForm1クラスのコンストラクタなんだが、ここじゃなくてform1_Loadの中に書かないといけない。 デザイナーでフォームのウィンドウをダブルクリックすればform1_Loadが作成されるからその中に。 : デフォルトの名無しさん (ワッチョイ cb75-rVxj) [sage] 2018/01/04(木) 00:59:42.00:T+TxDQDt0 あと、コピぺするときに省略しただけかもしれないけどInitializeComponent();っていう文がForm1メソッドの中に書いてあったはずなんだがそれは必要 : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/04(木) 01:01:20.45:dskbzAHG0 出来ました! 有難うございます。 助かりました。 : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/04(木) 04:02:02.66:dskbzAHG0 同じ値の時はあらかじめ決められている優先順位を取りたかったのでこのコードが非常に参考になりました 有難う御座います。 優先度が高いものを上にすればいいんですね var flaggedList = list.Where(data => data.Flag); これだけよくわからないのですがif(true)とかと同じ様な書き方でtrueのものだけソート出来るんでしょうか? : デフォルトの名無しさん (ワッチョイ 4f9f-b4Jt) [sage] 2018/01/04(木) 05:47:57.28:+aPSEg6K0 上は下の省略形で下の括弧内で好きに条件をかけばいい data => data.Flag data => {return data.Flag;} 勿論ifも使えるしこんな感じで書きかえることもできる data =>{ if(data.Flag){ return true; } else{ return false; }} : デフォルトの名無しさん (アウアウウー Sa8f-xwan) [sage] 2018/01/04(木) 14:01:04.73:Pa4sGEBaa s => s : デフォルトの名無しさん (ワッチョイ 3bb5-CJXz) [sage] 2018/01/04(木) 14:02:40.76:uPERGx+M0 ありがとうございます : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/04(木) 16:11:37.44:dskbzAHG0 レス有難う御座います。 でFlagが全てfalseだった場合止まってしまうので、mavValueOwnerKeyに空である表示をしたいのですがどうすればいいでしょうか? : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/04(木) 16:14:27.34:dskbzAHG0 list.Countで場合分けしてみます : デフォルトの名無しさん (ワッチョイ 0b16-if4i) [sage] 2018/01/04(木) 16:34:11.21:v6C8tRIY0 そうだな。 てかmaxがmavになってた : デフォルトの名無しさん (ワッチョイ ef9b-uQO5) [sage] 2018/01/05(金) 14:35:10.83:vfHtPi/n0 ある文字列に特定の文字列が含まれていれば別の文字列に置換する、という処理を行いたいんですが だぜ→です ですわ→です といった感じの置換したい文字列が数百パターン存在する場合はひとつひとつ置換を試していくしかないのでしょうか…? : デフォルトの名無しさん (アウアウウー Sa8f-UR9r) [sage] 2018/01/05(金) 14:37:31.37:1LmylbFqa Replaceじゃダメなん? : デフォルトの名無しさん (ワッチョイ ef9b-uQO5) [sage] 2018/01/05(金) 14:51:45.66:vfHtPi/n0 基本的にはreplaceを使うことになると思うのですが、例えば '今日はほんといい天気だぁ〜〜〜!!' という文字列に対して だぜ→です だぁ→だ ほんと→ほんとうに といった変換ルールが複数ある場合は ひとつひとつreplaceをかける(あるいはループで変換ルールすべてを試す)しかないのかなぁと思いまして 要するに実行速度が気になっているのです : デフォルトの名無しさん (アウアウウー Sa8f-UR9r) [sage] 2018/01/05(金) 14:54:03.66:1LmylbFqa やってみろよ 問題なければそれでいいじゃん : デフォルトの名無しさん (ガックシ 067f-if4i) [sage] 2018/01/05(金) 14:55:24.40:mKj1Hxz16 そうするのが自然 : デフォルトの名無しさん (ワッチョイ ef9b-uQO5) [sage] 2018/01/05(金) 14:55:33.45:vfHtPi/n0 それもそうですね 一度試してみます ありがとうございました : デフォルトの名無しさん (アウアウウー Sa8f-aKZ8) [sage] 2018/01/05(金) 16:40:20.28:/39Jd9H6a そこに”今日はほんとうにいい天気だ”を突っ込むとどうなる? : デフォルトの名無しさん (ワッチョイ 9f2b-hL1C) [sage] 2018/01/05(金) 16:43:17.51:L4TaysN80 うにうに : デフォルトの名無しさん (アウアウウー Sa8f-UR9r) [sage] 2018/01/05(金) 16:52:08.84:1LmylbFqa 変換済みワードは一旦固めてしまわないと駄目かもしれんね : デフォルトの名無しさん (ワッチョイ 4f33-wtpF) [sage] 2018/01/05(金) 22:21:11.06:zjfuYfzH0 インクリメンタルにトライ木に掛けると1走査でできるよ : デフォルトの名無しさん (ワッチョイ cb75-if4i) [sage] 2018/01/05(金) 23:01:40.39:FSL+3S710 なんぞそれ : デフォルトの名無しさん (アウアウウー Sa8f-aKZ8) [sage] 2018/01/06(土) 11:25:54.88:A/n+HHYoa switch c case 'だ': var n=nextWord(); if(n=='ぜ') replace("です"); else if(n=='ぁ') : デフォルトの名無しさん (ワッチョイ 2bb3-7I2U) [sage] 2018/01/06(土) 15:58:34.34:lrwhIMsB0 C♯のswitchってC♯6からint以外も扱えるようになってたのか知らなかった : デフォルトの名無しさん (ブーイモ MM0f-ICSi) [sage釣] 2018/01/06(土) 17:26:53.26:lMgufIkRM 2008とかでも使えるけど? : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/08(月) 18:15:27.77:N8MhEzoU0 "one" "two" "three" の様な文字列が用意されていて int keisan(2,"one") →2*1 int keisan(2,"one","two") →2*(1+2) int keisan(2,"one","two","three") →2*(1+2+3) int keisan(2,"one","three") →2*(1+3) の様な結果を返すメソッドを作りたいのですが 引数の数が決まっていないメソッドを作るにはどうすればいいのでしょうか? : デフォルトの名無しさん (ブーイモ MM0f-lku/) [sage] 2018/01/08(月) 18:17:47.15:vvKSl3ZPM params : デフォルトの名無しさん (ワッチョイ 9fd2-oFSC) [sage] 2018/01/08(月) 18:21:03.05:oFrueEmX0 string[ ] args : デフォルトの名無しさん (ワッチョイ 9fd2-WIcH) [sage] 2018/01/08(月) 18:28:46.09:6LQHZKeL0 シグネチャは int keisan(int x, params string[] xs) になるかな : デフォルトの名無しさん (アウアウエー Sa3f-iSeT) [sage] 2018/01/08(月) 18:43:03.94:5t6jHGkha たぶんずっと同じ人だと思うけど、こういう人には質問するより前に まず自分で一通り勉強したらって言ってあげるのが優しさだと俺は思うけどなあw : デフォルトの名無しさん (ワッチョイ cb75-rVxj) [sage] 2018/01/08(月) 18:44:35.51:LRSoqKZx0 俺はそうは思わんわ これも一種の勉強やろ : デフォルトの名無しさん (ワッチョイ fb03-wNfw) [] 2018/01/08(月) 19:00:26.28:Jvqg6B4Y0 質問するより前にまず自分で一通り勉強した結果がお前らなのだから 俺は自分で勉強するより前に質問する方を選ぶよ : デフォルトの名無しさん (ワッチョイ 9fb3-TPPA) [sage] 2018/01/08(月) 19:29:32.05:7hYpzMEE0 ここ質問スレだから : デフォルトの名無しさん (ワッチョイ 9fe3-UR9r) [sage] 2018/01/08(月) 19:38:26.81:uSMEFASC0 これあれじゃん printfっぽいやつじゃん : デフォルトの名無しさん (ワッチョイ 9fe3-UR9r) [sage] 2018/01/08(月) 19:42:36.36:uSMEFASC0 c++のときの記憶だったw : デフォルトの名無しさん (ワッチョイ cf9c-YOiH) [sage] 2018/01/08(月) 19:48:50.27:YqcrQaEG0 例えばこんな感じのことがしたいのか 2の部分や演算順序が固定で気持ち悪い感じするが、簡易パーサーか何かかな ttps://ideone.com/b4A3Hl : デフォルトの名無しさん (アウアウウー Sa8f-aKZ8) [sage] 2018/01/08(月) 21:05:58.44:JPcKKnXVa いや 同じ人なら どうせまた変な事がしたいだけ : デフォルトの名無しさん (ワッチョイ 0f81-CMM7) [sage] 2018/01/08(月) 21:33:14.77:xV7in+AG0 自閉症かなんかっぽいよね : デフォルトの名無しさん (ワッチョイ 4f9f-b4Jt) [sage] 2018/01/08(月) 21:40:08.24:zg3P5Xfz0 勉強というよりもこの程度の内容をググれないのが心配だ "引数の数が決まっていないメソッド"って感じの適当な検索でもかなりヒットするのに : デフォルトの名無しさん (ワッチョイ 0b05-rVxj) [sage] 2018/01/08(月) 21:40:13.41:bJftSVCJ0 おかげでスレの話題が新鮮に保たれてる : デフォルトの名無しさん (ワッチョイ 9fd2-Gfid) [sage] 2018/01/08(月) 21:45:51.25:O8jIltI+0 ここは >「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 て、ことだからねえ。 が気にいらないなら自分で自分の主義にあるスレを立ち上げればいいだけ。 検索するにも適切なキーワードを思いつけなくて1日悩み続けた挙げ句に、聞いたら一瞬で終わるなんて事もあるし。 今回のは簡単な方だったみたいだけど。 : ◆QZaw55cn4c (ワッチョイ 1f60-1EiW) [sage] 2018/01/08(月) 21:55:49.50:F+Qn6y7R0 「VS2017 のプロジェクト(P)→プロパティ(E)のスタートアップオブジェクト(O) に相当する eclipse や intelliJ のメニューってなんですか」 と、今も探しているが、そもそも適切なキーワードが思いつかない 自分の話ですまん‥ : デフォルトの名無しさん (アウアウエー Sa3f-iSeT) [sage] 2018/01/08(月) 22:07:40.25:fM4iC4afa (1) 勉強して理解できなかった疑問点や調べても解決しなかったことを質問する のと (2) 面倒くさいからとにかくお前ら手取り足取り教えてくれ では全然違うと思うよw 誰でも変な思い込みや勘違いをすることがあるから、(1)であるならくだらない質問でも問題ないと思う。 でも(2)は見ててあんまり気分がよくないなと思う人もいると思うけどね。 っていうかそういう道徳的話はともかく、それって学習効率悪いよね絶対。 優しさ云々はそういう意味 : デフォルトの名無しさん (ワンミングク MMbf-vnDV) [sage] 2018/01/08(月) 22:11:51.21:4Iuopxo1M くだらない調査に時間かけるより聞いた方が良い 答える方もグダグダ言わずに知ってることを教えてやれ そういうネットワークができれば社会全体の生産性が上がるんだよ 日本にはなくて外国には当たり前のようにあるシステムだ 日本人は性格が排他的すぎるからITに向いてない だから負けるんだ : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/08(月) 22:29:20.81:N8MhEzoU0 有難う御座います。 後でやってみます。 入門書は一冊終わらせてはいるのですが作りたいものを作ろうとした時、その本に載っていないことの方が多くて… ここのスレの方々のおかげで今作っているプログラムもだいぶ形になってきました 非常に助かっています 可変長引数についても一応事前に調べて存在は知っていましたが説明を読んでもいまいちわからなく もっと簡単な方法があるかも…と思って聞いてみました でもやっぱりparamsと答えられたのでそれがベストなんだなと知ることが出来て 説明をもう一度読み直したらなんとか理解出来ました : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/08(月) 22:32:02.44:N8MhEzoU0 ありがとうございます。 参考にします。 : デフォルトの名無しさん (ワッチョイ 9fb3-TPPA) [sage] 2018/01/08(月) 22:34:04.87:7hYpzMEE0 くだらん質問だと思うならスルーするなり他のスレに行けよ ここは > 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 だよ : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/08(月) 22:40:28.65:N8MhEzoU0 ちなみにこういう書き方はできるのでしょうか? int keisan(params string[] xs,int x) int keisan("one","two","three",2) : デフォルトの名無しさん (ワッチョイ cb75-rVxj) [sage] 2018/01/08(月) 22:44:04.38:LRSoqKZx0 無理です ちょっと考えればそれができたら困ったことになるのは分かるはず : デフォルトの名無しさん (ワッチョイ 4f9f-b4Jt) [sage] 2018/01/08(月) 22:45:14.32:zg3P5Xfz0 paramsは最後のみ エラーでるから試してみるといい スルーも何も質問は2分後に解決してる その後はこういったプログラミング初心者対して別アプローチをした方がって話で質問とは関係ないと思うんだが : デフォルトの名無しさん (ワッチョイ fb03-wNfw) [] 2018/01/08(月) 22:51:04.77:Jvqg6B4Y0 、408 よう初心者クン で何を教えて欲しいのかね? : デフォルトの名無しさん (ワッチョイ 4f33-wtpF) [sage] 2018/01/08(月) 23:37:32.94:evPy5QQs0 最後にint型が来るって指定なんだから別に困らない パターンマッチではよくあるでしょ : デフォルトの名無しさん (ワッチョイ cb75-rVxj) [sage] 2018/01/09(火) 00:41:16.91:5Fj63PJf0 この場合は困らんけど一般的には困るだろ こんな文法が許されてたら。 : デフォルトの名無しさん (ワッチョイ 9fd2-oFSC) [sage] 2018/01/09(火) 03:29:04.52:V7ZjzcjU0 デフォルト引数の順番の制限もなくなったことを考えてみ? : デフォルトの名無しさん (ワッチョイ 9fb3-TPPA) [sage] 2018/01/09(火) 04:57:15.02:/Jm0Q1+w0 > 質問とは関係ないと思うんだが スレ違いだとは思わないのか? : デフォルトの名無しさん (ワッチョイ bbf7-k1u0) [] 2018/01/09(火) 05:02:51.20:A/ESCl++0 可変長は一種類だけで、最後に定義しないといけないみたいですね 無事に機能を実装できました。 質問に答えて下さった方有難う御座いました。 : デフォルトの名無しさん (ワッチョイ cb75-rVxj) [sage] 2018/01/09(火) 08:16:40.42:5Fj63PJf0 おまえに言われなくてもそんなこと考えてるし そのパターンは非現実的だって分かるだろ : デフォルトの名無しさん (スップ Sdbf-oFSC) [sage] 2018/01/09(火) 08:29:24.71:yV0bRmzSd なぜ? : デフォルトの名無しさん (ガックシ 067f-rVxj) [sage] 2018/01/09(火) 08:58:27.18:jhkCquMi6 hoge(arg=1, args=2, arcs=3, n=2) ↑ argsの配列感がない上に1,2,3っていう順番付けが曖昧 hoge((arg=1, 2, 3,) n=2) ↑ こんな文法を作ったとしても、もう配列で良いよねってなる 説明させんなよメンドくせえな : デフォルトの名無しさん (オッペケ Srcf-4aXV) [sage] 2018/01/09(火) 12:19:24.01:EqlP/XAyr なぜはこの程度の理解で答えたがるのか? 他人事と思わず皆考えてみよう : デフォルトの名無しさん (ガックシ 067f-rVxj) [sage] 2018/01/09(火) 12:47:31.69:p+9rZZ3s6 具体的に指摘できないなら喋んな : デフォルトの名無しさん (ブーイモ MM0f-jqvb) [] 2018/01/09(火) 12:48:02.08:xZogmC5hM 同意する : デフォルトの名無しさん (ワッチョイ dfeb-Ogju) [sage] 2018/01/09(火) 12:48:04.59:tXr0nFdK0 rubyも昔は可変長引数は最後の仕様だったけど、今は途中でも大丈夫になってる 結局は作ってる人のやる気次第だな : デフォルトの名無しさん (ガックシ 067f-rVxj) [sage] 2018/01/09(火) 12:59:33.58:jhkCquMi6 無理矢理でもやってるやつもあんだな。 ま、 は 「ちょっと考えれば分かるだろ質問すんな」じゃなくて、 『は?なんで可変長だけ順番変えねえの?キモッ。』って思われるかもしれないから、納得できるように付け加えただけな。 : デフォルトの名無しさん (ワッチョイ ef9d-/oj5) [sage] 2018/01/09(火) 17:14:14.89:GTddlW8V0 rubyってオーバーロード出来るの? : デフォルトの名無しさん (ワッチョイ bbeb-nOrU) [] 2018/01/09(火) 18:29:21.69:TMj71yN00 async/awaitを使った際の実行の流れの図があったら誰か見せてくれんかな : デフォルトの名無しさん (ワッチョイ 7b17-Ogju) [sage] 2018/01/09(火) 18:34:44.72:KiSnx3XP0 ttps://www.google.co.jp/search?q=c%23+async+await+sequence&tbm=isch : デフォルトの名無しさん [sage] 2018/01/09(火) 18:38:13.58 awaitのコードがコンパイラでどう変形させられるかの記事見たほうが分かりやすい ttp://tech.blog.aerie.jp/entry/2015/08/29/022932 : デフォルトの名無しさん (ワッチョイ bbeb-nOrU) [] 2018/01/09(火) 18:57:43.08:TMj71yN00 ありがとうございます 図はよくわからなかった点も多いので、ゆっくり記事を読んできます : デフォルトの名無しさん (アウアウエー Sa3f-iSeT) [sage] 2018/01/09(火) 21:30:26.03:ENZhQsZea @ITの記事にはシーケンス図っぽいのが載ってるよ ttp://www.atmarkit.co.jp/fdotnet/chushin/masterasync_02/masterasync_02_01.html : デフォルトの名無しさん (アウアウウー Sa8f-aKZ8) [sage] 2018/01/10(水) 01:25:16.09:rjHbKDY9a こう言う間違った図が人を惑わせる : デフォルトの名無しさん (アウアウウー Sa8f-aKZ8) [sage] 2018/01/10(水) 01:27:32.14:rjHbKDY9a よくみたら間違った図ではないが 使う上でなんの説明にもなってない図に訂正 この図だけをみると初心者がハマる : デフォルトの名無しさん (アウアウエー Sa3f-iSeT) [sage] 2018/01/10(水) 01:37:54.23:9VtjyWrsa ↑の人はたぶんコードと図で1セットになってることに気付かずに 図だけ見てそう言ってるか、あるいはなんか思いっきり勘違いしてるだけだと思うから 安心して参考にしていいと思うw : デフォルトの名無しさん (アウアウウー Sa8f-aKZ8) [sage] 2018/01/10(水) 01:50:58.29:rjHbKDY9a 説明するのが非常に難しいんだけど async/awaitの挙動をまともに書いてる記事が少ない 有名人でも間違った解説をしてる : デフォルトの名無しさん (アウアウウー Sa8f-aKZ8) [sage] 2018/01/10(水) 01:55:51.66:rjHbKDY9a >「メソッドを一時中断し、awaitされた処理の完了を待って残りの処理を再開する」 非常にグレーな表現 >@に続けてAの処理が別スレッド上で開始される 非常にグレーな表現 HevyWork()の中身が必ずすべて別スレッド上で行われてるわけではない : デフォルトの名無しさん (ワッチョイ 0fe8-Ogju) [sage] 2018/01/10(水) 01:58:10.55:av8HDoY10 正しい図を描いてアップしてもらえませんか : デフォルトの名無しさん (アウアウウー Sa8f-aKZ8) [sage] 2018/01/10(水) 01:59:38.89:rjHbKDY9a 出来たら苦労しない 場合訳が複雑なので 非常にめんどくさい : デフォルトの名無しさん (アウアウエー Sa3f-iSeT) [sage] 2018/01/10(水) 02:01:30.99:9VtjyWrsa 言っちゃ悪いけど、これも立派な2ch脳だね 羊たちの沈黙にあった台詞だけど、その批判的精神を自分自身に向けるだけの理性はないのかw : デフォルトの名無しさん (アウアウエー Sa3f-iSeT) [sage] 2018/01/10(水) 02:02:34.65:9VtjyWrsa いや、の記事は十分わかりやすいし間違ってもいないから安心していいよw : デフォルトの名無しさん (アウアウウー Sa8f-aKZ8) [sage] 2018/01/10(水) 02:03:23.76:rjHbKDY9a それぞれがそれぞれの心の中でお前が言うなと思う 上にあった図を参考にしてるといつか全然思った通りに動かなくなり?マークになる : デフォルトの名無しさん (ワッチョイ 9f7c-Ogju) [] 2018/01/10(水) 05:30:31.38:t7WvUySz0 UnityってC#どのくらい使えると触れるの? : デフォルトの名無しさん (ワッチョイ 0f80-41Gj) [] 2018/01/10(水) 07:12:09.78:8FRtzSYP0 初めてのJavaScript 第3版、オライリー、2017 JS には、async/await が無いから、 この本では、generator runner の仕組みを説明している。 co, Koa というライブラリを使う 非同期処理は異なるコンテキストで、 別のスレッド・プロセスだから、どこを実行しているのか分からない。 実行順番も制御できないし、例外処理も使えない generator runner は非同期処理を、yield で待つように作る。 これにより、非同期処理を同期処理のコンテキストに当てはめるから、 実行順番を制御できるし、例外処理も使える try{ yield promise 非同期処理 } catch { } : 440 (ワッチョイ 0f80-41Gj) [sage] 2018/01/10(水) 07:52:38.82:8FRtzSYP0 異なるコンテキストとは、同じソースコードに書いていても、 OS から見ると、別のプロセス・スレッド・実行単位になる OS は、1秒間に数万回も、実行単位を切り替える(コンテキストスイッチ)から、 今、別の実行単位の、どのコードが実行されているかは、全く分からないし、制御もできない 別の実行単位に対してできることは、 タスクの終了を待つか、タイムアウトするか、タスクを止めてもらうかだけ : デフォルトの名無しさん (スップ Sdbf-oFSC) [sage] 2018/01/10(水) 07:54:58.52:dKgg5RtTd >JSには、async/awaitが無い 何言ってんの? : デフォルトの名無しさん (ワッチョイ 4b23-lku/) [sage] 2018/01/10(水) 08:02:12.05:hRyz+G9b0 句読点君のレスを判定するアルゴリズムを作ろう 機械学習の勉強によさそう : デフォルトの名無しさん (ワッチョイ 1bf2-Ogju) [sage] 2018/01/10(水) 08:27:22.17:fLUpXSTQ0 >co, Koa というライブラリを使う あぁ、このアホか。C#スレまで出張ってきてうざいな。 : デフォルトの名無しさん (アウアウウー Sa8f-aKZ8) [sage] 2018/01/10(水) 10:57:56.79:zuSWugfya 話の流れが見えない 非同期処理的 : デフォルトの名無しさん (アウアウカー Sa4f-Sycn) [] 2018/01/10(水) 15:47:45.43:0NEBj+IAa C#始めて1カ月程度の初心者です trackbarの値をBackgroundWorkerに渡して、その値を使って別スレッドで画像を生成して、whileとReportProgressでtrackbarの変更に合わせて画像を表示していくプログラムを作っているんですが、 trackbarの値をBackgroundWorker_DoWorkに渡すのってどうやるんですか? 別スレッドなので、trackbar.Valueでそのまま使う事ができなくて… デバッグ無しの実行ならよく分からないですが、そのまま使っても実行できて上手く画像表示されている事が確認できたので、 スレッド間でtrackbarの値を渡すのだけが上手くいかなくて悩んでます : デフォルトの名無しさん [sage] 2018/01/10(水) 15:54:42.58 トラックバーの値変更イベントのイベントハンドラでフォームのフィールドにトラックバーの値を保持しておく それをバックグラウンドワーカーで読み取る : デフォルトの名無しさん (ガックシ 067f-Sycn) [] 2018/01/10(水) 16:15:46.81:+iIpBJgq6 それって両スレッド共通の変数を作っておいてトラックバーが動いた時のイベントハンドラでその変数に値を保存していくって事ですよね? それも試したんですが、よくわからないエラーが発生して動作が止まってしまいました : デフォルトの名無しさん [sage] 2018/01/10(水) 16:16:37.99 それか、Invokeでアクセスする // コントロールが破棄されてないかチェック if (trackbar.IsDisposed) return; var value = 0; // Invokeが必要かチェック if(trackbar.InvokeRequired) { Invoke((MethodInvoker)(() => { value = trackbar.Value; })); } else { value = trackbar.Value; } : デフォルトの名無しさん [sage] 2018/01/10(水) 16:19:33.71 じゃあ、値変更イベントハンドラ内でトラックバーの値をフィールドに設定するところと、バックグラウンドワーカーでそのフィールドから値を読み出すところを、lock{...}で囲む : デフォルトの名無しさん (ブーイモ MM7f-jqvb) [] 2018/01/10(水) 16:24:33.20:yZjeHBZDM その処理は別スレッドでないと出来ないのか? という身もフタもない突っ込み : デフォルトの名無しさん [sage] 2018/01/10(水) 16:33:02.39 lock (トラックバーの値を保持してる変数) { ... } のミスでした : デフォルトの名無しさん (ガックシ 067f-Sycn) [] 2018/01/10(水) 16:33:27.10:+iIpBJgq6 ちょっと用事ができたので今は試せませんが、両方試してみます 割と重い処理なので、同じスレッドのトラックバーのイベントハンドラで処理を行うと、トラックバーの動きがかくついてしまったので、分離したいんです : デフォルトの名無しさん [sage] 2018/01/10(水) 16:35:01.84 async/awaitでいいのでは? : デフォルトの名無しさん (ガックシ 067f-Sycn) [] 2018/01/10(水) 17:01:05.31:+iIpBJgq6 課題でバックグラウンドワーカー指定されてたので、 それ初めて聞いたんですが、同じような事が出来るんですか? : デフォルトの名無しさん (ワッチョイ 9f06-hL1C) [sage] 2018/01/10(水) 17:06:36.89:5BQfLz2R0 BackgroundWorkerは、標準機能で専用のeventargを使ってオブジェクトを一つ引き渡せたはずだが マニュアルしっかり見たほうが良いよ : デフォルトの名無しさん (ガックシ 067f-Sycn) [] 2018/01/10(水) 17:17:37.84:+iIpBJgq6 それってバックグランドワーカーを開始する時に値を渡す事ですか? WhileとReportProgressで画像表示していて、バックグランドワーカーは止まらないので開始時の値を引き渡すのだけでは、トラックバーの値変更に対応できなさそうですが、できるんですか? 的外れな事言ってたらすみません。 まだ学び始めたばかりでわからない事だらけなので ちなみに画像生成に使うトラックバーは7本あります : デフォルトの名無しさん [sage] 2018/01/10(水) 17:18:24.71 async/awaitならイベントハンドラの中に1行で非同期処理書ける 課題なら仕方ない : デフォルトの名無しさん (ワッチョイ 0f9a-+W2v) [sage] 2018/01/10(水) 17:42:20.90:8CBJwk4h0 処理イベントを多重呼び出ししていない? busyのときは呼ばないように >whileとReportProgressでtrackbarの変更に合わせて ReportProgressでは元のスレッドのコントロールにアクセスできるからこの意味がいまいちわからないが とりあえず ・BackgroundWorker_DoWorkに渡す ttp://https://dobon.net/vb/dotnet/programing/displayprogress.html#backgroundworker "> ttps://dobon.net/vb/dotnet/programing/displayprogress.html#backgroundworker 呼び出す側 int value=trackbar.Value; BackgroundWorker1.RunWorkerAsync(value); Do_Work側 int value=(int)e.Argument; >>457 >トラックバーの値変更に対応できなさそうですが リアルタイムに反映は理屈から言うと無理 処理量が少なければそう見えるようにも作れるから画像が大きければトラックバー動作中は縮小画像で : デフォルトの名無しさん (アウアウエー Sa3f-iSeT) [sage] 2018/01/10(水) 17:43:56.21:ZlAR0fHNa と同一人物? 仕様の詳細が分からんので断定はできないけど、 断片的な情報から判断すると (1) 無限ループでTrackbar.Valueをポーリングして (2) 変化を検出したら画像生成を開始 (3) 完了したらBackgroundWorkder.ReportProgressを呼んで UIスレッドで画像を表示 こういうこと? もしこうなら、スレッドで無限ループ回すって発想がたぶん間違ってる。 諸事情でBackgroundWorkderを使う必要があるにしても Trackbar.ValueCangedイベントでBackgroundWorker.RunWorkerAsyncを 呼んで都度画像生成処理を開始するようにした方がいいんじゃないの? それならTrackbar.ValueはRunWorkerAsyncの引数で渡せる : デフォルトの名無しさん (ワッチョイ 0f9a-+W2v) [sage] 2018/01/10(水) 17:51:28.39:8CBJwk4h0 ブラウザ部分同じだから同一人物で間違いない 次からレス番でコテハン付けて 一応捕捉でRunWorkerAsyncの引数はobjectなので ttps://msdn.microsoft.com/ja-jp/library/f00zz5b2(v=vs.110).aspx 受ける側でキャストしたらListでも配列でも使える : デフォルトの名無しさん (アウアウエー Sa3f-iSeT) [sage] 2018/01/10(水) 17:54:40.44:ZlAR0fHNa ただこの場合でも、ValueCangedはたぶんユーザーがつまみを動かかしている間は 逐次的にイベントが発生しちゃうと思うから、BackgroundWorker.RunWorkerAsyncを コールするのは、例えばValueCangedが発生しなくなってから1秒後、みたいな工夫がたぶん必要になるのかな 知らんけど : デフォルトの名無しさん [sage] 2018/01/10(水) 18:00:54.81 起動時にRunTaskWorkerを呼び出す。 ↓ doWorkでは無限ループでトラックバーの値の変更を監視 こういうことだと思う。 知らんけど。 : デフォルトの名無しさん (ワッチョイ 39f7-RcqZ) [] 2018/01/11(木) 01:51:14.39:fK8uCW920 public void testA() { bool error=false; error=true; if (error == true) { return; } textBox1.Text = "ok"; } error=true; if (error == true) { return; } をまとめてメソッドtestBにするにはどうすればいいでしょうか testAの中でtestBを実行し、testBでエラーが出たらtestAもそこで処理を中止して textBox1.Text = "ok";を実行しない というプログラムを作りたいのですが : デフォルトの名無しさん [sage] 2018/01/11(木) 02:26:04.02 これじゃダメ? ――――――――― ... var error = testB(); if(error) return; ... ――――――――― public bool testB(){ var error=false; error=true; if(error) return true; retrun false; } ――――――――― : デフォルトの名無しさん (ワッチョイ 39f7-RcqZ) [] 2018/01/11(木) 02:53:49.75:fK8uCW920 やはりtestBメソッドの後で判定するしかないですよね。 ありがとうございます。 : デフォルトの名無しさん (ワッチョイ 4a0f-QpsD) [sage] 2018/01/11(木) 04:20:02.74:9ePH9NvT0 Janeでいう画像のようなフォームを作りたいのですが、 フォームにはどのようなコントロールを配置しているのでしょうか? 列名にはButton、一覧はListBoxのように見えます。 ttps://imgur.com/a/mOqw6 : デフォルトの名無しさん (ドコグロ MM12-J7fK) [sage] 2018/01/11(木) 07:57:27.54:W1ryMExAM > testAの中でtestBを実行し、testBでエラーが出たらtestAもそこで処理を中止して > textBox1.Text = "ok";を実行しない 例外で一気に抜ければいいだろ : デフォルトの名無しさん [sage] 2018/01/11(木) 09:55:11.66 ListBoxのViewプロパティをDetailsにしたやつと同じ 上のボタンはColumnsプロパティで編集できる : デフォルトの名無しさん [sage] 2018/01/11(木) 09:58:05.61 あと、多分FullRowSelectプロパティをオンにしないと行をクリックしたときに一列分しか色が付かない : デフォルトの名無しさん [sage] 2018/01/11(木) 11:50:13.87 ListBoxじゃなくてListViewだったわ : デフォルトの名無しさん (ワッチョイ 4a0f-nl4B) [] 2018/01/11(木) 18:47:50.43:9ePH9NvT0 , ありがとうございます 1つのコントロールで実現できるのですね 作るときにFullRowSelectも意識してみます : デフォルトの名無しさん (ワッチョイ 9ee7-p0TQ) [] 2018/01/12(金) 02:16:04.35:gpUPMxg50 今ってC#なら何でもできる時代か?webページもゲームもWindowsアプリもandroidも : デフォルトの名無しさん (ワッチョイ 969c-zueB) [sage] 2018/01/12(金) 08:59:21.85:uVEH64eZ0 初めて目にしたものに万能感を感じてるだけ、刷り込みという : デフォルトの名無しさん (ワッチョイ 59e3-oih1) [sage] 2018/01/12(金) 09:11:32.29:2hN5vnhI0 でもここまで全部作れる時代ってないんじゃん? 全部c言語の時代以来だな : デフォルトの名無しさん [sage] 2018/01/12(金) 09:13:00.90 さすが大企業 : デフォルトの名無しさん (ブーイモ MMc9-XZ0y) [sage] 2018/01/12(金) 09:23:53.14:4yLgM4ukM アプリ開発言語としてはWebのフロントエンドを除けばほぼ何でもできるので 目下最も万能な言語であることには違いないが、道具を前提にして物事を考える癖がつくと頭悪くなるから一つに拘るのはお勧めしないな : デフォルトの名無しさん [sage] 2018/01/12(金) 09:27:14.08 >道具を前提にして物事を考える 解説頼む : デフォルトの名無しさん (ワッチョイ 6d4b-Xh6c) [sage] 2018/01/12(金) 09:28:54.75:4fjc3EU00 金のハンマーか ハンターチャンス : デフォルトの名無しさん (ワッチョイ 59e3-oih1) [sage] 2018/01/12(金) 09:48:35.89:2hN5vnhI0 まあ、なんでもいいしね msにはsilverlightに騙されたのでこの辺の信用は薄い : デフォルトの名無しさん (ブーイモ MM0a-EosG) [] 2018/01/12(金) 09:54:47.82:1+438Ej9M WebのフロントエンドはhtmlとJavaScriptという道具を前提とするしか無いが。 : デフォルトの名無しさん (ブーイモ MM0a-EosG) [] 2018/01/12(金) 09:58:40.77:1+438Ej9M 騙されたと言うかJavaScriptの進化が速くてJavaアプレットもオワコン : デフォルトの名無しさん (ササクッテロロ Spbd-QAb3) [sage] 2018/01/12(金) 12:31:07.50:nUBs6Y0Hp なんかWeb系の人多いね Webとは一切関わらずに来たから 色々と世界の違いを感じるわ : デフォルトの名無しさん (スッップ Sd0a-6CSh) [] 2018/01/12(金) 12:34:17.17:OH7R1+qFd でぇじょうぶだ。wasmがくる。 : デフォルトの名無しさん (アウアウエー Sa52-UnGo) [sage] 2018/01/12(金) 12:55:06.39:sc59V6rza 直接の原因はセキュリティ対策を名目にしたプラグイン排除の動きでしょ : デフォルトの名無しさん (ワッチョイ 59e3-oih1) [sage] 2018/01/12(金) 14:37:46.31:2hN5vnhI0 そっちはついで サーバー側がメインに決まってんじゃん 片手間で意外と時間がかかるのがムカつく 画面なんかデザインと相談しろよ : デフォルトの名無しさん (ワッチョイ 9ee7-p0TQ) [] 2018/01/12(金) 14:42:53.15:VxcDYdZu0 職につくために限定的な開発だけじゃあ厳しいなってC#なら何でも作れるようにならないとなって思って : デフォルトの名無しさん [sage] 2018/01/12(金) 14:44:49.67 使う言語はおまえが決められないけどな : デフォルトの名無しさん (ワッチョイ 59e3-oih1) [sage] 2018/01/12(金) 14:44:55.45:2hN5vnhI0 逆引き辞典でも買っとけ 〜できる?って聞かれたときいいぞ : デフォルトの名無しさん (ササクッテロラ Spbd-euJe) [sage] 2018/01/12(金) 16:00:59.66:C/maxB41p スタブってのがほんとに分からん… どんな知識が必要でどんな風に使うのかイメージ出来ん DAO?とかの概念が自分になくてSQLを扱う部分とロジックがごっちゃになってるとそもそもスタブでなんとかしようってレベルですらないのかな なにか猿でも分かるような記事とかないですか… : デフォルトの名無しさん (ブーイモ MM81-EosG) [] 2018/01/12(金) 16:11:30.81:mLvyYLexM スタブってテスト用のダミーの事? : デフォルトの名無しさん (アウアウウー Sa21-53ns) [sage] 2018/01/12(金) 18:24:00.26:C2fpfp9ga スタブはテストのためのダミーだよ 完成まで一時的にいれておいてビルド通したり テストで実際の環境に影響をおよぼさないために使う テストしない 完成まで途中で実行しない ならいらない : デフォルトの名無しさん (ワッチョイ 59e3-oih1) [sage] 2018/01/12(金) 18:39:16.58:2hN5vnhI0 酢豚 : デフォルトの名無しさん (ワッチョイ ea06-QpsD) [sage] 2018/01/12(金) 19:18:31.62:Oe9MQ/U/0 裸の豚がいる、素豚 : デフォルトの名無しさん (ワッチョイ aa19-QpsD) [sage] 2018/01/12(金) 19:54:46.80:Q+CtiLx/0 それは地雷踏んでるし素マ○だし。 : デフォルトの名無しさん (ワッチョイ 6a9a-4PyQ) [sage] 2018/01/12(金) 20:48:40.23:sVH4h8AJ0 ここ雑談所とかロビーじゃないんで リンクテンプレにあるんだからワッチョイの無い相談室でやればいいのに : デフォルトの名無しさん (ワッチョイ ea06-QpsD) [sage] 2018/01/12(金) 20:54:57.06:Oe9MQ/U/0 ttp://nicogame.info/watch/sm4260808 所さんのスブタ : デフォルトの名無しさん (ワッチョイ 4aa2-UJUP) [sage] 2018/01/13(土) 01:59:49.10:zim/eiwV0 sqlserverからレコード取得する処理で、dataReaderを別関数に渡して、 そっちでdataReader.Iten("hogehoge")するのってありですか? 一部のカラム名だけが異なる類似レコードの取得処理をまとめたいなあと : デフォルトの名無しさん (ワッチョイ 3d23-XZ0y) [sage] 2018/01/13(土) 08:43:16.67:YXV8ZXe20 それ自体は特に問題はないけど、可能ならDapperとか使った方がいい : デフォルトの名無しさん (ワッチョイ ea06-QpsD) [sage] 2018/01/13(土) 08:44:56.00:GojsaP7Y0 その手の仕事なら、拡張メソッドで書くとスッキリ書けるよ : デフォルトの名無しさん (ワッチョイ eab3-J7fK) [sage] 2018/01/13(土) 10:33:11.79:8qhapkmN0 Itenがなにかはわからんけど、dataReader を渡すのはありでしょ : デフォルトの名無しさん (ワッチョイ 11cc-6CSh) [sage] 2018/01/13(土) 11:39:34.05:bohsitgJ0 Itemなんだろうなぁとは思ったよ : デフォルトの名無しさん (ワッチョイ 66e8-QpsD) [] 2018/01/13(土) 15:48:07.46:J9QLRP4o0 ItemItemって考えてるとあいてむってなんだっけ?ってなるよね : デフォルトの名無しさん (ワッチョイ 11cc-6CSh) [sage] 2018/01/13(土) 16:27:23.47:bohsitgJ0 普通省略するからな : デフォルトの名無しさん (ワッチョイ a5c9-QpsD) [sage] 2018/01/13(土) 17:00:38.69:jdkhpG2m0 データが大量の場合は予めカラム名から序数取得しておいて、序数指定にするんだっけか 今はDapperばかりだから忘れたわ : デフォルトの名無しさん (ワッチョイ 5d75-JLCo) [sage] 2018/01/13(土) 17:42:17.67:GYwe1Ej/0 ダッパーってなあに? : デフォルトの名無しさん (ワッチョイ 7983-0PCX) [sage] 2018/01/13(土) 17:43:12.24:LGXgKIg90 結局、DB扱わせたらCOBOL最強という結論か。 : デフォルトの名無しさん (ワッチョイ 969c-zueB) [sage] 2018/01/13(土) 18:22:41.37:2EuaVelH0 一時期ORMが流行ったがメモリ食いすぎと重すぎて今じゃBI以外で使う機会がない 軽量wrapperを挟んでクエリ直書きの負担を軽減するというのが最近のスタイル 有名なのはDapper、Massive、PetaPocoとか : ◆QZaw55cn4c (ワッチョイ 4a60-cexj) [sage] 2018/01/13(土) 19:33:09.67:9/EYlaQy0 Micro-ORM ですか、Java にはあまりなさそうですね BI ってなんの略ですか? : デフォルトの名無しさん (ワッチョイ 4aa2-UJUP) [sage] 2018/01/13(土) 22:23:31.56:zim/eiwV0 498だす いろいろありがとう Dapperって知らなかったので調べてみます : デフォルトの名無しさん (ワッチョイ 5e20-y5e1) [sage] 2018/01/14(日) 11:58:36.30:6wMaD5Pe0 質問させてください まず、やりたいことは以下です @c#からネイティブライブラリの関数を呼び出す A引数としてマネージ側で実装した関数を渡し、ライブラリ側でその関数を呼び返す Aでマネージ関数と一緒にマネージドオブジェクトを渡したいのですが、そのオブジェクトをGC対象から除外する方法が分かりません GCHandle.Alloc では blittable なオブジェクトでないとダメだと怒られます List<int> とかを渡したいのですが…… どうしたらいいでしょうか? : デフォルトの名無しさん (ワッチョイ 3d23-XZ0y) [sage] 2018/01/14(日) 12:44:23.20:DNkTPWoH0 普通にデリゲートをマーシャリングして渡す 呼び出す先が同期的な関数ならGCは考慮不要 非同期的にコールバックしてくるならデリゲートをフィールドに入れておいてGCを防ぐ デリゲートのマーシャリングは非常に優秀で、メソッド内から外のローカル変数を参照してたりインスタンスフィールドを参照してたりしても問題ない だからList<int>とかをわざわざ渡す必要はない : 512 (ワッチョイ 3d23-XZ0y) [sage] 2018/01/14(日) 12:45:29.88:DNkTPWoH0 補足 メソッドから参照されてるオブジェクトはデリゲートが生きてる限りはGCされないので、 GC対策としてはデリゲートだけフィールドで保持しとけば十分 : 511 (ワッチョイ 5e20-y5e1) [sage] 2018/01/14(日) 13:56:18.92:6wMaD5Pe0 ありがとうございます! 解決しました。変数をキャプチャしてるラムダ式でもOKなんですね これって実行時にコードを生成してるんでしょうか? : デフォルトの名無しさん (ワッチョイ 39f7-RcqZ) [] 2018/01/15(月) 08:04:36.45:wzT+kwGj0 visualstudio2015でifの条件式の部分が if(a>1&& b>1&& c>1&& d>1) となっているのを if(a>1&& b>1&& c>1&& d>1) ときれいに揃える方法はないでしょうか? ctrl+k,ctrl+dではこの部分だけきれいにならず困っています : デフォルトの名無しさん (ワッチョイ 39f7-RcqZ) [] 2018/01/15(月) 08:05:35.73:wzT+kwGj0 if(a>1&& b>1&& c>1&& d>1) となっているのを if(a>1&& __b>1&& __c>1&& __d>1) _はスペースです : デフォルトの名無しさん (ワッチョイ 3d23-XZ0y) [sage] 2018/01/15(月) 08:06:30.11:rRRRUjz40 ない そんな非生産的なコーディング規約は今すぐ撤廃しなさい : デフォルトの名無しさん (ワッチョイ 39f7-RcqZ) [] 2018/01/15(月) 08:34:59.05:wzT+kwGj0 条件式がたくさんある場合はどうすれば見やすく書けるのでしょう… 横に伸びると見にくくて : デフォルトの名無しさん (ワッチョイ 6681-/vYA) [sage] 2018/01/15(月) 08:44:15.19:6fJ2ahWY0 自分にあったフォーマッタを 自分で開発すればいいんじゃないの? 出来合いで我慢できないならそれしかないでしょ 幸いにもあなたはプログラマーだ 頑張れ : デフォルトの名無しさん (ワッチョイ aad4-1Ifv) [] 2018/01/15(月) 09:00:59.11:vPE1QZCU0 if(a>1&& b>1&& c>1&& d>1) となっているのを if(a>1&& __b>1&& __c>1&& __d>1) _はスペースです : デフォルトの名無しさん (ワッチョイ aad4-1Ifv) [] 2018/01/15(月) 09:02:06.54:vPE1QZCU0 if(a>1&& b>1&& c>1&& d>1) となっているのを if(a>1&& __b>1&& __c>1&& __d>1) _はスペースです : デフォルトの名無しさん (ワッチョイ 59e3-oih1) [sage] 2018/01/15(月) 09:28:26.41:dZYU88oU0 その前に書くなら if(a>1 &&b>1 &&c>1 &&d>1) って揃えるべきじゃね? そういう視点で見るとどうよ? : デフォルトの名無しさん (ワッチョイ 39f7-RcqZ) [] 2018/01/15(月) 09:34:40.52:wzT+kwGj0 522 それでもいいんですが ____if(a>1 &&b>1 &&c>1 ____&&d>1) 貼り付け繰り返してるうちにこうなっちゃったりしてるんですよね : デフォルトの名無しさん (スッップ Sd0a-6CSh) [sage] 2018/01/15(月) 09:37:21.51:MBkuLX1yd 俺だったらIsXXXみたいなboolを返すメソッドに分けちゃう。 : デフォルトの名無しさん (ワッチョイ eaa4-FrwJ) [sage] 2018/01/15(月) 10:03:58.56:E8Ly8wa60 おれは諦めた。もう好きにフォーマットしてくれたまえ : デフォルトの名無しさん (ワッチョイ 39f7-RcqZ) [] 2018/01/15(月) 14:27:32.00:wzT+kwGj0 すっぱい葡萄 手に入れたくてたまらないのに、人・物・地位・階級など、努力しても手が届かない対象がある場合、その対象を「価値がない・低級で自分にふさわしくない」ものとみてあきらめ、心の平安を得る。 フロイトの心理学では防衛機制・合理化の例とする。 また、英語圏で「Sour Grapes」は「負け惜しみ」を意味する熟語である。 wikiより : デフォルトの名無しさん (ワッチョイ 39f7-RcqZ) [] 2018/01/15(月) 14:28:13.93:wzT+kwGj0 誤爆 : デフォルトの名無しさん (ガックシ 063e-JLCo) [sage] 2018/01/15(月) 14:30:17.74:H/ZiF0K36 わざとらし : デフォルトの名無しさん (スッップ Sd0a-6CSh) [sage] 2018/01/15(月) 14:55:45.45:AxPygC8od ふふってなった : デフォルトの名無しさん (ワッチョイ eab3-J7fK) [sage] 2018/01/15(月) 23:31:54.06:D5A33j6W0 if( a>1&& b>1&& c>1&& d>1 ) じゃダメ? : デフォルトの名無しさん (ワッチョイ 59e3-oih1) [sage] 2018/01/15(月) 23:38:16.13:dZYU88oU0 俺的には条件が長くなったときに &&が後ろに隠れるのは納得行かないぜ 横が揃うなんて些細な問題だ : デフォルトの名無しさん (ワッチョイ eab3-J7fK) [sage] 2018/01/15(月) 23:46:30.01:D5A33j6W0 個人的には if( 1 < a && 1 < b && 1 < c && 1 < d ) って書くけどに合わせてあるだけ : デフォルトの名無しさん (アウアウエー Sa52-UnGo) [sage] 2018/01/15(月) 23:51:57.61:NNVQY+KWa もう書いてる人いるけど、こういうのは結局自分の(ほとんどの場合はくだらない) こだわりの方を修正する方が早い。 っていうか頭を揃えたら見やすいって感覚はちょっと理解不能 間違いなくただの思い込みだと断言できる : デフォルトの名無しさん (アウアウウー Sa21-53ns) [sage] 2018/01/15(月) 23:52:49.97:6y3nyQLRa もうbool返すメソッド作れよ bool AllUnderOne(a,b,c,d) : デフォルトの名無しさん (アウアウエー Sa52-UnGo) [sage] 2018/01/15(月) 23:58:52.41:NNVQY+KWa んなことしなくてもifに長い式書くのが嫌なら適当な使い捨ての変数を導入するだけでしょ : デフォルトの名無しさん (ワッチョイ ea06-QpsD) [sage] 2018/01/16(火) 13:31:13.30:i7+6byhr0 でかくて長い画面を買うってのが一番の解決法かも : デフォルトの名無しさん (ササクッテロラ Spbd-euJe) [sage] 2018/01/16(火) 15:15:48.68:ugMFq+erp 結局staticって何が有用でどういう時に使うものなの? 解説読んでもこれが何に活かされるのか分からない… : デフォルトの名無しさん [sage] 2018/01/16(火) 15:30:00.66 おまえMathクラス使わんの?string.Joinも? : デフォルトの名無しさん (スップ Sdea-ic3a) [sage] 2018/01/16(火) 15:37:01.06:a4mp8S6Kd Code alignmentって拡張機能があるから使ってみれば? : デフォルトの名無しさん (スッップ Sd0a-6CSh) [sage] 2018/01/16(火) 15:56:31.20:MHWq/GyWd ちなみにstaticな変数の話? staticなメソッドの話? : デフォルトの名無しさん (アウアウエー Sa52-UnGo) [sage] 2018/01/16(火) 16:04:17.06:PrX1Owa0a インスタンスおじさん誕生の瞬間であった : デフォルトの名無しさん (ブーイモ MM0a-EosG) [] 2018/01/16(火) 16:15:22.10:CjJlQTmDM それはスタティックおじさん誕生じゃないのかと突っ込む : デフォルトの名無しさん (アウアウウー Sa21-53ns) [sage] 2018/01/16(火) 18:17:52.02:KK3jsa+Da ここだかどうだかわすれたけど staticの質問をしてた人が過去にいた そしてなぜかCの話になったりしていちゃもんつけるだけつけて帰って行った 同じ人かもしれない : デフォルトの名無しさん (ワッチョイ 2ab3-1I1E) [] 2018/01/16(火) 22:11:32.35:augwvgTX0 string型の文字列を配列で持ちたいときはlistboxに 文字列をコピーしていく方法よりカッコいい方法ある? : デフォルトの名無しさん (ワッチョイ 7983-0PCX) [sage] 2018/01/16(火) 22:21:10.24:d5RFkyAg0 それは難問だな。 : デフォルトの名無しさん (ワッチョイ 11cc-6CSh) [sage] 2018/01/16(火) 22:21:16.14:6G3H5uZu0 stringの文字列を配列で持ちたいというのはstring[]ってこと? listboxに文字列をコピーしていくとは?もうちょっと詳しく。 カッコいい方法というのはC#のコードの書き方という意味で? : 愛知人 [sage] 2018/01/17(水) 00:53:02.20:BsDn1sQu string[]型を使う : デフォルトの名無しさん (オッペケ Srbd-PxW6) [sage] 2018/01/17(水) 12:17:12.42:bthN5Jmqr カッコよさが分からない人たちばかりだな : デフォルトの名無しさん (バッミングク MMb1-TP79) [sage] 2018/01/17(水) 12:20:30.00:LEuV8dOXM SQLを外部ファイルに出したいのですが、そういうライブラリやフレームワークってあるでしょうか それとも皆さんオレオレフレームワークを作っているのでしょうか : デフォルトの名無しさん (ブーイモ MMc9-EosG) [] 2018/01/17(水) 12:22:20.17:kFuDYWJQM エスパーはよ : デフォルトの名無しさん (オッペケ Srbd-PxW6) [sage] 2018/01/17(水) 12:26:19.54:bthN5Jmqr オレオレフレームワークもみんなが使えばワレワレフレームワークになる そーゆーこと : デフォルトの名無しさん (ブーイモ MMc9-EosG) [] 2018/01/17(水) 12:30:08.90:kFuDYWJQM みんなで使える優れたフレームワークはオレオレフレームワークと呼ばれない : デフォルトの名無しさん (ワッチョイ ea06-QpsD) [sage] 2018/01/17(水) 12:33:43.83:1hVmVOYN0 phpでいいじゃん。何が不満? : デフォルトの名無しさん (スッップ Sd0a-6CSh) [sage] 2018/01/17(水) 12:43:27.55:0DWA9qEvd 優しくレスしても返答返してくれないからつれぇわ : デフォルトの名無しさん (アウアウウー Sa21-53ns) [sage] 2018/01/17(水) 13:07:25.77:WDfY9ZKSa 何について言ってるのか理解しづらいけど SQLを外に出すのは悪いことなのでそういうライブラリやフレームワークはない SQLってただの文字列でしかなくてコンパイル時に間違いがわからない それを埋め込んでテストを繰り返すことでバグの可能性を限りなく低くしてる でもORMなどを使っても必ずバグを洗い出せるわけじゃない : デフォルトの名無しさん (ドコグロ MM12-oih1) [sage] 2018/01/17(水) 13:17:11.57:ouCdAj12M ストアドでも : デフォルトの名無しさん (ドコグロ MM12-oih1) [sage] 2018/01/17(水) 13:19:50.11:ouCdAj12M よく考えると形だけ外出ししてもデータ取得後のソースが SQLによって変わるからあんまり意味ないっつか見にくくなるだけだな : 549 (バッミングク MMb1-TP79) [sage] 2018/01/17(水) 17:56:42.19:hVz/jIKcM 質問が下手ですみません javaのibatisのようなxmlでクエリを外部ファイルに置くようなフレームワークはC♯にあるのでしょうかという質問でした 自分は文字列でコード上に直接クエリを書いており、悪手をやっているのではと不安になり質問しました ご教示よろしくお願いします : デフォルトの名無しさん (スップ Sdea-xBNd) [sage] 2018/01/17(水) 18:11:05.45:XareNapid iBatisって相当昔だと思うけど…C#でもiBatis(MyBatis)は使える 絶対やめた方がいいけど : デフォルトの名無しさん (スップ Sdea-xBNd) [sage] 2018/01/17(水) 18:11:53.34:XareNapid 普通にDapper使っとけ : デフォルトの名無しさん (ブーイモ MMc9-XZ0y) [sage] 2018/01/17(水) 18:20:48.34:Hv4w1dTIM 今時は全部ソース内に書くのが普通 : デフォルトの名無しさん (スッップ Sd0a-6CSh) [sage] 2018/01/17(水) 18:25:50.70:0DWA9qEvd 個人的にクエリは定数で宣言して、クラスにまとめる感じで書く。 リフレクション使ってクエリ文字列を引っ張れば管理資料もチョチョイのチョイやで。 : 549 (ワッチョイ 5e76-TP79) [sage] 2018/01/17(水) 18:33:33.76:2pD1HrQI0 むしろクエリを外部ファイルに書き出すのは古いのですね 参考になります : デフォルトの名無しさん (ワッチョイ 25b3-hYQh) [] 2018/01/18(木) 15:36:13.66:UDaQCIW60 すみません。この場を借りて質問させていただきます。 C#初心者なのですが、wpfで動画再生アプリを作っています。コピペメインです。 MediaElementを使って動画のコントロールはほぼ実装できたのですが、 動画のフルスクリーンからの復帰の仕方が良くわかりません。 (元の画面にうまく戻せません) フルスクリーンにするときは、こちらを使っています。 layoutRoot.Children.Remove(myMediaElement); this.Content = myMediaElement; this.WindowStyle = WindowStyle.None; this.WindowState = WindowState.Maximized; 戻すときは以下のようにしてみましたが、 this.Content = layoutRoot; layoutRoot.Children.Add(myMediaElement); this.WindowStyle = WindowStyle.SingleBorderWindow; this.WindowState = WindowState.Normal; System.ArgumentException: '新しい親 Visual に関連付ける前に、指定された子と現在の親 Visual との接続を切断する必要があります。' と怒られますw 親子の縁はどのように切ったら良いのでしょうか? よろしくお願いいたします。 : デフォルトの名無しさん (アウアウウー Sad9-weOF) [sage] 2018/01/18(木) 16:39:37.64:qgo/qNlCa 上と下を見比べて対応してないものをまず見ろ それにしてもひどいやり方だ : デフォルトの名無しさん (ブーイモ MMe9-f6Uj) [sage] 2018/01/18(木) 17:04:33.90:vq0hr/63M まずはフルスクラッチだな : デフォルトの名無しさん (ワッチョイ 25b3-hYQh) [] 2018/01/18(木) 19:23:42.55:UDaQCIW60 ぜんぜんわかりまへん。。 : デフォルトの名無しさん (ワッチョイ 239d-pQa0) [] 2018/01/18(木) 19:44:28.00:64hUXuXa0 private void savedata() { string name = "aaa.txt"; system.IO.StreamWriter sw; try { sw = new IO.StreamWriter(name, false, System.Text.Encoding.GetEncoding("shift_jis")); sw.WriteLine("aaaa"); } catch (Exception ex) { MsgBox("Savedata error:" + ex.Message); } finally { sw.Close(); } } Newでエラーした場合にはSw.Closeすると落ちるが、何とかならないものだろうか? : デフォルトの名無しさん (ワッチョイ 4dcc-GP+B) [sage] 2018/01/18(木) 19:49:35.26:pMlUf2sf0 if(sw != null) sw.Close(); じゃダメなのかしらん? : 愛知人 [sage] 2018/01/18(木) 19:54:23.83:9519fNi8 知らんけどusingステートメントでよくね : デフォルトの名無しさん (ワッチョイ 0b9a-1pyd) [sage] 2018/01/18(木) 19:54:45.69:tGyPdxm00 Dispose()とかでもそうするのが基本だと思うが Fileが無い場合やサイズが0とかの対応全く考えてないのも問題だと思う : デフォルトの名無しさん (ワッチョイ 239d-pQa0) [] 2018/01/18(木) 20:15:34.43:64hUXuXa0 あっそうか Nullで検出できたのか。ありがと。Useingってのもあるんだね。 開発モードではエラーしないのに、Setupファイルでインストールすると、書き込み禁止がかかっているような エラーになるんだがなにが原因だろ。 System.UnauthorizedAccessException: パス 'C:\Program Files (x86)\test14\あああああ.ini' へのアクセスが拒否されました。 : デフォルトの名無しさん (ワッチョイ 0b9a-1pyd) [sage] 2018/01/18(木) 20:16:33.01:tGyPdxm00 管理者権限は? : デフォルトの名無しさん (ワッチョイ 5d17-x16F) [sage] 2018/01/18(木) 20:18:58.56:k+CX8kgw0 WindowsフォルダやProgramFilesフォルダに書き込むには管理者権限が必要 : デフォルトの名無しさん (ワッチョイ 25b3-GP+B) [sage] 2018/01/18(木) 20:29:36.57:YPPczFY+0 フォームのデザイナが以下のエラーを吐くのですがどうすればいいですか。 "***.dll"を読み込めません:指定されたモジュールが見つかりません。 (HRESULT からの例外:0x8007007E) プロジェクトは以下の4つです。 MainForm(C#) MainView(C#) (MainFormの中でNewされる。DLLsを利用する。) DLLs(C#) (DLLImportする。) Drawer(C++) (DLLExportする。dllファイルはビルド後に実行ファイルがある場所にコピーされる。) コールスタックでは、MainViewのDLLsを使用しているところでエラーがでており、 それをコメントアウトすると、デザイナが表示されます。 : デフォルトの名無しさん (ワッチョイ 239d-pQa0) [] 2018/01/18(木) 20:50:42.63:64hUXuXa0 >WindowsフォルダやProgramFilesフォルダに書き込むには管理者権限が必要 ありがとう。 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> をいれたら動き出した。しかし立ち上げ時に毎回「この不明なアプリが実行することを許可しますか?」って Windowsの確認画面がでるんだが、なんとかならないのでしょうか? : デフォルトの名無しさん (アウアウエー Sa93-2BHe) [sage] 2018/01/18(木) 21:17:58.11:6vAFeThoa ユーザーコードで対処するのは無理でしょう。 そのためのUACなんだし。 リスク覚悟でUACを無効にするしか Vista出たのも10年前だし、UACが何だか知らない人も多くなってるのかな : デフォルトの名無しさん (ワッチョイ c580-oNRk) [sage] 2018/01/18(木) 22:00:15.46:Zc8v9cFo0 Program filesにインストールするようなアプリで今時.iniとかちょっと… : デフォルトの名無しさん (ワッチョイ 5b7f-XKUo) [sage] 2018/01/18(木) 22:25:20.18:hlxKOq/D0 コードサイニング証明書取得して、プログラムに署名。 : デフォルトの名無しさん (ワッチョイ 25b3-GP+B) [sage] 2018/01/18(木) 22:50:24.38:YPPczFY+0 質問取り下げます : デフォルトの名無しさん (ワッチョイ 239d-pQa0) [] 2018/01/18(木) 23:30:22.02:64hUXuXa0 管理者権限でいつも立ち上げるようにすると確かにアクセスできるようになった。 しかしインストール先 パス を'C:\Program Files (x86)、これをやめれば管理者権限で立ち上げる必要はないのでは? : デフォルトの名無しさん (ワッチョイ 239d-pQa0) [] 2018/01/18(木) 23:33:43.60:64hUXuXa0 >コードサイニング証明書取得して、プログラムに署名。 最高だ。これはいい。 とおもったら金がかかるのか? 残念。 : デフォルトの名無しさん (ワッチョイ 2306-GP+B) [sage] 2018/01/18(木) 23:58:27.78:x+1bimBw0 普通はアプリケーションフォルダにデータを置きます てか、設定ファイルは.iniを使わなくなって10年以上経ちます [C# 設定]で、普通の設定ファイルの使い方調べた方がいい : デフォルトの名無しさん (ワッチョイ 2306-GP+B) [sage] 2018/01/19(金) 00:03:38.34:b8VvEepP0 訂正アプリケーションデータフォルダ(AppDataってやつね) : デフォルトの名無しさん (アウアウエー Sa93-2BHe) [sage] 2018/01/19(金) 00:13:18.76:S8TUMubta 最近流行らないと思うけど、バイナリと同じ場所に設定ファイルを置くのは バイナリ自体をUSBメモリに入れて持ち歩くような特殊な用途ぐらいだよね iniファイルでも悪くないと個人的には思うけど、せっかく便利なシリアライザがいろいろあるのに わざわざ機能的に劣るiniファイルを使う意味はないわなあ 読み書きするコードも自分で書かなきゃならんし : デフォルトの名無しさん (ワッチョイ 239d-pQa0) [] 2018/01/19(金) 00:21:35.85:reZAGsN60 AppDataってVsのSetupプロジェクトでは作ってくれないですね。Apllicationフォルダーに設定用のデータも入れています。 「iniをつかわない」ってのがあまり意味がわかりませんがいま使っているのは単なるテキストファイルです。 (*.iniという名前にしていますが、)StreemWriterで書いています。XMLに落とすのが普通なのでしょうか? しかし単に改行だけのファイルで十分なのでXMLにはしていません。 XMLは設定ファイルとしてはわかり難いですし無駄が多いように思います。 それにエディターで気楽に追加ができないです。 : デフォルトの名無しさん (ワッチョイ 239d-pQa0) [] 2018/01/19(金) 00:26:38.77:reZAGsN60 >niファイルでも悪くないと個人的には思うけど、せっかく便利なシリアライザがいろいろあるのに >わざわざ機能的に劣るiniファイルを使う意味はないわなあ 慣れなんですかね。どうも直観的にわかり難いように思います。だからJsonとかを使う人も多いんではないですか? : 愛知人 [sage] 2018/01/19(金) 00:30:36.53:5Myz+qXq VisualStudioの機能だが : デフォルトの名無しさん (ワッチョイ 239d-pQa0) [] 2018/01/19(金) 00:32:41.68:reZAGsN60 ”設定”, 20, とかをStreemReaderで読みこむと何で ””設定””になるんですかね。ストリングにするためにわざわざ「”」をNULLにReplaceしています。 なんかいい方法はないですかね。 : デフォルトの名無しさん (ワッチョイ fde3-nVvH) [sage] 2018/01/19(金) 00:38:29.54:d7UJaemd0 俺はええと思うな XMLは編集するツールがない プログラマでない人間がぶっ壊したら 自分で直すのは至難の技だ : デフォルトの名無しさん (ワッチョイ 239d-pQa0) [] 2018/01/19(金) 00:45:09.29:reZAGsN60 >VisualStudioの機能だが ・AppDataフォルダ:このフォルダは「C:\Users\ユーザー名\AppData」にあります。ほとんどのプログラムの設定ファイル はここに置かれています(サブフォルダ「Roaming」の中)。プログラム名か開発企業名のフォルダの中に、設定ファイルや 関連データが保存されていますので、フォルダごとバックアップしておきましょう。 こういうもののようですね。だからSetupプロジェクトにはここに入れる設定データのフォルダーがあってしかるべきですがない?みたいですね。 : デフォルトの名無しさん (ワッチョイ 239d-pQa0) [] 2018/01/19(金) 00:46:26.55:reZAGsN60 すいません。ありました。w : 愛知人 [sage] 2018/01/19(金) 00:51:07.58:5Myz+qXq これな ttps://dobon.net/vb/dotnet/programing/mysettings.html : デフォルトの名無しさん (アウアウウー Sad9-weOF) [sage] 2018/01/19(金) 01:25:20.86:LT72Z3Kia バイナリと同じフォルダにiniファイルだと… アプリケーション1つにつき設定が一個しかないのでユーザーが複数いると困る たとえば年賀状ソフトで差出人が全てのユーザーで一つしか設定できない : デフォルトの名無しさん (ワッチョイ 5523-4b13) [sage] 2018/01/19(金) 02:08:01.69:IgZPOGcu0 今時複数ユーザーなんか考慮しなくていいだろ 健全なファミリーがお前の作ったアプリを使うとでも? : デフォルトの名無しさん (ワッチョイ 25b3-Smji) [sage] 2018/01/19(金) 02:36:53.35:fKBFwOmr0 j時代の産物だよなあ >1PC複数ユーザ : デフォルトの名無しさん (ワッチョイ 3deb-v7nw) [] 2018/01/19(金) 05:47:10.29:FgdJ6DNZ0 すまんが、列挙型って関数の引数の型に指定することはできないの? enum A {B, C ,D}; void E(A a){}//ここでエラー これを書く事ができれば、エディタのアシストが効きまくってミスが減る気がするんだけど・・・・・ : デフォルトの名無しさん (ワッチョイ 23d2-aN4H) [sage] 2018/01/19(金) 06:28:55.06:0J18wCJz0 できるはず エラーメッセージはどのようなものですか? : デフォルトの名無しさん (ワッチョイ 5d17-x16F) [sage] 2018/01/19(金) 09:34:28.81:NgQA6vsH0 同名enumが複数あってエラーとなっているに一票 : デフォルトの名無しさん (アウアウウー Sad9-weOF) [sage] 2018/01/19(金) 09:49:45.42:6WrKIIOGa 関数内に書いててpublicメソッドにしてるんだろうな : デフォルトの名無しさん (アウアウウー Sad9-weOF) [sage] 2018/01/19(金) 10:03:10.79:6WrKIIOGa クラス内に書いててpublicメソッドの引数にしてるの間違い それかenumをpublicにしてないか : デフォルトの名無しさん (ワッチョイ 03eb-x16F) [sage] 2018/01/19(金) 15:16:19.49:6h+BHP540 Windows Form のコントロールたちって、ここ10年くらい全くもって変わり映えしてない気がするんだけど もう改善する気がないのかねぇ グレープシティ壊滅させるまでやらずとも テキストボックスの縦位置とか枠線スタイルとか複数列コンボとか、そのくらい対応してくれてもいいと思うんだけど : デフォルトの名無しさん (ワッチョイ 5b7f-XKUo) [sage] 2018/01/19(金) 21:40:19.48:o57JVoz30 UWPに注力してる以上まずやらんだろ。 : デフォルトの名無しさん (アウアウエー Sa93-2BHe) [sage] 2018/01/19(金) 21:52:43.88:AYT1nS2wa XPに対応したVS2005の時代から変わってないのに何をいまさら感w : デフォルトの名無しさん (ワッチョイ 5d17-x16F) [sage] 2018/01/19(金) 22:00:59.10:NgQA6vsH0 Windows 10 Mobile が事実上終了したんだからUWPに注力する必要ないよね : デフォルトの名無しさん (ワッチョイ c580-oNRk) [sage] 2018/01/19(金) 22:02:05.49:4CF5m12I0 Chartがその後で増えたよ いやまあBCLに入っていなかっただけで前からあった奴だけど : デフォルトの名無しさん (ワッチョイ 5b7f-XKUo) [sage] 2018/01/19(金) 22:27:33.99:o57JVoz30 GoogleやAppleのまねしたいみたいだから、あがき続けるんじゃないか。 : デフォルトの名無しさん (ワッチョイ 4d8d-px9Y) [sage] 2018/01/19(金) 23:30:36.57:199CJjI/0 WinFormsって長いこと触ってないが 今でも線引くのにLabel使うとかアホなことしてるの? : 愛知人 [] 2018/01/19(金) 23:45:07.67:5Myz+qXq 線なんか引くか? 無い物は使わなくてよくね? : デフォルトの名無しさん (アウアウウー Sad9-weOF) [sage] 2018/01/19(金) 23:59:59.32:6WrKIIOGa 底辺の人は底辺の環境で不思議なことをしてる 普通の人は普通の環境で普通なことをしてる : デフォルトの名無しさん (アウアウエー Sa93-2BHe) [sage] 2018/01/20(土) 00:13:34.30:2ckAjxI3a ラベルでヘアライン引くのはよくあるしアホでも何でもない : デフォルトの名無しさん (ワッチョイ 0b81-pCZf) [sage] 2018/01/20(土) 00:20:13.00:1eaJngIj0 MSがUWPの宣伝しているのを見る度に ユニバーサルプラットフォームっていうけど お宅の会社ってPC以外のプラットフォーム持ってましたっけ? って煽りたくなる : デフォルトの名無しさん (アウアウエー Sa93-2BHe) [sage] 2018/01/20(土) 00:23:44.04:2ckAjxI3a 実態はともかく構想的にはMS以外ノプラットフォームも対象なんで その批判は当たらないかと : デフォルトの名無しさん (ワッチョイ 0306-GP+B) [sage] 2018/01/20(土) 00:26:56.64:j23dmrcl0 とは言え、ギョーミーなアプリ書く上で、マストなものは粗方揃ったわけだし クライアントがWindows10で揃えられるなら選択肢として悪くない : デフォルトの名無しさん (ワッチョイ 5523-4b13) [sage] 2018/01/20(土) 01:06:06.62:5JusgAfv0 とはいえUWPで作れるアプリならWebで十分なんだよね タッチパネルでの利用を想定しないのであれば、現実的にはあえて選ぶメリットはほとんど無い : デフォルトの名無しさん (ワッチョイ 630f-GP+B) [sage] 2018/01/21(日) 06:37:48.04:eh2o3Efy0 解像度2560×1440のモニタを使っているのですが、Formアプリの解像度が合いません。 原因はサイズを125%に拡大していることで、通常の倍率に戻すとぼやけません。 FormのAutoScaleModeをDpiに設定してみましたが改善されませんでした。 対策をご存知の方がいましたら教えてください。 : デフォルトの名無しさん (ワッチョイ bdd3-GP+B) [sage] 2018/01/21(日) 08:46:46.21:0JbPJogq0 VSの吐くWinformsのテンプレだと自分でdpiAware仕込まなあかんのじゃなかったっけ : デフォルトの名無しさん (ワッチョイ 630f-GP+B) [sage] 2018/01/21(日) 09:07:41.53:eh2o3Efy0 app.manifestを設定したらモニタの解像度に対応できました。 ありがとうございます!! : デフォルトの名無しさん (ワッチョイ 03eb-x16F) [sage] 2018/01/21(日) 09:16:30.01:dyzIneF20 exeを右クリしてプロパティの中の互換設定を弄ると直る : デフォルトの名無しさん (ワッチョイ 630f-GP+B) [sage] 2018/01/21(日) 09:41:48.00:eh2o3Efy0 なるほど、互換の設定でも対応できるのですね。 勉強になります。 : 愛知人 [] 2018/01/21(日) 12:27:01.84:w5iluM1L つまり他のソフトもボヤけてるんだな。 XPExplorerインストールすればいいのに。 : デフォルトの名無しさん (ワッチョイ 630f-Qwpo) [] 2018/01/21(日) 19:16:00.62:eh2o3Efy0 さっそくインストールしました ありがとうございます! : デフォルトの名無しさん (ワッチョイ 630f-Qwpo) [] 2018/01/21(日) 19:17:14.71:eh2o3Efy0 早速インストールしたら好調でした ありがとうございます! : デフォルトの名無しさん (ワッチョイ 630f-Qwpo) [] 2018/01/21(日) 19:18:01.63:eh2o3Efy0 早速インストールしたら好調でした ありがとうございます! : デフォルトの名無しさん (ワッチョイ a3d4-4jNr) [] 2018/01/22(月) 01:46:46.64:B9qWH8zv0 早速インストールしたら好調でした ありがとうございます! : デフォルトの名無しさん (ワッチョイ a3d4-4jNr) [] 2018/01/22(月) 01:47:44.83:B9qWH8zv0 早速インストールしたら好調でした ありがとうございます! : デフォルトの名無しさん (ワッチョイ a3d4-4jNr) [] 2018/01/22(月) 01:48:45.74:B9qWH8zv0 早速インストールしたら好調でした ありがとうございます! : 愛知人 [] 2018/01/22(月) 01:49:30.11:f1RuTEDX うっせーよカス : デフォルトの名無しさん (ワッチョイ a3d4-4jNr) [] 2018/01/22(月) 01:50:19.37:B9qWH8zv0 早速インストールしたら好調でした ありがとうございます! : デフォルトの名無しさん (ワッチョイ a3d4-4jNr) [] 2018/01/22(月) 01:51:06.43:B9qWH8zv0 早速インストールしたら好調でした ありがとうございます! : デフォルトの名無しさん (ワッチョイ a3d4-4jNr) [] 2018/01/22(月) 01:52:13.61:B9qWH8zv0 早速インストールしたら好調でした ありがとうございます! : デフォルトの名無しさん (ワッチョイ fde3-nVvH) [sage] 2018/01/22(月) 07:20:56.54:2aQrNvno0 普通にNGID : デフォルトの名無しさん (ワッチョイ 5bd6-pQa0) [] 2018/01/22(月) 15:17:28.34:rsQqa0Zv0 public static SqlConnection connect = new SqlConnection("接続文字列"); public static SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Table", connect); public static DataTable dt = new DataTable(); private void Form_Load(object sender, EventArgs e) { sda.Fill(dt); DataGridView1.DataSource = dt; } private void button_publish_Click(object sender, EventArgs e) { connect.Open(); 〜Tablesへの改変処理 connect.Close(); dt = new DataTable(); sda.Fill(dt);//★ } Table内容をSqlDataAdapterを使い、データテーブルに入れ込んで、DataGridViewに表示させた後、 Table内容を変更後、再びDataGridViewに表示させるとき、例外がスローされます。 ★の部分で、「System.InvalidOperationException: 'ConnectionString プロパティは初期化されていません。'」が出ます。 最新のデータを同じDataGridViewで見るには、どのようにすればよいのでしょうか? : デフォルトの名無しさん (ワッチョイ 5d17-x16F) [sage] 2018/01/22(月) 15:55:14.43:O29q6QQC0 >connect.Close(); 接続切ったらそりゃエラーになるでしょ : 633 (ワッチョイ 5bd6-pQa0) [] 2018/01/22(月) 16:09:10.00:rsQqa0Zv0 connect.Open();//★ sda.Fill(dt); connect.Close(); としたら、★マークのところで、またエラーが出ました。 : デフォルトの名無しさん (ワッチョイ 0306-GP+B) [sage] 2018/01/22(月) 16:33:20.49:R+95xE7/0 まずコネクション以下全てのオブジェクトはクローズしたら再度newしないと使えません よってスタティックじゃなくて普通のインスタンスとして管理 使う度にnewで新たに作ります : 633 (ワッチョイ 5bd6-pQa0) [] 2018/01/22(月) 16:46:28.18:rsQqa0Zv0 そうだったんですね、使いまわせると思ってました・・・ : 633 (ワッチョイ 5bd6-pQa0) [sage] 2018/01/22(月) 17:15:57.30:rsQqa0Zv0 インスタンス内で、宣言したら、うまくいくようになりました。 ありがとうございます。 : デフォルトの名無しさん (ワッチョイ 239d-pQa0) [] 2018/01/23(火) 08:14:55.18:y6LiRRs70 デバッグで完全に動作するのにインストールして動かすと、途中で落ちる。多分データベースのアクセスではないかなと 思っているんだが、インストールした実行プログラムのデバッグをやろうとしているんだがどうやるのか不明。 VS2013の「デバッグ」から「インストールされているアプリケーションパッケージのデバッグ」に入ってもリストに何もでてこない。 なにか設定があるのだろうと思うが、どこを設定すればいい? アタッチするまでが分からない。 : デフォルトの名無しさん (スッップ Sd43-pJai) [sage] 2018/01/23(火) 08:58:36.28:Un6nXOVAd どうやってインストールしたん? 結局Console.WriteLine()をあちこちに埋め込むのが早かったりする : デフォルトの名無しさん (ワッチョイ 5b7f-XKUo) [sage] 2018/01/23(火) 09:29:37.11:2MiHwZpp0 ConsoleよりTraceの方が使い勝手良いぞ。 Trace.WriteLine()とかの情報をDebugViewで時間情報付きで見れる。 フィルターやハイライトとかもかけられる。 : デフォルトの名無しさん (ワッチョイ fde3-nVvH) [sage] 2018/01/23(火) 09:36:15.82:XJEe+tMu0 CallerMemberNameAttribute class : デフォルトの名無しさん (ワッチョイ fde3-nVvH) [sage] 2018/01/23(火) 09:37:24.58:XJEe+tMu0 っていうか リリース版でデバッグしたいって聞いてるんでしょ? : デフォルトの名無しさん (ワッチョイ 5b7f-XKUo) [sage] 2018/01/23(火) 09:50:04.23:2MiHwZpp0 Trace出力でのデバッグはリリース版でやることが多いぞ。 ビュワー立ち上げなければ、ユーザーからは見えないし。 : デフォルトの名無しさん (ワッチョイ bdb8-1VRr) [sage] 2018/01/23(火) 09:59:10.73:iDuW9Lrl0 mono入れたLinuxでmscでコンパイルした実行ファイルを WindowsにもってこようとするとMicrosoft Defenderでトロイ扱いされてブロックされます 同じコードをWindowsでcscでコンパイルした場合は問題ありません WindowsでコンパイルしたものはmonoでLinuxでもちゃんと実行できます なんでmscでコンパイルしたものがトロイ扱いされるんでしょう? : 愛知人 [] 2018/01/23(火) 11:14:45.36:ZHqgRH1x どうやって受け渡してる? zipで渡したらどうなる? : デフォルトの名無しさん (ワッチョイ bdb8-1VRr) [sage] 2018/01/23(火) 11:48:58.28:iDuW9Lrl0 scp(ssh)とhttp経由でダウンロードしましたがだめで その後拡張子を変えたりしましたがだめでした アーカイブは試しませんでしたが ダウンロードできても解凍するところでアウトと思われます 軽いプログラムだったのでbase64エンコードした文字列を Windows側でデコードして出力しようとしたのですが ファイルに出力した時点でウイルス判定され隔離されました : デフォルトの名無しさん (ワッチョイ 3d9e-WQmd) [sage] 2018/01/23(火) 12:35:41.92:IdUgpQhE0 C#アプリからCTRL+V以外のホットキーでSendMessageでWM_PASTEを送っても ペーストできるアプリとできないアプリがあるのですが ペーストできない原因とどうすればペーストできるのか 分かる方がおられましたらお教えいただけないでしょうか 自作C#アプリ ○ FireFox ○ ThunderBird ○ IE11 ○ Mery ○ 秀丸ファイラ ○ MDIE ○ 等 V2C × Chrome × Vivaldi × Everything × 等 : デフォルトの名無しさん (アウアウエー Sa93-2BHe) [sage] 2018/01/23(火) 12:43:02.47:+k2ngROKa いやいや、原因は普通に当該アプリがWM_PASTEを処理しないからでしょうw 泥臭いけど素直にSendKeysを使ったらよいのでは? : デフォルトの名無しさん (アウアウカー Sa21-zP08) [] 2018/01/23(火) 12:43:45.53:w7MKK31Na シリアル通信のプログラムで問い合わせ付のコマンドを送信する場合に、送信結果(bool)とレスポンス結果(string)を取得したいのですが、返り値boolでレスポンス結果をoutで返すといった感じにすればいいでしょうか : デフォルトの名無しさん (ブーイモ MM99-4b13) [sage] 2018/01/23(火) 12:44:53.41:S3NIjRwTM WM_PASTEじゃなくて直接キーをハンドリングしてるんだろ 最近のメジャーなアプリは開発者がMacをメインで使ってるケースが多かったりして、 ファッキンドザのために必要以上の特殊な対応はしないというスタンスのものが増えてるよ : デフォルトの名無しさん (ワッチョイ c5c9-GP+B) [sage] 2018/01/23(火) 12:50:10.67:X0br0i8Q0 ValueTuple : デフォルトの名無しさん (ブーイモ MMe9-VZYS) [] 2018/01/23(火) 13:01:37.24:P/8oxsShM 送信結果は例外で : デフォルトの名無しさん (アウアウエー Sa93-2BHe) [sage] 2018/01/23(火) 13:31:40.71:+k2ngROKa 成否だけ分かればいいなら、失敗した時はnullを返せば十分じゃない? enum Acknowledgement {ACK,, NAK, NoResply, Offline}; みたいなのを返したいなら、 Class Response { public string Received{get; private set;} public Acknowledgement Acknowledgement{get; private set;} } みたいなのを返すとか : デフォルトの名無しさん (ワッチョイ 5dd2-k4Q3) [sage] 2018/01/23(火) 14:27:23.36:jwCBe9IF0 メインメニューにコピーの項目ないなら 直接ペーストするウインドウに送らんと : デフォルトの名無しさん (アウアウカー Sa21-zP08) [] 2018/01/23(火) 21:20:31.90:doIreqsya ありがとうございます 試してみます : デフォルトの名無しさん (ワッチョイ 25b3-pQa0) [] 2018/01/24(水) 22:02:38.70:pOW1jrho0 classをforeachで回したいのですがGetEnumeratorの書き方はこういう形が一般的なのでしょうか? プロパティが増える度にGetEnumeratorのyield return追加しないといけないですが うっかり追加し忘れてバグの元になるから別の書き方があるのかも?と少し気になったので ttps://ideone.com/etKQWk : デフォルトの名無しさん (ブーイモ MMab-4b13) [sage] 2018/01/24(水) 22:13:23.39:N2tfbGLJM 普通はそんなことはしない まともな作り方をしていれば、次元の異なるものを列挙することはない : デフォルトの名無しさん (ワッチョイ c581-x16F) [sage] 2018/01/24(水) 22:16:06.84:BwYqU5Fv0 リフレクション使う ttps://qiita.com/dolls/items/c7b3cf2520baae158a3a : デフォルトの名無しさん (ワッチョイ 25b3-zWLY) [sage] 2018/01/24(水) 22:21:49.07:pOW1jrho0 すっごい単純なものだと int id string name みたいなものでクラス保持してて、そこに他にも付属品が付いてるイメージです たまにforeach使えないと不便な時があるのでその為に継承させてるのですが DBから読み出したデータをそのままforeachで出力させたいって時とかに使います わざわざ全部の項目を関数で読み出して表示ってのも大変な時があるので : デフォルトの名無しさん (ワッチョイ 25b3-zWLY) [sage] 2018/01/24(水) 22:38:24.91:pOW1jrho0 Typeの使い方色々調べましたけど、指定方法がイマイチわからなかったのでもうちょい調べておきます : デフォルトの名無しさん (アウアウエー Sa93-2BHe) [sage] 2018/01/24(水) 22:51:55.14:V1Cqs6+da 質問してるんだから人の言うこと素直に聞いた方がいいと思うよw 少なくともは正しい。 一般的なのでしょうか? 一般的どころかそんなこと誰もしないよw どうやったらそんなアホなことをせずに目的の仕様を実激できるかを考えた方がいい : デフォルトの名無しさん (ワッチョイ 25b3-zWLY) [sage] 2018/01/24(水) 23:04:36.97:pOW1jrho0 すいません、目的の事をしたいのにそうではないと提示してもらったのはありがたいのですが 他の実現方法が分からなかったのでとりあえず現状何をしてるかを更に明確に伝えた方がいいと思ったで その回答がただ否定してるだけに見えたのなら少し発言が悪かったでしょうか? で更に回答いただけたのでTypeの使い方を調べています とりあえず動くものだけで暫定で動かしておいて、使い方を理解したら置きかえて行く予定です 個人的に作ってるものなのでとりあえずは手の届く範囲で扱えるので : デフォルトの名無しさん (ワッチョイ 23d2-aN4H) [sage] 2018/01/24(水) 23:07:14.93:E4B4d2jG0 やりたいことはこんな感じかな? ttps://ideone.com/EfpdAq : デフォルトの名無しさん (ワッチョイ 25b3-zWLY) [sage] 2018/01/24(水) 23:23:34.07:pOW1jrho0 ビルドして動作確認しました この通りの動きです、ありがとうございます Linqの渡してるところ調べながら読み直して何してるか理解します : デフォルトの名無しさん (オッペケ Srab-jHVE) [sage] 2018/01/25(木) 12:22:13.44:bvB9i9l+r 質問されてるんだから屁理屈いってないで素直に答えろよw低能らしいなw : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 12:32:11.99:867zoX3ca こうしてまた一人変態プログラマーが世に放たれた : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 14:20:59.96:uboI0CmN0 { //描画先とするImageオブジェクトを作成する Bitmap canvas = new Bitmap(PictureBox1.Width, PictureBox1.Height); //ImageオブジェクトのGraphicsオブジェクトを作成する Graphics g = Graphics.FromImage(canvas); //画像ファイルを読み込んで、Imageオブジェクトとして取得する Image img = Image.FromFile(@"C:\test\1.bmp"); //画像のサイズを2倍にしてcanvasに描画する g.DrawImage(img, 0, 0, img.Width * 2, img.Height * 2); //Imageオブジェクトのリソースを解放する img.Dispose(); //Graphicsオブジェクトのリソースを解放する g.Dispose(); //PictureBox1に表示する PictureBox1.Image = canvas; } g,imgはNEWしてないのに何でdispose()する必要があるの? : デフォルトの名無しさん (アウアウエー Saf2-BM8y) [sage] 2018/01/25(木) 15:01:28.26:rd0qfL0Fa Graphics.FromImageもImage.FromFileも直接コンストラクタ呼んでないだけのこと。 中で非公開のコンストラクタが呼ばれてインスタンスが作られてることに変わりないじゃん お片付けしていいタイミングが分かるのは作った人だけ。 だから作った人がお片付けする責任を負うのが合理的 : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 15:12:28.67:uboI0CmN0 そういうことなの。 Graphics g = Graphics.FromImage(canvas); こいつが内部のコンストラクタでNewしてるかどうかなんてどうしたらわかるの? 分からんよな。 マニュアルをみると確かにこいつだけ「Creates a new Graphics from the specified Image.」と なってるな。わかり難く紛れ込んでるんだね。 しかも g.dispose() PictureBox1.Image = canvas; と御片付けした後に表示するとはまた不思議な気がする。なんで片づけてから表示するん? どのみちNEWしたCanvasはDisposeしないといけないでしょ。それならそのときに自動的に全部Dispose()する とかできないのか? : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 15:29:46.72:uboI0CmN0 これはGraphicsクラスの説明にあるMSのサンプルだけどImageもulCornerもDispose()していないのは何故。 private void DrawImagePointF(PaintEventArgs e) { // Create image. Image newImage = Image.FromFile("SampImag.jpg"); // Create point for upper-left corner of image. PointF ulCorner = new PointF(100.0F, 100.0F); // Draw image to screen. e.Graphics.DrawImage(newImage, ulCorner); } : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 15:31:19.68:867zoX3ca 別に使い終わってもリソース気にしないなら放置でいいよ 実害は普通の使い方してる限りでない 一個二個リソースが握られただけでは問題ないけど 数千数万とかレベルだと問題がでる でもわざわざ勘定したり場合わけしながらコード書いているのか? だったら正しいコードを書こう newしてるかどうかわからなくても使ってることはわかるだろ? いつかは自動で解放されるけどタイミングが不明 コード書いてる途中にg,imagを使い終わったと判断できるのは自分だけだから 片づけた後に使うのは当たり前だな 基本的にgなどはつかみっぱなしが良くないので短い範囲で手放してるだけ : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 15:35:45.15:867zoX3ca これは基本的にwindowsのGDIという仕組みに乗ってるだけなので 他でも使ってる c#に文句を言うのは筋違い でもc++スレに行くのも筋違い 30年近くさかのぼってMSの設計者に文句を言ってくればいい どうしても嫌ならwindowsの仕組みに乗ってないものを使えばいい : デフォルトの名無しさん (ワッチョイ 27e3-5dAg) [sage] 2018/01/25(木) 15:46:40.99:y1oROuxV0 こういう自分とこでインスタンス作成しといて始末しない設計ってクソだね って話で終わりだな : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 15:56:14.66:867zoX3ca もう少し説明 >と御片付けした後に表示するとはまた不思議な気がする。なんで片づけてから表示するん? 仮にgをファイル操作に置き換えたとしよう ファイル開く ファイル読み書き処理 ファイル閉じる 表示 これを 表示 ファイル閉じる にした場合、表示がもし5年かかった場合、ファイルは意味もなく5年間開かれっぱなしで他から操作できない : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 15:59:37.81:867zoX3ca さらに言えば自動でファイルを閉じる仕組みを作ったにせよ 表示が終わるまで5年間ファイルは閉じられる機会がない これでもすべて自動でやれという意見は変わらないかな? : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 16:00:10.16:uboI0CmN0 そういう話ではなくて意味が解らないという話だね。 例えばこれは何故当たり前なのかが不明。 >片づけた後に使うのは当たり前だな >基本的にgなどはつかみっぱなしが良くないので短い範囲で手放してるだけ 折角グラフィック表示するためにgを作ったのに、表示する前に解放するというのが意味不明だ。 Msのサンプルコードではまさにこのgに対してDRAWしている。これで表示が機能しているのに この例では、PictureにCanvasを代入して表示が完了することになっている。表示する前にg をdisposeしているから、gの役割が二つの例で意味が不明だ。 : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 16:04:31.21:867zoX3ca gは数が限られている 鉛筆みたいなもの 鉛筆が5本あってみなで共有している 使い終わったらすぐ放棄しないと絵が描けない人がでて困る 必要なくなったのに5年鉛筆を持ちっぱなしが望ましい状態だろうか? : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 16:08:15.76:867zoX3ca 鉛筆5本をそれぞれが持ちっぱなしで 6個目のアプリが起動したらどうなるか? 鉛筆がないのでまともに動かない : デフォルトの名無しさん (ワッチョイ 2706-bSkF) [sage] 2018/01/25(木) 16:14:06.03:rPbpnmYW0 一つ勘違いがあるけど、newやコンストラクタとDispose()は直接関係ないよ C#にdeleteは無いし、それに相当するものでもないので、インスタンスを解放する訳じゃない Dispose()は主にガベージコレクション管理外となるアンマネージリソース等を解放するためのメソッド そしてGraphicsはBitmapというキャンバスを弄るために用意したに過ぎない、表示するのはBitmapの中身 モノによってはDispose()すると内部バッファとかの書き出しとかもやるし、using等も使いつつ明示的にやりましょう ちゃんとしたIDispose実装クラスならデストラクタ(ファイナライザ)でもDispose()を呼び出すコードが入ってるけど タイミングがガベコレ次第になるし高コストなので明示的に呼ばれるとファイナライズキューから外すように設計されてる : デフォルトの名無しさん (アウアウエー Saf2-BM8y) [sage] 2018/01/25(木) 16:20:19.01:rd0qfL0Fa だから、「Disposeする必要があるのは自分がnewしたもの」という勝手な思い込みが間違ってる。 Disposeは作成したオブジェクトが必要なくなった時に呼ぶ。 オブジェクトを作成する方法はコンストラクタ呼び出しだけじゃない。 MSDNの説明にある通り、Graphics.FromImageもImage.FromFileも新しく作成されたオブジェクトを 返す。使いまわしされる共有オブジェクトを返すわけじゃない。 > どのみちNEWしたCanvasはDisposeしないといけないでしょ。それならそのときに自動的に全部Dispose()する > とかできないのか? usingステートメントを使う ttps://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-statement : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 16:22:44.43:867zoX3ca C#でたころにGDIの限界までオブジェクト作ったことがあったな 画面がおかしくなって黒いところがあちこちにできる リソースがないと怒られる それともc++だったかないずれにせよ20年ぐらい前かな : デフォルトの名無しさん (アウアウエー Saf2-BM8y) [sage] 2018/01/25(木) 16:22:53.90:rd0qfL0Fa あら、更新してない間にえらいレス増えてたw : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 16:27:14.19:uboI0CmN0 要するに Canvas(これはBItmapと同じ?) Image (これは、Bitmap以外にも多種多様な表示を扱う?) Graphics (これは描画するための、関数群のようなもの?) の違いが不明ってことかな。 上の例(DOBON)では Picture.Image=Canvas これでImageにビットマップを代入して描画が完了することになっている。 g.DrawImage(img, 0, 0, img.Width * 2, img.Height * 2); ここでgを使ってimgに描画したのでもうgはいらない。だからgはdisposeした。 ならわかるが、ここでimgをDsiposeするからわけがわからない。 : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 16:34:42.10:uboI0CmN0 あっ、コメントにちゃんと書いてあった。 //画像のサイズを2倍にしてcanvasに描画する g.DrawImage(img, 0, 0, img.Width * 2, img.Height * 2); ここですでにCanvasに書いているんだな。 : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 16:37:20.54:867zoX3ca はい 解決したね良かったね 写真(img)を見て画用紙(canvs)に鉛筆(g)で絵を描いた 終わったので写真と鉛筆を片付けた 画用紙を額(picturebox1)に入れて飾りました : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 16:43:44.03:uboI0CmN0 DOBONの例の機序 PictureBox1のサイズで空のBITMAPを作成する。 そのビットマップから描画オブジェクトのGraphics gを作成する。 ファイルからBitmapのImageを作成する。 gでそのImageをBITMAPに描画する。(BITMAPに描画したのでg、imgはいらない) 描画したBITMAPをPictureBOxにコピーする。 こういうことか。わかった。お騒がせしました。ペコリ : デフォルトの名無しさん (ワッチョイ 27e3-5dAg) [sage] 2018/01/25(木) 16:46:23.63:y1oROuxV0 やっぱりuingとか言ってた奴はガイジだっただろ? : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 16:47:36.29:uboI0CmN0 >gは数が限られている それはおかしい。そんなことはどこにも書いてない。 もしそうだとしたら Graphics g = Graphics.FromImage(canvas); このコードが間違いってことになる。ここで数量をチェックしないといけない。 : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 16:48:50.78:867zoX3ca ガイジって言葉を使う奴のほうがどうかしてると思いますよ : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 16:52:18.84:uboI0CmN0 >C#でたころにGDIの限界までオブジェクト作ったことがあったな >画面がおかしくなって黒いところがあちこちにできる 。リソースがないと怒られる これはどういう意味? メモリーの限界ではなくて、GDI(ハードウエア)がもつレジスタの限界ってこと? Graphicsって要するにGDIのリソースを確保するという意味なの? : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 16:53:13.35:867zoX3ca ググればいいよ思うよ ここはチャットじゃない : デフォルトの名無しさん (ワッチョイ 27e3-5dAg) [sage] 2018/01/25(木) 16:56:18.20:y1oROuxV0 ユーザフレンドリーと見せかけてウンコの代表みたいなクラスなので 真面目に考えないほうがいい 結局仕組みを理解するにはwin32の描画文化から知る必要がある : デフォルトの名無しさん (アウアウエー Saf2-BM8y) [sage] 2018/01/25(木) 16:56:28.77:rd0qfL0Fa しょうもないことに突っかかるなあw 数が限られてるって言い方が気に入らないなら高価な共有リソースって言えば分かる? 例えば巨大な配列とか、通信ポートとか、 そういった類のものを「一人」がずっと占有したら他の人が使いたい時に使えないよね? : デフォルトの名無しさん (ワッチョイ 27e3-5dAg) [sage] 2018/01/25(木) 16:57:30.81:y1oROuxV0 そんなくだらない例え話じゃなくてちゃんと現象を説明してあげればいいじゃない : デフォルトの名無しさん (ワッチョイ 2706-bSkF) [sage] 2018/01/25(木) 17:00:16.17:rPbpnmYW0 GDIはハードウェアっつーより…Windowsでの実装が気になるならReference Sourceでも読んで メソッド内部では色々チェック入ってるし、しくじったら例外ぶん投げるようになってるから : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 17:14:44.08:uboI0CmN0 例外ね。それならわかる。 : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 17:19:27.46:uboI0CmN0 MSの説明はたったのこれだけw ■Graphics クラス Encapsulates a GDI+ drawing surface. This class cannot be inherited. GDI+って要するに、グラフィックコントローラを使うってことでしょ。でも鉛筆5本ってほどしょぼいことはないだろ。 : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 17:20:48.94:867zoX3ca まだググってないのかよ… : デフォルトの名無しさん (ワッチョイ 8783-fPTX) [sage] 2018/01/25(木) 18:18:42.61:bbltRTAq0 結局リソースリリースタイミングを制御しないといけなくなるわけで、ほんとGCって糞だよな。 : デフォルトの名無しさん (ワッチョイ 8783-fPTX) [sage] 2018/01/25(木) 18:20:51.02:bbltRTAq0 最近のMSのドキュメントはほんと不親切だよな。 幸運なことGDI+は不親切になる前に開発されたものだから、ググればMSも含めて大量にドキュメントが残ってる。 : デフォルトの名無しさん (スッップ Sdda-urNB) [sage] 2018/01/25(木) 18:22:45.01:lTsrogoKd 論理的に : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 19:02:27.22:uboI0CmN0 ググってみた。 Application.SetCompatibleTextRenderingDefault(false); というのが設定されるようになっていて、GDI+は糞だからGDIを使いなさいってことらしい。w : デフォルトの名無しさん (ワッチョイ ae9a-fRM1) [sage] 2018/01/25(木) 19:09:48.12:MFAun2Gg0 文字列の描画の話だけ持ってきて何がしたい ttps://dobon.net/vb/dotnet/control/setcompatibletextrenderingdefault.html 質問じゃないのならチラシの裏にでも書いてくれ : デフォルトの名無しさん (ワッチョイ 8783-fPTX) [sage] 2018/01/25(木) 19:23:49.81:bbltRTAq0 よく鉛筆5本とか言うけど、Win16ではDCは同時に使用できるのは5つまでだった。 だからDC取得したらその関数内ですぐ開放するのが当たり前だった。 : デフォルトの名無しさん (ワッチョイ 27e3-5dAg) [sage] 2018/01/25(木) 20:28:49.03:y1oROuxV0 c#の{ }って中身が1文の場合、省略できるものとできないものってどうやって決まってるんでしょうか? namespace、class、 for、switch、while、try、checked、fixed、unsafeなど : デフォルトの名無しさん (ワッチョイ e39d-1ipv) [] 2018/01/25(木) 20:53:14.29:uboI0CmN0 省略しないこと。それが賢いプログラムスタイル。 : デフォルトの名無しさん (アウアウエー Saf2-BM8y) [sage] 2018/01/25(木) 21:11:21.97:LWlSA0E2a 知らんけどこの辺? ttps://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/statements#embedded-statements : 愛知人 [] 2018/01/25(木) 22:57:58.27 PictureBoxのMouseMoveイベントハンドラ内にInvalidate()を入れるとTimerのTickが止まります。何故ですか? ttps://ideone.com/fWNMPP : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/25(木) 22:59:36.29:867zoX3ca コード見てないけど そんな暴れん坊見たいことはしないほうがいいと思う : 愛知人 [] 2018/01/25(木) 23:02:00.73 マウスの位置をフィールドに入れて間隔の短いタイマーで描画しますか? : デフォルトの名無しさん (ワッチョイ 0b9e-ss0X) [] 2018/01/26(金) 01:44:30.98:TUeBIint0 すみません質問です。 C#でエクセルを複数起動させるプログラムを書いているのですが、解決できない問題があります。 例えば既にa.xlsxが開かれていて、追加で3つのエクセルファイル(b.xlsx, c.xlsx, d.xltm)を立ち上げるとします。 その場合、process.start("excel", "b.xlsx c.xlsx d.xltm"); とすると、a~dまでが一つのプロセスにまとまるのはいいのですが、テンプレートが編集モードで開いてしまいます。 仕方ないので、 process.start("excel", "b.xlsx c.xlsx"); process.start("d.xltm"); とテンプレートだけ"excel"を抜いて起動すると、ちゃんとテンプレートは新規ファイルで開かれますが、プロセスが3つに分かれてしまいます・・[a.xlsx], [b.xlsx, c.xlsx], [d1] (何故かa.xlsxまで孤立しちゃうんですよね・・・) 色々試したところ、 process.start("excel", "b.xlsx c.xlsx");を実行して一度処理を終了させた後(この時点ではa~cが一つのプロセスになっている)、 また起動し直しでprocess.start("d.xltm");を単独実行させると、a~cと同じプロセスにdが加わってくれました。 であれば、全部起動完了待ちすればうまくいくか?と思って、 Process p = new Process(); p.StartInfo.FileName = "excel"; p.StartInfo.Arguments = "b.xlsx c.xlsx"; p.Start(); p.WaitForInputIdle(); p.StartInfo.FileName = "d.xltm"; p.Start(); と、インスタンスを作ってからp.WaitForInputIdle();を加えたうえで実行させると、 プロセスは3つじゃなく今度は2つにまとまりましたが、一つになってくれませんでした・・。 [a.xlsx, b.xlsx, c.xlsx], [d1] という具合で、何れにせよテンプレートだけプロセスが分かれちゃいます。 色々試しましたが、テンプレートファイル含む複数のエクセルファイルを、テンプレートファイルは新規ファイルとして開きつつ、全て一つのプロセスとして起動させる方法が分かりませんでした・・ 方法があれば教えてくださいお願いいたします(m_m) : 712 (ワッチョイ 0b9e-ss0X) [] 2018/01/26(金) 02:02:53.98:TUeBIint0 712です。 p.WaitForInputIdle(); の後に、System.Threading.Thread.Sleep(1000); を強引に追加したら上手くいきました・・。 (うまくいったというのはつまり、 a.xlsxだけが最初に開いてあって、 b.xlsx, c.xlsx, d.xltmをC#で開いた時、a~dまで一つのプロセスにまとまり、 d.xltmも新規ファイルで開いてくれたという事です) でもこれ、絶対正規の解決方法じゃないですよね? きっともっといい方法ありますよね?・・ ご教授下さい。お願いいたします。 : 愛知人 [] 2018/01/26(金) 02:18:07.66 長すぎて目が回る : デフォルトの名無しさん (アウアウエー Saf2-BM8y) [sage] 2018/01/26(金) 02:55:01.83:o5aK9JZ1a コマンドラインオプションで"/t"でも指定してみるとか 知らんけど ttps://support.office.com/ja-jp/article/Microsoft-Office-%E8%A3%BD%E5%93%81%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89-%E3%83%A9%E3%82%A4%E3%83%B3-%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81-079164cd-4ef5-4178-b235-441737deb3a6#ID0EAABAAA=Excel オートメーションでやった方がいいんじゃないの? : デフォルトの名無しさん (ワッチョイ 8781-6Oft) [sage] 2018/01/26(金) 05:52:15.43:YXUTlXJp0 システムハングアウトなめんな。 スリープは大事。 : 712 (ワッチョイ 0b9e-ss0X) [] 2018/01/26(金) 12:19:07.12:TUeBIint0 オートメーションってつまり、コムオブジェクト使うって事ですかね? ちょっと調べてみます。 スリープも効果的に使えば立派なコードですかね! ミリ秒時間の調整行って、確実に上手くいく範囲で秒数縮めてみようかと思います。 もっといい方法見つかればそれで実装しますが、それまでスリープで対応しようかと思います。 有難うございました。 : デフォルトの名無しさん (ワッチョイ 56d6-1ipv) [sage] 2018/01/26(金) 17:21:24.22:YG13MR3r0 Form1のデータから、Form2を呼び起こして、 Form2のPrintDocument1_PrintPageを印刷しています。 Form2を閉じて、2回目にForm1から別のデータを印刷すると、 DrawStringで印刷したデータが重複してしまいます。 PrintDocument1_PrintPageを初期化するような方法はないでしょうか? : デフォルトの名無しさん (ワッチョイ da60-1ipv) [sage] 2018/01/26(金) 17:29:15.32:SCIRVI+W0 getcommandlineargs()で引数を渡すと スペースとダブルクォーテーションが消えてしまいますがどうすればいいですか? 大文字にしても消えます : 愛知人!id:ignore (ワッチョイ b375-5Mtj) [] 2018/01/26(金) 17:36:10.53:56XeCPud0 意味不明 : 愛知人 [] 2018/01/26(金) 17:41:29.04 ダブルクォーテーションは""に置き換える スペースの入った文はダブルクォーテーションで囲む : デフォルトの名無しさん (ワッチョイ da60-1ipv) [] 2018/01/26(金) 18:01:50.81:SCIRVI+W0 すいませんかんちがいしました : デフォルトの名無しさん (ワッチョイ 27e3-5dAg) [sage] 2018/01/26(金) 18:48:32.92:AIK2YVo40 ありがとう 自分でやってみた結果 埋め込みステートメントができるのは do,if,else,fixed,for,foreach,lock,using,while だった : 愛知人 [] 2018/01/27(土) 13:34:52.88 pictureBoxに線を引いたり色々描画した後に指定位置のピクセルの値を取得する方法はありますか? CopyFromScreen?を使うしかないですか? : 愛知人 [] 2018/01/27(土) 13:48:07.76 は取り消し : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 00:10:09.85:fNHvxuhr0 (12345).ToString("D8") = "00012345" だけど、” 12345"にする方法はないのか? : デフォルトの名無しさん (ワッチョイ 8bc9-rgA5) [sage] 2018/01/28(日) 00:27:28.05:89noKjbb0 0を半角スペースにしたいならPadLeft(桁数)でいいんじゃね : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 08:12:58.16:fNHvxuhr0 なるほど " 123" " 123.0" " 123.00" ~ みたいなのをformat登録しておいて一括処理したいんだが,,,, PadLeftをつかうには、独自フォーマットを作って解析して分解するひつようがあるな。 "8,D","12,F1","10,F2","10,F3","8,D" これをSplitで分解して桁と表示にわけるとできる。みんなこんなことをやってるんだろうか? : デフォルトの名無しさん (ワッチョイ 5323-jjF6) [sage] 2018/01/28(日) 09:10:44.54:KQzDOLbA0 設計ミスだな 出力の幅なんて最終的な出力の段階で自ずと決まるもんだろ 普通そんなもん必要ない : デフォルトの名無しさん (ワッチョイ ae81-85sb) [sage] 2018/01/28(日) 10:28:13.08:6EjFtDvJ0 文字列は空白埋めできたような Formatを2回する あるいはカスタムフォーマッタを作成 : デフォルトの名無しさん (ワッチョイ 8b80-wOSG) [sage] 2018/01/28(日) 11:07:52.48:DjJaMqeu0 String.Format("{0,8:d}", 12345); : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 12:35:12.10:fNHvxuhr0 >設計ミスだな ToStringとString.Formatでいちいち仕様を変えるなんざ設計ミスもいいとこだ。 : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/28(日) 12:45:46.83:Tf1PDahga 別物を同じように思う脳がおかしい : デフォルトの名無しさん (ワッチョイ 9e9f-L16n) [sage] 2018/01/28(日) 13:15:50.33:ExF5GMWy0 $"{12345,8} 6.0になってからString.Formatを使わなくなったな : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 13:38:54.52:fNHvxuhr0 残念。VS2013ではそのスタイルは動かんな。 : デフォルトの名無しさん (ブーイモ MM97-jjF6) [sage] 2018/01/28(日) 13:44:27.34:AvNbdCpkM 最新のVSって毎週バージョンが上がってて、アップデートしたら突然ビルドが通らなくなったりとか時々あるんだよね 自社開発でパパっと対応できる体制の開発が前提になってて、もうジャパニーズドカタには手を出せない代物 : デフォルトの名無しさん (アウアウエー Saf2-BM8y) [sage] 2018/01/28(日) 13:50:09.26:FrmPXjIGa 質問者が何言ってるのか俺にはさっぱりわからんけどみんなよく分かるなw : デフォルトの名無しさん (ワッチョイ 8781-6Oft) [sage] 2018/01/28(日) 13:51:15.96:N5xGT/cM0 HAP使ってますか? : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/28(日) 13:51:41.80:Tf1PDahga 俺も正しい意味はわからないけど憶測で判断してる 文章も書けないくらい幼稚だけど偉そうなレスしてるとだけわかる : デフォルトの名無しさん (ワッチョイ b703-jHVE) [sage] 2018/01/28(日) 13:54:41.80:8+IXgyMg0 お前もやろがw : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/28(日) 13:56:13.99:Tf1PDahga これが特に意味不明だけど考えてわかるレベル これが偉そう : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 14:11:02.89:fNHvxuhr0 List<string> a = new List<string> { "x3" , "x4" , "x5" , "x6" , "x7" , "x8" , }; foreach (string el in a) { combox1.Items.Add(el); } combox1の初期化ってこんな方法しかないのか? 直接は初期化できんのか? : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 14:12:38.19:fNHvxuhr0 ちゃうちゃう、$” { valuえ} ”の記述はVs2017しかサポートしとらん。 : デフォルトの名無しさん (ワッチョイ 567f-YJhG) [sage] 2018/01/28(日) 14:15:41.42:Jve/QRxt0 AddRange()使えば : デフォルトの名無しさん (ワッチョイ ae9a-fRM1) [sage] 2018/01/28(日) 14:15:49.45:EAfEAz/a0 デザイナのコード見ろよ。あれが基本だ : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/28(日) 14:16:07.45:Tf1PDahga 配列でAddRange初期化出来なかった? : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 14:43:45.42:fNHvxuhr0 Addrange でできた。サンクス。 : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 15:01:38.15:fNHvxuhr0 int w = (int)((double)pic.Width / (double)(1 + x ) / 1.3); doubleとintを混在するときにdoubleに自動的に型推論する機構ってないの? いちいちキャストするのはメンドクサイよな。 : デフォルトの名無しさん (ブーイモ MM97-jjF6) [sage] 2018/01/28(日) 15:44:15.18:AvNbdCpkM int w = (int)(pic.Width / (1.0 + x ) / 1.3); でいけるはず : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 16:53:15.56:fNHvxuhr0 あっ、ほんとだ。いけた。ありがとう。 : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 17:12:56.15:fNHvxuhr0 Fontをファイルに保存したい。この場合name,style,sizeに分解して保存するのだろうか? 他に何かいい方法は? : デフォルトの名無しさん (ワッチョイ e305-5Mtj) [] 2018/01/28(日) 17:14:48.84:WjjZpgjO0 バーカw : 愛知人 (ワッチョイ e316-5Mtj) [] 2018/01/28(日) 17:18:54.87:X+CD44G50 多分VSのアプリケーション設定のところでシリアライズして保存できるようにできる : デフォルトの名無しさん (ワッチョイ ae9a-fRM1) [sage] 2018/01/28(日) 17:20:49.97:EAfEAz/a0 もう少し意味が通じるようにまとめろよ Font.Familyname:string FontStyle:int FontSize:float(single) : 愛知人 (ワッチョイ b375-fuuV) [] 2018/01/28(日) 18:07:26.86:QV+bfV+F0 これな ttps://i.imgur.com/ZyRzEn7.png これで保存 Properties.Settings.Default.*** = font; Properties.Settings.Default.Save(); これで読み出し var font = Properties.Settings.Default.***; ユーザーのアプリケーションデータフォルダの中にxmlで保存されるようになってる : デフォルトの名無しさん (ワッチョイ 8b80-wOSG) [sage] 2018/01/28(日) 20:22:00.44:DjJaMqeu0 var conv = TypeDescriptor.GetConverter(typeof(Font)); var text = conv.ConvertToString(font); font = (Font)conv.ConvertFromString(text); : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 20:23:59.60:fNHvxuhr0 それがあるのは知っていたけど、Settingsってそんなふうに使うのか。初めて知った。 便利そう。ありがとう。 前に設定してみたけど、ビルドすると直ぐに消えてしまうので、どうやって使うのか わからなかった。 : デフォルトの名無しさん (ワッチョイ 9606-rgA5) [sage] 2018/01/28(日) 20:29:18.90:siYtS87s0 バージョンアップすると設定が消えちまうのは仕様です で、 ttps://qiita.com/hbsnow/items/0d19910a46bb6d902cd5 のように回避します : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/28(日) 21:15:10.28:fNHvxuhr0 Properties.Settings.Default.DispFont = lblFont.Font ; エラー 1 プロパティまたはインデクサー 'Properties.Settings.DispFont' は読み取り専用なので、割り当てることはできません。 フォントはリードオンリーになるので設定は無理ぽい。 : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/28(日) 21:47:20.89:Tf1PDahga それコピーした? なんかおかしいけど? : 愛知人 [] 2018/01/28(日) 23:47:37.92:QV+bfV+F え〜。こっちだと問題ないよ〜 ttps://i.imgur.com/WY2Y4Qb.png : デフォルトの名無しさん (ワッチョイ e39d-snNQ) [] 2018/01/29(月) 00:40:38.31:YDWVgvG40 スコープのところをアプリケーションにしたのが間違いだった。ユーザーにしたら いけた。 でも暫くやって意味がわからなかったので結局はJson.netを使って保存した。 クラスをそのままシリアライズしたらFontもなにもかも一切合切勝手にシリアライズ してくれた。W これは分かりやすい。一発でわかった。 : 愛知人 [] 2018/01/29(月) 01:03:38.61:pcTu+bOr だよなぁ〜 : デフォルトの名無しさん (ワッチョイ 8781-1ipv) [] 2018/01/29(月) 01:50:11.03:0ju9RGha0 class 年齢 { public string 名前{ get; set; } public int 年齢{ get; set; } } List<年齢> 年齢リスト = new List<年齢>(); このような年齢型の年齢リストがあったとして、 年齢が21のリストだけを抽出したい場合、ラムダ式ではどのように書けば良いのでしょうか? : 愛知人 [] 2018/01/29(月) 01:56:46.26:pcTu+bOr list.FindAll(x=>x.年齢==21) : デフォルトの名無しさん (ワッチョイ 8781-6Oft) [sage] 2018/01/29(月) 02:06:43.62:0ju9RGha0 ありがとうございます。明日試してみます! : デフォルトの名無しさん (ワッチョイ bac2-rgA5) [sage] 2018/01/29(月) 06:31:31.02:1VUu5V2b0 関係ないけどフォントって何? : >>767 (ワッチョイ bac2-rgA5) [sage] 2018/01/29(月) 06:32:39.08:1VUu5V2b0 あ、VSの表示に使っているフォントね : 愛知人 [] 2018/01/29(月) 13:34:43.26:pcTu+bOr メイリオ : デフォルトの名無しさん (ワッチョイ 9e9f-eGIS) [] 2018/01/29(月) 16:33:40.56:FA24LoNZ0 配列の要素すべてが0もしくは1000でなかったらという論理式を書きたいのですが : デフォルトの名無しさん (アウアウエー Saf2-BM8y) [sage] 2018/01/29(月) 16:59:53.70:p1yk/NdGa で、っていう その文章、「でない」がどう掛かるのかあいまいで二通りの解釈が可能だから、 解釈の余地がなくなる別の表現を工夫した方がいいと思うよ : 愛知人 [] 2018/01/29(月) 17:05:56.81:pcTu+bOr arr.All(x=>x!=0&&x!=1000) : デフォルトの名無しさん (ブーイモ MMda-jjF6) [sage] 2018/01/29(月) 17:42:29.88:vA4dMQ1gM ドキュメントでよくあるよなこれ この種のミスをする奴は何度注意しても直らないんだよ : 愛知人 [] 2018/01/29(月) 18:26:02.43:pcTu+bOr 反射的にレスしてすまん たしかに2通りあるな : デフォルトの名無しさん (ワッチョイ b703-rERY) [] 2018/01/29(月) 18:58:15.23:z90g+lRG0 ねえわwリアルでもこんなアスペばかりで困るけどなw : 愛知人 [] 2018/01/29(月) 19:04:54.22:k6Igz8nX arr.All(x=>!(x==0||x==1000)) !arr.All(x=>x==0||x==1000) : デフォルトの名無しさん (ワントンキン MMaa-NOrK) [sage] 2018/01/29(月) 19:08:04.50:vO9vHw7qM 日本語で書くから間違える 最初からコード書けばいいのにね : デフォルトの名無しさん (ワッチョイ 5717-fPTX) [sage] 2018/01/29(月) 19:10:08.17:CbBWbMhk0 お前の読解力が絶望的だってのはわかった : デフォルトの名無しさん (アメ MMaf-Ah9j) [sage] 2018/01/29(月) 19:48:59.46:4EZh8ZpyM なるほど、つまりは、 arr.All(x=>!(x==0||x==1000)) を書きたいのですが もしくは、 !arr.All(x=>x==0||x==1000) を書きたいのですが と質問すべきだったと。 確かにこれなら解釈が割れる心配ないね! : デフォルトの名無しさん (ワッチョイ 9606-rgA5) [sage] 2018/01/29(月) 20:09:39.08:Ml84jtHT0 anyのことも、偶には思い出してやって下さい : 愛知人 [] 2018/01/29(月) 21:07:54.20:pcTu+bOr 解ってます : デフォルトの名無しさん (ワッチョイ 0bed-La00) [sage] 2018/01/31(水) 06:50:26.36:ywuJndNd0 どーせ、CreateCompatibleDCみたいな話 : デフォルトの名無しさん (ワッチョイ 27e3-5dAg) [sage] 2018/01/31(水) 07:23:04.73:NBRruYI30 それどっかにまとめないかな? : デフォルトの名無しさん (アウアウウー Sa77-rgA5) [sage] 2018/01/31(水) 12:33:39.58:Hr5M/E+Xa 初心者だからわからないんだろうけど そういうリソース系は数量をチェックしても無駄だよ チェックした時点で大丈夫かもしれないけど 使うとき限界に達してるかもしれない どこも保証しない 実行して失敗なら失敗 : デフォルトの名無しさん (アウアウウー Sa77-rgA5) [sage] 2018/01/31(水) 12:36:13.73:Hr5M/E+Xa 鉛筆の数をチェックしてあまり1本あっても自分が使うまでのわずかな間に 別のアプリがその鉛筆を使うと自分は使えない : デフォルトの名無しさん (ドコグロ MM32-5dAg) [sage] 2018/01/31(水) 12:37:16.98:202u6MlTM 開放のルールがワカンネ : デフォルトの名無しさん (アウアウウー Sa77-rgA5) [sage] 2018/01/31(水) 12:40:26.06:Hr5M/E+Xa いきなり鉛筆をつかもうとする つかめなかったらwindowsは異常な事態になってるので回復は不能 アプリを落とす 自分で鉛筆を使ってる場合使わなくなったら即座に開放 たったこれだけ : デフォルトの名無しさん (ペラペラ SD3b-LUfI) [sage] 2018/01/31(水) 12:51:37.68:YgPJ7UgLD c♯固有の話では無いですがインターフェースのファイルとクラスのファイルは一般的に同じフォルダに入れてるのでしょうか? インターフェース用フォルダ、抽象クラス用フォルダ、クラス用フォルダと分けた方が見やすいとかあるのかなと思いまして : デフォルトの名無しさん (アウアウウー Sa77-rgA5) [sage] 2018/01/31(水) 12:54:49.47:Hr5M/E+Xa c#固有じゃないとは言い切れない ご自由にというか その時のルールがあるならそれに従えばいい c#はjavaのようにフォルダ構造が名前空間じゃないから : デフォルトの名無しさん (ブーイモ MM06-jjF6) [sage] 2018/01/31(水) 13:01:03.78:5zei4l0gM 普通は名前空間に合わせる ソースにオリジナリティを出すな : デフォルトの名無しさん (バットンキン MM8f-LUfI) [sage] 2018/01/31(水) 18:20:28.08:SANOK0fjM なるほど名前空間で別けるのですね 独学初心者には思いもつきませんでした 参考になります : デフォルトの名無しさん (アウアウエー Saf2-BM8y) [sage] 2018/01/31(水) 18:51:07.07:K5Al/IGma いや、それは単にVSがそういう前提で作ってある(ソリューションエクスプローラから 新規にファイルを作った時のスケルトンの名前空間がプロジェクトの規定の名前空間に フォルダ階層がくっついたものになる)ってだけの話で、別に必要なら単に分類のために フォルダ作ってもいいと思うよw そんなケースはあんまりないとは思うけど : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/31(水) 19:49:36.61:Hr5M/E+Xa そういう前提には作ってないよ 設定があってチェック外せばどのフォルダで作っても同じ名前空間になる : 愛知人 [] 2018/01/31(水) 19:50:28.99 このエラーの原因が分りません、教えてください(>_<) ttps://i.imgur.com/0hN1rC0.png : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/31(水) 19:52:10.31:Hr5M/E+Xa スペルミス クラス名見てみろ : 愛知人!id:ignore (ワッチョイ e305-5Mtj) [] 2018/01/31(水) 19:54:02.69:3eBSylxa0 ありがとうございます! : デフォルトの名無しさん (ワッチョイ 8bc9-rgA5) [sage] 2018/01/31(水) 19:54:19.37:Ul/zaXpy0 マゲガー : デフォルトの名無しさん (アウアウウー Sa77-W10G) [sage] 2018/01/31(水) 19:58:03.82:Hr5M/E+Xa おかしいと思ったらコピーして検索してみろ : デフォルトの名無しさん (アメ MMaf-Ah9j) [sage] 2018/01/31(水) 20:41:19.03:6Q7+onpXM 最大で140℃くらいまでしか開かないので、コピー機に入りません(>_<) : デフォルトの名無しさん (スププ Sdda-La00) [sage] 2018/01/31(水) 21:11:48.89:uhY/QizFd 昔、GDI+とMFC or Win32APIから.netに移行する表とその説明があったけど、検索で調べきれないわ。 さかのぼると、WM_PAINT, BeginPaintとか古典的な描画APIとかの話になるから 今、ディスプレイドライバーのソースを見てるけど、なかなか説明が難しいわ ごめんなさいね : デフォルトの名無しさん (ワッチョイ f783-j4Dg) [sage] 2018/02/01(木) 03:40:13.00:J9JLK/T20 デバイスコンテキストの説明になんでドライバまで降りるねん。 : デフォルトの名無しさん (ワッチョイ f78a-EKSC) [sage釣] 2018/02/01(木) 04:01:11.67:XxNDw1fe0 最近この板変な人が多いの : デフォルトの名無しさん (ワッチョイ b7cc-9ylI) [sage] 2018/02/01(木) 07:50:14.98:jtx9E0YE0 知識をひけらかしたいだけでしょ : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/01(木) 11:30:02.30:DhFBeVpNa 非常に単純化した話として windowsは特定のリソースを数字で管理してるけど その数字の上限が決まってる 管理してる空きがないと確保できない 単純な話 出来ないものはできない それだけ 何も難しくない : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/01(木) 11:31:56.97:DhFBeVpNa だから使わなくなったらすぐに解放しておけばいい それだけ 何も難しいことはないけど馬鹿がこねくり回して難しい難しい言ってるだけ サンプルソースで開放してないのは1個ぐらいもれてても実害はないから 実装する際は自分で実装したらいい : デフォルトの名無しさん (ワッチョイ 9fc3-SVib) [sage] 2018/02/01(木) 12:00:06.18:1x8PgmKV0 実はウンコもちょっとくらいもれてても実害はない。お前のパンツは飾りか? : デフォルトの名無しさん (ワッチョイ b7cc-9ylI) [sage] 2018/02/01(木) 12:09:28.60:jtx9E0YE0 パンツに漏れてるウンコなら気にしちゃうけど 公園の片隅に置いてあるウンコは無視しちゃう : デフォルトの名無しさん (オッペケ Srcb-ggKF) [sage] 2018/02/01(木) 12:23:03.42:0snSQv2vr 気にしたやつが負け : 愛知人 [] 2018/02/01(木) 22:50:11.02 WinFormsの自作Componemtでデータをネットから取得するメソッドで、完了と失敗のイベントを実装するのは普通ですか? : デフォルトの名無しさん (ワッチョイ f706-wbgk) [sage] 2018/02/02(金) 00:11:33.54:JsFuCwNz0 問題ないと思うが、今の流行りならasync Task<Hoge>等で結果返すパターンかな : デフォルトの名無しさん (ワンミングク MM7f-NUVM) [sage] 2018/02/02(金) 00:34:30.18:cT4GbCx9M コールバック地獄は嫌だ : 愛知人!id:ignore (ワッチョイ 9775-jUAt) [] 2018/02/02(金) 00:51:28.62:jGftTsx+0 ありがとうございます(>_<) : デフォルトの名無しさん (ワッチョイ 9fc3-Z3C6) [sage] 2018/02/02(金) 08:11:51.44:prG6i1oZ0 ごめんね。 低レベルでアロケータがどうなってるのか気になって。 ( ノД`)… : デフォルトの名無しさん (ワッチョイ 1feb-j4Dg) [sage] 2018/02/02(金) 11:49:47.51:BMFcc+go0 U+2028/2029に初めて遭遇したんだが 文字列を1文字ずつ走査して IsSeparator が true だったら削除して詰める、って関数ない? : デフォルトの名無しさん (オッペケ Srcb-ggKF) [sage] 2018/02/02(金) 12:19:04.07:dTcbVnf+r 秒で書けるのによくそんな事質問する気になるな 気が長いやつだ : 愛知人 [] 2018/02/02(金) 12:29:56.98 Replace : デフォルトの名無しさん (ワッチョイ 1feb-j4Dg) [sage] 2018/02/02(金) 12:34:09.95:BMFcc+go0 また拡張メソッドが増えた : 愛知人 [] 2018/02/02(金) 12:37:13.44 区切り文字を削除したいシチュエーションなんか普通はないしな 知らんけど : デフォルトの名無しさん (ワッチョイ 1feb-j4Dg) [sage] 2018/02/02(金) 12:38:34.03:BMFcc+go0 ところで拡張メソッドって参照されないんだっけ? public static System.Data.SqlClient.SqlCommand CreateCommand(this System.Data.SqlClient.SqlTransaction SqlTransaction) { var SqlCommand = SqlTransaction.Connection.CreateCommand(); SqlCommand.Transaction = SqlTransaction; return SqlCommand; } BeginTransaction した後のトランザクションを使って CreateCommand すると トランザクションの内側に入る、的な糞メソッドを作ったんだけど どうやら、トランザクションの外側になっちゃうっぽいんだ。 → Rollback しても戻らない → ブレークポイントしながら見てると、トランザクション自体が開始されていない ref this で解決するかと思いきやクラスはダメで使えない VB.NET だと普通に出来ちゃうと聞くが : 愛知人 [] 2018/02/02(金) 19:36:31.54 コードでコントロールのプロパティを規定値(DefalutValue属性の値)にリセットする方法はありますか?(>_<) : デフォルトの名無しさん (ワキゲー MMdf-lmiZ) [sage] 2018/02/02(金) 19:54:02.62:UX+Yt5X5M PropertyDescriptor(ctrl).GetProperties()[nameof(ctrl.Property)].ResetValue(); : デフォルトの名無しさん (ワキゲー MMdf-lmiZ) [sage] 2018/02/02(金) 19:54:48.71:UX+Yt5X5M あ、.ResetValue(ctrl)だった : 愛知人!id:ignore (ワッチョイ 9775-jUAt) [] 2018/02/02(金) 20:50:42.32:jGftTsx+0 ありがとうございます(>_<) : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/02(金) 21:57:28.18:Zl28+evz0 c#っぽい独自言語の解析をしてるんですが コメントの「//」や「/*」「*/」の解析って ダブルコーテーション内と外ってどうやって判断したらよいでしょうか? : デフォルトの名無しさん (ワッチョイ 57b3-E/qE) [sage] 2018/02/02(金) 21:59:32.04:z7oDIr3g0 スタックに積む : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/02(金) 22:38:26.26:dT49NCpma やり方次第 作ったことあるのでわかりやすいのは文法をのままコードにする 頭から呼んでって状態を覚えておく 文字リテラル内は解析しないでエスケープルールや”の監視だけする //や/*コメントの時は行末まで読み捨て : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/02(金) 22:39:44.98:dT49NCpma 間違い /*は*/を読み捨てしたらダメだなw : デフォルトの名無しさん (ワッチョイ 1705-CU+w) [sage] 2018/02/02(金) 22:40:01.25:pft3AbU10 パーサジェネレータ使えよ : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/02(金) 22:48:59.30:Zl28+evz0 それがわからない 文字列リテラルなのかコメントなのか判断できない ダブルコーテーションから判定するとそれがコメントだったとき駄目 コメントから判定するとそれが文字列リテラルだったとき駄目 っていうパラドックス : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/02(金) 22:52:11.72:dT49NCpma それは変なやり方してるからだろ おおかた正規表現などで判定してるんだろう コードを頭から読んでできないのは 文法がおかしいかパースのやり方がおかしいからだ : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/02(金) 22:56:57.54:dT49NCpma 急がないならどれかの言語のコードでもじっくり読んで勉強したらいい 大体の言語はオープンソースなので好きなのをやればいい ただしc++の知識ぐらいはいる 急ぐならテストパターンを十分に用意して手あたり次第やればいい : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/02(金) 23:08:58.70:Zl28+evz0 やけっぱちで 解析のコメント削除時に「//」か「/*」見つけたら同じ行の前側みて 文字列リテラル中かどうかみる処理入れて乗り切ってみた : デフォルトの名無しさん (ワッチョイ 57b3-E/qE) [sage] 2018/02/02(金) 23:10:39.49:z7oDIr3g0 >同じ行の前側みて うん、かなり無茶苦茶だな 先頭から順に読んでいって、「今は文字列リテラル中」とか「今はコメント中」とかの状態を保持しておけよ : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/02(金) 23:15:27.28:dT49NCpma 独自言語の解析してるんだろ? 他の部分が出来てるなら 普通に頭から読んでって "が出たらリテラルフラグオンにして //が出たら行末まで読み捨て /*だったら次の*/がでるまで捨てるだけ 何も難しくない : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/02(金) 23:17:24.91:dT49NCpma 文字が抜けた "が出たらリテラルフラグオンにして仕様通りリテラルを最後まで読み切るだけ : デフォルトの名無しさん (ワッチョイ 7703-skLA) [] 2018/02/02(金) 23:18:02.29:HOyQOl0G0 独自言語が逐次実行される前提で話してるな : デフォルトの名無しさん (ワッチョイ 57b3-E/qE) [sage] 2018/02/02(金) 23:18:46.57:z7oDIr3g0 もしかして、1文字ずつじゃなく1行ずつ読み込んでるんじゃないだろうな : デフォルトの名無しさん (ワッチョイ 57b3-E/qE) [sage] 2018/02/02(金) 23:22:20.25:z7oDIr3g0 逐次実行じゃなくても、頭から順に読むのは同じだよ 読んだ物を構文木に積んでいって、評価・実行は最後にやれば良いだけ : デフォルトの名無しさん (アウアウエー Sadf-Og17) [sage] 2018/02/02(金) 23:24:38.81:yHy9QEH1a 難しく考えすぎでしょう。 が言ってるのはたぶん単純なステートマシン。 enum State { トークン探索中, 文字列検出中, インラインコメント検出中、 .... } stateを表すenumを定義して、stateの値に応じて動作を変えるだけ。 文字列リテラルの始め「"」やコメントの始まりを検出するのはstate = State.トークン探索中の時だけ。 素朴すぎるやり方だと思うが、少なくともこれでそんなパラドックスには陥らない : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/02(金) 23:24:41.10:dT49NCpma 本当にめちゃくちゃだな 前方見ても意味ない 確定するためには本当に最初までさかのぼることになる : デフォルトの名無しさん (ワッチョイ 7717-j4Dg) [sage] 2018/02/02(金) 23:24:55.99:ErA95Rap0 で答えが出てるのでこれ以上はスレの無駄遣い : デフォルトの名無しさん (ワッチョイ 7703-ggKF) [sage] 2018/02/02(金) 23:27:13.14:HOyQOl0G0 横ぐるまを押したか : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/03(土) 00:00:03.20:S/Wa3aFw0 大丈夫だよ 文字列リテラルって2行続かないじゃん確か : デフォルトの名無しさん (ワッチョイ bf7f-qlLX) [sage] 2018/02/03(土) 00:06:47.29:pHRpw+FT0 そんなのはルール次第 : デフォルトの名無しさん (ワッチョイ d780-miZj) [sage] 2018/02/03(土) 00:15:01.77:NdjAbgSB0 例えばC#なら@""で改行入れられるし : 愛知人!id:ignore (ワッチョイ 9775-jUAt) [] 2018/02/03(土) 00:17:09.98:GkUi/Itq0 そのときだけ行またげばいいだけだし : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/03(土) 00:34:25.55:S/Wa3aFw0 ぎゃああああ 出来やがった 既存コードが解析の初っ端でコメント削除からやってるから 弄りたくなかったけど いよいよ駄目だな : デフォルトの名無しさん (ワッチョイ 57b3-E/qE) [sage] 2018/02/03(土) 00:38:09.24:AuUEv0AE0 知らんかったんかいw コメントは削除するんでなく、「読み捨てる」んだ : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/03(土) 00:41:40.01:S/Wa3aFw0 いや、似非c#だからそんなことできんだろと : デフォルトの名無しさん (ブーイモ MMfb-+DFt) [sage] 2018/02/03(土) 00:53:02.56:PxR3gYBlM ヒアドキュメントを除いたとしてもしソースの先頭の/*をどうやってみつける? 状態を持たないならソースの頭までさかのぼるしかない : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/03(土) 00:58:38.87:S/Wa3aFw0 いや、今のルーチンはコメントの削除からやってるのよ : デフォルトの名無しさん (ワッチョイ b781-j4Dg) [sage] 2018/02/03(土) 01:03:27.72:OVqIgYtY0 コメントも文字列も先に始まったほうが勝つからどうしょうもない : デフォルトの名無しさん (ブーイモ MMfb-+DFt) [sage] 2018/02/03(土) 01:06:21.86:PxR3gYBlM 質問しといて聞かないパターン=成長しない初心者パターン : デフォルトの名無しさん (アウアウエー Sadf-Og17) [sage] 2018/02/03(土) 01:12:38.71:xyf2cJ8Ka ただ悩みを聞いて欲しかったんじゃないですか 女の相談事みたいなw まあ、どうせ人も減ってるしそれもありでしょう : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/03(土) 01:24:32.23:S/Wa3aFw0 いや、アドバイス通り 頭から読んでいくしかないっぽいっすね クレームが来てるところがまさにそこなので誤魔化しが効かない : デフォルトの名無しさん (ワッチョイ 9fc3-Z3C6) [sage] 2018/02/03(土) 08:34:38.62:WhjNgY2U0 お姉さんが聞いてあげるわ。 今夜、川口駅リリア側の出入り口で待ってる : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 09:02:44.63:LvTBogUR0 swich() { case xxxx: ~ xxxxに変数をつかいたいのだが、switchに変わるものってなに? : デフォルトの名無しさん (ワッチョイ d780-lEY8) [sage] 2018/02/03(土) 09:33:50.59:NdjAbgSB0 if : デフォルトの名無しさん (ワッチョイ 9f60-w+Fq) [sage] 2018/02/03(土) 09:53:42.04:nKXUpnsB0 xxxが数値か文字列なら変数だろうと使えたはずです。オブジェクトの場合、同値の判定が基本型のように単純じゃないから無理。 : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 10:50:39.85:LvTBogUR0 switchi( (button)sender) ){ case Button1: ~ case Button2:~ case Button3:~ } こんな感じのことがしたい。 〜はMethod()でいいので、 void switch_tb()= { {Button1, Method1} {Button2, Method2} {Button3, Method3} } switch_suru((button)sender); こんなことできんか? : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 10:52:21.97:LvTBogUR0 C#はメソッドの中のローカルメソッドってできへんの? : デフォルトの名無しさん (ワッチョイ fffa-K3c3) [sage] 2018/02/03(土) 11:00:14.66:VOrllN0n0 素直にButtonのNameプロパティ使え : デフォルトの名無しさん (ワッチョイ ffc9-wbgk) [sage] 2018/02/03(土) 11:01:41.64:Ns10a1iN0 C#7で出来るようになったよ : デフォルトの名無しさん (ワッチョイ f783-j4Dg) [sage] 2018/02/03(土) 11:41:19.78:ZFgrbY8z0 糞化が止まらないのか。 : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/03(土) 12:15:40.34:7uT3RC1La メソッド内メソッドは無くてもいい機能 メンバー封じ込めの方法はいくらでもあるし ないほうがエラー見つけやすいと個人的には思う : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 12:24:29.31:LvTBogUR0 いい方法をみーつけ : デフォルトの名無しさん (オッペケ Srcb-ggKF) [sage] 2018/02/03(土) 12:24:59.79:ROxRBp/zr バグだろwなにちょっと誤魔化そうとしてんのw : デフォルトの名無しさん (スッップ Sdbf-uiFW) [sage] 2018/02/03(土) 12:29:16.06:0dr4TWncd 言語の変化についていけないやつの糞化な : デフォルトの名無しさん (ワッチョイ 9f60-w+Fq) [sage] 2018/02/03(土) 12:30:20.78:nKXUpnsB0 Buttonと関数のDictionaryでできそう 試してないけどこんな感じでメソッド取ってくれば… Dictionary<Button, Func<T, TResult>> : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/03(土) 12:31:12.90:7uT3RC1La メソッド内メソッドはjavaでずっと使ってたけど クラスを小さくしていくと使う場面は限られていく : デフォルトの名無しさん (ワッチョイ 1705-CU+w) [sage] 2018/02/03(土) 12:33:37.55:Iq/kHIZ+0 初心者っぽくていいじゃん 「この機能が存在する意味が分からないんですけど、何の役に立つんですか?」 って定番の質問じゃん : デフォルトの名無しさん (ワッチョイ f783-j4Dg) [] 2018/02/03(土) 12:40:45.58:ZFgrbY8z0 使ってる奴も糞ばっかになったな。新しい機能一つ覚えただけでマウンティングしだすアホとか。 なぜその機能が糞かが理解できない脳みそ。取り巻きからして残念な言語になってしまった。 : 愛知人 [] 2018/02/03(土) 12:41:41.35 あらら、怒っちゃった(笑) : デフォルトの名無しさん (ワッチョイ ff9a-HmOu) [sage] 2018/02/03(土) 12:43:15.80:8oBsvnpG0 上はに追加して if (sender is Button) switch ((sender as Button).Name) { case "button1": case "button2": } isの判定とasのキャストはControlとかToolStripMenuItemでも状況に合わせて : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/03(土) 12:45:57.31:DOsYwXsiM 今後も言語仕様はどんどん拡張されるよ 他の言語の有名なのどんどん取り入れてってカオスになっていく 個人的には範囲指定が欲しい 1..5か1:5みたいなの : 愛知人 [] 2018/02/03(土) 12:50:20.68 Enumerable.Rangeじゃだめなん? : デフォルトの名無しさん (ワッチョイ 7717-j4Dg) [sage] 2018/02/03(土) 12:51:56.63:8eNVn+fl0 せめてnameof使って書けよ : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/03(土) 12:56:57.86:DOsYwXsiM foreach(var i in Enumerable.Range(1,5)) foreach(var i in 1..5) どっちがいい? : デフォルトの名無しさん (ワッチョイ 7717-j4Dg) [sage] 2018/02/03(土) 12:58:29.57:8eNVn+fl0 圧倒的に上 : デフォルトの名無しさん (ワッチョイ d79b-CNA0) [sage] 2018/02/03(土) 13:02:13.44:kCPWN5tp0 ButtonのTagにやりたいこと突っ込んどけ : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/03(土) 13:06:02.52:DOsYwXsiM いい方法 buttun1.Click=>{Method1();}; : デフォルトの名無しさん (ワッチョイ f783-j4Dg) [] 2018/02/03(土) 14:17:08.45:ZFgrbY8z0 どう書いたらいいか分からないのが糞言語の証左。 : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 15:26:42.67:LvTBogUR0 証左、難しい言葉をしってるね。 エラー 2 '=>' は無効です。 ってなるが、、、 : デフォルトの名無しさん (スッップ Sdbf-Ismr) [sage] 2018/02/03(土) 15:30:37.45:d68F6UhId こういう実装を参考にして欲しくないな コントロールのプロパティを自由に修正できなくなるじゃん : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 15:33:25.80:LvTBogUR0 var aa = ((Button)sender).Equals(button1) ? func1() : ((Button)sender).Equals(button2) ? func2() : func2(); これどう? : デフォルトの名無しさん (ワッチョイ ff9a-HmOu) [sage] 2018/02/03(土) 15:34:12.79:8oBsvnpG0 ButtonのName変更ってどんな実装に必要なんだよ・・・ : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 15:39:26.04:LvTBogUR0 >ButtonのName変更ってどんな実装に必要なんだよ・・・ 最初はBUtton1だろ。出来上がって綺麗に整理するときにbtnSetParamとか分かりやすく書き換える。 : デフォルトの名無しさん (ワッチョイ ff9a-HmOu) [sage] 2018/02/03(土) 15:40:26.14:8oBsvnpG0 それならEqualsじゃなくてsender==button1?でいいよ。キャストもいらない : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 15:40:45.84:LvTBogUR0 Button.Nameをつかうくらいなら、Tagに書き込んだ方がまし。 : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 15:41:39.80:LvTBogUR0 >888 あ、そうなん? : デフォルトの名無しさん (スッップ Sdbf-Ismr) [sage] 2018/02/03(土) 15:43:31.84:d68F6UhId 実装後にスペルミスに気付いた、他の画面との兼ね合いで名称を統一することになった、仮の名前をちゃんとした名前に置き換えた、とか色々あるだろ リフレクションでデータ取得する方針のせいでガチガチに名前が決められている画面を作らされたときの面倒さったらなかったわ : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 15:43:52.16:LvTBogUR0 キャストしないとインテリセンスがでないから、キャストしたほうがいいよ。 : デフォルトの名無しさん (アウアウエー Sadf-Og17) [sage] 2018/02/03(土) 16:57:11.29:Rh9ysymEa こんなの考えたが、 public class CaseAction { public CaseAction(object @object, Action action) { Object = @object; Action = action; } public Action Action { get; private set; } public object Object { get; private set; } } public static class Extensions { public static void Switch(this object o, params CaseAction[] caseActions) { caseActions.FirstOrDefault(x => x.Object == o)?.Action(); } } やっぱり使いづらそうだなw ところで書いててちょっと思ったけど、==演算子の動作って隠蔽(new)と同じように変数の型に 依存するのか、それともオーバーライドと同じようにオブジェクトの型に依存ずるのか、どっちだっけ? : デフォルトの名無しさん (ワッチョイ 9f60-w+Fq) [sage] 2018/02/03(土) 20:30:42.15:nKXUpnsB0 ふと思ったが、ふつうにそれぞれのボタンのイベントに実装したらダメなの : デフォルトの名無しさん (ワッチョイ 9fb3-mP5N) [sage] 2018/02/03(土) 20:34:51.83:Zh144c7Y0 ほとんど共通でボタン毎にちょっとだけ処理が違うとかじゃね : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 21:11:27.96:LvTBogUR0 グループボックスにボタンを貼り付けて、それをコピーして貼り付けると、イベントが同じところになるだろ。 だからエディット都合だな。 イベントで分けるのが一番いい方法かもしれない。w : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 21:13:35.51:LvTBogUR0 再表示するために tabPage1.Controls.Add(grp);で追加したgrpだけをクリアするにはどうしたらいいの? tabPage1.Controls.Clear(); やるとボタンが消えてしまう。 : デフォルトの名無しさん (ワッチョイ 9f60-w+Fq) [sage] 2018/02/03(土) 21:27:16.93:nKXUpnsB0 Controlsプロパティの型はControl.ControlCollectionで そのクラスのドキュメントを見ましょう。 Remove(Control)というのがあったのでそれで削除できそうです。 : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 21:35:57.81:LvTBogUR0 Removeを使うのはわかるんだが、要するになにがしたいのかというと Linqを使ってControlsにAddしたGroupBoxだけを選択して、クリアしたいということ。 その書き方がわからない。ということ。 : デフォルトの名無しさん (アウアウエー Sadf-Og17) [sage] 2018/02/03(土) 21:39:38.95:SzFJuxtQa 再表示とかクリアとか俺様な用語法されても何言ってるのか分からないよw : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 21:46:23.78:LvTBogUR0 tabPage1に貼り付けたコントロール群をLinqを使って選択的に消去したいということ。これでもわからん? : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/03(土) 21:49:30.86:DOsYwXsiM 言葉が不自由なんですね わかります : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/03(土) 21:52:32.07:DOsYwXsiM 煽って悪かったけど その書き方じゃ誰にもつたわらないよ 意味がわからないけどgrpを消したいならgrpをどこかに記録しておけばいい 終わり はい次の方〜 : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 21:54:28.34:LvTBogUR0 解決した。w : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/03(土) 21:55:50.09:DOsYwXsiM よかったね 言葉遣いや表現力だけ見ると小学生かなって思うけど : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 21:57:07.86:LvTBogUR0 >903 Keyになる言葉の意味がわからないと解らないと思うよ。それが解る人にはわかる。 : デフォルトの名無しさん (ワッチョイ 9fd2-uiFW) [sage] 2018/02/03(土) 21:59:39.27:bTwAHw5A0 なんでこいつこんなに偉そうなの? : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/03(土) 22:00:08.72:DOsYwXsiM 小学生だから : デフォルトの名無しさん (アウアウエー Sadf-Og17) [sage] 2018/02/03(土) 22:08:58.48:SzFJuxtQa var toRemove = tabPage1.Controls.Cast<Control>().FirstOrDefault( .... ); if (toRemove != null) tabPage1.Controls.Remove(toRemove); これを1行にしたいってことだったのかな? 拡張メソッド使ってControl側に自分を包含するコンテナのControlCollectionを 引数に撮るメソッドを定義しないとできない気がする 何でもいいけど、冗長でもいいから分かるように書いて欲しいよね : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 22:13:41.72:LvTBogUR0 そんな書き方しかでけん? : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/03(土) 22:16:15.65:DOsYwXsiM これでスタートして答えをもらおうとして失敗 次に 要するにと言ってるけど何も要してないどころか条件を追加してる そして これ への流れ トンチンカン 最初のレスでなぜ伝わると思ったのかが分からない : デフォルトの名無しさん (アウアウエー Sadf-Og17) [sage] 2018/02/03(土) 22:23:57.61:SzFJuxtQa 無理矢理だなあ Action<Control> removeMe = x => x?.Parent?.Controls.Remove(x); removeMe( tabPage1.Controls.Cast<Control>().FirstOrDefault( .... ) ); : 愛恥人 [] 2018/02/03(土) 22:34:23.85 最初のレスだけで理解できる俺は天才なのか : デフォルトの名無しさん (アウアウエー Sadf-Og17) [sage] 2018/02/03(土) 22:38:53.52:SzFJuxtQa むしろエスパー : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/03(土) 22:43:30.44:DOsYwXsiM そして明後日の方向のレスに食いついてる : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 22:54:26.09:LvTBogUR0 private void button3_Click(object sender, EventArgs e) { var grps = tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox ); foreach (var grpB in grps) { tabPage1.Controls.Remove(grpB); } } これで一回で消えないのは何故だろう? grpsには全部のグループボックスが 入っている。しかしforeachでところどころ飛ばしてしまう。 : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 23:19:59.77:LvTBogUR0 あっ、謎がとけた。けっこう落とし穴だな。 : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 23:32:01.66:LvTBogUR0 ケツから消していくとうまくいくんだろきっと。 まえからでもこうやるとうまく行く。 private void button3_Click(object sender, EventArgs e) { var grps = tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox ); List<GroupBox> gg = new List<GroupBox>(); foreach (var grp in grps) { gg.Add(grp); } foreach (var grpB in gg) { tabPage1.Controls.Remove(grpB); } } : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 23:33:46.33:LvTBogUR0 さて、原理は分ったが、これを1行で書くにはどうするのか? : 愛恥人 [] 2018/02/03(土) 23:40:30.32 逆にグループボックス以外を抽出してからパネルの中身全消去からの追加とかはどうかな(>_<) : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/03(土) 23:40:55.06:OIRW+vs20 改行全部消せばいいじゃん : デフォルトの名無しさん (ワッチョイ bf7f-qlLX) [sage] 2018/02/03(土) 23:43:21.17:pHRpw+FT0 のLinqにReverse()追加すれば : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/03(土) 23:43:41.06:OIRW+vs20 なんで1行にこだわってるの? どれだけ読みにくいソースにできるか研究でもしてんの? : デフォルトの名無しさん (ワッチョイ 179d-mIUl) [] 2018/02/03(土) 23:49:22.30:LvTBogUR0 >920 それ、俺もちょっと考えた。 >921 それは最終手段にとっておいたのに。 Reverse()ってあるんか? それだ!! : デフォルトの名無しさん (アウアウエー Sadf-Og17) [sage] 2018/02/04(日) 00:42:43.56:OrIb/jt1a もう気が済んだかもしれんけど、無理に何でもインラインで書こうとして 可読性落とすなんて愚の骨頂で、普通にメソッドに外だし(別に拡張メソッドじゃなくてもいいけど) した方がいいと思うけどね public static class Extensions { public static void RemoveChildren(this Control control, Func<Control, bool> predicate) { var controls = control.Controls; controls.Cast<Control>().Where(predicate).ToList().ForEach(x => controls.Remove(x)); } } : デフォルトの名無しさん (ワッチョイ f7f7-NsDz) [] 2018/02/04(日) 05:54:59.74:vxeWu10H0 ttps://qiita.com/taigaaa2/items/7f05ad950a57033892ae この方法で値を保存しているのですが cドライブに保存されている様でプログラムを他のPCに移すなどすると値が保持されていません どうすれば他のPCでも記憶した値を使える様になるでしょうか : デフォルトの名無しさん (ワッチョイ ff81-CU+w) [sage] 2018/02/04(日) 06:23:40.03:ldOBh/kr0 ファイルをコピーする : デフォルトの名無しさん (ワッチョイ ff81-CU+w) [sage] 2018/02/04(日) 06:38:53.27:ldOBh/kr0 真面目に答えるならサーバーやクラウドストレージのSettingsを読み書きするSettingsProviderを自作することだが 初心者にはひと月ふた月かかるだろうしはっきり言って時間の無駄 : デフォルトの名無しさん (ワッチョイ 7703-skLA) [] 2018/02/04(日) 08:14:14.99:ge7PbLBn0 真面目な答の方が愚策という変な人、というかおそらくバカ : デフォルトの名無しさん (ワッチョイ ffc9-wbgk) [sage] 2018/02/04(日) 08:55:21.88:qZv4HzKZ0 ユーザー共通になっちゃうけど、スコープをユーザーからアプリケーションに変更すればexeと同じディレクトリに保存するよ : 愛恥人 [] 2018/02/04(日) 10:35:42.99 でユーザーにしたら動いた原因はなに? : デフォルトの名無しさん (ワッチョイ 9f19-iu0y) [sage] 2018/02/04(日) 12:47:08.55:+N3aAgKo0 例えば.net 4.7で作られたプログラムを4.5しか入ってないPCで動かすとどうなりますか? : デフォルトの名無しさん (ワッチョイ 9fd2-uiFW) [sage] 2018/02/04(日) 13:40:36.37:zMXPgQ7i0 うごかない : デフォルトの名無しさん (ワッチョイ 9fd2-uiFW) [sage] 2018/02/04(日) 13:41:03.95:zMXPgQ7i0 てか4.5とかサポート切れだから論外だし : デフォルトの名無しさん (ワッチョイ 179d-jn1r) [] 2018/02/04(日) 13:48:00.41:HudK1GnQ0 >ユーザー共通になっちゃうけど、スコープをユーザーからアプリケーションに変更すればexeと同じディレクトリに保存するよ アプリケーションじゃ動かんかったな。動くこともあるんだろうな。意味がわらかんし、マニュアル読んでも書いてないし それにビルドで設定値が消えるから、、、最初から打ち直し。w こんな意味の解らん機能はつかわない方がいい。JSON.NET使った方が遥かに楽。というのが俺の感想だ。 : デフォルトの名無しさん (ワッチョイ bf7f-qlLX) [sage] 2018/02/04(日) 14:04:22.94:CmrmETVT0 開発環境が4.7でも対象フレームワークを4.5に設定してビルドすれば、4.5が入ってるPCでも動く。 ただし、4.7でないと動かない機能は使えなくなる。 : デフォルトの名無しさん (ワッチョイ 179d-jn1r) [] 2018/02/04(日) 14:13:13.77:HudK1GnQ0 public static void RemoveChildren(this Control control, Func<Control, bool> predicate) { var controls = control.Controls; controls.Cast<Control>().Where(predicate).ToList().ForEach(x => controls.Remove(x)); } これは非常にスマートだという感じだが意味わからんなー。 predicate: 対象となるコントロールの場合はTrueを返す関数? ToList() :predicateで判定したコントロールのListを作る。 ForEach:ToListからひとつづつコントロールをとりだしてxにセット、Removeする。 という意味だろうか? Funcって初めて見た。いま調べてみるとよく使う標準デリゲートらしい。であれば controls.Cast<Control>().Where(ラムダ式).ToList().ForEach(x => controls.Remove(x)); で一行でできる筈だな。 つまり controls.Cast<Control>().Where(x=>x is GroupBox).ToList().ForEach(x => controls.Remove(x)); で実験してみると tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox).ToList().ForEach(x => tabPage1.Controls.Remove(x)); わーいうまく行ったぞ。 : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/04(日) 14:22:22.77:2sg7PnbOM 日記はちらしのうらにでm… : デフォルトの名無しさん (ワッチョイ 9fd2-uiFW) [sage] 2018/02/04(日) 14:22:36.96:zMXPgQ7i0 >.net4.7で作られた をどう解釈するかだな : デフォルトの名無しさん (ワッチョイ 179d-jn1r) [] 2018/02/04(日) 14:24:43.87:HudK1GnQ0 Castを無くすために tabPage1.Controls.OfType<GroupBox>().ToList().ForEach(x => tabPage1.Controls.Remove(x)); これでも動くのに、 tabPage1.Controls.OfType<GroupBox>().ForEach(x => tabPage1.Controls.Remove(x)); これは動かないのはなぜ? : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/04(日) 14:26:44.56:2sg7PnbOM 実装してないものが使えるわけないだろ 魔法じゃないから : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/04(日) 14:30:00.97:2sg7PnbOM そもそも列挙してる最中のものを削ると列挙に失敗する可能性が高い 最初から何番目の要素を取り出す 次はそれプラス1の要素としてるのに 1番目から消すと何番目というのがずれるだろ? 一番目を取り出すそれを消す ○×▼ ↓ ×▼ 二番目を取り出すそれを消す ×▼ ↓ × 三番目は取り出せない : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/04(日) 14:31:09.88:2sg7PnbOM ずっと一番目を消すと全部消える : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/04(日) 14:34:48.14:2sg7PnbOM ToList()で控えを作る できたList ○×▼ をみて対象を消していく こちらは消し終わってList内容はそのまま : デフォルトの名無しさん (ワッチョイ 179d-jn1r) [] 2018/02/04(日) 14:35:11.95:HudK1GnQ0 いやまあそうなんだが、疑問というのは var grps = tabPage1.Controls.OfType<GroupBox>(); varじゃわからないのだが、この型は何なの? Listじゃないよね。 : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/04(日) 14:36:12.24:2sg7PnbOM IDE使えばでるだろ カーソル当てろ : デフォルトの名無しさん (ワッチョイ 9fd2-uiFW) [sage] 2018/02/04(日) 14:36:23.56:zMXPgQ7i0 メモ帳で開発してんの? : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/04(日) 14:37:00.62:2sg7PnbOM 可能性が高いと書いたのは列挙の方法がちがうかもしれないから : デフォルトの名無しさん (ワッチョイ ffc9-wbgk) [sage] 2018/02/04(日) 14:37:31.37:qZv4HzKZ0 Enumerable.OfType<TResult> メソッド ttps://msdn.microsoft.com/ja-jp/library/bb360913(v=vs.110).aspx : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/04(日) 14:38:10.32:2sg7PnbOM ここは個別指導スレじゃないだろ いい加減にわきまえろ 質問じゃなくて誰かに教えてもらいたいなら金を払って個人指導受けろ : デフォルトの名無しさん (ワッチョイ ffc9-wbgk) [sage] 2018/02/04(日) 14:41:30.60:qZv4HzKZ0 IEnumerableやyield returnの動作知らずにLINQ使うのって怖くないのかな : デフォルトの名無しさん (ワッチョイ 9fd2-uiFW) [sage] 2018/02/04(日) 14:41:58.66:zMXPgQ7i0 相変わらずひどい翻訳やな : デフォルトの名無しさん (ワッチョイ 179d-jn1r) [] 2018/02/04(日) 14:50:13.12:HudK1GnQ0 var grps = tabPage1.Controls.OfType<GroupBox>(); var ggg = tabPage1.Controls.OfType<GroupBox>().ToList(); IDEでみるとgrpsは {system.Linq.Enumerable.OfTypeIterater<GroupBox>} gggは count=10 と出る。 : デフォルトの名無しさん (ワッチョイ 9fd2-uiFW) [sage] 2018/02/04(日) 14:53:40.22:zMXPgQ7i0 わろた : デフォルトの名無しさん (ワッチョイ 179d-jn1r) [] 2018/02/04(日) 14:53:56.98:HudK1GnQ0 >IEnumerableやyield returnの動作知らずにLINQ使うのって怖くないのかな 何故怖いの? IEnumerableとEnumerableの違いを端的に説明すると、どういうこと? : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/04(日) 14:55:56.43:2sg7PnbOM キーワードがわかってるなら聞かないで自分で勉強したらいいのに 勉強したり努力してわからないならここで聞けばいい : デフォルトの名無しさん (ワッチョイ 179d-jn1r) [] 2018/02/04(日) 14:59:19.86:HudK1GnQ0 Enumerable.OfType <GroupBox > grps = tabPage1.Controls.OfType<GroupBox>(); これはできないよ。エラーになる。 List<GroupBox > ggg = tabPage1.Controls.OfType<GroupBox>().ToList(); これはOK : デフォルトの名無しさん (ワッチョイ 179d-jn1r) [] 2018/02/04(日) 15:01:43.20:HudK1GnQ0 >Enumerable.OfType<TResult> メソッド あっと見落としてた、型じゃないのか。メッソドか。 : デフォルトの名無しさん (ブーイモ MMcf-+DFt) [sage] 2018/02/04(日) 15:01:43.24:2sg7PnbOM ダメな初心者=エラー内容を読まないし調べない : デフォルトの名無しさん (ワッチョイ 9f19-iu0y) [sage] 2018/02/04(日) 15:05:12.21:+N3aAgKo0 ありがとうございます。 ターゲットフレームワークが4.7、動かそうとしているPCが4.5、プログラムの内容が4.5までで実現できるwinformsの場合でも起動すらできないですか? : デフォルトの名無しさん (ワッチョイ 179d-jn1r) [] 2018/02/04(日) 15:12:42.24:HudK1GnQ0 >例えば.net 4.7で作られたプログラムを4.5しか入ってないPCで動かすとどうなりますか? 4.7が動作しないPCはない(筈だ)から、4.7をダウンロードしたらいいだけだよ。 4.7をシステムに追加すれば問題なしに完璧に動作するよ。 : デフォルトの名無しさん (ワッチョイ bf7f-qlLX) [sage] 2018/02/04(日) 15:17:08.79:CmrmETVT0 クライアントがターゲットフレームワーク未満の場合は、起動時にエラーダイアログが出て終了する。 その内容だったら、ターゲットフレームワークを4.5に変更すれば良いのでは。 厳密には、4.5はサポート切れてるから、4.5.2に設定した方が良いと思うけど。 : デフォルトの名無しさん (ワッチョイ 979a-it6M) [sage] 2018/02/04(日) 15:18:11.54:UjaEvCGn0 ワッチョイ 179d にもう触んな : デフォルトの名無しさん (ワッチョイ ff81-CU+w) [sage] 2018/02/04(日) 15:43:41.74:ldOBh/kr0 魚類に釣り絵に噛みつくなと説いてもムダムダ : デフォルトの名無しさん (ワッチョイ 9f19-iu0y) [sage] 2018/02/04(日) 15:55:30.93:+N3aAgKo0 ,962 よく分かりました。ありがとうございます : デフォルトの名無しさん (ササクッテロロ Spcb-+6kC) [sage] 2018/02/04(日) 16:06:41.70:hG+oZ081p なんとなくpublicならプロパティ privateならフィールドにするように しているんだが public なフィールドやprivateなプロパティって使うことある? : デフォルトの名無しさん (ワッチョイ 9fb3-mP5N) [sage] 2018/02/04(日) 16:06:43.52:88eIJAAv0 > IEnumerableやyield returnの動作知らず そいつらは実装者には必要だけどLINQ使う側には必要ないだろ : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/04(日) 16:11:21.66:nSH8cPbn0 そもそもこんな疑問でちゃう時点で機能としての出来が良くないんだから 使わない俺の大勝利 : デフォルトの名無しさん (ワッチョイ ff81-CU+w) [sage] 2018/02/04(日) 16:12:24.36:ldOBh/kr0 頭の出来がよくないの人のせいにするとは : デフォルトの名無しさん (ワッチョイ f7f7-NsDz) [] 2018/02/04(日) 16:12:44.65:vxeWu10H0 スコープがアプリケーションだと書き込みができない様で、書き込みのできる方法はありますでしょうか? アプリケーションでいじった値をアプリケーションのあるフォルダなどに保存する方法が知りたいです visualstudioで生成したDebugフォルダをコピーするだけで同じ設定のものがコピー出来る様になりたいです : デフォルトの名無しさん (ワッチョイ bf9e-QBDq) [sage] 2018/02/04(日) 16:19:07.58:YE7Mv6Fc0 そんなレベルの疑問を自力で解決出来ないのに独自言語なんて作れるのか? : デフォルトの名無しさん (スッップ Sdbf-uiFW) [sage] 2018/02/04(日) 16:22:45.65:s5exZTb6d 使ってることに気づいてないアホがこれ : デフォルトの名無しさん (アウアウエー Sadf-Og17) [sage] 2018/02/04(日) 16:27:27.66:iJJ2KKb9a を真に受けちゃダメ MSはバイナリをProgram Files以下のディレクトリにインストールして使うのが 標準的な使い方だと考えているので、アプリケーション設定も当然バイナリと同じフォルダに 保存する方法は用意されてない。(言うまでもないけど、Program Files以下のディレクトリに ファイルを書き込むには特別な権限が必要) バイナリをUSBメモリに入れて持ち歩くような使い方を想定しているようなアプリなら 当然バイナリと同じディレクトリに設定ファイルを保存するのもありだけど、 そういう場合は自分でそういうコードを書くしかない : デフォルトの名無しさん (スッップ Sdbf-uiFW) [sage] 2018/02/04(日) 16:32:40.51:0pkor+t3d 嘘まみれ : デフォルトの名無しさん (ワッチョイ 9f06-wbgk) [sage] 2018/02/04(日) 16:43:23.86:RXHjrV0B0 つ ふっかつのじゅもん : デフォルトの名無しさん (アウアウウー Sa5b-+DFt) [sage] 2018/02/04(日) 17:11:47.67:lnA8IzXNa .netの前はアプリなどがシステムフォルダににDLLを入れていた それでアンインストールなどを繰り返すとどれがどれに依存しているかわからなくなった これをDLLヘルという これを教訓にしてアプリではdll依存を極力避け アプリの配布はビルドしたものを適当な場所にxcopyしただけで可能なように設計された : デフォルトの名無しさん (ワッチョイ 17e6-CU+w) [sage] 2018/02/04(日) 18:11:17.96:IdDneOZ60 ApplicationSettingsみたいなゴミを使うの止めればいいんじゃないの 何でこだわってるの? ApplicationSettingにこだわらなければ10分で済む話だよね? なんで半日も一日も掛けてるの? 不死身で時間が無限にあるの? 無職で時間が余ってるの? 休日ぼっちで暇なの? ねえなんで? : デフォルトの名無しさん (ワッチョイ f7f7-NsDz) [] 2018/02/04(日) 18:13:05.97:vxeWu10H0 無職です申し訳ありません : デフォルトの名無しさん (アウアウエー Sadf-Og17) [sage] 2018/02/04(日) 18:13:56.88:b12ucEdla そもそもアプリケーション設定の解説なんていくらでもweb上に存在するのに どうしてまずそれらを読まずに最初からできもしないことをできるはずだと思い込んでるのか、 そこが不思議。 : デフォルトの名無しさん (ワッチョイ f7f7-NsDz) [] 2018/02/04(日) 18:17:04.23:vxeWu10H0 アプリケーション設定には特にこだわりはありません 保存さえ出来れば構いません 出直してきます 申し訳ないです : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/04(日) 18:17:36.06:nSH8cPbn0 オススメはCSVファイルの保存で : デフォルトの名無しさん (ワッチョイ 9fd2-uiFW) [sage] 2018/02/04(日) 18:31:08.74:zMXPgQ7i0 キチガイ : 愛恥人 [] 2018/02/04(日) 18:49:17.79 バインド出来ないじゃん(>_<) : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/04(日) 18:50:28.24:nSH8cPbn0 エクセルで編集できて便利じゃん : デフォルトの名無しさん (ワッチョイ ff9a-HmOu) [sage] 2018/02/04(日) 18:50:55.56:YkvE7FF30 自分で貼ったリンクに保存場所書いてあるし プロジェクト名がHogeのとき C:\Users\{User名}\AppData\Local\Hoge\...\1.0.0.0\user.config でProperties.Settings.Defaultって書いてあるんだからググったら パスの取得の仕方は ttps://dobon.net/vb/dotnet/programing/mysettings.html に書いてある このパスを必要な場所にコピーしたらいいだけ 俺の場合はこれの使い方を把握できなかったんで自分でパーサー書いた方が早かったなw : デフォルトの名無しさん (ワッチョイ f7f7-NsDz) [] 2018/02/04(日) 19:03:57.70:vxeWu10H0 プログラムを別のマシンに移しても設定が保存されるようにしたいのです でも保存場所を変えることは出来ないんですよね? : デフォルトの名無しさん (ワッチョイ 9f06-wbgk) [sage] 2018/02/04(日) 19:34:44.52:RXHjrV0B0 最近の流行りだと、設定を捨ててjson.netってやつで管理する 上記のそれはクラスオブジェクトをテキストにする(シリアライズと言う)ソフトなので コレを普通のテキストファイルとして読み書きするだけです : デフォルトの名無しさん (ワッチョイ f7e3-uppE) [sage] 2018/02/04(日) 19:45:17.78:nSH8cPbn0 何の会社かよくわからないし MSのCSV読み込みにしといた方が良くない? : デフォルトの名無しさん (スッップ Sdbf-uiFW) [sage] 2018/02/04(日) 20:09:49.43:fm2Gs9xAd Excelでの編集が必要なほどデータが大量ならDB使えよ : デフォルトの名無しさん (スッップ Sdbf-uiFW) [sage] 2018/02/04(日) 20:10:29.46:fm2Gs9xAd お前もなんか勘違いしてんぞ : デフォルトの名無しさん (ワッチョイ 9fd2-uiFW) [sage] 2018/02/04(日) 20:11:34.16:zMXPgQ7i0 JSON.NET知らないのはさすがにモグリやろwww : デフォルトの名無しさん (アウアウエー Sadf-Og17) [sage] 2018/02/04(日) 20:18:09.97:rXp7+rpAa 一番簡単なのは、永続化(保存)したい情報だけをまとめたクラスを作って シリアル化/逆シリアル化する方法。 シリアル化/逆シリアル化のための機能は.NETの標準ライブラリにも用意されてるので わざわざサードパーティーのを使うことない しかし、意地悪なのかマジなのか知らんけど、 なんか人を惑わすようなこと書く人ばっかりで質問者も大変だなw : デフォルトの名無しさん (ワッチョイ 9fd2-uiFW) [sage] 2018/02/04(日) 20:19:44.54:zMXPgQ7i0 普通にappsettings.json使えばいいのにね
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したアーカイブです。削除についてはこちら 。