!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
■ このスレッドは過去ログ倉庫に格納されています
1名無C ◆jPpg5.obl6 (ワッチョイ 762c-FuHz)
2019/03/07(木) 06:35:41.12ID:6L3KEJfe071デフォルトの名無しさん (ドコグロ 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
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- ヨッシー、ヘイホー、テレサ ←こいつらwwwwwwwww
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- くそしてかがやけ
- 一人暮らしだからケツ出してみてるけど
