19/03/07 06:35:41.12 6L3KEJfe0.net
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
スレリンク(tech板)
■前スレ
ふらっと C#,C♯,C#(初心者用) Part141
スレリンク(tech板)
■コードを貼る場合は↓を使いましょう。
URLリンク(ideone.com)
URLリンク(dotnetfiddle.net)
■情報源
URLリンク(docs.microsoft.com)
URLリンク(docs.microsoft.com)
URLリンク(docs.microsoft.com)
URLリンク(referencesource.microsoft.com)
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2:デフォルトの名無しさん
19/03/07 10:59:48.33 MaxgRiSY0.net
O2
3:デフォルトの名無しさん
19/03/07 19:36:16.76 Kf1DGo5Q0.net
乙
4:デフォルトの名無しさん
19/03/07 21:47:17.96 ljKGDnlu0.net
>>1スレたて乙
テンプレじゃないし古いけど初心者には役立ちそうなところ
・Insider.NET > .NET TIPS - @IT
URLリンク(www.atmarkit.co.jp)
・DOBON.NET .NET Tips
URLリンク(dobon.net)
5:デフォルトの名無しさん
19/03/07 23:01:13.50 O+ojsQEY0.net
C# のガイド
URLリンク(docs.microsoft.com)
Microsoft Docs
URLリンク(docs.microsoft.com)
.NET Documentation
URLリンク(docs.microsoft.com)
URLリンク(referencesource.microsoft.com)
6:デフォルトの名無しさん
19/03/07 23:01:29.86 O+ojsQEY0.net
2個あるじゃん
7:デフォルトの名無しさん
19/03/13 04:58:13.27 Z4mQGBB00.net
c#でノードエディターみたいなものはつくれますか
8:デフォルトの名無しさん
19/03/13 09:12:45.32 VDijyjbrp.net
>>7
作れますよ
9:デフォルトの名無しさん
19/03/13 11:26:25.42 82TbnNcir.net
ノードエディタって各ノードのプロパティを接続するけど、GUIはともかく「接続する」というビジュアルスクリプディングの中の動作ってどういう感じになるんだ?
コードを動的に生成してc#で実行する感じかね
10:デフォルトの名無しさん
19/03/13 11:40:26.49 Z4mQGBB00.net
ビジュアルスクリプティングというやつですね
c# formだけでは無理そうですよね
URLリンク(docs.unrealengine.com)
イベントを設定して、処理を設定するというものですが
11:デフォルトの名無しさん
19/03/13 12:13:36.73 9kZ0LY+Wa.net
この人は自分で調べようとせずに一から十まで人に聞いて
結局何も作れない人だから答えても意味がないぞ
> listviewの使い方について、超初心者向けに解説してるサイトを教えてください
> ファイラを作成しているのですが、ツリービューでPC内のフォルダを検出する方法について、
> ソフト上でファイルにアクセスして、フォルダの中身などを表示したいのですが、まず何のフォームを使えばいいんでしょうか?
> c#でスクリーンショット撮影するソフトは不可能ですか?
> 個々のサンプル通りにゲームを作成中なのですが、paintイベントハンドラってなんでしょうか
> c#のフォームで、タイルマップエディタのようなものを作りたいのですが、どのような情報を調べたらいいでしょうか
前スレから適当に拾ってきたけどこんな有様で何一つ出来ちゃいない
12:デフォルトの名無しさん
19/03/13 12:20:15.25 XeHQsN66a.net
>>11
気に入らなきゃ君が放置すりゃいいだけ
馬鹿じゃないの
13:デフォルトの名無しさん
19/03/13 12:40:23.19 VDijyjbrp.net
>>10
作れますよ
なぜ作れないと思ったのですか?
理由を述べなさい
14:デフォルトの名無しさん
19/03/13 13:58:05.51 Jw+SxIpH0.net
>>12
罵倒レスはやめてくださいってテンプレ読めないんですか?
>>10
C#で「イベントを設定して、処理を設定」は動的にも追加できる
もしくは「つないである(フラグがある)場所に対してだけ処理をする」でもできる
回答してくれた>>13にケンカ売ったんだからけじめ付けてくださいね
15:デフォルトの名無しさん
19/03/13 14:27:21.62 ril+FLd/0.net
>>14
罵倒は良くないらしいぞ
ダブルスタンダードは改めてくださいね
16:デフォルトの名無しさん
19/03/13 21:00:51.56 JdL8LuNU0.net
>>11
やりたいこととレベルがあってないんだろうな
ツリーやリストの使い方って俺もどこで覚えたのか忘れちゃった
確か入門書には書いてなかったと思った
17:デフォルトの名無しさん
19/03/16 16:15:05.71 zOgp3uDK0.net
GUI ToolKit(?) だけでも、少なくとも、
WinForm, WPF, Xamarine
があり、それに加えて .Net Core, .Net Standard などなどがある。
めちゃくちゃ分かりにくい。結局どれ使えばいいのか。
18:デフォルトの名無しさん
19/03/16 16:16:31.68 zOgp3uDK0.net
ををー。UWP(?) まであるんかい!!?
19:デフォルトの名無しさん
19/03/16 16:20:48.07 zOgp3uDK0.net
Javaの場合、native コードより遅くなっても、Swingを使っていれば、
本当にほとんど全てのPlatformで動いた。ブラウザの中ですらも。一方、
C#は、起動も起動してからも遅いし、文法やライブラリもVBと似たように
ごちゃごちゃして上に、Multiplatformですらもないようだ。
20:デフォルトの名無しさん
19/03/16 16:38:49.34 PeRiwHXRd.net
C#はマルチプラットフォームですけどね
21:デフォルトの名無しさん
19/03/16 17:24:58.69 V0FrEy2e0.net
>>17-18
AWT、Swing、JavaFX
がありそれに加えてOracleJDK、OpenJDK(Adopt/Zulu/Corretto etc.)、などなどがある。
めちゃくちゃ分かりにくい。結局どれ使えばいいのか。
ををー。SwingじゃAndroidアプリは作れないかい!!?
22:デフォルトの名無しさん
19/03/16 17:40:58.81 zOgp3uDK0.net
>>21
それは、Swing 一択で決まり。美しいし速度面も十分で、完全Multiplatform
で特に欠点が無い。それに、新しい仕様が出てくる速度もゆっくりだし。
それに比べて、C#は全く違う。どんどん仕様が出てくるのに、どれもこれも
汚くて欠点を含む。新しいのが出てきたら、とんでもない欠点を含む。
問題ばかり。
23:デフォルトの名無しさん
19/03/16 17:56:01.73 V0FrEy2e0.net
>>22
新しい方のJavaFXがゴミ過ぎてWPFでなくWinformsが使われてるC#といっしょなんですね
24:デフォルトの名無しさん
19/03/16 19:02:41.34 zOgp3uDK0.net
>>23
でも、C#の方が混乱が大きいように感じる。
.Net 1つにしても、多種類あり、すぐに方針が変わって、誰もよく理解できてない。
ToolKit に関しては、Java だと Swing 一択で問題ないのに、C#は、誰も1つに
絞り込めないでいる。しかも、C#ではMultiplatFormは現実的には無理。
Javaは、ずっと前からMultiplatformだったのと対照的。
25:
19/03/16 19:04:54.36 cEmRGk9t0.net
>>24
>C#ではMultiplatFormは現実的には無理
なにか深刻な理由があるのでしょうか?ぜひ伺いたいところです
26:デフォルトの名無しさん
19/03/16 19:08:45.59 Nd/PIrQa0.net
>>25
キチガイに絡みなすな
27:デフォルトの名無しさん
19/03/16 19:59:22.98 lafVI2fNM.net
マイナーバージョンが一つ違っただけで大騒ぎする
WebLogicなんて無かったんや
28:デフォルトの名無しさん
19/03/16 20:07:13.34 V0FrEy2e0.net
>>24
> .Net 1つにしても、多種類あり、すぐに方針が変わって、誰もよく理解できてない。
最近もOracle JDKの有償化に伴い派生の多い代替の選択に混乱している言語があるようですね
> Java だと Swing 一択で問題ないのに
私がここでWinforms一択で問題ないと宣言することと何も変わりませんね
Sun時代はSwingへの投資をトーンダウンさせるほどJavaFX推しの流れも一時期ありましたが
Oracleに移りJavaFX ScriptからFXMLへの移行などWPFなんぞよりよほど混沌とした変遷を経ています
そしてOracle JDKから分離され公式に格落ちになったかと思われたJavaFXですが
しかし上記にある選択肢の一部で同梱は継続され何よりOpenJFXはまだまだヤル気です
29:デフォルトの名無しさん
19/03/16 20:13:04.84 zOgp3uDK0.net
>>28
そういう問題じゃないんだよ。Javaの場合、Swingなんかは、IDEなしでも
コードから簡単に記述できる設計になっていたのに対し、C#のはそうなって
ないだろ。IDEと共に使う設計になっていて。
だから、初心者はどれを使っていいか分からず迷惑極まりない状態になって
いる。複雑でプログラムをする前に挫折してしまう人もいるだろう。
MSは元々そういう設計をする会社だったけど。
30:デフォルトの名無しさん
19/03/16 20:22:24.31 YxxaJZkyM.net
それ以前にJavaをGUIアプリ作るのに使ってる人なんて「いない」
その事実についてはどう考えてるの?
31:デフォルトの名無しさん
19/03/16 20:26:52.95 j5QR1E58d.net
JavaでGUI作ったりIDE拒否したり20年くらい前からタイムスリップしてきたのかな
32:デフォルトの名無しさん
19/03/16 20:38:43.16 YxxaJZkyM.net
まあ従来のIDEについては最近はMS界隈でも否定論が主流になりつつあるけどね
IDEはコーディングとデバッグのためだけのツールでよい、
IDEにコードを自動生成させたくなるような作業があるならフレームワークの設計の方を見直すべき、
というのが今時の流れだよ
33:デフォルトの名無しさん
19/03/16 20:40:32.57 dvZvBBVu0.net
.Netじゃwindows/mac/linuxのクロスプラットフォームGUIがいつまでたっても作れないから
仕方なくjavaで書くんやで
javaが10数年前にとっくに実現してる事なんだからいい加減追いついてくれー
34:デフォルトの名無しさん
19/03/16 20:44:36.00 PNvsIlL90.net
完全敗北を認めた今ならマイクロソフトがGUI toolkit作るならクロスプラットフォームになるだろうが
winrtの登場の頃はまだmicrosoftは敗北を認めてなかったからクロスプラットフォームにならなくて残念..
35:デフォルトの名無しさん
19/03/16 20:46:13.35 fhPcOkRld.net
>>32
XAMLやらAndroidのレイアウトXMLやら手書きでも十分かけるけどIDEでイメージ確認しながら書いた方が効率よくね?
36:デフォルトの名無しさん
19/03/16 20:46:19.88 YxxaJZkyM.net
>>34
Electronがまさにそうでしょ
今や事実上MSが開発してるようなもんだ
37:デフォルトの名無しさん
19/03/16 21:00:58.03 V0FrEy2e0.net
>>29
> そういう問題じゃないんだよ
おや、急に問題がすり替わりましたね
> どんどん仕様が出てくるのに、どれもこれも
> 汚くて欠点を含む。新しいのが出てきたら、とんでもない欠点を含む。
Javaの新しくて汚らしく欠点だらけのJavaFXを忘れてらっしゃるようなので説明を追記したまでですよ
Swingで良いならWinformsで良いとも言わないのが不思議ですね
IDE?
SwingをIDE無しで問題ないというのと同程度にWinformsも問題ないですね
38:デフォルトの名無しさん
19/03/16 21:01:35.08 YxxaJZkyM.net
>>35
それは否定しないけど、完璧なGUIデザイナ作るのって大変なんだよ
WinFormsのデザイナはVBやDelphiから受け継がれた長年のノウハウの集大成だし、
WPFにいたっては10年開発しても結局ゴミのまま開発終了
今のPC向けGUIアプリの主流は言うまでもなくWebだけど、現代のWebの開発スタイルにフィットするデザイナをMSが開発し始めたとして、
それが使い物になる頃には開発スタイルはすっかり変わっていて時代遅れの廃棄物になってるわけ
従来型のIDEは技術の進化や流行に追いつけなくなってるんだよ
39:デフォルトの名無しさん
19/03/16 21:15:58.85 m10rap++a.net
多少の雑談は容認すべきと思ってるがさすがに度を越している
続きはこちらでどうぞ
ふらっと C#,C♯,C#(議論用)
スレリンク(tech板)
40:デフォルトの名無しさん
19/03/16 21:30:51.26 Nd/PIrQa0.net
>>38
開発終了したってソース教えて
41:デフォルトの名無しさん
19/03/17 02:36:23.77 k04EM+xl0.net
>>29
WPFもJavaFXも開発者しか画面デザイン出来ないのが問題になってて、デザイナーに投げられるようにコードから分離する目的で作られたのに。。。
最初から素人用の作りじゃ無い。
42:デフォルトの名無しさん
19/03/17 02:57:55.04 XTuejaeR0.net
多くの人がUIデザインのセンスが無いのに、xxML直書きが主流のせいで更に悪くなってる気はするな
C#に限ったことじゃないけどさ
43:デフォルトの名無しさん
19/03/17 14:45:31.20 nIiKRKOv0.net
>>41
企業で開発する場合ならその方が良いかも知れんが、個人開発だと、
そういう風にGUIとプログラムを全く分けてしまうのは、面倒なだけ
の事が多い。
44:デフォルトの名無しさん
19/03/17 15:01:57.71 XvGPMByna.net
>>43
君は個人開発でどういうものを作っていて具体的にどういう面倒があるの?
45:デフォルトの名無しさん
19/03/17 15:03:58.84 k04EM+xl0.net
>>43
最初から素人用の作りじゃ無いって書いてるのに、その回答は。。。
46:デフォルトの名無しさん
19/03/17 16:07:01.80 tI0+M4DZ0.net
>>45
個人開発=素人
と紐付けるのはおかしい
47:デフォルトの名無しさん
19/03/17 16:10:04.12 nIiKRKOv0.net
>>44
>具体的にどういう面倒があるの?
プログラムで論理的に配置した方が柔軟性が増すし、デザイナーを使う
場合よりも作業も短時間で済む事が多い。
48:デフォルトの名無しさん
19/03/17 16:14:27.92 XvGPMByna.net
>>47
だから具体的に
あなたは何を作っていて何の作業が短時間に済んだのですか?
49:デフォルトの名無しさん
19/03/17 16:29:36.83 nIiKRKOv0.net
MS には潰れてほしいので、MSに今後の方向性を与えるような情報葉与えられない。
50:デフォルトの名無しさん
19/03/17 16:47:04.83 tI0+M4DZ0.net
潰れて欲しいのならなんでこのスレ居るのさ
51:デフォルトの名無しさん
19/03/17 17:18:35.03 X0IS4dBaa.net
>>50
どの口がそれを言う
スレの趣旨を無視した議論に参加してる君も同類じゃないのか
議論専用のスレがあるんだからそっちでやれよ。
何でわざわざ場違いなスレでやるんだよ。頭悪すぎじゃないのか
ふらっと C#,C♯,C#(議論用)
スレリンク(tech板)
52:デフォルトの名無しさん
19/03/17 17:19:24.64 8Q3kRdi6d.net
プログラミングの需要の大多数は企業またはチーム開発だからそっちの方に使い勝手を合わせるのは当然だわな
53:デフォルトの名無しさん
19/03/17 19:27:23.84 1vkvgzPOM.net
デバッグが必要な輩が居るようだね
54:デフォルトの名無しさん
19/03/18 00:23:18.58 BUmRg9/50.net
>>49
このレスは恥ずかしい
55:デフォルトの名無しさん
19/03/18 02:32:07.37 B+bW3pwA0.net
DIとグローバル変数おじさんって何が違うのか分からなくなってきたぜ
よく考えたら大して変わんなくないかこれ?
56:デフォルトの名無しさん
19/03/18 08:13:37.93 qC5UNTtha.net
>>55
単体テストのときに差し替えるのが目的
テスト書かないんなら普通にnewすりゃいいよ
57:デフォルトの名無しさん
19/03/18 09:28:05.63 +omKGkAVM.net
よく考えたのかもしれないけど足らなかったんだな
58:デフォルトの名無しさん
19/03/18 11:32:00.82 0ez+CkRlM.net
貴方には知恵が足らないわ
何気に酷いな
59:デフォルトの名無しさん
19/03/18 22:59:36.84 7EMewmQs0.net
ASPはなにからやればいいの?
winFormsとMVCってなにがちがうん?
60:デフォルトの名無しさん
19/03/18 23:01:35.90 7EMewmQs0.net
Web Formsか
61:デフォルトの名無しさん
19/03/18 23:04:56.58 1F2QIikJa.net
>>59
全くの別物
WebFormsはWinFormsモドキ
MVCはRuby on Railsモドキ
今始めるなら、英語に抵抗がなければ最新のMVC系フレームワークであるASP.NET Core
英語ダメならオワコンRailsかPHPでもやっとけ
62:
19/03/19 21:52:22.59 45LJYysD0.net
>>61
>英語に抵抗がなければ
というのが、どのくらいのレベルなのか、には興味があります…最近は英語よりも古代語(ラピュタの黒石に刻まれているあんな感じのやつ)のほうに興味があります
ムスカの台詞「読める!読めるぞ!」を私も味わいたいと考えているのです
63:デフォルトの名無しさん
19/03/19 22:16:53.20 qnLJux/Ma.net
プログラミングに限らず技術系の文章の英語なんか普通に受験して大学入った
人間なら誰でも読めるw
英語英語言ってる人は逆にいうとその程度の事で自分を差別化できると思ってる人なんだと
思った方がいいよwww
64:デフォルトの名無しさん
19/03/19 23:39:24.63 TEpP13LQM.net
>>62
ヴォイニッチ手稿にチャレンジだ
65:デフォルトの名無しさん
19/03/19 23:42:07.90 lT8ihTqWa.net
読めなくても良いけどさ
堺筋線 -> Sakai muscle
3両目 -> 3 eyes
天下茶屋 -> World Teahouse
これくらいは変だと自分で気付けないと恥ずかしいぞ
66:デフォルトの名無しさん
19/03/22 09:11:49.13 Sg7nj/wwM.net
アップキャスト分かりやすく教えて
何言ってんのかわからん
67:デフォルトの名無しさん
19/03/22 10:52:57.55 Xx8geMH40.net
>>65
正しいじゃないか。さすが大阪。間違いを恐れてはいけない
68:デフォルトの名無しさん
19/03/22 11:40:01.20 pVVdiXqm0.net
>>66
むしろ何が分からんのか分からんのだが…
class A { }
class B : A { }
クラスAから派生したクラスBがあって
B b = new B();
A a = (A)b; // 暗黙にキャストできるので (A) は不要
B型のインスタンスをA型として扱うこと
69:デフォルトの名無しさん
19/03/22 11:45:30.76 nPC1T1eJM.net
型の集合としての包含関係が感覚的に理解できるまでにはわりと時間がかかる
継承とは元のクラスを拡張することであるという言葉に惑わされてはいけない
70:デフォルトの名無しさん
19/03/22 12:12:49.38 S3zLmlK0M.net
数値によって変数を使い分けることに関してわからないことがあるので質問させてください
【以下引用】
int型を慣習的に使用することで、他のデータ型に変換する機会を減らすこともできる。
小さい値を扱うことがわかっている場合は、int型よりもbyte型のような小さい値を格納できる型を使う方がメモリの消費量を減らすことができる。
しかし、宣言される変数の多くはスコープが狭く、メモリ上に存在する期間が短いため、メモリの消費量はあまり重要ではない。
↑
これはつまり、数値を扱う場合の変数は基本的にintを使ったほうがよく、必要があればbyteなどの変数を使ったほうがいいということですか?
それともどんな数値でも変数の使い分けをせず、intを使ったほうがいいということですか?
71:デフォルトの名無しさん
19/03/22 12:38:37.72 nPC1T1eJM.net
>>70
一般論として、ユーザーコード内で宣言した単独の変数のメモリ消費量が問題になることは「全く」「無い」
巨大な配列を必要とする場合を除けばintでよい
72:デフォルトの名無しさん
19/03/22 12:50:16.68 S3zLmlK0M.net
>>71
わかりました
親切に教えていただきありがとうございました
73:デフォルトの名無しさん
19/03/22 17:45:07.05 piAmWzDj0.net
ちょっと上で英語の話題があったついでに用語について教えてほしいんだけどさあ
Concurrency = Asynchronous processing
って理解であってるん?
74:デフォルトの名無しさん
19/03/22 17:48:21.39 nPC1T1eJM.net
>>73
間違ってる
シングルスレッドでも非同期プログラミングは必要
75:デフォルトの名無しさん
19/03/22 17:58:40.45 piAmWzDj0.net
Concurrency ∈ Asynchronous processing
こんな感じ?
76:デフォルトの名無しさん
19/03/22 18:04:58.89 nPC1T1eJM.net
>>75
間違ってる
並列処理だからといって非同期プログラミングが必要とは限らない
fork-joinなんて普通に同期処理
77:デフォルトの名無しさん
19/03/22 18:19:57.20 piAmWzDj0.net
確かにそうだわ
ただなんかしっくり頭に入らないんで、良い図かなんかないかな
78:デフォルトの名無しさん
19/03/23 05:06:26.15 RPbAWfs10.net
SOAP Webサービス(asmx)のC#からの呼び出しで質問なんだが、UserAgentってどうやって設定すればいいの?
URLリンク(www.ipentec.com)
ちなみにここの手順で実装してる
79:デフォルトの名無しさん
19/03/23 12:40:40.84 RPbAWfs10.net
soapのUserAgentの追加だけど自己解決したので書いとく
OperationContextScopeにsoapのInnerChannelを渡してOparationContext.Current.OutgoingMessagePropertiesを設定すればよかったみたい
80:デフォルトの名無しさん
19/03/23 14:20:50.44 xq0oZv2H0.net
↓こういうデータを保持するためのクラスってなんていうの?EF使わない場合DTOって言わないね?
class Hoge
{
ID { set; get; }
Name { set; get; }
Age { set; get; }
Biethday { set; get; }
}
81:デフォルトの名無しさん
19/03/23 14:37:47.12 YFI8vOIVM.net
>>80
貧血ドメインクラス
82:デフォルトの名無しさん
19/03/23 15:46:27.60 1EN9Vx8A0.net
>>80
POCO
83:デフォルトの名無しさん
19/03/23 16:59:05.27 oDoWSLunM.net
デザパタ扱ってて比較的に新しい書籍教えて
84:デフォルトの名無しさん
19/03/24 01:13:49.97 yH9zM0xm0.net
たすけて!
Parallel.Forから
Staticなプログレスバー呼びまくったのに一度も実行時エラーでなかったの
なんで?正常な流れなの・
85:デフォルトの名無しさん
19/03/24 01:15:19.62 GJ0JjoCX0.net
>>84
UIを操作できるのはUIスレッドだけ
86:デフォルトの名無しさん
19/03/24 01:16:53.70 yH9zM0xm0.net
>>85
プログレスバーはWin7のころの
タスクバーのプレグレスバーなんだよ
87:デフォルトの名無しさん
19/03/24 01:18:41.54 yH9zM0xm0.net
Nugetでこれ入れて出せるようになるやつ
Windows7APICodePack
これな
using Microsoft.WindowsAPICodePack.Taskbar;
88:デフォルトの名無しさん
19/03/24 01:19:01.98 yH9zM0xm0.net
中でなんかしてるんだろうか
89:デフォルトの名無しさん
19/03/24 16:11:44.19 SrH2ZhCU0.net
>>80
パット見、見た目が、JavaScript の JSON 形式に似てる。
90:デフォルトの名無しさん
19/03/24 16:19:26.01 C+8PS15Z0.net
それはおめめかおつむがヤバいな
91:デフォルトの名無しさん
19/03/24 17:04:29.99 GJ0JjoCX0.net
>>87
だからUIスレッドから操作しろって
URLリンク(www.atmarkit.co.jp)
92:デフォルトの名無しさん
19/03/24 17:10:34.23 gZMjxNOF0.net
UIスレッド外からいじったのにエラーにならなかったけどなんで?って質問じゃないのか
93:デフォルトの名無しさん
19/03/24 18:55:32.16 yH9zM0xm0.net
>>92
そうそう、そういうこと
Parallelで進捗バー増やしてったのに
順調に増えてって正常終了した
TaskbarクラスはStaticでクラスライブラリ(.dll)
なんか理由わかる人いませんか?
94:デフォルトの名無しさん
19/03/24 23:49:11.19 z21lQS4L0.net
ソース見てみたらITaskbarList3::SetProgressValue呼んでるだけだし
アプリ内のウィンドウというよりシェルへのアクセスなら
元々UIスレッドで呼ぶ必要ないんじゃねえの
検証してないけど
95:デフォルトの名無しさん
19/03/25 12:38:16.05 M0EtypdC0.net
ドット絵エディタみたいなのは簡単ですか
96:デフォルトの名無しさん
19/03/25 12:38:17.23 ZS1E97rBM.net
>>94
あーシェルの可能性か
なるほど
uiスレッドどころか別プロセスか
盲点だったわ
ありがとう、中身見れたら見てみる
97:デフォルトの名無しさん
19/03/25 13:14:00.29 MuEFgcsw0.net
>>95
エディタ本体つくるのは簡単
各種画像ファイルフォーマットの読み書きが面倒
98:デフォルトの名無しさん
19/03/25 13:55:28.16 feShKvG5d.net
>>97
今はnugetでだいたいのフォーマットのライブラリは取得できるんじゃないかな
99:デフォルトの名無しさん
19/03/25 14:00:35.30 feShKvG5d.net
てか、Windowsなら標準のBitmapクラスでメジャーどころは扱えるか
100:デフォルトの名無しさん
19/03/25 16:28:23.69 M0EtypdC0.net
>>97
がんばります
ペイントイベント使うだけですよね
101:デフォルトの名無しさん
19/03/25 16:39:58.28 CQLZj79N0.net
DrawImageやBitBlt地獄が待ってるんだろうなw
102:デフォルトの名無しさん
19/03/25 22:05:04.34 QIzg3qUJ0.net
>>99
そうだな
URLリンク(docs.microsoft.com)
>>100
PictureBox使った「絵エディタ」で「ペイントイベント」なんか普通使わない
URLリンク(www.atmarkit.co.jp)
>グラフィックの描画に必要なデータ(例えばラインならその始点と終点の座標など)をすべて保持しておき、
>Paintイベント・ハンドラですべてのグラフィックを再描画できるように常に準備しておく必要があることを意味する。
普通は後半に書かれている「Imageプロパティで指定したビットマップに描画」を使う。そうじゃないと保存するときにも苦労する
103:デフォルトの名無しさん
19/03/25 22:11:51.58 sDjcFKgQa.net
お絵描きに限らないけど、手順を記録するようにしないとundo実装できなくなるよw
何で偉そうにそういう非常識なことを言うかね
104:デフォルトの名無しさん
19/03/25 22:17:28.38 QIzg3qUJ0.net
>>103
何の話しているの?
「図形」じゃなく「ドット」エディタで「手順」記録すると大変なことになるよ
undoは任意の時点のデータを退避したらどうにでもできるよ
105:デフォルトの名無しさん
19/03/26 02:29:39.88 fe5vrK8S0.net
自分の経験上、Undo、Redoは、プログラミングが難しいことがある。
106:デフォルトの名無しさん
19/03/26 02:46:28.44 fe5vrK8S0.net
参照やポインタの�
107:lは、一般にはUndoすると変化するので、Undo、Redoを 任意回数行った場合には「識別子」として役立たないことになる。 だから、Draw系ツール、3Dモデラ、3D-CADなどではポインタ値だけで 直線の接続先などを識別するのは難しい。だからと言って座標値だけで識別 できるかというとそれはそれで無理がある場合が有る。だからID番号を付ける 必要が出てくるかもしれない。 CADで、点が1万個有る場合に全選択してから Move した場合の Undo 情報は、 1万個に上る、と言ったような問題点も耳にした。
108:デフォルトの名無しさん
19/03/26 02:51:56.51 fe5vrK8S0.net
ツール上では削除しても、内部的には削除せずにメモリ中にずっと残しておけば、
参照やポインタ値は変化することは無い。これを利用する手もあるかもしれない。
ただし、その場合、プログラミング中、オブジェクトを自由に削除できなくなるので、
未来永劫、そのことに気を使い続ける必要がある。
109:デフォルトの名無しさん
19/03/26 04:35:48.97 6g954Hehr.net
3Dソフトの操作履歴って入れ替え可能だからな(可能な操作のみだが)
それすらすごい
例えばベンドデフォメーションかけた後にオブジェクト同士をマージ
この操作順を普通に入れ替えられる
操作をフリーズ(固める)しない限りどんな操作でも入れ替え可能
そして上記の履歴操作は機能のうちのほんの一部
110:デフォルトの名無しさん
19/03/26 05:21:06.95 Wr7XD3bSa.net
ボタンを押すと、計算してその結果をリッチテキストボックスに表示する、構造的にはシンプルなイベントを作ろうとしています。
private void button_Click(object sender, EventArgs e)
{
リッチテキストボックス.Text=(見出し);
◆計算◆
リッチテキストボックス.AppendText(ここに計算結果を表示);
}
自分としては見出しを表示→◆計算◆(数分かかります)→計算結果表示と、上から順に処理されることを期待しているのだけど
実際は◆計算◆が終了するまで最初のテキスト「見出し」も表示されないのですがどうしてなのでしょうか?
111:デフォルトの名無しさん
19/03/26 05:23:41.39 BYz/7c7n0.net
連続した削除は統合したり、塗りつぶしは開始点を覚えたり
色々小技もあるので、一概には言えないと思うけどなぁ
本格的に勉強したいなら、paint.net か pinta のソース読むのお勧め
112:デフォルトの名無しさん
19/03/26 06:37:47.03 AEstRBha0.net
>>109
リッチテキストボックス.Text=(見出し);
リッチテキストボックス.Refresh();//これを挿入
◆計算◆
で意図通りになるはず
「どうしてなのか」はよくわからないけど
URLリンク(dobon.net)
を参考に考えてみるとアプリケーションキューが空になるまで再描画されないからとかでは
113:デフォルトの名無しさん
19/03/26 10:18:19.55 nfpS3j/TM.net
ドット絵なんて"■"をフォントサイズと色変えて
200x200でやるとかじゃアカンの?
商用?趣味?
114:デフォルトの名無しさん
19/03/26 10:27:40.46 FWKgfdvb0.net
お前の息子みたいな小さい世界の話はしてねえんだよ保育所に引っ込んでろ
入れなかったのか?じゃあ死んでろ
115:デフォルトの名無しさん
19/03/26 10:53:32.84 RcQOpHon0.net
>>109
イベントハンドラーの中で計算しているから、UIスレッドを掴んだままになってる。
非同期処理化すれば解決するが、計算中もUIを触れるから別途対策が必要。ウィンドウかボタンを無効化とか。
private async void button_Click(object sender, EventArgs e)
{
this.Enabled=false;
リッチテキストボックス.Text=(見出し);
await Task.Run( () => ◆計算◆ );
リッチテキストボックス.AppendText(ここに計算結果を表示);
this.Enabled=true;
}
116:デフォルトの名無しさん
19/03/26 10:55:43.23 fe5vrK8S0.net
>>108
速度的な問題点を無視すれば、
編集ソフトでファイルを読み込んだ直後から人間が操作したコマンドの履歴を
全て記録しておいて、ファイルを読み込んだ直後から、最初から最後の1つ手前
まで、その履歴のコマンドを順に再実行するようにすればUndoは実現できる
事は出来る。
この方法だと、操作の途中に重たい処理が挟まっていた場合が問題となる。重たい
処理が行われた場合は、処理の最初と最後でデータをファイルに保存してしまって、
Undoするときはそれを「起点」にする方法も考えられる。ただし、この場合は、
ファイルへの保存に時間がかかる問題が残る。
117:デフォルトの名無しさん
19/03/26 11:34:27.90 KoWTp9j7d.net
簡単ですか?くらいの質問する相手なんだから112が言うような実装で良いと思うけど
高機能にしようと思えばいくらでもできるだろうけど既存のドットエディタ使えば?って気もする
勝手に質問を高機能に寄せてああでもないこうでもない言ってても仕方ないよね
118:デフォルトの名無しさん
19/03/26 12:05:28.06 NEQZ2SJi0.net
>>116
ゲームの専門家に聞いたんだけど、実はドットエディタは使ってなくて、
1つのファイルに複数のキャラクタ画像をまとめて、普通のPaintソフトの
拡大鏡機能で作っておいて、ゲームプログラムの方で部分的な四角形領域
を座標で指定して複数のキャラクタとして扱っている、と聞いた。
そして、透明部分は、1つの色を「透明色」として扱ってMaskパターン
を作っていると。WindowsのBitBlt系のAPIなら、透明色をそのまま
指定できるタイプのものも確かあったと思うけど。
119:デフォルトの名無しさん
19/03/26 12:09:54.76 6g954Hehr.net
>>115
しかし3Dソフトは激重アプリなのにサクサクとundo redoできる
設定では1000回まで戻れるようにしている
しかも全部メモリに管理しているんじゃないだろうか
設計が凄まじいのだろう
120:デフォルトの名無しさん
19/03/26 12:10:33.61 qm+I18En0.net
>>118
ファイルに落としてるんだよ
121:デフォルトの名無しさん
19/03/26 16:10:23.84 ERuMXzNG0.net
>>117
そういうやり方だってあるしドット絵エディタで全て作ってるのだってあるし普通の絵をドット絵チックに変換するツールを使う場合もある
122:デフォルトの名無しさん
19/03/26 16:26:20.46 5W15sMAGF.net
>>120
URLリンク(goodbyejapan.net)
123:デフォルトの名無しさん
19/03/26 16:55:27.87 fe5vrK8S0.net
>>118
多分、普段のUndo、Redoはメモリ内のみで行っている。
そして、>>108のように、操作者が順序を入れ替えた場合のみ、
どこかの時点を起点として操作をリプレイするようなことをやってる。
だから後者の場合のみは時間がかかるんじゃないかと思うが、滅多に
やることはないので問題ないと考えられているのではなかろうか?
124:デフォルトの名無しさん
19/03/26 17:53:29.15 6g954Hehr.net
>>122
3Dソフトはそもそもディペンデンシーグラフで履歴ノードが自由に繋ぎ直せるし、インプットアウトプットもしまくるから
わざわざファイルに出してることはないはず
そしてそれら膨大な数のノードがリアルタイムで動作したりするからなあ
ほん�
125:ニどうやったら普通のPCでもそれなりに高速に動くようなあんなシステム作れるんだ ちなみにスクリプトやAPIでも履歴作れるんだよな openChank closeChankの間に入れ込んだ操作の履歴を一つにしてくれる
126:デフォルトの名無しさん
19/03/26 18:13:18.89 fe5vrK8S0.net
>>123
履歴のコマンドの順序を入れ替える操作を高速にするアルゴリズム、今、分かった。
1. 操作を変更する時点は、現在の状態からは近いことが多いはず。
2. だから、ツールの内部処理で、現在の状態から小数回 Undoを繰り返せば、その地点にいったん
戻ることが出来る。
3. そこからは、新しい順番でコマンドを「Replay(再生)」すれば、目的の結果が得られる。
127:デフォルトの名無しさん
19/03/26 18:18:17.85 fe5vrK8S0.net
>>124
・例えば、現在の状態が、ファイル読み込み時点から、1,000回の操作の後だとする。
・現在の状態になる20回前の操作を変更したいとする。その操作は、最初からは980回目である。
・ここで、(1,000回目の)現在の状態から 20回 Undo をすれば、上記の980回目の状態に戻れる。
・この20回くらいの Undo ならば、大して遅くは無いはず。
・出来あがった980回目の状態から、新しいコマンドの列を20回程度繰り返せば、目的のデータが
完成する。
128:デフォルトの名無しさん
19/03/26 19:03:23.56 3EcUlBetM.net
>>80
プレーンオブジェクトと呼んだりするけどこれと言った決まりはない
129:デフォルトの名無しさん
19/03/26 19:19:11.31 NbUyZWCMH.net
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 58034
URLリンク(you-can-program.hatenablog.jp)
130:デフォルトの名無しさん
19/03/26 19:28:00.58 6g954Hehr.net
>>124
ちなみに解説はこことか
URLリンク(help.autodesk.com)
131:デフォルトの名無しさん
19/03/26 19:31:16.28 6g954Hehr.net
あとキャラ一体でこのノード数は当たり前
これが何体もいる上に背景やらエフェクトやら物理演算、アニメーションブレンディングとかも同時にエディタ内でやってる
さらに裏側で動作させてるスクリプトも何百もあるし、APIとかも膨大に動いてる
URLリンク(circecharacterworks.files.wordpress.com)
132:デフォルトの名無しさん
19/03/27 03:33:29.80 NpUsj5uAa.net
>>111>>114
ありがとうございます
なんとなくイメージはつかめました
133:デフォルトの名無しさん
19/03/27 08:27:38.52 bis+Aug70.net
>>80
昔はバリュークラスと呼ばれてた
C#的にはPOCOだな
あとDTOはEFと関係無い
134:デフォルトの名無しさん
19/03/27 08:50:32.86 vlf+N3dca.net
azure durable functionをオンプレで使いたいのだけど類似のオプソフレームワークってあります?
MQ使って再発明はダルいっす
135:デフォルトの名無しさん
19/03/27 09:16:12.09 M3xZFaB+a.net
>>132
オンプレなのに態々縛りプレイをしたい理由は?
long-runningなスレッドでいいだろ
136:デフォルトの名無しさん
19/03/27 15:52:07.47 gKV0tUQi0.net
質問させてください。
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イベントをラムダ式(?)で記述してます。
説明するのに使う用語すらそこら辺から借りてきたもので大変恐縮ですがご指導の程宜しくお願いします。
137:デフォルトの名無しさん
19/03/27 16:01:59.45 gKV0tUQi0.net
最後の方、
「Clickイベントをラムダ式(?)で記述してます。」は
「Clickイベントを無名関数(?)で記述してます。」と言うべきだった気がしてきました。
138:デフォルトの名無しさん
19/03/27 16:24:53.59 ewJriyXK0.net
他のクラスを承継してクラスを作る時、承継元のクラスのコンストラクタを呼ばないようにするのってどうすればいいの?
139:デフォルトの名無しさん
19/03/27 17:16:29.24 /UUA2GqJa.net
>>134
・本体右クリックメニューの方は、xaml側でMenuItemにx:Nameを付けると.cs側で参照できる
・タスクトレイアイコンの方は、作成したMenuItemをフィールドに保持してあとで参照出来るようにする
として、「switch切替関数」と「Clickイベント」でbool変数をトグルさせた後に
各MenuItemのIsCheckedを設定すればできそう
以下余談
WPFでは内部状態とViewの同期はBindingという仕組みを使えば楽できるんだけど(ただし使いこなせるようになるまでが難しい)
タスクトレイ関係のコントロールが無いからWinForms側を使うしか無くて、結局Viewを直接触ることになるんだな……
>>136
無理
仮にそれが出来たら、継承元のprivate変数が未初期化のままコンストラクタが完了することになって
結局そのインスタンスは使い物にならない
140:デフォルトの名無しさん
19/03/27 19:03:27.47 tQ4XPcUjM.net
>>131
POCOは特定のフレームワークへの依存を持たない普通のオブジェクトを指す言葉で、
決して振る舞いを持たないことを意味しているわけではない
141:デフォルトの名無しさん
19/03/27 19:54:30.82 ewJriyXK0.net
>>137
だめなのかあ・・・・ありがとう
142:デフォルトの名無しさん
19/03/27 20:06:11.69 bis+Aug70.net
うんだから
振る舞い無くてもPOCOでしょ
普段使いで貧血ドメインクラスなんてわざわざ言わないしな
ただのデータクラスって言ったり
わかる相手にはプレーンオブジェクトとか言うでしょ
コンテキストによってはレコード型と言ったりもするし
143:デフォルトの名無しさん
19/03/27 21:21:06.39 LVKAuWEv0.net
アーキテクチャとか思想で呼び方は変わりそうね
3レイヤーアーキテクチャでアプリケーション層でのドメインモデルからview やjsonのための振る舞いを持たないクラスを俺はviewmodelかdtoとか呼んでるわ
144:デフォルトの名無しさん
19/03/27 21:32:05.17 gKV0tUQi0.net
>>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
さて、次は肝心の中身に取り組まなければ!!
145:デフォルトの名無しさん
19/03/27 22:04:09.72 /UUA2GqJa.net
>>142
x:Nameを付けたら this._AmenboModeMenu とフィールドとして扱える
インテリセンスが効くし、そのままの型で使えてキャスト不要になるし
.xaml側でx:Nameを変えて.cs側を変え忘れてもコンパイルエラーで気づけるから
.FindName()を経由するよりもフィールドで扱ったほうが楽
146:デフォルトの名無しさん
19/03/27 22:13:13.28 gKV0tUQi0.net
>>143
インテリセンスとかキャスト不要とかコンパイルエラーとか、間違いなくそちらの方が良いですね!
体系的知識皆無のコード切り貼りマンの自分では容易には辿り着けない領域・・・
ありがとうございます!早速書き替えてみます!
147:デフォルトの名無しさん
19/03/28 01:00:26.73 VR7enf9Y0.net
List<List<T>>型のフィールドを含むオブジェクトのディープコピーを作る方法で、定石みたいなのがあったら教えて!!!
148:デフォルトの名無しさん
19/03/28 01:01:08.20 BGhBm4PEM.net
JSON.NETでシリアライズしてデシリアライズ
149:デフォルトの名無しさん
19/03/28 01:03:43.26 D80vvc+Qd.net
>>146
俺もこれ多用してる
150:デフォルトの名無しさん
19/03/28 01:06:25.17 VR7enf9Y0.net
まじか、なんか無駄な作業してるような気もするけどこれは楽ちんだわ
ありがとう!
151:デフォルトの名無しさん
19/03/28 01:43:57.78 yLTGLAEP0.net
.NETって、既にMSにレガシー扱いされているらしい。
老害って言葉を使うのが好きな若い人、良い経験だ。
152:デフォルトの名無しさん
19/03/28 02:25:09.30 BZLOzy32d.net
>>149
それは初耳
ソースは?
153:デフォルトの名無しさん
19/03/28 05:36:01.82 eEmtiDxQa.net
.NET (Framework)はレガシー
154:デフォルトの名無しさん
19/03/28 08:08:08.64 BGhBm4PEM.net
レガシー
.NET Framework
WinForms
WPF
ASP.NET Classic
ASP.NET MVC
Entity Framework
Notレガシー
.NET Core
Windows Runtime
ASP.NET Core
Entity Framework Core
155:
19/03/28 19:13:03.21 3LZYwZb10.net
>>152
win32api はレガシーですか?
156:デフォルトの名無しさん
19/03/28 19:56:25.15 LUeUt0r60.net
WindowsOSがレガシーってか
157:デフォルトの名無しさん
19/03/28 20:16:09.20 zYMv+0+90.net
>>153
Windows Runtimeじゃないからレガシー
158:デフォルトの名無しさん
19/03/28 20:44:58.59 WadD1DGKa.net
昔ブルースウィリスがCMしてたね
159:デフォルトの名無しさん
19/03/29 07:46:13.85 Z1iKEAdk0.net
do
{
ch = (char)Console.Read();
} while (ch == '\n' | ch == '\r');
この文章の意味が分からないのですが改行と入力された文字が等しければってどういう意味でしょうか?
独習C#のコードなんですが…考え込まないで次に進んでも差し支えないですかね
160:デフォルトの名無しさん
19/03/29 07:47:55.15 wTWZ6CmIa.net
改行も文字
文字コード調べろ
161:デフォルトの名無しさん
19/03/29 08:02:33.20 Eeymx9+70.net
>>157
久しぶりなんで自信ないけど、先頭が改行な文字列(そんな文字列は改行だけ入力された場合だけ)が入力される間ループし続ける処理かな。
逆パターン(改行だけなら終了するループ)なら割とよく作る。
162:デフォルトの名無しさん
19/03/29 08:19:56.98 Z1iKEAdk0.net
>>159
質問に質問を重ねる形で申し訳ないのですが
先頭が改行な文字列とは何なのでしょうか?
コード全文はこんなURLリンク(ideone.com)感じなのですが…
163:デフォルトの名無しさん
19/03/29 08:50:35.24 YK+WjxC90.net
先頭とかは気にしなくていいが
要は改行も文字の一種だからConsole.Read()で返されうるということ
164:デフォルトの名無しさん
19/03/29 08:50:50.31 Eeymx9+70.net
>>160
いあ、ごめん。
ReadLineと勘違いしてた。
Readは1文字入力だ。
例えば
>abc
と入力しても
chには’a’しか入ってこない。
なので
>[Enter]で改行
で
chに\nが入る。
(OSによっては\rが改行)
165:デフォルトの名無しさん
19/03/29 11:38:47.05 Vcbtlc+70.net
参考までに、漏れは、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 か?
166:デフォルトの名無しさん
19/03/29 11:45:21.84 NWe290lip.net
>>163
C#初心者スレで誰に対しての参考なんだよw
167:デフォルトの名無しさん
19/03/29 11:53:42.53 dNWrd6GAM.net
ここも次スレはタイトルに [Ruby禁止] が必要だな
168:デフォルトの名無しさん
19/03/29 14:02:16.54 4Qaz8P7sa.net
>>164
他のスレにもよく出没するruby気違いだよ。
ところ構わずrubyの話を始め、大した知識もないのに話に首を突っ込んで場を荒らす迷惑もの。
いくら叩いても消えないゴキブリのような存在だよ。
169:デフォルトの名無しさん
19/03/29 14:57:23.90 N6N7D78B0.net
仮にサンプルコードがrubyじゃなくても大した参考にならないレスだということに驚きを隠せない
170:デフォルトの名無しさん
19/03/29 15:21:01.41 kIHWJH0H0.net
厳密にいえば>>157だって
C言語レベルの質問だよな
いくら初心者用のスレとはいえさ。。
ふらっと C#,C♯,C#(初心者用(ただしC言語習得者に限る))
にすべき
171:デフォルトの名無しさん
19/03/29 15:26:30.90 BZTP93w70.net
>>168
コンソールの話であってC言語かは関係ない
172:デフォルトの名無しさん
19/03/29 15:35:39.49 Eeymx9+70.net
タイトルに書いたところで来るのでNGワードRubyでおk
173:デフォルトの名無しさん
19/03/29 15:42:52.32 dPR72N5Kd.net
>>168
それは難癖すぎる
174:デフォルトの名無しさん
19/03/30 01:56:39.15 nXZ9oX+k0.net
c#でデストラクタってスコープ外れたときじゃなくてGCが動くときに呼ばれるんだよね?
だとしたらみんなどういう処理に使ってるの?
175:デフォルトの名無しさん
19/03/30 02:56:07.21 L65N8b2w0.net
スコープ外れたとき呼ばれようがGCの時呼ばれようがデストラクタはデストラクタだ。後処理が必要な時使えばいい。
例えば、メモリ動的確保したら後処理として解放する処理が必要だが.NETはGCで勝手にやってくれるし。
他にネイティブのハンドルとかオープンしたらクローズとか。
いつ呼ばれようがただのデストラクタだ
176:デフォルトの名無しさん
19/03/30 03:04:53.19 1YGxKDqg0.net
IDisporsableに書く処理を2重に書いておいて
using使わずにそのクラスを使われてしまった時の保険とか?
177:デフォルトの名無しさん
19/03/30 07:16:33.58 kQToIs4ma.net
>>172
積極的リソース解放をし忘れた時の保険
つまりDispose呼びだしとロギング
それ以外の使い道は見たことないな
178:デフォルトの名無しさん
19/03/30 08:26:04.36 nXZ9oX+k0.net
c++だとコンストラクタで割り込み禁止してデストラクタで割り込み禁止解除することで割り込み禁止解除の忘れを防ぐとか色々便利なんだけどね
呼ばれるタイミングがわからんとなるとクリティカルな処理はできないよね
179:デフォルトの名無しさん
19/03/30 09:14:36.79 kQToIs4ma.net
そういうのはusingとDisposeでやればいい
180:デフォルトの名無しさん
19/03/30 09:17:58.21 MDhvoYYM0.net
>>176
C#ならIDisposableを実装してusingステートメントで使う
181:デフォルトの名無しさん
19/03/30 13:28:45.76 wWTOiR4+0.net
>>176
C#やで?
182:デフォルトの名無しさん
19/03/30 13:59:44.65 rIDHHvWNd.net
ちなみにrubyだとどう実装するんですか?
183:デフォルトの名無しさん
19/03/30 14:18:07.24 pD47374c0.net
>>180
スレチ
184:デフォルトの名無しさん
19/03/30 14:52:39.92 xBHe+wwVa.net
>>180
変なのを呼び寄せる餌を撒くなよ
185:デフォルトの名無しさん
19/03/31 14:31:51.70 +4KlqcXq0.net
変数の保存先なのですが、ローカル変数 = スタック、インスタンス実体 = ヒープらしいのですが、
以下のように、クラスに直接登録された変数/インスタンスはどこに保存されるのでしょうか?
class A
{
int a = 0;
static string b = "テスト";
CLS cls = new CLS();
}
186:デフォルトの名無しさん
19/03/31 15:25:45.85 xPUGTMpba.net
>>183
値型と参照型の区別はついてる?
値型の変数には値型全体を表すためのメモリが割り当てられる
参照型の変数は参照先を示す値(=IntPtr)分だけメモリが割り当てられて、実際のインスタンスはヒープ中に割り当てられる
少し違う話になるけど、配列の場合について、要素が値型か参照型かでの図があったので貼っとく
URLリンク(www.atmarkit.co.jp)
例示されたAの場合、
まずbはstaticなのでどこかには確保される、詳しくは俺は知らない
A型のインスタンスは、Aが参照型なのでヒープ中に割り当てられる
aは値型なのでA型インスタンスの中に割り当てられる(=ヒープ)
clsは多分参照型だと思うけど、A型インスタンスの中には参照先を保持する分だけ割り当てられて(=ヒープ)、実体はヒープの別の箇所に割り当てられる
もっともC#だけで完結するコードなら、この辺の事柄は気にしなくてもいいとは思う
P/Invokeやunsafeを触りだしたら必要かもしれない
187:デフォルトの名無しさん
19/03/31 16:51:41.45 Dsj4LhABM.net
>>184
黙っていた方がまし
188:デフォルトの名無しさん
19/03/31 17:03:40.04 ik4O3ofo0.net
結局居DLLってなんなの?
クラスライブラリとかいってるけど結局動的な変数Orクラスってだけじゃない?
189:デフォルトの名無しさん
19/03/31 17:32:15.95 AGgU+JAad.net
IL見ろ
ILとかよくわかんないっていうなら君はヒープだスタックだを気にする必要が一切無いと言うことだ
190:デフォルトの名無しさん
19/03/31 17:33:59.21 yskaDDV40.net
関連するクラスを集めたものがライブラリで、それを(動的に)再利用しやすいように格納したファイルの形式がDLL
191:デフォルトの名無しさん
19/03/31 21:33:05.64 tjtvcp0f0.net
>>186
COM+とかの話見ると、C#のおとんおかんが凄絶な恋愛してたことがわかるから
192:デフォルトの名無しさん
19/03/31 21:38:09.85 5U3jYzcD0.net
visual studioってコードの修正案提示してくれたりしてマジすげぇなと驚いてるんだけど最近のideってどれもこんなものなの?
ずっとsakuraとコンパイラで開発してきたから至れり尽くせり感に驚愕してる
193:デフォルトの名無しさん
19/03/31 22:07:00.91 C25LHBco0.net
>>190
凄いよな。他には戻れない
194:デフォルトの名無しさん
19/03/31 23:47:55.28 qnazkb5e0.net
FXの自動売買ツールを無料で配布しています。
URLリンク(hbgvf.blog.jp)
195:デフォルトの名無しさん
19/04/01 05:38:40.41 ymg/4x830.net
>>186
例えば、sqlite3 をダウンロード・解凍して、Ruby から使う場合、
sqlite3.dll を、Ruby内で読み込んで使う。
これは、同一プロセス内でのライブラリのロード
一方、sqlite3.exe を先に起動しておいて、Rubyからプロセス間通信する事もできる
この場合は、別プロセスとなり、sqlite3.exeがサーバー、
データベースへの問い合わせを行う、Rubyがクライアントとなる
つまり、dll・exeの違いは、同一プロセスかどうか
196:デフォルトの名無しさん
19/04/01 07:32:21.75 6ozVozxra.net
なんでc#スレでrubyをわざわざ例に出すんだ?
c#で説明すればいいだろ
197:デフォルトの名無しさん
19/04/01 07:59:11.65 0je6lfhB0.net
>>194
そいつ、どこでもrubyの話を持ち出すアホであちこちで嫌われている奴なのよ。スレによっては>>1にわざわざ書かれるほどの迷惑行為の常連者。
198:デフォルトの名無しさん
19/04/01 08:36:41.35 yiuMv+kTM.net
またrubyガイジ沸いてんのか
199:デフォルトの名無しさん
19/04/01 21:23:24.28 Cg9qg8Y/r.net
脳みそがrubyでできてるから仕方ないだろ
200:デフォルトの名無しさん
19/04/01 22:32:29.56 TxZW52uKa.net
realmとlistboxを連携させたいのだがやり方がよくわかりません
やりたいこととしては
realmからデータを引っ張ってきてlistboxで表示
listboxの操作でrealm内データの削除
です
201:デフォルトの名無しさん
19/04/01 22:36:43.65 uqh5yY5fa.net
そういうコードを書けとしか
202:デフォルトの名無しさん
19/04/01 22:50:57.30 oTYwjMDZ0.net
そこまで想定できてるならあとは手を動かすだけだろ
203:デフォルトの名無しさん
19/04/03 00:06:26.60 2Gsx2Igw0.net
なんかGUIのツールを作ろうとしたときに、c#の対抗馬になるものってある?
204:デフォルトの名無しさん
19/04/03 00:20:35.03 2j7I06hZ0.net
Electron
205:デフォルトの名無しさん
19/04/03 02:29:28.92 T2SUA4qZM.net
Electronの開発を主導してるのMSだしな
C#は生みの親に後ろからケツを全力で蹴られている格好
206:デフォルトの名無しさん
19/04/03 08:21:08.64 P6TLGPRxM.net
javascript嫌いだからHTML+CSS+C#にしてくんねーかな
207:デフォルトの名無しさん
19/04/03 08:29:21.76 WP/ATQFx0.net
typescript使うとかなりマシになる
208:デフォルトの名無しさん
19/04/03 12:11:59.76 xn7iKSYA0.net
vs codeで利用してるかが、Githubを買収したらもれなくついてきだけだろ。
まさか、github買収はelectronが目当てだったとか?
209:デフォルトの名無しさん
19/04/03 12:52:49.61 irKDOHSYd.net
>>206
で?
210:デフォルトの名無しさん
19/04/03 12:59:39.22 xn7iKSYA0.net
>>207
馬鹿は無理して会話に交じらなくてOK
211:デフォルトの名無しさん
19/04/03 13:18:39.14 rQfs7b7r0.net
>>208
で?
212:デフォルトの名無しさん
19/04/03 14:47:51.95 57e5+lwMr.net
>>204
それが.Net Coreじゃね?
213:デフォルトの名無しさん
19/04/03 14:50:03.23 73sauU1q0.net
【令和】 徳仁 VS 世.堺教師マiトL-ヤ 【分合】
スレリンク(emperor板)
214:デフォルトの名無しさん
19/04/03 18:46:36.25 P6TLGPRxM.net
>>210
.NET CoreにはGUIのフレームワークがないんだわ
一応UWP、WPF、Windows Formsと組合せて開発できる(現状はWindowsのみだったはず)けどそれなら普通にC#使うし…
215:デフォルトの名無しさん
19/04/03 19:08:18.87 irKDOHSYd.net
>>212
え…WebはGUIやで
216:デフォルトの名無しさん
19/04/03 19:57:10.57 57e5+lwMr.net
>>212
へ?フロントフレームワーク好きなの使えばいいじゃん
おまえいつの時代に生きてるんだよ
217:デフォルトの名無しさん
19/04/03 19:57:13.23 n4wxwcz+a.net
Web遅いやん
218:デフォルトの名無しさん
19/04/03 20:18:48.27 z8L5LERR0.net
>>213
話の流れぐらい読めよ…
>>>201
>> なんかGUIのツールを作ろうとしたときに、c#の対抗馬になるものってある?
>>214
だからそのフレームワークがどれもイマイチって話な
219:デフォルトの名無しさん
19/04/03 20:22:50.49 NsKebegy0.net
もとの質問がスレ違いなのにいつまでやるの
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
220:デフォルトの名無しさん
19/04/03 20:24:57.81 VrtD8aF20.net
なぜUWP・WPFというクソを生み出してしまったのか
221:デフォルトの名無しさん
19/04/03 20:27:20.36 xnkmZns10.net
>>216
GUIって表現がおかしいことを認めようとしないクズ
222:デフォルトの名無しさん
19/04/03 21:08:42.50 559k4PZzM.net
ガイジかよw
223:デフォルトの名無しさん
19/04/04 00:57:03.82 ZN2gQ81o0.net
pythonで実装できるからと思ってtkinterに浮気してみたけどやっぱ.netってすげぇ便利だったんだなと思えたよ
GUI開発は開発環境含めて評価すべきだわ
224:デフォルトの名無しさん
19/04/04 01:51:05.61 IOgreNy50.net
>>221
GUIで配置できるって点だけじゃね?
225:デフォルトの名無しさん
19/04/04 02:37:37.19 iJ70eOZ40.net
iPhoneでAppstoreが成功して、カッコ良ければ売れるんだと思い、
ググルプレイが成功して収益管理まで提供したら売れると思ってたら
窓電話は不発、デスクトップでストアアプリ探さないから売り物さえ並ばない。
成功者は金の回りを用意して市場を作った。
MSは市場を作ろうとして壁を作った。
226:デフォルトの名無しさん
19/04/04 23:45:04.92 CMDWj0ay0.net
C#は、関数の引数は基本的に値渡しということですが、これ本当ですか?
unityで、引数にrefをつけて参照渡ししてるサンプルって見たことがないです。
すごくメモリ効率が悪い気がするのですが・・・
227:デフォルトの名無しさん
19/04/04 23:53:18.48 8Z7mdjDJ0.net
>>224
なんで悪いと思うの?
228:デフォルトの名無しさん
19/04/05 00:02:47.99 W1wYJ7EV0.net
どうでもいい事でよくそんなに議論できるよな
229:デフォルトの名無しさん
19/04/05 00:05:27.61 8GSOh3MvM.net
どうせいつもみたいに値渡しだからオブジェクトが全部コピーされちゃうよ~
みたいな奴だからうんざりする
230:デフォルトの名無しさん
19/04/05 00:08:41.76 8GSOh3MvM.net
巨大な構造体の場合は値渡しがボトルネックになる場合もなくはない
クラスの場合はどんなにデカかろうが参照しかコピーされないから関係ない
値渡しなのに参照なんですか?とか聞くな
うるせえなそういう仕組みだと思ってろ
231:デフォルトの名無しさん
19/04/05 00:20:17.79 kZ8w9alb0.net
>>224
クラスは参照型で、引数にした時は参照の値渡しになるから、心配するようなことにはならない。
構造体は値型だけど、あまり使わない。
232:デフォルトの名無しさん
19/04/05 00:25:11.16 Zwa/Lf0S0.net
c#の構造体って書き方がほぼクラスみたいなもんだからcの構造体と比較するとすごく違和感ある
ここまで書くならクラスでええやん
233:デフォルトの名無しさん
19/04/05 00:56:02.91 UeOvQxG40.net
インスタンスを設定したがわが保持って置かないと死ぬときもあるしそうでないときもある
ループで生成しまくる処理のときはこちらでインスタンスを管理しないと
表示するたびに生成しまくって
前のは消されてない
ライブラリの中でほじってるらしくて
消そうと思っても消えない
って状態になることも多い
234:デフォルトの名無しさん
19/04/05 00:57:09.43 N3n7oHyA0.net
>>231
これあるあるだわ
管理ダルいからスコープ決めてインスタンス作ってるわ
235:デフォルトの名無しさん
19/04/05 08:44:21.30 x8OJz+Ud0.net
>>230
既定のアクセシビリティの差しかないC++の悪口かな?
236:デフォルトの名無しさん
19/04/05 09:44:01.09 0L4pmkxC0.net
構造体て値の全コピーが楽なぐらいで無理に使う必要ない
237:デフォルトの名無しさん
19/04/05 10:43:00.62 zi2/La8Bp.net
GCの起動サイクルがクリティカルに影響したりネイティブとの相互運用等
無理してというより必要な時のみ使うものだからね
238:デフォルトの名無しさん
19/04/05 12:09:16.02 85UtCV7c0.net
サブフォームFORM2を作って右上の×で消した時どうすれば(どこを調べれば)よいですか?
FORM2 form2 = new Form2();
239:デフォルトの名無しさん
19/04/05 12:25:16.27 R01axtSvM.net
>>232
そうやってもライブラリの中の人まで死ぬ保証はないかもしれないしあるかもしれない
240:デフォルトの名無しさん
19/04/05 13:21:34.57 x8OJz+Ud0.net
>>236
質問の意味がよく分からん
閉じたときに何かしたいならFormClosedイベントだけど
241:デフォルトの名無しさん
19/04/05 19:45:13.46 N3n7oHyA0.net
>>237 さすがに広く使う変数は パラメータークラス作って使いまわしますよ
243:デフォルトの名無しさん
19/04/05 22:56:55.47 85UtCV7c0.net
>>238 意味不明な文章ですみません。聞きたい質問は以下のことです。
サブフォームFORM2を作って右上の×で消した時とサブフォームを消してない時は
どのようなコードを書けば判別できますか?
244:デフォルトの名無しさん
19/04/05 23:05:30.38 UeOvQxG40.net
>>240
ちっともわからん
245:デフォルトの名無しさん
19/04/05 23:13:56.69 UeOvQxG40.net
>>240
Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?
246:デフォルトの名無しさん
19/04/05 23:14:11.83 cVRKM8Bg0.net
>>240
「右上の×で消した時」はわからないが
フォームがDispose(Close)されているか form2.IsDisposed
フォームが表示されているか form2.Visible
具体的に何が目的かを書いてもらった方が答えやすいと思う
247:デフォルトの名無しさん
19/04/06 02:06:32.31 m4qLgJ3pa.net
>>240
真面目に何言ってるのかさっぱり分からんから、投稿する前に読み手の立場に立って
文章推敲することを覚えた方がいいよ。
これ、プログラミングのスキルより何倍も重要
いやほんと煽りとか抜きに。
Formが閉じられた原因を知りたいなら↓だけど、
それなら普通ググって自己解決してるはずだと思うから違うんだろうね
URLリンク(dobon.net)
248:デフォルトの名無しさん
19/04/06 02:30:19.50 5XTKYZffM.net
多分form1からボタンクリックでform2を開いてそのform2が閉じられたことをform1で検知したいってことなんじゃないか?
249:デフォルトの名無しさん
19/04/06 02:55:07.02 MT95SofI0.net
var変数って便利だけど初期化必須だから惜しいなと思うことがある
例えばとりあえず広いスコープで宣言しといて後のfor内とかで使おうとしたときにここはfloatで扱いたいな→結局宣言箇所をfloatに書き直すのか・・・ってなったり
書きながら考えるときの補助として使おうとすることが間違ってると言えばその通りだけどね
250:デフォルトの名無しさん
19/04/06 03:20:06.81 QWD6tIIM0.net
非同期処理A内でタスクBを生成した場合について教えてほしいのですが、
Aのスレッドが抜けてしまったり、あるいはAのタスクが終了してしまった場合でもタスクBは生き続けるんですか?
Aの終了とともにBも終了させるようにはできないのでしょうか?
251:デフォルトの名無しさん
19/04/06 05:50:01.71 9VymyaU60.net
出来るけどリークするぜよ
252:デフォルトの名無しさん
19/04/06 09:32:18.73 WatgyYvN0.net
>>247
CreateLinkedTokenSourceで複数タスクにまたがるCancellationTokenSource作ればいいんじゃね
253:240
19/04/06 10:07:54.08 hyh7Xf1q0.net
>>243 form2.IsDisposed で閉じたかどうか判定できました。ありがとうございました。
文章が分かりにくいみたいですが243みたいな超能力者がレスしてくれれば良いのです。
>>245の説明の通りですが「教えてください」って書いても放置されることが結構あるので神レス243のほうがありがたいです。
254:デフォルトの名無しさん
19/04/06 10:13:25.13 12K3yeCTa.net
>>246
ああ、良くないと思うぞ。
変数が必要になったら想定される範囲でなるべく小さいスコープで宣言して、それで足りなければスコープを見直すか設計そのものを見直すくらいのがいいと思うよ。
255:デフォルトの名無しさん
19/04/06 11:19:51.64 1moq2C1C0.net
>>250
ガイジは死ね
256:デフォルトの名無しさん
19/04/06 11:27:56.56 j7WnBgX90.net
>>250
意味不明な質問してたらそりゃ放置されるわな
257:デフォルトの名無しさん
19/04/06 11:31:41.71 ts7XFDpTa.net
>>250
放置されることが結構あるということは、これまでも質問のしかたが下手だったか、態度が悪かったか、頓珍漢なことをいっていたか、等々、なんらか自分側にも問題があるとは思わなかった?
答えてくれない方が悪い!ではいつまでたっても改善しないし、周りも困らせることになるよ。
258:デフォルトの名無しさん
19/04/06 15:23:17.78 MT95SofI0.net
マネージャーがまさに自分の視点でしか話をしないから意味を推察するのにめちゃくちゃ苦労してる
しかもマネージャーだから放置も無視もできないしめんどくせぇ
259:245
19/04/06 15:58:43.28 2DuVrQtfM.net
>>250
逝ってよし
260:デフォルトの名無しさん
19/04/06 16:39:47.93 MA8UEjRg0.net
アストラルサイドの話はちょっと
261:デフォルトの名無しさん
19/04/06 18:24:20.03 QWD6tIIM0.net
>>248
教えてもらって悪いんだけど、一体どういうことなんだぜ?
262:デフォルトの名無しさん
19/04/06 19:26:12.20 nnViyGGtM.net
実現したいならタスクBが走ってるスレッドを殺すしかないが
その場合ILが半端なところで止まってクリーンアップ処理が正常に走らないからリークする
嫌なら249が言ってるような方法でタスクが自発的に止まるしかない
好きにしたらいい
263:250
19/04/06 20:05:47.05 hyh7Xf1q0.net
>>254 そうじゃなくて、質問して「質問は・・ということなの?」的なレスが返ってきた状況のときに
「そうです。解決方法を教えてください」ってその人にレスしても放置されることが多々あるという経験を書いただけ。
別に質問の大半が放置されたわけではないよ。
あと理系の人が書いた本とかマニュアルは難解でも当方は理解しますし「分かりやすく書けや」とはそれほど思いません。
理解しやすい文章を書けと思う人は経験不足です。
264:デフォルトの名無しさん
19/04/06 20:12:41.03 gcTy2CwVM.net
はやくゴミクズから人間になろうな
265:デフォルトの名無しさん
19/04/06 20:15:14.96 MA8UEjRg0.net
でも>>236と>>240ってわかりにくい云々の前に
頭がおかしいレベルだよね?
流石に今後の人生のために改善したほうが良くね?
266:デフォルトの名無しさん
19/04/06 20:28:05.68 MT95SofI0.net
質問の意味を確認される時点でそもそも伝わりにくい文章だと思うけど。
コミュニケーションは相対的なものとはいえ、相手に負担を押し付けるやりとりをしていることに気づいてないのでは。
267:デフォルトの名無しさん
19/04/06 20:43:07.38 j7WnBgX90.net
>>260
一緒にしたら失礼。
難解な本は読み手に前提となる知識が足りないから読み難いが、書くべきことはちゃんと書いてある。
あなたのは書くべき情報が欠落していて単に文章として破綻してるだけ。ついでにその後のコミュニケーションも酷過ぎる。
268:250
19/04/06 20:44:56.97 hyh7Xf1q0.net
240見直したけど
「サブフォームFORM2を作って右上の×で消した時」が分かりにくいかな?
※1 form2 = new Form2();
※2 form2.Show();
「サブフォームFORM2を作って※1表示した後※2にFORM2の右上の位置の×をクリックしてFORM2を閉じた時」
って書かないと駄目だったのかな?でも回答を教えてくれた人居るし分かってほしいな~
269:デフォルトの名無しさん
19/04/06 20:58:19.18 YyWMpA9h0.net
いや、動作がわからないんじゃなくてお前さんがやりたいことがわからないって話な
270:デフォルトの名無しさん
19/04/06 21:01:04.80 Gnot3kBPd.net
小手先に頼らず全部書け
質問に関係なさそうなところも全部書け
関係ないと断言できるだけ知識があるならそもそも質問は生まれない
だから頭からケツまで全部書け
全部書いたつもりでも情報は足りないんだから小学生に伝えるつもりで書け
271:デフォルトの名無しさん
19/04/06 21:01:50.77 J4U0pcz9a.net
いわゆるバカの壁だねw
彼はたぶん自分の何が問題なのか本気で分かってない。
仕事で取引先とかとメールでやりとりしてる人なら同意すると思うけど、
日本人は案外彼みたいな人が多い。
多いというか、日本人全体を母集団にとるとたぶん90%以上が彼みたいなタイプだw
これは(実は案外昔から指摘されてるんだけど)日本の初等教育に問題があるんだよねw
日本の国語教育は何であんなくだらない文学観賞と子供を嘘つきにする作文に偏重してるのか。
思いっきりスレ違いなのでこの辺で
272:デフォルトの名無しさん
19/04/06 21:01:55.77 ZE/404d00.net
>>260
理系の人が書いている文章は、内容が難解であっても文意は明確で読みやすい。君の文章はそうではない。むしろ逆で、平易なことが上手く伝えられず理解してもらえない。
君が「難解だが上手い文章」を読みやすいということと、他の人が「君の下手な文章」を理解しにくいということはまったく別のことだが、何でそこから他人を経験不足だと断じる結論になるのだろうか?
君の方が、他人とのコミュニケーションについて経験不足なのでは?
他人に理解してほしいというのは自然な欲求だが、相手に労力を求めるのでなく自分が理解される努力をしなよ。
273:250
19/04/06 21:25:08.15 hyh7Xf1q0.net
>>266-269
要するに、やったことが無いから何故俺がそれをやりたいことがわからないんだね。
でも回答を教えてくれた人居るし・・。
274:デフォルトの名無しさん
19/04/06 21:26:09.76 Hw9bu2CQ0.net
>>240は「右上の×で消した時」が分かる人には引っ掛け問題になってるな
単に「サブフォームが閉じられたかどうかを判別したい」なら問題なかった
初心者スレだから質問者の文章が分かり難くてもある程度はしようがないし
>>240もその範疇だと思うけど、>>250はあり得ない
叩かれまくってるが自業自得だ
275:デフォルトの名無しさん
19/04/06 21:31:28.36 7yOX3K990.net
>>270
何度も書かれているけれどお前の説明が致命的に下手すぎるのが原因
276:デフォルトの名無しさん
19/04/06 21:49:22.76 l9A0t+NU0.net
>>260
>質問して「質問は・・ということなの?」
っていうのは、おまいさんの質問文そのままじゃわからないので経験を加味して質問文を解読して少しでも回答できるやつを増やそうとしてくれてるんだよ。
おまいさんの質問文そのままじゃ超絶エスパーがスレに降臨するまで話がすすまないよ。
277:デフォルトの名無しさん
19/04/06 21:50:12.97 1moq2C1C0.net
いろいろな人がいろいろな表現で指摘しているけど、
結局のところのお前が程度が他人とコミュニケーション取るレベルに至ってないって指摘だ
早く人間に達しろゴミクズ
278:デフォルトの名無しさん
19/04/06 22:35:24.43 YyWMpA9h0.net
>>270
> 要するに、やったことが無いから何故俺がそれをやりたいことがわからないんだね。
逆、下手に「右上の×で消した時」とか書くからやりたいことがわからないって話
フォームの閉じ方は「右上の×で消す」だけじゃないから知ってる人は特別に「右上の×で消した時」を区別したいのか?とか思うんだよ
>>242-243でも指摘されてるだろ
> でも回答を教えてくれた人居るし・・。
>>243はかなり親切だからいくつかのケースを書いてくれてるけどそれでも
> 具体的に何が目的かを書いてもらった方が答えやすいと思う
って書かれてる意味を考えなよ
279:デフォルトの名無しさん
19/04/06 22:47:01.10 ZtBD8DJx0.net
みんな優しいな
280:デフォルトの名無しさん
19/04/06 23:04:06.29 hyh7Xf1q0.net
>>275
>242 Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?
242には触れたくなかったけど、こんなこと240に書いてないし242は馬鹿なんだと思う。
それをおかしいと思わない275もどうかなと思う。close()で閉じてもIsDisposedで判別できるし
何で気にするか分からないな。ていうかウィンドウの右上にXが無いのかな?
281:デフォルトの名無しさん
19/04/06 23:14:09.25 j7WnBgX90.net
>>277
日本語が拙いから推測されただけだろ。エスパー求めてるのに何言ってる。
282:デフォルトの名無しさん
19/04/07 00:08:13.42 fnPZIWU30.net
ここまでいろんな人が指摘してるのに論点が噛み合わないのは逆に逸材なのでは
なんかモスバーガーの包み紙のスレを思い出した
283:デフォルトの名無しさん
19/04/07 00:36:33.50 yNnH+Rdg0.net
初歩的な質問で申し訳ないのですが、c#のガベージコレクション機能は循環参照状態にあるインスタンスも破棄してくれるのでしょうか?
暫く調べたのものの「リークするから弱参照を使う」「GCに頼っていい」「javaなど一部言語は破棄する」など多くの話があり混乱しています
より専門的な、ガベージコレクションの内部的な仕組みそれ自体を説明しているサイトは私の知識では理解できませんでした
例えばa→b→c←→dという向きで参照しているインスタンスの組み合わせがあったとして、
aからbの参照を切ってもGCで回収されるのはbだけでcとdの組は残り続けるのでしょうか
284:デフォルトの名無しさん
19/04/07 00:37:08.32 AJMxYZfA0.net
でもさぁ、サブフォームをXボタンで閉じた時と閉じてないときの判別方法を聞いてるのに
>242 Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?
で選択肢が1個増えて余計ややこしくしてるだけだし
本当に240だけの問題なの?241=242=262の頭に問題は無いの?
285:デフォルトの名無しさん
19/04/07 00:40:32.22 Lr+Z70d50.net
じゃあ、もう一回確認な
サブフォームFORM2を作って右上の×で消した時
どうすれば(どこを調べれば)よいですか?
を
A=サブフォームFORM2
B=右上の×で消した
で置き換えたとき
Aを作ってBのとき
どうすればよいですか?
って何言ってるのかさっぱりわからないよね?
これで世の中渡っていけると本気で思っているのか?
286:デフォルトの名無しさん
19/04/07 00:44:13.15 Lr+Z70d50.net
>>281
じゃあ、質問に答えてね
サブフォームFORM2を作って右上の×で消した時どうすれば(どこを調べれば)よいですか?
287:デフォルトの名無しさん
19/04/07 00:49:36.20 vK2HJm7v0.net
>>282
気持ちは分かるが落ち着けw
>>236は>>240で意味不明だっと認めて訂正してるぞ。
288:デフォルトの名無しさん
19/04/07 00:55:57.83 Lr+Z70d50.net
>>284
そんなの考慮する必要ない
だって彼にもその気はないんだから
289:デフォルトの名無しさん
19/04/07 01:00:11.33 h90p5IeD0.net
>>281
いったい何に拘ってるんだ?そこまで自分に非があることを認めたくないのか?
>>241,242で君の説明が理解されなかったのは別に変でもないし頭がおかしいという訳ではないぞ。>>262も攻撃的ではあるが頭がおかしいというのとは違う。
誰も>>241等のレスに無関係に、君の一連のレスに対して、説明が下手であること、態度に問題があること、それについて君がいっこうに理解できていないことを指摘しているだけ。
290:デフォルトの名無しさん
19/04/07 01:58:10.82 73jPe6360.net
>>280
こっちの話の方が面白そうだよ
291:デフォルトの名無しさん
19/04/07 05:53:56.72 vRdyA0zq0.net
>>280
そういう単純なケースならc,dともに回収されるので気にするな
292:デフォルトの名無しさん
19/04/07 06:41:43.95 u8jd6Keja.net
>>280
GCの方式が参照カウンタ方式というものなら循環参照があると回収されないけど
C#(.NET)は世代別GCという方式だから循環参照があっても未使用なら回収される
> 例えばa→b→c←→dという向きで参照しているインスタンスの組み合わせがあったとして、
> aからbの参照を切ってもGCで回収されるのはbだけでcとdの組は残り続けるのでしょうか
b, c, dが他から参照されていなければ、b, c, dすべて回収される
293:デフォルトの名無しさん
19/04/07 07:40:40.19 AvqFg2320.net
>>277
う~ん、引っ込みがつかなくなってるのか本当に初心者で何を指摘されてるのか理解できてないのかよくわからんけどここ初心者用だから初心者として仮定して…
Xボタンでフォームを消すと言うのはどちらかと言うと一般的じゃない(普通のフォームならOk/Cancel/閉じるボタン等を配置するよね)ので「右上の×で消す」と書くとなにか特別なことをしようとしてるのかと思われるの
ただ初心者だとXボタンで消すのが当たり前と思ってる人もいるから確認の為に>>242みたいなことを聞いてるわけ
あとそもそもサブフォームの状態を調べると言うのもあまり一般的じゃない
GUIだとイベントで処理するのが普通だから>>238みたいなことを言われる