ふらっと C#,C♯,C#(初心者用) Part142

■ このスレッドは過去ログ倉庫に格納されています
2019/03/07(木) 06:35:41.12ID:6L3KEJfe0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

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

■関連スレ
C#, C♯, C#相談室 Part93
http://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
42デフォルトの名無しさん (ワッチョイ bf2d-geq4)
垢版 |
2019/03/17(日) 02:57:55.04ID:XTuejaeR0
多くの人がUIデザインのセンスが無いのに、xxML直書きが主流のせいで更に悪くなってる気はするな
C#に限ったことじゃないけどさ
2019/03/17(日) 14:45:31.20ID:nIiKRKOv0
>>41
企業で開発する場合ならその方が良いかも知れんが、個人開発だと、
そういう風にGUIとプログラムを全く分けてしまうのは、面倒なだけ
の事が多い。
2019/03/17(日) 15:01:57.71ID:XvGPMByna
>>43
君は個人開発でどういうものを作っていて具体的にどういう面倒があるの?
45デフォルトの名無しさん (ワッチョイ b302-7f+e)
垢版 |
2019/03/17(日) 15:03:58.84ID:k04EM+xl0
>>43
最初から素人用の作りじゃ無いって書いてるのに、その回答は。。。
2019/03/17(日) 16:07:01.80ID:tI0+M4DZ0
>>45
個人開発=素人
と紐付けるのはおかしい
2019/03/17(日) 16:10:04.12ID:nIiKRKOv0
>>44
>具体的にどういう面倒があるの?
プログラムで論理的に配置した方が柔軟性が増すし、デザイナーを使う
場合よりも作業も短時間で済む事が多い。
2019/03/17(日) 16:14:27.92ID:XvGPMByna
>>47
だから具体的に
あなたは何を作っていて何の作業が短時間に済んだのですか?
2019/03/17(日) 16:29:36.83ID:nIiKRKOv0
MS には潰れてほしいので、MSに今後の方向性を与えるような情報葉与えられない。
2019/03/17(日) 16:47:04.83ID:tI0+M4DZ0
潰れて欲しいのならなんでこのスレ居るのさ
2019/03/17(日) 17:18:35.03ID:X0IS4dBaa
>>50
どの口がそれを言う
スレの趣旨を無視した議論に参加してる君も同類じゃないのか

議論専用のスレがあるんだからそっちでやれよ。
何でわざわざ場違いなスレでやるんだよ。頭悪すぎじゃないのか
ふらっと C#,C♯,C#(議論用)
http://mevius.2ch.net/test/read.cgi/tech/1469538912/
2019/03/17(日) 17:19:24.64ID:8Q3kRdi6d
プログラミングの需要の大多数は企業またはチーム開発だからそっちの方に使い勝手を合わせるのは当然だわな
2019/03/17(日) 19:27:23.84ID:1vkvgzPOM
デバッグが必要な輩が居るようだね
2019/03/18(月) 00:23:18.58ID:BUmRg9/50
>>49
このレスは恥ずかしい
55デフォルトの名無しさん (ワッチョイ 232d-geq4)
垢版 |
2019/03/18(月) 02:32:07.37ID:B+bW3pwA0
DIとグローバル変数おじさんって何が違うのか分からなくなってきたぜ
よく考えたら大して変わんなくないかこれ?
2019/03/18(月) 08:13:37.93ID:qC5UNTtha
>>55
単体テストのときに差し替えるのが目的
テスト書かないんなら普通にnewすりゃいいよ
2019/03/18(月) 09:28:05.63ID:+omKGkAVM
よく考えたのかもしれないけど足らなかったんだな
2019/03/18(月) 11:32:00.82ID:0ez+CkRlM
貴方には知恵が足らないわ
 何気に酷いな
2019/03/18(月) 22:59:36.84ID:7EMewmQs0
ASPはなにからやればいいの?
winFormsとMVCってなにがちがうん?
2019/03/18(月) 23:01:35.90ID:7EMewmQs0
Web Formsか
2019/03/18(月) 23:04:56.58ID:1F2QIikJa
>>59
全くの別物
WebFormsはWinFormsモドキ
MVCはRuby on Railsモドキ
今始めるなら、英語に抵抗がなければ最新のMVC系フレームワークであるASP.NET Core
英語ダメならオワコンRailsかPHPでもやっとけ
2019/03/19(火) 21:52:22.59ID:45LJYysD0
>>61
>英語に抵抗がなければ
というのが、どのくらいのレベルなのか、には興味があります…最近は英語よりも古代語(ラピュタの黒石に刻まれているあんな感じのやつ)のほうに興味があります
ムスカの台詞「読める!読めるぞ!」を私も味わいたいと考えているのです
2019/03/19(火) 22:16:53.20ID:qnLJux/Ma
プログラミングに限らず技術系の文章の英語なんか普通に受験して大学入った
人間なら誰でも読めるw

英語英語言ってる人は逆にいうとその程度の事で自分を差別化できると思ってる人なんだと
思った方がいいよwww
2019/03/19(火) 23:39:24.63ID:TEpP13LQM
>>62
ヴォイニッチ手稿にチャレンジだ
65デフォルトの名無しさん (アウアウエー Sadf-D8OU)
垢版 |
2019/03/19(火) 23:42:07.90ID:lT8ihTqWa
読めなくても良いけどさ

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

これくらいは変だと自分で気付けないと恥ずかしいぞ
2019/03/22(金) 09:11:49.13ID:Sg7nj/wwM
アップキャスト分かりやすく教えて
何言ってんのかわからん
2019/03/22(金) 10:52:57.55ID:Xx8geMH40
>>65
正しいじゃないか。さすが大阪。間違いを恐れてはいけない
2019/03/22(金) 11:40:01.20ID:pVVdiXqm0
>>66
むしろ何が分からんのか分からんのだが…
class A { }
class B : A { }
クラスAから派生したクラスBがあって
B b = new B();
A a = (A)b; // 暗黙にキャストできるので (A) は不要
B型のインスタンスをA型として扱うこと
2019/03/22(金) 11:45:30.76ID:nPC1T1eJM
型の集合としての包含関係が感覚的に理解できるまでにはわりと時間がかかる
継承とは元のクラスを拡張することであるという言葉に惑わされてはいけない
2019/03/22(金) 12:12:49.38ID:S3zLmlK0M
数値によって変数を使い分けることに関してわからないことがあるので質問させてください

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


これはつまり、数値を扱う場合の変数は基本的にintを使ったほうがよく、必要があればbyteなどの変数を使ったほうがいいということですか?
それともどんな数値でも変数の使い分けをせず、intを使ったほうがいいということですか?
2019/03/22(金) 12:38:37.72ID:nPC1T1eJM
>>70
一般論として、ユーザーコード内で宣言した単独の変数のメモリ消費量が問題になることは「全く」「無い」
巨大な配列を必要とする場合を除けばintでよい
2019/03/22(金) 12:50:16.68ID:S3zLmlK0M
>>71
わかりました
親切に教えていただきありがとうございました
73デフォルトの名無しさん (ワッチョイ 6b2d-yExI)
垢版 |
2019/03/22(金) 17:45:07.05ID:piAmWzDj0
ちょっと上で英語の話題があったついでに用語について教えてほしいんだけどさあ
Concurrency = Asynchronous processing
って理解であってるん?
2019/03/22(金) 17:48:21.39ID:nPC1T1eJM
>>73
間違ってる
シングルスレッドでも非同期プログラミングは必要
75デフォルトの名無しさん (ワッチョイ 6b2d-yExI)
垢版 |
2019/03/22(金) 17:58:40.45ID:piAmWzDj0
Concurrency ∈ Asynchronous processing
こんな感じ?
2019/03/22(金) 18:04:58.89ID:nPC1T1eJM
>>75
間違ってる
並列処理だからといって非同期プログラミングが必要とは限らない
fork-joinなんて普通に同期処理
77デフォルトの名無しさん (ワッチョイ 6b2d-yExI)
垢版 |
2019/03/22(金) 18:19:57.20ID:piAmWzDj0
確かにそうだわ
ただなんかしっくり頭に入らないんで、良い図かなんかないかな
2019/03/23(土) 05:06:26.15ID:RPbAWfs10
SOAP Webサービス(asmx)のC#からの呼び出しで質問なんだが、UserAgentってどうやって設定すればいいの?
ttps://www.ipentec.com/document/csharp-call-soap-web-service
ちなみにここの手順で実装してる
2019/03/23(土) 12:40:40.84ID:RPbAWfs10
soapのUserAgentの追加だけど自己解決したので書いとく
OperationContextScopeにsoapのInnerChannelを渡してOparationContext.Current.OutgoingMessagePropertiesを設定すればよかったみたい
2019/03/23(土) 14:20:50.44ID:xq0oZv2H0
↓こういうデータを保持するためのクラスってなんていうの?EF使わない場合DTOって言わないね?
class Hoge
{
ID { set; get; }

Name { set; get; }

Age { set; get; }

Biethday { set; get; }
}
2019/03/23(土) 14:37:47.12ID:YFI8vOIVM
>>80
貧血ドメインクラス
2019/03/23(土) 15:46:27.60ID:1EN9Vx8A0
>>80
POCO
2019/03/23(土) 16:59:05.27ID:oDoWSLunM
デザパタ扱ってて比較的に新しい書籍教えて
2019/03/24(日) 01:13:49.97ID:yH9zM0xm0
たすけて!
Parallel.Forから
Staticなプログレスバー呼びまくったのに一度も実行時エラーでなかったの
なんで?正常な流れなの・
2019/03/24(日) 01:15:19.62ID:GJ0JjoCX0
>>84
UIを操作できるのはUIスレッドだけ
2019/03/24(日) 01:16:53.70ID:yH9zM0xm0
>>85
プログレスバーはWin7のころの
タスクバーのプレグレスバーなんだよ
2019/03/24(日) 01:18:41.54ID:yH9zM0xm0
Nugetでこれ入れて出せるようになるやつ
Windows7APICodePack

これな
using Microsoft.WindowsAPICodePack.Taskbar;
2019/03/24(日) 01:19:01.98ID:yH9zM0xm0
中でなんかしてるんだろうか
2019/03/24(日) 16:11:44.19ID:SrH2ZhCU0
>>80
パット見、見た目が、JavaScript の JSON 形式に似てる。
2019/03/24(日) 16:19:26.01ID:C+8PS15Z0
それはおめめかおつむがヤバいな
2019/03/24(日) 17:04:29.99ID:GJ0JjoCX0
>>87
だからUIスレッドから操作しろって
https://www.atmarkit.co.jp/ait/spv/1508/26/news029.html
2019/03/24(日) 17:10:34.23ID:gZMjxNOF0
UIスレッド外からいじったのにエラーにならなかったけどなんで?って質問じゃないのか
2019/03/24(日) 18:55:32.16ID:yH9zM0xm0
>>92
そうそう、そういうこと
Parallelで進捗バー増やしてったのに
順調に増えてって正常終了した

TaskbarクラスはStaticでクラスライブラリ(.dll)
なんか理由わかる人いませんか?
2019/03/24(日) 23:49:11.19ID:z21lQS4L0
ソース見てみたらITaskbarList3::SetProgressValue呼んでるだけだし
アプリ内のウィンドウというよりシェルへのアクセスなら
元々UIスレッドで呼ぶ必要ないんじゃねえの

検証してないけど
95デフォルトの名無しさん (ワッチョイ c6fc-WX4v)
垢版 |
2019/03/25(月) 12:38:16.05ID:M0EtypdC0
ドット絵エディタみたいなのは簡単ですか
2019/03/25(月) 12:38:17.23ID:ZS1E97rBM
>>94
あーシェルの可能性か
なるほど

uiスレッドどころか別プロセスか
盲点だったわ
ありがとう、中身見れたら見てみる
97デフォルトの名無しさん (ワッチョイ 5f7c-PdI2)
垢版 |
2019/03/25(月) 13:14:00.29ID:MuEFgcsw0
>>95
エディタ本体つくるのは簡単
各種画像ファイルフォーマットの読み書きが面倒
2019/03/25(月) 13:55:28.16ID:feShKvG5d
>>97
今はnugetでだいたいのフォーマットのライブラリは取得できるんじゃないかな
2019/03/25(月) 14:00:35.30ID:feShKvG5d
てか、Windowsなら標準のBitmapクラスでメジャーどころは扱えるか
100デフォルトの名無しさん (ワッチョイ c6fc-WX4v)
垢版 |
2019/03/25(月) 16:28:23.69ID:M0EtypdC0
>>97
がんばります
ペイントイベント使うだけですよね
2019/03/25(月) 16:39:58.28ID:CQLZj79N0
DrawImageやBitBlt地獄が待ってるんだろうなw
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プロパティで指定したビットマップに描画」を使う。そうじゃないと保存するときにも苦労する
2019/03/25(月) 22:11:51.58ID:sDjcFKgQa
お絵描きに限らないけど、手順を記録するようにしないとundo実装できなくなるよw
何で偉そうにそういう非常識なことを言うかね
2019/03/25(月) 22:17:28.38ID:QIzg3qUJ0
>>103
何の話しているの?
「図形」じゃなく「ドット」エディタで「手順」記録すると大変なことになるよ
undoは任意の時点のデータを退避したらどうにでもできるよ
2019/03/26(火) 02:29:39.88ID:fe5vrK8S0
自分の経験上、Undo、Redoは、プログラミングが難しいことがある。
2019/03/26(火) 02:46:28.44ID:fe5vrK8S0
参照やポインタの値は、一般にはUndoすると変化するので、Undo、Redoを
任意回数行った場合には「識別子」として役立たないことになる。
だから、Draw系ツール、3Dモデラ、3D-CADなどではポインタ値だけで
直線の接続先などを識別するのは難しい。だからと言って座標値だけで識別
できるかというとそれはそれで無理がある場合が有る。だからID番号を付ける
必要が出てくるかもしれない。
CADで、点が1万個有る場合に全選択してから Move した場合の Undo 情報は、
1万個に上る、と言ったような問題点も耳にした。
2019/03/26(火) 02:51:56.51ID:fe5vrK8S0
ツール上では削除しても、内部的には削除せずにメモリ中にずっと残しておけば、
参照やポインタ値は変化することは無い。これを利用する手もあるかもしれない。
ただし、その場合、プログラミング中、オブジェクトを自由に削除できなくなるので、
未来永劫、そのことに気を使い続ける必要がある。
108デフォルトの名無しさん (オッペケ Sr03-s8oI)
垢版 |
2019/03/26(火) 04:35:48.97ID:6g954Hehr
3Dソフトの操作履歴って入れ替え可能だからな(可能な操作のみだが)
それすらすごい
例えばベンドデフォメーションかけた後にオブジェクト同士をマージ
この操作順を普通に入れ替えられる
操作をフリーズ(固める)しない限りどんな操作でも入れ替え可能

そして上記の履歴操作は機能のうちのほんの一部
2019/03/26(火) 05:21:06.95ID:Wr7XD3bSa
ボタンを押すと、計算してその結果をリッチテキストボックスに表示する、構造的にはシンプルなイベントを作ろうとしています。

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

自分としては見出しを表示→◆計算◆(数分かかります)→計算結果表示と、上から順に処理されることを期待しているのだけど
実際は◆計算◆が終了するまで最初のテキスト「見出し」も表示されないのですがどうしてなのでしょうか?
2019/03/26(火) 05:23:41.39ID:BYz/7c7n0
連続した削除は統合したり、塗りつぶしは開始点を覚えたり
色々小技もあるので、一概には言えないと思うけどなぁ

本格的に勉強したいなら、paint.net か pinta のソース読むのお勧め
2019/03/26(火) 06:37:47.03ID:AEstRBha0
>>109
リッチテキストボックス.Text=(見出し);
リッチテキストボックス.Refresh();//これを挿入
◆計算◆
で意図通りになるはず
「どうしてなのか」はよくわからないけど
https://dobon.net/vb/dotnet/control/refreshupdateinvalidate.html
を参考に考えてみるとアプリケーションキューが空になるまで再描画されないからとかでは
2019/03/26(火) 10:18:19.55ID:nfpS3j/TM
ドット絵なんて"■"をフォントサイズと色変えて
200x200でやるとかじゃアカンの?
商用?趣味?
2019/03/26(火) 10:27:40.46ID:FWKgfdvb0
お前の息子みたいな小さい世界の話はしてねえんだよ保育所に引っ込んでろ
入れなかったのか?じゃあ死んでろ
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;
}
2019/03/26(火) 10:55:43.23ID:fe5vrK8S0
>>108
速度的な問題点を無視すれば、
編集ソフトでファイルを読み込んだ直後から人間が操作したコマンドの履歴を
全て記録しておいて、ファイルを読み込んだ直後から、最初から最後の1つ手前
まで、その履歴のコマンドを順に再実行するようにすればUndoは実現できる
事は出来る。

この方法だと、操作の途中に重たい処理が挟まっていた場合が問題となる。重たい
処理が行われた場合は、処理の最初と最後でデータをファイルに保存してしまって、
Undoするときはそれを「起点」にする方法も考えられる。ただし、この場合は、
ファイルへの保存に時間がかかる問題が残る。
2019/03/26(火) 11:34:27.90ID:KoWTp9j7d
簡単ですか?くらいの質問する相手なんだから112が言うような実装で良いと思うけど
高機能にしようと思えばいくらでもできるだろうけど既存のドットエディタ使えば?って気もする
勝手に質問を高機能に寄せてああでもないこうでもない言ってても仕方ないよね
2019/03/26(火) 12:05:28.06ID:NEQZ2SJi0
>>116
ゲームの専門家に聞いたんだけど、実はドットエディタは使ってなくて、
1つのファイルに複数のキャラクタ画像をまとめて、普通のPaintソフトの
拡大鏡機能で作っておいて、ゲームプログラムの方で部分的な四角形領域
を座標で指定して複数のキャラクタとして扱っている、と聞いた。
そして、透明部分は、1つの色を「透明色」として扱ってMaskパターン
を作っていると。WindowsのBitBlt系のAPIなら、透明色をそのまま
指定できるタイプのものも確かあったと思うけど。
118デフォルトの名無しさん (オッペケ Sr03-s8oI)
垢版 |
2019/03/26(火) 12:09:54.76ID:6g954Hehr
>>115
しかし3Dソフトは激重アプリなのにサクサクとundo redoできる
設定では1000回まで戻れるようにしている
しかも全部メモリに管理しているんじゃないだろうか
設計が凄まじいのだろう
2019/03/26(火) 12:10:33.61ID:qm+I18En0
>>118
ファイルに落としてるんだよ
2019/03/26(火) 16:10:23.84ID:ERuMXzNG0
>>117
そういうやり方だってあるしドット絵エディタで全て作ってるのだってあるし普通の絵をドット絵チックに変換するツールを使う場合もある
121デフォルトの名無しさん (アウウィフ FF2f-PdI2)
垢版 |
2019/03/26(火) 16:26:20.46ID:5W15sMAGF
>>120
https://goodbyejapan.net/better-stay-quiet
2019/03/26(火) 16:55:27.87ID:fe5vrK8S0
>>118
多分、普段のUndo、Redoはメモリ内のみで行っている。
そして、>>108のように、操作者が順序を入れ替えた場合のみ、
どこかの時点を起点として操作をリプレイするようなことをやってる。
だから後者の場合のみは時間がかかるんじゃないかと思うが、滅多に
やることはないので問題ないと考えられているのではなかろうか?
123デフォルトの名無しさん (オッペケ Sr03-s8oI)
垢版 |
2019/03/26(火) 17:53:29.15ID:6g954Hehr
>>122
3Dソフトはそもそもディペンデンシーグラフで履歴ノードが自由に繋ぎ直せるし、インプットアウトプットもしまくるから
わざわざファイルに出してることはないはず
そしてそれら膨大な数のノードがリアルタイムで動作したりするからなあ

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

ちなみにスクリプトやAPIでも履歴作れるんだよな
openChank closeChankの間に入れ込んだ操作の履歴を一つにしてくれる
2019/03/26(火) 18:13:18.89ID:fe5vrK8S0
>>123
履歴のコマンドの順序を入れ替える操作を高速にするアルゴリズム、今、分かった。

1. 操作を変更する時点は、現在の状態からは近いことが多いはず。
2. だから、ツールの内部処理で、現在の状態から小数回 Undoを繰り返せば、その地点にいったん
  戻ることが出来る。
3. そこからは、新しい順番でコマンドを「Replay(再生)」すれば、目的の結果が得られる。
2019/03/26(火) 18:18:17.85ID:fe5vrK8S0
>>124
・例えば、現在の状態が、ファイル読み込み時点から、1,000回の操作の後だとする。
・現在の状態になる20回前の操作を変更したいとする。その操作は、最初からは980回目である。
・ここで、(1,000回目の)現在の状態から 20回 Undo をすれば、上記の980回目の状態に戻れる。
・この20回くらいの Undo ならば、大して遅くは無いはず。
・出来あがった980回目の状態から、新しいコマンドの列を20回程度繰り返せば、目的のデータが
 完成する。
2019/03/26(火) 19:03:23.56ID:3EcUlBetM
>>80
プレーンオブジェクトと呼んだりするけどこれと言った決まりはない
2019/03/26(火) 19:19:11.31ID:NbUyZWCMH
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 58034
https://you-can-program.hatenablog.jp
128デフォルトの名無しさん (オッペケ Sr03-s8oI)
垢版 |
2019/03/26(火) 19:28:00.58ID:6g954Hehr
>>124
ちなみに解説はこことか
https://help.autodesk.com/view/MAYAUL/2017/JPN/?guid=__files_GUID_A9070270_9B5D_4511_8012_BC948149884D_htm
129デフォルトの名無しさん (オッペケ Sr03-s8oI)
垢版 |
2019/03/26(火) 19:31:16.28ID:6g954Hehr
あとキャラ一体でこのノード数は当たり前
これが何体もいる上に背景やらエフェクトやら物理演算、アニメーションブレンディングとかも同時にエディタ内でやってる
さらに裏側で動作させてるスクリプトも何百もあるし、APIとかも膨大に動いてる

https://circecharacterworks.files.wordpress.com/2011/11/hypergraph.png
2019/03/27(水) 03:33:29.80ID:NpUsj5uAa
>>111>>114
ありがとうございます
なんとなくイメージはつかめました
2019/03/27(水) 08:27:38.52ID:bis+Aug70
>>80
昔はバリュークラスと呼ばれてた
C#的にはPOCOだな
あとDTOはEFと関係無い
2019/03/27(水) 08:50:32.86ID:vlf+N3dca
azure durable functionをオンプレで使いたいのだけど類似のオプソフレームワークってあります?
MQ使って再発明はダルいっす
2019/03/27(水) 09:16:12.09ID:M3xZFaB+a
>>132
オンプレなのに態々縛りプレイをしたい理由は?
long-runningなスレッドでいいだろ
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イベントをラムダ式(?)で記述してます。

説明するのに使う用語すらそこら辺から借りてきたもので大変恐縮ですがご指導の程宜しくお願いします。
2019/03/27(水) 16:01:59.45ID:gKV0tUQi0
最後の方、
「Clickイベントをラムダ式(?)で記述してます。」は
「Clickイベントを無名関数(?)で記述してます。」と言うべきだった気がしてきました。
136デフォルトの名無しさん (ワッチョイ 6b2d-5HBQ)
垢版 |
2019/03/27(水) 16:24:53.59ID:ewJriyXK0
他のクラスを承継してクラスを作る時、承継元のクラスのコンストラクタを呼ばないようにするのってどうすればいいの?
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変数が未初期化のままコンストラクタが完了することになって
結局そのインスタンスは使い物にならない
2019/03/27(水) 19:03:27.47ID:tQ4XPcUjM
>>131
POCOは特定のフレームワークへの依存を持たない普通のオブジェクトを指す言葉で、
決して振る舞いを持たないことを意味しているわけではない
139デフォルトの名無しさん (ワッチョイ 6b2d-5HBQ)
垢版 |
2019/03/27(水) 19:54:30.82ID:ewJriyXK0
>>137
だめなのかあ・・・・ありがとう
2019/03/27(水) 20:06:11.69ID:bis+Aug70
うんだから
振る舞い無くてもPOCOでしょ

普段使いで貧血ドメインクラスなんてわざわざ言わないしな
ただのデータクラスって言ったり
わかる相手にはプレーンオブジェクトとか言うでしょ
コンテキストによってはレコード型と言ったりもするし
2019/03/27(水) 21:21:06.39ID:LVKAuWEv0
アーキテクチャとか思想で呼び方は変わりそうね
3レイヤーアーキテクチャでアプリケーション層でのドメインモデルからview やjsonのための振る舞いを持たないクラスを俺はviewmodelかdtoとか呼んでるわ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況