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みたいなことを言われる
294:デフォルトの名無しさん
19/04/07 07:58:43.91 AvqFg2320.net
>>280
初歩的な質問じゃない気がするがw
まあこのスレとしては「GCに頼っていい」が正解かな
>>289も書いてるけどGC持ってる最近の言語の実装は世代別(と言ってもたいてい2世代だけど)GCになってるのが多く最終的にはマーク&スイープで回収されるのが一般的なので全部回収されると思ってていい
295:デフォルトの名無しさん
19/04/07 14:00:44.14 yNnH+Rdg0.net
>>287-289,>>291
ありがとうございます、助かりました
もう少しC#に慣れるまでメモリ管理は忘れます
296:デフォルトの名無しさん
19/04/07 16:38:33.55 gLMV6b6F0.net
Listboxにデータをバインディングするときに、XAMLにBinding記述する方法と、コントロールに名前を付けてコード上からやる方法がありますが、どちらがよいのでしょうか
297:デフォルトの名無しさん
19/04/07 18:07:02.76 yVw8pf+H0.net
好きにすれば良いけど転がってるサンプルコードはほぼXAMLでやってるな
298:デフォルトの名無しさん
19/04/07 18:24:40.28 bCl1La9L0.net
GCがちゃんと動いてオブジェクトが解放されたのかは、デストラクタに
Console.WriteLine("解放されますた!");
と書いておくと安心できる。
メモリリーク発生の可能性も減る。
299:デフォルトの名無しさん
19/04/07 18:48:15.95 zc2PfqGUM.net
>>295
心の安寧が欲しいなら止めないけど
C#では、パフォーマンスを低下させるため、プログラムの動作に必要がない
ファイナライザを実装すること自体が推奨されないことは、知っておいた方がよい
パフォーマンスが低下するのは、ファイナライザの実装されていると
GC時にファイナライザキューを介してファイナライズが行われるが
このファイナライズを行う際はStop the worldする必要があるためだ
ファイナライザを保険として実装した上で、前述のパフォーマンス低下を避けるには
自分でファイナライザ相当の処理をした上でSuppressFinalizeを呼び出しておく必要がある
この場合、ファイナライザは実行されなくなり、パフォーマンスの低下も起きない
300:デフォルトの名無しさん
19/04/07 18:49:09.04 QS/EO+8da.net
デストラクタにはなるべく頼らないようにしようぜ
デストラクタを記述するにしてもDispose()されたときにGC.SuppressFinalize(this)しようぜ
>>295
出力の有無でメモリリークに気づける可能性はあるが「発生の可能性も減る」について詳しく
301:デフォルトの名無しさん
19/04/07 19:36:38.60 AJMxYZfA0.net
既にスレを荒らした状態になってるから、もうこれで最後にするけど
>>290
の上8行「右上の×で消す」という書き込みは初心者が使うフレーズだから
中~上級者の俺様は深読みして間違えたと解釈したけど
本物の中上級者でも「右上の×で消す」の意味は「右上の×マークをクリック
して窓を消す」以外ありえません。そういうわけであなたは
初心者でも中~上級者でもない別の何かです。
初心者の書く「右上の×で消す」の文が不満で何で
「Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?」
何で選択肢が増えるんだよw
プログラムより国語の勉強しないと。
回答側に回りたいなら模範回答できる質問だけにしてください。
302:デフォルトの名無しさん
19/04/07 19:41:49.21 AvqFg2320.net
>>298
> 「右上の×で消す」の意味は「右上の×マークをクリックして窓を消す」以外ありえません。
どうしたらこんな頓珍漢なレスができるんだよ…
誰もその意味がおかしいとか言ってるわけじゃないぞw
303:デフォルトの名無しさん
19/04/07 20:15:40.25 AJMxYZfA0.net
>>299 何でイベントのclosedでは駄目かというと、閉じた瞬間の情報が欲しい訳ではないからです。
窓閉じてしばらくして閉じたかどうか知りたいってことなので。なんでそんなこと知りたいんだよ(怒)
って言われても別にいいだろとしか。c#はイベントで処理するからって考えの人にあれこれ
言う義務は俺には無いよ。
304:デフォルトの名無しさん
19/04/07 20:16:16.95 QS/EO+8da.net
>>298
初心者様ってすごいね
ちゃんとした回答が欲しいなら質問をちゃんと書いてね
URLリンク(teratail.com)
ここは5chだから多少は違いがあるけど「正しく伝わる質問の仕方」は同じだよ
305:デフォルトの名無しさん
19/04/07 20:32:13.15 E1covCOyM.net
昨日今日はどのスレもこんなのばっかりだぜ
金払ってスクールでも通えよって
306:デフォルトの名無しさん
19/04/07 20:37:07.02 AvqFg2320.net
>>300
別に閉じてるかどうかを知りたいことがないわけじゃなくて珍しいって話な
たいていの場合はなにか設計がおかしい可能性が高い
まあ俺に影響あるわけじゃないから好きにすればいいと思うけどw
307:デフォルトの名無しさん
19/04/07 20:56:30.81 AJMxYZfA0.net
>>301
回答は貰ったんだよ。
質問はその後訂正してる。他の上級者は理解して神回答を頂きました。
>>281-285見たら誰が問題か分かる。284に変なレスしてる奴。
C#はイベントだけで処理すると考える学生がイベントのclosedで解決すると思ったら
解決しないから発狂してキチガイとか日本語が変とか難癖つけたんだろ。
308:デフォルトの名無しさん
19/04/07 21:09:42.81 aPMrZc410.net
ゴミクズにレスつけてる奴も死なねえか
お前のせいで終わらんのやぞ
309:デフォルトの名無しさん
19/04/07 21:39:33.31 QS/EO+8da.net
>>304
質問内容に >>300 中の「閉じた瞬間の情報が欲しい訳ではないからです。窓閉じてしばらくして閉じたかどうか知りたい」
という内容も書かれていたら、最初から正しいIsDisposedの回答だけが得られたかもしれないね
「学生」を罵り言葉として使っているということは社会人かな?
その態度を貫けるくらいには沢山エスパーが居る会社なのかな、凄い環境だなあ
310:デフォルトの名無しさん
19/04/07 21:59:51.43 FnnSZHMw0.net
>>298
え?じゃあ聞くけど
サブフォームFORM2を作って右上の×で消した時どうすれば(どこを調べれば)よいですか?
FORM2 form2 = new Form2();
311:デフォルトの名無しさん
19/04/07 22:30:58.81 RA8LBCNw0.net
オフショア開発してるけどこんな訳わからない質問ばっかで気が狂いそうになるよ
エスパー能力欲しいなぁ
312:デフォルトの名無しさん
19/04/07 22:31:35.27 AvqFg2320.net
>>306
まあ引っ込みつかなくなってるんだろうね
学生云々は不問にするとしても
> C#はイベント「だけ」で処理すると考える
とか誰も書いてないことを言い出してるしw
313:デフォルトの名無しさん
19/04/07 23:15:27.17 fnPZIWU30.net
この議論はGCに処理してもらおう
314:デフォルトの名無しさん
19/04/07 23:52:46.05 h90p5IeD0.net
>>310
なるほど。この無価値な議論の中身を気にして参照してるのはもはや当人同士の循環参照のみだから、>>289に書かれている通り世代別GCで回収されるわけですな。
315:デフォルトの名無しさん
19/04/08 20:04:21.39 bxLyJs4eM.net
引数について質問させてください
ref と out の違いってなんですか?
どういうときに ref を使うのか、out を使うのか、よくわかりません
316:デフォルトの名無しさん
19/04/08 20:16:44.97 DkSPe/Rf0.net
>>312
URLリンク(www.atmarkit.co.jp)
317:デフォルトの名無しさん
19/04/08 20:23:20.59 WPZzOuq3a.net
>>312
ref引数は、呼び出し先関数で、引数を使うし設定もする場合に使う
out引数は、呼び出し先関数で、引数を設定するだけの場合に使う
この違いにより、refで渡す引数は初期化しておく必要があるけど、outで渡す引数は未初期化でも構わない
.NET Framework中にある実例としては
int.TryParse()の場合、文字列の数値を引数に設定するだけで、引数の元々の値は使わないから、out引数でいい
難しい例だがInterlocked.CompareExchange()の場合、引数の値を返すし引数に設定する必要もあるため、ref引数が必要
値型と参照型の違いも知っておいたほうがハマりにくいかも
318:
19/04/08 21:00:25.38 PMJ1/1Ak0.net
>>314
めんどくさいので out は忘れて ref ばかり使っていますが問題ありますでしょうか!?
319:デフォルトの名無しさん
19/04/08 22:47:42.86 WPZzOuq3a.net
>>315
refでも問題らしい問題は無いだろうけれど
refでなくoutで済む場面ならoutを使ったほうが楽できる
未初期化変数でも渡せるし、C# 7からはout引数の場所で変数宣言が出来るようになった
URLリンク(docs.microsoft.com)
ただout引数やref引数を取る関数はasyncやiteratorメソッドに出来ないから
最近の風潮だと、out引数を経由して多値を返すよりも、戻り値の型をValueTupleにして直接多値を返す方が良さそう
URLリンク(ufcpp.net)
320:デフォルトの名無しさん
19/04/09 00:18:34.64 /fBSGCK40.net
コンストラクタでテキストボックスの値でフィールドを初期化しようとしたら怒られた これダメなのか…
321:デフォルトの名無しさん
19/04/09 02:13:47.76 UAdV14hW0.net
>>317
なんと言って怒られたの?
322:デフォルトの名無しさん
19/04/09 10:04:22.44 iYhZfRkA0.net
おんどりゃぁふざけた初期化すんじゃねぇ です
323:デフォルトの名無しさん
19/04/09 10:26:21.20 euLRl0x60.net
>>317
日本語でおk
324:デフォルトの名無しさん
19/04/09 11:37:19.16 6ZB9MqDTM.net
コンストラクタでテキストボックスの初期化、俺じゃなきゃ見逃しちゃうね
325:デフォルトの名無しさん
19/04/09 11:56:56.57 hdDhGrZ5a.net
>>317
デザイナーで置いたテキストボックスのインスタンス構築や、各種プロパティの設定は
実際はInitializeComponent()メソッドの中で行われる
InitializeComponent()よりも前で値を読もうとしてNullReferenceExceptionが出ているのなら
InitializeComponent()の後で値を読めばいい
までエスパーした
326:デフォルトの名無しさん
19/04/09 21:10:24.64 0DYeC
327:6pW0.net
328:デフォルトの名無しさん
19/04/09 21:31:50.99 2u68c9Dp0.net
標準出力に改行が出力されてないから
329:デフォルトの名無しさん
19/04/09 21:49:55.14 0DYeC6pW0.net
>>324
試しに全部のprintfに改行入れてみたけど、それでもscanfが全部終わるまでOutputDataReceivedイベント発生しないっぽい。
C#側で標準出力を受け取ってstringに追加 ー> exe側は入力待機 ー> C#側からStandardInput.WriteLineで標準入力 ー>exe側は処理続行
みたいな コマンドプロンプトからのの実行と同じような動きをする処理って、C#じゃどうやるんだろう?
330:デフォルトの名無しさん
19/04/09 23:25:15.43 2u68c9Dp0.net
stdoutがパイプに繋がってるとprintfは改行があろうがバッファし続ける
setbuf(stdout, NULL)しとくか、printf後にfflush(stdout)するか
331:デフォルトの名無しさん
19/04/09 23:39:38.53 IIo4qqMm0.net
C#関係なくね?
332:デフォルトの名無しさん
19/04/09 23:59:05.15 0DYeC6pW0.net
>>326
setbufでもfflushでも何故か入力待機状態が終了するまでOutputDataReceivedイベントが発生しなかったからあきらめてテキストファイルにログ出力してそれ読み込むことにするわ
教えてくれてありがとう
333:デフォルトの名無しさん
19/04/10 20:02:38.36 YVfMef4MM.net
>>313-316
だいぶ返信が遅れてしまいました
まとめてですみませんが、親切に教えていただきありがとうございました
334:デフォルトの名無しさん
19/04/12 22:52:29.27 luZS+mvc0.net
C#関係ないんだけどシングルトンの使い場所がわかりませぬ
こんなクラスがあるとして、
class a{
Dictionary<string, string> hoge;
public string getHoge(key)
{return hoge[key];}
}
hogeにはDBから対象の精々100くらいの全レコード取ってきて格納しておきたい
複数インスタンスが必要にはならないようなデータ
外部からのsetは許可しない
こういう時ってシングルトン使ってnew時にDBからデータ取得とかしていいのでしょうか?
もっと賢いやり方あります?
335:デフォルトの名無しさん
19/04/12 23:01:43.16 fgu2eH2Ta.net
>>330
シングルトンはテストを困難にするアンチパターンだから忘れていい
単一のインスタンスが欲しい場合はDIを使う
336:デフォルトの名無しさん
19/04/12 23:09:32.03 SGqhATO10.net
>>331
DIとシングルトンは全く別の概念やぞ…
337:デフォルトの名無しさん
19/04/12 23:11:43.52 fgu2eH2Ta.net
>>332
DI使ったことないの?
単一のインスタンスを共有するのは大抵のDIコンテナでサポートされている一般的な機能だよ
338:デフォルトの名無しさん
19/04/12 23:33:00.52 HVuVGzQQr.net
staticじゃあかんの?
339:デフォルトの名無しさん
19/04/12 23:33:46.50 FJ5vSxoFM.net
発想の飛躍やべぇな
340:デフォルトの名無しさん
19/04/12 23:40:02.85 le1Q6kdLM.net
シングルトン大好き。
状況的に複数インスタンス生まないクラスは必ずと言っていいほどシングルトン。
341:デフォルトの名無しさん
19/04/12 23:41:28.59 le1Q6kdLM.net
class名.staticメソッド、static変数を多用。
342:デフォルトの名無しさん
19/04/12 23:47:39.11 SGqhATO10.net
>>333
お前こそプログラミングしたことないやろ…インスタンスの意味から調べてこい
343:デフォルトの名無しさん
19/04/12 23:51:53.21 GRWvVKgh0.net
>>334
get setでなんか仕掛けるでもしない限りはstaticでいいよな
344:デフォルトの名無しさん
19/04/13 00:17:16.36 DF10sMIkM.net
>>339
ユニットテストでモックしたいときどうすんの?
345:デフォルトの名無しさん
19/04/13 00:45:48.83 gAxxWG/M0.net
シングルトン的なことがしたいときの今時のやり方はDI使うことだな
346:デフォルトの名無しさん
19/04/13 01:23:05.24 4BHEL+7ta.net
>>330
言語レベルで単一インスタンスの強制を保証する必要が
本当にそんなにしばしばあるのかなとは個人的には思うね。
要は共有方法を明確にしておけば十分じゃないかと。
そもそも共有されるオブジェクトを各々が勝手にnewするのがおかしいわけで。
具体的には、例えばWindows FormならVSが自動生成するProgramクラスの
staticな読み取り専用プロパティとして実装する約束にしておけば済む
347:デフォルトの名無しさん
19/04/13 05:26:30.24 f7He4YCD0.net
俺もそう思う
べき論としてみんな口々に言うけどそこを懸念するとかどんだけ連携がないチームなんだよ
348:デフォルトの名無しさん
19/04/13 08:35:33.20 vIVj+RyW0.net
>>341
ただ、DIもシングルトンの一形態という記述は見たことが有る
349:デフォルトの名無しさん
19/04/13 08:39:55.79 Gb+AenIc0.net
以前に書いたプログラムを元に加筆修正して別のプログラムを作った時
フォルダもソリューションも別名で保存したいのですが
VisualStudioはそういう保存はできないのでしょうか?
今は力業であらかじめ別名フォルダにコピーしたソリューションから作り始め
ソリューション名、プロジェクト名、アセンブリ名、空間名
等を書き換えてからプログラムの修正を始めるのですが
時々何かがおかしくなってバインディングが外れたり
破綻してしまうこともあるので
何か安全に書き換える方法があるのかな?と質問しました
350:デフォルトの名無しさん
19/04/13 08:52:30.68 J/cBqpWVM.net
>>345
いい加減git使おう
351:デフォルトの名無しさん
19/04/13 09:32:07.36 Gb+AenIc0.net
>>346
うーんちょっと調べただけだけどヤヤこしそう・・・
それにバージョン管理とは違うんだよなー
ワープロを元にデータベースを作ったからフォルダもソリューションも変えて保存したい
って感じなんだけど
352:デフォルトの名無しさん
19/04/13 09:39:52.37 vbn0MA6qa.net
レベル下がったなこのスレも
VB.NETとJavaが終わりつつあるから流入してるのか
353:デフォルトの名無しさん
19/04/13 09:55:51.57 J/cBqpWVM.net
>>347
慣れたら自然にそんなアホなことをしようとは思わなくなるから気にしなくていい
俺も初心者の頃はそうだったから気持ちはよくわかる
354:デフォルトの名無しさん
19/04/13 09:59:00.31 C2d1A80t0.net
>>348
レベルの高い時期があったみたいな言い方だな
355:デフォルトの名無しさん
19/04/13 10:04:10.28 vzJQEXVg0.net
>>347
ソリューションを変えるのはわかるけど
> プロジェクト名、空間名
とかは変えなくても良くね?
356:デフォルトの名無しさん
19/04/13 10:41:12.62 kUX6ubEA0.net
>>351
そうなの?
とりあえずその方がコードも分かりやすいから
exeとタスクトレイに表示される名前だけ反映させるには
アセンブリ名とアセンブリ情報の中だけでいいのかな
357:デフォルトの名無しさん
19/04/13 10:44:39.80 nXQ9b0jN
358:0.net
359:デフォルトの名無しさん
19/04/13 11:21:31.91 umtct5vHa.net
>>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
// URLリンク(ufcpp.net) もどうぞ
360:デフォルトの名無しさん
19/04/13 18:28:52.41 a4r2Gpw40.net
この言語は、見かけはC++の兄弟分のような顔をしたVBだな。
361:デフォルトの名無しさん
19/04/13 18:49:30.17 nXQ9b0jN0.net
>>354
ありがとう!やっとわかったぜ!!!
362:デフォルトの名無しさん
19/04/13 22:22:05.47 zPnWLOfMa.net
>>354
こんな機能追加されてたんだw
でも積極的な使い方を思いつかんなあ
363:デフォルトの名無しさん
19/04/13 22:30:05.68 4tcIFh//0.net
後から追加された機能ってどれもセンスないよね
364:デフォルトの名無しさん
19/04/13 23:41:32.18 04eDeW4Td.net
>>358
は?
365:デフォルトの名無しさん
19/04/13 23:52:54.44 4tcIFh//0.net
>>359
は?じゃねぇよクソ虫
366:デフォルトの名無しさん
19/04/14 00:08:30.69 01zt8L7jd.net
>>360
ジェネリクスもセンスないのかい?
367:デフォルトの名無しさん
19/04/14 00:26:39.46 eLdyJ0cI0.net
>>358
最近追加された機能は効率重視でちょっと分かり難いのもあるから、
そういう風に見えるのも分からないでもない。
368:デフォルトの名無しさん
19/04/14 00:53:29.67 DOuVmEEK0.net
言語の価値って開発環境も含めて評価すべきじゃない?
自分は別に他の言語でもよい処理をついついc#でやっちゃうのはやっぱりIDEの強力なサポートがあってのことだわ
369:デフォルトの名無しさん
19/04/14 08:42:45.32 H5M6zKH30.net
>>363
これはRuby先輩を呼び寄せるための撒き餌ですか?
370:デフォルトの名無しさん
19/04/14 08:50:41.27 k2b6YaL90.net
C#は、CとC++の系列のように外見を装っているが、実際にはVBのほうが似てる言語だろう。
CやC++に対しておこがましさを感じる。
371:デフォルトの名無しさん
19/04/14 08:55:34.96 TOfo8K8Bd.net
>>358
ラムダ式とか使わんの?
372:デフォルトの名無しさん
19/04/14 09:07:27.41 UDnauAFh0.net
>>363
言語の基本文法のみ良し悪しとか、標準ライブラリまで含めての評価とか、議論の対象をどこまでとすらかは文脈によるだろうし、君が開発環境まで含めた話をしたいというならそういう話題をふって話を進めればいいよ。
言語単体での話をしている時に「いやいやIDEが~」とか言い出すと話が発散するから、議論の対象は明確に区切って意識した方がいい。
373:デフォルトの名無しさん
19/04/14 09:28:07.93 VqeGGHsz0.net
>>358
.NET 1.1 の世界から出てくるな
374:デフォルトの名無しさん
19/04/14 09:34:22.94 LBjjw3Zya.net
今の時代、言語だけ語っても意味はないよなぁ
使えるオプソのバラエティとか、コンテナとの親和性とかの評価は避けて通れない
375:デフォルトの名無しさん
19/04/14 12:23:16.39 cHKb6r3Sa.net
>>357
この辺の追加機能はパフォーマンスを求めるための機能だから
速度特化ライブラリの製作者は使うだろうけど、それ以外の開発者は使う機会少ないかも
URLリンク(ufcpp.net)
>>358
URLリンク(github.com)
C#の言語仕様はgithub上で公開で議論されている
センスある機能について議論や提案してみたらどうだろう
もちろん何かコメントしたりissueを立てたりする前に、検索して既出じゃないか確認するのを忘れずに
376:デフォルトの名無しさん
19/04/15 12:22:07.84 3hi8+ot50.net
先日windows7からwindows10にOSの入れ替えをしたのですが、win7では動いていたPostMessageが動かなくなってしまいました。
(送り手は自作のソフト、受け手は市販のソフトで、Win7でもWin10でも同じものです)
あるアプリケーションに
PostMessage(hWnd, WM_KEYDOWN, VkKeyScan("0"), 0);
のようにして数字を送信していたのですが、これが反応しなくなりました。
ウィンドウハンドルの取得とかは問題がないようです。
これ以外でも
PostMessage(hWnd, WM_KEYDOWN, VK_RETURN, 0);
等すべてのキーが送れません。
対処法がありましたら教えてください。
377:デフォルトの名無しさん
19/04/15 12:24:05.77 3hi8+ot50.net
正確に言うと(正確かどうかはわかりませんが)、
送り手側でエラーが出るわけではなく、受け手側のテキストボックスを一応選択はしているので、
送り手側としては送っているつもりですが受け手側が反応しなくなっている状態だと思います。
送り手の発信方法を変えればいいのでしょうか?
378:デフォルトの名無しさん
19/04/15 13:27:46.92 3hi8+ot50.net
すいません、解決しました。
管理権限の問題でした。
379:デフォルトの名無しさん
19/04/15 22:16:04.04 l4hdcBztd.net
新しいバージョンたくさんあるけど業務だとどの辺まで使ってるところが多いんだろ
valueタプルとかみんな使えてる?
380:デフォルトの名無しさん
19/04/15 22:17:38.51 p/g7dyR00.net
>>374
ようやく4.5.2が許されるようになったよ・・・
381:デフォルトの名無しさん
19/04/15 22:37:21.92 +hafi/JFa.net
>>374
.NET Core 2.2/C# 7.3使ってるよ
382:デフォルトの名無しさん
19/04/16 08:08:51.63 4W+nw3aAa.net
うちも最近やっと3.5.1縛りが解けて4.5.2になったよ
383:デフォルトの名無しさん
19/04/16 08:14:19.68 5XyUIsTTd.net
>>374
うちは.NET Core2.1、C#7.3
次のLTSは3.1だっけ
384:デフォルトの名無しさん
19/04/16 08:15:38.75 5XyUIsTTd.net
てかVisual Studioをちゃんと更新してればC#のバージョン上げるのは全然問題なくね?
385:デフォルトの名無しさん
19/04/16 08:20:00.65 3+f8cxJ/0.net
最近?が多くて辛い
null条件演算子でも目眩がするのに
null合体演算子なんか使われたら頭いたい
ところでcoalescingてなんて読むんや
386:デフォルトの名無しさん
19/04/16 08:32:26.55 mJc9sIPpa.net
>>379
ネックはランタイムの方でしょ
387:デフォルトの名無しさん
19/04/16 08:37:21.73 bBG3RNJT0.net
Windows7のサポートが切れれば少しはましになるのかねぇ
388:デフォルトの名無しさん
19/04/16 09:11:39.30 gry//OiE0.net
>>377
async awaitへようこそ
389:デフォルトの名無しさん
19/04/16 12:31:57.15 5XyUIsTTd.net
>>381
だから「C#のバージョン上げるのは」って言ってんのに
390:デフォルトの名無しさん
19/04/16 14:23:13.78 o1OTQxfgr.net
とりあえずVSのバージョンだけでもあげてほしいわ
今時2008とかもう
391:デフォルトの名無しさん
19/04/16 15:21:56.74 gbkfFEj/0.net
>>385
こっそりあげちゃえよ。だれもお前のことなんかみてないからさ。
392:デフォルトの名無しさん
19/04/16 17:28:56.19 CzwWdC590.net
2015ってアン�
393:Cンストールしても平気かな。SSDの空きがかつかつで2019インストールするなら2015は消したい
394:デフォルトの名無しさん
19/04/16 18:43:16.58 HeVWn8Fl0.net
VS2010からVS2017に上げたら変数名に全角の・使ってるところがビルドエラーになったわ。
こんなの変数名に使うなよと思いながらVS2010で名前変えまくった。
395:デフォルトの名無しさん
19/04/16 18:54:44.72 csRNrKVvM.net
フォームから自動生成したイベントハンドラの頭文字が大文字じゃねぇぞって怒られてるんだけどデフォルトでこうなの?
396:デフォルトの名無しさん
19/04/16 19:43:25.05 4DXe6mce0.net
>>388
ユニコードのせいね
C#6.0の時のやつ
397:デフォルトの名無しさん
19/04/17 20:49:20.12 WkJZEAk70.net
ドット絵エディタを作りたいんですが、win formでやってます
ピクセルを描くベースとなるフォームはどれを使用すればよいのでしょうか。
398:デフォルトの名無しさん
19/04/17 20:56:19.46 SfPYWsjk0.net
フォームに直書きでいいよ
399:デフォルトの名無しさん
19/04/17 20:59:20.56 VDkzUi/q0.net
>>391
コントロールなら画像の描画に使うのはPictureBoxでやっとけば調べるのも楽だよ
書き間違いでなく何か別の意味で「フォーム」って書いているのならよくわからない
400:デフォルトの名無しさん
19/04/17 21:12:48.03 QwWDImoN0.net
>>391
ピクセルを書くなら Paint だろ。
URLリンク(www.youtube.com)
401:デフォルトの名無しさん
19/04/17 21:28:00.17 WkJZEAk70.net
pictureboxかpaintですね ありがとうございます
402:デフォルトの名無しさん
19/04/18 00:15:51.35 xpC+XoNH0.net
textboxで描く
403:デフォルトの名無しさん
19/04/18 06:13:29.99 VndYiJ+Y0.net
コントロールとクリックイベントはどのような関係になっているんでしょうか。
コントロールは関数で、そのローカル関数がクリックイベントでしょうか?
404:デフォルトの名無しさん
19/04/18 08:27:46.76 KcatLawH0.net
インテリセンス表示してみろ
vscodeとかならリファレンス表示しろ
Control "クラス" って書いてあるだろうが
405:デフォルトの名無しさん
19/04/18 10:05:51.26 VndYiJ+Y0.net
クラスですか ごめんなさい
406:デフォルトの名無しさん
19/04/18 17:04:33.74 /n+AA5ti0.net
>>399
クリックイベントなどのイベントはそのクラスのデリゲートな
407:デフォルトの名無しさん
19/04/18 18:55:27.19 VndYiJ+Y0.net
デリゲートって語をはじめてしりました
408:デフォルトの名無しさん
19/04/18 19:28:26.95 fqeeOSlB0.net
デリケートな話題だからね
409:デフォルトの名無しさん
19/04/18 19:38:07.87 cTBQXOBu0.net
デリケートゾーンの話ですか?
410:デフォルトの名無しさん
19/04/18 19:57:39.62 YCaR8eKbM.net
最初は、関数ポインタ+アルファぐらいに思っておけば
後で騙された~になるけど
411:デフォルトの名無しさん
19/04/18 23:09:25.88 4whWZ0bM0.net
>>400
イベントとデリゲートは全く同じじゃないけどな
412:デフォルトの名無しさん
19/04/18 23:33:46.05 xpC+XoNH0.net
ポインタなんて今時通じるのか?
413:デフォルトの名無しさん
19/04/19 09:21:10.96 okUcwqho0.net
Javaでnull参照した時にNullPointerException投げてくるうちは現役だろ(適当
414:245
19/04/19 12:51:17.11 5BNgMycMM.net
ぬるぽ
415:デフォルトの名無しさん
19/04/19 16:10:17.23 OM7ktdHt0.net
ぬるぽ
416:デフォルトの名無しさん
19/04/19 21:56:33.56 5QVRwjzm0.net
List<T>から要素を1つずつ要素を取り出して処理し、例外が起きたらその要素だけリストから消したいんだけどさあ
なんかいい手段ってないのかな?
雰囲気としてはこんな感じのが書きたいんだけど・・・・おらの頭じゃうまく書けんだ・・・・
foreach(var o in listOfObject){
try{ 例外処理以外では対処が難しい怪しい処理(o); }
catch{ 例外が起きた項目だけlistOfObjectから消したいが、ちゃんとforeachも回って欲しい(); }
}
417:デフォルトの名無しさん
19/04/19 22:02:58.03 MllfoE8V0.net
新しいList<T>作ってcatchしたときにAddして
foreach終わった後でRemoveしていく
418:デフォルトの名無しさん
19/04/19 22:04:41.49 4Fr35pSP0.net
>>410
foreachじゃなくfor (i = listOfObject.Count; i > -1; i--)とかじゃだめなのか
頑張ってforeachにしてもめんどくさくなるだけの気がする
419:デフォルトの名無しさん
19/04/19 22:04:44.06 MllfoE8V0.net
var erroredItems = new List<Hoge>();
foreach (var item in originalList) {
try { ... }
catch { erroredItems.Add(item); }
}
foreach (var item in erroredItems) {
originalList.Remove(item);
}
420:デフォルトの名無しさん
19/04/19 22:09:40.78 5QVRwjzm0.net
ありがとう
こうやってやるもんなのか
421:デフォルトの名無しさん
19/04/19 22:27:07.32 i0tIRf8t0.net
listOfObject.RemoveAll(obj =>
{
try
{
・・・・・・なんか処理
return false;
}
catch
{
return true;
}
});
422:デフォルトの名無しさん
19/04/20 00:02:36.27 /zNBD6gY0.net
リストに追加前にtry処理したらダメなん?
それができないなら俺も415のやり方が良い
423:デフォルトの名無しさん
19/04/20 00:10:17.26 4fcRoJkza.net
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();
424:デフォルトの名無しさん
19/04/20 06:45:01.92 eu9xvtsyM.net
>>408
ガッ
425:デフォルトの名無しさん
19/04/20 06:45:18.46 eu9xvtsyM.net
>>409
ガッ
426:デフォルトの名無しさん
19/04/20 08:09:20.70 u/QGNgma0.net
このスレ的にはぬるぽではなくぬるりなのか。エロいな。