!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
http://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part141
http://mevius.5ch.net/test/read.cgi/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
探検
ふらっと C#,C♯,C#(初心者用) Part142
レス数が1000を超えています。これ以上書き込みはできません。
1名無C ◆jPpg5.obl6 (ワッチョイ 762c-FuHz)
2019/03/07(木) 06:35:41.12ID:6L3KEJfe02デフォルトの名無しさん (ワッチョイ 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
テンプレじゃないし古いけど初心者には役立ちそうなところ
・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 C# のガイド
https://docs.microsoft.com/ja-jp/dotnet/csharp/index
Microsoft Docs
https://docs.microsoft.com/en-us/
.NET Documentation
https://docs.microsoft.com/en-us/dotnet/
https://referencesource.microsoft.com/
https://docs.microsoft.com/ja-jp/dotnet/csharp/index
Microsoft Docs
https://docs.microsoft.com/en-us/
.NET Documentation
https://docs.microsoft.com/en-us/dotnet/
https://referencesource.microsoft.com/
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#で実行する感じかね
コードを動的に生成してc#で実行する感じかね
10デフォルトの名無しさん (ワッチョイ deef-OG2p)
2019/03/13(水) 11:40:26.49ID:Z4mQGBB00 ビジュアルスクリプティングというやつですね
c# formだけでは無理そうですよね
https://docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/Events
イベントを設定して、処理を設定するというものですが
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#のフォームで、タイルマップエディタのようなものを作りたいのですが、どのような情報を調べたらいいでしょうか
前スレから適当に拾ってきたけどこんな有様で何一つ出来ちゃいない
結局何も作れない人だから答えても意味がないぞ
> listviewの使い方について、超初心者向けに解説してるサイトを教えてください
> ファイラを作成しているのですが、ツリービューでPC内のフォルダを検出する方法について、
> ソフト上でファイルにアクセスして、フォルダの中身などを表示したいのですが、まず何のフォームを使えばいいんでしょうか?
> c#でスクリーンショット撮影するソフトは不可能ですか?
> 個々のサンプル通りにゲームを作成中なのですが、paintイベントハンドラってなんでしょうか
> c#のフォームで、タイルマップエディタのようなものを作りたいのですが、どのような情報を調べたらいいでしょうか
前スレから適当に拾ってきたけどこんな有様で何一つ出来ちゃいない
12デフォルトの名無しさん (アウアウエー Saaa-dCVS)
2019/03/13(水) 12:20:15.25ID:XeHQsN66a13デフォルトの名無しさん (ササクッテロレ Spc7-bf2A)
2019/03/13(水) 12:40:23.19ID:VDijyjbrp14デフォルトの名無しさん (ワッチョイ cb7b-o5IL)
2019/03/13(水) 13:58:05.51ID:Jw+SxIpH015デフォルトの名無しさん (ワッチョイ a701-MIh9)
2019/03/13(水) 14:27:21.62ID:ril+FLd/016デフォルトの名無しさん (ワッチョイ 8361-usO3)
2019/03/13(水) 21:00:51.56ID:JdL8LuNU017デフォルトの名無しさん (ワッチョイ ff61-ynPM)
2019/03/16(土) 16:15:05.71ID:zOgp3uDK0 GUI ToolKit(?) だけでも、少なくとも、
WinForm, WPF, Xamarine
があり、それに加えて .Net Core, .Net Standard などなどがある。
めちゃくちゃ分かりにくい。結局どれ使えばいいのか。
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ですらもないようだ。
本当にほとんど全ての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アプリは作れないかい!!?
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#は全く違う。どんどん仕様が出てくるのに、どれもこれも
汚くて欠点を含む。新しいのが出てきたら、とんでもない欠点を含む。
問題ばかり。
それは、Swing 一択で決まり。美しいし速度面も十分で、完全Multiplatform
で特に欠点が無い。それに、新しい仕様が出てくる速度もゆっくりだし。
それに比べて、C#は全く違う。どんどん仕様が出てくるのに、どれもこれも
汚くて欠点を含む。新しいのが出てきたら、とんでもない欠点を含む。
問題ばかり。
23デフォルトの名無しさん (ワッチョイ 730c-B/CD)
2019/03/16(土) 17:56:01.73ID:V0FrEy2e0 >>22
新しい方のJavaFXがゴミ過ぎてWPFでなくWinformsが使われてるC#といっしょなんですね
新しい方の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だったのと対照的。
でも、C#の方が混乱が大きいように感じる。
.Net 1つにしても、多種類あり、すぐに方針が変わって、誰もよく理解できてない。
ToolKit に関しては、Java だと Swing 一択で問題ないのに、C#は、誰も1つに
絞り込めないでいる。しかも、C#ではMultiplatFormは現実的には無理。
Javaは、ずっと前から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なんて無かったんや
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はまだまだヤル気です
> .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は元々そういう設計をする会社だったけど。
そういう問題じゃないんだよ。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にコードを自動生成させたくなるような作業があるならフレームワークの設計の方を見直すべき、
というのが今時の流れだよ
IDEはコーディングとデバッグのためだけのツールでよい、
IDEにコードを自動生成させたくなるような作業があるならフレームワークの設計の方を見直すべき、
というのが今時の流れだよ
33デフォルトの名無しさん (ワッチョイ 4301-Lc3s)
2019/03/16(土) 20:40:32.57ID:dvZvBBVu0 .Netじゃwindows/mac/linuxのクロスプラットフォームGUIがいつまでたっても作れないから
仕方なくjavaで書くんやで
javaが10数年前にとっくに実現してる事なんだからいい加減追いついてくれー
仕方なくjavaで書くんやで
javaが10数年前にとっくに実現してる事なんだからいい加減追いついてくれー
34デフォルトの名無しさん (ワッチョイ ff90-TzFu)
2019/03/16(土) 20:44:36.00ID:PNvsIlL90 完全敗北を認めた今ならマイクロソフトがGUI toolkit作るならクロスプラットフォームになるだろうが
winrtの登場の頃はまだmicrosoftは敗北を認めてなかったからクロスプラットフォームにならなくて残念..
winrtの登場の頃はまだmicrosoftは敗北を認めてなかったからクロスプラットフォームにならなくて残念..
35デフォルトの名無しさん (スフッ Sd1f-xOws)
2019/03/16(土) 20:46:13.35ID:fhPcOkRld >>32
XAMLやらAndroidのレイアウトXMLやら手書きでも十分かけるけどIDEでイメージ確認しながら書いた方が効率よくね?
XAMLやらAndroidのレイアウトXMLやら手書きでも十分かけるけどIDEでイメージ確認しながら書いた方が効率よくね?
36デフォルトの名無しさん (ドコグロ MMdf-Cp6o)
2019/03/16(土) 20:46:19.88ID:YxxaJZkyM37デフォルトの名無しさん (ワッチョイ 730c-B/CD)
2019/03/16(土) 21:00:58.03ID:V0FrEy2e0 >>29
> そういう問題じゃないんだよ
おや、急に問題がすり替わりましたね
> どんどん仕様が出てくるのに、どれもこれも
> 汚くて欠点を含む。新しいのが出てきたら、とんでもない欠点を含む。
Javaの新しくて汚らしく欠点だらけのJavaFXを忘れてらっしゃるようなので説明を追記したまでですよ
Swingで良いならWinformsで良いとも言わないのが不思議ですね
IDE?
SwingをIDE無しで問題ないというのと同程度にWinformsも問題ないですね
> そういう問題じゃないんだよ
おや、急に問題がすり替わりましたね
> どんどん仕様が出てくるのに、どれもこれも
> 汚くて欠点を含む。新しいのが出てきたら、とんでもない欠点を含む。
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は技術の進化や流行に追いつけなくなってるんだよ
それは否定しないけど、完璧な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
続きはこちらでどうぞ
ふらっと 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+xl042デフォルトの名無しさん (ワッチョイ bf2d-geq4)
2019/03/17(日) 02:57:55.04ID:XTuejaeR0 多くの人がUIデザインのセンスが無いのに、xxML直書きが主流のせいで更に悪くなってる気はするな
C#に限ったことじゃないけどさ
C#に限ったことじゃないけどさ
43デフォルトの名無しさん (ワッチョイ f361-ynPM)
2019/03/17(日) 14:45:31.20ID:nIiKRKOv044デフォルトの名無しさん (アウアウエー 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+M4DZ047デフォルトの名無しさん (ワッチョイ f361-ynPM)
2019/03/17(日) 16:10:04.12ID:nIiKRKOv048デフォルトの名無しさん (アウアウエー Sadf-Cp6o)
2019/03/17(日) 16:14:27.92ID:XvGPMByna49デフォルトの名無しさん (ワッチョイ 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/
どの口がそれを言う
スレの趣旨を無視した議論に参加してる君も同類じゃないのか
議論専用のスレがあるんだからそっちでやれよ。
何でわざわざ場違いなスレでやるんだよ。頭悪すぎじゃないのか
ふらっと 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:qC5UNTtha57デフォルトの名無しさん (ラクッペ 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ってなにがちがうん?
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でもやっとけ
全くの別物
WebFormsはWinFormsモドキ
MVCはRuby on Railsモドキ
今始めるなら、英語に抵抗がなければ最新のMVC系フレームワークであるASP.NET Core
英語ダメならオワコンRailsかPHPでもやっとけ
>>61
>英語に抵抗がなければ
というのが、どのくらいのレベルなのか、には興味があります…最近は英語よりも古代語(ラピュタの黒石に刻まれているあんな感じのやつ)のほうに興味があります
ムスカの台詞「読める!読めるぞ!」を私も味わいたいと考えているのです
>英語に抵抗がなければ
というのが、どのくらいのレベルなのか、には興味があります…最近は英語よりも古代語(ラピュタの黒石に刻まれているあんな感じのやつ)のほうに興味があります
ムスカの台詞「読める!読めるぞ!」を私も味わいたいと考えているのです
63デフォルトの名無しさん (アウアウエー Sadf-FtxA)
2019/03/19(火) 22:16:53.20ID:qnLJux/Ma プログラミングに限らず技術系の文章の英語なんか普通に受験して大学入った
人間なら誰でも読めるw
英語英語言ってる人は逆にいうとその程度の事で自分を差別化できると思ってる人なんだと
思った方がいいよwww
人間なら誰でも読める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
これくらいは変だと自分で気付けないと恥ずかしいぞ
堺筋線 -> 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型として扱うこと
むしろ何が分からんのか分からんのだが…
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を使ったほうがいいということですか?
【以下引用】
int型を慣習的に使用することで、他のデータ型に変換する機会を減らすこともできる。
小さい値を扱うことがわかっている場合は、int型よりもbyte型のような小さい値を格納できる型を使う方がメモリの消費量を減らすことができる。
しかし、宣言される変数の多くはスコープが狭く、メモリ上に存在する期間が短いため、メモリの消費量はあまり重要ではない。
↑
これはつまり、数値を扱う場合の変数は基本的にintを使ったほうがよく、必要があればbyteなどの変数を使ったほうがいいということですか?
それともどんな数値でも変数の使い分けをせず、intを使ったほうがいいということですか?
71デフォルトの名無しさん (ドコグロ MM13-pD1i)
2019/03/22(金) 12:38:37.72ID:nPC1T1eJM72デフォルトの名無しさん (ワイエディ MM02-VfNx)
2019/03/22(金) 12:50:16.68ID:S3zLmlK0M73デフォルトの名無しさん (ワッチョイ 6b2d-yExI)
2019/03/22(金) 17:45:07.05ID:piAmWzDj0 ちょっと上で英語の話題があったついでに用語について教えてほしいんだけどさあ
Concurrency = Asynchronous processing
って理解であってるん?
Concurrency = Asynchronous processing
って理解であってるん?
74デフォルトの名無しさん (ドコグロ MM13-pD1i)
2019/03/22(金) 17:48:21.39ID:nPC1T1eJM75デフォルトの名無しさん (ワッチョイ 6b2d-yExI)
2019/03/22(金) 17:58:40.45ID:piAmWzDj0 Concurrency ∈ Asynchronous processing
こんな感じ?
こんな感じ?
76デフォルトの名無しさん (ドコグロ MM13-pD1i)
2019/03/22(金) 18:04:58.89ID:nPC1T1eJM77デフォルトの名無しさん (ワッチョイ 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ってどうやって設定すればいいの?
ttps://www.ipentec.com/document/csharp-call-soap-web-service
ちなみにここの手順で実装してる
ttps://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を設定すればよかったみたい
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; }
}
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
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なプログレスバー呼びまくったのに一度も実行時エラーでなかったの
なんで?正常な流れなの・
Parallel.Forから
Staticなプログレスバー呼びまくったのに一度も実行時エラーでなかったの
なんで?正常な流れなの・
85デフォルトの名無しさん (ワッチョイ ea47-k4dH)
2019/03/24(日) 01:15:19.62ID:GJ0JjoCX0 >>84
UIを操作できるのはUIスレッドだけ
UIを操作できるのはUIスレッドだけ
86デフォルトの名無しさん (ワッチョイ def2-rXtv)
2019/03/24(日) 01:16:53.70ID:yH9zM0xm087デフォルトの名無しさん (ワッチョイ def2-rXtv)
2019/03/24(日) 01:18:41.54ID:yH9zM0xm0 Nugetでこれ入れて出せるようになるやつ
Windows7APICodePack
これな
using Microsoft.WindowsAPICodePack.Taskbar;
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 形式に似てる。
パット見、見た目が、JavaScript の JSON 形式に似てる。
90デフォルトの名無しさん (ワッチョイ de63-VZOn)
2019/03/24(日) 16:19:26.01ID:C+8PS15Z0 それはおめめかおつむがヤバいな
91デフォルトの名無しさん (ワッチョイ ea47-k4dH)
2019/03/24(日) 17:04:29.99ID:GJ0JjoCX092デフォルトの名無しさん (ワッチョイ 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)
なんか理由わかる人いませんか?
そうそう、そういうこと
Parallelで進捗バー増やしてったのに
順調に増えてって正常終了した
TaskbarクラスはStaticでクラスライブラリ(.dll)
なんか理由わかる人いませんか?
94デフォルトの名無しさん (ワッチョイ 5f0c-rXtv)
2019/03/24(日) 23:49:11.19ID:z21lQS4L0 ソース見てみたらITaskbarList3::SetProgressValue呼んでるだけだし
アプリ内のウィンドウというよりシェルへのアクセスなら
元々UIスレッドで呼ぶ必要ないんじゃねえの
検証してないけど
アプリ内のウィンドウというよりシェルへのアクセスなら
元々UIスレッドで呼ぶ必要ないんじゃねえの
検証してないけど
95デフォルトの名無しさん (ワッチョイ c6fc-WX4v)
2019/03/25(月) 12:38:16.05ID:M0EtypdC0 ドット絵エディタみたいなのは簡単ですか
96デフォルトの名無しさん (オイコラミネオ MMeb-9bVr)
2019/03/25(月) 12:38:17.23ID:ZS1E97rBM97デフォルトの名無しさん (ワッチョイ 5f7c-PdI2)
2019/03/25(月) 13:14:00.29ID:MuEFgcsw098デフォルトの名無しさん (スフッ Sdea-k4dH)
2019/03/25(月) 13:55:28.16ID:feShKvG5d >>97
今はnugetでだいたいのフォーマットのライブラリは取得できるんじゃないかな
今はnugetでだいたいのフォーマットのライブラリは取得できるんじゃないかな
99デフォルトの名無しさん (スフッ Sdea-k4dH)
2019/03/25(月) 14:00:35.30ID:feShKvG5d てか、Windowsなら標準のBitmapクラスでメジャーどころは扱えるか
100デフォルトの名無しさん (ワッチョイ c6fc-WX4v)
2019/03/25(月) 16:28:23.69ID:M0EtypdC0101デフォルトの名無しさん (ワッチョイ 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プロパティで指定したビットマップに描画」を使う。そうじゃないと保存するときにも苦労する
そうだな
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:QIzg3qUJ0105デフォルトの名無しさん (ワッチョイ 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万個に上る、と言ったような問題点も耳にした。
任意回数行った場合には「識別子」として役立たないことになる。
だから、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(ここに計算結果を表示);
}
自分としては見出しを表示→◆計算◆(数分かかります)→計算結果表示と、上から順に処理されることを期待しているのだけど
実際は◆計算◆が終了するまで最初のテキスト「見出し」も表示されないのですがどうしてなのでしょうか?
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 のソース読むのお勧め
色々小技もあるので、一概には言えないと思うけどなぁ
本格的に勉強したいなら、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
を参考に考えてみるとアプリケーションキューが空になるまで再描画されないからとかでは
リッチテキストボックス.Text=(見出し);
リッチテキストボックス.Refresh();//これを挿入
◆計算◆
で意図通りになるはず
「どうしてなのか」はよくわからないけど
https://dobon.net/vb/dotnet/control/refreshupdateinvalidate.html
を参考に考えてみるとアプリケーションキューが空になるまで再描画されないからとかでは
112デフォルトの名無しさん (オイコラミネオ MMeb-9bVr)
2019/03/26(火) 10:18:19.55ID:nfpS3j/TM ドット絵なんて"■"をフォントサイズと色変えて
200x200でやるとかじゃアカンの?
商用?趣味?
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;
}
イベントハンドラーの中で計算しているから、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するときはそれを「起点」にする方法も考えられる。ただし、この場合は、
ファイルへの保存に時間がかかる問題が残る。
速度的な問題点を無視すれば、
編集ソフトでファイルを読み込んだ直後から人間が操作したコマンドの履歴を
全て記録しておいて、ファイルを読み込んだ直後から、最初から最後の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なら、透明色をそのまま
指定できるタイプのものも確かあったと思うけど。
ゲームの専門家に聞いたんだけど、実はドットエディタは使ってなくて、
1つのファイルに複数のキャラクタ画像をまとめて、普通のPaintソフトの
拡大鏡機能で作っておいて、ゲームプログラムの方で部分的な四角形領域
を座標で指定して複数のキャラクタとして扱っている、と聞いた。
そして、透明部分は、1つの色を「透明色」として扱ってMaskパターン
を作っていると。WindowsのBitBlt系のAPIなら、透明色をそのまま
指定できるタイプのものも確かあったと思うけど。
118デフォルトの名無しさん (オッペケ Sr03-s8oI)
2019/03/26(火) 12:09:54.76ID:6g954Hehr119デフォルトの名無しさん (ワッチョイ 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:5W15sMAGF122デフォルトの名無しさん (ワッチョイ ff61-dHY2)
2019/03/26(火) 16:55:27.87ID:fe5vrK8S0123デフォルトの名無しさん (オッペケ Sr03-s8oI)
2019/03/26(火) 17:53:29.15ID:6g954Hehr >>122
3Dソフトはそもそもディペンデンシーグラフで履歴ノードが自由に繋ぎ直せるし、インプットアウトプットもしまくるから
わざわざファイルに出してることはないはず
そしてそれら膨大な数のノードがリアルタイムで動作したりするからなあ
ほんとどうやったら普通のPCでもそれなりに高速に動くようなあんなシステム作れるんだ
ちなみにスクリプトやAPIでも履歴作れるんだよな
openChank closeChankの間に入れ込んだ操作の履歴を一つにしてくれる
3Dソフトはそもそもディペンデンシーグラフで履歴ノードが自由に繋ぎ直せるし、インプットアウトプットもしまくるから
わざわざファイルに出してることはないはず
そしてそれら膨大な数のノードがリアルタイムで動作したりするからなあ
ほんとどうやったら普通のPCでもそれなりに高速に動くようなあんなシステム作れるんだ
ちなみにスクリプトやAPIでも履歴作れるんだよな
openChank closeChankの間に入れ込んだ操作の履歴を一つにしてくれる
124デフォルトの名無しさん (ワッチョイ ff61-dHY2)
2019/03/26(火) 18:13:18.89ID:fe5vrK8S0 >>123
履歴のコマンドの順序を入れ替える操作を高速にするアルゴリズム、今、分かった。
1. 操作を変更する時点は、現在の状態からは近いことが多いはず。
2. だから、ツールの内部処理で、現在の状態から小数回 Undoを繰り返せば、その地点にいったん
戻ることが出来る。
3. そこからは、新しい順番でコマンドを「Replay(再生)」すれば、目的の結果が得られる。
履歴のコマンドの順序を入れ替える操作を高速にするアルゴリズム、今、分かった。
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回程度繰り返せば、目的のデータが
完成する。
・例えば、現在の状態が、ファイル読み込み時点から、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
https://you-can-program.hatenablog.jp
128デフォルトの名無しさん (オッペケ Sr03-s8oI)
2019/03/26(火) 19:28:00.58ID:6g954Hehr129デフォルトの名無しさん (オッペケ Sr03-s8oI)
2019/03/26(火) 19:31:16.28ID:6g954Hehr あとキャラ一体でこのノード数は当たり前
これが何体もいる上に背景やらエフェクトやら物理演算、アニメーションブレンディングとかも同時にエディタ内でやってる
さらに裏側で動作させてるスクリプトも何百もあるし、APIとかも膨大に動いてる
https://circecharacterworks.files.wordpress.com/2011/11/hypergraph.png
これが何体もいる上に背景やらエフェクトやら物理演算、アニメーションブレンディングとかも同時にエディタ内でやってる
さらに裏側で動作させてるスクリプトも何百もあるし、APIとかも膨大に動いてる
https://circecharacterworks.files.wordpress.com/2011/11/hypergraph.png
130デフォルトの名無しさん (アウアウエー Sac2-0zLl)
2019/03/27(水) 03:33:29.80ID:NpUsj5uAa131デフォルトの名無しさん (ワッチョイ 5f38-lyQy)
2019/03/27(水) 08:27:38.52ID:bis+Aug70132デフォルトの名無しさん (アウアウウー Sa2f-+6wG)
2019/03/27(水) 08:50:32.86ID:vlf+N3dca azure durable functionをオンプレで使いたいのだけど類似のオプソフレームワークってあります?
MQ使って再発明はダルいっす
MQ使って再発明はダルいっす
133デフォルトの名無しさん (アウアウエー Sac2-pD1i)
2019/03/27(水) 09:16:12.09ID:M3xZFaB+a134デフォルトの名無しさん (ワッチョイ 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イベントをラムダ式(?)で記述してます。
説明するのに使う用語すらそこら辺から借りてきたもので大変恐縮ですがご指導の程宜しくお願いします。
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イベントを無名関数(?)で記述してます。」と言うべきだった気がしてきました。
「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変数が未初期化のままコンストラクタが完了することになって
結局そのインスタンスは使い物にならない
・本体右クリックメニューの方は、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:tQ4XPcUjM139デフォルトの名無しさん (ワッチョイ 6b2d-5HBQ)
2019/03/27(水) 19:54:30.82ID:ewJriyXK0 >>137
だめなのかあ・・・・ありがとう
だめなのかあ・・・・ありがとう
140デフォルトの名無しさん (ワッチョイ 5f38-lyQy)
2019/03/27(水) 20:06:11.69ID:bis+Aug70 うんだから
振る舞い無くてもPOCOでしょ
普段使いで貧血ドメインクラスなんてわざわざ言わないしな
ただのデータクラスって言ったり
わかる相手にはプレーンオブジェクトとか言うでしょ
コンテキストによってはレコード型と言ったりもするし
振る舞い無くてもPOCOでしょ
普段使いで貧血ドメインクラスなんてわざわざ言わないしな
ただのデータクラスって言ったり
わかる相手にはプレーンオブジェクトとか言うでしょ
コンテキストによってはレコード型と言ったりもするし
141デフォルトの名無しさん (ワッチョイ 077d-ABW3)
2019/03/27(水) 21:21:06.39ID:LVKAuWEv0 アーキテクチャとか思想で呼び方は変わりそうね
3レイヤーアーキテクチャでアプリケーション層でのドメインモデルからview やjsonのための振る舞いを持たないクラスを俺はviewmodelかdtoとか呼んでるわ
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
さて、次は肝心の中身に取り組まなければ!!
取り敢えずフラグの切替、想定通りになりました〜(^^
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()を経由するよりもフィールドで扱ったほうが楽
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:BZLOzy32d151デフォルトの名無しさん (アウアウウー 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
.NET Framework
WinForms
WPF
ASP.NET Classic
ASP.NET MVC
Entity Framework
Notレガシー
.NET Core
Windows Runtime
ASP.NET Core
Entity Framework Core
>>152
win32api はレガシーですか?
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じゃないからレガシー
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#のコードなんですが…考え込まないで次に進んでも差し支えないですかね
{
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:Z1iKEAdk0161デフォルトの名無しさん (ワッチョイ 4f7c-/IFY)
2019/03/29(金) 08:50:35.24ID:YK+WjxC90 先頭とかは気にしなくていいが
要は改行も文字の一種だからConsole.Read()で返されうるということ
要は改行も文字の一種だから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が改行)
いあ、ごめん。
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 か?
ファイルの最後の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
C#初心者スレで誰に対しての参考なんだよw
165デフォルトの名無しさん (ドコグロ MMcf-Fyvt)
2019/03/29(金) 11:53:42.53ID:dNWrd6GAM ここも次スレはタイトルに [Ruby禁止] が必要だな
166デフォルトの名無しさん (アウアウウー Sa0f-f1ke)
2019/03/29(金) 14:02:16.54ID:4Qaz8P7sa167デフォルトの名無しさん (ワッチョイ 0b88-U708)
2019/03/29(金) 14:57:23.90ID:N6N7D78B0 仮にサンプルコードがrubyじゃなくても大した参考にならないレスだということに驚きを隠せない
168デフォルトの名無しさん (ワッチョイ 0fda-9gjM)
2019/03/29(金) 15:21:01.41ID:kIHWJH0H0169デフォルトの名無しさん (ワッチョイ cbe7-ycr5)
2019/03/29(金) 15:26:30.90ID:BZTP93w70 >>168
コンソールの話であってC言語かは関係ない
コンソールの話であって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で勝手にやってくれるし。
他にネイティブのハンドルとかオープンしたらクローズとか。
いつ呼ばれようがただのデストラクタだ
例えば、メモリ動的確保したら後処理として解放する処理が必要だが.NETはGCで勝手にやってくれるし。
他にネイティブのハンドルとかオープンしたらクローズとか。
いつ呼ばれようがただのデストラクタだ
174デフォルトの名無しさん (ワッチョイ 9fad-tO+B)
2019/03/30(土) 03:04:53.19ID:1YGxKDqg0 IDisporsableに書く処理を2重に書いておいて
using使わずにそのクラスを使われてしまった時の保険とか?
using使わずにそのクラスを使われてしまった時の保険とか?
175デフォルトの名無しさん (アウアウウー Sa0f-X2Hi)
2019/03/30(土) 07:16:33.58ID:kQToIs4ma176デフォルトの名無しさん (ワッチョイ 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ステートメントで使う
C#ならIDisposableを実装してusingステートメントで使う
179デフォルトの名無しさん (ワッチョイ 9fad-0f50)
2019/03/30(土) 13:28:45.76ID:wWTOiR4+0 >>176
C#やで?
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();
}
以下のように、クラスに直接登録された変数/インスタンスはどこに保存されるのでしょうか?
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を触りだしたら必要かもしれない
値型と参照型の区別はついてる?
値型の変数には値型全体を表すためのメモリが割り当てられる
参照型の変数は参照先を示す値(=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クラスってだけじゃない?
クラスライブラリとかいってるけど結局動的な変数Orクラスってだけじゃない?
187デフォルトの名無しさん (スプッッ Sd4f-U708)
2019/03/31(日) 17:32:15.95ID:AGgU+JAad IL見ろ
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#のおとんおかんが凄絶な恋愛してたことがわかるから
COM+とかの話見ると、C#のおとんおかんが凄絶な恋愛してたことがわかるから
190デフォルトの名無しさん (ワッチョイ 4f0d-RfjL)
2019/03/31(日) 21:38:09.85ID:5U3jYzcD0 visual studioってコードの修正案提示してくれたりしてマジすげぇなと驚いてるんだけど最近のideってどれもこんなものなの?
ずっとsakuraとコンパイラで開発してきたから至れり尽くせり感に驚愕してる
ずっと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
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の違いは、同一プロセスかどうか
例えば、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#で説明すればいいだろ
c#で説明すればいいだろ
195デフォルトの名無しさん (ワッチョイ 1f52-f1ke)
2019/04/01(月) 07:59:11.65ID:0je6lfhB0196デフォルトの名無しさん (ラクペッ 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内データの削除
です
やりたいこととしては
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#は生みの親に後ろからケツを全力で蹴られている格好
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が目当てだったとか?
まさか、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
馬鹿は無理して会話に交じらなくて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じゃね?
それが.Net Coreじゃね?
211デフォルトの名無しさん (ワッチョイ 6bad-twBZ)
2019/04/03(水) 14:50:03.23ID:73sauU1q0 【令和】 徳仁 VS 世.堺教師マiトL-ヤ 【分合】
http://egg.5ch.net/test/read.cgi/emperor/1554258711/l50
http://egg.5ch.net/test/read.cgi/emperor/1554258711/l50
212デフォルトの名無しさん (ドコグロ MM3f-1rTY)
2019/04/03(水) 18:46:36.25ID:P6TLGPRxM >>210
.NET CoreにはGUIのフレームワークがないんだわ
一応UWP、WPF、Windows Formsと組合せて開発できる(現状はWindowsのみだったはず)けどそれなら普通にC#使うし…
.NET CoreにはGUIのフレームワークがないんだわ
一応UWP、WPF、Windows Formsと組合せて開発できる(現状はWindowsのみだったはず)けどそれなら普通にC#使うし…
213デフォルトの名無しさん (スップ Sdbf-6gzM)
2019/04/03(水) 19:08:18.87ID:irKDOHSYd >>212
え…WebはGUIやで
え…WebはGUIやで
214デフォルトの名無しさん (オッペケ Sr4f-Xesi)
2019/04/03(水) 19:57:10.57ID:57e5+lwMr215デフォルトの名無しさん (アウアウウー Sa0f-TMDy)
2019/04/03(水) 19:57:13.23ID:n4wxwcz+a Web遅いやん
216デフォルトの名無しさん (ワッチョイ 9f01-1rTY)
2019/04/03(水) 20:18:48.27ID:z8L5LERR0217デフォルトの名無しさん (ワッチョイ 8b7b-1RjH)
2019/04/03(水) 20:22:50.49ID:NsKebegy0 もとの質問がスレ違いなのにいつまでやるの
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
「どんなにくだらない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って表現がおかしいことを認めようとしないクズ
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開発は開発環境含めて評価すべきだわ
GUI開発は開発環境含めて評価すべきだわ
222デフォルトの名無しさん (ワッチョイ ed61-yEdN)
2019/04/04(木) 01:51:05.61ID:IOgreNy50 >>221
GUIで配置できるって点だけじゃね?
GUIで配置できるって点だけじゃね?
223デフォルトの名無しさん (ワッチョイ b901-nB65)
2019/04/04(木) 02:37:37.19ID:iJ70eOZ40 iPhoneでAppstoreが成功して、カッコ良ければ売れるんだと思い、
ググルプレイが成功して収益管理まで提供したら売れると思ってたら
窓電話は不発、デスクトップでストアアプリ探さないから売り物さえ並ばない。
成功者は金の回りを用意して市場を作った。
MSは市場を作ろうとして壁を作った。
ググルプレイが成功して収益管理まで提供したら売れると思ってたら
窓電話は不発、デスクトップでストアアプリ探さないから売り物さえ並ばない。
成功者は金の回りを用意して市場を作った。
MSは市場を作ろうとして壁を作った。
224デフォルトの名無しさん (ワッチョイ 01dc-iMOx)
2019/04/04(木) 23:45:04.92ID:CMDWj0ay0 C#は、関数の引数は基本的に値渡しということですが、これ本当ですか?
unityで、引数にrefをつけて参照渡ししてるサンプルって見たことがないです。
すごくメモリ効率が悪い気がするのですが・・・
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:kZ8w9alb0230デフォルトの名無しさん (ワッチョイ 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:N3n7oHyA0233デフォルトの名無しさん (ワッチョイ 7e7c-K5C6)
2019/04/05(金) 08:44:21.30ID:x8OJz+Ud0 >>230
既定のアクセシビリティの差しかないC++の悪口かな?
既定のアクセシビリティの差しかない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();
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+Ud0239デフォルトの名無しさん (ワッチョイ eef2-iMOx)
2019/04/05(金) 19:45:13.46ID:N3n7oHyA0240デフォルトの名無しさん (ワッチョイ c201-j9UZ)
2019/04/05(金) 22:56:55.47ID:85UtCV7c0241デフォルトの名無しさん (ワッチョイ 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ボタン以外の何らかの方法で消したとき?
Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?
243デフォルトの名無しさん (ワッチョイ ee7b-O+pl)
2019/04/05(金) 23:14:11.83ID:cVRKM8Bg0 >>240
「右上の×で消した時」はわからないが
フォームがDispose(Close)されているか form2.IsDisposed
フォームが表示されているか form2.Visible
具体的に何が目的かを書いてもらった方が答えやすいと思う
「右上の×で消した時」はわからないが
フォームが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
真面目に何言ってるのかさっぱり分からんから、投稿する前に読み手の立場に立って
文章推敲することを覚えた方がいいよ。
これ、プログラミングのスキルより何倍も重要
いやほんと煽りとか抜きに。
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に書き直すのか・・・ってなったり
書きながら考えるときの補助として使おうとすることが間違ってると言えばその通りだけどね
例えばとりあえず広いスコープで宣言しといて後のfor内とかで使おうとしたときにここはfloatで扱いたいな→結局宣言箇所をfloatに書き直すのか・・・ってなったり
書きながら考えるときの補助として使おうとすることが間違ってると言えばその通りだけどね
247デフォルトの名無しさん (ワッチョイ 012d-c04X)
2019/04/06(土) 03:20:06.81ID:QWD6tIIM0 非同期処理A内でタスクBを生成した場合について教えてほしいのですが、
Aのスレッドが抜けてしまったり、あるいはAのタスクが終了してしまった場合でもタスクBは生き続けるんですか?
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作ればいいんじゃね
CreateLinkedTokenSourceで複数タスクにまたがるCancellationTokenSource作ればいいんじゃね
250240 (ワッチョイ c201-j9UZ)
2019/04/06(土) 10:07:54.08ID:hyh7Xf1q0251デフォルトの名無しさん (アウアウウー Sac5-gCYp)
2019/04/06(土) 10:13:25.13ID:12K3yeCTa252デフォルトの名無しさん (ワッチョイ 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 マネージャーがまさに自分の視点でしか話をしないから意味を推察するのにめちゃくちゃ苦労してる
しかもマネージャーだから放置も無視もできないしめんどくせぇ
しかもマネージャーだから放置も無視もできないしめんどくせぇ
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が言ってるような方法でタスクが自発的に止まるしかない
好きにしたらいい
その場合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:MA8UEjRg0263デフォルトの名無しさん (ワッチョイ 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を閉じた時」
って書かないと駄目だったのかな?でも回答を教えてくれた人居るし分かってほしいな〜
「サブフォーム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
日本の国語教育は何であんなくだらない文学観賞と子供を嘘つきにする作文に偏重してるのか。
思いっきりスレ違いなのでこの辺で
彼はたぶん自分の何が問題なのか本気で分かってない。
仕事で取引先とかとメールでやりとりしてる人なら同意すると思うけど、
日本人は案外彼みたいな人が多い。
多いというか、日本人全体を母集団にとるとたぶん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:hyh7Xf1q0271デフォルトの名無しさん (ワッチョイ 61e7-YufY)
2019/04/06(土) 21:26:09.76ID:Hw9bu2CQ0272デフォルトの名無しさん (ワッチョイ 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:YyWMpA9h0276デフォルトの名無しさん (ワッチョイ 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が無いのかな?
>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の組は残り続けるのでしょうか
暫く調べたのものの「リークするから弱参照を使う」「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の頭に問題は無いの?
>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のとき
どうすればよいですか?
って何言ってるのかさっぱりわからないよね?
これで世の中渡っていけると本気で思っているのか?
サブフォームFORM2を作って右上の×で消した時
どうすれば(どこを調べれば)よいですか?
を
A=サブフォームFORM2
B=右上の×で消した
で置き換えたとき
Aを作ってBのとき
どうすればよいですか?
って何言ってるのかさっぱりわからないよね?
これで世の中渡っていけると本気で思っているのか?
283デフォルトの名無しさん (ワッチョイ ed61-yEdN)
2019/04/07(日) 00:44:13.15ID:Lr+Z70d50284デフォルトの名無しさん (ワッチョイ 7d5f-iE/E)
2019/04/07(日) 00:49:36.20ID:vK2HJm7v0285デフォルトの名無しさん (ワッチョイ ed61-yEdN)
2019/04/07(日) 00:55:57.83ID:Lr+Z70d50286デフォルトの名無しさん (ワッチョイ 6252-gCYp)
2019/04/07(日) 01:00:11.33ID:h90p5IeD0287デフォルトの名無しさん (ワッチョイ 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ともに回収されるので気にするな
そういう単純なケースなら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すべて回収される
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みたいなことを言われる
う~ん、引っ込みがつかなくなってるのか本当に初心者で何を指摘されてるのか理解できてないのかよくわからんけどここ初心者用だから初心者として仮定して…
Xボタンでフォームを消すと言うのはどちらかと言うと一般的じゃない(普通のフォームならOk/Cancel/閉じるボタン等を配置するよね)ので「右上の×で消す」と書くとなにか特別なことをしようとしてるのかと思われるの
ただ初心者だとXボタンで消すのが当たり前と思ってる人もいるから確認の為に>>242みたいなことを聞いてるわけ
あとそもそもサブフォームの状態を調べると言うのもあまり一般的じゃない
GUIだとイベントで処理するのが普通だから>>238みたいなことを言われる
291デフォルトの名無しさん (ワッチョイ 8201-xk87)
2019/04/07(日) 07:58:43.91ID:AvqFg2320292デフォルトの名無しさん (ワッチョイ 69b0-umYY)
2019/04/07(日) 14:00:44.14ID:yNnH+Rdg0293デフォルトの名無しさん (ワッチョイ 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("解放されますた!");
と書いておくと安心できる。
メモリリーク発生の可能性も減る。
Console.WriteLine("解放されますた!");
と書いておくと安心できる。
メモリリーク発生の可能性も減る。
296デフォルトの名無しさん (ラクペッ MM59-9Thk)
2019/04/07(日) 18:48:15.95ID:zc2PfqGUM >>295
心の安寧が欲しいなら止めないけど
C#では、パフォーマンスを低下させるため、プログラムの動作に必要がない
ファイナライザを実装すること自体が推奨されないことは、知っておいた方がよい
パフォーマンスが低下するのは、ファイナライザの実装されていると
GC時にファイナライザキューを介してファイナライズが行われるが
このファイナライズを行う際はStop the worldする必要があるためだ
ファイナライザを保険として実装した上で、前述のパフォーマンス低下を避けるには
自分でファイナライザ相当の処理をした上でSuppressFinalizeを呼び出しておく必要がある
この場合、ファイナライザは実行されなくなり、パフォーマンスの低下も起きない
心の安寧が欲しいなら止めないけど
C#では、パフォーマンスを低下させるため、プログラムの動作に必要がない
ファイナライザを実装すること自体が推奨されないことは、知っておいた方がよい
パフォーマンスが低下するのは、ファイナライザの実装されていると
GC時にファイナライザキューを介してファイナライズが行われるが
このファイナライズを行う際はStop the worldする必要があるためだ
ファイナライザを保険として実装した上で、前述のパフォーマンス低下を避けるには
自分でファイナライザ相当の処理をした上でSuppressFinalizeを呼び出しておく必要がある
この場合、ファイナライザは実行されなくなり、パフォーマンスの低下も起きない
297デフォルトの名無しさん (アウアウウー Sac5-dKzD)
2019/04/07(日) 18:49:09.04ID:QS/EO+8da デストラクタにはなるべく頼らないようにしようぜ
デストラクタを記述するにしてもDispose()されたときにGC.SuppressFinalize(this)しようぜ
>>295
出力の有無でメモリリークに気づける可能性はあるが「発生の可能性も減る」について詳しく
デストラクタを記述するにしてもDispose()されたときにGC.SuppressFinalize(this)しようぜ
>>295
出力の有無でメモリリークに気づける可能性はあるが「発生の可能性も減る」について詳しく
298デフォルトの名無しさん (ワッチョイ c201-j9UZ)
2019/04/07(日) 19:36:38.60ID:AJMxYZfA0 既にスレを荒らした状態になってるから、もうこれで最後にするけど
>>290
の上8行「右上の×で消す」という書き込みは初心者が使うフレーズだから
中〜上級者の俺様は深読みして間違えたと解釈したけど
本物の中上級者でも「右上の×で消す」の意味は「右上の×マークをクリック
して窓を消す」以外ありえません。そういうわけであなたは
初心者でも中〜上級者でもない別の何かです。
初心者の書く「右上の×で消す」の文が不満で何で
「Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?」
何で選択肢が増えるんだよw
プログラムより国語の勉強しないと。
回答側に回りたいなら模範回答できる質問だけにしてください。
>>290
の上8行「右上の×で消す」という書き込みは初心者が使うフレーズだから
中〜上級者の俺様は深読みして間違えたと解釈したけど
本物の中上級者でも「右上の×で消す」の意味は「右上の×マークをクリック
して窓を消す」以外ありえません。そういうわけであなたは
初心者でも中〜上級者でもない別の何かです。
初心者の書く「右上の×で消す」の文が不満で何で
「Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?」
何で選択肢が増えるんだよw
プログラムより国語の勉強しないと。
回答側に回りたいなら模範回答できる質問だけにしてください。
299デフォルトの名無しさん (ワッチョイ 8201-xk87)
2019/04/07(日) 19:41:49.21ID:AvqFg2320300デフォルトの名無しさん (ワッチョイ c201-j9UZ)
2019/04/07(日) 20:15:40.25ID:AJMxYZfA0 >>299 何でイベントのclosedでは駄目かというと、閉じた瞬間の情報が欲しい訳ではないからです。
窓閉じてしばらくして閉じたかどうか知りたいってことなので。なんでそんなこと知りたいんだよ(怒)
って言われても別にいいだろとしか。c#はイベントで処理するからって考えの人にあれこれ
言う義務は俺には無いよ。
窓閉じてしばらくして閉じたかどうか知りたいってことなので。なんでそんなこと知りたいんだよ(怒)
って言われても別にいいだろとしか。c#はイベントで処理するからって考えの人にあれこれ
言う義務は俺には無いよ。
301デフォルトの名無しさん (アウアウウー Sac5-dKzD)
2019/04/07(日) 20:16:16.95ID:QS/EO+8da >>298
初心者様ってすごいね
ちゃんとした回答が欲しいなら質問をちゃんと書いてね
https://teratail.com/help/question-tips#questionTips3
ここは5chだから多少は違いがあるけど「正しく伝わる質問の仕方」は同じだよ
初心者様ってすごいね
ちゃんとした回答が欲しいなら質問をちゃんと書いてね
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:AvqFg2320304デフォルトの名無しさん (ワッチョイ c201-j9UZ)
2019/04/07(日) 20:56:30.81ID:AJMxYZfA0305デフォルトの名無しさん (ワッチョイ ee63-9Thk)
2019/04/07(日) 21:09:42.81ID:aPMrZc410 ゴミクズにレスつけてる奴も死なねえか
お前のせいで終わらんのやぞ
お前のせいで終わらんのやぞ
306デフォルトの名無しさん (アウアウウー Sac5-dKzD)
2019/04/07(日) 21:39:33.31ID:QS/EO+8da307デフォルトの名無しさん (ワッチョイ ed61-yEdN)
2019/04/07(日) 21:59:51.43ID:FnnSZHMw0308デフォルトの名無しさん (ワッチョイ a101-yJ3O)
2019/04/07(日) 22:30:58.81ID:RA8LBCNw0 オフショア開発してるけどこんな訳わからない質問ばっかで気が狂いそうになるよ
エスパー能力欲しいなぁ
エスパー能力欲しいなぁ
309デフォルトの名無しさん (ワッチョイ 8201-xk87)
2019/04/07(日) 22:31:35.27ID:AvqFg2320310デフォルトの名無しさん (ワッチョイ fe0d-AWsO)
2019/04/07(日) 23:15:27.17ID:fnPZIWU30 この議論はGCに処理してもらおう
311デフォルトの名無しさん (ワッチョイ 6252-gCYp)
2019/04/07(日) 23:52:46.05ID:h90p5IeD0312デフォルトの名無しさん (ワイエディ MM16-hWz0)
2019/04/08(月) 20:04:21.39ID:bxLyJs4eM 引数について質問させてください
ref と out の違いってなんですか?
どういうときに ref を使うのか、out を使うのか、よくわかりません
ref と out の違いってなんですか?
どういうときに ref を使うのか、out を使うのか、よくわかりません
313デフォルトの名無しさん (ワッチョイ ee7b-O+pl)
2019/04/08(月) 20:16:44.97ID:DkSPe/Rf0314デフォルトの名無しさん (アウアウウー Sac5-dKzD)
2019/04/08(月) 20:23:20.59ID:WPZzOuq3a >>312
ref引数は、呼び出し先関数で、引数を使うし設定もする場合に使う
out引数は、呼び出し先関数で、引数を設定するだけの場合に使う
この違いにより、refで渡す引数は初期化しておく必要があるけど、outで渡す引数は未初期化でも構わない
.NET Framework中にある実例としては
int.TryParse()の場合、文字列の数値を引数に設定するだけで、引数の元々の値は使わないから、out引数でいい
難しい例だがInterlocked.CompareExchange()の場合、引数の値を返すし引数に設定する必要もあるため、ref引数が必要
値型と参照型の違いも知っておいたほうがハマりにくいかも
ref引数は、呼び出し先関数で、引数を使うし設定もする場合に使う
out引数は、呼び出し先関数で、引数を設定するだけの場合に使う
この違いにより、refで渡す引数は初期化しておく必要があるけど、outで渡す引数は未初期化でも構わない
.NET Framework中にある実例としては
int.TryParse()の場合、文字列の数値を引数に設定するだけで、引数の元々の値は使わないから、out引数でいい
難しい例だがInterlocked.CompareExchange()の場合、引数の値を返すし引数に設定する必要もあるため、ref引数が必要
値型と参照型の違いも知っておいたほうがハマりにくいかも
>>314
めんどくさいので out は忘れて ref ばかり使っていますが問題ありますでしょうか!?
めんどくさいので 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
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
日本語でお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()の後で値を読めばいい
までエスパーした
デザイナーで置いたテキストボックスのインスタンス構築や、各種プロパティの設定は
実際は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
って標準入力が全部完了されたあとにまとめて文字列渡されるのって何でなの?
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#じゃどうやるんだろう?
試しに全部の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)するか
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イベントが発生しなかったからあきらめてテキストファイルにログ出力してそれ読み込むことにするわ
教えてくれてありがとう
setbufでもfflushでも何故か入力待機状態が終了するまでOutputDataReceivedイベントが発生しなかったからあきらめてテキストファイルにログ出力してそれ読み込むことにするわ
教えてくれてありがとう
329デフォルトの名無しさん (ワイエディ MM16-hWz0)
2019/04/10(水) 20:02:38.36ID:YVfMef4MM330デフォルトの名無しさん (ワッチョイ 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からデータ取得とかしていいのでしょうか?
もっと賢いやり方あります?
こんなクラスがあるとして、
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:fgu2eH2Ta332デフォルトの名無しさん (ワッチョイ 13ad-OlUL)
2019/04/12(金) 23:09:32.03ID:SGqhATO10 >>331
DIとシングルトンは全く別の概念やぞ…
DIとシングルトンは全く別の概念やぞ…
333デフォルトの名無しさん (アウアウエー Sae3-x1Th)
2019/04/12(金) 23:11:43.52ID:fgu2eH2Ta334デフォルトの名無しさん (オッペケ 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でいいよな
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な読み取り専用プロパティとして実装する約束にしておけば済む
言語レベルで単一インスタンスの強制を保証する必要が
本当にそんなにしばしばあるのかなとは個人的には思うね。
要は共有方法を明確にしておけば十分じゃないかと。
そもそも共有されるオブジェクトを各々が勝手に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もシングルトンの一形態という記述は見たことが有る
ただ、DIもシングルトンの一形態という記述は見たことが有る
345デフォルトの名無しさん (ワッチョイ a984-xQPP)
2019/04/13(土) 08:39:55.79ID:Gb+AenIc0 以前に書いたプログラムを元に加筆修正して別のプログラムを作った時
フォルダもソリューションも別名で保存したいのですが
VisualStudioはそういう保存はできないのでしょうか?
今は力業であらかじめ別名フォルダにコピーしたソリューションから作り始め
ソリューション名、プロジェクト名、アセンブリ名、空間名
等を書き換えてからプログラムの修正を始めるのですが
時々何かがおかしくなってバインディングが外れたり
破綻してしまうこともあるので
何か安全に書き換える方法があるのかな?と質問しました
フォルダもソリューションも別名で保存したいのですが
VisualStudioはそういう保存はできないのでしょうか?
今は力業であらかじめ別名フォルダにコピーしたソリューションから作り始め
ソリューション名、プロジェクト名、アセンブリ名、空間名
等を書き換えてからプログラムの修正を始めるのですが
時々何かがおかしくなってバインディングが外れたり
破綻してしまうこともあるので
何か安全に書き換える方法があるのかな?と質問しました
346デフォルトの名無しさん (ドコグロ MM95-x1Th)
2019/04/13(土) 08:52:30.68ID:J/cBqpWVM >>345
いい加減git使おう
いい加減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が終わりつつあるから流入してるのか
VB.NETとJavaが終わりつつあるから流入してるのか
349デフォルトの名無しさん (ドコグロ MM95-x1Th)
2019/04/13(土) 09:55:51.57ID:J/cBqpWVM350デフォルトの名無しさん (ワッチョイ 417d-n39u)
2019/04/13(土) 09:59:00.31ID:C2d1A80t0 >>348
レベルの高い時期があったみたいな言い方だな
レベルの高い時期があったみたいな言い方だな
351デフォルトの名無しさん (ワッチョイ 1301-EjgJ)
2019/04/13(土) 10:04:10.28ID:vzJQEXVg0352デフォルトの名無しさん (ワッチョイ 8bb0-xQPP)
2019/04/13(土) 10:41:12.62ID:kUX6ubEA0353デフォルトの名無しさん (ワッチョイ 992d-U5P5)
2019/04/13(土) 10:44:39.80ID:nXQ9b0jN0 7.2で加わった、条件付きのref式って意味がわかんないんだけどさあ
これ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 もどうぞ
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:zPnWLOfMa358デフォルトの名無しさん (ワッチョイ 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:eLdyJ0cI0363デフォルトの名無しさん (ワッチョイ 2b0d-QSJy)
2019/04/14(日) 00:53:29.67ID:DOuVmEEK0 言語の価値って開発環境も含めて評価すべきじゃない?
自分は別に他の言語でもよい処理をついついc#でやっちゃうのはやっぱりIDEの強力なサポートがあってのことだわ
自分は別に他の言語でもよい処理をついついc#でやっちゃうのはやっぱりIDEの強力なサポートがあってのことだわ
364デフォルトの名無しさん (ワッチョイ 992d-U5P5)
2019/04/14(日) 08:42:45.32ID:H5M6zKH30 >>363
これはRuby先輩を呼び寄せるための撒き餌ですか?
これはRuby先輩を呼び寄せるための撒き餌ですか?
365デフォルトの名無しさん (ワッチョイ 1187-IujH)
2019/04/14(日) 08:50:41.27ID:k2b6YaL90 C#は、CとC++の系列のように外見を装っているが、実際にはVBのほうが似てる言語だろう。
CやC++に対しておこがましさを感じる。
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が〜」とか言い出すと話が発散するから、議論の対象は明確に区切って意識した方がいい。
言語の基本文法のみ良し悪しとか、標準ライブラリまで含めての評価とか、議論の対象をどこまでとすらかは文脈によるだろうし、君が開発環境まで含めた話をしたいというならそういう話題をふって話を進めればいいよ。
言語単体での話をしている時に「いやいやIDEが〜」とか言い出すと話が発散するから、議論の対象は明確に区切って意識した方がいい。
368デフォルトの名無しさん (ワッチョイ 3117-XGqV)
2019/04/14(日) 09:28:07.93ID:VqeGGHsz0 >>358
.NET 1.1 の世界から出てくるな
.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を立てたりする前に、検索して既出じゃないか確認するのを忘れずに
この辺の追加機能はパフォーマンスを求めるための機能だから
速度特化ライブラリの製作者は使うだろうけど、それ以外の開発者は使う機会少ないかも
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);
等すべてのキーが送れません。
対処法がありましたら教えてください。
(送り手は自作のソフト、受け手は市販のソフトで、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タプルとかみんな使えてる?
valueタプルとかみんな使えてる?
375デフォルトの名無しさん (ワッチョイ 8be3-XGqV)
2019/04/15(月) 22:17:38.51ID:p/g7dyR00 >>374
ようやく4.5.2が許されるようになったよ・・・
ようやく4.5.2が許されるようになったよ・・・
376デフォルトの名無しさん (アウアウエー Sae3-x1Th)
2019/04/15(月) 22:37:21.92ID:+hafi/JFa >>374
.NET Core 2.2/C# 7.3使ってるよ
.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:5XyUIsTTd379デフォルトの名無しさん (スップ 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てなんて読むんや
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へようこそ
async awaitへようこそ
384デフォルトの名無しさん (スップ Sd73-OlUL)
2019/04/16(火) 12:31:57.15ID:5XyUIsTTd >>381
だから「C#のバージョン上げるのは」って言ってんのに
だから「C#のバージョン上げるのは」って言ってんのに
385デフォルトの名無しさん (オッペケ Sr85-figT)
2019/04/16(火) 14:23:13.78ID:o1OTQxfgr とりあえずVSのバージョンだけでもあげてほしいわ
今時2008とかもう
今時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で名前変えまくった。
こんなの変数名に使うなよと思いながらVS2010で名前変えまくった。
389デフォルトの名無しさん (アウアウクー MM05-Vj1b)
2019/04/16(火) 18:54:44.72ID:csRNrKVvM フォームから自動生成したイベントハンドラの頭文字が大文字じゃねぇぞって怒られてるんだけどデフォルトでこうなの?
390デフォルトの名無しさん (ワッチョイ 13ad-OlUL)
2019/04/16(火) 19:43:25.05ID:4DXe6mce0391デフォルトの名無しさん (ワッチョイ 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/q0394デフォルトの名無しさん (ワッチョイ d901-yqpC)
2019/04/17(水) 21:12:48.03ID:QwWDImoN0395デフォルトの名無しさん (ワッチョイ 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 "クラス" って書いてあるだろうが
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も回って欲しい(); }
}
なんかいい手段ってないのかな?
雰囲気としてはこんな感じのが書きたいんだけど・・・・おらの頭じゃうまく書けんだ・・・・
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していく
foreach終わった後でRemoveしていく
412デフォルトの名無しさん (ワッチョイ 5e7b-ImJN)
2019/04/19(金) 22:04:41.49ID:4Fr35pSP0413デフォルトの名無しさん (ワッチョイ 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);
}
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;
}
});
{
try
{
・・・・・・なんか処理
return false;
}
catch
{
return true;
}
});
416デフォルトの名無しさん (ワッチョイ 92e0-JNgg)
2019/04/20(土) 00:02:36.27ID:/zNBD6gY0 リストに追加前にtry処理したらダメなん?
それができないなら俺も415のやり方が良い
それができないなら俺も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();
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:tgvbScEyM423デフォルトの名無しさん (ワッチョイ 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しても例外は発生しないし列挙の順番にも影響を与えません
foreach(var o in listOfObject){を
foreach(var o in listOfObject.ToArray()){
と配列にコピーしてから実行するのが定石です
そのループの中では既に列挙は終わっているから
listOfObjectにAddしてもRemoveしても例外は発生しないし列挙の順番にも影響を与えません
424デフォルトの名無しさん (ワッチョイ 6502-Prtq)
2019/04/20(土) 09:12:26.10ID:Q8Lkjfvy0425デフォルトの名無しさん (アウアウエー Sada-4dYu)
2019/04/20(土) 09:15:16.95ID:dmSDGLr5a >>424
いやソートアルゴリズムの殆どは特定のインデックスに対するランダムアクセスにO(N)を仮定するから配列前提だぞ
いやソートアルゴリズムの殆どは特定のインデックスに対するランダムアクセスに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:IppyQHdna428デフォルトの名無しさん (スププ 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:axr9T2Wu0434デフォルトの名無しさん (ワッチョイ 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番地みたいに
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型のソートメソッドを使っていても後々問題にならないですかね
覚える必要ないんですか…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
↑ここから先に書かれている処理よりも優れたソート処理を自分で書けるならともかく、
そうでなければおとなしく出来合いのソート処理を利用するほうが無難だと思うけど
どっちがより高速でバグが少ないと思う?
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:8e51ow7Fa450デフォルトの名無しさん (アウアウウー 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は安定ソート
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]);
}
}
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がないので、すぐに実行される
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/mIH0459デフォルトの名無しさん (スププ 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外にスレッドを返されちゃうのかしら?
使用箇所ごとに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()だけだと完了を待ってないから、実質無いのと同じ
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
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();
追加したものをそのまま削除するとうまく削除出来ず、一方のユーザコントロールが必ず画面上に残ってしまうんですが
なぜでしょうか?原因がわからず悩んでいます
どなたか教えてください
//@ひとまず空のデータを作成して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#でどれくれい違うん?
cppとc#でどれくれい違うん?
472デフォルトの名無しさん (スップ Sd12-yS2j)
2019/04/22(月) 20:52:55.67ID:doLks5OSd >>471
何するかによるし言語仕様理解せずにコーディングすればC++だろうがC#だろうが遅くはなる
早くしたけりゃどの言語だってコンパイラが吐くコード見ろになるし極論アセンブラしてろになる
シビアな演算速度求められるようなソフトじゃなきゃ気にするような速度は無い
個人的にいろいろ開発してて速度面で困ったことはない
何するかによるし言語仕様理解せずにコーディングすればC++だろうがC#だろうが遅くはなる
早くしたけりゃどの言語だってコンパイラが吐くコード見ろになるし極論アセンブラしてろになる
シビアな演算速度求められるようなソフトじゃなきゃ気にするような速度は無い
個人的にいろいろ開発してて速度面で困ったことはない
473デフォルトの名無しさん (ブーイモ MMa6-hooH)
2019/04/22(月) 21:35:41.32ID:puVU3XKCM 特定のアプリを監視して表示された文字(画像)をテキストにするアプリ作ったけど
c#だとチェックに1秒、c++とGDIのDLLだと0.01秒とかそんな感じだった
c#で作って必要ならc++にコンバートするのでいいと思う
c#だとチェックに1秒、c++とGDIのDLLだと0.01秒とかそんな感じだった
c#で作って必要ならc++にコンバートするのでいいと思う
474デフォルトの名無しさん (ブーイモ MMad-3Z9U)
2019/04/22(月) 21:59:37.22ID:a2wjQuhnM >>468
unsafe使えば
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#が不利なのは仕方ない
突き詰める必要がない部分で恩恵を受けられるんだから、処理速度以外にメリット感じないなら速い言語やればいい
言語なんて所詮道具なんだから適材適所
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#と関係なく発生するよ
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スレッドに戻ってくるのが既定だし
WinFormやWPFのGUIスレッドはメッセージループで実現してて
それらの場合はGUIスレッドでawaitすればGUIスレッドに戻ってくるのが既定だし
486デフォルトの名無しさん (オイコラミネオ MM91-8JmN)
2019/04/23(火) 12:18:02.90ID:m6tbNaeWM Pythonでカラー画像をRGBごとに分割して出力するスクリプトを書いたんだけど、
opencv使わずにC#でも出来るのかな?
C#でもnumpyみたいなの無いの?
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ですか?
numpyってrubyですか?
489デフォルトの名無しさん (ワッチョイ 7988-yS2j)
2019/04/23(火) 15:41:23.24ID:elaW7zc+0490デフォルトの名無しさん (ワッチョイ 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とかでできんもんか?
Task.WaitAnyとかでできんもんか?
492デフォルトの名無しさん (アウアウエー Sada-shJk)
2019/04/23(火) 17:58:47.89ID:xFm0RmkHa493デフォルトの名無しさん (スププ 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
メソッドの途中で行が変わると別のスレッドで実行されるとかそんな言語怖くて使えないよwww
496デフォルトの名無しさん (ブーイモ MMd5-hooH)
2019/04/23(火) 19:36:05.31ID:2vLu2U8QM お前は勘違いしてる
GUIとCUIで仕様が違ってる
GUIとCUIで仕様が違ってる
497デフォルトの名無しさん (ブーイモ MMd5-hooH)
2019/04/23(火) 19:50:14.81ID:2vLu2U8QM await/asyncは単なるTask非同期処理を簡易的に書ける糖衣構文
次にawaitの次をどのスレッドになるかはその時の状態次第
GUIではそれでは困るのでデフォルトで同じスレッドが処理をするようにしてあるだけ
次にawaitの次をどのスレッドになるかはその時の状態次第
GUIではそれでは困るのでデフォルトで同じスレッドが処理をするようにしてあるだけ
498デフォルトの名無しさん (アウアウエー Sada-shJk)
2019/04/23(火) 20:19:35.25ID:xFm0RmkHa 訳のわからん勘違いをしてるのはどっちだよ
自信満々で馬鹿じゃないマジで
自信満々で馬鹿じゃないマジで
499デフォルトの名無しさん (ワッチョイ 0d00-YIQo)
2019/04/23(火) 20:30:14.95ID:aIitEIPQ0500デフォルトの名無しさん (ワンミングク MM62-tFh+)
2019/04/23(火) 20:30:27.32ID:PlCSQgU2M deligate
501デフォルトの名無しさん (アウアウエー Sada-nHqp)
2019/04/23(火) 20:36:54.48ID:iDnak3xha502デフォルトの名無しさん (アウアウエー Sada-shJk)
2019/04/23(火) 20:41:16.72ID:xFm0RmkHa 勘違いをしているのは俺の方だった...
申し訳ないですw
申し訳ないです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:iDnak3xha507デフォルトの名無しさん (ワッチョイ 092d-RDgi)
2019/04/23(火) 22:42:29.23ID:D0U8cwP90 >>506
WebAPIサーバを作りたく、その中で扱うデータについてトランザクション処理みたいなことをしたかったんです
通信関連でAwaitが多用されている中でも、データのロックをできるだけ減らしたい、またうっかりミスしてロック外に出ないでほしいと思ったんです
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() {} するのが対策になるかもしれない
取得と解放がメソッドを跨いだりするなら面倒くさくなるけど……
それを聞いても、「特定スレッドで絶対に処理したい」が主目標にはならない気がする
「ロックに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のメンバ変数であることは分かるのですが右辺はどのメンバ変数なんでしょうか?
入門書のコードなのですが…
if (ob.volume == volume)この部分なのですが
左辺は引数で取ったobのメンバ変数であることは分かるのですが右辺はどのメンバ変数なんでしょうか?
入門書のコードなのですが…
510デフォルトの名無しさん (ワッチョイ 2d5f-KI0z)
2019/04/25(木) 23:52:47.61ID:LJHMbymK0 >>509
6行目
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:6Aa9jI4a0514デフォルトの名無しさん (ワッチョイ 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する
ご法度ではないし、むしろインスタンスを正しく構築できないなら積極的にthrowしてほしい
例えばStreamReader(String)の場合、ArgumentException系列から
FileNotFoundExceptionやDirectoryNotFoundExceptionのIOException系列までthrowする
517デフォルトの名無しさん (ドコグロ MM93-iwjh)
2019/04/27(土) 00:38:42.27ID:yEc5G7yUM 悪いとは言わないけど、最近はあまりコンストラクタで例外投げるような処理やらなくなったなあ
何故かと考えたら、async/awaitのせいだと気付いた
コンストラクタではawaitできないから、昔みたいにコンストラクタでファイル読んだりするのはほぼ無くなった
何故かと考えたら、async/awaitのせいだと気付いた
コンストラクタではawaitできないから、昔みたいにコンストラクタでファイル読んだりするのはほぼ無くなった
518デフォルトの名無しさん (アウアウエー Sa13-iwjh)
2019/04/27(土) 00:45:53.35ID:k66IsG4/a あとDIと相性が悪い
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:ni4YCIMc0522デフォルトの名無しさん (ワッチョイ 6347-jluM)
2019/04/27(土) 03:45:53.67ID:TtZ/uEZc0 その例外を全部把握しなきゃいけないというのがアホな考えなんだよ
予期できないのはExeceptionとしてまとめてキャッチして処理しとけばなんの問題もないね
予期できないのは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のドキュメントも全部はねーし
マジ厄介
でもお客の言い分もわかる気がするんだよね
流石に何が来るかわかりませんってのはどうなの?
って思う
設計書になんて書くん?
俺んとこ例外使うなら設計書に書いてない例外出しちゃうと大変なんだよ
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クラスもコンストラクタで例外投げるのに?
.NET Frameworkクラスもコンストラクタで例外投げるのに?
531デフォルトの名無しさん (アウアウエー Sa13-iwjh)
2019/04/27(土) 09:26:49.68ID:k66IsG4/a >>529
C++のその説は迷信だけど、C#では事実としてawaitができないという重大な制約があるからなあ
コンストラクタで例外を投げてはいけないわけではないが、そもそも例外を投げる可能性のあるような処理をコンストラクタでやらせることができるケースが少ないのは間違いない
C++のその説は迷信だけど、C#では事実としてawaitができないという重大な制約があるからなあ
コンストラクタで例外を投げてはいけないわけではないが、そもそも例外を投げる可能性のあるような処理をコンストラクタでやらせることができるケースが少ないのは間違いない
532531 (アウアウエー Sa13-iwjh)
2019/04/27(土) 09:33:56.80ID:k66IsG4/a もちろん、ArgumentNullExceptionのようにバグを検出してアプリを落とすことを目的とする例外は別だよ
そういうのを除けば、例外を投げうる処理ってのはだいたいIOを含んでいてawaitが必要になるケースが多い
そういうのを除けば、例外を投げうる処理ってのはだいたいIOを含んでいてawaitが必要になるケースが多い
533デフォルトの名無しさん (アウアウエー Sa13-mEZ1)
2019/04/27(土) 09:36:37.55ID:yyWoHVeQa いまだにオブジェクト倶楽部のをベースにしたC#コーディング規約なのかな
10年くらい前の時点でも悪評ぷんぷんだったのにどれだけ時代遅れなことしてるんだ
コーディング規約作ってる奴のスキルが低い/古すぎ/多言語の知識しか持ち合わせてなくて
クソな規約になってることはよくある
コンストラクタで例外吐くのが望ましくないのはC++の話であってC#ではそんなこと全然ない
例外すべて列挙しなきゃいけないのはJavaの話であってC#にもそれを持ち込むのはナンセンス
でも大抵規約のクソさ加減と規約作成者・組織の老害度は比例するんだよな
指摘しても直ることはないだろうから「これはクソなコードだ」と自覚を持ったうえで
規約通りのコードを書くしかない
10年くらい前の時点でも悪評ぷんぷんだったのにどれだけ時代遅れなことしてるんだ
コーディング規約作ってる奴のスキルが低い/古すぎ/多言語の知識しか持ち合わせてなくて
クソな規約になってることはよくある
コンストラクタで例外吐くのが望ましくないのはC++の話であってC#ではそんなこと全然ない
例外すべて列挙しなきゃいけないのはJavaの話であってC#にもそれを持ち込むのはナンセンス
でも大抵規約のクソさ加減と規約作成者・組織の老害度は比例するんだよな
指摘しても直ることはないだろうから「これはクソなコードだ」と自覚を持ったうえで
規約通りのコードを書くしかない
534デフォルトの名無しさん (ドコグロ MM93-r3uF)
2019/04/27(土) 11:46:22.17ID:V1c8eqNrM >>527
それって制御できないって言ってるんだよね?
その時はtry catchで握り潰せばいいんだけど
君はどうなればいいと思ってるの?
ある日例外が起きてアプリが止まっちゃってもそれは時代の流れでしょうがないと思ってるってこと?
それって制御できないって言ってるんだよね?
その時はtry catchで握り潰せばいいんだけど
君はどうなればいいと思ってるの?
ある日例外が起きてアプリが止まっちゃってもそれは時代の流れでしょうがないと思ってるってこと?
535デフォルトの名無しさん (スフッ Sd43-jluM)
2019/04/27(土) 12:00:49.48ID:ASguEO4td >>534
予期せぬ例外が起きたら発生箇所のスタックトレースを表示させてバグ修正に役立てるよ
客もその画面キャプチャを送ってくれる
Execeptionにはそういうデバッグに役立つ情報入ってるからマジ便利だわ
予期せぬ例外が起きたら発生箇所のスタックトレースを表示させてバグ修正に役立てるよ
客もその画面キャプチャを送ってくれる
Execeptionにはそういうデバッグに役立つ情報入ってるからマジ便利だわ
536デフォルトの名無しさん (スップ Sd03-O4pN)
2019/04/27(土) 12:01:52.85ID:reMuF7mTd >>535
客にスタックトレース見せちゃだめw
客にスタックトレース見せちゃだめ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;
}
しかし、例外を出すような責務は得てしてファクトリやリポジトリなど外部のクラスが担うことが多い傾向にある
なので正確に言うと、オブジェクトの生成という責務を分離してない汚いプログラムはダメだ、なんだけど
それが誤って拡散した結果、コンストラクタで例外を出すプログラムはダメだ、に拡大解釈されてしまったのだろう
// コレは生成責務が分離されてないからダメだ
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:rUmkpmPg0539デフォルトの名無しさん (ワッチョイ 4b63-peSw)
2019/04/27(土) 13:38:48.88ID:ibduGkrL0 C+の話は
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にする方法もあるけど、
少なくとも誰が考えても引数が不適切なら例外発生が予見できるなら
コンストラクタで例外投げて何も問題ない
もちろん(注意喚起とか)何らかの意図を持ってあえてコンストラクタではなく
ファクトリーメソッドや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+M546デフォルトの名無しさん (ワッチョイ 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:Cfig35XD0558デフォルトの名無しさん (ワッチョイ 2301-4ufv)
2019/04/28(日) 14:02:16.88ID:Cfig35XD0559デフォルトの名無しさん (ワッチョイ 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の話でドンパチ
どちらを見てるのかわからなくなってくる
よくのぞいてるVBAスレでもOn Errorの話でドンパチ
どちらを見てるのかわからなくなってくる
564デフォルトの名無しさん (ワッチョイ 2301-4ufv)
2019/04/28(日) 17:38:04.38ID:Cfig35XD0565デフォルトの名無しさん (アウアウウー 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()のようなメソッドを
呼び出してもらうほうが使う側は楽でしょうか?
コンストラクタ内でDB処理異常時に例外を吐く処理があります。
この場合コンストラクタ内では何もせず、インスタンス生成後にInit()のようなメソッドを
呼び出してもらうほうが使う側は楽でしょうか?
567デフォルトの名無しさん (アウアウエー Sa13-mEZ1)
2019/04/28(日) 18:31:50.14ID:uWFo9H7Wa そもそもC#でデストラクタに処理を書くこと自体が基本ありえないと思うんだけど・・・
リソースの解放なら(まともな構造のソースであれば)Dispose時に済ませるだろうし
デストラクタにわざわざ処理を書いて、しかもその処理が例外を引き起こすパターンって
具体的にどんなのがありうるんだ?
リソースの解放なら(まともな構造のソースであれば)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:e0sCdFMHa571デフォルトの名無しさん (ラクッペ 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
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:vQlivpSSa574デフォルトの名無しさん (スプッッ Sd03-Neyz)
2019/04/28(日) 18:56:32.95ID:lUhOqb6wd575デフォルトの名無しさん (アウアウエー Sa13-7ni7)
2019/04/28(日) 19:02:39.46ID:kMBz0MBMa576デフォルトの名無しさん (スプッッ Sd03-Neyz)
2019/04/28(日) 19:02:50.34ID:lUhOqb6wd どんなに丁寧に処理したって完全に例外を対応するなんてことは不可能
599の最後でちゃんとやれば良いokみたいに書いちゃったのが良くなかった
ちゃんとやったって無理なことはある
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でした
599じゃなくて559でした
579デフォルトの名無しさん (アウアウエー Sa13-7ni7)
2019/04/28(日) 19:10:36.56ID:kMBz0MBMa580デフォルトの名無しさん (アウアウウー Sae9-HJzg)
2019/04/28(日) 19:17:31.79ID:KKCCRPTWa 無関係だけど一応答えるよ
フェイルセーフって言うのは失敗しても安全な状態に落ち着くこと
例えば信号が壊れても青信号になるんじゃなくて赤信号になるような設計
ファイルクローズは別にフェイルセーフの概念と関係ない
tryのfinallyはフェイルセーフじゃないよ
フェイルセーフって言うのは失敗しても安全な状態に落ち着くこと
例えば信号が壊れても青信号になるんじゃなくて赤信号になるような設計
ファイルクローズは別にフェイルセーフの概念と関係ない
tryのfinallyはフェイルセーフじゃないよ
581デフォルトの名無しさん (ワッチョイ 2301-4ufv)
2019/04/28(日) 19:20:35.61ID:Cfig35XD0582デフォルトの名無しさん (ワッチョイ 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:KKCCRPTWa586デフォルトの名無しさん (アウアウエー Sa13-7ni7)
2019/04/28(日) 19:26:43.51ID:kMBz0MBMa >>580
関係あるからw
同じことをくどくど書くのは嫌いだが、デストラクタの存在理由は
コードの利用者がClose/Disposeを呼び忘れる、というヒューマンエラーに対するフェイルセーフ。
これは議論の余地はないよ
関係あるから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が必要な処理なりを書いてるのだとすれば
そのソースコードは根本的におかしい
それなら、自分の場合は
・デストラクタには「Dispose(false)」以外書かない(trycatchもしない)
・Dispose()側が例外を投げるかどうかは解放するリソース次第
・デストラクタの中に延々とリソース解放処理なりtry-catchが必要な処理なりを書いてるのだとすれば
そのソースコードは根本的におかしい
589デフォルトの名無しさん (アウアウエー Sa13-7ni7)
2019/04/28(日) 19:30:31.27ID:kMBz0MBMa >>585
だから、デストラクタ「で」積極的にClose処理をするんじゃないの。
Close処理は普通にDispose/Closeに書くに決まっているわけだが、
使用者がそれを呼び忘れても最悪GCのお片付けのタイミングで
Close処理が行われるようにするための仕組みがデストラクタ
だから、デストラクタ「で」積極的にClose処理をするんじゃないの。
Close処理は普通にDispose/Closeに書くに決まっているわけだが、
使用者がそれを呼び忘れても最悪GCのお片付けのタイミングで
Close処理が行われるようにするための仕組みがデストラクタ
590デフォルトの名無しさん (アウアウエー Sa13-mEZ1)
2019/04/28(日) 19:32:19.82ID:uWFo9H7Wa ごめんもいっこ
・IDisposableなオブジェクトをDisposeせず使用している時点で実装不備とみなしてよい
(フィールド変数だったらポカミスで解放し忘れはあるかもしれないけど、
少なくともローカル変数ならusingを意図的に使ってない時点でコーダーが悪意を持ってると判断する)
・IDisposableなオブジェクトをDisposeせず使用している時点で実装不備とみなしてよい
(フィールド変数だったらポカミスで解放し忘れはあるかもしれないけど、
少なくともローカル変数ならusingを意図的に使ってない時点でコーダーが悪意を持ってると判断する)
591デフォルトの名無しさん (アウアウウー Sae9-HJzg)
2019/04/28(日) 19:32:33.80ID:KKCCRPTWa592デフォルトの名無しさん (アウアウエー Sa13-OsmV)
2019/04/28(日) 19:35:22.92ID:JJw12cyBa >>590
DIに管理させるからusingもDisposeもしないという構成は非常に多い
DIに管理させるからusingもDisposeもしないという構成は非常に多い
593デフォルトの名無しさん (アウアウウー Sae9-HJzg)
2019/04/28(日) 19:35:29.40ID:KKCCRPTWa 自分の使ってるコードで完結してるのにデストラクタでアンマネージなどのリソースを
開放するのは間違った使い方
いくら自信たっぷりに書いてるのか知らないけど間違ってる
開放するのは間違った使い方
いくら自信たっぷりに書いてるのか知らないけど間違ってる
594デフォルトの名無しさん (アウアウエー Sa13-OsmV)
2019/04/28(日) 19:44:53.23ID:JJw12cyBa595デフォルトの名無しさん (ワッチョイ 2301-4ufv)
2019/04/28(日) 19:47:01.57ID:Cfig35XD0 >>582
そんなレスしかできないなら黙ってろよw
そんなレスしかできないなら黙ってろよw
596デフォルトの名無しさん (アウアウウー Sae9-HJzg)
2019/04/28(日) 19:50:07.37ID:KKCCRPTWa >>594
IDisposable無視して放置する人を野放しにしないためにもデストラクタは不要だと思うわ
デストラクタが呼ばれたか呼ばれないかで意図しないタイミングで不具合が出たりでなかったりするだけだろ
そんなの余計に邪魔だろ
IDisposable無視して放置する人を野放しにしないためにもデストラクタは不要だと思うわ
デストラクタが呼ばれたか呼ばれないかで意図しないタイミングで不具合が出たりでなかったりするだけだろ
そんなの余計に邪魔だろ
597デフォルトの名無しさん (アウアウエー Sa13-mEZ1)
2019/04/28(日) 19:50:40.18ID:uWFo9H7Wa さすがに自前で生成してない(解放しなくていい)オブジェクトはわざわざ解放しないよ
んーと、デストラクタを書かないといけないような処理があるならDispose(false)だけ書く、んだけど
なにか間違ったこと言ったかな
んーと、デストラクタを書かないといけないような処理があるならDispose(false)だけ書く、んだけど
なにか間違ったこと言ったかな
598デフォルトの名無しさん (ワッチョイ 2301-4ufv)
2019/04/28(日) 19:53:00.38ID:Cfig35XD0599デフォルトの名無しさん (アウアウエー Sa13-mEZ1)
2019/04/28(日) 19:54:05.58ID:uWFo9H7Wa 書く必要がないデストラクタなら書かずに済ませるというのは同意
というか普段アンマネージドリソースなんて滅多にさわらないし
まともにデストラクタを書いたのはいったい何年前だろう
というか普段アンマネージドリソースなんて滅多にさわらないし
まともにデストラクタを書いたのはいったい何年前だろう
600デフォルトの名無しさん (アウアウウー Sae9-HJzg)
2019/04/28(日) 20:00:46.55ID:KKCCRPTWa601デフォルトの名無しさん (アウアウクー MM81-K6Yl)
2019/04/28(日) 20:04:36.28ID:PHvM++pOM602デフォルトの名無しさん (アウアウエー 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を通さないとリソースにアクセスできないようにすれば解放忘れを完全に予防できる
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:kMBz0MBMa604デフォルトの名無しさん (ブーイモ MMa9-HJzg)
2019/04/28(日) 20:33:15.98ID:3t4t6vYZM605デフォルトの名無しさん (アウアウエー Sa13-7ni7)
2019/04/28(日) 20:37:42.11ID:kMBz0MBMa606デフォルトの名無しさん (ブーイモ 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したら、ついでに中身も自動でやってほしいよな・・・
コンテナdisposeしたら、ついでに中身も自動でやってほしいよな・・・
609デフォルトの名無しさん (ワッチョイ 252d-t87J)
2019/04/29(月) 12:55:34.62ID:pjV/Nimc0 横からすまんがさあ
DIにMicrosoft.Extensions.DependencyInjection使ってるんだけど、これってコンテナから生成されたオブジェクトって永遠と生き続けるの?
どうやって開放するん?
DIにMicrosoft.Extensions.DependencyInjection使ってるんだけど、これってコンテナから生成されたオブジェクトって永遠と生き続けるの?
どうやって開放するん?
610デフォルトの名無しさん (ワッチョイ 23ad-O4pN)
2019/04/29(月) 13:05:11.30ID:ehYnqzb50 >>609
Scopeでググれ
Scopeでググれ
611デフォルトの名無しさん (アウアウエー Sa13-OsmV)
2019/04/29(月) 13:39:51.85ID:NUp+Ex1Ma 基本的に生成元になったスコープをDisposeするとスコープ管理下のオブジェクトがまとめて消える
スコープはCreateScopeで再帰的に生成できる
BuildServiceProviderで作ったプロバイダーはルートのスコープに生えてるプロバイダーと考えればいい
アッドシングルトンで登録したやつは親子関係にある全てのスコープで1つしか作れずルートスコープと寿命が同期
アッドスコープドで登録したやつは各スコープ内で1つしか作れず作ったスコープと寿命が同期
アッドトランジエントで登録したやつはスコープ内で何個でも作れて作ったスコープと寿命が同期
ASP.NET Coreでは暗黙的に1つのリクエストに1つのスコープを割り当てる
訂正あったらヨロ
スコープは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コンテナに突っ込んだら突っ込んだでまた問題が増えるのかな・・・・
ただDIなしの場合にusing句で書けるようなのはDIありでも簡単にかけそうだけど、オブジェクトを扱う箇所が数箇所に分かれてるときは難しそう・・・・
ScopeをDIコンテナに突っ込んだら突っ込んだでまた問題が増えるのかな・・・・
613デフォルトの名無しさん (ワッチョイ 8dda-KxX0)
2019/04/30(火) 20:23:22.69ID:IHLGrYrL0 System.Globalization.JapaneseCalendarでeraを取得しているんだけど
Rが入ってこない・・・
Windows10でWindowsUpdateも最新なんだけど、何で入ってこないんでしょう
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以降にする必要があるらしい
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月以降だよ
正式な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
ちなみに、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で全部おんなじかと
訂正ありがと 手元にあるのが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以外も入りうる余地ってあるの?
ここに出てくるthisの部分って、this以外も入りうる余地ってあるの?
622デフォルトの名無しさん (ワッチョイ 2d5f-KI0z)
2019/05/01(水) 14:49:13.86ID:lxO04VNX0623デフォルトの名無しさん (アウアウエー 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以外が入る余地はない
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 メモ
https://www.enterprisedb.com/download-postgresql-binaries
https://www.devart.com/odbc/postgresql/
https://visualstudio.microsoft.com/ja/thank-you-downloading-visual-studio/?sku=Community&rel=16
https://www.nuget.org/packages/MySql.Data/
https://www.nuget.org/packages/Npgsql/
https://www.nuget.org/packages/dotConnect.Express.for.PostgreSQL/
https://www.nuget.org/packages/Microsoft.Office.Interop.Excel/
https://www.pgadmin.org/download/pgadmin-4-windows/
https://dev.mysql.com/downloads/
https://www.enterprisedb.com/download-postgresql-binaries
https://www.devart.com/odbc/postgresql/
https://visualstudio.microsoft.com/ja/thank-you-downloading-visual-studio/?sku=Community&rel=16
https://www.nuget.org/packages/MySql.Data/
https://www.nuget.org/packages/Npgsql/
https://www.nuget.org/packages/dotConnect.Express.for.PostgreSQL/
https://www.nuget.org/packages/Microsoft.Office.Interop.Excel/
https://www.pgadmin.org/download/pgadmin-4-windows/
https://dev.mysql.com/downloads/
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:eVcW5sZJ0632デフォルトの名無しさん (ワッチョイ 9b61-oppc)
2019/05/03(金) 03:31:56.40ID:t597qxt20633デフォルトの名無しさん (アウアウエー Sa3a-3WjD)
2019/05/03(金) 12:41:41.06ID:Xwdpydd1a >>628
訳分からん解答が続いてるけど、素直に
インスタンス固有である必要があるならコンストラクタに
staticでよいなら静的コンストラクタに
書けばいいだけ。かっこ悪いとか、くだらないことに悩むのは時間の無駄。
この場合は不要だと思うけど、静的コンストラクタが実行されるのはそのクラスの
静的メンバーに初めてアクセスされたタイミングだと思ったので、その点は場合によっては注意
訳分からん解答が続いてるけど、素直に
インスタンス固有である必要があるならコンストラクタに
staticでよいなら静的コンストラクタに
書けばいいだけ。かっこ悪いとか、くだらないことに悩むのは時間の無駄。
この場合は不要だと思うけど、静的コンストラクタが実行されるのはそのクラスの
静的メンバーに初めてアクセスされたタイミングだと思ったので、その点は場合によっては注意
634デフォルトの名無しさん (アウアウエー Sa3a-kXAv)
2019/05/03(金) 12:51:40.57ID:JARezKaea635デフォルトの名無しさん (ドコグロ 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:5Dkgrzu1M638デフォルトの名無しさん (ドコグロ MM2b-jhVB)
2019/05/03(金) 13:39:56.17ID:ffSbfxo8M >>636
staticだとコンストラクタで実装を差し替えられないから単体テストの邪魔になりやすいというのは一般論としてはある
Randomを差し替える必要があるケースは極めて稀だが、上で述べたように厳密な再現性が求められるケースならありえなくもない
staticだとコンストラクタで実装を差し替えられないから単体テストの邪魔になりやすいというのは一般論としてはある
Randomを差し替える必要があるケースは極めて稀だが、上で述べたように厳密な再現性が求められるケースならありえなくもない
639デフォルトの名無しさん (アウアウエー Sa3a-kXAv)
2019/05/03(金) 13:45:36.92ID:JARezKaea640デフォルトの名無しさん (ワッチョイ f72d-/hjB)
2019/05/03(金) 13:57:48.60ID:Zy40eisO0641デフォルトの名無しさん (ドコグロ MM7a-jhVB)
2019/05/03(金) 14:05:21.52ID:N/aYDMHoM >>640
例えばガチャを作ってるとして、0-999の乱数で0-9が出たらSSRを排出する仕様なら、
0と9と10くらいを決め打ちでテストしたくなるだろ?
まあそのために乱数生成器をモックしなきゃいけないような設計には再考の余地があると思うが、状況としては普通にありえるだろう
例えばガチャを作ってるとして、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:3MJf1YjB0648デフォルトの名無しさん (ワッチョイ 8252-M0pk)
2019/05/03(金) 15:12:05.72ID:uS7vqCXY0649デフォルトの名無しさん (アウアウエー 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 を定数のままエラーが出ないように修正することは可能でしょうか。
よろしくお願いいたします。
以下のコードで、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になるようなんは定数と呼ばん
結果によってtrueやfalseになるようなんは定数と呼ばん
654デフォルトの名無しさん (アウアウエー Sa3a-3WjD)
2019/05/03(金) 17:46:27.38ID:Xwdpydd1a655デフォルトの名無しさん (アウアウエー Sa3a-3WjD)
2019/05/03(金) 17:53:37.68ID:Xwdpydd1a あ、なんか例外とか意味不明なこと書いてるけど突っ込まないでねw
656デフォルトの名無しさん (ワッチョイ 9b61-oppc)
2019/05/03(金) 18:53:11.77ID:78NC+NUs0657デフォルトの名無しさん (アウアウエー 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 が設定される。
==
何にせよ、問題はすっきり解消いたしました。
適切なアドバイスどうもありがとうございました。
レスありがとうございます。
定数のまま、というのは 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 到達できないコードが検出されました
==
実際に 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;
こういうのはぱっと見て意図が分からないと言っただけ。
むしろ「マジックナンバー」を避けるのは良い習慣ですよ
いやいやいや、俺はおたくにケチつけたわけじゃないよw
const bool y = t == (object)null;
こういうのはぱっと見て意図が分からないと言っただけ。
むしろ「マジックナンバー」を避けるのは良い習慣ですよ
661デフォルトの名無しさん (アウアウエー Sa3a-3WjD)
2019/05/03(金) 20:57:46.12ID:mscz+0vpa >>658
>string は == が定義されているもののエラーが出ないようです。
上にも書いたけど、その辺のモヤモヤはC#の言語仕様の「定数式」の箇所を見れば解消するよ。
VSのインストールフォルダに入ってる
>string は == が定義されているもののエラーが出ないようです。
上にも書いたけど、その辺のモヤモヤはC#の言語仕様の「定数式」の箇所を見れば解消するよ。
VSのインストールフォルダに入ってる
662デフォルトの名無しさん (アウアウエー Sa3a-UklA)
2019/05/03(金) 21:13:39.41ID:rGk2iQn5a ひょっとして、ES6あたりの感覚で代入onlyの変数を宣言したくてconstキーワードを使おうとしてるのかなと思ってみたり
readonlyなローカル変数みたいな構文ってC#にはまだないんだよね
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 の役割自体が正確に区別できていないような
気がしてきたので、これを機会に勉強してみようと思います。
> 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);
}
==
質問させていただいたのは、
>>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);
}
==
正しくはこちら。
==
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:3sktWiiHa670デフォルトの名無しさん (ワッチョイ 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のコレクション使うべき
スレッドセーフじゃないからlock制御を自前で持つか、System.Collections.Concurrentのコレクション使うべき
672デフォルトの名無しさん (ワッチョイ c6da-ahOC)
2019/05/04(土) 15:23:49.46ID:H40F3Pfj0 Queueの出し入れもlock必要だし、マルチスレッドはめんどいよな。
なんでConcurrentDictionaryはあるのにListは無いのか
なんで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)に値を書き込んでから最後に単一スレッドでマージするのが定番
各スレッドで別のバッファ(List)に値を書き込んでから最後に単一スレッドでマージするのが定番
676デフォルトの名無しさん (ワッチョイ 9b61-oppc)
2019/05/04(土) 17:20:59.03ID:pMssk1qR0 スレッドセーフって実はどういう動作するのかよく知らないぜ
677デフォルトの名無しさん (ワッチョイ 06f2-ahOC)
2019/05/04(土) 17:27:01.27ID:0zm1CIpf0678デフォルトの名無しさん (ワッチョイ 9b61-oppc)
2019/05/04(土) 20:18:11.93ID:pMssk1qR0 APIのマニュアルにおいて「スレッドセーフ」という言葉が用いられる場合、たいていは「複数のスレッドからアクセスされても例外を出さない、プログラムがクラッシュしない」というような意味です。
しかしプログラムの目的によっては、例外が出ないだけでは不適切です。
例えば対象が、100個のデータを管理する変数だとします。
その100個のデータに対して、1つ目から順に処理するスレッドと、50個目から変更するスレッドが同時に動いたらどうなるでしょうか? 結果は不定です。
この例では、排他処理 (C#なら lock ステートメントなど) と呼ばれる処置が必要になります。
ってググって出たサイトで拾った
しかしプログラムの目的によっては、例外が出ないだけでは不適切です。
例えば対象が、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];
略
}
みたいなプログラムを組んだとき
どっかでいきなり要素をゼロにされて死ぬってことは
スレッドセーフだろうがどうだろうが可能性はあるってことだよね
ってことを考えるとスレッドセーフである意味ってあんまりなくて
排他処理は絶対実装しないと駄目だよね?ってこと?
誰か違うと言ってくれ
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が違う場合があり計算結果が期待したものにならないかもしれない
スレッドセーフはこういう場合でもちゃんと計算される仕組みを持つ
あるオブジェクトがプロパティ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が楽
その処理は要素数チェックと要素アクセスが分かれているから、間に他スレッドからの処理が割り込み得る
System.Collections.Concurrent系のコレクションは、
例えば「要素があるなら取得」のようなまとまった処理がatomicになっているので、他スレッドからの割り込まれない(=スレッドセーフ)
どっかのスレッドで詰めて、別のスレッドでループ処理、がやりたいのならBlockingCollectionが楽
683デフォルトの名無しさん (ドコグロ MM7a-jhVB)
2019/05/04(土) 21:27:48.58ID:qIB0qWQDM684デフォルトの名無しさん (ワッチョイ e22f-GsKc)
2019/05/04(土) 22:09:10.98ID:56LrGuhB0 非同期処理は複数のスレッドが同じデータを弄ろうとすることによる不整合は起きないけど
コールスタックは複数になるから
同じデータに触ると訳ワカメになる事があった
コールスタックは複数になるから
同じデータに触ると訳ワカメになる事があった
685デフォルトの名無しさん (ワッチョイ 9b61-oppc)
2019/05/04(土) 23:16:04.81ID:pMssk1qR0 (||゚Д゚)ヒィィィ!(゚Д゚||)
じゃあ>>679みてーな処理を書いたら
スレッドセーフなんて関係なく
バグるんだね
こぇえええええ
じゃなくて終わったわ
今まで組んだもんでテキトーにやった箇所全部終わってる気がする
じゃあ>>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万回実行しても、その時にはバグらないものなんだよ。
何回バグらないで実行すれば、正しいと認めるのか、と問われても困る
ほとんどは正常に動くから、質が悪い。
必ず、バグらないだろ
それで喧嘩になる事も多い。
マルチスレッドは、ベテランでもバグるからやめろと言っても、
ほら、バグらないでしょ? と、突っかかってくる
その時には、バグらないと言うと、
千回実行しても、バグらないでしょ? と、突っかかってくる。
でも、その時にはバグらない
バグる立証をするのが難しい
だから、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:uudMW5nw0698デフォルトの名無しさん (ワッチョイ 1242-ahOC)
2019/05/05(日) 13:01:26.26ID:EeTrV1LT0699デフォルトの名無しさん (ドコグロ 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ブロックは最初の一回を書くときは楽かもしれんがだんだん難しくなるぞ
そのコレクションを使う全てのプログラマが並列性を意識して正確に排他制御をコーディングしなければならない
これは実用的なシステムの規模になるとかなり大きな負担になる
だからさ
そんな不安定なロジックを書かなくても良いようにちゃんと設計するのが並列処理の王道なんだよ
lockブロックは最初の一回を書くときは楽かもしれんがだんだん難しくなるぞ
そのコレクションを使う全てのプログラマが並列性を意識して正確に排他制御をコーディングしなければならない
これは実用的なシステムの規模になるとかなり大きな負担になる
702デフォルトの名無しさん (アウアウエー Sa3a-kXAv)
2019/05/05(日) 14:02:39.93ID:IBoHsNppa そもそもロックって論外なんだわ
世の中の並列処理の目的ってのはほぼ2種類に分類されるんだよ
@インフラストラクチャ処理中にCPUを待たせたくない
A消費コア数を増やして暇なCPUを働かせたい
よーするにCPUを無駄にしたくないわけ
でもロックしちゃうと問答無用でCPUが何もせずに止まっちゃう
ロックすると並列処理をする目的そのものに反してしまう
なのでロックは基本使わず最後の手段ってわけ
この辺りは(やや古い本だが)Microsoft Pressのプログラミング.NET Franework第4版やEffectiveシリーズでも解説されてることだね
どちらも良書なので脱初心者を目指しているだろう君達は是非とも読むべきだ
世の中の並列処理の目的ってのはほぼ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とか見ててもやばい奴だらけだ
Qiitaとか見ててもやばい奴だらけだ
706デフォルトの名無しさん (アウアウエー Sa3a-kXAv)
2019/05/05(日) 18:04:40.39ID:IBoHsNppa707デフォルトの名無しさん (ワッチョイ f72d-/hjB)
2019/05/05(日) 18:09:44.07ID:1Pm7tIcB0 そもそも、世のサンプルプログラムの多くが欠陥品なのが諸悪の根幹なのかもな
劣化コピーしちゃうQiita屋とかコピペプログラマが全部危険なコードを書いてしまう
劣化コピーしちゃうQiita屋とかコピペプログラマが全部危険なコードを書いてしまう
708デフォルトの名無しさん (ブーイモ MM93-R0y6)
2019/05/05(日) 18:19:48.84ID:Q2loWuJOM 一番パフォーマンスの良いMutexを使ってる人がどれだけいるやら
709デフォルトの名無しさん (アウアウエー Sa3a-kXAv)
2019/05/05(日) 18:23:53.97ID:IBoHsNppa710デフォルトの名無しさん (ブーイモ 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よりもっと遅いんだよ
その代わりプロセスを超えて待機処理を実装できるというものだ
よーするにlockよりもっと遅いんだよ
713デフォルトの名無しさん (ブーイモ MM93-R0y6)
2019/05/05(日) 18:34:49.31ID:Q2loWuJOM714デフォルトの名無しさん (アウアウエー Sa3a-kXAv)
2019/05/05(日) 18:37:30.50ID:IBoHsNppa715デフォルトの名無しさん (ブーイモ 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:IBoHsNppa724デフォルトの名無しさん (ブーイモ 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:Q2loWuJOM728デフォルトの名無しさん (アウアウエー Sa3a-kXAv)
2019/05/05(日) 19:00:35.89ID:IBoHsNppa729デフォルトの名無しさん (ブーイモ MM93-R0y6)
2019/05/05(日) 19:00:46.75ID:Q2loWuJOM どう見ても間違っている内容で煽られると人はどう思うのか
どう考えても仕組み上Mutexのほうが遅い
どう考えても仕組み上Mutexのほうが遅い
730デフォルトの名無しさん (ワッチョイ f72d-/hjB)
2019/05/05(日) 19:07:06.98ID:1Pm7tIcB0731デフォルトの名無しさん (ワッチョイ 9b61-oppc)
2019/05/05(日) 19:12:25.48ID:uudMW5nw0 >>730
だよね
ちょっと調べてるけど
普通の排他処理組んでおきたくて
lock
ReaderWriterLockSlim
UpgradeableReadLock
なんか普通の排他処理したいだけなのに
たくさん出てきちゃったぞ
これ全部使っても
ん?排他処理できてんのか?
って疑問が晴れない
この言語非同期処理の対応手薄なんだよねまだ
時期尚早として触らんことにしたw
だよね
ちょっと調べてるけど
普通の排他処理組んでおきたくて
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だってさ
測った人によると
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万プロセスも余裕!
パイプラインと同じ
関数型だから状態を持たない。
ただ、データを変換していく関数をつなげていくだけ!
だから、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より速い
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:rtkPFZMSd741デフォルトの名無しさん (ドコグロ MM2b-oppc)
2019/05/06(月) 13:02:49.51ID:4h7Vjk7HM742デフォルトの名無しさん (ワッチョイ 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
どうやってやるのそれ?
visual studio開いた時点ですでに崩れてて手動で戻すしかなさそうなんだが。
【警鐘】[改元][Windows][.NET] 「令和」対応パッチで画面が横に伸びる、文字が見切れる ― Windows Update 手動更新はちょっと待った方がいい
https://qiita.com/CodeOne/items/22004635d3c7cc533e5e
744デフォルトの名無しさん (ワッチョイ 067b-15o0)
2019/05/06(月) 21:32:21.57ID:lj/6a9HB0745デフォルトの名無しさん (ワッチョイ 4f85-ahOC)
2019/05/06(月) 21:39:51.78ID:Gi+4ls7q0746デフォルトの名無しさん (ワッチョイ 622f-0fpa)
2019/05/07(火) 00:11:46.09ID:HkLoI6gC0 >>740
令和を1文字で表すやつのために、フォントをいじったんだが、そのときに既存の文字の幅が変わったらしい
なのでまあ、令和対応のせいだと言えばそうなんじゃね
つか明日からどれだけ影響出てるか考えると鬱だわ
令和を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に取り残されることが決定したようだ
.NET Framework 終了のお知らせ
Coreへ移行できないドカタは永遠に4.xに取り残されることが決定したようだ
749デフォルトの名無しさん (ワッチョイ 9b42-ahOC)
2019/05/07(火) 08:55:31.55ID:H2EGG+st0750デフォルトの名無しさん (スップ 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ほどの変化はないんだろ?
VB6からVB.netほどの変化はないんだろ?
757デフォルトの名無しさん (ドコグロ MM2b-jhVB)
2019/05/07(火) 13:37:50.62ID:9iRY6hHtM758デフォルトの名無しさん (ワッチョイ 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作り直し
Web FormsはほぼUI作り直し
760デフォルトの名無しさん (ドコグロ MM2b-jhVB)
2019/05/07(火) 13:50:03.67ID:9iRY6hHtM あと技術的な最大の障害はWebFormsだろう
WebFormsは.NET Coreではサポートされてないし、される気配もない
既存資産の移行もさることながら、.NETドカタはWebForms頼りで標準的なWeb開発のスキルを持たない奴も多い
彼らはWebアプリケーションの開発が不可能になり、路頭に迷うことになる
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:9iRY6hHtM763デフォルトの名無しさん (ワッチョイ 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:FJj2rymy0766デフォルトの名無しさん (アウアウカー 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:25KQckNoa769デフォルトの名無しさん (ワッチョイ bffc-ESYi)
2019/05/10(金) 07:09:33.41ID:8h0VP8xa0 RPgエディタみたいなタイルマップを配置する機能を作る場合、画像を配置するフォームは何が適切でしょうか?
前にも聞いた気がするんですが、レスを忘れてしまって、、、
前にも聞いた気がするんですが、レスを忘れてしまって、、、
770デフォルトの名無しさん (ドコグロ MMdf-wbL8)
2019/05/10(金) 07:45:25.60ID:guXEw79XM モデリングソフトに決まってんじゃん
2Dでもプラグインあるからプロならモデリングソフト
個人製作ならエクセルで代用しとけ
ってスレ違うやん
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内で描画する事だな
Panelを継承したカスタムコントロールのOnPaint内で描画する事だな
773デフォルトの名無しさん (ワッチョイ bffc-ESYi)
2019/05/10(金) 12:26:08.70ID:8h0VP8xa0774デフォルトの名無しさん (ワッチョイ 577b-5AMV)
2019/05/10(金) 17:41:55.34ID:ZtjlRqB/0775デフォルトの名無しさん (ワッチョイ bffc-ESYi)
2019/05/10(金) 18:53:28.94ID:8h0VP8xa0 visual studioのhddへのアクセスは制限できますか?
激重です
SSDにしろって話ですけどね
激重です
SSDにしろって話ですけどね
776デフォルトの名無しさん (ワッチョイ bffc-ESYi)
2019/05/10(金) 19:04:05.18ID:8h0VP8xa0777デフォルトの名無しさん (ドコグロ 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)で出来るって凄くないですか?
全ての配列は循環バッファで実装すればいいと思うのですが、デメリットはあるんでしょうか?
Delete
Insert
Add
が全てO(1)で出来るって凄くないですか?
780デフォルトの名無しさん (ドコグロ MMdf-wbL8)
2019/05/11(土) 12:25:39.14ID:E3skkYkSM781デフォルトの名無しさん (ラクッペ MM9b-S7ow)
2019/05/11(土) 12:30:42.30ID:qR2J3ArJM 下手の考えなんとかつってなー
高レベルになってから言ってくれ
高レベルになってから言ってくれ
782デフォルトの名無しさん (ワッチョイ 375f-4N0r)
2019/05/11(土) 12:39:31.51ID:td9YBJ3L0783デフォルトの名無しさん (ワッチョイ b7da-XzN3)
2019/05/11(土) 12:56:33.31ID:4CcYolMU0784デフォルトの名無しさん (アウアウエー 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>で十分という話になる
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+jkhoz0786デフォルトの名無しさん (アウアウエー 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欄の文字を取得できますが
クリックではなく、キーボード入力で同様にしたいのですが、どうすればできますか?
ある数字ボタンをクリックしたとき、(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
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
だとエラーになります
何が悪いでしょうか。
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じゃね?
.\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確認すると良いよ
Environment.CurrentDirectory確認すると良いよ
794デフォルトの名無しさん (アウアウウー Sa1b-vVMj)
2019/05/11(土) 18:25:33.06ID:dxU2Wm5sa795デフォルトの名無しさん (ワッチョイ 577b-5AMV)
2019/05/11(土) 18:56:38.28ID:VR7g318H0796デフォルトの名無しさん (ワッチョイ 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)とか使って必ず絶対パスに直さないと危ないってことか
それなら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とは別のファイルのことなんですね
としても出力には何も出てこないのですか?
出てこないです
作業フォルダっていうのはform1.csとは別のファイルのことなんですね
799デフォルトの名無しさん (ワッチョイ b738-g1xP)
2019/05/12(日) 10:48:00.86ID:NzWVi3Qm0 console覗くか
traceあたりに出力しないとでは
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' が読み込まれました。モジュールがシンボルなしでビルドされました。
これで正しいのかわからないですが、なんで実行ファイルがこんな場所にあるんでしょうか。プロジェクト内にあるのかと思ってましたが
'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:M17KJIhd0802デフォルトの名無しさん (ワッチョイ b738-g1xP)
2019/05/12(日) 11:02:52.23ID:NzWVi3Qm0 謎は解けた
803デフォルトの名無しさん (ワッチョイ ff7b-t4ir)
2019/05/12(日) 11:03:02.94ID:PIRDu/CH0804デフォルトの名無しさん (ブーイモ MMbf-vVMj)
2019/05/12(日) 11:04:19.53ID:JwWGS0EoM 空のコンソールアプリ作ってそこで実行して
805デフォルトの名無しさん (ブーイモ MMbf-vVMj)
2019/05/12(日) 11:06:21.31ID:JwWGS0EoM そのgifファイルは実行ファイルが作られた場所に自動でコピーされてないので
コピーされるようにgifファイルの設定帰るしかない
コピーされるようにgifファイルの設定帰るしかない
806デフォルトの名無しさん (ワッチョイ 375f-BD3m)
2019/05/12(日) 11:08:55.17ID:M17KJIhd0807デフォルトの名無しさん (ワッチョイ 9f47-rOSl)
2019/05/12(日) 11:35:01.56ID:1UlYWsgm0808デフォルトの名無しさん (ワッチョイ 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に表示するのが目的じゃなかったのか
画像を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がコピーされるようになる
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つの設定でフォルダごとまるごとコピーしてくれる
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
どうしても生の画像ファイルを使いたいならソリューションエクスプローラーからプロジェクトに追加して
プロパティウィンドウの「出力ディレクトリにコピー」の値を「常にコピーする」にすれば
ビルトすると自動的に実行ファイルと同じディレクトリにコピーされるようになる。
ディレクトリの階層を作りたいならソリューションエクスプローラ上で階層を作れば
それがそのまま反映されてコピーされる。
実行ファイルのディレクトリはこれで
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などと結合して絶対パスにしてから渡したほうがいい
EXEのショートカット経由で起動する場合は任意のカレントディレクトリ位置に出来るし
他プロセスからWorkingDirectory設定無しで起動される場合も考えたりすると
プログラム中で内部的に相対パスを保持するのは構わないけど
IO系APIを呼び出す時は、AppDomain.BaseDirectoryなどと結合して絶対パスにしてから渡したほうがいい
819デフォルトの名無しさん (ワッチョイ bffc-ESYi)
2019/05/12(日) 16:17:07.77ID:zQc98Y8H0 なるほど
自分で絶対パスを1つ決めて、そこを起点にすると
自分で絶対パスを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で管理する
だけど今の君のレベルではそんなのは必要ない
今の君のレベルで書いたコードなんて一ヶ月後にはゴミであり、大切に保存する価値などない
一ヶ月後のレベルの上がった君から見ればゴミだという意味であり、決して悪い意味じゃないから勘違いするなよ
一般的にはGitを使ってGitHubで管理する
だけど今の君のレベルではそんなのは必要ない
今の君のレベルで書いたコードなんて一ヶ月後にはゴミであり、大切に保存する価値などない
一ヶ月後のレベルの上がった君から見ればゴミだという意味であり、決して悪い意味じゃないから勘違いするなよ
823デフォルトの名無しさん (ワッチョイ bffc-ESYi)
2019/05/12(日) 17:25:13.38ID:zQc98Y8H0 自分の環境の場合、プロジェクトフォルダ\bin\debug\hoge.exe
という場所に実行ファイルが作られるようです
Cフォルダの直下あたりに作られるという説明がされちえますが、何か間違ってますかね
//カレントディレクトリの取得
MessageBox.Show(System.IO.Directory.GetCurrentDirectory());
場所ってのは自動的に決まる感じですか
という場所に実行ファイルが作られるようです
Cフォルダの直下あたりに作られるという説明がされちえますが、何か間違ってますかね
//カレントディレクトリの取得
MessageBox.Show(System.IO.Directory.GetCurrentDirectory());
場所ってのは自動的に決まる感じですか
824デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/12(日) 18:06:37.88ID:hmzYcUWua825デフォルトの名無しさん (スププ Sdbf-rOSl)
2019/05/12(日) 18:42:19.48ID:Mxa5Iz6jd >>822
gitサーバーはいろいろ使われてるのにGitHubが一般的は言いすぎだろw
gitサーバーはいろいろ使われてるのにGitHubが一般的は言いすぎだろw
826デフォルトの名無しさん (ブーイモ MMbf-vVMj)
2019/05/12(日) 18:49:55.29ID:JwWGS0EoM この人はソースをテキストエディタに保存していると言ってるから
iOS使いなんだろうなと思う
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ってなんかしっくりこないんですよね……
マイクロソフトのサンプルとか見ても例えば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はどこから出てきたの?ってことならまずはラムダ式からじゃないかな
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には拡張メソッドを使う
> 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プロパティには何も記述がないのですが・・
独習C#のコードなんですが170行目のshapes[i].Nameは何故実行出来てるのでしょうか?
Nameプロパティには何も記述がないのですが・・
835デフォルトの名無しさん (アウアウエー Sadf-nP+x)
2019/05/13(月) 08:25:11.57ID:mnyzhKg9a836デフォルトの名無しさん (ワッチョイ 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"がセットされる。
それを学ぶのがその章の目的じゃないの?
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:W1wujo120838デフォルトの名無しさん (ワッチョイ 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#からアクセスできない名前にコンパイルされる)
は
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/L0840デフォルトの名無しさん (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とは全くの別物と考えて頭からっぽにして勉強しなおしたほうがよさそうですね
>>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はないです
重くなる原因は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 の型によらずうまくいったのですが、
値の変換をするだけなのに文字列を経由するのはすごく無駄なことをしているような気がします。
よろしくお願いいたします。
その値を 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);
}
コードでコントロールを追加したいのですが、ボタンは追加されませんでした
エラーでも出てくれればいいんですが、エラーは出ません
エラーは出ないけど、思い通りに動かない場合、何をヒントにしたらいいでしょうか
{
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に対して
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("呼び出されてるよ"); を追加してみて、
メッセージボックスが表示されるかどうかを確認されてみてはいかがでしょうか。
そのコードをコピペして試してみたら私の方では問題なく表示されました。
そちらでうまくいかない原因は
・Form1_Load が呼び出されていない
・追加したボタンの上に別のコントロールが重なってしまっている
あたりではないでしょうか。
とりあえず Form1_Load が呼び出されているかどうかを確認するために
Form1_Load の最後に
MessageBox.Show("呼び出されてるよ"); を追加してみて、
メッセージボックスが表示されるかどうかを確認されてみてはいかがでしょうか。
848デフォルトの名無しさん (ワッチョイ bffc-ESYi)
2019/05/13(月) 16:15:55.94ID:d2gOVbtC0849デフォルトの名無しさん (ワッチョイ bffc-ESYi)
2019/05/13(月) 16:16:41.14ID:d2gOVbtC0850デフォルトの名無しさん (ワッチョイ 9f40-BD3m)
2019/05/13(月) 16:23:36.93ID:UKQBojaO0851デフォルトの名無しさん (ワッチョイ 7f2d-vM1y)
2019/05/13(月) 16:31:17.78ID:fb9Hu3lu0 ついでに聞きたいんだけど、このボタンの描画ってUIスレッドで実行されることは保証されてるの?
852デフォルトの名無しさん (ワッチョイ 7f7c-lLD7)
2019/05/13(月) 16:34:35.11ID:VAfV6Qs50853デフォルトの名無しさん (ワッチョイ 9f40-BD3m)
2019/05/13(月) 16:51:55.46ID:UKQBojaO0854デフォルトの名無しさん (ワッチョイ 9fad-vM1y)
2019/05/13(月) 17:46:32.42ID:W1wujo120855デフォルトの名無しさん (アウウィフ FF1b-8Yy7)
2019/05/13(月) 18:45:40.09ID:cAHvDA7yF PCからのサウンド出力をイヤホンが刺さっている刺さっていないに関わらず、内部スピーカーかイヤホンか選択して出すにはどうしたらいいでしょう
NAudioを使っていろいろ試してるんですがうまくいきません
OS Windows10
サウンドデバイスがSpeakers/Headphones Realtek
だとサウンドデバイスがスピーカーとヘッドホンに分かれていませんが、これだと無理なのでしょうか
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関数が先なんですが、どう使い分けるんでしょうか?
{
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:zDycstDZa859デフォルトの名無しさん (スッップ 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:jADcqpCya862デフォルトの名無しさん (ワッチョイ 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
コンストラクタはクラスで必ずはじめに実行されるもの
イベントメソッドと分けて考えないと
その機器のドライバに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:ZJ4TG7EAa865デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/13(月) 22:32:05.56ID:jADcqpCya866デフォルトの名無しさん (ワッチョイ 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
いや昔やったこと有るからできるんだが、昔過ぎてやり方思い出せんわ
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:lwKqLD9e0868デフォルトの名無しさん (アウアウエー 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
その辺テレビとかと何も違わないよ
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
ジャックにプラグ刺されてるか判定してるだけ。
お前はどんなラジカセで書き込みしてるんだ?
テレビでも最近のはそんなジャック使ってないわw
ジャックにプラグ刺されてるか判定してるだけ。
お前はどんなラジカセで書き込みしてるんだ?
870デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/13(月) 23:08:05.97ID:jADcqpCya871デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)
2019/05/13(月) 23:16:14.24ID:lwKqLD9e0 >>870
WindowsだとUSB経由とかS/PDIDとか有るし、そこに必ずSPが繋がっているとも限らないから
音声の切り替えはソフトでやっているのよ
イヤフォンの切り替え機能って俺の記憶だとWindows10 が最初だよ
WindowsだとUSB経由とかS/PDIDとか有るし、そこに必ずSPが繋がっているとも限らないから
音声の切り替えはソフトでやっているのよ
イヤフォンの切り替え機能って俺の記憶だとWindows10 が最初だよ
872デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)
2019/05/13(月) 23:26:37.35ID:lwKqLD9e0 >>870
あと、Windowsの機能で切り替えるのは標準の出力先だけだが、当然APIで標準以外の出力先に音声流すことも可能だ
あと、Windowsの機能で切り替えるのは標準の出力先だけだが、当然APIで標準以外の出力先に音声流すことも可能だ
873デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/13(月) 23:28:52.35ID:jADcqpCya >>871
それはオーディオデバイスが複数ある時にどれを有効にするかって話と違うの?
あと、高級品のサウンドカードだと複数系統の出力があってそれぞれボリュームコントロールが
ついていたりするかもしれないが、そういうの使ってるならこんな質問してないと思うよ。
普通に考えてオンボードのサウンドしかついてない普通のPC前提の質問じゃないの?
それはオーディオデバイスが複数ある時にどれを有効にするかって話と違うの?
あと、高級品のサウンドカードだと複数系統の出力があってそれぞれボリュームコントロールが
ついていたりするかもしれないが、そういうの使ってるならこんな質問してないと思うよ。
普通に考えてオンボードのサウンドしかついてない普通の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:lwKqLD9e0876デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/13(月) 23:38:00.03ID:jADcqpCya >>875
USB接続のオーディオデバイスを使ったら
M/Bのヘッドホンからはそもそも音が出ないと思うんだけどね普通は
複数のオーディオデバイスを同時に有効にして同じ音を出す、
なんて芸当できるんだっけ?
USB接続のオーディオデバイスを使ったら
M/Bのヘッドホンからはそもそも音が出ないと思うんだけどね普通は
複数のオーディオデバイスを同時に有効にして同じ音を出す、
なんて芸当できるんだっけ?
877デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/13(月) 23:40:11.66ID:jADcqpCya 光出力が付いてる場合は排他にできるわけないね確かに。
でも質問者がそういう環境ならこんな質問してないわな
でも質問者がそういう環境ならこんな質問してないわな
878デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)
2019/05/13(月) 23:41:57.51ID:lwKqLD9e0879デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)
2019/05/13(月) 23:43:53.50ID:lwKqLD9e0880デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/13(月) 23:51:07.37ID:jADcqpCya >>878
いやちょっと何を言ってるのか分からないんだけど、
ハードウェアがそうなってなきゃソフトがいくら頑張っても手も足も出ないのよ
質問者の環境はSP出力とヘッドフォン出力が排他的になってる環境で、
その切り替えは普通はメカ接点で物理的に行われるものだから、ソフトじゃどうしようもないよ
いやちょっと何を言ってるのか分からないんだけど、
ハードウェアがそうなってなきゃソフトがいくら頑張っても手も足も出ないのよ
質問者の環境はSP出力とヘッドフォン出力が排他的になってる環境で、
その切り替えは普通はメカ接点で物理的に行われるものだから、ソフトじゃどうしようもないよ
881デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)
2019/05/13(月) 23:55:36.69ID:lwKqLD9e0 >>880
少なくとも今はHDMI経由でテレビから音声流す機能は標準搭載されているから
年代物のパソコンを除けばデジタル音声出力機能は標準搭載だよ
それをどうやってイヤフォンと物理的に切り替えるのか考えたら無理だと判るでしょ
Windows10から自動切り替えはできるようになっているけど、当然ソフトで制御しているし
それをVista以降はAPIとしてプログラマーが簡単に触れるようになっている
少なくとも今はHDMI経由でテレビから音声流す機能は標準搭載されているから
年代物のパソコンを除けばデジタル音声出力機能は標準搭載だよ
それをどうやってイヤフォンと物理的に切り替えるのか考えたら無理だと判るでしょ
Windows10から自動切り替えはできるようになっているけど、当然ソフトで制御しているし
それをVista以降はAPIとしてプログラマーが簡単に触れるようになっている
882デフォルトの名無しさん (アウアウエー Sadf-4N0r)
2019/05/13(月) 23:55:59.16ID:ec7a7a6ia いやちょっと何を言ってるのか分からないんだけど、
メカ接点で物理的に行われるが、
SP出力とヘッドフォン出力が排他的になってるのは今時はソフトの設定でしょ?
メカ接点で物理的に行われるが、
SP出力とヘッドフォン出力が排他的になってるのは今時はソフトの設定でしょ?
883デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/13(月) 23:58:20.52ID:jADcqpCya884デフォルトの名無しさん (アウアウエー 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から全てソフトから見えるようになって、ソフトごとにどの出力から出すなどの指定ができるようになった
同じパソコンでイヤフォンとスピーカーから違う曲を流すことさえやろうと思えばできるんだよ
サウンドミキサーってのがWindows95には既に付いていて、それで音声の切り替えとかマスターボリュームを制御していたから
XPまでのソフトでは大本の切り替えとか不可能だった
しかしVISTAから全てソフトから見えるようになって、ソフトごとにどの出力から出すなどの指定ができるようになった
同じパソコンでイヤフォンとスピーカーから違う曲を流すことさえやろうと思えばできるんだよ
886デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)
2019/05/14(火) 00:06:27.49ID:vkfPDW5o0887デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/14(火) 00:14:28.54ID:94a7CpYNa >>885
えーっとですねえ、だからそんな芸当はHWが対応してなきゃできないんだってw
標準的なPCのオンボードのオーディオデバイスはオーディオ出力が一つしかないので、
そんな芸当は逆立ちしても不可能ですw
物理的な出力端子の数 = オーディオ出力の数
ではないのよ。
えーっとですねえ、だからそんな芸当は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つかって地道に作ることもできるよ
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ぐらいは付いている
Windows10なら右下のスピーカーマーク押して「サウンド」ってのを選択すると出てくるダイアログで
「再生」ってタブを押せば、そのパソコンで使える音声出力先が出てくるが
出力が1つしか無いなんて化石のようなパソコンは見たことないわ
最低限スピーカーとイヤフォンとHDMIぐらいは付いている
891デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/14(火) 00:22:45.62ID:94a7CpYNa892デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/14(火) 00:25:02.63ID:94a7CpYNa >>890
だから何度も同じことを言わせないで。
既定のオーディオデバイスは一つしか選択できない
だからHDMIのモニターから音を出すと普通は同じ音をM/Bのヘッドホン端子から
出力することはできないの
だから何度も同じことを言わせないで。
既定のオーディオデバイスは一つしか選択できない
だからHDMIのモニターから音を出すと普通は同じ音をM/Bのヘッドホン端子から
出力することはできないの
893デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)
2019/05/14(火) 00:25:05.36ID:vkfPDW5o0894デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)
2019/05/14(火) 00:26:26.04ID:vkfPDW5o0895デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/14(火) 00:27:34.01ID:94a7CpYNa896デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/14(火) 00:29:20.12ID:94a7CpYNa >>894
ソフトで切り替える?
何を言ってるのか分からないよ。
単純な質問だ。
君のPCではHDMIのモニタを既定のサウンドデバイスに選択している時に、
同じ音をM/Bのヘッドフォン端子からも聞くことができるのかい?
できないってw
今まで知らなかったのか
ソフトで切り替える?
何を言ってるのか分からないよ。
単純な質問だ。
君の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);
}
コンボボックスで指定した出力先に音声を切り替えているだろ
頭弱いねぇ
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:94a7CpYNa900デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)
2019/05/14(火) 00:33:11.08ID:vkfPDW5o0901デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/14(火) 00:34:46.05ID:94a7CpYNa もうボケ老人の繰り言だけど、だから普通のPCのオーディオ出力端子っていうのは
ヘッドホンとライン出力と2系統あるように見えるけど、実態は1つなんだよw
2つの別々のADCに繋がってるわけじゃないの。同じものをアナログ的に分配してるだけなの
ヘッドホンとライン出力と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:vkfPDW5o0904デフォルトの名無しさん (ワッチョイ 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で物理的に切り替えてるので不可能です
もうダメだなこの人。
だから何度も言うけど、それはHWが対応してないとできないのよ。
何度も言うけど、普通のPCのスピーカーとヘッドホン端子は同一のオーディオ出力に繋がってるの。
別々のオーディオ出力に繋がってるんじゃないの。わかる?
次いでいうと、これも何度も書いてるが、それ質問者の質問と全然関係ないの。
質問者さんの質問はスピーカーとヘッドホンが排他的に切り替わるのが気に入らないから
ソフトで何とかできないか、だから。
何度もいうけど、普通のPCではHWで物理的に切り替えてるので不可能です
907デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)
2019/05/14(火) 00:47:57.18ID:vkfPDW5o0 >>906
パソコンにHDMIは最低限付いているから、音声出力が1系統しか無いパソコンなど滅多にお目にかかれません
しかもUSBとかBluetoothとか音声を出す場所はいくらでもあるんだから、最低限ソフトでオフに出来ないと問題になる
つか1系統でイヤフォンとスピーカーが物理的に切り替わるだけしか出来ないパソコンって存在するのか?
例えば何ていうパソコンのことか具体的に名前出してくれ
パソコンに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:94a7CpYNa910デフォルトの名無しさん (ワッチョイ 9f42-y0Vo)
2019/05/14(火) 00:58:48.14ID:vkfPDW5o0 >>909
イヤフォンつなげたままスピーカーから音声を流すAPIは存在するってことね
SPとHPが共有だったとしても、他に出力する先は色々有る
何故物理的に不可能だと言い切っちまうの?APIが存在するのにさ
イヤフォンつなげたままスピーカーから音声を流すAPIは存在するってことね
SPとHPが共有だったとしても、他に出力する先は色々有る
何故物理的に不可能だと言い切っちまうの?APIが存在するのにさ
911デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/14(火) 01:06:05.42ID:94a7CpYNa912デフォルトの名無しさん (アウアウエー 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:es4OQUhe0917デフォルトの名無しさん (ワッチョイ bf1c-Fjsy)
2019/05/14(火) 07:23:05.19ID:es4OQUhe0918デフォルトの名無しさん (アウアウエー Sadf-MyDy)
2019/05/14(火) 12:22:39.22ID:HKF8AKPGa >>916
なってないよ。
そういや思い出したけど、大昔のテレビはイヤホンジャックが2つあったんだよな
で一つはSPの音を消さない仕様になっていた
普通に考えてその方が単純明快で親切だ
ヘッドをンを差し込んでも音を消さないためには、何とかボタン押して設定画面出して
この項目のアレを....
なんてまどろっこしいしヲタしか使えないしソフトもハードもコストがかかる
>>917
何か根本的に勘違いしてるんじゃないの?
それは同一のオーディオデバイスの複数の音源のボリュームを調整するんだよ。
複数のオーディオデバイスの音量を調整するんじゃないの。わかる?
他の人も書いてたと思うけど、ウィンドウズは複数のオーディオデバイスを持てるが、
既定のデバイスに設定できるのは一つだけだ(当たり前だけど)
なってないよ。
そういや思い出したけど、大昔のテレビはイヤホンジャックが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で。
そんな安物使ってるのか。
普通はジャックの状態で選択してるだけで、物理的に切断はよほどローテクな機械しかやらんよ。
スマホにイヤホン刺してもスピーカーからも音鳴るっしょ。
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出力のことだろ?
それイヤホンジャックじゃなくて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の大半はこういうタイプじゃないと思うけど
TVはどうだか知らんけど、なるほどPCではソフトでヘッドフォン接続を検出して
SP出力を制御してるタイプもあるんだな。
これは素直に知らなかった。
自作用M/Bだとリアパネルの端子の接続をソフトで検出するタイプは昔から結構あったけど。
質問した人のPCがこういうタイプならドライバのユーティリティーで設定変えたら解決するね。
ノート含めメーカー製のPCの大半はこういうタイプじゃないと思うけど
923デフォルトの名無しさん (ワッチョイ bffc-ESYi)
2019/05/14(火) 18:33:42.83ID:fttRH1Ml0 wpfとwinformどちらがいいのですか?
C#で検索するとほとんどはwinform向けのコードのような気がします
大部分は同じですけども
C#で検索するとほとんどはwinform向けのコードのような気がします
大部分は同じですけども
924デフォルトの名無しさん (ワッチョイ 3702-8Yy7)
2019/05/14(火) 18:50:04.03ID:gmflVafJ0925デフォルトの名無しさん (ワッチョイ b761-wbL8)
2019/05/14(火) 18:50:39.47ID:rq13d1wo0926デフォルトの名無しさん (ワッチョイ 9f2c-Ounp)
2019/05/14(火) 18:51:24.71ID:xTv9RSlG0 >>923
どっちでもいいけどまあとっつきやすいのはWinFormじゃない
どっちでもいいけどまあとっつきやすいのはWinFormじゃない
927デフォルトの名無しさん (アウアウエー Sadf-t1OE)
2019/05/14(火) 18:56:25.88ID:zLBAV05La928デフォルトの名無しさん (ドコグロ MMdf-nP+x)
2019/05/14(火) 19:02:22.19ID:gEF4/DH4M >>923
デスクトップアプリ自体が時代遅れだから、基本的にはどちらもお勧めはできない。
しかしちょっとしたツールなんかで便利なことはあるから、覚えておいて損はないだろう。
その意味では断然WinFormsがお勧めだ。
WPFは習得コストが高く、デスクトップアプリという死んだ技術に対しては割に合わない。
デスクトップアプリ自体が時代遅れだから、基本的にはどちらもお勧めはできない。
しかしちょっとしたツールなんかで便利なことはあるから、覚えておいて損はないだろう。
その意味では断然WinFormsがお勧めだ。
WPFは習得コストが高く、デスクトップアプリという死んだ技術に対しては割に合わない。
929デフォルトの名無しさん (ワッチョイ bffc-ESYi)
2019/05/14(火) 19:04:08.39ID:fttRH1Ml0930デフォルトの名無しさん (ワッチョイ d7da-y0Vo)
2019/05/14(火) 21:07:11.88ID:0h207dTD0 横で申し訳ないのだけど、WinFormsが枯れて次に学習すべきは何がおすすめ?
とりあえず簡単な業務用アプリくらいは作ってますが(データベースと連携あり)
ASP.NETとかWebアプリに進むと、セキュリティの面でまた何かと面倒なのかなと躊躇しちゃう
とりあえず簡単な業務用アプリくらいは作ってますが(データベースと連携あり)
ASP.NETとかWebアプリに進むと、セキュリティの面でまた何かと面倒なのかなと躊躇しちゃう
931デフォルトの名無しさん (ブーイモ MMbb-S3x6)
2019/05/14(火) 21:23:53.52ID:0tHpu3UbM 時代はデータサイエンティストを求めてる
932デフォルトの名無しさん (ワッチョイ 375f-BD3m)
2019/05/14(火) 22:43:21.70ID:++GJZRWf0933デフォルトの名無しさん (ワッチョイ 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です。
資料少なめですね
コントロールに紐付ける方法がわかりません
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:VEpWlxZJ0937デフォルトの名無しさん (ワッチョイ d788-0pSk)
2019/05/15(水) 17:39:10.29ID:tK1Lgxrc0 自己解決したなら解決手法を書きましょう
winformとwpfは異なるものなので手順も異なります
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"/>だけでもいい
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の制約によるものなのかドライバの設定でなんとかなるのかを現在調査中です
ありがとうございます
引き続き色々と調べてますが未だ出来ていません
NAudioを使ってオーディオデバイスの取得をしていて、自分のイメージでは
オーディオデバイスをスピーカーとヘッドホンのそれぞれで取得して、どちらかを既定のデバイスとして設定してあげれば出来るのかな?と考えてたんですが
デバイスがSpeakers/Headphonesの一つしか取得できないのでPC側の出力状態になっているものしか制御できないのです
この辺りがHWの制約によるものなのかドライバの設定でなんとかなるのかを現在調査中です
942デフォルトの名無しさん (ワッチョイ bffc-ESYi)
2019/05/15(水) 21:08:20.12ID:VEpWlxZJ0 >>940
引数 1: は 'string' から 'System.Uri' へ変換することはできません。
new BitmapImage(url)
で指定するとこのエラーが出ますが、参考ページありますか?
引数 1: は 'string' から 'System.Uri' へ変換することはできません。
new BitmapImage(url)
で指定するとこのエラーが出ますが、参考ページありますか?
943デフォルトの名無しさん (ワッチョイ 1f2d-6GsM)
2019/05/15(水) 21:28:23.64ID:4Ta36StR0944デフォルトの名無しさん (ワッチョイ 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
関係ないこと聞くけどググれない理由でもあるの?
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/"]
たぶん、他の言語でも同じだろ
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/XXvB0952デフォルトの名無しさん (ワッチョイ e2fc-TfzP)
2019/05/16(木) 08:42:14.73ID:lb5/XXvB0 >>949
例えば、urlが文字列とご認識されないようにこういう宣言をするってことでしょうか?
例えば、urlが文字列とご認識されないようにこういう宣言をするってことでしょうか?
953デフォルトの名無しさん (ドコグロ MM36-9mjA)
2019/05/16(木) 09:09:54.35ID:Ja6m86QIM >>952
突然Rubyを持ち出すこいつはこの板の名物キチガイだから触っちゃだめ
ちなみにRubyはゆるふわ言語だからURIを受け取る引数に文字列を渡してもだいたいなんとなく動くようになっている(そして後になって予期せぬ不具合の原因になる)場合が多い
突然Rubyを持ち出すこいつはこの板の名物キチガイだから触っちゃだめ
ちなみにRubyはゆるふわ言語だからURIを受け取る引数に文字列を渡してもだいたいなんとなく動くようになっている(そして後になって予期せぬ不具合の原因になる)場合が多い
954949 (ワッチョイ ae2c-rckI)
2019/05/16(木) 09:11:37.63ID:BUJhrwgQ0 オブジェクト指向では、何らかのクラスのオブジェクトを作って、操作するのが基本
例えば、URI オブジェクトを作っておけば、
そのクラスに定義されている、便利なメソッド・プロパティなどが使える
それと、C# みたいな静的言語では、
引数・戻り値などに型が指定されていたら、その型を使わないと型エラーになる!
例えば、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サーバ立てる。
俺は微妙だと思ってるから、よく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では消滅する
今のところ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の場合整形したりしやすいってことですね
例えばurlの場合整形したりしやすいってことですね
962デフォルトの名無しさん (ワッチョイ 4063-rzGG)
2019/05/16(木) 11:05:39.44ID:MP5x1HVo0963デフォルトの名無しさん (ワッチョイ 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のリファレンスってあるんでしょうか?
調べてるんですが、情報がごっちゃな気がします
rootNode.Nodes.Add(childNode1)
のように、nodeプロパティでの追加は出来ないようです
何を使うか教えてください
あとマイクロソフトのリファレンスでwpfのリファレンスってあるんでしょうか?
調べてるんですが、情報がごっちゃな気がします
965デフォルトの名無しさん (スフッ Sd94-cyZN)
2019/05/16(木) 12:05:27.24ID:8QhWJQ3wd966デフォルトの名無しさん (ワッチョイ e2fc-TfzP)
2019/05/16(木) 12:06:43.82ID:lb5/XXvB0967デフォルトの名無しさん (ワッチョイ 4063-rzGG)
2019/05/16(木) 12:12:11.19ID:MP5x1HVo0 そもそもプロセス間通信をしようと思ったのは、websoketでデータ受信が忙しいからなんですが、マルチスレッドでも問題ないでしょうか?
968デフォルトの名無しさん (ワッチョイ f82d-Q2B8)
2019/05/16(木) 12:31:50.76ID:9YitK9mS0969デフォルトの名無しさん (ワッチョイ 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)で良いと思うけど。
それなら普通にマルチスレッド(というか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だから、それを基準にして、サブフォルダを取得するってことですか?
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
利用可能なドライブの一覧を取得するには?
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
PCのルートフォルダってのがちょっと何を言ってるのか...
システムドライブ(OSのインストールされているパーティション)(のルートディレクトリ)って意味ならこれ?
https://www.atmarkit.co.jp/fdotnet/dotnettips/190windir/windir.html
975デフォルトの名無しさん (アウアウエー Sa6a-Fe5F)
2019/05/16(木) 17:32:00.72ID:knSiwbWya あ、話題のどちて坊やだったのか...
質問スレだから質問するのは全然OKだと思うけど、
何言ってるのか他人が理解できない質問とか、少しも自分で調べた形跡が感じられない
質問とかはちょっとマナー違反だよね
質問スレだから質問するのは全然OKだと思うけど、
何言ってるのか他人が理解できない質問とか、少しも自分で調べた形跡が感じられない
質問とかはちょっとマナー違反だよね
976デフォルトの名無しさん (ワッチョイ e2fc-TfzP)
2019/05/16(木) 17:39:45.70ID:lb5/XXvB0977デフォルトの名無しさん (スフッ 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の内容で取得できる
ファイルパスもツリービューに割り当てる要素だとしてもそのドライブの情報とは関係ない
「フォルダに割り当てるパス」
言っている意味が分からない。何がしたいのか具体的に書いて
ドライブの情報は>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:mlG6Koyx0985デフォルトの名無しさん (アウアウエー Sa6a-AgTJ)
2019/05/16(木) 19:20:17.44ID:zVFyB/Pfa >>980
次スレ頼んだ
次スレ頼んだ
986デフォルトの名無しさん (ワッチョイ c461-gZI7)
2019/05/16(木) 19:29:44.17ID:s+6oZKe00987デフォルトの名無しさん (アウアウエー Sa6a-AgTJ)
2019/05/16(木) 19:35:38.53ID:zVFyB/Pfa >>986
乙
乙
988デフォルトの名無しさん (ワッチョイ e2fc-TfzP)
2019/05/16(木) 20:21:22.17ID:lb5/XXvB0989デフォルトの名無しさん (ワッチョイ e242-EL+e)
2019/05/16(木) 21:13:53.08ID:/ttOpUx30990デフォルトの名無しさん (スププ Sd94-d3Lt)
2019/05/16(木) 22:47:17.86ID:/89StDtwd991デフォルトの名無しさん (ワッチョイ 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:zp36Ii500994デフォルトの名無しさん (ワッチョイ 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
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 73日 8時間 4分 13秒
新しいスレッドを立ててください。
life time: 73日 8時間 4分 13秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 【野球】野球の未来に危機感「マイナースポーツになる」 宮本慎也氏が開催…学童大会 [尺アジ★]
- 【訃報】声優・西村知道さん死去 「SLAM DUNK」安西先生役 9月に体調不良のため一時休業 [少考さん★]
- マヨネーズにわさび、山椒、卵の黄身、ラー油、オリーブオイルを入れてよく混ぜてください
- 普通の日本人「日本の新技術で中国破滅😤!中国経済崩壊😂!終わりの始まりwwwwwwwwwww」 [441660812]
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 巨大地震 [957955821]
- ひろゆき「愛があるから人は苦しまなきゃいけないんだね」
- 【速報】高市早苗、起床 [779938112]
