◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

ふらっと C#,C♯,C#(初心者用) Part142 YouTube動画>1本 ->画像>9枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1551908141/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1名無C ◆jPpg5.obl6 (ワッチョイ 762c-FuHz)2019/03/07(木) 06:35:41.12ID:6L3KEJfe0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
http://2chb.net/r/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part141
http://2chb.net/r/tech/1544839627/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

2デフォルトの名無しさん (ワッチョイ c67c-AP8G)2019/03/07(木) 10:59:48.33ID:MaxgRiSY0
O2

3デフォルトの名無しさん (ワッチョイ 7317-uGU8)2019/03/07(木) 19:36:16.76ID:Kf1DGo5Q0

4デフォルトの名無しさん (ワッチョイ 167b-91/d)2019/03/07(木) 21:47:17.96ID:ljKGDnlu0
>>1スレたて乙
テンプレじゃないし古いけど初心者には役立ちそうなところ
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html

5デフォルトの名無しさん (ワッチョイ 16f2-uGU8)2019/03/07(木) 23:01:13.50ID:O+ojsQEY0

6デフォルトの名無しさん (ワッチョイ 16f2-uGU8)2019/03/07(木) 23:01:29.86ID:O+ojsQEY0
2個あるじゃん

7デフォルトの名無しさん (ワッチョイ deef-OG2p)2019/03/13(水) 04:58:13.27ID:Z4mQGBB00
c#でノードエディターみたいなものはつくれますか

8デフォルトの名無しさん (ササクッテロレ Spc7-bf2A)2019/03/13(水) 09:12:45.32ID:VDijyjbrp
>>7
作れますよ

9デフォルトの名無しさん (オッペケ Src7-EzoF)2019/03/13(水) 11:26:25.42ID:82TbnNcir
ノードエディタって各ノードのプロパティを接続するけど、GUIはともかく「接続する」というビジュアルスクリプディングの中の動作ってどういう感じになるんだ?

コードを動的に生成してc#で実行する感じかね

10デフォルトの名無しさん (ワッチョイ deef-OG2p)2019/03/13(水) 11:40:26.49ID:Z4mQGBB00
ビジュアルスクリプティングというやつですね
c# formだけでは無理そうですよね
https://docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/Events
イベントを設定して、処理を設定するというものですが

11デフォルトの名無しさん (アウアウウー Sac3-Om/J)2019/03/13(水) 12:13:36.73ID:9kZ0LY+Wa
この人は自分で調べようとせずに一から十まで人に聞いて
結局何も作れない人だから答えても意味がないぞ
> listviewの使い方について、超初心者向けに解説してるサイトを教えてください
> ファイラを作成しているのですが、ツリービューでPC内のフォルダを検出する方法について、
> ソフト上でファイルにアクセスして、フォルダの中身などを表示したいのですが、まず何のフォームを使えばいいんでしょうか?
> c#でスクリーンショット撮影するソフトは不可能ですか?
> 個々のサンプル通りにゲームを作成中なのですが、paintイベントハンドラってなんでしょうか
> c#のフォームで、タイルマップエディタのようなものを作りたいのですが、どのような情報を調べたらいいでしょうか
前スレから適当に拾ってきたけどこんな有様で何一つ出来ちゃいない

12デフォルトの名無しさん (アウアウエー Saaa-dCVS)2019/03/13(水) 12:20:15.25ID:XeHQsN66a
>>11
気に入らなきゃ君が放置すりゃいいだけ
馬鹿じゃないの

13デフォルトの名無しさん (ササクッテロレ Spc7-bf2A)2019/03/13(水) 12:40:23.19ID:VDijyjbrp
>>10
作れますよ
なぜ作れないと思ったのですか?
理由を述べなさい

14デフォルトの名無しさん (ワッチョイ cb7b-o5IL)2019/03/13(水) 13:58:05.51ID:Jw+SxIpH0
>>12
罵倒レスはやめてくださいってテンプレ読めないんですか?
>>10
C#で「イベントを設定して、処理を設定」は動的にも追加できる
もしくは「つないである(フラグがある)場所に対してだけ処理をする」でもできる
回答してくれた>>13にケンカ売ったんだからけじめ付けてくださいね

15デフォルトの名無しさん (ワッチョイ a701-MIh9)2019/03/13(水) 14:27:21.62ID:ril+FLd/0
>>14
罵倒は良くないらしいぞ
ダブルスタンダードは改めてくださいね

16デフォルトの名無しさん (ワッチョイ 8361-usO3)2019/03/13(水) 21:00:51.56ID:JdL8LuNU0
>>11
やりたいこととレベルがあってないんだろうな
ツリーやリストの使い方って俺もどこで覚えたのか忘れちゃった
確か入門書には書いてなかったと思った

17デフォルトの名無しさん (ワッチョイ ff61-ynPM)2019/03/16(土) 16:15:05.71ID:zOgp3uDK0
GUI ToolKit(?) だけでも、少なくとも、
WinForm, WPF, Xamarine
があり、それに加えて .Net Core, .Net Standard などなどがある。
めちゃくちゃ分かりにくい。結局どれ使えばいいのか。

18デフォルトの名無しさん (ワッチョイ ff61-ynPM)2019/03/16(土) 16:16:31.68ID:zOgp3uDK0
ををー。UWP(?) まであるんかい!!?

19デフォルトの名無しさん (ワッチョイ ff61-ynPM)2019/03/16(土) 16:20:48.07ID:zOgp3uDK0
Javaの場合、native コードより遅くなっても、Swingを使っていれば、
本当にほとんど全てのPlatformで動いた。ブラウザの中ですらも。一方、
C#は、起動も起動してからも遅いし、文法やライブラリもVBと似たように
ごちゃごちゃして上に、Multiplatformですらもないようだ。

20デフォルトの名無しさん (スフッ Sd1f-xOws)2019/03/16(土) 16:38:49.34ID:PeRiwHXRd
C#はマルチプラットフォームですけどね

21デフォルトの名無しさん (ワッチョイ 730c-B/CD)2019/03/16(土) 17:24:58.69ID:V0FrEy2e0
>>17-18
AWT、Swing、JavaFX
がありそれに加えてOracleJDK、OpenJDK(Adopt/Zulu/Corretto etc.)、などなどがある。
めちゃくちゃ分かりにくい。結局どれ使えばいいのか。

ををー。SwingじゃAndroidアプリは作れないかい!!?

22デフォルトの名無しさん (ワッチョイ ff61-ynPM)2019/03/16(土) 17:40:58.81ID:zOgp3uDK0
>>21
それは、Swing 一択で決まり。美しいし速度面も十分で、完全Multiplatform
で特に欠点が無い。それに、新しい仕様が出てくる速度もゆっくりだし。

それに比べて、C#は全く違う。どんどん仕様が出てくるのに、どれもこれも
汚くて欠点を含む。新しいのが出てきたら、とんでもない欠点を含む。
問題ばかり。

23デフォルトの名無しさん (ワッチョイ 730c-B/CD)2019/03/16(土) 17:56:01.73ID:V0FrEy2e0
>>22
新しい方のJavaFXがゴミ過ぎてWPFでなくWinformsが使われてるC#といっしょなんですね

24デフォルトの名無しさん (ワッチョイ ff61-ynPM)2019/03/16(土) 19:02:41.34ID:zOgp3uDK0
>>23
でも、C#の方が混乱が大きいように感じる。
.Net 1つにしても、多種類あり、すぐに方針が変わって、誰もよく理解できてない。
ToolKit に関しては、Java だと Swing 一択で問題ないのに、C#は、誰も1つに
絞り込めないでいる。しかも、C#ではMultiplatFormは現実的には無理。
Javaは、ずっと前からMultiplatformだったのと対照的。

25 ◆QZaw55cn4c (ワッチョイ 6fe9-h1+v)2019/03/16(土) 19:04:54.36ID:cEmRGk9t0
>>24
>C#ではMultiplatFormは現実的には無理
なにか深刻な理由があるのでしょうか?ぜひ伺いたいところです

26デフォルトの名無しさん (ワッチョイ ffad-QpYv)2019/03/16(土) 19:08:45.59ID:Nd/PIrQa0
>>25
キチガイに絡みなすな

27デフォルトの名無しさん (ブーイモ MMff-nnhC)2019/03/16(土) 19:59:22.98ID:lafVI2fNM
マイナーバージョンが一つ違っただけで大騒ぎする
WebLogicなんて無かったんや

28デフォルトの名無しさん (ワッチョイ 730c-B/CD)2019/03/16(土) 20:07:13.34ID:V0FrEy2e0
>>24
> .Net 1つにしても、多種類あり、すぐに方針が変わって、誰もよく理解できてない。
最近もOracle JDKの有償化に伴い派生の多い代替の選択に混乱している言語があるようですね

> Java だと Swing 一択で問題ないのに
私がここでWinforms一択で問題ないと宣言することと何も変わりませんね

Sun時代はSwingへの投資をトーンダウンさせるほどJavaFX推しの流れも一時期ありましたが
Oracleに移りJavaFX ScriptからFXMLへの移行などWPFなんぞよりよほど混沌とした変遷を経ています

そしてOracle JDKから分離され公式に格落ちになったかと思われたJavaFXですが
しかし上記にある選択肢の一部で同梱は継続され何よりOpenJFXはまだまだヤル気です

29デフォルトの名無しさん (ワッチョイ ff61-ynPM)2019/03/16(土) 20:13:04.84ID:zOgp3uDK0
>>28
そういう問題じゃないんだよ。Javaの場合、Swingなんかは、IDEなしでも
コードから簡単に記述できる設計になっていたのに対し、C#のはそうなって
ないだろ。IDEと共に使う設計になっていて。
だから、初心者はどれを使っていいか分からず迷惑極まりない状態になって
いる。複雑でプログラムをする前に挫折してしまう人もいるだろう。
MSは元々そういう設計をする会社だったけど。

30デフォルトの名無しさん (ドコグロ MMdf-Cp6o)2019/03/16(土) 20:22:24.31ID:YxxaJZkyM
それ以前にJavaをGUIアプリ作るのに使ってる人なんて「いない」
その事実についてはどう考えてるの?

31デフォルトの名無しさん (スフッ Sd1f-xOws)2019/03/16(土) 20:26:52.95ID:j5QR1E58d
JavaでGUI作ったりIDE拒否したり20年くらい前からタイムスリップしてきたのかな

32デフォルトの名無しさん (ドコグロ MMdf-Cp6o)2019/03/16(土) 20:38:43.16ID:YxxaJZkyM
まあ従来のIDEについては最近はMS界隈でも否定論が主流になりつつあるけどね
IDEはコーディングとデバッグのためだけのツールでよい、
IDEにコードを自動生成させたくなるような作業があるならフレームワークの設計の方を見直すべき、
というのが今時の流れだよ

33デフォルトの名無しさん (ワッチョイ 4301-Lc3s)2019/03/16(土) 20:40:32.57ID:dvZvBBVu0
.Netじゃwindows/mac/linuxのクロスプラットフォームGUIがいつまでたっても作れないから
仕方なくjavaで書くんやで
javaが10数年前にとっくに実現してる事なんだからいい加減追いついてくれー

34デフォルトの名無しさん (ワッチョイ ff90-TzFu)2019/03/16(土) 20:44:36.00ID:PNvsIlL90
完全敗北を認めた今ならマイクロソフトがGUI toolkit作るならクロスプラットフォームになるだろうが
winrtの登場の頃はまだmicrosoftは敗北を認めてなかったからクロスプラットフォームにならなくて残念..

35デフォルトの名無しさん (スフッ Sd1f-xOws)2019/03/16(土) 20:46:13.35ID:fhPcOkRld
>>32
XAMLやらAndroidのレイアウトXMLやら手書きでも十分かけるけどIDEでイメージ確認しながら書いた方が効率よくね?

36デフォルトの名無しさん (ドコグロ MMdf-Cp6o)2019/03/16(土) 20:46:19.88ID:YxxaJZkyM
>>34
Electronがまさにそうでしょ
今や事実上MSが開発してるようなもんだ

37デフォルトの名無しさん (ワッチョイ 730c-B/CD)2019/03/16(土) 21:00:58.03ID:V0FrEy2e0
>>29
> そういう問題じゃないんだよ
おや、急に問題がすり替わりましたね

> どんどん仕様が出てくるのに、どれもこれも
> 汚くて欠点を含む。新しいのが出てきたら、とんでもない欠点を含む。

Javaの新しくて汚らしく欠点だらけのJavaFXを忘れてらっしゃるようなので説明を追記したまでですよ
Swingで良いならWinformsで良いとも言わないのが不思議ですね

IDE?
SwingをIDE無しで問題ないというのと同程度にWinformsも問題ないですね

38デフォルトの名無しさん (ドコグロ MMdf-Cp6o)2019/03/16(土) 21:01:35.08ID:YxxaJZkyM
>>35
それは否定しないけど、完璧なGUIデザイナ作るのって大変なんだよ
WinFormsのデザイナはVBやDelphiから受け継がれた長年のノウハウの集大成だし、
WPFにいたっては10年開発しても結局ゴミのまま開発終了
今のPC向けGUIアプリの主流は言うまでもなくWebだけど、現代のWebの開発スタイルにフィットするデザイナをMSが開発し始めたとして、
それが使い物になる頃には開発スタイルはすっかり変わっていて時代遅れの廃棄物になってるわけ
従来型のIDEは技術の進化や流行に追いつけなくなってるんだよ

39デフォルトの名無しさん (アウアウエー Sadf-FtxA)2019/03/16(土) 21:15:58.85ID:m10rap++a
多少の雑談は容認すべきと思ってるがさすがに度を越している
続きはこちらでどうぞ

ふらっと C#,C♯,C#(議論用)
http://mevius.2ch.net/test/read.cgi/tech/1469538912

40デフォルトの名無しさん (ワッチョイ ffad-QpYv)2019/03/16(土) 21:30:51.26ID:Nd/PIrQa0
>>38
開発終了したってソース教えて

41デフォルトの名無しさん (ワッチョイ b302-7f+e)2019/03/17(日) 02:36:23.77ID:k04EM+xl0
>>29
WPFもJavaFXも開発者しか画面デザイン出来ないのが問題になってて、デザイナーに投げられるようにコードから分離する目的で作られたのに。。。

最初から素人用の作りじゃ無い。

42デフォルトの名無しさん (ワッチョイ bf2d-geq4)2019/03/17(日) 02:57:55.04ID:XTuejaeR0
多くの人がUIデザインのセンスが無いのに、xxML直書きが主流のせいで更に悪くなってる気はするな
C#に限ったことじゃないけどさ

43デフォルトの名無しさん (ワッチョイ f361-ynPM)2019/03/17(日) 14:45:31.20ID:nIiKRKOv0
>>41
企業で開発する場合ならその方が良いかも知れんが、個人開発だと、
そういう風にGUIとプログラムを全く分けてしまうのは、面倒なだけ
の事が多い。

44デフォルトの名無しさん (アウアウエー Sadf-Cp6o)2019/03/17(日) 15:01:57.71ID:XvGPMByna
>>43
君は個人開発でどういうものを作っていて具体的にどういう面倒があるの?

45デフォルトの名無しさん (ワッチョイ b302-7f+e)2019/03/17(日) 15:03:58.84ID:k04EM+xl0
>>43
最初から素人用の作りじゃ無いって書いてるのに、その回答は。。。

46デフォルトの名無しさん (ワッチョイ b317-B/CD)2019/03/17(日) 16:07:01.80ID:tI0+M4DZ0
>>45
個人開発=素人
と紐付けるのはおかしい

47デフォルトの名無しさん (ワッチョイ f361-ynPM)2019/03/17(日) 16:10:04.12ID:nIiKRKOv0
>>44
>具体的にどういう面倒があるの?
プログラムで論理的に配置した方が柔軟性が増すし、デザイナーを使う
場合よりも作業も短時間で済む事が多い。

48デフォルトの名無しさん (アウアウエー Sadf-Cp6o)2019/03/17(日) 16:14:27.92ID:XvGPMByna
>>47
だから具体的に
あなたは何を作っていて何の作業が短時間に済んだのですか?

49デフォルトの名無しさん (ワッチョイ f361-ynPM)2019/03/17(日) 16:29:36.83ID:nIiKRKOv0
MS には潰れてほしいので、MSに今後の方向性を与えるような情報葉与えられない。

50デフォルトの名無しさん (ワッチョイ b317-B/CD)2019/03/17(日) 16:47:04.83ID:tI0+M4DZ0
潰れて欲しいのならなんでこのスレ居るのさ

51デフォルトの名無しさん (アウアウエー Sadf-FtxA)2019/03/17(日) 17:18:35.03ID:X0IS4dBaa
>>50
どの口がそれを言う
スレの趣旨を無視した議論に参加してる君も同類じゃないのか

議論専用のスレがあるんだからそっちでやれよ。
何でわざわざ場違いなスレでやるんだよ。頭悪すぎじゃないのか
ふらっと C#,C♯,C#(議論用)
http://mevius.2ch.net/test/read.cgi/tech/1469538912/

52デフォルトの名無しさん (スフッ Sd1f-xOws)2019/03/17(日) 17:19:24.64ID:8Q3kRdi6d
プログラミングの需要の大多数は企業またはチーム開発だからそっちの方に使い勝手を合わせるのは当然だわな

53デフォルトの名無しさん (ブーイモ MMe7-wu7T)2019/03/17(日) 19:27:23.84ID:1vkvgzPOM
デバッグが必要な輩が居るようだね

54デフォルトの名無しさん (ワッチョイ e343-CsRu)2019/03/18(月) 00:23:18.58ID:BUmRg9/50
>>49
このレスは恥ずかしい

55デフォルトの名無しさん (ワッチョイ 232d-geq4)2019/03/18(月) 02:32:07.37ID:B+bW3pwA0
DIとグローバル変数おじさんって何が違うのか分からなくなってきたぜ
よく考えたら大して変わんなくないかこれ?

56デフォルトの名無しさん (アウアウエー Sadf-Cp6o)2019/03/18(月) 08:13:37.93ID:qC5UNTtha
>>55
単体テストのときに差し替えるのが目的
テスト書かないんなら普通にnewすりゃいいよ

57デフォルトの名無しさん (ラクッペ MM87-/SkX)2019/03/18(月) 09:28:05.63ID:+omKGkAVM
よく考えたのかもしれないけど足らなかったんだな

58デフォルトの名無しさん (ワンミングク MM9f-nnhC)2019/03/18(月) 11:32:00.82ID:0ez+CkRlM
貴方には知恵が足らないわ
 何気に酷いな

59デフォルトの名無しさん (ワッチョイ cff2-B/CD)2019/03/18(月) 22:59:36.84ID:7EMewmQs0
ASPはなにからやればいいの?
winFormsとMVCってなにがちがうん?

60デフォルトの名無しさん (ワッチョイ cff2-B/CD)2019/03/18(月) 23:01:35.90ID:7EMewmQs0
Web Formsか

61デフォルトの名無しさん (アウアウエー Sadf-Cp6o)2019/03/18(月) 23:04:56.58ID:1F2QIikJa
>>59
全くの別物
WebFormsはWinFormsモドキ
MVCはRuby on Railsモドキ
今始めるなら、英語に抵抗がなければ最新のMVC系フレームワークであるASP.NET Core
英語ダメならオワコンRailsかPHPでもやっとけ

62 ◆QZaw55cn4c (ワッチョイ 6fe9-h1+v)2019/03/19(火) 21:52:22.59ID:45LJYysD0
>>61
>英語に抵抗がなければ
というのが、どのくらいのレベルなのか、には興味があります…最近は英語よりも古代語(ラピュタの黒石に刻まれているあんな感じのやつ)のほうに興味があります
ムスカの台詞「読める!読めるぞ!」を私も味わいたいと考えているのです

63デフォルトの名無しさん (アウアウエー Sadf-FtxA)2019/03/19(火) 22:16:53.20ID:qnLJux/Ma
プログラミングに限らず技術系の文章の英語なんか普通に受験して大学入った
人間なら誰でも読めるw

英語英語言ってる人は逆にいうとその程度の事で自分を差別化できると思ってる人なんだと
思った方がいいよwww

64デフォルトの名無しさん (ブーイモ MMa7-nnhC)2019/03/19(火) 23:39:24.63ID:TEpP13LQM
>>62
ヴォイニッチ手稿にチャレンジだ

65デフォルトの名無しさん (アウアウエー Sadf-D8OU)2019/03/19(火) 23:42:07.90ID:lT8ihTqWa
読めなくても良いけどさ

堺筋線 -> Sakai muscle
3両目 -> 3 eyes
天下茶屋 -> World Teahouse

これくらいは変だと自分で気付けないと恥ずかしいぞ

66デフォルトの名無しさん (オイコラミネオ MMeb-9bVr)2019/03/22(金) 09:11:49.13ID:Sg7nj/wwM
アップキャスト分かりやすく教えて
何言ってんのかわからん

67デフォルトの名無しさん (ワッチョイ 4a61-JOb1)2019/03/22(金) 10:52:57.55ID:Xx8geMH40
>>65
正しいじゃないか。さすが大阪。間違いを恐れてはいけない

68デフォルトの名無しさん (ワッチョイ de2c-FLCP)2019/03/22(金) 11:40:01.20ID:pVVdiXqm0
>>66
むしろ何が分からんのか分からんのだが…
class A { }
class B : A { }
クラスAから派生したクラスBがあって
B b = new B();
A a = (A)b; // 暗黙にキャストできるので (A) は不要
B型のインスタンスをA型として扱うこと

69デフォルトの名無しさん (ドコグロ MM13-pD1i)2019/03/22(金) 11:45:30.76ID:nPC1T1eJM
型の集合としての包含関係が感覚的に理解できるまでにはわりと時間がかかる
継承とは元のクラスを拡張することであるという言葉に惑わされてはいけない

70デフォルトの名無しさん (ワイエディ MM02-VfNx)2019/03/22(金) 12:12:49.38ID:S3zLmlK0M
数値によって変数を使い分けることに関してわからないことがあるので質問させてください

【以下引用】
int型を慣習的に使用することで、他のデータ型に変換する機会を減らすこともできる。
小さい値を扱うことがわかっている場合は、int型よりもbyte型のような小さい値を格納できる型を使う方がメモリの消費量を減らすことができる。
しかし、宣言される変数の多くはスコープが狭く、メモリ上に存在する期間が短いため、メモリの消費量はあまり重要ではない。


これはつまり、数値を扱う場合の変数は基本的にintを使ったほうがよく、必要があればbyteなどの変数を使ったほうがいいということですか?
それともどんな数値でも変数の使い分けをせず、intを使ったほうがいいということですか?

71デフォルトの名無しさん (ドコグロ MM13-pD1i)2019/03/22(金) 12:38:37.72ID:nPC1T1eJM
>>70
一般論として、ユーザーコード内で宣言した単独の変数のメモリ消費量が問題になることは「全く」「無い」
巨大な配列を必要とする場合を除けばintでよい

72デフォルトの名無しさん (ワイエディ MM02-VfNx)2019/03/22(金) 12:50:16.68ID:S3zLmlK0M
>>71
わかりました
親切に教えていただきありがとうございました

73デフォルトの名無しさん (ワッチョイ 6b2d-yExI)2019/03/22(金) 17:45:07.05ID:piAmWzDj0
ちょっと上で英語の話題があったついでに用語について教えてほしいんだけどさあ
Concurrency = Asynchronous processing
って理解であってるん?

74デフォルトの名無しさん (ドコグロ MM13-pD1i)2019/03/22(金) 17:48:21.39ID:nPC1T1eJM
>>73
間違ってる
シングルスレッドでも非同期プログラミングは必要

75デフォルトの名無しさん (ワッチョイ 6b2d-yExI)2019/03/22(金) 17:58:40.45ID:piAmWzDj0
Concurrency ∈ Asynchronous processing
こんな感じ?

76デフォルトの名無しさん (ドコグロ MM13-pD1i)2019/03/22(金) 18:04:58.89ID:nPC1T1eJM
>>75
間違ってる
並列処理だからといって非同期プログラミングが必要とは限らない
fork-joinなんて普通に同期処理

77デフォルトの名無しさん (ワッチョイ 6b2d-yExI)2019/03/22(金) 18:19:57.20ID:piAmWzDj0
確かにそうだわ
ただなんかしっくり頭に入らないんで、良い図かなんかないかな

78デフォルトの名無しさん (ワッチョイ 3aa6-5fhA)2019/03/23(土) 05:06:26.15ID:RPbAWfs10
SOAP Webサービス(asmx)のC#からの呼び出しで質問なんだが、UserAgentってどうやって設定すればいいの?
http://www.ipentec.com/document/csharp-call-soap-web-service
ちなみにここの手順で実装してる

79デフォルトの名無しさん (ワッチョイ 3aa6-5fhA)2019/03/23(土) 12:40:40.84ID:RPbAWfs10
soapのUserAgentの追加だけど自己解決したので書いとく
OperationContextScopeにsoapのInnerChannelを渡してOparationContext.Current.OutgoingMessagePropertiesを設定すればよかったみたい

80デフォルトの名無しさん (ワッチョイ def2-rXtv)2019/03/23(土) 14:20:50.44ID:xq0oZv2H0
↓こういうデータを保持するためのクラスってなんていうの?EF使わない場合DTOって言わないね?
class Hoge
{
ID { set; get; }

Name { set; get; }

Age { set; get; }

Biethday { set; get; }
}

81デフォルトの名無しさん (ドコグロ MM0b-pD1i)2019/03/23(土) 14:37:47.12ID:YFI8vOIVM
>>80
貧血ドメインクラス

82デフォルトの名無しさん (ワッチョイ ea47-k4dH)2019/03/23(土) 15:46:27.60ID:1EN9Vx8A0
>>80
POCO

83デフォルトの名無しさん (ブーイモ MM4f-eWFY)2019/03/23(土) 16:59:05.27ID:oDoWSLunM
デザパタ扱ってて比較的に新しい書籍教えて

84デフォルトの名無しさん (ワッチョイ def2-rXtv)2019/03/24(日) 01:13:49.97ID:yH9zM0xm0
たすけて!
Parallel.Forから
Staticなプログレスバー呼びまくったのに一度も実行時エラーでなかったの
なんで?正常な流れなの・

85デフォルトの名無しさん (ワッチョイ ea47-k4dH)2019/03/24(日) 01:15:19.62ID:GJ0JjoCX0
>>84
UIを操作できるのはUIスレッドだけ

86デフォルトの名無しさん (ワッチョイ def2-rXtv)2019/03/24(日) 01:16:53.70ID:yH9zM0xm0
>>85
プログレスバーはWin7のころの
タスクバーのプレグレスバーなんだよ

87デフォルトの名無しさん (ワッチョイ def2-rXtv)2019/03/24(日) 01:18:41.54ID:yH9zM0xm0
Nugetでこれ入れて出せるようになるやつ
Windows7APICodePack

これな
using Microsoft.WindowsAPICodePack.Taskbar;

88デフォルトの名無しさん (ワッチョイ def2-rXtv)2019/03/24(日) 01:19:01.98ID:yH9zM0xm0
中でなんかしてるんだろうか

89デフォルトの名無しさん (ワッチョイ ff61-X0yA)2019/03/24(日) 16:11:44.19ID:SrH2ZhCU0
>>80
パット見、見た目が、JavaScript の JSON 形式に似てる。

90デフォルトの名無しさん (ワッチョイ de63-VZOn)2019/03/24(日) 16:19:26.01ID:C+8PS15Z0
それはおめめかおつむがヤバいな

91デフォルトの名無しさん (ワッチョイ ea47-k4dH)2019/03/24(日) 17:04:29.99ID:GJ0JjoCX0
>>87
だからUIスレッドから操作しろって
https://www.atmarkit.co.jp/ait/spv/1508/26/news029.html

92デフォルトの名無しさん (ワッチョイ 4a2f-jP+q)2019/03/24(日) 17:10:34.23ID:gZMjxNOF0
UIスレッド外からいじったのにエラーにならなかったけどなんで?って質問じゃないのか

93デフォルトの名無しさん (ワッチョイ def2-rXtv)2019/03/24(日) 18:55:32.16ID:yH9zM0xm0
>>92
そうそう、そういうこと
Parallelで進捗バー増やしてったのに
順調に増えてって正常終了した

TaskbarクラスはStaticでクラスライブラリ(.dll)
なんか理由わかる人いませんか?

94デフォルトの名無しさん (ワッチョイ 5f0c-rXtv)2019/03/24(日) 23:49:11.19ID:z21lQS4L0
ソース見てみたらITaskbarList3::SetProgressValue呼んでるだけだし
アプリ内のウィンドウというよりシェルへのアクセスなら
元々UIスレッドで呼ぶ必要ないんじゃねえの

検証してないけど

95デフォルトの名無しさん (ワッチョイ c6fc-WX4v)2019/03/25(月) 12:38:16.05ID:M0EtypdC0
ドット絵エディタみたいなのは簡単ですか

96デフォルトの名無しさん (オイコラミネオ MMeb-9bVr)2019/03/25(月) 12:38:17.23ID:ZS1E97rBM
>>94
あーシェルの可能性か
なるほど

uiスレッドどころか別プロセスか
盲点だったわ
ありがとう、中身見れたら見てみる

97デフォルトの名無しさん (ワッチョイ 5f7c-PdI2)2019/03/25(月) 13:14:00.29ID:MuEFgcsw0
>>95
エディタ本体つくるのは簡単
各種画像ファイルフォーマットの読み書きが面倒

98デフォルトの名無しさん (スフッ Sdea-k4dH)2019/03/25(月) 13:55:28.16ID:feShKvG5d
>>97
今はnugetでだいたいのフォーマットのライブラリは取得できるんじゃないかな

99デフォルトの名無しさん (スフッ Sdea-k4dH)2019/03/25(月) 14:00:35.30ID:feShKvG5d
てか、Windowsなら標準のBitmapクラスでメジャーどころは扱えるか

100デフォルトの名無しさん (ワッチョイ c6fc-WX4v)2019/03/25(月) 16:28:23.69ID:M0EtypdC0
>>97
がんばります
ペイントイベント使うだけですよね

101デフォルトの名無しさん (ワッチョイ 2a35-gwRP)2019/03/25(月) 16:39:58.28ID:CQLZj79N0
DrawImageやBitBlt地獄が待ってるんだろうなw

102デフォルトの名無しさん (ワッチョイ de7b-nyCW)2019/03/25(月) 22:05:04.34ID:QIzg3qUJ0
>>99
そうだな
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/advanced/using-image-encoders-and-decoders-in-managed-gdi
>>100
PictureBox使った「絵エディタ」で「ペイントイベント」なんか普通使わない
https://www.atmarkit.co.jp/fdotnet/dotnettips/458picboxdraw/picboxdraw.html
>グラフィックの描画に必要なデータ(例えばラインならその始点と終点の座標など)をすべて保持しておき、
>Paintイベント・ハンドラですべてのグラフィックを再描画できるように常に準備しておく必要があることを意味する。
普通は後半に書かれている「Imageプロパティで指定したビットマップに描画」を使う。そうじゃないと保存するときにも苦労する

103デフォルトの名無しさん (アウアウエー Sac2-Sw+D)2019/03/25(月) 22:11:51.58ID:sDjcFKgQa
お絵描きに限らないけど、手順を記録するようにしないとundo実装できなくなるよw
何で偉そうにそういう非常識なことを言うかね

104デフォルトの名無しさん (ワッチョイ de7b-nyCW)2019/03/25(月) 22:17:28.38ID:QIzg3qUJ0
>>103
何の話しているの?
「図形」じゃなく「ドット」エディタで「手順」記録すると大変なことになるよ
undoは任意の時点のデータを退避したらどうにでもできるよ

105デフォルトの名無しさん (ワッチョイ ff61-X0yA)2019/03/26(火) 02:29:39.88ID:fe5vrK8S0
自分の経験上、Undo、Redoは、プログラミングが難しいことがある。

106デフォルトの名無しさん (ワッチョイ ff61-X0yA)2019/03/26(火) 02:46:28.44ID:fe5vrK8S0
参照やポインタの値は、一般にはUndoすると変化するので、Undo、Redoを
任意回数行った場合には「識別子」として役立たないことになる。
だから、Draw系ツール、3Dモデラ、3D-CADなどではポインタ値だけで
直線の接続先などを識別するのは難しい。だからと言って座標値だけで識別
できるかというとそれはそれで無理がある場合が有る。だからID番号を付ける
必要が出てくるかもしれない。
CADで、点が1万個有る場合に全選択してから Move した場合の Undo 情報は、
1万個に上る、と言ったような問題点も耳にした。

107デフォルトの名無しさん (ワッチョイ ff61-X0yA)2019/03/26(火) 02:51:56.51ID:fe5vrK8S0
ツール上では削除しても、内部的には削除せずにメモリ中にずっと残しておけば、
参照やポインタ値は変化することは無い。これを利用する手もあるかもしれない。
ただし、その場合、プログラミング中、オブジェクトを自由に削除できなくなるので、
未来永劫、そのことに気を使い続ける必要がある。

108デフォルトの名無しさん (オッペケ Sr03-s8oI)2019/03/26(火) 04:35:48.97ID:6g954Hehr
3Dソフトの操作履歴って入れ替え可能だからな(可能な操作のみだが)
それすらすごい
例えばベンドデフォメーションかけた後にオブジェクト同士をマージ
この操作順を普通に入れ替えられる
操作をフリーズ(固める)しない限りどんな操作でも入れ替え可能

そして上記の履歴操作は機能のうちのほんの一部

109デフォルトの名無しさん (アウアウエー Sac2-0zLl)2019/03/26(火) 05:21:06.95ID:Wr7XD3bSa
ボタンを押すと、計算してその結果をリッチテキストボックスに表示する、構造的にはシンプルなイベントを作ろうとしています。

private void button_Click(object sender, EventArgs e)
{
リッチテキストボックス.Text=(見出し);
◆計算◆
リッチテキストボックス.AppendText(ここに計算結果を表示);
}

自分としては見出しを表示→◆計算◆(数分かかります)→計算結果表示と、上から順に処理されることを期待しているのだけど
実際は◆計算◆が終了するまで最初のテキスト「見出し」も表示されないのですがどうしてなのでしょうか?

110デフォルトの名無しさん (ワッチョイ 9fda-BX86)2019/03/26(火) 05:23:41.39ID:BYz/7c7n0
連続した削除は統合したり、塗りつぶしは開始点を覚えたり
色々小技もあるので、一概には言えないと思うけどなぁ

本格的に勉強したいなら、paint.net か pinta のソース読むのお勧め

111デフォルトの名無しさん (ワッチョイ de7b-nyCW)2019/03/26(火) 06:37:47.03ID:AEstRBha0
>>109
リッチテキストボックス.Text=(見出し);
リッチテキストボックス.Refresh();//これを挿入
◆計算◆
で意図通りになるはず
「どうしてなのか」はよくわからないけど
https://dobon.net/vb/dotnet/control/refreshupdateinvalidate.html
を参考に考えてみるとアプリケーションキューが空になるまで再描画されないからとかでは

112デフォルトの名無しさん (オイコラミネオ MMeb-9bVr)2019/03/26(火) 10:18:19.55ID:nfpS3j/TM
ドット絵なんて"■"をフォントサイズと色変えて
200x200でやるとかじゃアカンの?
商用?趣味?

113デフォルトの名無しさん (ワッチョイ f312-VZOn)2019/03/26(火) 10:27:40.46ID:FWKgfdvb0
お前の息子みたいな小さい世界の話はしてねえんだよ保育所に引っ込んでろ
入れなかったのか?じゃあ死んでろ

114デフォルトの名無しさん (ワッチョイ 0be7-9VoM)2019/03/26(火) 10:53:32.84ID:RcQOpHon0
>>109
イベントハンドラーの中で計算しているから、UIスレッドを掴んだままになってる。
非同期処理化すれば解決するが、計算中もUIを触れるから別途対策が必要。ウィンドウかボタンを無効化とか。

private async void button_Click(object sender, EventArgs e)
{
this.Enabled=false;
リッチテキストボックス.Text=(見出し);
await Task.Run( () => ◆計算◆ );
リッチテキストボックス.AppendText(ここに計算結果を表示);
this.Enabled=true;
}

115デフォルトの名無しさん (ワッチョイ ff61-X0yA)2019/03/26(火) 10:55:43.23ID:fe5vrK8S0
>>108
速度的な問題点を無視すれば、
編集ソフトでファイルを読み込んだ直後から人間が操作したコマンドの履歴を
全て記録しておいて、ファイルを読み込んだ直後から、最初から最後の1つ手前
まで、その履歴のコマンドを順に再実行するようにすればUndoは実現できる
事は出来る。

この方法だと、操作の途中に重たい処理が挟まっていた場合が問題となる。重たい
処理が行われた場合は、処理の最初と最後でデータをファイルに保存してしまって、
Undoするときはそれを「起点」にする方法も考えられる。ただし、この場合は、
ファイルへの保存に時間がかかる問題が残る。

116デフォルトの名無しさん (スプッッ Sd13-Mdgt)2019/03/26(火) 11:34:27.90ID:KoWTp9j7d
簡単ですか?くらいの質問する相手なんだから112が言うような実装で良いと思うけど
高機能にしようと思えばいくらでもできるだろうけど既存のドットエディタ使えば?って気もする
勝手に質問を高機能に寄せてああでもないこうでもない言ってても仕方ないよね

117デフォルトの名無しさん (ワッチョイ ffe3-dHY2)2019/03/26(火) 12:05:28.06ID:NEQZ2SJi0
>>116
ゲームの専門家に聞いたんだけど、実はドットエディタは使ってなくて、
1つのファイルに複数のキャラクタ画像をまとめて、普通のPaintソフトの
拡大鏡機能で作っておいて、ゲームプログラムの方で部分的な四角形領域
を座標で指定して複数のキャラクタとして扱っている、と聞いた。
そして、透明部分は、1つの色を「透明色」として扱ってMaskパターン
を作っていると。WindowsのBitBlt系のAPIなら、透明色をそのまま
指定できるタイプのものも確かあったと思うけど。

118デフォルトの名無しさん (オッペケ Sr03-s8oI)2019/03/26(火) 12:09:54.76ID:6g954Hehr
>>115
しかし3Dソフトは激重アプリなのにサクサクとundo redoできる
設定では1000回まで戻れるようにしている
しかも全部メモリに管理しているんじゃないだろうか
設計が凄まじいのだろう

119デフォルトの名無しさん (ワッチョイ 2a35-gwRP)2019/03/26(火) 12:10:33.61ID:qm+I18En0
>>118
ファイルに落としてるんだよ

120デフォルトの名無しさん (ワッチョイ 5f9c-Mdgt)2019/03/26(火) 16:10:23.84ID:ERuMXzNG0
>>117
そういうやり方だってあるしドット絵エディタで全て作ってるのだってあるし普通の絵をドット絵チックに変換するツールを使う場合もある

121デフォルトの名無しさん (アウウィフ FF2f-PdI2)2019/03/26(火) 16:26:20.46ID:5W15sMAGF

122デフォルトの名無しさん (ワッチョイ ff61-dHY2)2019/03/26(火) 16:55:27.87ID:fe5vrK8S0
>>118
多分、普段のUndo、Redoはメモリ内のみで行っている。
そして、>>108のように、操作者が順序を入れ替えた場合のみ、
どこかの時点を起点として操作をリプレイするようなことをやってる。
だから後者の場合のみは時間がかかるんじゃないかと思うが、滅多に
やることはないので問題ないと考えられているのではなかろうか?

123デフォルトの名無しさん (オッペケ Sr03-s8oI)2019/03/26(火) 17:53:29.15ID:6g954Hehr
>>122
3Dソフトはそもそもディペンデンシーグラフで履歴ノードが自由に繋ぎ直せるし、インプットアウトプットもしまくるから
わざわざファイルに出してることはないはず
そしてそれら膨大な数のノードがリアルタイムで動作したりするからなあ

ほんとどうやったら普通のPCでもそれなりに高速に動くようなあんなシステム作れるんだ

ちなみにスクリプトやAPIでも履歴作れるんだよな
openChank closeChankの間に入れ込んだ操作の履歴を一つにしてくれる

124デフォルトの名無しさん (ワッチョイ ff61-dHY2)2019/03/26(火) 18:13:18.89ID:fe5vrK8S0
>>123
履歴のコマンドの順序を入れ替える操作を高速にするアルゴリズム、今、分かった。

1. 操作を変更する時点は、現在の状態からは近いことが多いはず。
2. だから、ツールの内部処理で、現在の状態から小数回 Undoを繰り返せば、その地点にいったん
  戻ることが出来る。
3. そこからは、新しい順番でコマンドを「Replay(再生)」すれば、目的の結果が得られる。

125デフォルトの名無しさん (ワッチョイ ff61-dHY2)2019/03/26(火) 18:18:17.85ID:fe5vrK8S0
>>124
・例えば、現在の状態が、ファイル読み込み時点から、1,000回の操作の後だとする。
・現在の状態になる20回前の操作を変更したいとする。その操作は、最初からは980回目である。
・ここで、(1,000回目の)現在の状態から 20回 Undo をすれば、上記の980回目の状態に戻れる。
・この20回くらいの Undo ならば、大して遅くは無いはず。
・出来あがった980回目の状態から、新しいコマンドの列を20回程度繰り返せば、目的のデータが
 完成する。

126デフォルトの名無しさん (ブーイモ MMea-DTGA)2019/03/26(火) 19:03:23.56ID:3EcUlBetM
>>80
プレーンオブジェクトと呼んだりするけどこれと言った決まりはない

127デフォルトの名無しさん (CA 0Haf-yVw/)2019/03/26(火) 19:19:11.31ID:NbUyZWCMH
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 58034
https://you-can-program.hatenablog.jp

128デフォルトの名無しさん (オッペケ Sr03-s8oI)2019/03/26(火) 19:28:00.58ID:6g954Hehr

129デフォルトの名無しさん (オッペケ Sr03-s8oI)2019/03/26(火) 19:31:16.28ID:6g954Hehr
あとキャラ一体でこのノード数は当たり前
これが何体もいる上に背景やらエフェクトやら物理演算、アニメーションブレンディングとかも同時にエディタ内でやってる
さらに裏側で動作させてるスクリプトも何百もあるし、APIとかも膨大に動いてる

ふらっと C#,C♯,C#(初心者用) Part142 	YouTube動画>1本 ->画像>9枚

130デフォルトの名無しさん (アウアウエー Sac2-0zLl)2019/03/27(水) 03:33:29.80ID:NpUsj5uAa
>>111>>114
ありがとうございます
なんとなくイメージはつかめました

131デフォルトの名無しさん (ワッチョイ 5f38-lyQy)2019/03/27(水) 08:27:38.52ID:bis+Aug70
>>80
昔はバリュークラスと呼ばれてた
C#的にはPOCOだな
あとDTOはEFと関係無い

132デフォルトの名無しさん (アウアウウー Sa2f-+6wG)2019/03/27(水) 08:50:32.86ID:vlf+N3dca
azure durable functionをオンプレで使いたいのだけど類似のオプソフレームワークってあります?
MQ使って再発明はダルいっす

133デフォルトの名無しさん (アウアウエー Sac2-pD1i)2019/03/27(水) 09:16:12.09ID:M3xZFaB+a
>>132
オンプレなのに態々縛りプレイをしたい理由は?
long-runningなスレッドでいいだろ

134デフォルトの名無しさん (ワッチョイ b301-0zLl)2019/03/27(水) 15:52:07.47ID:gKV0tUQi0
質問させてください。
win10でVisualStudioCommunity2017のC#WPFアプリでデスクトップ常駐ソフトウェアを趣味作成してます。
プログラミングスキルは、あちこちのサンプルソースやQ&Aのコードを参考になんとか期待通りの動作を作り上げてる程度の初心者です。

悩んでいる点は、本体右クリックメニューのチェックボックス付きMenuItemを選択した時にMainWindowクラスにprivate宣言してあるbool変数をトグル動作させているのだけれど、
タスクトレイアイコンの右クリックメニューに用意したチェックボックス付きMenuItemからも同じ事がしたいけど両MenuItemのチェック状態を同期させるにはどの様に作るのが良いのでしょうか?
本体右クリックメニューはMainWindow.xamlの<Window.ContextMenu>で作成、Sourceにproperties:Settings.DefaultをバインドしてClickにswitch切替関数を呼び出す様に設定してます。
タスクトレイアイコン右クリックメニューはMainWindow.csの_Loaded内でSystem.Windows.Forms.ContextMenu/System.Windows.Forms.MenuItemで作成してClickイベントをラムダ式(?)で記述してます。

説明するのに使う用語すらそこら辺から借りてきたもので大変恐縮ですがご指導の程宜しくお願いします。

135デフォルトの名無しさん (ワッチョイ b301-0zLl)2019/03/27(水) 16:01:59.45ID:gKV0tUQi0
最後の方、
「Clickイベントをラムダ式(?)で記述してます。」は
「Clickイベントを無名関数(?)で記述してます。」と言うべきだった気がしてきました。

136デフォルトの名無しさん (ワッチョイ 6b2d-5HBQ)2019/03/27(水) 16:24:53.59ID:ewJriyXK0
他のクラスを承継してクラスを作る時、承継元のクラスのコンストラクタを呼ばないようにするのってどうすればいいの?

137デフォルトの名無しさん (アウアウウー Sa2f-PJDB)2019/03/27(水) 17:16:29.24ID:/UUA2GqJa
>>134
・本体右クリックメニューの方は、xaml側でMenuItemにx:Nameを付けると.cs側で参照できる
・タスクトレイアイコンの方は、作成したMenuItemをフィールドに保持してあとで参照出来るようにする
として、「switch切替関数」と「Clickイベント」でbool変数をトグルさせた後に
各MenuItemのIsCheckedを設定すればできそう

以下余談
WPFでは内部状態とViewの同期はBindingという仕組みを使えば楽できるんだけど(ただし使いこなせるようになるまでが難しい)
タスクトレイ関係のコントロールが無いからWinForms側を使うしか無くて、結局Viewを直接触ることになるんだな……

>>136
無理
仮にそれが出来たら、継承元のprivate変数が未初期化のままコンストラクタが完了することになって
結局そのインスタンスは使い物にならない

138デフォルトの名無しさん (ドコグロ MM0b-pD1i)2019/03/27(水) 19:03:27.47ID:tQ4XPcUjM
>>131
POCOは特定のフレームワークへの依存を持たない普通のオブジェクトを指す言葉で、
決して振る舞いを持たないことを意味しているわけではない

139デフォルトの名無しさん (ワッチョイ 6b2d-5HBQ)2019/03/27(水) 19:54:30.82ID:ewJriyXK0
>>137
だめなのかあ・・・・ありがとう

140デフォルトの名無しさん (ワッチョイ 5f38-lyQy)2019/03/27(水) 20:06:11.69ID:bis+Aug70
うんだから
振る舞い無くてもPOCOでしょ

普段使いで貧血ドメインクラスなんてわざわざ言わないしな
ただのデータクラスって言ったり
わかる相手にはプレーンオブジェクトとか言うでしょ
コンテキストによってはレコード型と言ったりもするし

141デフォルトの名無しさん (ワッチョイ 077d-ABW3)2019/03/27(水) 21:21:06.39ID:LVKAuWEv0
アーキテクチャとか思想で呼び方は変わりそうね
3レイヤーアーキテクチャでアプリケーション層でのドメインモデルからview やjsonのための振る舞いを持たないクラスを俺はviewmodelかdtoとか呼んでるわ

142デフォルトの名無しさん (ワッチョイ b301-0zLl)2019/03/27(水) 21:32:05.17ID:gKV0tUQi0
>>137
取り敢えずフラグの切替、想定通りになりました〜(^^
x:Nameを付けた<MenuItem>を「MenuItem other = this.FindName("_AmenboModeMenu") as MenuItem;」で取得しました!
ググってる際中x:Keyなるものも見かけたので追加で調べておこうと思いました。
タスクトレイアイコン側のMenuItemは、元はMainWindow_Loadedイベント内で宣言していたものを「class MainWindow : Window」のフィールド(private)にしました。
これも取り敢えずWindow_Closingイベント内で.Dispose()する様にしたけど既にobject構造体上より上位のNotifyIconを「notify_icon.Dispose();」していたので不要なのかな?
.Dispose()、も少しちゃんと調べようと思います。

余談、ありがとうございました!
何やら理由があってタスクトレイアイコンにはWinFormsのメニューを使うのだと漠然と覚えていた所に
「WPFにタスクトレイ関係のコントロールが無いから」と明快な回答が得られてスッキリしました。
解説サイトの教科書的で読みづらい文章に比べて口語体で語って頂けたことですんなり入ってきました(^^v

さて、次は肝心の中身に取り組まなければ!!

143デフォルトの名無しさん (アウアウウー Sa2f-PJDB)2019/03/27(水) 22:04:09.72ID:/UUA2GqJa
>>142
x:Nameを付けたら this._AmenboModeMenu とフィールドとして扱える
インテリセンスが効くし、そのままの型で使えてキャスト不要になるし
.xaml側でx:Nameを変えて.cs側を変え忘れてもコンパイルエラーで気づけるから
.FindName()を経由するよりもフィールドで扱ったほうが楽

144デフォルトの名無しさん (ワッチョイ b301-0zLl)2019/03/27(水) 22:13:13.28ID:gKV0tUQi0
>>143
インテリセンスとかキャスト不要とかコンパイルエラーとか、間違いなくそちらの方が良いですね!
体系的知識皆無のコード切り貼りマンの自分では容易には辿り着けない領域・・・
ありがとうございます!早速書き替えてみます!

145デフォルトの名無しさん (ワッチョイ 4b2d-twBZ)2019/03/28(木) 01:00:26.73ID:VR7enf9Y0
List<List<T>>型のフィールドを含むオブジェクトのディープコピーを作る方法で、定石みたいなのがあったら教えて!!!

146デフォルトの名無しさん (ドコグロ MMcf-Fyvt)2019/03/28(木) 01:01:08.20ID:BGhBm4PEM
JSON.NETでシリアライズしてデシリアライズ

147デフォルトの名無しさん (スププ Sdbf-X1Z/)2019/03/28(木) 01:03:43.26ID:D80vvc+Qd
>>146
俺もこれ多用してる

148デフォルトの名無しさん (ワッチョイ 4b2d-twBZ)2019/03/28(木) 01:06:25.17ID:VR7enf9Y0
まじか、なんか無駄な作業してるような気もするけどこれは楽ちんだわ
ありがとう!

149デフォルトの名無しさん (ワッチョイ 3b61-Syny)2019/03/28(木) 01:43:57.78ID:yLTGLAEP0
.NETって、既にMSにレガシー扱いされているらしい。
老害って言葉を使うのが好きな若い人、良い経験だ。

150デフォルトの名無しさん (スププ Sdbf-X1Z/)2019/03/28(木) 02:25:09.30ID:BZLOzy32d
>>149
それは初耳
ソースは?

151デフォルトの名無しさん (アウアウウー Sa0f-X2Hi)2019/03/28(木) 05:36:01.82ID:eEmtiDxQa
.NET (Framework)はレガシー

152デフォルトの名無しさん (ドコグロ MMcf-Fyvt)2019/03/28(木) 08:08:08.64ID:BGhBm4PEM
レガシー
.NET Framework
WinForms
WPF
ASP.NET Classic
ASP.NET MVC
Entity Framework

Notレガシー
.NET Core
Windows Runtime
ASP.NET Core
Entity Framework Core

153 ◆QZaw55cn4c (ワッチョイ efe9-ZTi4)2019/03/28(木) 19:13:03.21ID:3LZYwZb10
>>152
win32api はレガシーですか?

154デフォルトの名無しさん (ワッチョイ 0ff2-9gjM)2019/03/28(木) 19:56:25.15ID:LUeUt0r60
WindowsOSがレガシーってか

155デフォルトの名無しさん (ワッチョイ cbe7-pAHx)2019/03/28(木) 20:16:09.20ID:zYMv+0+90
>>153
Windows Runtimeじゃないからレガシー

156デフォルトの名無しさん (アウアウエー Sa3f-+eZD)2019/03/28(木) 20:44:58.59ID:WadD1DGKa
昔ブルースウィリスがCMしてたね

157デフォルトの名無しさん (ワッチョイ 9fad-twBZ)2019/03/29(金) 07:46:13.85ID:Z1iKEAdk0
do
{
ch = (char)Console.Read();
} while (ch == '\n' | ch == '\r');
この文章の意味が分からないのですが改行と入力された文字が等しければってどういう意味でしょうか?
独習C#のコードなんですが…考え込まないで次に進んでも差し支えないですかね

158デフォルトの名無しさん (アウアウウー Sa0f-ZTi4)2019/03/29(金) 07:47:55.15ID:wTWZ6CmIa
改行も文字
文字コード調べろ

159デフォルトの名無しさん (ワッチョイ fb02-hx9e)2019/03/29(金) 08:02:33.20ID:Eeymx9+70
>>157
久しぶりなんで自信ないけど、先頭が改行な文字列(そんな文字列は改行だけ入力された場合だけ)が入力される間ループし続ける処理かな。
逆パターン(改行だけなら終了するループ)なら割とよく作る。

160デフォルトの名無しさん (ワッチョイ 9fad-twBZ)2019/03/29(金) 08:19:56.98ID:Z1iKEAdk0
>>159
質問に質問を重ねる形で申し訳ないのですが
先頭が改行な文字列とは何なのでしょうか?
コード全文はこんなhttps://ideone.com/Cf6l23感じなのですが…

161デフォルトの名無しさん (ワッチョイ 4f7c-/IFY)2019/03/29(金) 08:50:35.24ID:YK+WjxC90
先頭とかは気にしなくていいが
要は改行も文字の一種だからConsole.Read()で返されうるということ

162デフォルトの名無しさん (ワッチョイ fb02-hx9e)2019/03/29(金) 08:50:50.31ID:Eeymx9+70
>>160
いあ、ごめん。
ReadLineと勘違いしてた。
Readは1文字入力だ。
例えば

>abc

と入力しても

chには’a’しか入ってこない。

なので

>[Enter]で改行



chに\nが入る。
(OSによっては\rが改行)

163デフォルトの名無しさん (ワッチョイ 0f2c-injD)2019/03/29(金) 11:38:47.05ID:Vcbtlc+70
参考までに、漏れは、Ruby で、
ファイルの最後の1バイトが、改行コードかどうか? という処理を作った

CR(復帰、0x0D)、LF(改行、0x0A)
Windows は、CRLF, \r\n
Linux は、LF, \n
古いMac は、CR, \r

last_line = nil

File.foreach( "abc.txt" ){ |line| last_line = line }

p last_line.end_with?( "\n" ) # 末尾が、\n か?

164デフォルトの名無しさん (ササクッテロル Sp4f-9thl)2019/03/29(金) 11:45:21.84ID:NWe290lip
>>163
C#初心者スレで誰に対しての参考なんだよw

165デフォルトの名無しさん (ドコグロ MMcf-Fyvt)2019/03/29(金) 11:53:42.53ID:dNWrd6GAM
ここも次スレはタイトルに [Ruby禁止] が必要だな

166デフォルトの名無しさん (アウアウウー Sa0f-f1ke)2019/03/29(金) 14:02:16.54ID:4Qaz8P7sa
>>164
他のスレにもよく出没するruby気違いだよ。
ところ構わずrubyの話を始め、大した知識もないのに話に首を突っ込んで場を荒らす迷惑もの。
いくら叩いても消えないゴキブリのような存在だよ。

167デフォルトの名無しさん (ワッチョイ 0b88-U708)2019/03/29(金) 14:57:23.90ID:N6N7D78B0
仮にサンプルコードがrubyじゃなくても大した参考にならないレスだということに驚きを隠せない

168デフォルトの名無しさん (ワッチョイ 0fda-9gjM)2019/03/29(金) 15:21:01.41ID:kIHWJH0H0
厳密にいえば>>157だって
C言語レベルの質問だよな
いくら初心者用のスレとはいえさ。。

ふらっと C#,C♯,C#(初心者用(ただしC言語習得者に限る))
にすべき

169デフォルトの名無しさん (ワッチョイ cbe7-ycr5)2019/03/29(金) 15:26:30.90ID:BZTP93w70
>>168
コンソールの話であってC言語かは関係ない

170デフォルトの名無しさん (ワッチョイ fb02-hx9e)2019/03/29(金) 15:35:39.49ID:Eeymx9+70
タイトルに書いたところで来るのでNGワードRubyでおk

171デフォルトの名無しさん (スププ Sdbf-X1Z/)2019/03/29(金) 15:42:52.32ID:dPR72N5Kd
>>168
それは難癖すぎる

172デフォルトの名無しさん (ワッチョイ 4f0d-RfjL)2019/03/30(土) 01:56:39.15ID:nXZ9oX+k0
c#でデストラクタってスコープ外れたときじゃなくてGCが動くときに呼ばれるんだよね?
だとしたらみんなどういう処理に使ってるの?

173デフォルトの名無しさん (ワッチョイ 9f90-gufL)2019/03/30(土) 02:56:07.21ID:L65N8b2w0
スコープ外れたとき呼ばれようがGCの時呼ばれようがデストラクタはデストラクタだ。後処理が必要な時使えばいい。
例えば、メモリ動的確保したら後処理として解放する処理が必要だが.NETはGCで勝手にやってくれるし。
他にネイティブのハンドルとかオープンしたらクローズとか。

いつ呼ばれようがただのデストラクタだ

174デフォルトの名無しさん (ワッチョイ 9fad-tO+B)2019/03/30(土) 03:04:53.19ID:1YGxKDqg0
IDisporsableに書く処理を2重に書いておいて
using使わずにそのクラスを使われてしまった時の保険とか?

175デフォルトの名無しさん (アウアウウー Sa0f-X2Hi)2019/03/30(土) 07:16:33.58ID:kQToIs4ma
>>172
積極的リソース解放をし忘れた時の保険
つまりDispose呼びだしとロギング
それ以外の使い道は見たことないな

176デフォルトの名無しさん (ワッチョイ 4f0d-RfjL)2019/03/30(土) 08:26:04.36ID:nXZ9oX+k0
c++だとコンストラクタで割り込み禁止してデストラクタで割り込み禁止解除することで割り込み禁止解除の忘れを防ぐとか色々便利なんだけどね
呼ばれるタイミングがわからんとなるとクリティカルな処理はできないよね

177デフォルトの名無しさん (アウアウウー Sa0f-X2Hi)2019/03/30(土) 09:14:36.79ID:kQToIs4ma
そういうのはusingとDisposeでやればいい

178デフォルトの名無しさん (ワッチョイ fb5f-ycr5)2019/03/30(土) 09:17:58.21ID:MDhvoYYM0
>>176
C#ならIDisposableを実装してusingステートメントで使う

179デフォルトの名無しさん (ワッチョイ 9fad-0f50)2019/03/30(土) 13:28:45.76ID:wWTOiR4+0
>>176
C#やで?

180デフォルトの名無しさん (スププ Sdbf-X1Z/)2019/03/30(土) 13:59:44.65ID:rIDHHvWNd
ちなみにrubyだとどう実装するんですか?

181デフォルトの名無しさん (ワッチョイ cbe7-pAHx)2019/03/30(土) 14:18:07.24ID:pD47374c0
>>180
スレチ

182デフォルトの名無しさん (アウアウウー Sa0f-f1ke)2019/03/30(土) 14:52:39.92ID:xBHe+wwVa
>>180
変なのを呼び寄せる餌を撒くなよ

183デフォルトの名無しさん (ワッチョイ 8bda-buDD)2019/03/31(日) 14:31:51.70ID:+4KlqcXq0
変数の保存先なのですが、ローカル変数 = スタック、インスタンス実体 = ヒープらしいのですが、
以下のように、クラスに直接登録された変数/インスタンスはどこに保存されるのでしょうか?

class A
{
 int a = 0;
 static string b = "テスト";
 CLS cls = new CLS();
}

184デフォルトの名無しさん (アウアウウー Sa0f-2xPx)2019/03/31(日) 15:25:45.85ID:xPUGTMpba
>>183
値型と参照型の区別はついてる?
値型の変数には値型全体を表すためのメモリが割り当てられる
参照型の変数は参照先を示す値(=IntPtr)分だけメモリが割り当てられて、実際のインスタンスはヒープ中に割り当てられる
少し違う話になるけど、配列の場合について、要素が値型か参照型かでの図があったので貼っとく
https://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_005/csharp_abc02.html

例示されたAの場合、
まずbはstaticなのでどこかには確保される、詳しくは俺は知らない
A型のインスタンスは、Aが参照型なのでヒープ中に割り当てられる
aは値型なのでA型インスタンスの中に割り当てられる(=ヒープ)
clsは多分参照型だと思うけど、A型インスタンスの中には参照先を保持する分だけ割り当てられて(=ヒープ)、実体はヒープの別の箇所に割り当てられる

もっともC#だけで完結するコードなら、この辺の事柄は気にしなくてもいいとは思う
P/Invokeやunsafeを触りだしたら必要かもしれない

185デフォルトの名無しさん (ブーイモ MMbf-QZW3)2019/03/31(日) 16:51:41.45ID:Dsj4LhABM
>>184
黙っていた方がまし

186デフォルトの名無しさん (ワッチョイ 0ff2-9gjM)2019/03/31(日) 17:03:40.04ID:ik4O3ofo0
結局居DLLってなんなの?
クラスライブラリとかいってるけど結局動的な変数Orクラスってだけじゃない?

187デフォルトの名無しさん (スプッッ Sd4f-U708)2019/03/31(日) 17:32:15.95ID:AGgU+JAad
IL見ろ
ILとかよくわかんないっていうなら君はヒープだスタックだを気にする必要が一切無いと言うことだ

188デフォルトの名無しさん (ワッチョイ fb5f-ycr5)2019/03/31(日) 17:33:59.21ID:yskaDDV40
関連するクラスを集めたものがライブラリで、それを(動的に)再利用しやすいように格納したファイルの形式がDLL

189デフォルトの名無しさん (ワッチョイ 8b43-8I7Z)2019/03/31(日) 21:33:05.64ID:tjtvcp0f0
>>186
COM+とかの話見ると、C#のおとんおかんが凄絶な恋愛してたことがわかるから

190デフォルトの名無しさん (ワッチョイ 4f0d-RfjL)2019/03/31(日) 21:38:09.85ID:5U3jYzcD0
visual studioってコードの修正案提示してくれたりしてマジすげぇなと驚いてるんだけど最近のideってどれもこんなものなの?
ずっとsakuraとコンパイラで開発してきたから至れり尽くせり感に驚愕してる

191デフォルトの名無しさん (ワッチョイ cb63-qH4t)2019/03/31(日) 22:07:00.91ID:C25LHBco0
>>190
凄いよな。他には戻れない

192デフォルトの名無しさん (ワッチョイ fb02-nZHN)2019/03/31(日) 23:47:55.28ID:qnazkb5e0
FXの自動売買ツールを無料で配布しています。
http://hbgvf.blog.jp

193デフォルトの名無しさん (ワッチョイ 0f2c-injD)2019/04/01(月) 05:38:40.41ID:ymg/4x830
>>186
例えば、sqlite3 をダウンロード・解凍して、Ruby から使う場合、
sqlite3.dll を、Ruby内で読み込んで使う。
これは、同一プロセス内でのライブラリのロード

一方、sqlite3.exe を先に起動しておいて、Rubyからプロセス間通信する事もできる

この場合は、別プロセスとなり、sqlite3.exeがサーバー、
データベースへの問い合わせを行う、Rubyがクライアントとなる

つまり、dll・exeの違いは、同一プロセスかどうか

194デフォルトの名無しさん (アウアウウー Sa0f-RfjL)2019/04/01(月) 07:32:21.75ID:6ozVozxra
なんでc#スレでrubyをわざわざ例に出すんだ?
c#で説明すればいいだろ

195デフォルトの名無しさん (ワッチョイ 1f52-f1ke)2019/04/01(月) 07:59:11.65ID:0je6lfhB0
>>194
そいつ、どこでもrubyの話を持ち出すアホであちこちで嫌われている奴なのよ。スレによっては>>1にわざわざ書かれるほどの迷惑行為の常連者。

196デフォルトの名無しさん (ラクペッ MMcf-9ACB)2019/04/01(月) 08:36:41.35ID:yiuMv+kTM
またrubyガイジ沸いてんのか

197デフォルトの名無しさん (オッペケ Sr4f-Xesi)2019/04/01(月) 21:23:24.28ID:Cg9qg8Y/r
脳みそがrubyでできてるから仕方ないだろ

198デフォルトの名無しさん (アウアウカー Sacf-62N/)2019/04/01(月) 22:32:29.56ID:TxZW52uKa
realmとlistboxを連携させたいのだがやり方がよくわかりません
やりたいこととしては
realmからデータを引っ張ってきてlistboxで表示
listboxの操作でrealm内データの削除
です

199デフォルトの名無しさん (アウアウエー Sa3f-Fyvt)2019/04/01(月) 22:36:43.65ID:uqh5yY5fa
そういうコードを書けとしか

200デフォルトの名無しさん (ワッチョイ 4f0d-RfjL)2019/04/01(月) 22:50:57.30ID:oTYwjMDZ0
そこまで想定できてるならあとは手を動かすだけだろ

201デフォルトの名無しさん (ワッチョイ 4f0d-RfjL)2019/04/03(水) 00:06:26.60ID:2Gsx2Igw0
なんかGUIのツールを作ろうとしたときに、c#の対抗馬になるものってある?

202デフォルトの名無しさん (ワッチョイ 1b3c-r4m/)2019/04/03(水) 00:20:35.03ID:2j7I06hZ0
Electron

203デフォルトの名無しさん (ドコグロ MMbf-Fyvt)2019/04/03(水) 02:29:28.92ID:T2SUA4qZM
Electronの開発を主導してるのMSだしな
C#は生みの親に後ろからケツを全力で蹴られている格好

204デフォルトの名無しさん (ドコグロ MM3f-1rTY)2019/04/03(水) 08:21:08.64ID:P6TLGPRxM
javascript嫌いだからHTML+CSS+C#にしてくんねーかな

205デフォルトの名無しさん (ワッチョイ 1f47-X1Z/)2019/04/03(水) 08:29:21.76ID:WP/ATQFx0
typescript使うとかなりマシになる

206デフォルトの名無しさん (ワッチョイ 8b90-gufL)2019/04/03(水) 12:11:59.76ID:xn7iKSYA0
vs codeで利用してるかが、Githubを買収したらもれなくついてきだけだろ。
まさか、github買収はelectronが目当てだったとか?

207デフォルトの名無しさん (スップ Sdbf-6gzM)2019/04/03(水) 12:52:49.61ID:irKDOHSYd
>>206
で?

208デフォルトの名無しさん (ワッチョイ 8b90-gufL)2019/04/03(水) 12:59:39.22ID:xn7iKSYA0
>>207
馬鹿は無理して会話に交じらなくてOK

209デフォルトの名無しさん (ワッチョイ ab12-9ACB)2019/04/03(水) 13:18:39.14ID:rQfs7b7r0
>>208
で?

210デフォルトの名無しさん (オッペケ Sr4f-Xesi)2019/04/03(水) 14:47:51.95ID:57e5+lwMr
>>204
それが.Net Coreじゃね?

211デフォルトの名無しさん (ワッチョイ 6bad-twBZ)2019/04/03(水) 14:50:03.23ID:73sauU1q0
【令和】 徳仁 VS 世.堺教師マiトL-ヤ 【分合】
http://2chb.net/r/emperor/1554258711/l50

212デフォルトの名無しさん (ドコグロ MM3f-1rTY)2019/04/03(水) 18:46:36.25ID:P6TLGPRxM
>>210
.NET CoreにはGUIのフレームワークがないんだわ
一応UWP、WPF、Windows Formsと組合せて開発できる(現状はWindowsのみだったはず)けどそれなら普通にC#使うし…

213デフォルトの名無しさん (スップ Sdbf-6gzM)2019/04/03(水) 19:08:18.87ID:irKDOHSYd
>>212
え…WebはGUIやで

214デフォルトの名無しさん (オッペケ Sr4f-Xesi)2019/04/03(水) 19:57:10.57ID:57e5+lwMr
>>212
へ?フロントフレームワーク好きなの使えばいいじゃん
おまえいつの時代に生きてるんだよ

215デフォルトの名無しさん (アウアウウー Sa0f-TMDy)2019/04/03(水) 19:57:13.23ID:n4wxwcz+a
Web遅いやん

216デフォルトの名無しさん (ワッチョイ 9f01-1rTY)2019/04/03(水) 20:18:48.27ID:z8L5LERR0
>>213
話の流れぐらい読めよ…
>>>201
>> なんかGUIのツールを作ろうとしたときに、c#の対抗馬になるものってある?

>>214
だからそのフレームワークがどれもイマイチって話な

217デフォルトの名無しさん (ワッチョイ 8b7b-1RjH)2019/04/03(水) 20:22:50.49ID:NsKebegy0
もとの質問がスレ違いなのにいつまでやるの
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

218デフォルトの名無しさん (ワッチョイ 0ff2-9gjM)2019/04/03(水) 20:24:57.81ID:VrtD8aF20
なぜUWP・WPFというクソを生み出してしまったのか

219デフォルトの名無しさん (ワッチョイ 9fad-6gzM)2019/04/03(水) 20:27:20.36ID:xnkmZns10
>>216
GUIって表現がおかしいことを認めようとしないクズ

220デフォルトの名無しさん (ドコグロ MM4f-1rTY)2019/04/03(水) 21:08:42.50ID:559k4PZzM
ガイジかよw

221デフォルトの名無しさん (ワッチョイ fe0d-AWsO)2019/04/04(木) 00:57:03.82ID:ZN2gQ81o0
pythonで実装できるからと思ってtkinterに浮気してみたけどやっぱ.netってすげぇ便利だったんだなと思えたよ
GUI開発は開発環境含めて評価すべきだわ

222デフォルトの名無しさん (ワッチョイ ed61-yEdN)2019/04/04(木) 01:51:05.61ID:IOgreNy50
>>221
GUIで配置できるって点だけじゃね?

223デフォルトの名無しさん (ワッチョイ b901-nB65)2019/04/04(木) 02:37:37.19ID:iJ70eOZ40
iPhoneでAppstoreが成功して、カッコ良ければ売れるんだと思い、
ググルプレイが成功して収益管理まで提供したら売れると思ってたら
窓電話は不発、デスクトップでストアアプリ探さないから売り物さえ並ばない。
成功者は金の回りを用意して市場を作った。
MSは市場を作ろうとして壁を作った。

224デフォルトの名無しさん (ワッチョイ 01dc-iMOx)2019/04/04(木) 23:45:04.92ID:CMDWj0ay0
C#は、関数の引数は基本的に値渡しということですが、これ本当ですか?
unityで、引数にrefをつけて参照渡ししてるサンプルって見たことがないです。
すごくメモリ効率が悪い気がするのですが・・・

225デフォルトの名無しさん (ワッチョイ 02ad-hvIZ)2019/04/04(木) 23:53:18.48ID:8Z7mdjDJ0
>>224
なんで悪いと思うの?

226デフォルトの名無しさん (ワッチョイ c6a6-ASFE)2019/04/05(金) 00:02:47.99ID:W1wYJ7EV0
どうでもいい事でよくそんなに議論できるよな

227デフォルトの名無しさん (ラクペッ MM59-9Thk)2019/04/05(金) 00:05:27.61ID:8GSOh3MvM
どうせいつもみたいに値渡しだからオブジェクトが全部コピーされちゃうよ〜
みたいな奴だからうんざりする

228デフォルトの名無しさん (ラクペッ MM59-9Thk)2019/04/05(金) 00:08:41.76ID:8GSOh3MvM
巨大な構造体の場合は値渡しがボトルネックになる場合もなくはない
クラスの場合はどんなにデカかろうが参照しかコピーされないから関係ない
値渡しなのに参照なんですか?とか聞くな
うるせえなそういう仕組みだと思ってろ

229デフォルトの名無しさん (ワッチョイ 7d5f-iE/E)2019/04/05(金) 00:20:17.79ID:kZ8w9alb0
>>224
クラスは参照型で、引数にした時は参照の値渡しになるから、心配するようなことにはならない。
構造体は値型だけど、あまり使わない。

230デフォルトの名無しさん (ワッチョイ fe0d-AWsO)2019/04/05(金) 00:25:11.16ID:Zwa/Lf0S0
c#の構造体って書き方がほぼクラスみたいなもんだからcの構造体と比較するとすごく違和感ある
ここまで書くならクラスでええやん

231デフォルトの名無しさん (ワッチョイ ed61-yEdN)2019/04/05(金) 00:56:02.91ID:UeOvQxG40
インスタンスを設定したがわが保持って置かないと死ぬときもあるしそうでないときもある
ループで生成しまくる処理のときはこちらでインスタンスを管理しないと
表示するたびに生成しまくって
前のは消されてない
ライブラリの中でほじってるらしくて
消そうと思っても消えない
って状態になることも多い

232デフォルトの名無しさん (ワッチョイ eef2-iMOx)2019/04/05(金) 00:57:09.43ID:N3n7oHyA0
>>231
これあるあるだわ
管理ダルいからスコープ決めてインスタンス作ってるわ

233デフォルトの名無しさん (ワッチョイ 7e7c-K5C6)2019/04/05(金) 08:44:21.30ID:x8OJz+Ud0
>>230
既定のアクセシビリティの差しかないC++の悪口かな?

234デフォルトの名無しさん (ワッチョイ ed61-iMOx)2019/04/05(金) 09:44:01.09ID:0L4pmkxC0
構造体て値の全コピーが楽なぐらいで無理に使う必要ない

235デフォルトの名無しさん (ササクッテロル Sp91-5bPd)2019/04/05(金) 10:43:00.62ID:zi2/La8Bp
GCの起動サイクルがクリティカルに影響したりネイティブとの相互運用等
無理してというより必要な時のみ使うものだからね

236デフォルトの名無しさん (ワッチョイ c201-j9UZ)2019/04/05(金) 12:09:16.02ID:85UtCV7c0
サブフォームFORM2を作って右上の×で消した時どうすれば(どこを調べれば)よいですか?

FORM2 form2 = new Form2();

237デフォルトの名無しさん (ドコグロ MM01-yEdN)2019/04/05(金) 12:25:16.27ID:R01axtSvM
>>232
そうやってもライブラリの中の人まで死ぬ保証はないかもしれないしあるかもしれない

238デフォルトの名無しさん (ワッチョイ 7e7c-K5C6)2019/04/05(金) 13:21:34.57ID:x8OJz+Ud0
>>236
質問の意味がよく分からん
閉じたときに何かしたいならFormClosedイベントだけど

239デフォルトの名無しさん (ワッチョイ eef2-iMOx)2019/04/05(金) 19:45:13.46ID:N3n7oHyA0
>>237
さすがに広く使う変数は
パラメータークラス作って使いまわしますよ

240デフォルトの名無しさん (ワッチョイ c201-j9UZ)2019/04/05(金) 22:56:55.47ID:85UtCV7c0
>>238 意味不明な文章ですみません。聞きたい質問は以下のことです。

サブフォームFORM2を作って右上の×で消した時とサブフォームを消してない時は
どのようなコードを書けば判別できますか?

241デフォルトの名無しさん (ワッチョイ ed61-yEdN)2019/04/05(金) 23:05:30.38ID:UeOvQxG40
>>240
ちっともわからん

242デフォルトの名無しさん (ワッチョイ ed61-yEdN)2019/04/05(金) 23:13:56.69ID:UeOvQxG40
>>240
Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?

243デフォルトの名無しさん (ワッチョイ ee7b-O+pl)2019/04/05(金) 23:14:11.83ID:cVRKM8Bg0
>>240
「右上の×で消した時」はわからないが
フォームがDispose(Close)されているか form2.IsDisposed
フォームが表示されているか form2.Visible
具体的に何が目的かを書いてもらった方が答えやすいと思う

244デフォルトの名無しさん (アウアウエー Sa8a-r89a)2019/04/06(土) 02:06:32.31ID:m4qLgJ3pa
>>240
真面目に何言ってるのかさっぱり分からんから、投稿する前に読み手の立場に立って
文章推敲することを覚えた方がいいよ。

これ、プログラミングのスキルより何倍も重要
いやほんと煽りとか抜きに。

Formが閉じられた原因を知りたいなら↓だけど、
それなら普通ググって自己解決してるはずだと思うから違うんだろうね
http://dobon.net/vb/dotnet/form/unloadmode.html

245デフォルトの名無しさん (ブーイモ MMa2-yhdD)2019/04/06(土) 02:30:19.50ID:5XTKYZffM
多分form1からボタンクリックでform2を開いてそのform2が閉じられたことをform1で検知したいってことなんじゃないか?

246デフォルトの名無しさん (ワッチョイ fe0d-AWsO)2019/04/06(土) 02:55:07.02ID:MT95SofI0
var変数って便利だけど初期化必須だから惜しいなと思うことがある
例えばとりあえず広いスコープで宣言しといて後のfor内とかで使おうとしたときにここはfloatで扱いたいな→結局宣言箇所をfloatに書き直すのか・・・ってなったり
書きながら考えるときの補助として使おうとすることが間違ってると言えばその通りだけどね

247デフォルトの名無しさん (ワッチョイ 012d-c04X)2019/04/06(土) 03:20:06.81ID:QWD6tIIM0
非同期処理A内でタスクBを生成した場合について教えてほしいのですが、
Aのスレッドが抜けてしまったり、あるいはAのタスクが終了してしまった場合でもタスクBは生き続けるんですか?
Aの終了とともにBも終了させるようにはできないのでしょうか?

248デフォルトの名無しさん (ワッチョイ 4dda-QOAl)2019/04/06(土) 05:50:01.71ID:9VymyaU60
出来るけどリークするぜよ

249デフォルトの名無しさん (ワッチョイ eee3-iMOx)2019/04/06(土) 09:32:18.73ID:WatgyYvN0
>>247
CreateLinkedTokenSourceで複数タスクにまたがるCancellationTokenSource作ればいいんじゃね

250240 (ワッチョイ c201-j9UZ)2019/04/06(土) 10:07:54.08ID:hyh7Xf1q0
>>243 form2.IsDisposed で閉じたかどうか判定できました。ありがとうございました。

文章が分かりにくいみたいですが243みたいな超能力者がレスしてくれれば良いのです。
>>245の説明の通りですが「教えてください」って書いても放置されることが結構あるので神レス243のほうがありがたいです。

251デフォルトの名無しさん (アウアウウー Sac5-gCYp)2019/04/06(土) 10:13:25.13ID:12K3yeCTa
>>246
ああ、良くないと思うぞ。
変数が必要になったら想定される範囲でなるべく小さいスコープで宣言して、それで足りなければスコープを見直すか設計そのものを見直すくらいのがいいと思うよ。

252デフォルトの名無しさん (ワッチョイ ee63-9Thk)2019/04/06(土) 11:19:51.64ID:1moq2C1C0
>>250
ガイジは死ね

253デフォルトの名無しさん (ワッチョイ 7d5f-iE/E)2019/04/06(土) 11:27:56.56ID:j7WnBgX90
>>250
意味不明な質問してたらそりゃ放置されるわな

254デフォルトの名無しさん (アウアウウー Sac5-gCYp)2019/04/06(土) 11:31:41.71ID:ts7XFDpTa
>>250
放置されることが結構あるということは、これまでも質問のしかたが下手だったか、態度が悪かったか、頓珍漢なことをいっていたか、等々、なんらか自分側にも問題があるとは思わなかった?
答えてくれない方が悪い!ではいつまでたっても改善しないし、周りも困らせることになるよ。

255デフォルトの名無しさん (ワッチョイ fe0d-AWsO)2019/04/06(土) 15:23:17.78ID:MT95SofI0
マネージャーがまさに自分の視点でしか話をしないから意味を推察するのにめちゃくちゃ苦労してる
しかもマネージャーだから放置も無視もできないしめんどくせぇ

256245 (ブーイモ MMa2-yhdD)2019/04/06(土) 15:58:43.28ID:2DuVrQtfM
>>250
逝ってよし

257デフォルトの名無しさん (ワッチョイ ed61-yEdN)2019/04/06(土) 16:39:47.93ID:MA8UEjRg0
アストラルサイドの話はちょっと

258デフォルトの名無しさん (ワッチョイ 012d-c04X)2019/04/06(土) 18:24:20.03ID:QWD6tIIM0
>>248
教えてもらって悪いんだけど、一体どういうことなんだぜ?

259デフォルトの名無しさん (ラクペッ MM59-XtN3)2019/04/06(土) 19:26:12.20ID:nnViyGGtM
実現したいならタスクBが走ってるスレッドを殺すしかないが
その場合ILが半端なところで止まってクリーンアップ処理が正常に走らないからリークする
嫌なら249が言ってるような方法でタスクが自発的に止まるしかない
好きにしたらいい

260250 (ワッチョイ c201-j9UZ)2019/04/06(土) 20:05:47.05ID:hyh7Xf1q0
>>254 そうじゃなくて、質問して「質問は・・ということなの?」的なレスが返ってきた状況のときに
「そうです。解決方法を教えてください」ってその人にレスしても放置されることが多々あるという経験を書いただけ。
別に質問の大半が放置されたわけではないよ。
あと理系の人が書いた本とかマニュアルは難解でも当方は理解しますし「分かりやすく書けや」とはそれほど思いません。
理解しやすい文章を書けと思う人は経験不足です。

261デフォルトの名無しさん (ラクペッ MM59-9Thk)2019/04/06(土) 20:12:41.03ID:gcTy2CwVM
はやくゴミクズから人間になろうな

262デフォルトの名無しさん (ワッチョイ ed61-yEdN)2019/04/06(土) 20:15:14.96ID:MA8UEjRg0
でも>>236>>240ってわかりにくい云々の前に
頭がおかしいレベルだよね?
流石に今後の人生のために改善したほうが良くね?

263デフォルトの名無しさん (ワッチョイ fe0d-AWsO)2019/04/06(土) 20:28:05.68ID:MT95SofI0
質問の意味を確認される時点でそもそも伝わりにくい文章だと思うけど。
コミュニケーションは相対的なものとはいえ、相手に負担を押し付けるやりとりをしていることに気づいてないのでは。

264デフォルトの名無しさん (ワッチョイ 7d5f-iE/E)2019/04/06(土) 20:43:07.38ID:j7WnBgX90
>>260
一緒にしたら失礼。
難解な本は読み手に前提となる知識が足りないから読み難いが、書くべきことはちゃんと書いてある。
あなたのは書くべき情報が欠落していて単に文章として破綻してるだけ。ついでにその後のコミュニケーションも酷過ぎる。

265250 (ワッチョイ c201-j9UZ)2019/04/06(土) 20:44:56.97ID:hyh7Xf1q0
240見直したけど
「サブフォームFORM2を作って右上の×で消した時」が分かりにくいかな?
※1 form2 = new Form2();
※2 form2.Show();
「サブフォームFORM2を作って※1表示した後※2にFORM2の右上の位置の×をクリックしてFORM2を閉じた時」

って書かないと駄目だったのかな?でも回答を教えてくれた人居るし分かってほしいな〜

266デフォルトの名無しさん (ワッチョイ 8201-xk87)2019/04/06(土) 20:58:19.18ID:YyWMpA9h0
いや、動作がわからないんじゃなくてお前さんがやりたいことがわからないって話な

267デフォルトの名無しさん (スプッッ Sd02-eHKK)2019/04/06(土) 21:01:04.80ID:Gnot3kBPd
小手先に頼らず全部書け
質問に関係なさそうなところも全部書け
関係ないと断言できるだけ知識があるならそもそも質問は生まれない
だから頭からケツまで全部書け
全部書いたつもりでも情報は足りないんだから小学生に伝えるつもりで書け

268デフォルトの名無しさん (アウアウエー Sa8a-r89a)2019/04/06(土) 21:01:50.77ID:J4U0pcz9a
いわゆるバカの壁だねw
彼はたぶん自分の何が問題なのか本気で分かってない。

仕事で取引先とかとメールでやりとりしてる人なら同意すると思うけど、
日本人は案外彼みたいな人が多い。
多いというか、日本人全体を母集団にとるとたぶん90%以上が彼みたいなタイプだw

これは(実は案外昔から指摘されてるんだけど)日本の初等教育に問題があるんだよねw
日本の国語教育は何であんなくだらない文学観賞と子供を嘘つきにする作文に偏重してるのか。

思いっきりスレ違いなのでこの辺で

269デフォルトの名無しさん (ワッチョイ 6252-gCYp)2019/04/06(土) 21:01:55.77ID:ZE/404d00
>>260
理系の人が書いている文章は、内容が難解であっても文意は明確で読みやすい。君の文章はそうではない。むしろ逆で、平易なことが上手く伝えられず理解してもらえない。
君が「難解だが上手い文章」を読みやすいということと、他の人が「君の下手な文章」を理解しにくいということはまったく別のことだが、何でそこから他人を経験不足だと断じる結論になるのだろうか?
君の方が、他人とのコミュニケーションについて経験不足なのでは?

他人に理解してほしいというのは自然な欲求だが、相手に労力を求めるのでなく自分が理解される努力をしなよ。

270250 (ワッチョイ c201-j9UZ)2019/04/06(土) 21:25:08.15ID:hyh7Xf1q0
>>266-269
要するに、やったことが無いから何故俺がそれをやりたいことがわからないんだね。
でも回答を教えてくれた人居るし・・。

271デフォルトの名無しさん (ワッチョイ 61e7-YufY)2019/04/06(土) 21:26:09.76ID:Hw9bu2CQ0
>>240は「右上の×で消した時」が分かる人には引っ掛け問題になってるな
単に「サブフォームが閉じられたかどうかを判別したい」なら問題なかった

初心者スレだから質問者の文章が分かり難くてもある程度はしようがないし
>>240もその範疇だと思うけど、>>250はあり得ない
叩かれまくってるが自業自得だ

272デフォルトの名無しさん (ワッチョイ 3d17-iMOx)2019/04/06(土) 21:31:28.36ID:7yOX3K990
>>270
何度も書かれているけれどお前の説明が致命的に下手すぎるのが原因

273デフォルトの名無しさん (ワッチョイ 8261-gjr1)2019/04/06(土) 21:49:22.76ID:l9A0t+NU0
>>260
>質問して「質問は・・ということなの?」
っていうのは、おまいさんの質問文そのままじゃわからないので経験を加味して質問文を解読して少しでも回答できるやつを増やそうとしてくれてるんだよ。
おまいさんの質問文そのままじゃ超絶エスパーがスレに降臨するまで話がすすまないよ。

274デフォルトの名無しさん (ワッチョイ ee63-9Thk)2019/04/06(土) 21:50:12.97ID:1moq2C1C0
いろいろな人がいろいろな表現で指摘しているけど、
結局のところのお前が程度が他人とコミュニケーション取るレベルに至ってないって指摘だ

早く人間に達しろゴミクズ

275デフォルトの名無しさん (ワッチョイ 8201-xk87)2019/04/06(土) 22:35:24.43ID:YyWMpA9h0
>>270
> 要するに、やったことが無いから何故俺がそれをやりたいことがわからないんだね。
逆、下手に「右上の×で消した時」とか書くからやりたいことがわからないって話
フォームの閉じ方は「右上の×で消す」だけじゃないから知ってる人は特別に「右上の×で消した時」を区別したいのか?とか思うんだよ
>>242-243でも指摘されてるだろ

> でも回答を教えてくれた人居るし・・。
>>243はかなり親切だからいくつかのケースを書いてくれてるけどそれでも
> 具体的に何が目的かを書いてもらった方が答えやすいと思う
って書かれてる意味を考えなよ

276デフォルトの名無しさん (ワッチョイ c6a6-ASFE)2019/04/06(土) 22:47:01.10ID:ZtBD8DJx0
みんな優しいな

277デフォルトの名無しさん (ワッチョイ c201-j9UZ)2019/04/06(土) 23:04:06.29ID:hyh7Xf1q0
>>275

>242 Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?
242には触れたくなかったけど、こんなこと240に書いてないし242は馬鹿なんだと思う。
それをおかしいと思わない275もどうかなと思う。close()で閉じてもIsDisposedで判別できるし
何で気にするか分からないな。ていうかウィンドウの右上にXが無いのかな?

278デフォルトの名無しさん (ワッチョイ 7d5f-iE/E)2019/04/06(土) 23:14:09.25ID:j7WnBgX90
>>277
日本語が拙いから推測されただけだろ。エスパー求めてるのに何言ってる。

279デフォルトの名無しさん (ワッチョイ fe0d-AWsO)2019/04/07(日) 00:08:13.42ID:fnPZIWU30
ここまでいろんな人が指摘してるのに論点が噛み合わないのは逆に逸材なのでは
なんかモスバーガーの包み紙のスレを思い出した

280デフォルトの名無しさん (ワッチョイ 69b0-umYY)2019/04/07(日) 00:36:33.50ID:yNnH+Rdg0
初歩的な質問で申し訳ないのですが、c#のガベージコレクション機能は循環参照状態にあるインスタンスも破棄してくれるのでしょうか?
暫く調べたのものの「リークするから弱参照を使う」「GCに頼っていい」「javaなど一部言語は破棄する」など多くの話があり混乱しています
より専門的な、ガベージコレクションの内部的な仕組みそれ自体を説明しているサイトは私の知識では理解できませんでした

例えばa→b→c←→dという向きで参照しているインスタンスの組み合わせがあったとして、
aからbの参照を切ってもGCで回収されるのはbだけでcとdの組は残り続けるのでしょうか

281デフォルトの名無しさん (ワッチョイ c201-j9UZ)2019/04/07(日) 00:37:08.32ID:AJMxYZfA0
でもさぁ、サブフォームをXボタンで閉じた時と閉じてないときの判別方法を聞いてるのに

>242 Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?
で選択肢が1個増えて余計ややこしくしてるだけだし

本当に240だけの問題なの?241=242=262の頭に問題は無いの?

282デフォルトの名無しさん (ワッチョイ ed61-yEdN)2019/04/07(日) 00:40:32.22ID:Lr+Z70d50
じゃあ、もう一回確認な

サブフォームFORM2を作って右上の×で消した時
どうすれば(どこを調べれば)よいですか?



A=サブフォームFORM2
B=右上の×で消した

で置き換えたとき

Aを作ってBのとき
どうすればよいですか?

って何言ってるのかさっぱりわからないよね?
これで世の中渡っていけると本気で思っているのか?

283デフォルトの名無しさん (ワッチョイ ed61-yEdN)2019/04/07(日) 00:44:13.15ID:Lr+Z70d50
>>281
じゃあ、質問に答えてね

サブフォームFORM2を作って右上の×で消した時どうすれば(どこを調べれば)よいですか?

284デフォルトの名無しさん (ワッチョイ 7d5f-iE/E)2019/04/07(日) 00:49:36.20ID:vK2HJm7v0
>>282
気持ちは分かるが落ち着けw
>>236>>240で意味不明だっと認めて訂正してるぞ。

285デフォルトの名無しさん (ワッチョイ ed61-yEdN)2019/04/07(日) 00:55:57.83ID:Lr+Z70d50
>>284
そんなの考慮する必要ない
だって彼にもその気はないんだから

286デフォルトの名無しさん (ワッチョイ 6252-gCYp)2019/04/07(日) 01:00:11.33ID:h90p5IeD0
>>281
いったい何に拘ってるんだ?そこまで自分に非があることを認めたくないのか?
>>241,242で君の説明が理解されなかったのは別に変でもないし頭がおかしいという訳ではないぞ。>>262も攻撃的ではあるが頭がおかしいというのとは違う。

誰も>>241等のレスに無関係に、君の一連のレスに対して、説明が下手であること、態度に問題があること、それについて君がいっこうに理解できていないことを指摘しているだけ。

287デフォルトの名無しさん (ワッチョイ 6247-fpxN)2019/04/07(日) 01:58:10.82ID:73jPe6360
>>280
こっちの話の方が面白そうだよ

288デフォルトの名無しさん (ワッチョイ e500-iMOx)2019/04/07(日) 05:53:56.72ID:vRdyA0zq0
>>280
そういう単純なケースならc,dともに回収されるので気にするな

289デフォルトの名無しさん (アウアウウー Sac5-dKzD)2019/04/07(日) 06:41:43.95ID:u8jd6Keja
>>280
GCの方式が参照カウンタ方式というものなら循環参照があると回収されないけど
C#(.NET)は世代別GCという方式だから循環参照があっても未使用なら回収される
> 例えばa→b→c←→dという向きで参照しているインスタンスの組み合わせがあったとして、
> aからbの参照を切ってもGCで回収されるのはbだけでcとdの組は残り続けるのでしょうか
b, c, dが他から参照されていなければ、b, c, dすべて回収される

290デフォルトの名無しさん (ワッチョイ 8201-xk87)2019/04/07(日) 07:40:40.19ID:AvqFg2320
>>277
う~ん、引っ込みがつかなくなってるのか本当に初心者で何を指摘されてるのか理解できてないのかよくわからんけどここ初心者用だから初心者として仮定して…
Xボタンでフォームを消すと言うのはどちらかと言うと一般的じゃない(普通のフォームならOk/Cancel/閉じるボタン等を配置するよね)ので「右上の×で消す」と書くとなにか特別なことをしようとしてるのかと思われるの
ただ初心者だとXボタンで消すのが当たり前と思ってる人もいるから確認の為に>>242みたいなことを聞いてるわけ
あとそもそもサブフォームの状態を調べると言うのもあまり一般的じゃない
GUIだとイベントで処理するのが普通だから>>238みたいなことを言われる

291デフォルトの名無しさん (ワッチョイ 8201-xk87)2019/04/07(日) 07:58:43.91ID:AvqFg2320
>>280
初歩的な質問じゃない気がするがw
まあこのスレとしては「GCに頼っていい」が正解かな
>>289も書いてるけどGC持ってる最近の言語の実装は世代別(と言ってもたいてい2世代だけど)GCになってるのが多く最終的にはマーク&スイープで回収されるのが一般的なので全部回収されると思ってていい

292デフォルトの名無しさん (ワッチョイ 69b0-umYY)2019/04/07(日) 14:00:44.14ID:yNnH+Rdg0
>>287-289,>>291
ありがとうございます、助かりました
もう少しC#に慣れるまでメモリ管理は忘れます

293デフォルトの名無しさん (ワッチョイ 617b-xKOO)2019/04/07(日) 16:38:33.55ID:gLMV6b6F0
Listboxにデータをバインディングするときに、XAMLにBinding記述する方法と、コントロールに名前を付けてコード上からやる方法がありますが、どちらがよいのでしょうか

294デフォルトの名無しさん (ワッチョイ ee2c-jHdF)2019/04/07(日) 18:07:02.76ID:yVw8pf+H0
好きにすれば良いけど転がってるサンプルコードはほぼXAMLでやってるな

295デフォルトの名無しさん (ワッチョイ 2eda-iMOx)2019/04/07(日) 18:24:40.28ID:bCl1La9L0
GCがちゃんと動いてオブジェクトが解放されたのかは、デストラクタに
Console.WriteLine("解放されますた!");
と書いておくと安心できる。
メモリリーク発生の可能性も減る。

296デフォルトの名無しさん (ラクペッ MM59-9Thk)2019/04/07(日) 18:48:15.95ID:zc2PfqGUM
>>295
心の安寧が欲しいなら止めないけど
C#では、パフォーマンスを低下させるため、プログラムの動作に必要がない
ファイナライザを実装すること自体が推奨されないことは、知っておいた方がよい

パフォーマンスが低下するのは、ファイナライザの実装されていると
GC時にファイナライザキューを介してファイナライズが行われるが
このファイナライズを行う際はStop the worldする必要があるためだ

ファイナライザを保険として実装した上で、前述のパフォーマンス低下を避けるには
自分でファイナライザ相当の処理をした上でSuppressFinalizeを呼び出しておく必要がある
この場合、ファイナライザは実行されなくなり、パフォーマンスの低下も起きない

297デフォルトの名無しさん (アウアウウー Sac5-dKzD)2019/04/07(日) 18:49:09.04ID:QS/EO+8da
デストラクタにはなるべく頼らないようにしようぜ
デストラクタを記述するにしてもDispose()されたときにGC.SuppressFinalize(this)しようぜ

>>295
出力の有無でメモリリークに気づける可能性はあるが「発生の可能性も減る」について詳しく

298デフォルトの名無しさん (ワッチョイ c201-j9UZ)2019/04/07(日) 19:36:38.60ID:AJMxYZfA0
既にスレを荒らした状態になってるから、もうこれで最後にするけど

>>290
の上8行「右上の×で消す」という書き込みは初心者が使うフレーズだから
中〜上級者の俺様は深読みして間違えたと解釈したけど
本物の中上級者でも「右上の×で消す」の意味は「右上の×マークをクリック
して窓を消す」以外ありえません。そういうわけであなたは
初心者でも中〜上級者でもない別の何かです。

初心者の書く「右上の×で消す」の文が不満で何で
「Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?」
何で選択肢が増えるんだよw
プログラムより国語の勉強しないと。
回答側に回りたいなら模範回答できる質問だけにしてください。

299デフォルトの名無しさん (ワッチョイ 8201-xk87)2019/04/07(日) 19:41:49.21ID:AvqFg2320
>>298
> 「右上の×で消す」の意味は「右上の×マークをクリックして窓を消す」以外ありえません。
どうしたらこんな頓珍漢なレスができるんだよ…
誰もその意味がおかしいとか言ってるわけじゃないぞw

300デフォルトの名無しさん (ワッチョイ c201-j9UZ)2019/04/07(日) 20:15:40.25ID:AJMxYZfA0
>>299 何でイベントのclosedでは駄目かというと、閉じた瞬間の情報が欲しい訳ではないからです。
窓閉じてしばらくして閉じたかどうか知りたいってことなので。なんでそんなこと知りたいんだよ(怒)
って言われても別にいいだろとしか。c#はイベントで処理するからって考えの人にあれこれ
言う義務は俺には無いよ。

301デフォルトの名無しさん (アウアウウー Sac5-dKzD)2019/04/07(日) 20:16:16.95ID:QS/EO+8da
>>298
初心者様ってすごいね
ちゃんとした回答が欲しいなら質問をちゃんと書いてね
https://teratail.com/help/question-tips#questionTips3
ここは5chだから多少は違いがあるけど「正しく伝わる質問の仕方」は同じだよ

302デフォルトの名無しさん (ラクペッ MM59-9Thk)2019/04/07(日) 20:32:13.15ID:E1covCOyM
昨日今日はどのスレもこんなのばっかりだぜ
金払ってスクールでも通えよって

303デフォルトの名無しさん (ワッチョイ 8201-xk87)2019/04/07(日) 20:37:07.02ID:AvqFg2320
>>300
別に閉じてるかどうかを知りたいことがないわけじゃなくて珍しいって話な
たいていの場合はなにか設計がおかしい可能性が高い
まあ俺に影響あるわけじゃないから好きにすればいいと思うけどw

304デフォルトの名無しさん (ワッチョイ c201-j9UZ)2019/04/07(日) 20:56:30.81ID:AJMxYZfA0
>>301
回答は貰ったんだよ。

質問はその後訂正してる。他の上級者は理解して神回答を頂きました。
>>281-285見たら誰が問題か分かる。284に変なレスしてる奴。

C#はイベントだけで処理すると考える学生がイベントのclosedで解決すると思ったら
解決しないから発狂してキチガイとか日本語が変とか難癖つけたんだろ。

305デフォルトの名無しさん (ワッチョイ ee63-9Thk)2019/04/07(日) 21:09:42.81ID:aPMrZc410
ゴミクズにレスつけてる奴も死なねえか
お前のせいで終わらんのやぞ

306デフォルトの名無しさん (アウアウウー Sac5-dKzD)2019/04/07(日) 21:39:33.31ID:QS/EO+8da
>>304
質問内容に >>300 中の「閉じた瞬間の情報が欲しい訳ではないからです。窓閉じてしばらくして閉じたかどうか知りたい」
という内容も書かれていたら、最初から正しいIsDisposedの回答だけが得られたかもしれないね
「学生」を罵り言葉として使っているということは社会人かな?
その態度を貫けるくらいには沢山エスパーが居る会社なのかな、凄い環境だなあ

307デフォルトの名無しさん (ワッチョイ ed61-yEdN)2019/04/07(日) 21:59:51.43ID:FnnSZHMw0
>>298
え?じゃあ聞くけど

サブフォームFORM2を作って右上の×で消した時どうすれば(どこを調べれば)よいですか?

FORM2 form2 = new Form2();

308デフォルトの名無しさん (ワッチョイ a101-yJ3O)2019/04/07(日) 22:30:58.81ID:RA8LBCNw0
オフショア開発してるけどこんな訳わからない質問ばっかで気が狂いそうになるよ
エスパー能力欲しいなぁ

309デフォルトの名無しさん (ワッチョイ 8201-xk87)2019/04/07(日) 22:31:35.27ID:AvqFg2320
>>306
まあ引っ込みつかなくなってるんだろうね
学生云々は不問にするとしても
> C#はイベント「だけ」で処理すると考える
とか誰も書いてないことを言い出してるしw

310デフォルトの名無しさん (ワッチョイ fe0d-AWsO)2019/04/07(日) 23:15:27.17ID:fnPZIWU30
この議論はGCに処理してもらおう

311デフォルトの名無しさん (ワッチョイ 6252-gCYp)2019/04/07(日) 23:52:46.05ID:h90p5IeD0
>>310
なるほど。この無価値な議論の中身を気にして参照してるのはもはや当人同士の循環参照のみだから、>>289に書かれている通り世代別GCで回収されるわけですな。

312デフォルトの名無しさん (ワイエディ MM16-hWz0)2019/04/08(月) 20:04:21.39ID:bxLyJs4eM
引数について質問させてください

ref と out の違いってなんですか?
どういうときに ref を使うのか、out を使うのか、よくわかりません

313デフォルトの名無しさん (ワッチョイ ee7b-O+pl)2019/04/08(月) 20:16:44.97ID:DkSPe/Rf0

314デフォルトの名無しさん (アウアウウー Sac5-dKzD)2019/04/08(月) 20:23:20.59ID:WPZzOuq3a
>>312
ref引数は、呼び出し先関数で、引数を使うし設定もする場合に使う
out引数は、呼び出し先関数で、引数を設定するだけの場合に使う
この違いにより、refで渡す引数は初期化しておく必要があるけど、outで渡す引数は未初期化でも構わない

.NET Framework中にある実例としては
int.TryParse()の場合、文字列の数値を引数に設定するだけで、引数の元々の値は使わないから、out引数でいい
難しい例だがInterlocked.CompareExchange()の場合、引数の値を返すし引数に設定する必要もあるため、ref引数が必要

値型と参照型の違いも知っておいたほうがハマりにくいかも

315 ◆mxojKcXMM. (ワッチョイ 6247-BZhk)2019/04/08(月) 21:00:25.38ID:PMJ1/1Ak0
>>314
めんどくさいので out は忘れて ref ばかり使っていますが問題ありますでしょうか!?

316デフォルトの名無しさん (アウアウウー Sac5-dKzD)2019/04/08(月) 22:47:42.86ID:WPZzOuq3a
>>315
refでも問題らしい問題は無いだろうけれど
refでなくoutで済む場面ならoutを使ったほうが楽できる
未初期化変数でも渡せるし、C# 7からはout引数の場所で変数宣言が出来るようになった
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7#out-variables

ただout引数やref引数を取る関数はasyncやiteratorメソッドに出来ないから
最近の風潮だと、out引数を経由して多値を返すよりも、戻り値の型をValueTupleにして直接多値を返す方が良さそう
https://ufcpp.net/study/csharp/datatype/tuples/?p=3#out-params

317デフォルトの名無しさん (ワッチョイ fe0d-nwht)2019/04/09(火) 00:18:34.64ID:/fBSGCK40
コンストラクタでテキストボックスの値でフィールドを初期化しようとしたら怒られた これダメなのか…

318デフォルトの名無しさん (ワッチョイ 6247-fpxN)2019/04/09(火) 02:13:47.76ID:UAdV14hW0
>>317
なんと言って怒られたの?

319デフォルトの名無しさん (ワッチョイ 4dda-QOAl)2019/04/09(火) 10:04:22.44ID:iYhZfRkA0
おんどりゃぁふざけた初期化すんじゃねぇ です

320デフォルトの名無しさん (ワッチョイ 0261-iMOx)2019/04/09(火) 10:26:21.20ID:euLRl0x60
>>317
日本語でおk

321デフォルトの名無しさん (ドコグロ MM95-yEdN)2019/04/09(火) 11:37:19.16ID:6ZB9MqDTM
コンストラクタでテキストボックスの初期化、俺じゃなきゃ見逃しちゃうね

322デフォルトの名無しさん (アウアウウー Sac5-dKzD)2019/04/09(火) 11:56:56.57ID:hdDhGrZ5a
>>317
デザイナーで置いたテキストボックスのインスタンス構築や、各種プロパティの設定は
実際はInitializeComponent()メソッドの中で行われる
InitializeComponent()よりも前で値を読もうとしてNullReferenceExceptionが出ているのなら
InitializeComponent()の後で値を読めばいい
までエスパーした

323デフォルトの名無しさん (ワッチョイ f1ab-c04X)2019/04/09(火) 21:10:24.64ID:0DYeC6pW0
C#でProcess使ったコンソールの標準入出力処理書いてるんだけど
printf("値を入力1:");
scanf("%d",&i);
printf("値を入力2:");
scanf("%d",&j);
printf("%d %d", i, j);
みたいな処理のプログラムを動かしたとき、コマンドプロンプトだと
値を入力1:3
値を入力2:4
3, 4
ってなってるのに対して、OutputDataReceivedだと
値を入力1:値を入力2:3, 4
って標準入力が全部完了されたあとにまとめて文字列渡されるのって何でなの?

324デフォルトの名無しさん (ワッチョイ ee2c-jHdF)2019/04/09(火) 21:31:50.99ID:2u68c9Dp0
標準出力に改行が出力されてないから

325デフォルトの名無しさん (ワッチョイ f1ab-c04X)2019/04/09(火) 21:49:55.14ID:0DYeC6pW0
>>324
試しに全部のprintfに改行入れてみたけど、それでもscanfが全部終わるまでOutputDataReceivedイベント発生しないっぽい。
C#側で標準出力を受け取ってstringに追加 ー> exe側は入力待機 ー> C#側からStandardInput.WriteLineで標準入力 ー>exe側は処理続行
みたいな コマンドプロンプトからのの実行と同じような動きをする処理って、C#じゃどうやるんだろう?

326デフォルトの名無しさん (ワッチョイ ee2c-jHdF)2019/04/09(火) 23:25:15.43ID:2u68c9Dp0
stdoutがパイプに繋がってるとprintfは改行があろうがバッファし続ける
setbuf(stdout, NULL)しとくか、printf後にfflush(stdout)するか

327デフォルトの名無しさん (ワッチョイ 3d17-iMOx)2019/04/09(火) 23:39:38.53ID:IIo4qqMm0
C#関係なくね?

328デフォルトの名無しさん (ワッチョイ f1ab-c04X)2019/04/09(火) 23:59:05.15ID:0DYeC6pW0
>>326
setbufでもfflushでも何故か入力待機状態が終了するまでOutputDataReceivedイベントが発生しなかったからあきらめてテキストファイルにログ出力してそれ読み込むことにするわ
教えてくれてありがとう

329デフォルトの名無しさん (ワイエディ MM16-hWz0)2019/04/10(水) 20:02:38.36ID:YVfMef4MM
>>313-316
だいぶ返信が遅れてしまいました
まとめてですみませんが、親切に教えていただきありがとうございました

330デフォルトの名無しさん (ワッチョイ 13e0-clLQ)2019/04/12(金) 22:52:29.27ID:luZS+mvc0
C#関係ないんだけどシングルトンの使い場所がわかりませぬ

こんなクラスがあるとして、
class a{
 Dictionary<string, string> hoge;

 public string getHoge(key)
{return hoge[key];}
}
hogeにはDBから対象の精々100くらいの全レコード取ってきて格納しておきたい
複数インスタンスが必要にはならないようなデータ
外部からのsetは許可しない

こういう時ってシングルトン使ってnew時にDBからデータ取得とかしていいのでしょうか?
もっと賢いやり方あります?

331デフォルトの名無しさん (アウアウエー Sae3-x1Th)2019/04/12(金) 23:01:43.16ID:fgu2eH2Ta
>>330
シングルトンはテストを困難にするアンチパターンだから忘れていい
単一のインスタンスが欲しい場合はDIを使う

332デフォルトの名無しさん (ワッチョイ 13ad-OlUL)2019/04/12(金) 23:09:32.03ID:SGqhATO10
>>331
DIとシングルトンは全く別の概念やぞ…

333デフォルトの名無しさん (アウアウエー Sae3-x1Th)2019/04/12(金) 23:11:43.52ID:fgu2eH2Ta
>>332
DI使ったことないの?
単一のインスタンスを共有するのは大抵のDIコンテナでサポートされている一般的な機能だよ

334デフォルトの名無しさん (オッペケ Sr85-IY8d)2019/04/12(金) 23:33:00.52ID:HVuVGzQQr
staticじゃあかんの?

335デフォルトの名無しさん (ラクペッ MM75-ffMH)2019/04/12(金) 23:33:46.50ID:FJ5vSxoFM
発想の飛躍やべぇな

336デフォルトの名無しさん (ブーイモ MMcb-G4w+)2019/04/12(金) 23:40:02.85ID:le1Q6kdLM
シングルトン大好き。
状況的に複数インスタンス生まないクラスは必ずと言っていいほどシングルトン。

337デフォルトの名無しさん (ブーイモ MMcb-G4w+)2019/04/12(金) 23:41:28.59ID:le1Q6kdLM
class名.staticメソッド、static変数を多用。

338デフォルトの名無しさん (ワッチョイ 13ad-OlUL)2019/04/12(金) 23:47:39.11ID:SGqhATO10
>>333
お前こそプログラミングしたことないやろ…インスタンスの意味から調べてこい

339デフォルトの名無しさん (ワッチョイ 8be3-XGqV)2019/04/12(金) 23:51:53.21ID:GRWvVKgh0
>>334
get setでなんか仕掛けるでもしない限りはstaticでいいよな

340デフォルトの名無しさん (ドコグロ MM63-x1Th)2019/04/13(土) 00:17:16.36ID:DF10sMIkM
>>339
ユニットテストでモックしたいときどうすんの?

341デフォルトの名無しさん (ワッチョイ d347-9l+s)2019/04/13(土) 00:45:48.83ID:gAxxWG/M0
シングルトン的なことがしたいときの今時のやり方はDI使うことだな

342デフォルトの名無しさん (アウアウエー Sae3-5b7P)2019/04/13(土) 01:23:05.24ID:4BHEL+7ta
>>330
言語レベルで単一インスタンスの強制を保証する必要が
本当にそんなにしばしばあるのかなとは個人的には思うね。

要は共有方法を明確にしておけば十分じゃないかと。
そもそも共有されるオブジェクトを各々が勝手にnewするのがおかしいわけで。

具体的には、例えばWindows FormならVSが自動生成するProgramクラスの
staticな読み取り専用プロパティとして実装する約束にしておけば済む

343デフォルトの名無しさん (ワッチョイ 2b0d-Vj1b)2019/04/13(土) 05:26:30.24ID:f7He4YCD0
俺もそう思う
べき論としてみんな口々に言うけどそこを懸念するとかどんだけ連携がないチームなんだよ

344デフォルトの名無しさん (ワッチョイ 7b42-XGqV)2019/04/13(土) 08:35:33.20ID:vIVj+RyW0
>>341
ただ、DIもシングルトンの一形態という記述は見たことが有る

345デフォルトの名無しさん (ワッチョイ a984-xQPP)2019/04/13(土) 08:39:55.79ID:Gb+AenIc0
以前に書いたプログラムを元に加筆修正して別のプログラムを作った時
フォルダもソリューションも別名で保存したいのですが
VisualStudioはそういう保存はできないのでしょうか?
今は力業であらかじめ別名フォルダにコピーしたソリューションから作り始め
ソリューション名、プロジェクト名、アセンブリ名、空間名
等を書き換えてからプログラムの修正を始めるのですが
時々何かがおかしくなってバインディングが外れたり
破綻してしまうこともあるので
何か安全に書き換える方法があるのかな?と質問しました

346デフォルトの名無しさん (ドコグロ MM95-x1Th)2019/04/13(土) 08:52:30.68ID:J/cBqpWVM
>>345
いい加減git使おう

347デフォルトの名無しさん (ワッチョイ a984-xQPP)2019/04/13(土) 09:32:07.36ID:Gb+AenIc0
>>346
うーんちょっと調べただけだけどヤヤこしそう・・・
それにバージョン管理とは違うんだよなー
ワープロを元にデータベースを作ったからフォルダもソリューションも変えて保存したい
って感じなんだけど

348デフォルトの名無しさん (アウアウエー Sae3-cVJ2)2019/04/13(土) 09:39:52.37ID:vbn0MA6qa
レベル下がったなこのスレも
VB.NETとJavaが終わりつつあるから流入してるのか

349デフォルトの名無しさん (ドコグロ MM95-x1Th)2019/04/13(土) 09:55:51.57ID:J/cBqpWVM
>>347
慣れたら自然にそんなアホなことをしようとは思わなくなるから気にしなくていい
俺も初心者の頃はそうだったから気持ちはよくわかる

350デフォルトの名無しさん (ワッチョイ 417d-n39u)2019/04/13(土) 09:59:00.31ID:C2d1A80t0
>>348
レベルの高い時期があったみたいな言い方だな

351デフォルトの名無しさん (ワッチョイ 1301-EjgJ)2019/04/13(土) 10:04:10.28ID:vzJQEXVg0
>>347
ソリューションを変えるのはわかるけど
> プロジェクト名、空間名
とかは変えなくても良くね?

352デフォルトの名無しさん (ワッチョイ 8bb0-xQPP)2019/04/13(土) 10:41:12.62ID:kUX6ubEA0
>>351
そうなの?
とりあえずその方がコードも分かりやすいから
exeとタスクトレイに表示される名前だけ反映させるには
アセンブリ名とアセンブリ情報の中だけでいいのかな

353デフォルトの名無しさん (ワッチョイ 992d-U5P5)2019/04/13(土) 10:44:39.80ID:nXQ9b0jN0
7.2で加わった、条件付きのref式って意味がわかんないんだけどさあ
これrefがついていようがいまいが同じように動作しないの???
なんなのこれ

354デフォルトの名無しさん (アウアウエー Sae3-KE1k)2019/04/13(土) 11:21:31.91ID:umtct5vHa
>>353
int a, b, c;
void Reset() { a = 1; b = 2; c = 3; }

Reset();
ref int x = ref a;
x = (true ? b : c); // 普通の条件演算子
x = 4; // xの参照先はaのままなのでaが変わる
Console.WriteLine($"{a} {b} {c}"); // 4 2 3

Reset();
ref int y = ref a;
y = (true ? ref b :ref c); // 条件演算子の2項目と3項目にrefはあるが、条件演算子の前にrefはない→参照でなく値が代入されるだけ(上と同じ)
y = 4; // yの参照先はaのままなのでaが変わる(ここでハマってそう)
Console.WriteLine($"{a} {b} {c}"); // 4 2 3

Reset();
ref int z = ref a;
z = ref (true ? ref b : ref c); // 条件演算子の前にrefがある→zの参照先が変わる
z = 4; // zの参照先がbになったのでbが変わる
Console.WriteLine($"{a} {b} {c}"); // 1 4 3
// https://ufcpp.net/study/csharp/sp_ref.html?p=2#conditional-ref もどうぞ

355デフォルトの名無しさん (ワッチョイ 1187-IujH)2019/04/13(土) 18:28:52.41ID:a4r2Gpw40
この言語は、見かけはC++の兄弟分のような顔をしたVBだな。

356デフォルトの名無しさん (ワッチョイ 992d-U5P5)2019/04/13(土) 18:49:30.17ID:nXQ9b0jN0
>>354
ありがとう!やっとわかったぜ!!!

357デフォルトの名無しさん (アウアウエー Sae3-5b7P)2019/04/13(土) 22:22:05.47ID:zPnWLOfMa
>>354
こんな機能追加されてたんだw
でも積極的な使い方を思いつかんなあ

358デフォルトの名無しさん (ワッチョイ 1161-WNda)2019/04/13(土) 22:30:05.68ID:4tcIFh//0
後から追加された機能ってどれもセンスないよね

359デフォルトの名無しさん (スップ Sd73-OlUL)2019/04/13(土) 23:41:32.18ID:04eDeW4Td
>>358
は?

360デフォルトの名無しさん (ワッチョイ 1161-WNda)2019/04/13(土) 23:52:54.44ID:4tcIFh//0
>>359
は?じゃねぇよクソ虫

361デフォルトの名無しさん (スップ Sd73-OlUL)2019/04/14(日) 00:08:30.69ID:01zt8L7jd
>>360
ジェネリクスもセンスないのかい?

362デフォルトの名無しさん (ワッチョイ b15f-La48)2019/04/14(日) 00:26:39.46ID:eLdyJ0cI0
>>358
最近追加された機能は効率重視でちょっと分かり難いのもあるから、
そういう風に見えるのも分からないでもない。

363デフォルトの名無しさん (ワッチョイ 2b0d-QSJy)2019/04/14(日) 00:53:29.67ID:DOuVmEEK0
言語の価値って開発環境も含めて評価すべきじゃない?
自分は別に他の言語でもよい処理をついついc#でやっちゃうのはやっぱりIDEの強力なサポートがあってのことだわ

364デフォルトの名無しさん (ワッチョイ 992d-U5P5)2019/04/14(日) 08:42:45.32ID:H5M6zKH30
>>363
これはRuby先輩を呼び寄せるための撒き餌ですか?

365デフォルトの名無しさん (ワッチョイ 1187-IujH)2019/04/14(日) 08:50:41.27ID:k2b6YaL90
C#は、CとC++の系列のように外見を装っているが、実際にはVBのほうが似てる言語だろう。
CやC++に対しておこがましさを感じる。

366デフォルトの名無しさん (スププ Sd33-9l+s)2019/04/14(日) 08:55:34.96ID:TOfo8K8Bd
>>358
ラムダ式とか使わんの?

367デフォルトの名無しさん (ワッチョイ d352-NGx/)2019/04/14(日) 09:07:27.41ID:UDnauAFh0
>>363
言語の基本文法のみ良し悪しとか、標準ライブラリまで含めての評価とか、議論の対象をどこまでとすらかは文脈によるだろうし、君が開発環境まで含めた話をしたいというならそういう話題をふって話を進めればいいよ。
言語単体での話をしている時に「いやいやIDEが〜」とか言い出すと話が発散するから、議論の対象は明確に区切って意識した方がいい。

368デフォルトの名無しさん (ワッチョイ 3117-XGqV)2019/04/14(日) 09:28:07.93ID:VqeGGHsz0
>>358
.NET 1.1 の世界から出てくるな

369デフォルトの名無しさん (アウアウエー Sae3-cVJ2)2019/04/14(日) 09:34:22.94ID:LBjjw3Zya
今の時代、言語だけ語っても意味はないよなぁ
使えるオプソのバラエティとか、コンテナとの親和性とかの評価は避けて通れない

370デフォルトの名無しさん (アウアウエー Sae3-KE1k)2019/04/14(日) 12:23:16.39ID:cHKb6r3Sa
>>357
この辺の追加機能はパフォーマンスを求めるための機能だから
速度特化ライブラリの製作者は使うだろうけど、それ以外の開発者は使う機会少ないかも
https://ufcpp.net/study/csharp/cheatsheet/ap_ver7_2/

>>358
https://github.com/dotnet/csharplang/issues
C#の言語仕様はgithub上で公開で議論されている
センスある機能について議論や提案してみたらどうだろう
もちろん何かコメントしたりissueを立てたりする前に、検索して既出じゃないか確認するのを忘れずに

371デフォルトの名無しさん (ワッチョイ 6994-XGqV)2019/04/15(月) 12:22:07.84ID:3hi8+ot50
先日windows7からwindows10にOSの入れ替えをしたのですが、win7では動いていたPostMessageが動かなくなってしまいました。
(送り手は自作のソフト、受け手は市販のソフトで、Win7でもWin10でも同じものです)
あるアプリケーションに
PostMessage(hWnd, WM_KEYDOWN, VkKeyScan("0"), 0);
のようにして数字を送信していたのですが、これが反応しなくなりました。
ウィンドウハンドルの取得とかは問題がないようです。
これ以外でも
PostMessage(hWnd, WM_KEYDOWN, VK_RETURN, 0);
等すべてのキーが送れません。
対処法がありましたら教えてください。

372デフォルトの名無しさん (ワッチョイ 6994-XGqV)2019/04/15(月) 12:24:05.77ID:3hi8+ot50
正確に言うと(正確かどうかはわかりませんが)、
送り手側でエラーが出るわけではなく、受け手側のテキストボックスを一応選択はしているので、
送り手側としては送っているつもりですが受け手側が反応しなくなっている状態だと思います。
送り手の発信方法を変えればいいのでしょうか?

373デフォルトの名無しさん (ワッチョイ 6994-XGqV)2019/04/15(月) 13:27:46.92ID:3hi8+ot50
すいません、解決しました。
管理権限の問題でした。

374デフォルトの名無しさん (スップ Sd73-rAOx)2019/04/15(月) 22:16:04.04ID:l4hdcBztd
新しいバージョンたくさんあるけど業務だとどの辺まで使ってるところが多いんだろ

valueタプルとかみんな使えてる?

375デフォルトの名無しさん (ワッチョイ 8be3-XGqV)2019/04/15(月) 22:17:38.51ID:p/g7dyR00
>>374
ようやく4.5.2が許されるようになったよ・・・

376デフォルトの名無しさん (アウアウエー Sae3-x1Th)2019/04/15(月) 22:37:21.92ID:+hafi/JFa
>>374
.NET Core 2.2/C# 7.3使ってるよ

377デフォルトの名無しさん (アウアウウー Sa5d-cSql)2019/04/16(火) 08:08:51.63ID:4W+nw3aAa
うちも最近やっと3.5.1縛りが解けて4.5.2になったよ

378デフォルトの名無しさん (スップ Sd73-OlUL)2019/04/16(火) 08:14:19.68ID:5XyUIsTTd
>>374
うちは.NET Core2.1、C#7.3
次のLTSは3.1だっけ

379デフォルトの名無しさん (スップ Sd73-OlUL)2019/04/16(火) 08:15:38.75ID:5XyUIsTTd
てかVisual Studioをちゃんと更新してればC#のバージョン上げるのは全然問題なくね?

380デフォルトの名無しさん (ワッチョイ 417d-n39u)2019/04/16(火) 08:20:00.65ID:3+f8cxJ/0
最近?が多くて辛い
null条件演算子でも目眩がするのに
null合体演算子なんか使われたら頭いたい
ところでcoalescingてなんて読むんや

381デフォルトの名無しさん (アウアウウー Sa5d-McA7)2019/04/16(火) 08:32:26.55ID:mJc9sIPpa
>>379
ネックはランタイムの方でしょ

382デフォルトの名無しさん (ワッチョイ b15f-La48)2019/04/16(火) 08:37:21.73ID:bBG3RNJT0
Windows7のサポートが切れれば少しはましになるのかねぇ

383デフォルトの名無しさん (ワッチョイ 5963-yBH7)2019/04/16(火) 09:11:39.30ID:gry//OiE0
>>377
async awaitへようこそ

384デフォルトの名無しさん (スップ Sd73-OlUL)2019/04/16(火) 12:31:57.15ID:5XyUIsTTd
>>381
だから「C#のバージョン上げるのは」って言ってんのに

385デフォルトの名無しさん (オッペケ Sr85-figT)2019/04/16(火) 14:23:13.78ID:o1OTQxfgr
とりあえずVSのバージョンだけでもあげてほしいわ
今時2008とかもう

386デフォルトの名無しさん (ワッチョイ 1161-XGqV)2019/04/16(火) 15:21:56.74ID:gbkfFEj/0
>>385
こっそりあげちゃえよ。だれもお前のことなんかみてないからさ。

387デフォルトの名無しさん (ワッチョイ 5190-ifKs)2019/04/16(火) 17:28:56.19ID:CzwWdC590
2015ってアンインストールしても平気かな。SSDの空きがかつかつで2019インストールするなら2015は消したい

388デフォルトの名無しさん (ワッチョイ 1161-U5P5)2019/04/16(火) 18:43:16.58ID:HeVWn8Fl0
VS2010からVS2017に上げたら変数名に全角の・使ってるところがビルドエラーになったわ。
こんなの変数名に使うなよと思いながらVS2010で名前変えまくった。

389デフォルトの名無しさん (アウアウクー MM05-Vj1b)2019/04/16(火) 18:54:44.72ID:csRNrKVvM
フォームから自動生成したイベントハンドラの頭文字が大文字じゃねぇぞって怒られてるんだけどデフォルトでこうなの?

390デフォルトの名無しさん (ワッチョイ 13ad-OlUL)2019/04/16(火) 19:43:25.05ID:4DXe6mce0
>>388
ユニコードのせいね
C#6.0の時のやつ

391デフォルトの名無しさん (ワッチョイ fbfc-LJPv)2019/04/17(水) 20:49:20.12ID:WkJZEAk70
ドット絵エディタを作りたいんですが、win formでやってます
ピクセルを描くベースとなるフォームはどれを使用すればよいのでしょうか。

392デフォルトの名無しさん (ワッチョイ 13a5-yqpC)2019/04/17(水) 20:56:19.46ID:SfPYWsjk0
フォームに直書きでいいよ

393デフォルトの名無しさん (ワッチョイ 8b7b-y/aS)2019/04/17(水) 20:59:20.56ID:VDkzUi/q0
>>391
コントロールなら画像の描画に使うのはPictureBoxでやっとけば調べるのも楽だよ
書き間違いでなく何か別の意味で「フォーム」って書いているのならよくわからない

394デフォルトの名無しさん (ワッチョイ d901-yqpC)2019/04/17(水) 21:12:48.03ID:QwWDImoN0
>>391
ピクセルを書くなら Paint だろ。


395デフォルトの名無しさん (ワッチョイ fbfc-LJPv)2019/04/17(水) 21:28:00.17ID:WkJZEAk70
pictureboxかpaintですね ありがとうございます

396デフォルトの名無しさん (ワッチョイ 8101-+1ox)2019/04/18(木) 00:15:51.35ID:xpC+XoNH0
textboxで描く

397デフォルトの名無しさん (ワッチョイ 36fc-HmQt)2019/04/18(木) 06:13:29.99ID:VndYiJ+Y0
コントロールとクリックイベントはどのような関係になっているんでしょうか。
コントロールは関数で、そのローカル関数がクリックイベントでしょうか?

398デフォルトの名無しさん (ワッチョイ 5e63-Pr8H)2019/04/18(木) 08:27:46.76ID:KcatLawH0
インテリセンス表示してみろ
vscodeとかならリファレンス表示しろ

Control "クラス" って書いてあるだろうが

399デフォルトの名無しさん (ワッチョイ 36fc-HmQt)2019/04/18(木) 10:05:51.26ID:VndYiJ+Y0
クラスですか ごめんなさい

400デフォルトの名無しさん (ワッチョイ 5e63-8I1V)2019/04/18(木) 17:04:33.74ID:/n+AA5ti0
>>399
クリックイベントなどのイベントはそのクラスのデリゲートな

401デフォルトの名無しさん (ワッチョイ 36fc-HmQt)2019/04/18(木) 18:55:27.19ID:VndYiJ+Y0
デリゲートって語をはじめてしりました

402デフォルトの名無しさん (ワッチョイ ee0d-o4pp)2019/04/18(木) 19:28:26.95ID:fqeeOSlB0
デリケートな話題だからね

403デフォルトの名無しさん (ワッチョイ 1261-YIQo)2019/04/18(木) 19:38:07.87ID:cTBQXOBu0
デリケートゾーンの話ですか?

404デフォルトの名無しさん (ブーイモ MMb2-V4ls)2019/04/18(木) 19:57:39.62ID:YCaR8eKbM
最初は、関数ポインタ+アルファぐらいに思っておけば

後で騙された〜になるけど

405デフォルトの名無しさん (ワッチョイ 655f-8I1V)2019/04/18(木) 23:09:25.88ID:4whWZ0bM0
>>400
イベントとデリゲートは全く同じじゃないけどな

406デフォルトの名無しさん (ワッチョイ 8101-+1ox)2019/04/18(木) 23:33:46.05ID:xpC+XoNH0
ポインタなんて今時通じるのか?

407デフォルトの名無しさん (ワッチョイ 6e7c-lfmU)2019/04/19(金) 09:21:10.96ID:okUcwqho0
Javaでnull参照した時にNullPointerException投げてくるうちは現役だろ(適当

408245 (ブーイモ MMd5-nTKY)2019/04/19(金) 12:51:17.11ID:5BNgMycMM
ぬるぽ

409デフォルトの名無しさん (ワッチョイ c52b-hooH)2019/04/19(金) 16:10:17.23ID:OM7ktdHt0
ぬるぽ

410デフォルトの名無しさん (ワッチョイ 092d-RDgi)2019/04/19(金) 21:56:33.56ID:5QVRwjzm0
List<T>から要素を1つずつ要素を取り出して処理し、例外が起きたらその要素だけリストから消したいんだけどさあ
なんかいい手段ってないのかな?

雰囲気としてはこんな感じのが書きたいんだけど・・・・おらの頭じゃうまく書けんだ・・・・
foreach(var o in listOfObject){
try{ 例外処理以外では対処が難しい怪しい処理(o); }
catch{ 例外が起きた項目だけlistOfObjectから消したいが、ちゃんとforeachも回って欲しい(); }
}

411デフォルトの名無しさん (ワッチョイ 5e2c-6isy)2019/04/19(金) 22:02:58.03ID:MllfoE8V0
新しいList<T>作ってcatchしたときにAddして
foreach終わった後でRemoveしていく

412デフォルトの名無しさん (ワッチョイ 5e7b-ImJN)2019/04/19(金) 22:04:41.49ID:4Fr35pSP0
>>410
foreachじゃなくfor (i = listOfObject.Count; i > -1; i--)とかじゃだめなのか
頑張ってforeachにしてもめんどくさくなるだけの気がする

413デフォルトの名無しさん (ワッチョイ 5e2c-6isy)2019/04/19(金) 22:04:44.06ID:MllfoE8V0
var erroredItems = new List<Hoge>();
foreach (var item in originalList) {
try { ... }
catch { erroredItems.Add(item); }
}
foreach (var item in erroredItems) {
originalList.Remove(item);
}

414デフォルトの名無しさん (ワッチョイ 092d-RDgi)2019/04/19(金) 22:09:40.78ID:5QVRwjzm0
ありがとう
こうやってやるもんなのか

415デフォルトの名無しさん (ワッチョイ 7247-ctQZ)2019/04/19(金) 22:27:07.32ID:i0tIRf8t0
listOfObject.RemoveAll(obj =>
{
  try
  {
・・・・・・なんか処理
    return false;
  }
  catch
  {
    return true;
  }
});

416デフォルトの名無しさん (ワッチョイ 92e0-JNgg)2019/04/20(土) 00:02:36.27ID:/zNBD6gY0
リストに追加前にtry処理したらダメなん?
それができないなら俺も415のやり方が良い

417デフォルトの名無しさん (アウアウエー Sada-ukl2)2019/04/20(土) 00:10:17.26ID:4fcRoJkza
public class MyUtil {
public static bool Try(Action a) {
try { a?.Invoke(); return true; }
catch { return false; }
}}

var b = a.Where(x => MyUtil.Try(() => ThrowableMethod(x)))
.ToList();

418デフォルトの名無しさん (ブーイモ MMd5-pikq)2019/04/20(土) 06:45:01.92ID:eu9xvtsyM
>>408
ガッ

419デフォルトの名無しさん (ブーイモ MMd5-pikq)2019/04/20(土) 06:45:18.46ID:eu9xvtsyM
>>409
ガッ

420デフォルトの名無しさん (ワッチョイ 5561-YIQo)2019/04/20(土) 08:09:20.70ID:u/QGNgma0
このスレ的にはぬるぽではなくぬるりなのか。エロいな。

421デフォルトの名無しさん (ワッチョイ 92ad-61/s)2019/04/20(土) 08:43:35.43ID:ShWYWHRt0
配列のソートのアルゴリズムが難しくて覚えられないんですが
簡単な書き方はりますか?

422デフォルトの名無しさん (ブーイモ MMa6-rGl6)2019/04/20(土) 08:52:13.85ID:tgvbScEyM
>>421
プログラミングには適性があります。
貴方には向いていません。

423デフォルトの名無しさん (ワッチョイ a242-YIQo)2019/04/20(土) 09:08:29.42ID:Q85hwvCt0
>>410
foreach(var o in listOfObject){を
foreach(var o in listOfObject.ToArray()){
と配列にコピーしてから実行するのが定石です
そのループの中では既に列挙は終わっているから
listOfObjectにAddしてもRemoveしても例外は発生しないし列挙の順番にも影響を与えません

424デフォルトの名無しさん (ワッチョイ 6502-Prtq)2019/04/20(土) 09:12:26.10ID:Q8Lkjfvy0
>>421
一度リストで書いて、配列だとどう書くだろう?と考える。
アルゴリズムって基本リスト前提だからね。

425デフォルトの名無しさん (アウアウエー Sada-4dYu)2019/04/20(土) 09:15:16.95ID:dmSDGLr5a
>>424
いやソートアルゴリズムの殆どは特定のインデックスに対するランダムアクセスにO(N)を仮定するから配列前提だぞ

426425 (アウアウエー Sada-4dYu)2019/04/20(土) 09:15:47.20ID:dmSDGLr5a
間違えたO(1)

427デフォルトの名無しさん (アウアウエー Sada-shJk)2019/04/20(土) 12:09:52.47ID:IppyQHdna
>>421
今時そんなの覚える必要あんまりない気もするけど、
試験勉強ならがんばって覚えるしかないね

>>423
そもそも列挙と同時に削除をするって発想が筋悪。
別に列挙後ゆっくり削除すりゃあよい訳で、>>413がやってるように2つを分離する方が
考え方として自然で分かりやすいと思うけどね

428デフォルトの名無しさん (スププ Sdb2-Sl/5)2019/04/20(土) 12:52:51.24ID:XrXcMVKPd
>>415が一番シンプルだな

429デフォルトの名無しさん (スップ Sd12-yS2j)2019/04/20(土) 13:49:32.83ID:ajzSwZvNd
処理と例外が出たものを除去は別の仕事だから処理も分離してるほうが好き

430デフォルトの名無しさん (アウアウエー Sada-ukl2)2019/04/20(土) 13:51:03.66ID:4fcRoJkza
そもそもフィルタかけて何に使うんだ?

431デフォルトの名無しさん (スププ Sdb2-Sl/5)2019/04/20(土) 13:53:51.78ID:LQSO4VHxd
>>415が質問者のしたいことにドンピシャなのに初心者スレだからラムダ式にアレルギーある奴が多いのかな

432デフォルトの名無しさん (ワッチョイ f57c-ZG7F)2019/04/20(土) 14:01:01.21ID:bN8wmmjE0
一番まともな解答にはレス付けないのが2ちゃん式

433デフォルトの名無しさん (ワッチョイ 655f-8I1V)2019/04/20(土) 14:06:22.07ID:axr9T2Wu0
>>431
>>410の処理の目的が条件に合わない要素の削除なら>>415がシンプルで良いけど、
全ての要素に処理をするのが目的で削除はおまけって場合は、>>415だと本来の目的が分かり辛い。

434デフォルトの名無しさん (ワッチョイ 5e2c-LwVf)2019/04/20(土) 14:19:22.63ID:rcvSJkam0
まず、2分探索を、2分ヒープで作れば?
O(log N)

2^10 = 1,024 だから、千のデータを、10回で探索できる。
2^20 = 百万 のデータは、20回!

リストは、次の要素しかわからないから、ランダムアクセスは、O(N) になる。
例えば、1から5を見つけるのに、1,2,3,4,5 と、リンクをたどらないといけない

O(1)にするには、アドレスは計算式で求められるものだけ。
各要素が4バイト使うなら、1が100番地として、5は116番地みたいに

435デフォルトの名無しさん (ワッチョイ 92ad-61/s)2019/04/20(土) 16:56:48.87ID:ShWYWHRt0
>>427
覚える必要ないんですか…List型のソートメソッドを使っていても後々問題にならないですかね

436デフォルトの名無しさん (ワッチョイ 7252-U8iM)2019/04/20(土) 17:40:05.04ID:tqoqa3JD0
>>435
基本的なデータ構造とアルゴリズムは一通り理解して自分で書けるようになっておくといいぞ。
標準的な物はライブラリ等で用意されているから実際に業務等でコードを書くときはそれを使うが、独自の問題の解法を自分で考える際に、適切な速度や使用リソース量と工数の兼ね合いで良い方法を選択するには、基本は一通り押さえておく必要があるよ。

437デフォルトの名無しさん (ワッチョイ 2517-YIQo)2019/04/20(土) 20:18:25.55ID:zIfu5btc0
必要な時に必要なものを覚えるだけでOK
最初から全部覚えようとしなくてもいいよ

438デフォルトの名無しさん (ワッチョイ 7247-Sl/5)2019/04/20(土) 20:23:09.94ID:qqngOIWj0
ソートに関しては基本情報処理技術者試験の教科書でも読めばいいんじゃないの

439デフォルトの名無しさん (アウアウウー Sacd-hooH)2019/04/20(土) 21:14:17.27ID:f5BR4Kwsa
ソートは自分なりに考えてlコードを書いてみてその後にいろいろ学ぶと勉強しやすい

440デフォルトの名無しさん (アウアウエー Sada-PIYw)2019/04/21(日) 08:02:20.34ID:qTT7Abroa
自前で書くソート処理と、.NET Frameworkに実装されてる(Microsoftのプロフェッショナルが実装した)ソート処理、
どっちがより高速でバグが少ないと思う?
https://referencesource.microsoft.com/#mscorlib/system/array.cs,d076876f5fbf4eec
↑ここから先に書かれている処理よりも優れたソート処理を自分で書けるならともかく、
そうでなければおとなしく出来合いのソート処理を利用するほうが無難だと思うけど

441デフォルトの名無しさん (ワッチョイ 12ad-XxWr)2019/04/21(日) 09:21:47.18ID:enjRZRrv0
>>440
出来合いのソート処理を利用するなとか誰か言ってんの?

442デフォルトの名無しさん (ワッチョイ 6963-pikq)2019/04/21(日) 09:22:37.85ID:F9kXeXwV0
独習3版読んでないとーしろはqueueも実装できないし、回帰とかも理解しないんだろ。

443デフォルトの名無しさん (アウアウウー Sacd-hooH)2019/04/21(日) 09:39:42.10ID:+WROkW6ha
>>440
初心者がソートを勉強しないと自分の書いたコードがなぜ遅いかわからない

ソートが魔法か何かで何でも一瞬で並び替えられると思ってしまうと終わり
そこから進展はない

ソートの回数を減らすように考えたりソート自体を行わないでうまく処理することを学ばないといけない

444デフォルトの名無しさん (ワッチョイ 515f-WJ29)2019/04/21(日) 09:43:13.42ID:cNLTxFDL0
ソートがボトルネックになった時に最適化を迫られたら弄るしかないじゃんね

445デフォルトの名無しさん (アウアウウー Sacd-hooH)2019/04/21(日) 09:50:14.96ID:+WROkW6ha
ソートがボトルネックになったらじゃなくて普通にソートを使うときには必ず気に掛けるべき

ループの中にソート入れてるコードがあったりする
ループ出た後に一度やればいいだけなのにと思うがそういう所に思いが至らないんだろう

446デフォルトの名無しさん (ワッチョイ 5561-oal8)2019/04/21(日) 10:02:50.79ID:9BhkjmpP0
今なんねーよ流石に

447デフォルトの名無しさん (アウアウウー Sacd-hooH)2019/04/21(日) 10:09:09.80ID:+WROkW6ha
メソッドの中でソートして戻り値返してるのにもらった側でもソートしたりとか
無駄なことをする可能性はどこにでもある

他人に見られたときにこいつ馬鹿だなと思われないようなコードを書く練習をしよう

448デフォルトの名無しさん (ワッチョイ 1261-YIQo)2019/04/21(日) 10:17:01.49ID:HfCJ1F6L0
listのsortメソッドって安定ソートだっけ?

449デフォルトの名無しさん (アウアウエー Sada-4dYu)2019/04/21(日) 10:19:40.66ID:8e51ow7Fa
>>444
それは細かい最適化よりも設計を見直すべきだと思うよ
物事を大域的に見ることができず小手先のハックだけでなんとかしようとするのはプログラマが陥りがちな非常に悪い癖だから注意

450デフォルトの名無しさん (アウアウウー Sacd-hooH)2019/04/21(日) 10:24:24.53ID:+WROkW6ha
小手先のハックじゃなくて基本だろ

どこでソートするかなんて基本中の基本

451デフォルトの名無しさん (ドコグロ MM71-4dYu)2019/04/21(日) 10:25:31.30ID:+0R+dzN2M
無意味な仕事を無くすように働きかけるのではなく、無意味な仕事を無駄に最適化しようとするのは低学歴な意識高い系プログラマあるある

452デフォルトの名無しさん (アウアウエー Sada-nHqp)2019/04/21(日) 11:39:31.85ID:cgZSyzeqa
>>448
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.sort
> This implementation performs an unstable sort
ついでにいうとArray.Sortも不安定ソートで、Enumerable.OrderByと.ThenByは安定ソート

453デフォルトの名無しさん (ワッチョイ f642-YIQo)2019/04/21(日) 12:31:18.60ID:3jwnQLuZ0
ソートはプログラムを覚えるために勉強するもので
実用上はライブラリ使えばいい

ただ、勉強するネタとしては割と上質なもの

454デフォルトの名無しさん (ワッチョイ 5e63-Pr8H)2019/04/21(日) 12:34:57.35ID:y1/myRC20
(回答する方も)初心者スレらしくていい流れだね

455デフォルトの名無しさん (ワッチョイ 092d-RDgi)2019/04/21(日) 12:46:19.25ID:WZ0UQqME0
こういうの、listにロックをかけたのに何で同listを使う後続処理がすぐ実行されちゃうの?
https://paiza.io/projects/e/EbjQiWv8ebNkW4bbkAY_YQ

using System.Collections.Generic;
using System.Threading.Tasks;
using System;

public class Hello{
public static void Main(){
var list = new List<int>();
for(int i=1; i<=1000; i++)
{
list.Add(i);
}

Task.Run(()=>{
lock(list){
Task.Delay(10000);
}
});
Console.WriteLine(list[123]);
}
}

456デフォルトの名無しさん (ワッチョイ 5561-oal8)2019/04/21(日) 12:51:36.48ID:9BhkjmpP0
まだ、そんな産廃機能いじってんのか

457デフォルトの名無しさん (アウアウエー Sada-nHqp)2019/04/21(日) 13:00:01.62ID:cgZSyzeqa
>>455
https://ufcpp.net/study/csharp/sp_thread.html#lock
lock文はMonitor.EnterやMonitor.Exitを使った糖衣構文であって
Monitor.Enterでロックを取得する(=既にロックされているなら、それが解放されるまで待つ)
例示コードではTask中ではlockしているもののConsole.WriteLine箇所はlockがないので、すぐに実行される

458デフォルトの名無しさん (ワッチョイ 655f-8I1V)2019/04/21(日) 13:12:13.25ID:6I4G/mIH0
>>455
lockの使い方が間違ってる(>>457)のと、Task.Delay()の使い方が間違ってる。
Task.Delay()は通常awaitして使うがlockステートメント中では使えないので、Task.Delay().Wait()するか代わりにThread.Sleep()にする。
後、Task.Run()で作ったタスクが実行開始されたか考慮していないから、大抵はConsole.WriteLine()が先に実行される。

459デフォルトの名無しさん (スププ Sdb2-Sl/5)2019/04/21(日) 14:40:03.19ID:T6P0EJpRd
>>441
俺だよ俺

460デフォルトの名無しさん (ワッチョイ 092d-RDgi)2019/04/21(日) 15:32:01.70ID:WZ0UQqME0
ありがとう、このコードだと欠陥だらけなのか・・・・
使用箇所ごとにLockが必要なのか、それとタスクより先に次の行が実行されてる可能性が高いのは全く気づいてなかった
ただ、
>Task.Delay()は通常awaitして使うがlockステートメント中では使えないので、Task.Delay().Wait()するか代わりにThread.Sleep()にする。
っていうのはどういうことなの?Lock外にスレッドを返されちゃうのかしら?

461デフォルトの名無しさん (スッップ Sdb2-XxWr)2019/04/21(日) 16:07:55.74ID:i587kr5jd
>>459
よおキチガイ

462デフォルトの名無しさん (ワッチョイ 69e7-ctQZ)2019/04/21(日) 16:32:29.56ID:RWXhngOc0
>>460
Task.Delay()だけだと完了を待ってないから、実質無いのと同じ

463デフォルトの名無しさん (ワッチョイ 6963-pikq)2019/04/21(日) 17:35:25.00ID:F9kXeXwV0
>>460
ピーコックアンダーソンの非同期動画みてみればすぐに理解できるぞ

464デフォルトの名無しさん (ワッチョイ ee0d-X0Gq)2019/04/21(日) 22:18:43.95ID:rykfOnh80
速度がどうとか言うんだったらc#なんか使うなよと少し思いました

465デフォルトの名無しさん (ワッチョイ 31f5-DNyu)2019/04/21(日) 22:35:33.45ID:CLsKfNj20
>>464
少しってなんだよ!

466デフォルトの名無しさん (ワッチョイ 1261-oal8)2019/04/21(日) 23:52:50.47ID:SWXjVSz30
>>465
a little

467デフォルトの名無しさん (ワッチョイ 5e63-Pr8H)2019/04/22(月) 04:23:42.26ID:29e/0Uiq0
じゃあ残りの大半は何を思ってたの

468デフォルトの名無しさん (ワッチョイ b5e6-YIQo)2019/04/22(月) 19:50:45.64ID:DglGSvcP0
ソートってポインタやmalloc, memcpyとか使ってこねくり回すのが楽しいのにC#だとイマイチだよね

469デフォルトの名無しさん (ワッチョイ c23e-HmQt)2019/04/22(月) 20:39:27.38ID:Xu5D3g840
独自に作成したユーザコントロールをdataGridViewのカラムに追加する処理を作成しているんですが
追加したものをそのまま削除するとうまく削除出来ず、一方のユーザコントロールが必ず画面上に残ってしまうんですが
なぜでしょうか?原因がわからず悩んでいます
どなたか教えてください

//@ひとまず空のデータを作成してdataGridViewに格納
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] {new DataColumn(), new DataColumn(), });
dt.Rows.Add(new object[] { "", "" });
this.dataGridView1.DataSource = dt;
//Aユーザコントロール1をdataGridViewに追加
UserControl1 userControl1 = new UserControl1();
this.dataGridView1.Controls.Add(userControl1);
userControl1.Location = this.dataGridView1.GetCellDisplayRectangle(0, 0, true).Location;
//Bユーザコントロール2をdataGridViewに追加
UserControl1 userControl2 = new UserControl1();
this.dataGridView1.Controls.Add(userControl2);
userControl2.Location = this.dataGridView1.GetCellDisplayRectangle(1, 0, true).Location;
//C追加したユーザコントロールを削除→何故かユーザコントロール2だけが残る
dataGridView1.Controls.Clear();

470469 (ワッチョイ c23e-HmQt)2019/04/22(月) 20:40:58.08ID:Xu5D3g840
ちなみに私が試したのはvisualStudioの2017です

471デフォルトの名無しさん (ワッチョイ 92e0-JNgg)2019/04/22(月) 20:42:29.96ID:5zGuWDFU0
c#だと遅くて無理みたいな高尚なプログラム触ってないからよくわからん
cppとc#でどれくれい違うん?

472デフォルトの名無しさん (スップ Sd12-yS2j)2019/04/22(月) 20:52:55.67ID:doLks5OSd
>>471
何するかによるし言語仕様理解せずにコーディングすればC++だろうがC#だろうが遅くはなる
早くしたけりゃどの言語だってコンパイラが吐くコード見ろになるし極論アセンブラしてろになる
シビアな演算速度求められるようなソフトじゃなきゃ気にするような速度は無い
個人的にいろいろ開発してて速度面で困ったことはない

473デフォルトの名無しさん (ブーイモ MMa6-hooH)2019/04/22(月) 21:35:41.32ID:puVU3XKCM
特定のアプリを監視して表示された文字(画像)をテキストにするアプリ作ったけど
c#だとチェックに1秒、c++とGDIのDLLだと0.01秒とかそんな感じだった

c#で作って必要ならc++にコンバートするのでいいと思う

474デフォルトの名無しさん (ブーイモ MMad-3Z9U)2019/04/22(月) 21:59:37.22ID:a2wjQuhnM
>>468
unsafe使えば

475デフォルトの名無しさん (ワッチョイ 1990-Xw8j)2019/04/23(火) 00:01:21.36ID:5LmBAPnu0
画像処理とかその部分はunsafeとかcだろ。それぐらいは当たり前

476デフォルトの名無しさん (ワッチョイ d963-yS2j)2019/04/23(火) 00:14:05.59ID:Bc6Ot9Tr0
別にC#でいくらでも早くできるけどそれしないでC++より遅いってそりゃそうだよねとしか
GCの恩恵受けてunsafe使わずセーフティな状態でしょ
突き詰めたC++と突き詰めたC#なら.NETで動く分C#が不利なのは仕方ない
突き詰める必要がない部分で恩恵を受けられるんだから、処理速度以外にメリット感じないなら速い言語やればいい
言語なんて所詮道具なんだから適材適所

477デフォルトの名無しさん (ワッチョイ ee0d-X0Gq)2019/04/23(火) 00:15:59.36ID:lAbUfbw70
sleepが1ms単位指定なのに平気で30msくらいかかったりする

478デフォルトの名無しさん (ワッチョイ 2517-YIQo)2019/04/23(火) 00:21:34.72ID:Qu51xl5v0
>>477
Windowsの仕様なのでC#と関係なく発生するよ

479デフォルトの名無しさん (スッップ Sdb2-XxWr)2019/04/23(火) 00:22:35.63ID:1xhRm/Xtd
OSの内部クロックのせい

480デフォルトの名無しさん (ブーイモ MMd5-pikq)2019/04/23(火) 02:07:58.81ID:TPVsn91QM
>>473
そりゃあおまえさんのコードが糞なだけや

481デフォルトの名無しさん (アウアウエー Sada-shJk)2019/04/23(火) 02:09:14.72ID:V6IaHlzqa
OSにクロックはないでしょうw
いやスケジューリングとかタイムスライスとかそんなことが言いたいんだとは思うけど

482デフォルトの名無しさん (スッップ Sdb2-XxWr)2019/04/23(火) 02:35:38.55ID:1xhRm/Xtd
>>481
え…

483デフォルトの名無しさん (アウアウウー Sacd-v9Kr)2019/04/23(火) 07:53:20.75ID:5v63vvPIa
TickCountの事だと思う。

484デフォルトの名無しさん (ワッチョイ 092d-RDgi)2019/04/23(火) 11:11:38.25ID:D0U8cwP90
awaitのついた文の次の文を実行する際に、await前と同じスレッドに帰ってきてもらうことってできないの?

485デフォルトの名無しさん (ワッチョイ 6e7c-lfmU)2019/04/23(火) 11:25:52.45ID:NBcK336D0
元のスレッドがそういうことできる機能を持ってればできるよ
WinFormやWPFのGUIスレッドはメッセージループで実現してて
それらの場合はGUIスレッドでawaitすればGUIスレッドに戻ってくるのが既定だし

486デフォルトの名無しさん (オイコラミネオ MM91-8JmN)2019/04/23(火) 12:18:02.90ID:m6tbNaeWM
Pythonでカラー画像をRGBごとに分割して出力するスクリプトを書いたんだけど、
opencv使わずにC#でも出来るのかな?
C#でもnumpyみたいなの無いの?

487デフォルトの名無しさん (ワッチョイ a2a5-hooH)2019/04/23(火) 12:20:58.93ID:4ETsFZLA0
どんだけ馬鹿なんだよ

488デフォルトの名無しさん (スププ Sdb2-Sl/5)2019/04/23(火) 13:00:40.13ID:N4fQ2uHcd
>>486
numpyってrubyですか?

489デフォルトの名無しさん (ワッチョイ 7988-yS2j)2019/04/23(火) 15:41:23.24ID:elaW7zc+0
>>486
まんまは無いけど部分的にだったら何らかのライブラリで補完できるんじゃないかな?
これとか
https://numerics.mathdotnet.com

490デフォルトの名無しさん (ワッチョイ 092d-RDgi)2019/04/23(火) 16:29:44.88ID:D0U8cwP90
>>485
コンソールアプリ等だとなかなか難しいんかな

491デフォルトの名無しさん (ワッチョイ 3235-DNyu)2019/04/23(火) 16:33:48.41ID:EaCRsjQU0
>>490
Task.WaitAnyとかでできんもんか?

492デフォルトの名無しさん (アウアウエー Sada-shJk)2019/04/23(火) 17:58:47.89ID:xFm0RmkHa
>>484
いやいや最初から同じスレッドですからww
そもそも同一メソッド内で別のスレッドを起動することはあっても
実行中に途中のスレッドに切り替わるとかそんなのありえへんwww

493デフォルトの名無しさん (スププ Sdb2-Sl/5)2019/04/23(火) 19:05:14.26ID:hvzt5+/sd
>>492
しょうもない嘘をつくな

494デフォルトの名無しさん (ブーイモ MMd5-hooH)2019/04/23(火) 19:28:13.89ID:2vLu2U8QM
誤解が誤解を生む

仕様について理解が足りない

495デフォルトの名無しさん (アウアウエー Sada-shJk)2019/04/23(火) 19:35:04.22ID:xFm0RmkHa
ネタじゃなくて本気で変な誤解してるのか...
メソッドの途中で行が変わると別のスレッドで実行されるとかそんな言語怖くて使えないよwww

496デフォルトの名無しさん (ブーイモ MMd5-hooH)2019/04/23(火) 19:36:05.31ID:2vLu2U8QM
お前は勘違いしてる

GUIとCUIで仕様が違ってる

497デフォルトの名無しさん (ブーイモ MMd5-hooH)2019/04/23(火) 19:50:14.81ID:2vLu2U8QM
await/asyncは単なるTask非同期処理を簡易的に書ける糖衣構文
次にawaitの次をどのスレッドになるかはその時の状態次第

GUIではそれでは困るのでデフォルトで同じスレッドが処理をするようにしてあるだけ

498デフォルトの名無しさん (アウアウエー Sada-shJk)2019/04/23(火) 20:19:35.25ID:xFm0RmkHa
訳のわからん勘違いをしてるのはどっちだよ
自信満々で馬鹿じゃないマジで

499デフォルトの名無しさん (ワッチョイ 0d00-YIQo)2019/04/23(火) 20:30:14.95ID:aIitEIPQ0

500デフォルトの名無しさん (ワンミングク MM62-tFh+)2019/04/23(火) 20:30:27.32ID:PlCSQgU2M
deligate

501デフォルトの名無しさん (アウアウエー Sada-nHqp)2019/04/23(火) 20:36:54.48ID:iDnak3xha

502デフォルトの名無しさん (アウアウエー Sada-shJk)2019/04/23(火) 20:41:16.72ID:xFm0RmkHa
勘違いをしているのは俺の方だった...
申し訳ないですw

503デフォルトの名無しさん (ブーイモ MMd5-hooH)2019/04/23(火) 21:04:08.70ID:2vLu2U8QM
すなおでいいんでない?

504デフォルトの名無しさん (スップ Sd12-yS2j)2019/04/23(火) 21:19:00.48ID:7omDh/oid
煽る時点で目糞鼻糞

505デフォルトの名無しさん (ワッチョイ 092d-RDgi)2019/04/23(火) 21:57:22.24ID:D0U8cwP90
同じスレッドに戻ってきてもらうのに、簡単な方法ってないのかな・・・・

506デフォルトの名無しさん (アウアウエー Sada-nHqp)2019/04/23(火) 22:10:23.58ID:iDnak3xha
>>505
>>490を見るに、コンソールアプリで特定スレッドで処理したいみたいだけど、どういった理由?
GUIなら、時間がかかる処理は別スレッドで、画面更新は絶対にUIスレッドで、といった使い分けがあるけど
CUIで特定スレッドを意識する理由がちょっと思いつかないんだ

507デフォルトの名無しさん (ワッチョイ 092d-RDgi)2019/04/23(火) 22:42:29.23ID:D0U8cwP90
>>506
WebAPIサーバを作りたく、その中で扱うデータについてトランザクション処理みたいなことをしたかったんです
通信関連でAwaitが多用されている中でも、データのロックをできるだけ減らしたい、またうっかりミスしてロック外に出ないでほしいと思ったんです

508デフォルトの名無しさん (アウアウエー Sada-nHqp)2019/04/24(水) 00:21:10.86ID:9Dlmymg8a
>>507
それを聞いても、「特定スレッドで絶対に処理したい」が主目標にはならない気がする
「ロックにReaderWriterLockSlimを使っていて、ロック取得と解放は同じスレッドで行う必要がある」のような状況ならまだ分かるんだけど
もしもこの状況であるなら、SemaphoreSlimでロックするようにすれば、WaitOneAsyncで待つスレッドと、Releaseするスレッドを別にできる(=間でawaitできる)
万一本当に何か理由があって特定スレッドで処理を続けたいのなら、Taskをawaitするのでなく.Wait()で待つようにすれば、スレッドは切り替わらなくなる

> うっかりミスしてロック外に出ないでほしい
これが「ロックを取得したけど、解放を忘れる」ことを指すのであれば
try {} finally {} や、ラップクラスを作ってIDisposable実装してusing() {} するのが対策になるかもしれない
取得と解放がメソッドを跨いだりするなら面倒くさくなるけど……

509デフォルトの名無しさん (ワッチョイ 23ad-BP9Y)2019/04/25(木) 23:50:01.61ID:1l/c830P0
https://ideone.com/TM1zJh
if (ob.volume == volume)この部分なのですが
左辺は引数で取ったobのメンバ変数であることは分かるのですが右辺はどのメンバ変数なんでしょうか?
入門書のコードなのですが…

510デフォルトの名無しさん (ワッチョイ 2d5f-KI0z)2019/04/25(木) 23:52:47.61ID:LJHMbymK0
>>509
6行目

511デフォルトの名無しさん (ワッチョイ 2d5f-KI0z)2019/04/25(木) 23:54:19.01ID:LJHMbymK0
いや、thisって答えた方が良いのか

512デフォルトの名無しさん (ワッチョイ 4b2c-t8aL)2019/04/25(木) 23:59:26.79ID:8Sf9N2Ww0
19行目にも同じ構造があるけどそっちはすんなり入ったんだろうか

513デフォルトの名無しさん (ワッチョイ 23ad-BP9Y)2019/04/26(金) 00:01:25.44ID:6Aa9jI4a0
>>510
メソッドを呼び出したob1のメンバってことですかね?
理解できました。ありがとうございます

514デフォルトの名無しさん (ワッチョイ cbda-KxX0)2019/04/26(金) 23:30:08.64ID:9lAtl2Yi0
コンストラクタ内で例外をthrowするのはご法度ですか?

515デフォルトの名無しさん (スフッ Sd43-jluM)2019/04/26(金) 23:43:18.42ID:p/I2x8fjd
>>514
定石ですよ

516デフォルトの名無しさん (アウアウエー Sa13-jWJP)2019/04/27(土) 00:06:35.36ID:Ern7/KCha
>>514
ご法度ではないし、むしろインスタンスを正しく構築できないなら積極的にthrowしてほしい
例えばStreamReader(String)の場合、ArgumentException系列から
FileNotFoundExceptionやDirectoryNotFoundExceptionのIOException系列までthrowする

517デフォルトの名無しさん (ドコグロ MM93-iwjh)2019/04/27(土) 00:38:42.27ID:yEc5G7yUM
悪いとは言わないけど、最近はあまりコンストラクタで例外投げるような処理やらなくなったなあ
何故かと考えたら、async/awaitのせいだと気付いた
コンストラクタではawaitできないから、昔みたいにコンストラクタでファイル読んだりするのはほぼ無くなった

518デフォルトの名無しさん (アウアウエー Sa13-iwjh)2019/04/27(土) 00:45:53.35ID:k66IsG4/a
あとDIと相性が悪い
DI使ってると、コンストラクタで例外投げたらそもそもアプリが起動しない

519デフォルトの名無しさん (ワッチョイ 4d61-r3uF)2019/04/27(土) 02:44:50.91ID:ni4YCIMc0
ドキュメントもコンストラクタで投げる可能性のある例外一覧が必要になるけど
実際あげきれなくて手薄になりがち
そうなると設計できない
例外の種類でその後の動作をハンドリングしたいときに動かしてみて
キャッチの種類を分けるしかない
仕様書に書いてあるこのエラー出せないんすけど?
このときの例外増やしてもらえます?
→入れた引数から判断できるでしょ?とかキチガイかよって

520デフォルトの名無しさん (ワッチョイ 6347-jluM)2019/04/27(土) 02:55:41.53ID:TtZ/uEZc0
>>519
例外の種類を完全に把握できないのはコンストラクタに限ったことではないだろ

521デフォルトの名無しさん (ワッチョイ 4d61-r3uF)2019/04/27(土) 03:07:26.16ID:ni4YCIMc0
>>520
そもそも例外嫌いなんよ俺
ビジネスロジックだとほぼ全部把握しないといけないのに
丸っと渡されると困るだけじゃん

522デフォルトの名無しさん (ワッチョイ 6347-jluM)2019/04/27(土) 03:45:53.67ID:TtZ/uEZc0
その例外を全部把握しなきゃいけないというのがアホな考えなんだよ
予期できないのはExeceptionとしてまとめてキャッチして処理しとけばなんの問題もないね

523デフォルトの名無しさん (ワッチョイ 0d38-c7g7)2019/04/27(土) 06:32:15.89ID:QhVWSAZD0
どっちも乱暴だな

524デフォルトの名無しさん (ワッチョイ 4d61-KxX0)2019/04/27(土) 07:35:46.92ID:3SWE0tmA0
例外は握りつぶすのが定石

525デフォルトの名無しさん (ワッチョイ 4d61-r3uF)2019/04/27(土) 08:12:46.03ID:PiMoxWjk0
>>522
設計書になんて書くん?
俺んとこ例外使うなら設計書に書いてない例外出しちゃうと大変なんだよ
MSのドキュメントも全部はねーし
マジ厄介
でもお客の言い分もわかる気がするんだよね
流石に何が来るかわかりませんってのはどうなの?
って思う

526デフォルトの名無しさん (ワッチョイ 4d61-r3uF)2019/04/27(土) 08:15:07.62ID:PiMoxWjk0
>>522
ああ、だから例外返さないよねそれ

527デフォルトの名無しさん (スフッ Sd43-jluM)2019/04/27(土) 08:34:22.02ID:9yG2LI1yd
例外の発生要因なんてあらゆるものがあるんだから全部明示しろというお客の主張が不条理
設計書に例外全部明示しろとか要求されたことないね

528デフォルトの名無しさん (アウアウエー Sa13-OsmV)2019/04/27(土) 08:51:37.56ID:yNGf8etVa
規約が足かせになってる場合は無視したほうがいい
スキル低い人が大昔に作った規約かもしれないし

例外は復旧可能かつ復旧したいものだけキャッチして対処
それ以外はアスペクトでまとめて処理すればいいよ

529デフォルトの名無しさん (ワッチョイ 4b63-peSw)2019/04/27(土) 09:11:45.63ID:ibduGkrL0
コンストラクタで例外がってC+出身者みたいだな

530デフォルトの名無しさん (ワッチョイ 852f-jluM)2019/04/27(土) 09:25:13.44ID:YyIkYDM+0
>>529
.NET Frameworkクラスもコンストラクタで例外投げるのに?

531デフォルトの名無しさん (アウアウエー Sa13-iwjh)2019/04/27(土) 09:26:49.68ID:k66IsG4/a
>>529
C++のその説は迷信だけど、C#では事実としてawaitができないという重大な制約があるからなあ
コンストラクタで例外を投げてはいけないわけではないが、そもそも例外を投げる可能性のあるような処理をコンストラクタでやらせることができるケースが少ないのは間違いない

532531 (アウアウエー Sa13-iwjh)2019/04/27(土) 09:33:56.80ID:k66IsG4/a
もちろん、ArgumentNullExceptionのようにバグを検出してアプリを落とすことを目的とする例外は別だよ
そういうのを除けば、例外を投げうる処理ってのはだいたいIOを含んでいてawaitが必要になるケースが多い

533デフォルトの名無しさん (アウアウエー Sa13-mEZ1)2019/04/27(土) 09:36:37.55ID:yyWoHVeQa
いまだにオブジェクト倶楽部のをベースにしたC#コーディング規約なのかな
10年くらい前の時点でも悪評ぷんぷんだったのにどれだけ時代遅れなことしてるんだ

コーディング規約作ってる奴のスキルが低い/古すぎ/多言語の知識しか持ち合わせてなくて
クソな規約になってることはよくある
コンストラクタで例外吐くのが望ましくないのはC++の話であってC#ではそんなこと全然ない
例外すべて列挙しなきゃいけないのはJavaの話であってC#にもそれを持ち込むのはナンセンス

でも大抵規約のクソさ加減と規約作成者・組織の老害度は比例するんだよな
指摘しても直ることはないだろうから「これはクソなコードだ」と自覚を持ったうえで
規約通りのコードを書くしかない

534デフォルトの名無しさん (ドコグロ MM93-r3uF)2019/04/27(土) 11:46:22.17ID:V1c8eqNrM
>>527
それって制御できないって言ってるんだよね?
その時はtry catchで握り潰せばいいんだけど
君はどうなればいいと思ってるの?

ある日例外が起きてアプリが止まっちゃってもそれは時代の流れでしょうがないと思ってるってこと?

535デフォルトの名無しさん (スフッ Sd43-jluM)2019/04/27(土) 12:00:49.48ID:ASguEO4td
>>534
予期せぬ例外が起きたら発生箇所のスタックトレースを表示させてバグ修正に役立てるよ
客もその画面キャプチャを送ってくれる
Execeptionにはそういうデバッグに役立つ情報入ってるからマジ便利だわ

536デフォルトの名無しさん (スップ Sd03-O4pN)2019/04/27(土) 12:01:52.85ID:reMuF7mTd
>>535
客にスタックトレース見せちゃだめw

537デフォルトの名無しさん (アウアウエー Sa13-OsmV)2019/04/27(土) 12:22:00.72ID:yNGf8etVa
コンストラクタで例外を出すのが妥当なら出すべきだ
しかし、例外を出すような責務は得てしてファクトリやリポジトリなど外部のクラスが担うことが多い傾向にある
なので正確に言うと、オブジェクトの生成という責務を分離してない汚いプログラムはダメだ、なんだけど
それが誤って拡散した結果、コンストラクタで例外を出すプログラムはダメだ、に拡大解釈されてしまったのだろう

// コレは生成責務が分離されてないからダメだ
class Hoge {
public Hoge(int id) {
var dto = DB.FindHoge(id); // 例外なげる
m_id = id;
m_name = dto.name;
}

// コレは責務が分離されてるからOK
class HogeRepository {
public Hoge Find(int id) {
var dto = m_db.FindHoge(id); // 例外なげる
return new Hoge(id, dto.name); // 実装次第で投げたり投げなかったり
}

// コレもOK 例外投げるが責務としては妥当
class Hoge {
public Hoge(int id, string name) {
if (id < 0) throw new BadHogeFormat("id");
if (UTIL.NotMatch(@"^H\d{8}$", name)) throw new BadHogeFormat("name");
m_id = id;
m_name = name;
}

538デフォルトの名無しさん (ワッチョイ 2301-4ufv)2019/04/27(土) 13:20:27.71ID:rUmkpmPg0
>>533
> コンストラクタで例外吐くのが望ましくないのはC++の話であって
そんな話は聞いたことないが?

539デフォルトの名無しさん (ワッチョイ 4b63-peSw)2019/04/27(土) 13:38:48.88ID:ibduGkrL0
C+の話は
C+のコンストラクタとデストラクタの言語仕様をよく理解してない奴の誤解だから
もともと正しくない

540デフォルトの名無しさん (ワッチョイ ad17-KxX0)2019/04/27(土) 13:43:38.03ID:bs+zTlgP0
>>539
お前はさっきから何の言語の話をしているんだ?

541デフォルトの名無しさん (ワッチョイ 4b63-peSw)2019/04/27(土) 13:45:42.92ID:ibduGkrL0
話しかけるなゴミが

542デフォルトの名無しさん (アウアウエー Sa13-7ni7)2019/04/27(土) 13:46:18.87ID:vrUpwJdGa
ダメも糞も引数が不適切なら例外投げるしかないねそもそもw

もちろん(注意喚起とか)何らかの意図を持ってあえてコンストラクタではなく
ファクトリーメソッドやTryCreateXxxxにする方法もあるけど、
少なくとも誰が考えても引数が不適切なら例外発生が予見できるなら
コンストラクタで例外投げて何も問題ない

543デフォルトの名無しさん (ワイーワ2 FF93-drJF)2019/04/27(土) 16:53:30.48ID:hssASZhyF
デストラクタで例外吐くのはあり?

544デフォルトの名無しさん (ワッチョイ 8563-Neyz)2019/04/27(土) 16:57:52.36ID:krlg75LI0
どこならokとかngとかじゃなくて例外が発生したなら吐かなきゃ駄目
例外の前提を変えちゃ駄目

545デフォルトの名無しさん (ブーイモ MM79-HJzg)2019/04/27(土) 19:59:50.65ID:UyCSNWt+M
>>543
基本的になし
デストラクタの意味がなくなるから

546デフォルトの名無しさん (ワッチョイ 2301-4ufv)2019/04/27(土) 20:00:47.02ID:rUmkpmPg0
>>543
なし

547デフォルトの名無しさん (ワッチョイ 232f-K6Yl)2019/04/27(土) 20:39:48.83ID:ucBEJWSU0
デストラクタって解放し忘れたアンマネージドリソースの解放をするためにある奴でしょ?
ただそれだけの処理に例外とか要る?

548デフォルトの名無しさん (ワッチョイ 4b7b-7MPY)2019/04/27(土) 20:43:57.48ID:xE/0VH9u0
>>547
どんな想定かわからないし入れたい人は入れればいいんじゃないの

549デフォルトの名無しさん (ワッチョイ 232f-K6Yl)2019/04/27(土) 21:09:36.81ID:ucBEJWSU0
C#のデストラクタは実行タイミングが不明な上に
他でキャッチできないからそのままクラッシュする事になるが
それが目的なら

550デフォルトの名無しさん (ワッチョイ 8563-Neyz)2019/04/27(土) 22:32:08.58ID:krlg75LI0
デストラクタであろうと例外が発生したなら吐くべき
デストラクタで例外なら大体最終的にアプリ落とす結果になるだろうけど
普通に設計すりゃまずデストラクタで例外が必要にはならんとは思うが

551デフォルトの名無しさん (ワッチョイ 2361-KxX0)2019/04/28(日) 07:43:44.94ID:Rwl5KJzI0
そりゃどこでも例外が出りゃ吐くべきだろ。デストラクタで出た例外は握りつぶせとでもいうのかよ

552デフォルトの名無しさん (アウアウエー Sa13-OsmV)2019/04/28(日) 08:59:56.68ID:vQlivpSSa
デストラクタの例外は運用に入ったらログ吐いて握り潰すしかない
開発中にどれだけ発見しきれるかが勝負

553デフォルトの名無しさん (ブーイモ MMa9-HJzg)2019/04/28(日) 09:42:23.56ID:3t4t6vYZM
馬鹿しかいないのかな

デストラクタで例外をキャッチすべきかじゃなくて
デストラクタで例外を投げるべきかだろ

554デフォルトの名無しさん (ブーイモ MMa9-HJzg)2019/04/28(日) 09:48:33.86ID:3t4t6vYZM
どうみても例外をデストラクタで握りつぶすなんて話はしてない

デストラクタで挙動がおかしな場合そこから自前で例外を投げるかどうかだろ
どうしてこんな前提すらわからないのか?

555デフォルトの名無しさん (ワッチョイ 232f-K6Yl)2019/04/28(日) 10:20:38.37ID:ddGaHMPJ0
デストラクタで例外投げるのは出来るけど
デストラクタの呼び出し元はファイナライザースレッドになる故
デストラクタ以外の場所でキャッチして
ログ記録したりは出来ないが、よろしいか?

556デフォルトの名無しさん (ワッチョイ 232f-b8jC)2019/04/28(日) 10:52:59.00ID:F7dfQde00
ところで、C#ってコンストラクタで例外吐いたとき、インスタンスは生成されて戻されるの?
そのインスタンスのデストラクタは(実装してればどこかで)実行されるの?

557デフォルトの名無しさん (ワッチョイ 2301-4ufv)2019/04/28(日) 14:01:09.54ID:Cfig35XD0
>>554
お前黙ってろよ…
> デストラクタで挙動がおかしな場合そこから自前で例外を投げるかどうかだろ
そんな話は>>545-546で既に終わってる
今の話は例えばデストラクタでファイルクローズした時そのメソッドで例外送出されたらどうするかって話な

> どうしてこんな前提すらわからないのか?
わかってないのはお前だけ

558デフォルトの名無しさん (ワッチョイ 2301-4ufv)2019/04/28(日) 14:02:16.88ID:Cfig35XD0
>>556
> ところで、C#ってコンストラクタで例外吐いたとき、インスタンスは生成されて戻されるの?
されない

> そのインスタンスのデストラクタは(実装してればどこかで)実行されるの?
されない

559デフォルトの名無しさん (ワッチョイ 8563-Neyz)2019/04/28(日) 14:33:26.09ID:18CJ+0uF0
ファイルクローズなんてデストラクタの仕事じゃないからクラス設計が間違ってる
もしそうせざるを得ない理由があるならアプリ終了するだけ
アプリ終了されて困るなら正しくクラス設計すればいい

560デフォルトの名無しさん (スププ Sd43-jluM)2019/04/28(日) 15:52:04.90ID:QPV4rne2d
>>559
例えばの話してんだからそこに文句付けるのはお門違い

561デフォルトの名無しさん (スプッッ Sd03-Neyz)2019/04/28(日) 17:06:19.94ID:lUhOqb6wd
>>560
例えだろうがなんだろうが結論は同じ

562デフォルトの名無しさん (ラクッペ MMe1-peSw)2019/04/28(日) 17:07:43.10ID:3i1J1gafM
年甲斐もなく疲れた
お前らこんな所で何をやってんだ青瓢箪か?

563デフォルトの名無しさん (ワッチョイ 2301-HJzg)2019/04/28(日) 17:32:00.19ID:+oA/oQuO0
ここでは例外の話でドンパチ
よくのぞいてるVBAスレでもOn Errorの話でドンパチ
どちらを見てるのかわからなくなってくる

564デフォルトの名無しさん (ワッチョイ 2301-4ufv)2019/04/28(日) 17:38:04.38ID:Cfig35XD0
>>559
> アプリ終了されて困るなら正しくクラス設計すればいい
具体的に書けないなら黙ってろってw

565デフォルトの名無しさん (アウアウウー Sae9-HJzg)2019/04/28(日) 18:13:29.08ID:KKCCRPTWa
デストラクタの中でファイル操作やクローズするのは間違ってるな
そこで例外でたらどうしようもない
ログ取るのも同じ

566デフォルトの名無しさん (ワッチョイ cbda-KxX0)2019/04/28(日) 18:25:38.64ID:kK/njqra0
メンバ変数を仕様上どうしてもDBから引っ張ってくるデータで初期化するしかなく、
コンストラクタ内でDB処理異常時に例外を吐く処理があります。

この場合コンストラクタ内では何もせず、インスタンス生成後にInit()のようなメソッドを
呼び出してもらうほうが使う側は楽でしょうか?

567デフォルトの名無しさん (アウアウエー Sa13-mEZ1)2019/04/28(日) 18:31:50.14ID:uWFo9H7Wa
そもそもC#でデストラクタに処理を書くこと自体が基本ありえないと思うんだけど・・・
リソースの解放なら(まともな構造のソースであれば)Dispose時に済ませるだろうし

デストラクタにわざわざ処理を書いて、しかもその処理が例外を引き起こすパターンって
具体的にどんなのがありうるんだ?

568デフォルトの名無しさん (スプッッ Sd03-Neyz)2019/04/28(日) 18:32:37.29ID:lUhOqb6wd
>>566
コンストラクタで例外を吐いてください。

569デフォルトの名無しさん (スプッッ Sd03-Neyz)2019/04/28(日) 18:34:32.85ID:lUhOqb6wd
>>564
ぜひ具体的に例示していただきたい。

570デフォルトの名無しさん (アウアウエー Sa13-jWJP)2019/04/28(日) 18:39:48.98ID:e0sCdFMHa
>>566
Init()を呼び忘れて使うリスクが出てくるので、インスタンス生成時に済ませたい派
ただDB関連では >>531-532 が言うように非同期処理をしたいだろうから
「コンストラクタはprivateにして、public staticなasyncファクトリを提供」が良いと思う

インスタンス生成時に例外出る場合だと変数の宣言と初期化が分離するけど、C#だと初期化し忘れはエラーになるから許容範囲じゃないかな
Foo foo;
try { foo = CreateFoo(); }
catch(BarException) { 何か復帰処理 }
// 以下fooを使った処理

571デフォルトの名無しさん (ラクッペ MMe1-peSw)2019/04/28(日) 18:45:37.21ID:3i1J1gafM
器が小さい奴はすぐ引っ込みが着かなくなるから困ったものだ

572デフォルトの名無しさん (ワッチョイ 2301-4ufv)2019/04/28(日) 18:46:32.36ID:Cfig35XD0
>>569
MSがデストラクタからDispose呼んでるんだがw
// Free any unmanaged objects here.
で例外が発生するケースをどう扱うのか具体的に添削してやってくれ
https://docs.microsoft.com/ja-jp/dotnet/standard/garbage-collection/implementing-dispose

573デフォルトの名無しさん (アウアウエー Sa13-OsmV)2019/04/28(日) 18:47:40.42ID:vQlivpSSa
>>566
>>537の考え方が正解
そういう時はファクトリーを使うという考え方が世界標準

574デフォルトの名無しさん (スプッッ Sd03-Neyz)2019/04/28(日) 18:56:32.95ID:lUhOqb6wd
>>572
どう扱うも何もアプリ終了させろってだけだが?
ハンドリングすべきではないものをどうこうしよとしないで

575デフォルトの名無しさん (アウアウエー Sa13-7ni7)2019/04/28(日) 19:02:39.46ID:kMBz0MBMa
>>566
上にも書いたけど、あえてコンストラクタではなくstaticなTryCreateHogeみたいなのだけ提供して
注意喚起する方法もあると思うよ

>>567
デストラクタの存在理由はClose/Disposeを忘れた場合のフェイルセーフなんで
アンマネージドな共有リソースを占有するオブジェクトの場合はほぼ必須だし、
例外を投げるかどうかはともかく、デストラクタの中で例外的な事態が
発生することも普通にありえるとは思う。(例えばデバイスのクローズに失敗)

576デフォルトの名無しさん (スプッッ Sd03-Neyz)2019/04/28(日) 19:02:50.34ID:lUhOqb6wd
どんなに丁寧に処理したって完全に例外を対応するなんてことは不可能
599の最後でちゃんとやれば良いokみたいに書いちゃったのが良くなかった
ちゃんとやったって無理なことはある

577デフォルトの名無しさん (アウアウウー Sae9-HJzg)2019/04/28(日) 19:06:45.39ID:KKCCRPTWa
>>575
その使い方はダメだと思うけど…

578デフォルトの名無しさん (スプッッ Sd03-Neyz)2019/04/28(日) 19:09:47.55ID:lUhOqb6wd
>>576
599じゃなくて559でした

579デフォルトの名無しさん (アウアウエー Sa13-7ni7)2019/04/28(日) 19:10:36.56ID:kMBz0MBMa
>>577
何がダメ?
フェイルセーフって意味分かりますか?

580デフォルトの名無しさん (アウアウウー Sae9-HJzg)2019/04/28(日) 19:17:31.79ID:KKCCRPTWa
無関係だけど一応答えるよ

フェイルセーフって言うのは失敗しても安全な状態に落ち着くこと
例えば信号が壊れても青信号になるんじゃなくて赤信号になるような設計

ファイルクローズは別にフェイルセーフの概念と関係ない
tryのfinallyはフェイルセーフじゃないよ

581デフォルトの名無しさん (ワッチョイ 2301-4ufv)2019/04/28(日) 19:20:35.61ID:Cfig35XD0
>>574
ああ、お前じゃ無理だったな、すまんw

> アプリ終了されて困るなら正しくクラス設計すればいい
とほざいてた>>559、出てこいやー

582デフォルトの名無しさん (ワッチョイ 23ad-O4pN)2019/04/28(日) 19:22:21.81ID:fIrxxOza0
>>572
よく読め

583デフォルトの名無しさん (アウアウエー Sa13-OsmV)2019/04/28(日) 19:22:22.23ID:JJw12cyBa
リソースのライフタイムの管理とリソースを使用して何かする責務を別の責務として分離したほうがいい

リソースの取得だけを分離する場合はファクトリーパターンが使われる
ただしこの場合はリソースを閉じる責務とリソースを使用する責務が同じクラスに混在してしまう
結果としてデストラクタでの例外といった問題が連鎖して発生する

これに対応するためにはファクトリーアイソレーションパターンを使う
このパターンならリソースのライフタイム管理とリソースの使用を完全に分離できる
コンストラクタでもデストラクタでもリソースの開閉に由来する例外は発生しなくなる

584デフォルトの名無しさん (アウアウウー Sae9-HJzg)2019/04/28(日) 19:23:12.72ID:KKCCRPTWa
デストラクタでたとえば解放忘れの大きなメモリを開放するとしても
その前に他で大きなメモリを確保しようとすると死ぬ

デストラクタでファイルのクローズ忘れをクローズしようとしても
その前に他でファイルを開こうとするとエラーになる

デストラクタでいろいろ開放しても何も助けてない
役に立ったとしても偶然であって実質はバグを握りつぶしてるだけ

585デフォルトの名無しさん (アウアウウー Sae9-HJzg)2019/04/28(日) 19:25:35.89ID:KKCCRPTWa
今までアンカー売ってないけど>>579向け

デストラクタで何か開放してもバグの温床になるだけ

586デフォルトの名無しさん (アウアウエー Sa13-7ni7)2019/04/28(日) 19:26:43.51ID:kMBz0MBMa
>>580
関係あるからw

同じことをくどくど書くのは嫌いだが、デストラクタの存在理由は
コードの利用者がClose/Disposeを呼び忘れる、というヒューマンエラーに対するフェイルセーフ。

これは議論の余地はないよ

587デフォルトの名無しさん (アウアウウー Sae9-HJzg)2019/04/28(日) 19:26:58.59ID:KKCCRPTWa
みんなフェイルセーフって言葉を使うけど大体意味間違ってる

588デフォルトの名無しさん (アウアウエー Sa13-mEZ1)2019/04/28(日) 19:28:16.75ID:uWFo9H7Wa
ああ、Dispose呼び出し忘れ対策のデストラクタか
それなら、自分の場合は
・デストラクタには「Dispose(false)」以外書かない(trycatchもしない)
・Dispose()側が例外を投げるかどうかは解放するリソース次第
・デストラクタの中に延々とリソース解放処理なりtry-catchが必要な処理なりを書いてるのだとすれば
 そのソースコードは根本的におかしい

589デフォルトの名無しさん (アウアウエー Sa13-7ni7)2019/04/28(日) 19:30:31.27ID:kMBz0MBMa
>>585
だから、デストラクタ「で」積極的にClose処理をするんじゃないの。

Close処理は普通にDispose/Closeに書くに決まっているわけだが、
使用者がそれを呼び忘れても最悪GCのお片付けのタイミングで
Close処理が行われるようにするための仕組みがデストラクタ

590デフォルトの名無しさん (アウアウエー Sa13-mEZ1)2019/04/28(日) 19:32:19.82ID:uWFo9H7Wa
ごめんもいっこ
・IDisposableなオブジェクトをDisposeせず使用している時点で実装不備とみなしてよい
(フィールド変数だったらポカミスで解放し忘れはあるかもしれないけど、
 少なくともローカル変数ならusingを意図的に使ってない時点でコーダーが悪意を持ってると判断する)

591デフォルトの名無しさん (アウアウウー Sae9-HJzg)2019/04/28(日) 19:32:33.80ID:KKCCRPTWa
>>586
いつまで勘違いしてるのか?

フールプルーフとフェイルセーフは別物だからwww

592デフォルトの名無しさん (アウアウエー Sa13-OsmV)2019/04/28(日) 19:35:22.92ID:JJw12cyBa
>>590
DIに管理させるからusingもDisposeもしないという構成は非常に多い

593デフォルトの名無しさん (アウアウウー Sae9-HJzg)2019/04/28(日) 19:35:29.40ID:KKCCRPTWa
自分の使ってるコードで完結してるのにデストラクタでアンマネージなどのリソースを
開放するのは間違った使い方

いくら自信たっぷりに書いてるのか知らないけど間違ってる

594デフォルトの名無しさん (アウアウエー Sa13-OsmV)2019/04/28(日) 19:44:53.23ID:JJw12cyBa
>>593
知らない他人が何年後かに使うかもしれない
だとしたら誤った使われ方でも最低限の安全性を確保できるように作るべき
デストラクタでリソースを解放するのはアリ

595デフォルトの名無しさん (ワッチョイ 2301-4ufv)2019/04/28(日) 19:47:01.57ID:Cfig35XD0
>>582
そんなレスしかできないなら黙ってろよw

596デフォルトの名無しさん (アウアウウー Sae9-HJzg)2019/04/28(日) 19:50:07.37ID:KKCCRPTWa
>>594
IDisposable無視して放置する人を野放しにしないためにもデストラクタは不要だと思うわ

デストラクタが呼ばれたか呼ばれないかで意図しないタイミングで不具合が出たりでなかったりするだけだろ
そんなの余計に邪魔だろ

597デフォルトの名無しさん (アウアウエー Sa13-mEZ1)2019/04/28(日) 19:50:40.18ID:uWFo9H7Wa
さすがに自前で生成してない(解放しなくていい)オブジェクトはわざわざ解放しないよ

んーと、デストラクタを書かないといけないような処理があるならDispose(false)だけ書く、んだけど
なにか間違ったこと言ったかな

598デフォルトの名無しさん (ワッチョイ 2301-4ufv)2019/04/28(日) 19:53:00.38ID:Cfig35XD0
>>590
> コーダーが悪意を持ってると判断する)
お前の判断なんてどうでもいい
MSはそんな判断してないからデストラクタからDispose呼んでるんだろうし

599デフォルトの名無しさん (アウアウエー Sa13-mEZ1)2019/04/28(日) 19:54:05.58ID:uWFo9H7Wa
書く必要がないデストラクタなら書かずに済ませるというのは同意

というか普段アンマネージドリソースなんて滅多にさわらないし
まともにデストラクタを書いたのはいったい何年前だろう

600デフォルトの名無しさん (アウアウウー Sae9-HJzg)2019/04/28(日) 20:00:46.55ID:KKCCRPTWa
どうしてもデストラクタ使うなら解放忘れを解放するんじゃなくて
デバッグ中に解放忘れてるぞコラということを伝える仕組みを作るほうがまともじゃないかな?

自分の考えは>>584がほぼすべて

601デフォルトの名無しさん (アウアウクー MM81-K6Yl)2019/04/28(日) 20:04:36.28ID:PHvM++pOM
>>566
ファクトリーメソッドを作って
その中でInitすれば良かろう

602デフォルトの名無しさん (アウアウエー Sa13-OsmV)2019/04/28(日) 20:21:04.08ID:JJw12cyBa
解放忘れを本気で潰そうと思ったらさっき書いたようにファクトリーアイソレーションパターンを使う

Task ExecuteAsync(Func<ISomeResource, Task> job) {
using (var resource = new SomeResource()) {
await resource.OpenAsync();
await job?.Invoke(resource);
await resource.CloseAsync();
}
}

サービス利用者には生成も解放もインターフェースを提供しない
ExecuteAsyncを通さないとリソースにアクセスできないようにすれば解放忘れを完全に予防できる

603デフォルトの名無しさん (アウアウエー Sa13-7ni7)2019/04/28(日) 20:28:37.93ID:kMBz0MBMa
>>591
フールプルーフ(ばかちょん)は何をやっても致命的にならない、
というニュアンスの方が強い。

この場合はどっちでもいいと思うけどね

604デフォルトの名無しさん (ブーイモ MMa9-HJzg)2019/04/28(日) 20:33:15.98ID:3t4t6vYZM
>>603
ばかちょんじゃなくてバカヨケだぞ

適当なこと書くなよ

605デフォルトの名無しさん (アウアウエー Sa13-7ni7)2019/04/28(日) 20:37:42.11ID:kMBz0MBMa
>>604
それは直訳で、日本語では昔からばかちょんと言うんだよ
昔からというか昔はかもしれん。

俺もおじいさん先生からしか聞いたことない言葉だし
まあポリコレの時代だしね

606デフォルトの名無しさん (ブーイモ MMa9-HJzg)2019/04/28(日) 20:39:59.68ID:3t4t6vYZM
バカチョンは意味が違う

607デフォルトの名無しさん (ブーイモ MMa9-HJzg)2019/04/28(日) 20:42:39.60ID:3t4t6vYZM
バカヨケ 失敗しないような仕組み
バカチョン 誰でも使える

608デフォルトの名無しさん (ワッチョイ 2342-KxX0)2019/04/28(日) 21:44:36.92ID:nV7r0mI50
>>592
コンテナdisposeしたら、ついでに中身も自動でやってほしいよな・・・

609デフォルトの名無しさん (ワッチョイ 252d-t87J)2019/04/29(月) 12:55:34.62ID:pjV/Nimc0
横からすまんがさあ
DIにMicrosoft.Extensions.DependencyInjection使ってるんだけど、これってコンテナから生成されたオブジェクトって永遠と生き続けるの?
どうやって開放するん?

610デフォルトの名無しさん (ワッチョイ 23ad-O4pN)2019/04/29(月) 13:05:11.30ID:ehYnqzb50
>>609
Scopeでググれ

611デフォルトの名無しさん (アウアウエー Sa13-OsmV)2019/04/29(月) 13:39:51.85ID:NUp+Ex1Ma
基本的に生成元になったスコープをDisposeするとスコープ管理下のオブジェクトがまとめて消える
スコープはCreateScopeで再帰的に生成できる
BuildServiceProviderで作ったプロバイダーはルートのスコープに生えてるプロバイダーと考えればいい

アッドシングルトンで登録したやつは親子関係にある全てのスコープで1つしか作れずルートスコープと寿命が同期
アッドスコープドで登録したやつは各スコープ内で1つしか作れず作ったスコープと寿命が同期
アッドトランジエントで登録したやつはスコープ内で何個でも作れて作ったスコープと寿命が同期

ASP.NET Coreでは暗黙的に1つのリクエストに1つのスコープを割り当てる

訂正あったらヨロ

612デフォルトの名無しさん (ワッチョイ 252d-t87J)2019/04/29(月) 13:43:03.33ID:pjV/Nimc0
Scope = Asp.net用みたいな気になっていて全然知らなかったよ、ありがとう
ただDIなしの場合にusing句で書けるようなのはDIありでも簡単にかけそうだけど、オブジェクトを扱う箇所が数箇所に分かれてるときは難しそう・・・・
ScopeをDIコンテナに突っ込んだら突っ込んだでまた問題が増えるのかな・・・・

613デフォルトの名無しさん (ワッチョイ 8dda-KxX0)2019/04/30(火) 20:23:22.69ID:IHLGrYrL0
System.Globalization.JapaneseCalendarでeraを取得しているんだけど
Rが入ってこない・・・
Windows10でWindowsUpdateも最新なんだけど、何で入ってこないんでしょう

614デフォルトの名無しさん (アウアウエー Sa13-jWJP)2019/04/30(火) 20:28:08.43ID:w+F7NKD3a
>>613
https://docs.microsoft.com/en-us/windows/uwp/design/globalizing/japanese-era-change
> To test that your application works with the new era, you must advance your computer's clock to May 1, 2019 or later.
PCの時刻設定を2019/05/01以降にする必要があるらしい

615デフォルトの名無しさん (ワッチョイ 4b2c-t8aL)2019/04/30(火) 20:38:50.44ID:LbZ9KfXX0
まずまだアップデートはオプション段階だが、KB4493443入れてる?
正式なWindowsアップデートは5月以降だよ

616デフォルトの名無しさん (ワッチョイ 5d6f-KxX0)2019/04/30(火) 20:45:03.73ID:YvhWBPAF0
KB4493443って、Windows8.1用だったような。
ちなみに、Windows10, version1809用は「近日公開予定」だそうで。
https://support.microsoft.com/ja-jp/help/4469068/summary-of-new-japanese-era-updates-kb4469068

617デフォルトの名無しさん (アウアウエー Sa13-7ni7)2019/04/30(火) 21:35:51.80ID:u6t/T7mma
もう元号とかやめて欲しいよねほんとw
いい加減役所も西暦に一本化しろよ

618デフォルトの名無しさん (アウアウエー Sa13-OsmV)2019/04/30(火) 21:36:53.61ID:TyGEr2d8a
統一したら雑務が減っちゃうだろ

619デフォルトの名無しさん (ワッチョイ 4b2c-t8aL)2019/04/30(火) 22:02:27.50ID:LbZ9KfXX0
>>616
訂正ありがと 手元にあるのが8.1で全部おんなじかと

620デフォルトの名無しさん (ワッチョイ 8dda-KxX0)2019/05/01(水) 06:30:43.85ID:+0nnIASf0
皆さんレスどうもです
まだ対応待ちってことですね・・・
とりあえずいまはテスト用にレジストリいじれるしかなさそうですね

621デフォルトの名無しさん (ワッチョイ 252d-t87J)2019/05/01(水) 14:39:10.04ID:NTU1YIA40
インデクサーってpublic T this[int I]{}みたいに定義するらしいけどさあ
ここに出てくるthisの部分って、this以外も入りうる余地ってあるの?

622デフォルトの名無しさん (ワッチョイ 2d5f-KI0z)2019/05/01(水) 14:49:13.86ID:lxO04VNX0
>>621
無いよ
this以外にするとインデックス付きプロパティって意味になると思うけど、c#には無い

623デフォルトの名無しさん (アウアウエー Sa13-jWJP)2019/05/01(水) 14:51:52.86ID:U25K78xGa
>>621
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/classes#indexers
> indexer_declarator
> : type 'this' '[' formal_parameter_list ']'
> | type interface_type '.' 'this' '[' formal_parameter_list ']'
> ;
入るのはthisだけで、this以外が入る余地はない

624デフォルトの名無しさん (ワッチョイ 252d-t87J)2019/05/01(水) 15:04:58.50ID:NTU1YIA40
ありがとう
無いものについてパッとわかるとか驚くぜ

625デフォルトの名無しさん (ワッチョイ 67da-RYFy)2019/05/02(木) 05:11:25.37ID:fWQ7EMkU0

626デフォルトの名無しさん (ワッチョイ 6763-7dwh)2019/05/02(木) 06:26:48.77ID:qeQLZJi00
そういうのはQiitaでやれ(Qiita警察激怒)

627デフォルトの名無しさん (ワッチョイ 6763-xbwF)2019/05/02(木) 12:04:50.67ID:ir+Ne9RR0
メモ系ツールなんて山ほどあるのにわざわざこんなところに書くのか
俺こんなの調べてんだぜすごいだろ?みたいな承認欲求なのかね?

628デフォルトの名無しさん (ワッチョイ ce4a-S1/C)2019/05/02(木) 19:31:55.56ID:Plm8DXbx0
初心者ですが、乱数系列の初期化(Randomクラスのオブジェクトの生成)は
どこに書くのが正解なんでしょうか?

関数の中に書くと、関数が呼び出されるたびに初期化されるんじゃ?と思えるのでちょっと拙い
関数の外側にプログラムの初めの辺に書いておけばいいのかなあ?とも思うのですが、それもカッコ悪い

629デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/02(木) 19:36:11.39ID:rtZHUO2Da
>>628
依存性として注入するのが定石

630デフォルトの名無しさん (ワッチョイ ce4a-S1/C)2019/05/02(木) 20:19:04.27ID:Plm8DXbx0
依存性 注入で検索したらいろいろ出てきたので調べてみます

631デフォルトの名無しさん (ワッチョイ cb02-Xm0a)2019/05/03(金) 03:27:08.36ID:eVcW5sZJ0
>>628
最近のは年月日時分秒を整数にして種にしてるっぽいから、
毎回初期化の方がランダム性が高まるんじゃないかと思ってる。

632デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/03(金) 03:31:56.40ID:t597qxt20
>>628
仕様次第
乱数の仕様を設計書に明記する必要がある

633デフォルトの名無しさん (アウアウエー Sa3a-3WjD)2019/05/03(金) 12:41:41.06ID:Xwdpydd1a
>>628
訳分からん解答が続いてるけど、素直に

インスタンス固有である必要があるならコンストラクタに
staticでよいなら静的コンストラクタに

書けばいいだけ。かっこ悪いとか、くだらないことに悩むのは時間の無駄。
この場合は不要だと思うけど、静的コンストラクタが実行されるのはそのクラスの
静的メンバーに初めてアクセスされたタイミングだと思ったので、その点は場合によっては注意

634デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/03(金) 12:51:40.57ID:JARezKaea
>>633
嘘を教えるな
そんな馬鹿な使い方をしたらテストできなくなるだろ

635デフォルトの名無しさん (ドコグロ MM7a-jhVB)2019/05/03(金) 13:16:48.56ID:JqDPcuspM
private staticなら単体テストには支障ないだろ
厳密な再現性を求めるなら本来はシードを固定するべきだが

636デフォルトの名無しさん (アウアウエー Sa3a-3WjD)2019/05/03(金) 13:23:25.74ID:Xwdpydd1a
どっからテストとか出てくるんだw
意味が分からん

637デフォルトの名無しさん (ドコグロ MM7a-oppc)2019/05/03(金) 13:28:31.30ID:5Dkgrzu1M
>>633
そもそも因果関係が逆だよな
キモメンが書いたコードがダサい

638デフォルトの名無しさん (ドコグロ MM2b-jhVB)2019/05/03(金) 13:39:56.17ID:ffSbfxo8M
>>636
staticだとコンストラクタで実装を差し替えられないから単体テストの邪魔になりやすいというのは一般論としてはある
Randomを差し替える必要があるケースは極めて稀だが、上で述べたように厳密な再現性が求められるケースならありえなくもない

639デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/03(金) 13:45:36.92ID:JARezKaea
>>635
直近のN回が特定の数列の場合のテストとかしにくいだろちったあかんがえろ

>>636
テストしねーのかてめー?終わっとるな

640デフォルトの名無しさん (ワッチョイ f72d-/hjB)2019/05/03(金) 13:57:48.60ID:Zy40eisO0
>>639
横からすまんが、そのテストしにくい例ってのをコードで見せてくれんかな
学習のためにどうか頼むわ

641デフォルトの名無しさん (ドコグロ MM7a-jhVB)2019/05/03(金) 14:05:21.52ID:N/aYDMHoM
>>640
例えばガチャを作ってるとして、0-999の乱数で0-9が出たらSSRを排出する仕様なら、
0と9と10くらいを決め打ちでテストしたくなるだろ?
まあそのために乱数生成器をモックしなきゃいけないような設計には再考の余地があると思うが、状況としては普通にありえるだろう

642デフォルトの名無しさん (ワンミングク MM92-sito)2019/05/03(金) 14:07:16.80ID:roEz64M2M
あなるあなる肛門肛門

643デフォルトの名無しさん (ワンミングク MM92-sito)2019/05/03(金) 14:07:36.88ID:roEz64M2M
すまん誤爆でした!!!

644デフォルトの名無しさん (アウアウエー Sa3a-3WjD)2019/05/03(金) 14:09:46.15ID:Xwdpydd1a
だから質問者はそんなこと聞いてないって...
どんだけ独りよがりの妄想展開するんだよ

645デフォルトの名無しさん (ワンミングク MM92-sito)2019/05/03(金) 14:11:43.11ID:roEz64M2M
>>644
うるせーばか子ね

646デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/03(金) 14:16:40.44ID:JARezKaea
現在時刻とか乱数みたいな制御しにくい値はインジェクションする
これ常識な
勉強になったねきみたち

647デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/03(金) 14:47:40.00ID:3MJf1YjB0
>>644
カッコイイか悪いかだから
って問題があってカコワルイ
ってつければ質問者の望む回答

648デフォルトの名無しさん (ワッチョイ 8252-M0pk)2019/05/03(金) 15:12:05.72ID:uS7vqCXY0
>>639
本末転倒だろう。
作るべき物の要件に合わせて乱数生成の挙動を定義して設計するのが優先すべき事項で、その実装をテストするためのコードは必要に応じて用意すればいいだろう。

649デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/03(金) 15:31:58.12ID:JARezKaea
>>648
それはアマチュアの考え方

650デフォルトの名無しさん (ワッチョイ 0b17-ahOC)2019/05/03(金) 15:33:51.16ID:wCLW0/2P0
>>649
スレタイ読め

651デフォルトの名無しさん (スカファーイ FA9e-sito)2019/05/03(金) 15:38:42.54ID:q0Uiy+aiA
どーでもええわ

652デフォルトの名無しさん (ワッチョイ 6240-51S+)2019/05/03(金) 15:58:52.41ID:Ue5NRrHW0
教えてください。
以下のコードで、x の定義は問題ないのに y の定義だけコンパイルエラーになってしまいます。

==
const Exception e = null;
const bool x = e == null; // エラーなし、true が設定される。

const Type t = null;
const bool y = t == null; // CS0133 y' に割り当てられた式は定数でなければなりません。
==

何が原因でこのような違いがでるのでしょうか。
また、y を定数のままエラーが出ないように修正することは可能でしょうか。
よろしくお願いいたします。

653デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/03(金) 16:01:49.32ID:3MJf1YjB0
>>652
結果によってtrueやfalseになるようなんは定数と呼ばん

654デフォルトの名無しさん (アウアウエー Sa3a-3WjD)2019/05/03(金) 17:46:27.38ID:Xwdpydd1a
>>652
例外はTypeで==演算子が再定義されてるからみたいなので、

const bool y = t == (object)null;

一応これで文句言われないみたい

655デフォルトの名無しさん (アウアウエー Sa3a-3WjD)2019/05/03(金) 17:53:37.68ID:Xwdpydd1a
あ、なんか例外とか意味不明なこと書いてるけど突っ込まないでねw

656デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/03(金) 18:53:11.77ID:78NC+NUs0
>>654
え?
それ通るの?
怖い

657デフォルトの名無しさん (アウアウエー Sa3a-3WjD)2019/05/03(金) 19:21:25.35ID:Xwdpydd1a
言語仕様の「定数式」の項を見れば別に不思議はないんだけど、
他人の書いたコードでこういう式を見たら一瞬「何の意図でこんな式を書いてるんだ?」
と思っちゃうね。

658デフォルトの名無しさん (ワッチョイ 6240-51S+)2019/05/03(金) 20:24:56.25ID:Ue5NRrHW0
>>653
レスありがとうございます。
定数のまま、というのは const を付けたまま、という意味のつもりだったのですが、
表現が不適切だったかもしれません。失礼いたしました。

>>654
ありがとうございます!うまくいきました。
ちなみにいろいろ試してみると、
string は == が定義されているもののエラーが出ないようです。
さすがに string は特別ということのようですね。
(ただ、typeof(string).IsPrimitive は false にだったりして
 いまいちしっくりきませんが。。。)

==
const string s = null;
const bool z = s == null; // エラーなし、true が設定される。
==

何にせよ、問題はすっきり解消いたしました。
適切なアドバイスどうもありがとうございました。

659デフォルトの名無しさん (ワッチョイ 6240-51S+)2019/05/03(金) 20:25:45.58ID:Ue5NRrHW0
>>657
実際に const を使いたかったわけではなく、
問題の切り分けを行った結果として >>652 のように質問させていただいたのですが、
言われてみれば確かに何がしたいのかわからない・・・。

もう少し元の問題に近いコードを提示するなら、以下のような感じです。

==
const Type t = null;
if (t == null) Console.WriteLine("t is null.");
else Console.WriteLine("t is not null."); // 警告なし

const Exception e = null;
if (e == null) Console.WriteLine("e is null.");
else Console.WriteLine("e is not null."); // CS0162 到達できないコードが検出されました
==

660デフォルトの名無しさん (アウアウエー Sa3a-3WjD)2019/05/03(金) 20:54:20.72ID:mscz+0vpa
>>659
いやいやいや、俺はおたくにケチつけたわけじゃないよw
const bool y = t == (object)null;

こういうのはぱっと見て意図が分からないと言っただけ。
むしろ「マジックナンバー」を避けるのは良い習慣ですよ

661デフォルトの名無しさん (アウアウエー Sa3a-3WjD)2019/05/03(金) 20:57:46.12ID:mscz+0vpa
>>658
>string は == が定義されているもののエラーが出ないようです。
上にも書いたけど、その辺のモヤモヤはC#の言語仕様の「定数式」の箇所を見れば解消するよ。
VSのインストールフォルダに入ってる

662デフォルトの名無しさん (アウアウエー Sa3a-UklA)2019/05/03(金) 21:13:39.41ID:rGk2iQn5a
ひょっとして、ES6あたりの感覚で代入onlyの変数を宣言したくてconstキーワードを使おうとしてるのかなと思ってみたり
readonlyなローカル変数みたいな構文ってC#にはまだないんだよね

663デフォルトの名無しさん (ワッチョイ 6240-51S+)2019/05/03(金) 22:02:39.62ID:Ue5NRrHW0
>>660
> const bool y = t == (object)null;
> こういうのはぱっと見て意図が分からない
そうですねw
式の意味を考えるなら t == (object)null は
ReferenceEquals(t, null) と書くのがわかりやすいんでしょうけど
const うんぬんの話の中でこれはダメですし。

ちなみに今ふと思いついて試してみたんですが、
t is null も == の定義には依存しないものの定数扱いにはならないようです。

>>661
ありがとうございます。
言われてみると、そもそも C# と CLR の役割自体が正確に区別できていないような
気がしてきたので、これを機会に勉強してみようと思います。

664デフォルトの名無しさん (ワッチョイ 6240-51S+)2019/05/03(金) 22:03:15.73ID:Ue5NRrHW0
>>662
質問させていただいたのは、
>>659 のコードみたいに CS0162 の警告が出てほしいのに
出てくれない場面があったからです。

でもたしかに readonly なローカル変数はあってもいいですよね。

あと、引数のみに依存して副作用もないメソッドについて
↓みたいな書き方が許されたらいいのに〜とか妄想しましたw

==
static class MathEx
{
  public const double Square(double x) => x * x;
}

static class MyConstants
{
  public const double SquarePI = MathEx.(Math.PI);
}
==

665デフォルトの名無しさん (ワッチョイ 6240-51S+)2019/05/03(金) 22:05:09.07ID:Ue5NRrHW0
何度もすみません。。。上の妄想コードは間違いです。
正しくはこちら。

==
static class MathEx
{
  public const double Square(double x) => x * x;
}

static class MyConstants
{
  public const double SquarePI = MathEx.Square(Math.PI);
}
==

666デフォルトの名無しさん (ドコグロ MM02-jhVB)2019/05/03(金) 22:55:31.79ID:1vSUmwo4M
実質的に定数ならJITコンパイル時に定数に置き換わるからそんなものは要らん

667デフォルトの名無しさん (ワッチョイ 7b38-lZel)2019/05/03(金) 23:53:26.41ID:BZD1sthA0
decimalの定数は内部的にアレだけどな

668デフォルトの名無しさん (ブーイモ MM93-Mzt1)2019/05/04(土) 07:03:09.32ID:Y3LpLEUoM
>>667
詳しく

669デフォルトの名無しさん (アウアウエー Sa3a-cevp)2019/05/04(土) 13:03:57.01ID:3sktWiiHa
>>668
横からだけど https://ufcpp.net/blog/2016/12/tipsprimitives/ のことだと思う

670デフォルトの名無しさん (ワッチョイ f72d-/hjB)2019/05/04(土) 14:32:15.09ID:IHSUUilV0
List.Addって、複数のスレッドから同時に呼び出したらデータが壊れる可能性ってあるの?

671デフォルトの名無しさん (ワッチョイ 06e3-ahOC)2019/05/04(土) 15:00:48.03ID:NSx1pb1m0
>>670
スレッドセーフじゃないからlock制御を自前で持つか、System.Collections.Concurrentのコレクション使うべき

672デフォルトの名無しさん (ワッチョイ c6da-ahOC)2019/05/04(土) 15:23:49.46ID:H40F3Pfj0
Queueの出し入れもlock必要だし、マルチスレッドはめんどいよな。
なんでConcurrentDictionaryはあるのにListは無いのか

673デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/04(土) 15:37:29.51ID:uz0VN5nda
>>672
使い道がない

674デフォルトの名無しさん (ドコグロ MM7a-oppc)2019/05/04(土) 15:38:02.55ID:vy21Hr2ZM
個人的にはスレッド自体に特定のスレッドからのデータを受け取る処理がある方が好き

675デフォルトの名無しさん (ドコグロ MM7a-jhVB)2019/05/04(土) 15:57:05.65ID:qIB0qWQDM
別々のスレッドから生成された値を集めたいなら、
各スレッドで別のバッファ(List)に値を書き込んでから最後に単一スレッドでマージするのが定番

676デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/04(土) 17:20:59.03ID:pMssk1qR0
スレッドセーフって実はどういう動作するのかよく知らないぜ

677デフォルトの名無しさん (ワッチョイ 06f2-ahOC)2019/05/04(土) 17:27:01.27ID:0zm1CIpf0
>>676
わかる
エラーがでなかったらそれがスレッドセーフ!!

678デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/04(土) 20:18:11.93ID:pMssk1qR0
APIのマニュアルにおいて「スレッドセーフ」という言葉が用いられる場合、たいていは「複数のスレッドからアクセスされても例外を出さない、プログラムがクラッシュしない」というような意味です。

しかしプログラムの目的によっては、例外が出ないだけでは不適切です。

例えば対象が、100個のデータを管理する変数だとします。
その100個のデータに対して、1つ目から順に処理するスレッドと、50個目から変更するスレッドが同時に動いたらどうなるでしょうか? 結果は不定です。
この例では、排他処理 (C#なら lock ステートメントなど) と呼ばれる処置が必要になります。

ってググって出たサイトで拾った

679デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/04(土) 20:25:20.65ID:pMssk1qR0
つまり

for(int i=0;i<lst.count;i++)
{
unk un=lst[i];

}

みたいなプログラムを組んだとき
どっかでいきなり要素をゼロにされて死ぬってことは
スレッドセーフだろうがどうだろうが可能性はあるってことだよね

ってことを考えるとスレッドセーフである意味ってあんまりなくて
排他処理は絶対実装しないと駄目だよね?ってこと?
誰か違うと言ってくれ

680デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/04(土) 20:59:32.71ID:Ui9BQ5TxM
スレッドセーフはメソッド内などで一貫性を保てる作り

排他制御が必要な場面でやってないなど作り手のロジックミスには対応出来るわけがない

681デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/04(土) 21:06:21.08ID:Ui9BQ5TxM
スレッドセーフである意味

あるオブジェクトがプロパティAを持っててメソッド内で
b=aaa(A)+bbb(A);
を計算しようとしても複数のスレッドからアクセスされることを考慮されていなければ
最初のAと次のAが違う場合があり計算結果が期待したものにならないかもしれない

スレッドセーフはこういう場合でもちゃんと計算される仕組みを持つ

682デフォルトの名無しさん (アウアウエー Sa3a-cevp)2019/05/04(土) 21:07:23.59ID:3sktWiiHa
>>679
その処理は要素数チェックと要素アクセスが分かれているから、間に他スレッドからの処理が割り込み得る
System.Collections.Concurrent系のコレクションは、
例えば「要素があるなら取得」のようなまとまった処理がatomicになっているので、他スレッドからの割り込まれない(=スレッドセーフ)
どっかのスレッドで詰めて、別のスレッドでループ処理、がやりたいのならBlockingCollectionが楽

683デフォルトの名無しさん (ドコグロ MM7a-jhVB)2019/05/04(土) 21:27:48.58ID:qIB0qWQDM
>>679
厳密に他のスレッドとの同期を取らなきゃいけないなら>>682の言うようにBlockingCollection使うか毎回ロックだろうし、
ループ中は他のスレッドによるlstの変更を反映しなくていいならループに入る直前だけロックしてコピーしておけば済む
ケースバイケースだよ
一つ一般的なアドバイスをしておくと、並列処理のコツはデリケートな前提をなるべく設けずに極力ロバストな設計をすることだ
要件が許す限りにおいて、少々処理の順番が入れ替わったり処理間の同期が取れてなかったりしても問題にならないつくりにするのが理想

684デフォルトの名無しさん (ワッチョイ e22f-GsKc)2019/05/04(土) 22:09:10.98ID:56LrGuhB0
非同期処理は複数のスレッドが同じデータを弄ろうとすることによる不整合は起きないけど
コールスタックは複数になるから
同じデータに触ると訳ワカメになる事があった

685デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/04(土) 23:16:04.81ID:pMssk1qR0
(||゚Д゚)ヒィィィ!(゚Д゚||)
じゃあ>>679みてーな処理を書いたら
スレッドセーフなんて関係なく
バグるんだね
こぇえええええ
じゃなくて終わったわ
今まで組んだもんでテキトーにやった箇所全部終わってる気がする

686デフォルトの名無しさん (アウアウエー Sa3a-UklA)2019/05/04(土) 23:28:33.99ID:J15hVQV0a
まあ複数スレッドで同時並行処理するときにはそのへん慎重を期さないと
再現困難なバグを埋め込んじゃうからねえ
同時に読み書きする可能性のある変数を安易に書き換え/差し替えしちゃダメ

687デフォルトの名無しさん (ワッチョイ e22c-4xtZ)2019/05/05(日) 05:07:07.08ID:tvdtPjB+0
マルチスレッドの恐ろしさは、たまにしかバグらない事。
ほとんどは正常に動くから、質が悪い。
必ず、バグらないだろ

それで喧嘩になる事も多い。
マルチスレッドは、ベテランでもバグるからやめろと言っても、
ほら、バグらないでしょ? と、突っかかってくる

その時には、バグらないと言うと、
千回実行しても、バグらないでしょ? と、突っかかってくる。
でも、その時にはバグらない

バグる立証をするのが難しい

だから、Ruby をやった人は、関数型言語のElixir をやる。
他の言語の人は、何を言っても、そのテスト回数でバグらないと言ってくるから、質が悪い

1万回実行しても、10万回実行しても、その時にはバグらないものなんだよ。
何回バグらないで実行すれば、正しいと認めるのか、と問われても困る

688デフォルトの名無しさん (ワッチョイ e201-R0y6)2019/05/05(日) 06:10:17.07ID:BzgWdCy40
アクマノショウメイ

689デフォルトの名無しさん (ドコグロ MM02-jhVB)2019/05/05(日) 08:46:40.02ID:TKrOuc6uM
>>687
喧嘩になるのはマルチスレッドのバグのせいではなくお前の頭がバグってるから

690デフォルトの名無しさん (ワッチョイ 0663-Cg3z)2019/05/05(日) 08:57:36.80ID:Vqy33e5r0
エビデンスとれてりゃ突きつけるだけなのに

691デフォルトの名無しさん (ワッチョイ 8252-M0pk)2019/05/05(日) 10:34:54.98ID:RPhfdkos0
>>687
マルチスレッドはバグるからやめろってなるのでなく、バグが無いように作れよ。

あと、お前の意見を相手が聞き入れず喧嘩になるのは、お前がいつもバカなことを言うから相手は当然受け入れる気にならず、お前にはその自覚がなくて「何でアイツは僕の言うことを理解してかれないんだウワアーーー」ってなってるからだぞ。

692デフォルトの名無しさん (ワントンキン MM92-sito)2019/05/05(日) 10:45:50.32ID:bYgaGqRgM
>>687
なんでバグが起こってるのか原因特定出来てなくてワロタ

693デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/05(日) 10:48:34.16ID:uudMW5nw0
スレッドセーフは単発のメソッドが競合しないだけで
一連の処理についての動作保証をするものではないと

マルチスレッドはやらなくていいならそれに越したことはないけど
絶対に駄目というわけではなく

排他処理を組まないことが害悪

694デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/05(日) 11:21:06.67ID:IBoHsNppa
排他制御をしなくても安全に並列処理できるように設計することが大事
まずはロック、クリティカルセクション、ミューテックス、セマフォ、といった待ち時間を発生させるタイプの機能を使ったら負け、というルールで設計に挑戦してみるといい
大半の並列処理でそんなものは必要ないこと、それらを使わないほうが圧倒的に設計とプログラムが綺麗になることを体験するべき

695デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 11:29:03.77ID:Q2loWuJOM
シネ

696デフォルトの名無しさん (アウアウクー MM9f-GsKc)2019/05/05(日) 12:22:10.03ID:6g/cxz/+M
ぱられるふぉーってのを使えば良いんじゃね?
知らんけど

697デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/05(日) 12:32:51.31ID:uudMW5nw0
>>694
うーん、でも>>679みたいなこと
やった時点で終わりってまともじゃねぇよ
コードで一瞬でもすきを見せたら終了みたいになっちゃうじゃん

お前の理想はなんかあるんだろうけど
他人が叫ぶスレッドセーフに頼っちゃ駄目だよ
アプリの仕様として排他処理を盛り込むべき

698デフォルトの名無しさん (ワッチョイ 1242-ahOC)2019/05/05(日) 13:01:26.26ID:EeTrV1LT0
>>697
だからさ、>>679みたいなforループ自体をスレッドセーフにする一番簡易な表記方法がlockなんだよ
これ以上簡単に書くことはライブラリをどんだけ上手く作っても無理

699デフォルトの名無しさん (ドコグロ MM02-oppc)2019/05/05(日) 13:15:03.75ID:l159r3xkM
>>698
それって記述が簡単ってだけでしょ?
ロック中にアクセスしたらどういう動作するの?
次回に回すの?
待機して待つの?
そういうのってスレッド毎にステータスを持たせて
マトリックスで管理しないと制御できてると俺は認めない

ジジイだから

700デフォルトの名無しさん (ワッチョイ f72d-/hjB)2019/05/05(日) 13:34:55.82ID:1Pm7tIcB0
VisualBasic大先生を怒らせてしまったようだな

701デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/05(日) 13:41:27.68ID:IBoHsNppa
>>698
だからさ
そんな不安定なロジックを書かなくても良いようにちゃんと設計するのが並列処理の王道なんだよ
lockブロックは最初の一回を書くときは楽かもしれんがだんだん難しくなるぞ
そのコレクションを使う全てのプログラマが並列性を意識して正確に排他制御をコーディングしなければならない
これは実用的なシステムの規模になるとかなり大きな負担になる

702デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/05(日) 14:02:39.93ID:IBoHsNppa
そもそもロックって論外なんだわ

世の中の並列処理の目的ってのはほぼ2種類に分類されるんだよ
@インフラストラクチャ処理中にCPUを待たせたくない
A消費コア数を増やして暇なCPUを働かせたい

よーするにCPUを無駄にしたくないわけ
でもロックしちゃうと問答無用でCPUが何もせずに止まっちゃう
ロックすると並列処理をする目的そのものに反してしまう
なのでロックは基本使わず最後の手段ってわけ

この辺りは(やや古い本だが)Microsoft Pressのプログラミング.NET Franework第4版やEffectiveシリーズでも解説されてることだね
どちらも良書なので脱初心者を目指しているだろう君達は是非とも読むべきだ

703デフォルトの名無しさん (ドコグロ MM7a-jhVB)2019/05/05(日) 14:08:00.64ID:kZz1htUnM
その通り
極端な話、並列処理なんてそれぞれ別のサーバーで実行させりゃいいんだよ
それがレイテンシやコストなどの問題で無理なら代わりにプロセスを分ければいい
そもダメならリクエストやワーカー単位でスレッドを分け、といった具合に、共有するリソースを最小限にすることを優先する

704デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 17:40:50.25ID:Q2loWuJOM
ジジイだから能力低いだけだろ

705デフォルトの名無しさん (ワッチョイ f72d-/hjB)2019/05/05(日) 18:00:00.04ID:1Pm7tIcB0
非同期処理全盛の時代にこれじゃ、世の中やばいコード(or非同期処理のつもりが同期処理されてるコード)だらけだろうな
Qiitaとか見ててもやばい奴だらけだ

706デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/05(日) 18:04:40.39ID:IBoHsNppa
>>705
今時lockだもんな、笑えない深刻さ
お前のコード、めちゃくちゃブロックされてんだけど、って同僚の誰かが教えてやればいいのに見て見ぬ振りは可哀想だ

707デフォルトの名無しさん (ワッチョイ f72d-/hjB)2019/05/05(日) 18:09:44.07ID:1Pm7tIcB0
そもそも、世のサンプルプログラムの多くが欠陥品なのが諸悪の根幹なのかもな
劣化コピーしちゃうQiita屋とかコピペプログラマが全部危険なコードを書いてしまう

708デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 18:19:48.84ID:Q2loWuJOM
一番パフォーマンスの良いMutexを使ってる人がどれだけいるやら

709デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/05(日) 18:23:53.97ID:IBoHsNppa
>>708
よくねえよw
OSリソース消費する処理に速度を期待するな

710デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 18:27:02.59ID:Q2loWuJOM
他人に迷惑をかける基地外はシネ

711デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 18:33:04.85ID:Q2loWuJOM
webサーバでスレッド一個で処理を完結するようにはなっていないだろ

712デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/05(日) 18:33:17.95ID:IBoHsNppa
Mutexは相変わらずスレッドをブロックするうえにMonitorよりも消費リソースが大きい
その代わりプロセスを超えて待機処理を実装できるというものだ
よーするにlockよりもっと遅いんだよ

713デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 18:34:49.31ID:Q2loWuJOM
>>712
実務で使ったことないんだろ
黙っとけや

自分だけの小さなアプリしか作ったことないんだろ

714デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/05(日) 18:37:30.50ID:IBoHsNppa
>>713
もう無理だよ笑わせないでw
もっともパフォーマンスの良いミューテックスwwwwwww
実務で使ったことないだろwww
学生さんですかwwww

715デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 18:38:33.24ID:Q2loWuJOM
5分で確認できることをできない老害

716デフォルトの名無しさん (ワッチョイ f72d-/hjB)2019/05/05(日) 18:41:05.51ID:1Pm7tIcB0
Mutexはロックがいらないスレッド同士でもロックしちゃうのが使いづらいな
回避できるのかはしらんが

717デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 18:41:10.65ID:Q2loWuJOM
そもそもスレッドがとまると言ってるけどCPUのスレッドと.netのスレッド混同してそう

718デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 18:41:50.97ID:Q2loWuJOM
> でもロックしちゃうと問答無用でCPUが何もせずに止まっちゃう

これ笑う所?

719デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 18:45:15.15ID:Q2loWuJOM
ロックしちゃうと問答無用でCPUが何もせずに止まっちゃうわけないだろw

720デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/05(日) 18:47:01.12ID:uudMW5nw0
え?lock中にアクセスしようとしたらどうなるの?

721デフォルトの名無しさん (ワッチョイ f72d-/hjB)2019/05/05(日) 18:48:17.37ID:1Pm7tIcB0
ロックが取得できないだけ

722デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 18:48:31.54ID:Q2loWuJOM
お前のPCは8スレッドぐらい動かしたら止まるの?

723デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/05(日) 18:51:01.09ID:IBoHsNppa
>>719
うるせーなスマホで長文書くとミスるんだよ
スレッドがブロックされるってことだ

724デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 18:51:41.98ID:Q2loWuJOM
>>723
ググってきたのかよ低能さん

725デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/05(日) 18:52:07.51ID:uudMW5nw0
>>721
そんときのコードってどう書くの?

726デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/05(日) 18:53:42.23ID:IBoHsNppa
>>724
調子のんなよ重箱の隅つつきマン

727デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 18:55:47.24ID:Q2loWuJOM
>>726
lockとMutexのパフォーマンスのベンチ比較して
結果を出せよ
それまで書き込みするな

728デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/05(日) 19:00:35.89ID:IBoHsNppa
>>727
はぁ?
言い出しっぺのてめーがパフォーマンス一番良いミューテックスのベンチ出せや
一番ってんならロックと比較なんてケチくせえこと言わんで他の排他制御機構とも比較しろよ?

729デフォルトの名無しさん (ブーイモ MM93-R0y6)2019/05/05(日) 19:00:46.75ID:Q2loWuJOM
どう見ても間違っている内容で煽られると人はどう思うのか
どう考えても仕組み上Mutexのほうが遅い

730デフォルトの名無しさん (ワッチョイ f72d-/hjB)2019/05/05(日) 19:07:06.98ID:1Pm7tIcB0
>>725
普通に取得できるのを待ってるな
まあ、ロックが取得できるまで制御を戻したりはしておらんわ

731デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/05(日) 19:12:25.48ID:uudMW5nw0
>>730
だよね
ちょっと調べてるけど
普通の排他処理組んでおきたくて

lock
ReaderWriterLockSlim
UpgradeableReadLock

なんか普通の排他処理したいだけなのに
たくさん出てきちゃったぞ
これ全部使っても
ん?排他処理できてんのか?
って疑問が晴れない
この言語非同期処理の対応手薄なんだよねまだ
時期尚早として触らんことにしたw

732デフォルトの名無しさん (ワッチョイ f72d-/hjB)2019/05/05(日) 19:21:47.99ID:1Pm7tIcB0
LockやMutexは初心者本の範囲内だからしらんのはまずいよ

733デフォルトの名無しさん (ブーイモ MM93-ajP6)2019/05/05(日) 19:45:53.31ID:VmrJwxHQM
非同期のチートシートないの?

734デフォルトの名無しさん (ワッチョイ 4e42-ahOC)2019/05/05(日) 19:57:32.38ID:LYwUBfu90
https://qiita.com/tadokoro/items/28b3623a5ec58517d431
測った人によると
nterlocked > lock > SemaphoreSlim > Semaphore > Mutexだってさ

735デフォルトの名無しさん (ワッチョイ cb02-Xm0a)2019/05/06(月) 02:20:35.00ID:wkmj+bF20
並列処理なら.netなんだからF#でSTM使え。
何で関数型言語が注目されたんだよ。
並列処理に有利だからだろ。

736デフォルトの名無しさん (ワッチョイ e22c-4xtZ)2019/05/06(月) 04:59:30.75ID:wr9bFPpT0
マルチスレッドなんか無理!
だから、Ruby の人は、Elixir を使う

作るのに何百年も掛かる、人類の成果、Erlang VM + Ruby = Elixir。
ErlangVMを、Rubyでラップしたもの

Elixirの小プロセスなら、10万プロセスも余裕!
パイプラインと同じ

関数型だから状態を持たない。
ただ、データを変換していく関数をつなげていくだけ!

737デフォルトの名無しさん (ワッチョイ df01-jhVB)2019/05/06(月) 07:40:48.06ID:WDjCowqB0
>>736
Rubyにマルチスレッドは、無理!
RubyはいわゆるGILといって、同時に複数のスレッドが走らないような排他制御がVMレベルでかかっている
これはVM自体がスレッドセーフでないクソ実装であることに起因する制約である
もちろんC#にはそんなものはないし、ベンチマークだとErlangより速い

738デフォルトの名無しさん (ワッチョイ cb5f-51S+)2019/05/06(月) 12:19:36.88ID:zGa1jTsu0
Windows8.1/10の令和対応アップデートでWinFormsの画面レイアウトが崩れるらしいね

739デフォルトの名無しさん (ワッチョイ 7b0c-ahOC)2019/05/06(月) 12:48:42.80ID:w2Z6VwVJ0
お前んとこのWinformsいつもレイアウト崩れてんな

740デフォルトの名無しさん (スププ Sd02-JQY/)2019/05/06(月) 12:59:34.99ID:rtkPFZMSd
>>738
俺のとこも昨日発生した
AutoScaleModeをNoneにして対応できたから令和のせいではないと思う

741デフォルトの名無しさん (ドコグロ MM2b-oppc)2019/05/06(月) 13:02:49.51ID:4h7Vjk7HM
>>739
は?崩れてねーし
OKボタンが画面外にいって押せないだけだ

742デフォルトの名無しさん (ワッチョイ 4f85-9El8)2019/05/06(月) 21:06:24.34ID:Gi+4ls7q0
画面レイアウトがクソみたいに崩れたぞ死ねや

743デフォルトの名無しさん (ワッチョイ 4f85-ahOC)2019/05/06(月) 21:19:39.33ID:Gi+4ls7q0
>>740
どうやってやるのそれ?
visual studio開いた時点ですでに崩れてて手動で戻すしかなさそうなんだが。

【警鐘】[改元][Windows][.NET] 「令和」対応パッチで画面が横に伸びる、文字が見切れる ― Windows Update 手動更新はちょっと待った方がいい
https://qiita.com/CodeOne/items/22004635d3c7cc533e5e

744デフォルトの名無しさん (ワッチョイ 067b-15o0)2019/05/06(月) 21:32:21.57ID:lj/6a9HB0
>>743
デザイナ表示壊れてんのなら.Designer.csの中身書き換えるしかないんじゃね
AutoScaleMode.FontをAutoScaleMode.Noneに全部置換したらいい

745デフォルトの名無しさん (ワッチョイ 4f85-ahOC)2019/05/06(月) 21:39:51.78ID:Gi+4ls7q0
>>744
ありがとう
form1.csのデザインのAutoScaleModeをNoneにしたけど何も起こらなかったからあきらめてたけど、そっちを修正したら解決したわ。

746デフォルトの名無しさん (ワッチョイ 622f-0fpa)2019/05/07(火) 00:11:46.09ID:HkLoI6gC0
>>740
令和を1文字で表すやつのために、フォントをいじったんだが、そのときに既存の文字の幅が変わったらしい
なのでまあ、令和対応のせいだと言えばそうなんじゃね

つか明日からどれだけ影響出てるか考えると鬱だわ

747デフォルトの名無しさん (ワッチョイ 8247-JQY/)2019/05/07(火) 01:24:56.82ID:A2KlUElc0
納期直前でGW返上してる最中にこの不具合対応しなきゃいけなくなってかなりイラッとした

748デフォルトの名無しさん (アウアウエー Sa3a-jhVB)2019/05/07(火) 08:16:44.51ID:h85TWq9Qa
https://devblogs.microsoft.com/dotnet/introducing-net-5/
.NET Framework 終了のお知らせ
Coreへ移行できないドカタは永遠に4.xに取り残されることが決定したようだ

749デフォルトの名無しさん (ワッチョイ 9b42-ahOC)2019/05/07(火) 08:55:31.55ID:H2EGG+st0
>>748
すげーな。20年以降毎年バージョン上がる予定か
2020 .net5
2021 .net6
2022 .net7
2023 .net8

.net4で停滞した10年とは一体

750デフォルトの名無しさん (スップ Sd22-JiSW)2019/05/07(火) 08:58:10.52ID:Q8AOfbVkd
Java interoperabilityって何なんだよ…

751デフォルトの名無しさん (ラクッペ MMaf-7dwh)2019/05/07(火) 09:30:59.37ID:n4vre8LhM
>>748
出来損ないは過去に葬った方が世の中のためだぁ

752デフォルトの名無しさん (ワッチョイ 23ae-siGz)2019/05/07(火) 10:21:58.95ID:vw5zJnlq0
バージョンを頻繁に上げるのは、
成熟していないってことでは?

753デフォルトの名無しさん (ワッチョイ 6210-R0y6)2019/05/07(火) 11:33:46.06ID:4Mlb2ms50
FrameworkからCoreに移行できないのはどういう場合ですか?

754デフォルトの名無しさん (ワッチョイ 1763-ajP6)2019/05/07(火) 11:59:10.66ID:25JpTCOf0
え、winformはどうなるの??

755デフォルトの名無しさん (アウアウエー Sa3a-kXAv)2019/05/07(火) 12:06:04.60ID:b+Ix+FO0a
最近のmicrosoftかなり攻めてるな

756デフォルトの名無しさん (ワッチョイ 9b61-ahOC)2019/05/07(火) 13:10:26.59ID:eYh/lhy30
.net frameworkからcoreなんてどこかちょろっといじったらいいだけじゃないの?
VB6からVB.netほどの変化はないんだろ?

757デフォルトの名無しさん (ドコグロ MM2b-jhVB)2019/05/07(火) 13:37:50.62ID:9iRY6hHtM
>>753
そんなワケのわからんもん使こて何かあったらどないすんねん!責任取れるんかい!
わりとこれ

758デフォルトの名無しさん (ワッチョイ 1f12-7dwh)2019/05/07(火) 13:46:35.16ID:9CwYXDcE0
別に移行しなくてもいいですけど保守には特別料金いただきまっせ

759デフォルトの名無しさん (スップ Sd22-JiSW)2019/05/07(火) 13:47:55.21ID:Q8AOfbVkd
>>756
Web FormsはほぼUI作り直し

760デフォルトの名無しさん (ドコグロ MM2b-jhVB)2019/05/07(火) 13:50:03.67ID:9iRY6hHtM
あと技術的な最大の障害はWebFormsだろう
WebFormsは.NET Coreではサポートされてないし、される気配もない
既存資産の移行もさることながら、.NETドカタはWebForms頼りで標準的なWeb開発のスキルを持たない奴も多い
彼らはWebアプリケーションの開発が不可能になり、路頭に迷うことになる

761デフォルトの名無しさん (ワッチョイ f72d-/hjB)2019/05/07(火) 17:00:19.52ID:1tK/VkfG0
すまんが、Stream型って前の方だけメモリを解放するとか器用なことは出来ないの?

762デフォルトの名無しさん (ドコグロ MM2b-jhVB)2019/05/07(火) 19:17:09.01ID:9iRY6hHtM
>>761
意味不明
お前の考えはどうでもいいから具体的に何が問題になっているのか、もしくは何が気になっているのか書け

763デフォルトの名無しさん (ワッチョイ 9b61-oppc)2019/05/07(火) 19:23:08.04ID:VnMa5nf90
Stream型ってなんか確保してんの?

764デフォルトの名無しさん (ラクッペ MMaf-7dwh)2019/05/07(火) 19:29:05.20ID:n4vre8LhM
Streamの実装によるだろ

765デフォルトの名無しさん (ワッチョイ cb5f-51S+)2019/05/07(火) 21:03:30.48ID:FJj2rymy0
>>761
Streamクラスは抽象クラスだけど、MemoryStreamクラスを想定してるのかな。
何となくMemoryMappedFileクラスが要望に合ってるような気がする。

766デフォルトの名無しさん (アウアウカー Sa47-V/oy)2019/05/08(水) 21:27:25.44ID:4kxgmlsqa
C#でwindowsPCのマイク音量設定を設けたアプリを作りたいんですが情報がいまいち出てきません
今現在どのような方法が推奨として使われているのでしょうか

767デフォルトの名無しさん (ブーイモ MM02-R0y6)2019/05/08(水) 21:33:29.28ID:UPhx/0uCM
おとなしくNAudioと言うのを使いなさい

768デフォルトの名無しさん (アウアウカー Saeb-8Yy7)2019/05/09(木) 20:00:37.76ID:25KQckNoa
>>767
ありがとうございます
調べてみます!

769デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/10(金) 07:09:33.41ID:8h0VP8xa0
RPgエディタみたいなタイルマップを配置する機能を作る場合、画像を配置するフォームは何が適切でしょうか?
前にも聞いた気がするんですが、レスを忘れてしまって、、、

770デフォルトの名無しさん (ドコグロ MMdf-wbL8)2019/05/10(金) 07:45:25.60ID:guXEw79XM
モデリングソフトに決まってんじゃん
2Dでもプラグインあるからプロならモデリングソフト

個人製作ならエクセルで代用しとけ

ってスレ違うやん

771デフォルトの名無しさん (ドコグロ MMdf-wbL8)2019/05/10(金) 07:46:35.31ID:guXEw79XM
いや、すまん、質問内容取り違えてたw
ピクチャーボックスで

772デフォルトの名無しさん (スププ Sdbf-rOSl)2019/05/10(金) 08:14:45.00ID:uov0WiW1d
>>769
Panelを継承したカスタムコントロールのOnPaint内で描画する事だな

773デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/10(金) 12:26:08.70ID:8h0VP8xa0
>>771
ピクチャボックスですね
毎回忘れちゃうです

774デフォルトの名無しさん (ワッチョイ 577b-5AMV)2019/05/10(金) 17:41:55.34ID:ZtjlRqB/0
質問するだけで自分でやらないから忘れるんだよ
>>772
継承させる意味が分からないしOnPaintならPanelでなくてもいい

775デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/10(金) 18:53:28.94ID:8h0VP8xa0
visual studioのhddへのアクセスは制限できますか?
激重です
SSDにしろって話ですけどね

776デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/10(金) 19:04:05.18ID:8h0VP8xa0
>>774
picturebox自体を何個も並べるんですか?
picturebox1つの中に複数の画像を並べるですか?

777デフォルトの名無しさん (ドコグロ MMdf-nP+x)2019/05/10(金) 19:28:03.03ID:tfYAY6pzM
>>776
どっちでもいいよ
どのみち今の君のレベルで作ってもまともに使い物になるようなものにはならないから、うだうだ考えるより手の届く範囲で経験値を積んだ方がいい
行き詰まる頃にはだいぶレベルが上がってるはずだから、また作り直す
三周目くらいになればまともに作れるようになってるよ

778デフォルトの名無しさん (ワッチョイ d788-0pSk)2019/05/10(金) 19:30:30.41ID:uRQk/IXU0
3週でいけるのだろうか?

779デフォルトの名無しさん (ワッチョイ d768-Lzly)2019/05/11(土) 12:14:17.95ID:kDrnBD/r0
低レベルな質問で申し訳ないのですが、循環バッファって凄い便利だから
全ての配列は循環バッファで実装すればいいと思うのですが、デメリットはあるんでしょうか?
Delete
Insert
Add
が全てO(1)で出来るって凄くないですか?

780デフォルトの名無しさん (ドコグロ MMdf-wbL8)2019/05/11(土) 12:25:39.14ID:E3skkYkSM
>>779
俺は必要になったことないよ
どんなときにいいの?

781デフォルトの名無しさん (ラクッペ MM9b-S7ow)2019/05/11(土) 12:30:42.30ID:qR2J3ArJM
下手の考えなんとかつってなー
高レベルになってから言ってくれ

782デフォルトの名無しさん (ワッチョイ 375f-4N0r)2019/05/11(土) 12:39:31.51ID:td9YBJ3L0
>>779
>***全ての配列は***循環バッファで実装

配列のままの方が良い場合もあるが
そうしたいならそうすればいい

ただし配列以外の構造が必要になるケースでは使えないぞ

783デフォルトの名無しさん (ワッチョイ b7da-XzN3)2019/05/11(土) 12:56:33.31ID:4CcYolMU0
>>779
トークンリングとイーサネットの
違いを理解してから再度質問を

784デフォルトの名無しさん (アウアウエー Sadf-HRFV)2019/05/11(土) 12:59:31.48ID:aDjFJI/sa
>>779
Addは、reallocationを考慮しても償却定数時間で出来そうだが
Delete, InsertがO(1)だというソースをくれ、「末尾」という指定がない以上任意位置だよな?
途中要素をDelete,Insertしたら要素の詰め直しが必要でO(N)になると思うんだが
O(N)になるならList<T>で十分という話になる

785デフォルトの名無しさん (ワッチョイ 7f7c-Or+L)2019/05/11(土) 13:05:46.01ID:DR+jkhoz0
続きはこちらでどうぞ

【O(n)】計算量の評価方法について【O(log n)】
http://2chb.net/r/tech/1363854937/

786デフォルトの名無しさん (アウアウエー Sadf-HRFV)2019/05/11(土) 13:06:24.02ID:aDjFJI/sa
考え直したらQueueやStackのことを言っている気がしてきた
それらのデータ構造がもうあるんだからそれ使えば良いんじゃね

787デフォルトの名無しさん (ワッチョイ b738-g1xP)2019/05/11(土) 15:39:49.17ID:8cYUuN//0
すべての配列は〜というのが考え方が
そもそも乱暴で

目的に合わせてデータ構造を選ぶものじゃ

788デフォルトの名無しさん (ワッチョイ 972c-vVMj)2019/05/11(土) 16:14:40.10ID:MBpEq5nf0
Visual C#で電卓を作ってます。
ある数字ボタンをクリックしたとき、(Button)sender).TextでTextran欄の文字を取得できますが
クリックではなく、キーボード入力で同様にしたいのですが、どうすればできますか?

789デフォルトの名無しさん (ワッチョイ 577b-5AMV)2019/05/11(土) 16:26:29.83ID:VR7g318H0
>>788
KeyPressやKeyDownなどのイベント
ただし該当するコントロールにFocusされてないと反応しないのでフォームで全部受けるようにするとはかどる
https://dobon.net/vb/dotnet/form/keypreview.html

790デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/11(土) 17:24:06.36ID:qy13k0f30
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(@"C:\Users\◎◎\Desktop\volly.gif");
this.pictureBox1.Image = bmp;

パスについてなのですが、相対パスは使えないということがあるんでしょうか。相対パスだとパラメータが違うというエラーが出ます。
フォームアプリケーションなので、form1.csにコードを書いています
form1.cs
img(フォルダ)
└volly.gif
という構造になっています

しかし、img\volly.gif
だとエラーになります
何が悪いでしょうか。

791デフォルトの名無しさん (ワッチョイ ffe3-y0Vo)2019/05/11(土) 17:26:35.03ID:Q2bK8ZXg0
>>790
.\img\volly.gifじゃね?

792デフォルトの名無しさん (ワッチョイ 375f-BD3m)2019/05/11(土) 17:31:33.00ID:vfaLavs00
実行時のカレントフォルダーが合ってないと思う

793デフォルトの名無しさん (ワッチョイ 9f2c-Ounp)2019/05/11(土) 17:56:52.10ID:lpN0Lm9o0
デバッガでブレイクしてイミディエイトウィンドウとかで
Environment.CurrentDirectory確認すると良いよ

794デフォルトの名無しさん (アウアウウー Sa1b-vVMj)2019/05/11(土) 18:25:33.06ID:dxU2Wm5sa
>>790
相対パスとかの以前の問題

実際の環境にimgフォルダが作られているか?
*.exeと言った実行ファイルのある場所を見てみたらいい

多分作られてないしその中にgifファイルも作られてない

795デフォルトの名無しさん (ワッチョイ 577b-5AMV)2019/05/11(土) 18:56:38.28ID:VR7g318H0
>>790
>>794を参考にするべきだけどパスの位置を確認したいのなら読み込む前のところで
MessageBox.Show(System.IO.Path.GetFullPath(@"img\volly.gif"));//指定しようとしているパスを入れる
とでも入れとけばその相対パスがどこを指しているのか絶対パスが表示される
相対パスはソースファイルの位置からじゃなく実行ファイルの位置から作られる

796デフォルトの名無しさん (ワッチョイ 375f-BD3m)2019/05/11(土) 19:09:02.07ID:vfaLavs00
>>795
> 相対パスはソースファイルの位置からじゃなく実行ファイルの位置から作られる
これは正しくないよ。その時のカレントフォルダが基準。
何もしていなければ多くの場合は実行ファイルの場所と一致するから、結果としてそうなることが多いけど。

797デフォルトの名無しさん (ワッチョイ 577b-5AMV)2019/05/11(土) 19:52:49.57ID:VR7g318H0
>>796
それならexeと同じディレクトリのところから使うには
System.IO.Path.GetDirectoryName(Application.ExecutablePath)とか使って必ず絶対パスに直さないと危ないってことか

798デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/12(日) 10:29:51.59ID:zQc98Y8H0
Console.WriteLine(System.Environment.CurrentDirectory);
としても出力には何も出てこないのですか?
出てこないです
作業フォルダっていうのはform1.csとは別のファイルのことなんですね

799デフォルトの名無しさん (ワッチョイ b738-g1xP)2019/05/12(日) 10:48:00.86ID:NzWVi3Qm0
console覗くか
traceあたりに出力しないとでは

800デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/12(日) 10:52:27.58ID:zQc98Y8H0
おっ いけました
'2d_engine.exe' (CLR v4.0.30319: 2d_engine.exe): 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_ja_b77a5c561934e089\mscorlib.resources.dll' が読み込まれました。モジュールがシンボルなしでビルドされました。
これで正しいのかわからないですが、なんで実行ファイルがこんな場所にあるんでしょうか。プロジェクト内にあるのかと思ってましたが

801デフォルトの名無しさん (ワッチョイ 375f-BD3m)2019/05/12(日) 10:53:02.25ID:M17KJIhd0
>>798
WinFormsアプリはそのままではConsoleを使用できない
Consoleを自分で準備すれば使えるが、通常は使わないかな

フォルダ(≒ディレクトリ)とファイルは違うぞ

802デフォルトの名無しさん (ワッチョイ b738-g1xP)2019/05/12(日) 11:02:52.23ID:NzWVi3Qm0
謎は解けた

803デフォルトの名無しさん (ワッチョイ ff7b-t4ir)2019/05/12(日) 11:03:02.94ID:PIRDu/CH0
>>800
その絶対パスは実行ファイルじゃない
その表示されているところにConsole.WriteLineで書き込んだ内容出てくるはず

804デフォルトの名無しさん (ブーイモ MMbf-vVMj)2019/05/12(日) 11:04:19.53ID:JwWGS0EoM
空のコンソールアプリ作ってそこで実行して

805デフォルトの名無しさん (ブーイモ MMbf-vVMj)2019/05/12(日) 11:06:21.31ID:JwWGS0EoM
そのgifファイルは実行ファイルが作られた場所に自動でコピーされてないので
コピーされるようにgifファイルの設定帰るしかない

806デフォルトの名無しさん (ワッチョイ 375f-BD3m)2019/05/12(日) 11:08:55.17ID:M17KJIhd0
>>800
勘違いしてる。Console使わず、
MessageBox.Show( System.Environment.CurrentDirectory );
ってやってみてよ。

807デフォルトの名無しさん (ワッチョイ 9f47-rOSl)2019/05/12(日) 11:35:01.56ID:1UlYWsgm0
>>800
カレントディレクトリはexeのあるディレクトリとは別物だからです
System.AppDomain.CurrentDomain.BaseDirectory
を使ってください

808デフォルトの名無しさん (ワッチョイ b7da-XzN3)2019/05/12(日) 11:42:27.50ID:Zs5BDDrj0
AllocConsole() してみなされ

809デフォルトの名無しさん (ワッチョイ 9f52-tfUF)2019/05/12(日) 11:46:33.54ID:7nn+3/Jt0
>>800
プログラムの実行ファイルがある場所とは別に、プログラムの実行時に「どのフォルダでプログラムを実行するか」という概念があるのは分かる?

810デフォルトの名無しさん (ワッチョイ ff7b-t4ir)2019/05/12(日) 11:49:29.62ID:PIRDu/CH0
先生多すぎて混乱してそうw

811デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/12(日) 13:55:38.46ID:zQc98Y8H0
混乱してるんで一度整理します

812デフォルトの名無しさん (ワッチョイ ff7b-t4ir)2019/05/12(日) 14:13:47.11ID:PIRDu/CH0
そもそもカレントディレクトリを表示させる必要があるのか?
画像をPictureBoxに表示するのが目的じゃなかったのか

813デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/12(日) 15:18:28.27ID:zQc98Y8H0
そうなんですが、そのために相対パスを設定したいんです
絶対パスでも別に不自由しないですが、ソフトを作るときは相対パスも使うと思うので

814デフォルトの名無しさん (ワッチョイ 7f02-AZoQ)2019/05/12(日) 15:40:46.00ID:Q+XtJRAz0
>>790
VisualStudioでF5実行やデバッグをすると(何も設定を変えてなければ)ビルド出力先がカレントディレクトリになる
相対パスでエラーになる原因はビルド出力先にimg\volly.gifが存在しないから
なのでimg\volly.gifをビルド出力先にコピーしてやれば相対パスで読み込めるようになる

プロジェクトエクスプローラーでimg\volly.gifを右クリックしてプロパティを開いて
「ビルド時のアクション」を「なし」に変更
「出力ディレクトリにコピー」を「新しい場合はコピーする」に変更
これでビルドすると出力先フォルダにimg\volly.gifがコピーされるようになる

815デフォルトの名無しさん (ワッチョイ b761-wbL8)2019/05/12(日) 15:41:40.00ID:CayLEbz10
>>813
実は業務ではカレントディレクトリをあてにした動作はさせない
なぜなら制御できないから
なので相対パスをプログラムで取得したら
自分が基準とするディレクトリパスと自力で連結させて絶対パスにして使う

816デフォルトの名無しさん (ワッチョイ 7f02-AZoQ)2019/05/12(日) 15:43:12.88ID:Q+XtJRAz0
画像ファイルがたくさんあって1こ1こ設定するのがめんどくさい場合は
imgフォルダを右クリックして同じようにコピーの設定をする
そうすれば1つの設定でフォルダごとまるごとコピーしてくれる

817デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/12(日) 15:54:06.76ID:0iYfvooEa
まあ、そもそも特に理由がなければ画像ファイルはリソースに突っ込むべきだね。

どうしても生の画像ファイルを使いたいならソリューションエクスプローラーからプロジェクトに追加して
プロパティウィンドウの「出力ディレクトリにコピー」の値を「常にコピーする」にすれば
ビルトすると自動的に実行ファイルと同じディレクトリにコピーされるようになる。

ディレクトリの階層を作りたいならソリューションエクスプローラ上で階層を作れば
それがそのまま反映されてコピーされる。

実行ファイルのディレクトリはこれで
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.application.startuppath

818デフォルトの名無しさん (アウアウエー Sadf-HRFV)2019/05/12(日) 16:00:55.91ID:xH15WcK+a
OpenFileDialogなどを使うだけでカレントディレクトリは変わるし
EXEのショートカット経由で起動する場合は任意のカレントディレクトリ位置に出来るし
他プロセスからWorkingDirectory設定無しで起動される場合も考えたりすると
プログラム中で内部的に相対パスを保持するのは構わないけど
IO系APIを呼び出す時は、AppDomain.BaseDirectoryなどと結合して絶対パスにしてから渡したほうがいい

819デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/12(日) 16:17:07.77ID:zQc98Y8H0
なるほど
自分で絶対パスを1つ決めて、そこを起点にすると

820デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/12(日) 17:07:03.34ID:zQc98Y8H0
関係ないんですけど、コードってどこに保存してますか?
普通にテキストエディタに保存してますけど

821デフォルトの名無しさん (ワッチョイ b7da-XzN3)2019/05/12(日) 17:15:13.31ID:Zs5BDDrj0
大事な物は心の中に

822デフォルトの名無しさん (ドコグロ MMdf-nP+x)2019/05/12(日) 17:22:08.37ID:O1RPDIWFM
>>820
一般的にはGitを使ってGitHubで管理する
だけど今の君のレベルではそんなのは必要ない
今の君のレベルで書いたコードなんて一ヶ月後にはゴミであり、大切に保存する価値などない
一ヶ月後のレベルの上がった君から見ればゴミだという意味であり、決して悪い意味じゃないから勘違いするなよ

823デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/12(日) 17:25:13.38ID:zQc98Y8H0
自分の環境の場合、プロジェクトフォルダ\bin\debug\hoge.exe
という場所に実行ファイルが作られるようです
Cフォルダの直下あたりに作られるという説明がされちえますが、何か間違ってますかね
//カレントディレクトリの取得
MessageBox.Show(System.IO.Directory.GetCurrentDirectory());
場所ってのは自動的に決まる感じですか

824デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/12(日) 18:06:37.88ID:hmzYcUWua
>>823
日本語で
何を言ってるのかさっぱり分からんよマジで

825デフォルトの名無しさん (スププ Sdbf-rOSl)2019/05/12(日) 18:42:19.48ID:Mxa5Iz6jd
>>822
gitサーバーはいろいろ使われてるのにGitHubが一般的は言いすぎだろw

826デフォルトの名無しさん (ブーイモ MMbf-vVMj)2019/05/12(日) 18:49:55.29ID:JwWGS0EoM
この人はソースをテキストエディタに保存していると言ってるから
iOS使いなんだろうなと思う

827デフォルトの名無しさん (スッップ Sdbf-0pSk)2019/05/12(日) 19:28:54.08ID:eC5ErjVyd
壮大な計画立てて時間だけがかかって何も完成させられない典型的な例

828デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/12(日) 19:36:30.99ID:zQc98Y8H0
すみません
がんばります

829デフォルトの名無しさん (ワッチョイ 576e-ESYi)2019/05/12(日) 22:05:40.63ID:TmkC4DiT0
LINQ勉強しててよくわかんないんですけど範囲変数ってあれ事前に宣言しなくていいんですか?
マイクロソフトのサンプルとか見ても例えばselect score in scoresとか出てきてscoreどこから出てきたってなるんですけど
全体的な印象ですけど、SQLはちょろっとかじったので列名無いのにSQLっぽく書いてるLINQってなんかしっくりこないんですよね……

830デフォルトの名無しさん (ワッチョイ ffda-y0Vo)2019/05/12(日) 22:31:12.34ID:RcOwQ/d80
>>829

Linqはクエリ式よりメソッド構文の方がとっつきやすい。
クエリ式はSQLに似てるけど、C#の文法に照らすと異質だしな

scores.Select(score => ・・・);

scoreはどこから出てきたの?ってことならまずはラムダ式からじゃないかな

831デフォルトの名無しさん (ワッチョイ 9f2c-Ounp)2019/05/12(日) 22:31:33.06ID:5S2KiOuR0
まずLINQとクエリ構文は別物だぞ
> select score in scores
select句はクエリ構文の最後に抽出するものを指定するんだからこんなのはあり得ない
select句じゃなくてfrom句だろう
scoreはそのクエリ構文内で使うローカル変数的なものなんだからクエリ構文内で出てくるのが当たり前

列名が無いってのは単に数値の配列とか相手にしてるからじゃね
SQLは二次元相手にしか使わないがLINQ/クエリ構文は1次元相手にも使えるからな
scoresがclass Score { public string Name; public int Value; }の配列とかなら
from score in scores
select score.Value
みたいに「列名」が出てくる

あと重要なことだが、クエリ構文は使いどころがあんまり無い
基本的にLINQには拡張メソッドを使う

832デフォルトの名無しさん (ワッチョイ 9fad-Vuiq)2019/05/12(日) 22:32:12.36ID:tDx5/mlf0
>>829
メソッド式使えよ

833デフォルトの名無しさん (ワッチョイ 9fad-Vuiq)2019/05/12(日) 22:33:30.63ID:tDx5/mlf0
SQLでもテーブルの別名使ったりするやろ

834入門者 (ワッチョイ 9fad-vM1y)2019/05/13(月) 07:59:49.56ID:W1wujo120
https://ideone.com/mKdtnM
独習C#のコードなんですが170行目のshapes[i].Nameは何故実行出来てるのでしょうか?
Nameプロパティには何も記述がないのですが・・

835デフォルトの名無しさん (アウアウエー Sadf-nP+x)2019/05/13(月) 08:25:11.57ID:mnyzhKg9a

836デフォルトの名無しさん (ワッチョイ ffda-y0Vo)2019/05/13(月) 08:29:59.30ID:V/EVdZRD0
>>834
それを学ぶのがその章の目的じゃないの?

Nameプロパティの定義は71行目

163行目のshapes[0].Nameは引数で指定された"right"がセットされる。
164行目のshapes[1].Nameは省略時引数により139行目のコンストラクタを経由して"rectangle"がセットされる。
165行目のshapes[2].Nameは省略時引数により134行目のコンストラクタを経由して"rectangle"がセットされる。
166行目のshapes[3].Nameは省略時引数により106行目のコンストラクタを経由して"trizngle"がセットされる。

837入門者 (ワッチョイ 9fad-vM1y)2019/05/13(月) 08:34:33.58ID:W1wujo120
>>836
そうなのですが
でもvalueで代入してないのに何故Nameプロパティが機能してるのか分からなくて…
setとgetの中身を記述しなくてもプロパティは機能するのですか?

838デフォルトの名無しさん (ワッチョイ 7f7c-lLD7)2019/05/13(月) 08:52:41.32ID:VAfV6Qs50
public string Hoge { get; set; }

private string _Hoge;
public string Hoge { get { return this._Hoge; } set { this._Hoge = value; } }
の省略構文みたいな感じになる
(実際にはこの_HogeはC#からアクセスできない名前にコンパイルされる)

839デフォルトの名無しさん (ワッチョイ 375f-BD3m)2019/05/13(月) 08:57:28.04ID:WhpQbL/L0
>>837
string Hoge { get; set; } は自動実装プロパティと呼ばれるもので、
内容は>>838の通り。

840デフォルトの名無しさん (JP 0H4f-vM1y)2019/05/13(月) 10:05:53.21ID:yzhNtOt8H
ありがとうございました

>>831
https://docs.microsoft.com/ja-jp/dotnet/csharp/linq/query-expression-basics
そうですねfromの間違いでした失礼しました
「scoreはそのクエリ構文内で使うローカル変数的なもの」ってのは割としっくり来ました
「LINQ/クエリ構文は1次元相手にも使える」SQLとは全くの別物と考えて頭からっぽにして勉強しなおしたほうがよさそうですね

841デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/13(月) 15:49:43.81ID:d2gOVbtC0
vsを軽くするセッティングはないでしょうか?
重くなる原因はhddへのアクセスが100になってしまうからです
SSDはないです

842デフォルトの名無しさん (ワッチョイ 9f40-BD3m)2019/05/13(月) 16:02:30.23ID:UKQBojaO0
object 型の変数 x に int 型にキャストできる型(short 型や byte 型など)の値が代入されているときに
その値を int 型にキャストしたいのですが、(int)x とすると InvalidCastException が投げられてしまいます。
x に代入されている値が例えば short 型だと分かっているなら (int)(short)x でうまくいくのですが、
この方法だといちいち値の型を調べる必要があるのでもっとスマートな方法があれば教えていただきたいです。
一応自分でも考えてみたところ int.Parse(x.ToString()) なら x の型によらずうまくいったのですが、
値の変換をするだけなのに文字列を経由するのはすごく無駄なことをしているような気がします。
よろしくお願いいたします。

843デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/13(月) 16:05:08.31ID:d2gOVbtC0
private void Form1_Load(object sender, EventArgs e)
{
var but = new System.Windows.Forms.Button();
but.Name = "button1";
but.Text = "押せ";
but.Location = new Point(0, 0);
but.Size = new System.Drawing.Size(80, 20);
Controls.Add(but);
}
コードでコントロールを追加したいのですが、ボタンは追加されませんでした
エラーでも出てくれればいいんですが、エラーは出ません
エラーは出ないけど、思い通りに動かない場合、何をヒントにしたらいいでしょうか

844デフォルトの名無しさん (スッップ Sdbf-0pSk)2019/05/13(月) 16:07:12.88ID:XGLfyuuud
ググりゃいくらでも記事出てくるやんけ
そいつらは試したの?
自身の環境も書かない、何を試したかも書かない、知識不足なのに勝手に要因を決めつける
初めて質問するならまだしも散々してきといてそれ?

845デフォルトの名無しさん (スッップ Sdbf-0pSk)2019/05/13(月) 16:08:41.09ID:XGLfyuuud
>>844
841に対して

846デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/13(月) 16:14:20.97ID:d2gOVbtC0
出てきました
場所が悪かったようです
ごめんなさい

847デフォルトの名無しさん (ワッチョイ 9f40-BD3m)2019/05/13(月) 16:14:45.92ID:UKQBojaO0
>>843
そのコードをコピペして試してみたら私の方では問題なく表示されました。
そちらでうまくいかない原因は
・Form1_Load が呼び出されていない
・追加したボタンの上に別のコントロールが重なってしまっている
あたりではないでしょうか。

とりあえず Form1_Load が呼び出されているかどうかを確認するために
Form1_Load の最後に
MessageBox.Show("呼び出されてるよ"); を追加してみて、
メッセージボックスが表示されるかどうかを確認されてみてはいかがでしょうか。

848デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/13(月) 16:15:55.94ID:d2gOVbtC0
>>844
問題はhddへのアクセスです
これは公式のサイトでは、SSDへの交換を推奨しています
それ以外の手段はないかなと思って質問しました

849デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/13(月) 16:16:41.14ID:d2gOVbtC0
>>847
ありがとうございます
位置が0 0だと左側に隠れてしまうようでした

850デフォルトの名無しさん (ワッチョイ 9f40-BD3m)2019/05/13(月) 16:23:36.93ID:UKQBojaO0
>>849
解決したようでよかったです。
私も勉強中の身なのでお互い頑張りましょう。

851デフォルトの名無しさん (ワッチョイ 7f2d-vM1y)2019/05/13(月) 16:31:17.78ID:fb9Hu3lu0
ついでに聞きたいんだけど、このボタンの描画ってUIスレッドで実行されることは保証されてるの?

852デフォルトの名無しさん (ワッチョイ 7f7c-lLD7)2019/05/13(月) 16:34:35.11ID:VAfV6Qs50
>>842
Convert.ToInt32

>>851
それがUIスレッドの仕事なんだけど、何を心配してるの?

853デフォルトの名無しさん (ワッチョイ 9f40-BD3m)2019/05/13(月) 16:51:55.46ID:UKQBojaO0
>>852
まさに探していたものです!
最悪の場合、型ごとに場合分けしてキャストするメソッドでも
作ろうかと思っていたのですが、実にスッキリ解決できました。
どうもありがとうございました。

854デフォルトの名無しさん (ワッチョイ 9fad-vM1y)2019/05/13(月) 17:46:32.42ID:W1wujo120
>>838-839
詳しくありがとうございます。
前の章にも書いてありました。自分の勉強不足でした…

855デフォルトの名無しさん (アウウィフ FF1b-8Yy7)2019/05/13(月) 18:45:40.09ID:cAHvDA7yF
PCからのサウンド出力をイヤホンが刺さっている刺さっていないに関わらず、内部スピーカーかイヤホンか選択して出すにはどうしたらいいでしょう
NAudioを使っていろいろ試してるんですがうまくいきません

OS Windows10
サウンドデバイスがSpeakers/Headphones Realtek
だとサウンドデバイスがスピーカーとヘッドホンに分かれていませんが、これだと無理なのでしょうか

856デフォルトの名無しさん (ブーイモ MMbb-vVMj)2019/05/13(月) 19:00:08.34ID:rRpVq2UzM
それは間違った機能だから出来たとしても実装するな

イヤホンが刺さってたら絶対イヤホンで出せ

857デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/13(月) 20:12:51.62ID:d2gOVbtC0
public Form1()
{
MessageBox.Show("form1");
}

private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("form2");
}

フォームアプリについてなんですが、この2つ関数の違いはなんですか?
タイミング的にはform1関数が先なんですが、どう使い分けるんでしょうか?

858デフォルトの名無しさん (アウアウエー Sadf-HRFV)2019/05/13(月) 20:22:07.84ID:zDycstDZa
>>857
先に言語の入門本やサイトなどを読むべき
そうすればクラス名と同一名のメソッドには特別な意味があることが分かるし
そのキーワードと一緒にイベント名で検索すれば関連する話題も出てくる

859デフォルトの名無しさん (スッップ Sdbf-0pSk)2019/05/13(月) 20:29:22.69ID:XGLfyuuud
何度も何度も基礎からやれって言われてもずっとやらんのだからもう無理だと思う
こういうのが才能とかセンスみたいなもんなのかね

860デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/13(月) 20:29:39.44ID:d2gOVbtC0
調べた限りでは
フォームが作られるときと、作られて読み込まれたとき
という差でしょうか

861デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/13(月) 20:38:07.48ID:jADcqpCya
>>855
普通は物理的に切り替えている(ジャックにプラグを差し込むとSP出力が物理的に切断される)から無理でしょうww
恐らくソフトウェアでそれをやってるマシンはないと思うよ

862デフォルトの名無しさん (ワッチョイ ff7b-t4ir)2019/05/13(月) 20:47:37.18ID:XlJDR9UI0
>>855
その機器のドライバにAPIでも無ければ少なくともC#では無理
ハードウェアの方から調べることでここで質問して答えられるようなものではないと思う
>>860
http://bbs.wankuma.com/index.cgi?mode=al2&namber=38433&KLOG=66
コンストラクタはクラスで必ずはじめに実行されるもの
イベントメソッドと分けて考えないと

863デフォルトの名無しさん (ワッチョイ 3717-y0Vo)2019/05/13(月) 21:05:00.08ID:0/Wah16u0
>>857
だから入門用の本を読めと何度も言ってんだろうが

864デフォルトの名無しさん (アウアウカー Saeb-8Yy7)2019/05/13(月) 21:38:52.34ID:ZJ4TG7EAa
>>856>>861>>862
ありがとうございます

無理ですか。。
Audio Switcherなるものがあるのでソフトウェアからの制御もなんとか出来るかと思ったのですが

865デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/13(月) 22:32:05.56ID:jADcqpCya
>>864
ハードウェア的にスプリッターを使ってライン出力かヘッドフォン出力を
二股で取り出せるようにする方が賢明でしょうね

100均で売ってるよ

866デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/13(月) 22:38:16.41ID:lwKqLD9e0
>>864
いや昔やったこと有るからできるんだが、昔過ぎてやり方思い出せんわ
Vistaからマスターオーディオの制御ができるAPIがWindows標準になっていて
当時見たソースの跡地だけ発見したわ
https://www.codeproject.com/Articles/18520/Vista-Core-Audio-API-Master-Volume-Control

867デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/13(月) 22:41:01.01ID:lwKqLD9e0
>>864
ググったらそれらしきもの在ったから、あとは自分で頑張ってくれ
http://mikeo410.minim.ne.jp/cms/~programmingcoreaudiointerface

868デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/13(月) 23:02:15.55ID:jADcqpCya
いやいやいやw
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A9%E3%83%BC%E3%83%B3%E3%83%97%E3%83%A9%E3%82%B0
↑に説明付きの画像が出てるけど、要するにプラグが差し込まれると物理的にSP出力がオープンになる
構造に普通はなってるんで無理ですw

その辺テレビとかと何も違わないよ

869デフォルトの名無しさん (ワッチョイ bf1c-Fjsy)2019/05/13(月) 23:05:51.31ID:0pB96hJZ0
プラグが刺されるとオープンになるジャック使ってるのは、プラグが刺されたらスピーカーから音が鳴らなくて良いものだけだろ。
テレビでも最近のはそんなジャック使ってないわw
ジャックにプラグ刺されてるか判定してるだけ。

お前はどんなラジカセで書き込みしてるんだ?

870デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/13(月) 23:08:05.97ID:jADcqpCya
>>869
確認してから書いた方がいいよ。

特殊な業務用とかフィリップスみたいなところが作ってる超高級品は知らんけど、
大概のTVはそんなもったいぶったことしてないの。する意味がないでしょ

871デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/13(月) 23:16:14.24ID:lwKqLD9e0
>>870
WindowsだとUSB経由とかS/PDIDとか有るし、そこに必ずSPが繋がっているとも限らないから
音声の切り替えはソフトでやっているのよ
イヤフォンの切り替え機能って俺の記憶だとWindows10 が最初だよ

872デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/13(月) 23:26:37.35ID:lwKqLD9e0
>>870
あと、Windowsの機能で切り替えるのは標準の出力先だけだが、当然APIで標準以外の出力先に音声流すことも可能だ

873デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/13(月) 23:28:52.35ID:jADcqpCya
>>871
それはオーディオデバイスが複数ある時にどれを有効にするかって話と違うの?

あと、高級品のサウンドカードだと複数系統の出力があってそれぞれボリュームコントロールが
ついていたりするかもしれないが、そういうの使ってるならこんな質問してないと思うよ。

普通に考えてオンボードのサウンドしかついてない普通のPC前提の質問じゃないの?

874デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/13(月) 23:31:41.38ID:jADcqpCya
なんかググるとM/BによってヘッドホンとSP(ライン出力)が排他になってるのと
そうでないのがあるみたいだけど、質問者みたいに排他になってる場合は普通は
物理的に切り替えてるはずなんで、ソフトじゃどうにもならんと思うよ

875デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/13(月) 23:32:56.12ID:lwKqLD9e0
>>873
普通のパソコンだってUSBのデコーダー付けられるだろ
それがどうやって物理的に切り替えられるのか考えてくれよ
それと俺は音楽プレーヤーソフト作ったこと有るから、恐らくあんたよりは詳しい

876デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/13(月) 23:38:00.03ID:jADcqpCya
>>875
USB接続のオーディオデバイスを使ったら
M/Bのヘッドホンからはそもそも音が出ないと思うんだけどね普通は

複数のオーディオデバイスを同時に有効にして同じ音を出す、
なんて芸当できるんだっけ?

877デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/13(月) 23:40:11.66ID:jADcqpCya
光出力が付いてる場合は排他にできるわけないね確かに。
でも質問者がそういう環境ならこんな質問してないわな

878デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/13(月) 23:41:57.51ID:lwKqLD9e0
>>876
Windows10は普通にイアフォンとその他が切り替わるように仕様変更されている
勿論それがHDMI経由だろうがSP端子だろうが光出力だろうが

879デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/13(月) 23:43:53.50ID:lwKqLD9e0
>>877
つかWindows95の頃から、音声出力はソフトで切り替えるのが常識だよ
ハード的に変えるほうが寧ろ珍しい

880デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/13(月) 23:51:07.37ID:jADcqpCya
>>878
いやちょっと何を言ってるのか分からないんだけど、
ハードウェアがそうなってなきゃソフトがいくら頑張っても手も足も出ないのよ

質問者の環境はSP出力とヘッドフォン出力が排他的になってる環境で、
その切り替えは普通はメカ接点で物理的に行われるものだから、ソフトじゃどうしようもないよ

881デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/13(月) 23:55:36.69ID:lwKqLD9e0
>>880
少なくとも今はHDMI経由でテレビから音声流す機能は標準搭載されているから
年代物のパソコンを除けばデジタル音声出力機能は標準搭載だよ
それをどうやってイヤフォンと物理的に切り替えるのか考えたら無理だと判るでしょ
Windows10から自動切り替えはできるようになっているけど、当然ソフトで制御しているし
それをVista以降はAPIとしてプログラマーが簡単に触れるようになっている

882デフォルトの名無しさん (アウアウエー Sadf-4N0r)2019/05/13(月) 23:55:59.16ID:ec7a7a6ia
いやちょっと何を言ってるのか分からないんだけど、
メカ接点で物理的に行われるが、
SP出力とヘッドフォン出力が排他的になってるのは今時はソフトの設定でしょ?

883デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/13(月) 23:58:20.52ID:jADcqpCya
>>881
だーから、その場合は普通はM/Bのヘッドホンからは音出ませんよ。
M/Bのヘッドホン端子はオンボードのオーディオデバイスに繋がってるだから

>>882
今時も糞もないってだからw
M/Bのヘッドホン端子はオンボードのオーディオデバイスに繋がってて、メカスイッチでそれを
ライン出力(スピーカー)と切り替えてるだけなので

884デフォルトの名無しさん (アウアウエー Sadf-4N0r)2019/05/14(火) 00:00:01.39ID:/tIovtjDa
Mixer使えって話でしょ

885デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/14(火) 00:04:48.16ID:vkfPDW5o0
>>882
サウンドミキサーってのがWindows95には既に付いていて、それで音声の切り替えとかマスターボリュームを制御していたから
XPまでのソフトでは大本の切り替えとか不可能だった
しかしVISTAから全てソフトから見えるようになって、ソフトごとにどの出力から出すなどの指定ができるようになった
同じパソコンでイヤフォンとスピーカーから違う曲を流すことさえやろうと思えばできるんだよ

886デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/14(火) 00:06:27.49ID:vkfPDW5o0
>>884
Mixerを制御するAPIがVISTA以降に公開されたんだよ
C#から制御したことも有るし

887デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 00:14:28.54ID:94a7CpYNa
>>885
えーっとですねえ、だからそんな芸当はHWが対応してなきゃできないんだってw

標準的なPCのオンボードのオーディオデバイスはオーディオ出力が一つしかないので、
そんな芸当は逆立ちしても不可能ですw

物理的な出力端子の数 = オーディオ出力の数
ではないのよ。

888デフォルトの名無しさん (ワッチョイ b763-0pSk)2019/05/14(火) 00:14:35.14ID:KlvEEe7u0
win32apiスレにでも行ってくれ

889デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/14(火) 00:15:52.53ID:vkfPDW5o0
UWPのMediaPlayerでもオーディオ出力先は好きなように変えることができる
https://docs.microsoft.com/ja-jp/windows/uwp/audio-video-camera/play-audio-and-video-with-mediaplayer

このページ内の「特定のオーディオ エンドポイントへの出力」ってのがピンポイントでは有るが、これはUWPのモジュールで最近WinFormsから使えるようになったが
まだ未完成な部分もあって割と面倒

ただ、同じことはAPIつかって地道に作ることもできるよ

890デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/14(火) 00:20:22.84ID:vkfPDW5o0
>>>887
Windows10なら右下のスピーカーマーク押して「サウンド」ってのを選択すると出てくるダイアログで
「再生」ってタブを押せば、そのパソコンで使える音声出力先が出てくるが
出力が1つしか無いなんて化石のようなパソコンは見たことないわ
最低限スピーカーとイヤフォンとHDMIぐらいは付いている

891デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 00:22:45.62ID:94a7CpYNa
>>889
まあどっちにしろそれは質問してる人が聞きたいことと違うと思うよ。
質問者はアプリごとに別々のチャンネルに音を出したいって言ってるんじゃないからね。

892デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 00:25:02.63ID:94a7CpYNa
>>890
だから何度も同じことを言わせないで。
既定のオーディオデバイスは一つしか選択できない
だからHDMIのモニターから音を出すと普通は同じ音をM/Bのヘッドホン端子から
出力することはできないの

893デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/14(火) 00:25:05.36ID:vkfPDW5o0
>>891
いや、889はイヤフォンが繋がっていてもスピーカーから音声を流す機能そのものだ
何も読んでいないだろ

894デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/14(火) 00:26:26.04ID:vkfPDW5o0
>>892
HDIMIとパソコンのイヤフォン端子をどうやって物理的に切り替えるんだよ
普通にソフトで切り替える機能が標準でついているんだよ

895デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 00:27:34.01ID:94a7CpYNa
>>893
どこをどう読んだらそうなるのw
だから、何度も言うけどHW的に排他的になってたらソフトじゃどうにもならないってw

896デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 00:29:20.12ID:94a7CpYNa
>>894
ソフトで切り替える?
何を言ってるのか分からないよ。

単純な質問だ。
君のPCではHDMIのモニタを既定のサウンドデバイスに選択している時に、
同じ音をM/Bのヘッドフォン端子からも聞くことができるのかい?

できないってw
今まで知らなかったのか

897デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/14(火) 00:30:46.74ID:vkfPDW5o0
>>895
string audioSelector = MediaDevice.GetAudioRenderSelector();
var outputDevices = await DeviceInformation.FindAllAsync(audioSelector);
foreach (var device in outputDevices)
{
var deviceItem = new ComboBoxItem();
deviceItem.Content = device.Name;
deviceItem.Tag = device;
_audioDeviceComboBox.Items.Add(deviceItem);
}

コンボボックスで指定した出力先に音声を切り替えているだろ
頭弱いねぇ

898デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 00:30:55.58ID:94a7CpYNa
もう寝るんで消えますおやすみ

899デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 00:32:36.55ID:94a7CpYNa
>>897
何を言ってるんだこの人。
その出力先っていうのはオーディオ出力のことであって
物理的な出力端子じゃないんだってば

どんだけメカ音痴なのマジで

900デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/14(火) 00:33:11.08ID:vkfPDW5o0
>>896
それは質問と違うこと言っているよね
音声出力を標準以外からソフト制御で切り替えられるんだよ
VISTAからね

901デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 00:34:46.05ID:94a7CpYNa
もうボケ老人の繰り言だけど、だから普通のPCのオーディオ出力端子っていうのは
ヘッドホンとライン出力と2系統あるように見えるけど、実態は1つなんだよw

2つの別々のADCに繋がってるわけじゃないの。同じものをアナログ的に分配してるだけなの

902デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 00:35:23.50ID:94a7CpYNa
>>900
だからね、質問者はそんなこと聞いてないのよ

903デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/14(火) 00:35:25.68ID:vkfPDW5o0
>>899
そこのdevice.Nameってのが「ヘッドフォン」だったり「HDMI」だったりするんだよ
あんたが知らないだけで10年前からソフトで切り替えられる

904デフォルトの名無しさん (ワッチョイ 375f-BD3m)2019/05/14(火) 00:36:25.52ID:++GJZRWf0
Realtekのオーディオデバイスならイヤホン端子とスピーカー端子はH/Wで排他になってないわな
設定で排他にするか切り替えられたはず

905デフォルトの名無しさん (ワッチョイ b763-0pSk)2019/05/14(火) 00:41:10.69ID:KlvEEe7u0
話し合ってるレイヤーが違うんだよ
いい加減気付いて質問者のためになるレスをしてくれ
質問内容が不明瞭なら明確になる質問を返せ
想像で質問内容を決めつけて延々と罵り合ってるだけで肝心の質問は何一つ進展してないぞ

906デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 00:41:44.61ID:94a7CpYNa
>>903
もうダメだなこの人。

だから何度も言うけど、それはHWが対応してないとできないのよ。
何度も言うけど、普通のPCのスピーカーとヘッドホン端子は同一のオーディオ出力に繋がってるの。
別々のオーディオ出力に繋がってるんじゃないの。わかる?

次いでいうと、これも何度も書いてるが、それ質問者の質問と全然関係ないの。
質問者さんの質問はスピーカーとヘッドホンが排他的に切り替わるのが気に入らないから
ソフトで何とかできないか、だから。

何度もいうけど、普通のPCではHWで物理的に切り替えてるので不可能です

907デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/14(火) 00:47:57.18ID:vkfPDW5o0
>>906
パソコンにHDMIは最低限付いているから、音声出力が1系統しか無いパソコンなど滅多にお目にかかれません
しかもUSBとかBluetoothとか音声を出す場所はいくらでもあるんだから、最低限ソフトでオフに出来ないと問題になる

つか1系統でイヤフォンとスピーカーが物理的に切り替わるだけしか出来ないパソコンって存在するのか?
例えば何ていうパソコンのことか具体的に名前出してくれ

908デフォルトの名無しさん (ワッチョイ 1701-VhDF)2019/05/14(火) 00:49:56.17ID:BJB1D/ui0
落ち着け。どっちも正しい。
イヤホンジャックの接続を確認して他のサウンドデバイスを黙らせるハードウェアも有る。
時々出力先間違えるドライバが有るな。
再生デバイスの先でイヤホンジャックが物理的にスピーカー出力を切る装置も有る。

後者はソフトではどうしようも無い。

909デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 00:52:31.92ID:94a7CpYNa
>>907
何がいいたいの?
まったく意味が分からん
質問者さんが何を聞いてるか、もう一度落ち着いてよく考えてよ

910デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)2019/05/14(火) 00:58:48.14ID:vkfPDW5o0
>>909
イヤフォンつなげたままスピーカーから音声を流すAPIは存在するってことね
SPとHPが共有だったとしても、他に出力する先は色々有る
何故物理的に不可能だと言い切っちまうの?APIが存在するのにさ

911デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 01:06:05.42ID:94a7CpYNa
>>910
意味が分からないよ。
だから、誰も最初からそんな話してないって

何で一人で「アプリごとに個別の出力先に音声出力が可能か?」なんて
誰も問題にしてない話をしてるのよ

912デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 01:06:49.56ID:94a7CpYNa
どっからそんな話が出てくるのマジでw
ほんと意味わからんよ

913デフォルトの名無しさん (ワッチョイ d790-ENpb)2019/05/14(火) 01:18:14.50ID:AtdtzVQx0
読解力がないってパターン?

914デフォルトの名無しさん (ワッチョイ 777d-+mkG)2019/05/14(火) 02:01:08.24ID:mmoBBtY10
ワロ

915デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/14(火) 05:43:28.06ID:fttRH1Ml0
>>862
関数とは言わないんですね

916デフォルトの名無しさん (ワッチョイ bf1c-Fjsy)2019/05/14(火) 07:21:30.35ID:es4OQUhe0
>>870
たいがいのテレビもそうなってるよ。
確認してみた?自分ちのテレビ。

917デフォルトの名無しさん (ワッチョイ bf1c-Fjsy)2019/05/14(火) 07:23:05.19ID:es4OQUhe0
>>876
それをやるのがオーディオミキサーじゃん?
昔ならsndvol32とか。

918デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 12:22:39.22ID:HKF8AKPGa
>>916
なってないよ。
そういや思い出したけど、大昔のテレビはイヤホンジャックが2つあったんだよな
で一つはSPの音を消さない仕様になっていた
普通に考えてその方が単純明快で親切だ

ヘッドをンを差し込んでも音を消さないためには、何とかボタン押して設定画面出して
この項目のアレを....
なんてまどろっこしいしヲタしか使えないしソフトもハードもコストがかかる

>>917
何か根本的に勘違いしてるんじゃないの?
それは同一のオーディオデバイスの複数の音源のボリュームを調整するんだよ。
複数のオーディオデバイスの音量を調整するんじゃないの。わかる?

他の人も書いてたと思うけど、ウィンドウズは複数のオーディオデバイスを持てるが、
既定のデバイスに設定できるのは一つだけだ(当たり前だけど)

919デフォルトの名無しさん (スフッ Sdbf-Fjsy)2019/05/14(火) 13:04:21.56ID:sprIIWlUd
>>918
そんな安物使ってるのか。
普通はジャックの状態で選択してるだけで、物理的に切断はよほどローテクな機械しかやらんよ。
スマホにイヤホン刺してもスピーカーからも音鳴るっしょ。
PCでもそうなってるよ。普通は。
刺したら切り替わるだけ。排他ではない。
https://pcrepair.w-pickup.com/post-6263/
とか、
逆に、両方から鳴って困る事のQAもある。
https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=3908-4397

sndvol32はそのとおりだな、間違ってた、すまん。
出力デバイスを選ばにゃならんが、直接叩くなら別個に出力できたと思うけど。
具体的にはKernel Streamingで。

920デフォルトの名無しさん (ワッチョイ b77c-4N0r)2019/05/14(火) 13:29:10.73ID:HHew+yI/0
>>918
それイヤホンジャックじゃなくてLINE出力のことだろ?

921デフォルトの名無しさん (ワッチョイ 7f2d-vM1y)2019/05/14(火) 14:01:03.60ID:xGjK1aQt0
こんなところまでLINEが進出してるとは、韓国もやるな

922デフォルトの名無しさん (アウアウエー Sadf-MyDy)2019/05/14(火) 15:22:49.71ID:HKF8AKPGa
>>919
TVはどうだか知らんけど、なるほどPCではソフトでヘッドフォン接続を検出して
SP出力を制御してるタイプもあるんだな。

これは素直に知らなかった。
自作用M/Bだとリアパネルの端子の接続をソフトで検出するタイプは昔から結構あったけど。

質問した人のPCがこういうタイプならドライバのユーティリティーで設定変えたら解決するね。
ノート含めメーカー製のPCの大半はこういうタイプじゃないと思うけど

923デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/14(火) 18:33:42.83ID:fttRH1Ml0
wpfとwinformどちらがいいのですか?
C#で検索するとほとんどはwinform向けのコードのような気がします
大部分は同じですけども

924デフォルトの名無しさん (ワッチョイ 3702-8Yy7)2019/05/14(火) 18:50:04.03ID:gmflVafJ0
>>855です
色々と議論頂いて申し訳ないでした
しかしとても参考になりました
ありがとうございました

まさに>>919がやりたいことなんですが、自分がサウンドデバイスとAPIの関係性がいまいち理解不足な気がしますのでもう一度しっかり見直してみたいと思います

925デフォルトの名無しさん (ワッチョイ b761-wbL8)2019/05/14(火) 18:50:39.47ID:rq13d1wo0
>>923
絶対winform
wpfは資料なさすぎて辛いよ

926デフォルトの名無しさん (ワッチョイ 9f2c-Ounp)2019/05/14(火) 18:51:24.71ID:xTv9RSlG0
>>923
どっちでもいいけどまあとっつきやすいのはWinFormじゃない

927デフォルトの名無しさん (アウアウエー Sadf-t1OE)2019/05/14(火) 18:56:25.88ID:zLBAV05La
>>923
シンプルな画面ならwinformsかwpfどっちでもいい
複雑な画面ならwpf一択

928デフォルトの名無しさん (ドコグロ MMdf-nP+x)2019/05/14(火) 19:02:22.19ID:gEF4/DH4M
>>923
デスクトップアプリ自体が時代遅れだから、基本的にはどちらもお勧めはできない。
しかしちょっとしたツールなんかで便利なことはあるから、覚えておいて損はないだろう。
その意味では断然WinFormsがお勧めだ。
WPFは習得コストが高く、デスクトップアプリという死んだ技術に対しては割に合わない。

929デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/14(火) 19:04:08.39ID:fttRH1Ml0
確かに調べた限りではwinformのほうがサンプルが圧倒的に多いですね
wpfは初学者にはきついかも、、

>>928
デスクトップアプリが時代遅れとはなんのことでしょうか
毎日使ってますが

930デフォルトの名無しさん (ワッチョイ d7da-y0Vo)2019/05/14(火) 21:07:11.88ID:0h207dTD0
横で申し訳ないのだけど、WinFormsが枯れて次に学習すべきは何がおすすめ?
とりあえず簡単な業務用アプリくらいは作ってますが(データベースと連携あり)
ASP.NETとかWebアプリに進むと、セキュリティの面でまた何かと面倒なのかなと躊躇しちゃう

931デフォルトの名無しさん (ブーイモ MMbb-S3x6)2019/05/14(火) 21:23:53.52ID:0tHpu3UbM
時代はデータサイエンティストを求めてる

932デフォルトの名無しさん (ワッチョイ 375f-BD3m)2019/05/14(火) 22:43:21.70ID:++GJZRWf0
>>924
Realtek HDオーディオマネージャーでやってるのは、
おそらくOSのAPIではなく
Realtekのドライバーの独自機能を直接呼び出してると思う

933デフォルトの名無しさん (ワッチョイ b77c-Or+L)2019/05/15(水) 00:23:39.11ID:HTdksHae0
C#関係ないな

934デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/15(水) 16:32:56.09ID:VEpWlxZJ0
wpf始めたんですが、画像の表示について教えてください
コントロールに紐付ける方法がわかりません

private void Window_Loaded(object sender, RoutedEventArgs e)
{

var bt = new BitmapImage();
bt.BeginInit();
bt.UriSource = new Uri(@"C:\Users\◎◎\Desktop\programing\vs_project\0_practice_project\tilemap_wpf\tilemap_wpf\img\1.png");
bt.EndInit();

}
ここまでは調べられたんですが、コントロールに紐付ける方法がわかりません
コントロールの種類はimageで名前はimage_mです。

資料少なめですね

935デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/15(水) 17:07:43.75ID:VEpWlxZJ0
できたです
ごめんなさい

936デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/15(水) 17:14:40.06ID:VEpWlxZJ0
>>934
このbegininitで初期化をコントロールの初期化をするという説明がされていますが、なぜこの作業が必要なんですか?
winformにはなかった手順なので、存在する意味がわかりません

937デフォルトの名無しさん (ワッチョイ d788-0pSk)2019/05/15(水) 17:39:10.29ID:tK1Lgxrc0
自己解決したなら解決手法を書きましょう
winformとwpfは異なるものなので手順も異なります

938デフォルトの名無しさん (ワッチョイ 9f7b-br3n)2019/05/15(水) 17:58:43.55ID:WnxQfHPj0
忠告されているのにわざと自分から沼にはまって助けを求める人

939デフォルトの名無しさん (ブーイモ MMcf-XzN3)2019/05/15(水) 18:44:30.38ID:SVWj/8FLM
自分が描いた迷路で迷うのもまた人生さ

940デフォルトの名無しさん (ワッチョイ 9f2c-Ounp)2019/05/15(水) 19:13:20.58ID:le9v9LR70
>>934
URL指定するだけで良いならnew BitmapImage(URL);でいいよ
ロード前に色々プロパティ設定したいならBeginInit使う
固定の画像ならXAMLで<Image Source="URL"/>だけでもいい

941デフォルトの名無しさん (ワッチョイ 3702-8Yy7)2019/05/15(水) 19:58:30.74ID:I+StC2Kj0
>>932
ありがとうございます
引き続き色々と調べてますが未だ出来ていません

NAudioを使ってオーディオデバイスの取得をしていて、自分のイメージでは
オーディオデバイスをスピーカーとヘッドホンのそれぞれで取得して、どちらかを既定のデバイスとして設定してあげれば出来るのかな?と考えてたんですが
デバイスがSpeakers/Headphonesの一つしか取得できないのでPC側の出力状態になっているものしか制御できないのです
この辺りがHWの制約によるものなのかドライバの設定でなんとかなるのかを現在調査中です

942デフォルトの名無しさん (ワッチョイ bffc-ESYi)2019/05/15(水) 21:08:20.12ID:VEpWlxZJ0
>>940
引数 1: は 'string' から 'System.Uri' へ変換することはできません。
new BitmapImage(url)
で指定するとこのエラーが出ますが、参考ページありますか?

943デフォルトの名無しさん (ワッチョイ 1f2d-6GsM)2019/05/15(水) 21:28:23.64ID:4Ta36StR0
>>942
あなたは逆引き本を買って、コードをコピペしなはれ
それがええで

944デフォルトの名無しさん (ワッチョイ b763-0pSk)2019/05/15(水) 21:50:05.54ID:4NWqR2j00
もう誰か雇って書いてもらえよ

945デフォルトの名無しさん (ワッチョイ ff7b-t4ir)2019/05/15(水) 22:16:07.15ID:QUEiJBNt0
>>942
関係ないこと聞くけどググれない理由でもあるの?
System.Uriってキーワードは出ているし自分でも>>934でnew Uriのインスタンス作っているのに
BitmapImage
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.media.imaging.bitmapimage
System.Uri
https://docs.microsoft.com/en-us/dotnet/api/system.uri

946デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 05:04:31.88ID:lb5/XXvB0
なんで一度uri変数に入れないといけないのですか?

947デフォルトの名無しさん (ブーイモ MM5e-PT8I)2019/05/16(木) 05:07:05.20ID:fJS0gkuhM
文句はMSに言っとくれ

948デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 05:37:02.96ID:lb5/XXvB0
treeviewのノードなくなってますけどどうやってノード追加するんですかね

949デフォルトの名無しさん (ワッチョイ ae2c-rckI)2019/05/16(木) 06:42:10.65ID:BUJhrwgQ0
Ruby でも文字列から、URI オブジェクトを作る。
たぶん、他の言語でも同じだろ

require 'uri'

site = URI( "http://example.org/test.cgi?a=b&c=d" )

p [ site.scheme, site.host, site.port, site.path, site.query ]
#=> ["http", "example.org", 80, "/test.cgi", "a=b&c=d"]

# URL を抜き出す。
p URI.extract( "abc http://example.net/ xyz" )
#=> ["http://example.net/"]

950デフォルトの名無しさん (ワッチョイ 6e61-gY+v)2019/05/16(木) 06:53:52.06ID:teItWolR0
URIとやらに便利なメソッドがいっぱいあるんだろう。知らんけど。

951デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 07:06:03.55ID:lb5/XXvB0
>>949
そういうものなんですね
型を適切なものにしないといけないと
uriオブジェクトを作るという表現で少しわかった気がします

952デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 08:42:14.73ID:lb5/XXvB0
>>949
例えば、urlが文字列とご認識されないようにこういう宣言をするってことでしょうか?

953デフォルトの名無しさん (ドコグロ MM36-9mjA)2019/05/16(木) 09:09:54.35ID:Ja6m86QIM
>>952
突然Rubyを持ち出すこいつはこの板の名物キチガイだから触っちゃだめ
ちなみにRubyはゆるふわ言語だからURIを受け取る引数に文字列を渡してもだいたいなんとなく動くようになっている(そして後になって予期せぬ不具合の原因になる)場合が多い

954949 (ワッチョイ ae2c-rckI)2019/05/16(木) 09:11:37.63ID:BUJhrwgQ0
オブジェクト指向では、何らかのクラスのオブジェクトを作って、操作するのが基本

例えば、URI オブジェクトを作っておけば、
そのクラスに定義されている、便利なメソッド・プロパティなどが使える

それと、C# みたいな静的言語では、
引数・戻り値などに型が指定されていたら、その型を使わないと型エラーになる!

955デフォルトの名無しさん (ワッチョイ 4063-rzGG)2019/05/16(木) 09:19:26.89ID:MP5x1HVo0
websoket通信でデータを受信して、それを別プロセスに渡すような処理をしたいのですが、MemoryMappedFileを使って共有メモリを見に行く方法は悪手でしょうか?
推奨されるプロセス間のデータのやり取り方法を教えてください。

956デフォルトの名無しさん (ラクッペ MM70-SDtF)2019/05/16(木) 09:34:38.83ID:Qeg0MHQbM
WCFが推奨

957デフォルトの名無しさん (スフッ Sd94-cyZN)2019/05/16(木) 10:29:56.16ID:8QhWJQ3wd
WCFもどうなることやらな気はするけど。
俺は微妙だと思ってるから、よくembedioでhttpサーバ立てる。

958デフォルトの名無しさん (ワッチョイ 4063-rzGG)2019/05/16(木) 10:33:24.75ID:MP5x1HVo0
WCFですか、調べてみます。

959デフォルトの名無しさん (ドコグロ MM36-9mjA)2019/05/16(木) 10:50:26.05ID:Ja6m86QIM
WCFはやめとけ
今のところWCFサービスに.NET Coreが対応する予定はないから、このままいけば.NET 5では消滅する

960デフォルトの名無しさん (ワッチョイ 3538-VeAn)2019/05/16(木) 10:57:28.97ID:7z6DTwj00
gRPCかwebapi
条件次第で玉葱かな

961デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 10:58:05.89ID:lb5/XXvB0
>>954
例えばurlの場合整形したりしやすいってことですね

962デフォルトの名無しさん (ワッチョイ 4063-rzGG)2019/05/16(木) 11:05:39.44ID:MP5x1HVo0
>>959
ということは
>>960
のgrpcが良さそうですか?

玉葱とはなんでしょうか

963デフォルトの名無しさん (ワッチョイ ca7c-BOJ1)2019/05/16(木) 11:32:13.27ID:z4KGy0Nb0
ローカルのRPCにhttpを使うの嫌なんだよな

964デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 11:54:44.97ID:lb5/XXvB0
ツリービューに小要素を追加したいのですが、wpfでは
rootNode.Nodes.Add(childNode1)
のように、nodeプロパティでの追加は出来ないようです
何を使うか教えてください

あとマイクロソフトのリファレンスでwpfのリファレンスってあるんでしょうか?
調べてるんですが、情報がごっちゃな気がします

965デフォルトの名無しさん (スフッ Sd94-cyZN)2019/05/16(木) 12:05:27.24ID:8QhWJQ3wd
embedioならwebsocket鯖にもなる。
他の言語から叩きたくなったときに超ラク。

>>963
なんで?
クライアントがイケてないから?

>>962
magiconionでは?

966デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 12:06:43.82ID:lb5/XXvB0
>>964
解決したました
英語サイトで調べたほうが遥かにわかりやすいですねw

967デフォルトの名無しさん (ワッチョイ 4063-rzGG)2019/05/16(木) 12:12:11.19ID:MP5x1HVo0
そもそもプロセス間通信をしようと思ったのは、websoketでデータ受信が忙しいからなんですが、マルチスレッドでも問題ないでしょうか?

968デフォルトの名無しさん (ワッチョイ f82d-Q2B8)2019/05/16(木) 12:31:50.76ID:9YitK9mS0
>>967
掲示板だと質問に向かない側面もあるしさ、やっぱStackOverflowに行って質問しようぜ
https://ja.stackoverflow.com/

969デフォルトの名無しさん (ワッチョイ e242-EL+e)2019/05/16(木) 12:40:43.39ID:/ttOpUx30
パソコン内でのプロセス間通信ならIPCがお手軽かと思いますわ

970デフォルトの名無しさん (ワッチョイ 6e7c-ZjB6)2019/05/16(木) 14:11:05.64ID:Ox4fjiQE0
>>944
ほんそれ

971デフォルトの名無しさん (スフッ Sd94-cyZN)2019/05/16(木) 14:19:12.14ID:8QhWJQ3wd
>>967
それなら普通にマルチスレッド(というかTask)で良いと思うけど。

972デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 17:09:13.22ID:lb5/XXvB0
wpfでpcのルートフォルダを取得して、そのサブフォルダも取得したいのですが、参考ページ教えてください。
https://dobon.net/vb/dotnet/file/driveinfo.html
このページを参考にやっているのですが、ルートフォルダを取得というよりCを自分で指定してませんか?

どのPCだろうがルートはCだから、それを基準にして、サブフォルダを取得するってことですか?

973デフォルトの名無しさん (ワッチョイ ea47-d3Lt)2019/05/16(木) 17:21:42.09ID:PZtMCMcM0
>>972
利用可能なドライブの一覧を取得するには?
https://www.atmarkit.co.jp/fdotnet/dotnettips/272getdrives/getdrives.html

974デフォルトの名無しさん (アウアウエー Sa6a-Fe5F)2019/05/16(木) 17:25:25.98ID:knSiwbWya
>>972
PCのルートフォルダってのがちょっと何を言ってるのか...
システムドライブ(OSのインストールされているパーティション)(のルートディレクトリ)って意味ならこれ?
https://www.atmarkit.co.jp/fdotnet/dotnettips/190windir/windir.html

975デフォルトの名無しさん (アウアウエー Sa6a-Fe5F)2019/05/16(木) 17:32:00.72ID:knSiwbWya
あ、話題のどちて坊やだったのか...

質問スレだから質問するのは全然OKだと思うけど、
何言ってるのか他人が理解できない質問とか、少しも自分で調べた形跡が感じられない
質問とかはちょっとマナー違反だよね

976デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 17:39:45.70ID:lb5/XXvB0
>>974
そうですね
エクスプローラのツリーのように、フォルダを表示したいので

977デフォルトの名無しさん (スフッ Sd94-cyZN)2019/05/16(木) 17:45:46.63ID:8QhWJQ3wd
ドライブはフォルダじゃない。それだけでは?

978デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 18:14:45.95ID:lb5/XXvB0
フォルダに割り当てるパスを取得するにはドライブの情報が必要ですよね?

979デフォルトの名無しさん (ワッチョイ f67b-ZdlT)2019/05/16(木) 18:24:44.89ID:mlG6Koyx0
>>978
「フォルダに割り当てるパス」
言っている意味が分からない。何がしたいのか具体的に書いて
ドライブの情報は>https://dobon.net/vb/dotnet/file/driveinfo.htmlの内容で取得できる
ファイルパスもツリービューに割り当てる要素だとしてもそのドライブの情報とは関係ない

980デフォルトの名無しさん (ドコグロ MM2e-gZI7)2019/05/16(木) 18:30:23.23ID:qEdn/tfrM
>>975
彼はおそらく調べようと思えば調べられるし
一人で進めようと思えばおそらくできるんだろう

ただ、ものづくりに必要な孤独を楽しむ能力がないんだろう
これまでたどってきた人生に依存する
人によっては精神を病んでしまうのでさっさと辞めることをオススメする

俺らの何がパンピーと違うかといえばおそらくそこ

981デフォルトの名無しさん (ワッチョイ 5002-nnF4)2019/05/16(木) 18:34:23.01ID:3A9ftzQu0
転載制限が明示されないfreeは著作隣接権の放棄だと思っていました

コメント機能まで考えなかったのでサーバー管理者の立場になることは考えが至りませんでした
ファイル倉庫ではつまらないですよね
他人の著作物を基本にサイトを作ることは悩ましいですね

解説とリンクを書くだけならば問題が無いはず、と…

いろいろ参考になりました
ありがとうございます

982デフォルトの名無しさん (ワッチョイ 5002-nnF4)2019/05/16(木) 18:34:57.02ID:3A9ftzQu0
誤爆しました
すみません

983デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 18:45:39.21ID:lb5/XXvB0
>>979
何がしたいかですが、「エクスプローラのようなフォルダツリーの機能を作りたい」です

984デフォルトの名無しさん (ワッチョイ f67b-ZdlT)2019/05/16(木) 18:50:20.66ID:mlG6Koyx0
>>983
それならツリーに必要な情報はそれぞれのディレクトリパスやファイルパスでドライブの情報じゃないのはわかる?
エクスプローラーもそうなっているはず

985デフォルトの名無しさん (アウアウエー Sa6a-AgTJ)2019/05/16(木) 19:20:17.44ID:zVFyB/Pfa
>>980
次スレ頼んだ

986デフォルトの名無しさん (ワッチョイ c461-gZI7)2019/05/16(木) 19:29:44.17ID:s+6oZKe00
>>985
ふらっと C#,C♯,C#(初心者用) Part143
http://2chb.net/r/tech/1558002486/

987デフォルトの名無しさん (アウアウエー Sa6a-AgTJ)2019/05/16(木) 19:35:38.53ID:zVFyB/Pfa
>>986

988デフォルトの名無しさん (ワッチョイ e2fc-TfzP)2019/05/16(木) 20:21:22.17ID:lb5/XXvB0
>>984
どうやら見当違いなことをしていたみたいですね
ディレクトリパスで調べてみます

989デフォルトの名無しさん (ワッチョイ e242-EL+e)2019/05/16(木) 21:13:53.08ID:/ttOpUx30
>>988
Windows API Code Packって拡張をプロジェクトにインストールすると幸せになれると思うんだ
あなたのやる気次第だが

990デフォルトの名無しさん (スププ Sd94-d3Lt)2019/05/16(木) 22:47:17.86ID:/89StDtwd
>>978
>>973にドライブの一覧を取る方法が示されてるのになんで無視するんだろう

991デフォルトの名無しさん (ワッチョイ ae2c-rckI)2019/05/17(金) 12:01:15.42ID:8VLhbVxR0
PowerShell のGet-PSDrive だろ

992デフォルトの名無しさん (ブーイモ MM5e-8NB0)2019/05/17(金) 18:20:58.23ID:vi5zDanMM
PowerShell信者()

993デフォルトの名無しさん (ワッチョイ d87b-GdSh)2019/05/17(金) 19:43:49.75ID:zp36Ii500
>>986
乙。そしてこっちはもう埋めよう
docsはもうテンプレに入れた方がいいな。ただし英語の方w
日本語版は翻訳酷いだけじゃなく情報抜けてるの見たことある

994デフォルトの名無しさん (ワッチョイ d0f2-EL+e)2019/05/19(日) 11:16:06.52ID:K7DGtrEf0
u

995デフォルトの名無しさん (ワッチョイ d0f2-EL+e)2019/05/19(日) 11:16:26.24ID:K7DGtrEf0
u

996デフォルトの名無しさん (アウアウエー Sa6a-AgTJ)2019/05/19(日) 13:46:29.54ID:grGIhInBa
u

997デフォルトの名無しさん (ワッチョイ 968f-EL+e)2019/05/19(日) 14:18:54.84ID:rGWK4TSn0
n

998デフォルトの名無しさん (ワッチョイ ae01-8NB0)2019/05/19(日) 14:39:21.39ID:BJEduilX0
u

999デフォルトの名無しさん (ワッチョイ ae01-8NB0)2019/05/19(日) 14:39:40.73ID:BJEduilX0
l

1000デフォルトの名無しさん (ワッチョイ ae01-8NB0)2019/05/19(日) 14:39:54.01ID:BJEduilX0
l

mmp
lud20190918191408ca
このスレへの固定リンク: http://5chb.net/r/tech/1551908141/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「ふらっと C#,C♯,C#(初心者用) Part142 YouTube動画>1本 ->画像>9枚 」を見た人も見ています:
ふらっと C#,C♯,C#(初心者用) Part132
ふらっと C#,C♯,C#(初心者用) Part138
ふらっと C#,C♯,C#(初心者用) Part141
ふらっと C#,C♯,C#(初心者用) Part144
ふらっと C#,C♯,C#(初心者用) Part143
ふらっと C#,C♯,C#(初心者用) Part141
ふらっと C#,C♯,C#(初心者用) Part140
ふらっと C#,C♯,C#(初心者用) Part136
ふらっと C#,C♯,C#(初心者用) Part139
ふらっと C#,C♯,C#(初心者用) Part129
ふらっと C#,C♯,C#(初心者用) Part146
ふらっと C#,C♯,C#(初心者用) Part145
ふらっと C#,C♯,C#(初心者用) Part133
ふらっと C#,C♯,C#(初心者用) Part130
ふらっと C#,C♯,C#(初心者用) Part137
ふらっと C#,C♯,C#(初心者用) Part134
ふらっと C#,C♯,C#(初心者用) Part134
ふらっと C#,C♯,C#(初心者用) Part131
ふらっと C#,C♯,C#(初心者用) Part135
ふらっと C#,C♯,C#(初心者用) Part152
ふらっと C#,C♯,C#(初心者用) Part147
ふらっと C#,C♯,C#(初心者用) Part151
ふらっと C#,C♯,C#(初心者用) Part119
ふらっと C#,C♯,C#(初心者用) Part148
ふらっと C#,C♯,C#(初心者用) Part128
ふらっと C#,C♯,C#(初心者用) Part120
ふらっと C#,C♯,C#(初心者用) Part121
ふらっと C#,C♯,C#(初心者用) Part148
ふらっと C#,C♯,C#(初心者用) Part150
ふらっと C#,C♯,C#(初心者用) Part160
ふらっと C#,C♯,C#(初心者用) Part155
ふらっと C#,C♯,C#(初心者用) Part157
ふらっと C#,C♯,C#(初心者用) Part154
ふらっと C#,C♯,C#(初心者用) Part156
ふらっと C#,C♯,C#(初心者用) Part127 [無断転載禁止]©2ch.net
ふらっとC#,C♯,C#(初心者用) Part88
ふらっと Q#,Q♯,Q#(初心者用) Part 1
くだすれC++/CLI(初心者用)part2
ふらっと C#,C♯,C#(議論用)
Webサイト制作初心者用質問スレ part251
Webサイト制作初心者用質問スレ part248
Webサイト制作初心者用質問スレ part248
初心者用・人形の素朴な疑問Q&A Part18
Webサイト制作初心者用質問スレ part252
Webサイト制作初心者用質問スレ part239
Webサイト制作初心者用質問スレ part247
Webサイト制作初心者用質問スレ part253
Webサイト制作初心者用質問スレ part244
【Esperanto】エスペラントの初心者用スレッド【国際補助語】 parto1
教えて、鯖管理の仕方(初心者用)
ブラックなベンチャーについて語るスレ(初心者用)
人狼ジャッジメント初心者スレ part12
PS4】ARK: Survival Evolved 初心者 part12
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレ Part142
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレ Part122
立憲民主党(政治初心者用)☆1
くだすれFORTRAN(超初心者用)その6
くだすれFORTRAN(超初心者用)その7
12:06:04 up 19 days, 13:09, 0 users, load average: 7.29, 8.38, 8.83

in 0.054143905639648 sec @0.054143905639648@0b7 on 020202