2ch勢いランキング アーカイブ

ふらっと 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使えばいいのにね

勢い5万以上のスレをメールでお知らせするサービス、実施中!!
憧れボディをGETしたい!その夢、ボニックで!

新着レスの表示

2ch勢いランキング アーカイブ プログラム板ランキング

凡例:

レス番

100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている

名前

名無しさん (青) → sage のレス
名無しさん (緑) → age のレス

ID

ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID

このページは2ch勢いランキングが作成したアーカイブです。削除についてはこちら