クイックメニュー
スレタイ検索

C#, C♯, C#相談室 Part93

1デフォルトの名無しさん(ワッチョイ 1e06-m8Mb) [sageteoff]
AAS
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part92
echo.2ch.netが建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

2017/04/22(土)08:52:00.93(iVvswOrb0.net)


2デフォルトの名無しさん (ワッチョイ de35-HDOw)

AAS

NG

■過去スレ
C#, C♯, C#相談室 Part89
peace.2ch.net
ここは、実質Part94

2017/04/22(土)10:57:42.55(g8ZT1khs0.net)


3デフォルトの名無しさん (ワッチョイ 1e06-m8Mb) [sage]

AAS

NG

■関連スレ
初心者の質問向けはこちら
ふらっと C#,C♯,C#(初心者用) Part127
echo.2ch.net
補足thx。見逃していた

2017/04/22(土)13:39:44.03(iVvswOrb0.net)


4デフォルトの名無しさん (ワッチョイ 7ff7-/JtG) [sage]

AAS

NG

おつかれ
キチガイの人(山口人生)は、複数回線もっていそうだからどこまで効果するかは分からんけれど
何もしないよりマシだね、今後もワッチョイ有りで行こう。
死ねばいいのに・・・・

2017/04/22(土)14:55:56.60(c4VI05+R0.net)


5デフォルトの名無しさん (アウアウイー Sa63-wX6N) [sage]

AAS

NG

誰だよ山口人生ってww

2017/04/22(土)15:23:39.94(FEVU7Q4Da.net)


6デフォルトの名無しさん (エムゾネ FFaa-TkTn) [sage]

AAS

NG

正しいスレ番と設定で立てました

C#, C♯, C#相談室 Part94
echo.2ch.net

2017/04/22(土)15:39:01.94(S+KK7a41F.net)


7デフォルトの名無しさん (ワッチョイ 7ff7-/JtG) [sage]

AAS

NG

>>5
ググッてみてば分かるw
東大出でイリノイ大学で不完全性定理で有名なゲーデルの弟子として著名な
竹内外史先生の弟子になってPh.Dを取るも、神奈川大学で万年講師、研究室の壁を蹴って騒音出していたらクビになってしまったヤツwww
経歴だけ見るとスーパーエリートwwww
学歴荒らしがあるところに山口人生あり、酷い学歴厨の60台後半じぃさん
実家はお金持ち、もう親は鬼籍かな?ビル持っていて資産が一億切っているとか、絶対ヤバそうw
P=NPを主張しているが誰にも相手にされず、学会では芸人扱いw

2017/04/22(土)16:06:32.09(c4VI05+R0.net)


8デフォルトの名無しさん (アウアウイー Sa63-wX6N) [sage]

AAS

NG

統失くんいらっしゃい、ってかw

2017/04/22(土)17:40:53.42(L9cy9Aq3a.net)


9デフォルトの名無しさん (ワッチョイ 7ff7-/JtG) [sage]

AAS

NG

敬意が足らないですね、糖質超教授と読んであげましょうwww
いらっしゃらなくていいです、迷惑なので死んでください

2017/04/22(土)17:57:12.00(c4VI05+R0.net)


10デフォルトの名無しさん (ワッチョイ bb4c-VP69) [sage]

AAS

NG

本当のその山口ってのなのか?

2017/04/22(土)19:18:48.92(7MQLYtSw0.net)


11デフォルトの名無しさん (ワッチョイ 7ff7-/JtG) [sage]

AAS

NG

張り付き方が異常、現役じゃ不可能
発言が山口人生と似ているし話が高齢者臭い、中年ですらない
Delphiを使っていて最近C#に移ってきている
ここまでのマジキチには普通日常で出会うことは無い、希少種

そんなヤツがこの日本に何人もいてたまるかwwww

2017/04/22(土)19:41:05.45(c4VI05+R0.net)


12デフォルトの名無しさん (ワッチョイ bb4c-VP69) [sage]

AAS

NG

このスレ、自分以外は全部同じ人が書き込んでたりしてw

ちょっとしたホラーだな

2017/04/22(土)20:05:29.05(7MQLYtSw0.net)


13デフォルトの名無しさん (ドコグロ MM33-MUXz) [sage]

AAS

NG

なんかワッチョイ付いてると気に入らないみたいよ
俺は付いてるほうが好きだからこっちのスレのがいいな

2017/04/22(土)20:49:00.38(IUEn1/EeM.net)


14デフォルトの名無しさん [sage]

AAS

NG

こっち使おうぜ

2017/05/03(水)17:15:57.72(crwmH6BQM.net)


15デフォルトの名無しさん

AAS

NG

今日発見した衝撃の事実
なぜWindowsUpdateの時ファイルがぶっ壊れるのかというのがずっと謎だった
Application.ThreadExit イベントで書き出しスレッドの終了処理していたのだが
手動のシャットダウンだと問題なく呼ばれるのに、リブートするとThreadExitが呼ばれない
それどころか、フォアグラウンドで作成していたスレッドが強制終了させられている上
System.Threading.ThreadAbortExceptionmもSystem.Threading.ThreadInterruptedExceptionも送出されないまま
突然中断で終了しやがってた・・・
ひでぇ終了の仕方だ・・・
なんでリブートに限りこんなシーケンスで強制終了しやがるんだ、この糞が・・・

2017/05/05(金)16:32:19.84(bVbNjYk40.net)


16デフォルトの名無しさん [sage]

AAS

NG

セキュリティ的にアプデは大事だからね
多少強引な手段で終了してもいいよね仕方ないね

2017/05/05(金)16:49:33.38(tHPUBlll0.net)


17デフォルトの名無しさん [sage]

AAS

NG

シャットダウンと再起動で違うのか

2017/05/05(金)17:01:44.90(3XrDrf840.net)


18デフォルトの名無しさん [sage]

AAS

NG

もっと詳しく知りたい。

SessionEndingイベントとかで捕まれないんか?
それ

2017/05/05(金)17:10:34.10(pBlqXMv00.net)


19デフォルトの名無しさん [sage]

AAS

NG

>>16
セキュリティは最終的には自分のファイルが壊れないことを目的にやるわけだが
そのセキュリティ対策が破壊してくれるのであれば、本末転倒なのでそんな対策は不必要って思うわけだよ。

2017/05/05(金)17:16:16.69(bVbNjYk40.net)


20デフォルトの名無しさん

AAS

NG

>>18
SessionEndingイベントが来たときはもう殺された後だねw
ここでは対策出来ない。

2017/05/05(金)17:17:13.60(bVbNjYk40.net)


21デフォルトの名無しさん [sage]

AAS

NG

>>20
おおう、そうなんか。

2017/05/05(金)18:09:02.57(pBlqXMv00.net)


22デフォルトの名無しさん [sage]

AAS

NG

>>15
Windows Updateだろうが何だろうがリブート開始時に
ユーザーに確認なくプロセスの強制終了なんてそもそもされないと思うよw

何か勘違いしてない?

2017/05/05(金)18:13:33.93(A3oUashQa.net)


23デフォルトの名無しさん [sage]

AAS

NG

ちょっと調べた感じ
http://news.mynavi.jp/column/windows/270/
にあるような感じでレジストリいじっちゃったんだろうねw

2017/05/05(金)18:24:50.53(A3oUashQa.net)


24デフォルトの名無しさん [sage]

AAS

NG

>>22
EWX_FORCEとかEWX_FORCEIFHUNGを指定してるんでしょ
https://msdn.microsoft.com/ja-jp/library/cc429713.aspx
セキュリティアップデートは確実にリブートする必要あるから多少の犠牲はやむを得ない
って思ってるんじゃね?

2017/05/05(金)18:43:02.46(PzvORh1V0.net)


25デフォルトの名無しさん [sage]

AAS

NG

客側でこれを指定されたらたまらないなー

2017/05/05(金)19:11:23.54(FiATWWo80.net)


26デフォルトの名無しさん [sage]

AAS

NG

ExitWindowExの英文説明では、DWORD dwReservedのとこがdwReasonになってんね。

このへんかな

2017/05/05(金)19:58:14.99(ueXs9gXt0.net)


27 [sage]

AAS

NG

プロセスの終了確認はあるだろうか、その結果タイムアウトした時のスレッドの落とし方はものすごい強引だった気がする。
昔shutdown -s -t 01で落として確認した事ある。

2017/05/05(金)20:10:07.89(05XvGSted.net)


28デフォルトの名無しさん [sage]

AAS

NG

OSの仕様なのか.NET独特の挙動なのか>>23みたいな話なのかはっきりしないな
.NET独特の挙動だったら業務でアプリ作っている人は死活問題じゃね

2017/05/05(金)20:14:25.56(3cKL/0El0.net)


29デフォルトの名無しさん [sage]

AAS

NG

>>26
日本語版のドキュメントが更新されてないだけみたい
WindowsXPからdwReasonになってる

2017/05/05(金)20:27:56.88(PzvORh1V0.net)


30デフォルトの名無しさん [sage]

AAS

NG

いやいやデフォではプロセス強制終了なんてないよ絶対w

Winduws Updateはデフォでは自動になってるんだから、Windows Updateが走るたびに
そんな無茶苦茶やってたら世界中で大騒ぎになってるってw

XPの時代はそんな経験したような記憶もあるけど
少なくともVista以降はないと思うよ

2017/05/05(金)20:30:18.07(A3oUashQa.net)


31デフォルトの名無しさん [sage]

AAS

NG

俺は趣味でやっているだけだしアップデートも任意のタイミングでしかやらないからどうでもいいが
VSの有料ライセンス買っている人がいて心配だったら直にMSに聞いた方がいいな

2017/05/05(金)20:34:57.11(3cKL/0El0.net)


32 [sage]

AAS

NG

>>28
業務アプリが走るような環境は、社内でKB単位で配布して、ログイン前に当たるようにしてると思う。
>>30
本人はプロセスじゃなくてスレッドを問題視してるのでは?

2017/05/05(金)20:48:13.06(05XvGSted.net)


33デフォルトの名無しさん [sage]

AAS

NG

>>30
言いたい事はわかるw

まーもちつけ

2017/05/05(金)22:27:29.53(ueXs9gXt0.net)


34デフォルトの名無しさん [sage]

AAS

NG

>>30
10以前はWindowsUpdateをするタイミングをこちらの問題の無いタイミングで出来たから
そもそも問題自体が存在しなかったという事実。

2017/05/06(土)07:24:56.49(KTPtsEWO0.net)


35デフォルトの名無しさん [sage]

AAS

NG

適度にトラブル起こしてあげないと窓際族の情シスの仕事がなくなっちゃうからね

2017/05/06(土)07:54:55.96(rojhZA3i0.net)


36デフォルトの名無しさん [sage]

AAS

NG

>>27
これは良いこと聞いた。
うちも似たような仕組み作ってるグループあるから、ExitWindowsExも利用して調査してみるよう伝えてみるわ

2017/05/06(土)08:25:02.90(2V5tVO5D0.net)


37 [sage]

AAS

NG

>>36
UIスレッドでメッセージボックス出しとくと、プロセスを落とす正規ルートからはずれて再現できるとか、なんか色々こねくり回したよ。
今だと仮想マシンあるから、マシンが上がってくるの待つ辛さ無いかもね。

2017/05/06(土)08:57:56.21(BE072L/9d.net)


38デフォルトの名無しさん

AAS

NG

ロック処理についてちょっと相談です

●二つ以上のオブジェクトを同時にロックしたい
片側づつ順を追ってロックしていくのはダメ、デッドロックするので。
ロック出来ない状態である限り、ロックは限りなくしないようにしたい。
ロックに失敗までのタイムアウト処理もしたい。

●例えばこれだと、デッドロックを引き起こすので良くない
lock(obj1) lock(obj2) 処理;

●そこで、言語に以下のような構文があれば理想的なのだが
ないので、それらしいヘルパを作りたい、できれば効率的な物。
lock(obj1,obj2, ... ,timeout=1000) {
 ロック成功の場合の処理
}
timeout {
 タイムアウトした場合の処理
}

2017/05/25(木)06:03:37.70(OZ9w4Yf70.net)


39デフォルトの名無しさん

AAS

NG

●とりあえず簡単に考えた、しかし無駄が多そうに見える、もっと良いものが欲しい。
DateTime begin = DateTime.Now;
再試行:
bool l1 = Monitor.TryEnter(obj1, 0);
bool l2 = Monitor.TryEnter(obj2, 0);
if (l1 && l2) {
 goto ロック成功;
} else {
 if(l1) Monitor.Exit(obj1); // チェックと共にロックしてしまうので、このコードも残念賞
 if(l2) Monitor.Exit(obj2); // 同上
 if ((DateTime.Now - begin).TotalMilliseconds > 1000) {
  goto タイムアウト;
 } else {
  System.Threading.Thread.Sleep(10); // この待ち方も酷い
  goto 再試行;
 }
}
タイムアウト:
{
 タイムアウト処理
}
ロック成功:

2017/05/25(木)06:03:54.24(OZ9w4Yf70.net)


40デフォルトの名無しさん [sage]

AAS

NG

ていうか普通にロック専用のオブジェクト作ってそれをロックすりゃいいんじゃねーの

2017/05/25(木)07:25:50.25(zdaQwC0X0.net)


41デフォルトの名無しさん

AAS

NG

>>40
それだとロック粒度が大きくなりすぎて逆にデッドロックの可能性を拡大してしまいますね。

2017/05/25(木)07:32:55.17(OZ9w4Yf70.net)


42デフォルトの名無しさん [sage]

AAS

NG

セマフォ使ったらどう?
資源数もタイムアウトもあるし

2017/05/25(木)07:34:38.83(ZdIAUNK00.net)


43デフォルトの名無しさん

AAS

NG

>>42
セマフォは重いんですよねぇ
それをやるくらいなら>>39の例の方が効率的ですね。

2017/05/25(木)07:36:13.98(OZ9w4Yf70.net)


44デフォルトの名無しさん

AAS

NG

>http://article.higlabo.com/ja/thread_locking.html
lock(Monitor.Enter/Monitor.Exit) 同じプロセス 20ns
Mutex 違うプロセスも可能 1000ns
SemaphoreSlim 同じプロセス 200ns
Semaphore 違うプロセスも可能 1000ns
ReaderWriterLockSlim 同じプロセス 40ns
ReaderWriterLock 同じプロセス 100ns

Semaphoreは高機能すぎて、あまり軽々しくは使えない。
そのわりにはlockと違ってスレッドチェックがないので自家中毒を起こしたりするので、別途そのための対処が必要になったりする。
lock 20nsはやはり捨てがたいものです。

2017/05/25(木)07:50:05.84(OZ9w4Yf70.net)


45デフォルトの名無しさん [sage]

AAS

NG

見も蓋もないが、設計が間違ってる気がする。

2017/05/25(木)08:14:43.50(CNpknsWj0.net)


46デフォルトの名無しさん

AAS

NG

>>45
そんな事は無いと思うんだけどな、セマフォに標準で実装されているように
これはマルチスレッドデザインパターンとしては基本になるかと。
というか教科書にある典型ですし。
ところが、Monitorにはなかったので、おや何故ない?となっている所。
せっかく高性能なのに有効活用できないのは勿体ないと。

2017/05/25(木)08:20:40.14(OZ9w4Yf70.net)


47デフォルトの名無しさん [sage]

AAS

NG

>>46
そもそもなぜロックが必要なの?

2017/05/25(木)08:30:18.43(a8axhl9cd.net)


48デフォルトの名無しさん

AAS

NG

>>47
分からないならレスしないでもらえますか?
流されては叶いません。

2017/05/25(木)08:34:06.74(OZ9w4Yf70.net)


49デフォルトの名無しさん

AAS

NG

>>39
みたいなことをするぐらいならSpinLockを使った自前実装で処理したほうが良いかもしれない。

もしくは
>>lock(obj1) lock(obj2) 処理;
これでもデッドロックしないように、Lockする順番を厳格にしてコーディングするとか

というか、言葉遣いに気を付けたほうが良いと思うよ。

2017/05/25(木)08:52:37.16(CNpknsWj0.net)


50デフォルトの名無しさん [sage]

AAS

NG

そんなにパフォーマンスが大事ならオプティミスティックロックも検討したら?
どうせ滅多に競合なんかしないでしょ

2017/05/25(木)08:54:51.29(foQMlEN20.net)


51デフォルトの名無しさん [sage]

AAS

NG

>>48
そもそもロックが必要という判断に至った理由が明らかでない
ロックがベストな選択肢である保証はどこにもない

2017/05/25(木)09:01:40.08(a8axhl9cd.net)


52デフォルトの名無しさん

AAS

NG

>>49
ここにいる知らなくてもレスしないと死ぬ病気にかかっている奴はどうしょうもない。初心者の上にキチガイなら死ねって感じですが。
とりあえず、スピンロックは使いたくないですね、あれはCPUタイムをすり潰しながら高速動作を確保しようとするものだから
それの主用途は、激重計算タスクを並列処理するための物であって、目的とちょっと違いますね。
あと、排他処理をちゃんと勉強すると、順序等を考えていても意味が無くて
ロックする瞬間に作業に必要になるリソースをすべて確保して、必ず抜けられるという事の方がデッドロックに対する対処としては有用です。
でも、上に書かれているように一つのオブジェクトで粒度を上げてしまったら本末転倒になります。

2017/05/25(木)09:04:40.54(OZ9w4Yf70.net)


53デフォルトの名無しさん

AAS

NG

>>51
ちゃんとわかっている人を待っているんだから黙ってろ

2017/05/25(木)09:05:42.97(OZ9w4Yf70.net)


54デフォルトの名無しさん [sage]

AAS

NG

アイデアを募るならもっと広い視野で考えたほうがいいってことでしょ
矮小な問題に限定されすぎていて、マイクロベンチマークレベルの不毛な議論にしかならない
状況によっては工夫すればロックフリーな実装もできるかもしれないよ

2017/05/25(木)09:12:36.71(foQMlEN20.net)


55デフォルトの名無しさん [sage]

AAS

NG

うわあ。これは無視すべき奴だw

2017/05/25(木)09:21:45.74(CcaoVCJwa.net)


56デフォルトの名無しさん

AAS

NG

>>52
https://www.jpcert.or.jp/java-rules/lck07-j.html
ソースはそれっぽいものを適当に引っ張ってきた
ロックする順序は意味あると思うんだけど、、、

デッドロックが怖いってことだと思うんだけどさ
親から子へ順番守ってロックすればデッドロックしないじゃん?

2017/05/25(木)09:24:19.81(CNpknsWj0.net)


57デフォルトの名無しさん

AAS

NG

>>55
世の中上には上の奴がいるんだよ、俺なんかよりはるかに知識を持っている奴はいくらでも。
お前より俺の方が知識あるが、そんな俺よりもはるかに凄いやつは山のようにいるんだ。
そろそろ、中二病みたいな全能感は捨てな

2017/05/25(木)09:24:47.08(OZ9w4Yf70.net)


58デフォルトの名無しさん

AAS

NG

>>56
親子関係があれば、親についている操作ようのメソッドにロック処理をいれれば問題ないですね。
でも、今回のは完全に独立しているオブジェクト間です。
ちょっと難しいですね。
実際問題としては、順序を使う側にすべて守らせるというのは、理屈では語れても実践的ではないかもしれません。
やはり、ロック時間を短くする事が肝要であり、その為には粒度を小さくするのが基本となるかと。
汎用的なやり方としては、この方法がもっとも優れていると思います。
なので、この方法をより高パフォーマンスで実現できるヘルパーを実装して纏めて利用したい訳です。
だから、別の方法は考えていないです。Monitorを使った高速排他処理が今回の最終目標です。

2017/05/25(木)09:32:43.15(OZ9w4Yf70.net)


59デフォルトの名無しさん [sage]

AAS

NG

楽観的ロックのタイムアウトで、ロールバックするのが確実

人間には絶対にミス・バグがあるから、
デッドロックを100%、起こさないようにする事は、絶対に出来ないから

2017/05/25(木)11:13:36.68(5itOJ4P90.net)


60デフォルトの名無しさん [sage]

AAS

NG

これ触っちゃいけないやつじゃん・・・

2017/05/25(木)11:20:25.49(ts6Ek6dYM.net)


61デフォルトの名無しさん [sage]

AAS

NG

>>59-60
だから、もう来るなって、お前には何も聞きたいことは無いし、そんな話は聞かされたところで新たな何かには全くつながらない。
C#スレには、初心者用じゃないもう一本の匿名ゴミすれあるだろ、そっちいけよ。
分かっている人が来たときにコメントがゴミだらけになる。

2017/05/25(木)11:39:35.31(OZ9w4Yf70.net)


62デフォルトの名無しさん [sage]

AAS

NG

たぶん質問者の方が俺よりずっと詳しそうだから釈迦に説法だと思うけど、

>●例えばこれだと、デッドロックを引き起こすので良くない
>lock(obj1) lock(obj2) 処理;

これがデッドロックしうるのはこのスレッドがobj1だけをロックした状態で
別のスレッドがobj2をロックして、そのスレッドがobj1を待機してる場合だよね?

この場合このスレッドがobj1をアンロックしない限りobj2もアンロックされないからデッドロック

だから、ネストの内側のock(obj2) だけをタイムアウト付きのMonitor.TryEnterに置き換えれば
効率的かどうかはどうかはともかく、要件は満たせるんじゃいないの?
知らんけど

2017/05/25(木)12:20:12.43(XlAyjrlQa.net)


63デフォルトの名無しさん

AAS

NG

>>62
まさにその通りです、それが直下に書いた雑な例です。
このヘルパーを作りたいという訳です、見るからに美しくないので詳しい人の登場をお待ちしているという所です。
必要な全ロック取得に失敗したら即座に全て解放して、乱数時間まって次を伺う。
これはよくある教科書通りです。

2017/05/25(木)12:28:42.96(OZ9w4Yf70.net)


64デフォルトの名無しさん [sage]

AAS

NG

>>62
キチガイに触るなよ

2017/05/25(木)13:09:08.98(a8axhl9cd.net)


65デフォルトの名無しさん [sage]

AAS

NG

基地外大暴れワロタ

2017/05/25(木)13:35:53.97(Gj1BXJi/M.net)


66デフォルトの名無しさん

AAS

NG

http://ideone.com/GHvgKN
勢いで書いた。

2017/05/25(木)13:51:23.71(CNpknsWj0.net)


67デフォルトの名無しさん

AAS

NG

>>66
いいっすね、いいっすね
Thread.Sleep(100); ← ここがもうちょっとマシな待ち方になるといいんですがw
自分はインターフェイスは、IDispose使ってロック範囲を lock で書いたような雰囲気にしてます。
タイマーは、初ロック失敗の後にスタートさせて、ロック成功(大半のケース)でロスが少ないようにしてます。
なかなか素敵な感じになってくれませんw

2017/05/25(木)13:59:41.85(OZ9w4Yf70.net)


68デフォルトの名無しさん (ワッチョイ 1f1b-6//c) [sage]

AAS

NG

↓のテンプレートとジェネリックの違い、にある
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics
トップ項目にある
・C# ジェネリック クラスでは、ユーザー定義演算子は呼び出すことができますが、算術演算子を呼び出すことはできません。
"算術演算子を呼び出すことはできません"ってどーいう意味っすか?
算術演算子って+-*/のこと?

2017/07/11(火)08:22:12.16(MCsEtOKi0.net)


69デフォルトの名無しさん (アウアウイー Sacb-G8QH) [sage]

AAS

NG

遠まわしに制約について言ってるのかな。

算術演算子が使える型のみ受け入れるような制約はできないから
自動的に算術演算子は使えないことになるわけだけど...

2017/07/11(火)09:57:14.72(t4lUkhAUa.net)


70デフォルトの名無しさん (ワッチョイ 5eea-bL4e) [sage]

AAS

NG

楽しそうだな。w

2017/07/16(日)01:54:50.85(mMdQfX5s0.net)


71デフォルトの名無しさん (ワッチョイ 6a90-qWRz) [sage]

AAS

NG

ジェネリックに算術演算子を使うなら、そんなに速度が要求されないんなら
(dynamic)にキャストしてからなら演算子が使える
まあこれキャッシュ付きのリフレクションだから速度は期待しないでよー

2017/07/29(土)20:36:18.47(Gw88XuqA0.net)


72デフォルトの名無しさん [sage]

AAS

NG

C++ではテンプレートに焦点をあてた書籍はいくつかあるけど
C#でジェネリックに絞ったオススメ書物ってのはありますか?
C++のテンプレートテクニックのどれが使えないか?ってのは知りたい。

2017/08/21(月)18:56:43.94(LgNyTwHt0.net)


73デフォルトの名無しさん [sage]

AAS

NG

C#のジェネリックって1時間で読める記事で網羅されるぐらいの内容しかないっすよ

2017/08/21(月)19:55:10.65(KmAQXiSua.net)


74デフォルトの名無しさん [sage]

AAS

NG

テンプレートテクニックとか全部忘れてOK

2017/08/21(月)20:02:09.15(vP5jpteT0.net)


75デフォルトの名無しさん [sage]

AAS

NG

プレートテクトニクス

2017/08/21(月)21:10:14.69(qdRqCzb30.net)


76デフォルトの名無しさん

AAS

NG

式テンプレートジェネリックでどー書くんだよ

2017/08/27(日)02:29:03.34(/hywh0UG0.net)


77デフォルトの名無しさん

AAS

NG

すみません。ちょっと急いでいます。

C#でクラスを宣言する際に、
class {...} とpublic class {...}
このふたつの違いが判りません。
教えてください。

2017/10/09(月)21:40:27.74(dzl0TrLma.net)


78デフォルトの名無しさん

AAS

NG

お願いします。同じものですか?

2017/10/09(月)21:54:29.58(rAF1hT8M0.net)


79デフォルトの名無しさん [sage]

AAS

NG

アクセス修飾子を省略したクラスは internal になる
public とか internal とかの意味については↓

アクセス修飾子 (C# プログラミング ガイド) | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers

2017/10/09(月)21:56:31.06(28tAbNEV0.net)


80デフォルトの名無しさん [sage]

AAS

NG

>>77
外部から見えるか見えないか

2017/10/09(月)21:56:50.83(u67WqECL0.net)


81デフォルトの名無しさん [sage]

AAS

NG

ありがとうごぜます。
internalですね。アセンブリ言語レベルの話のようなので
まだそこまで至ってないのでpublic, private, protectedだけ使います。
すみませんでした。

2017/10/09(月)22:03:58.01(rAF1hT8M0.net)


82デフォルトの名無しさん [sage]

AAS

NG

「アセンブリ」ってみて「アセンブリ言語」って理解するのは先が思いやられるな。全然意味が違う話なのに

2017/10/09(月)22:12:08.58(Y4203ffV0.net)


83デフォルトの名無しさん [sage]

AAS

NG

>>81
上記のページで「アセンブリ」と言ってるのはアセンブリ言語のことではなくて
「exe」とか「dll」とかのファイル単位での機械語のまとまりのことだよ

2017/10/09(月)22:16:05.20(28tAbNEV0.net)


84デフォルトの名無しさん [sage]

AAS

NG

ありがとう。
今自分でも調べていてなんか違うなーって思ってました。

2017/10/09(月)22:41:05.37(rAF1hT8M0.net)


85デフォルトの名無しさん [sage]

AAS

NG

bin

バイナリ・ファイル

2017/10/09(月)23:04:42.97(/pZGRYTm0.net)


86デフォルトの名無しさん [sage]

AAS

NG

今となっては、いや初めから忘れてもいい話だったけど
ファイル単位の物理的なまとまりはモジュール(.netmodule)で
モジュールをまとめた論理的まとまりがアセンブリ(.dll/.exe)
Visual Studioが2002の初めから一貫してサポートしてないこのモジュールって単位をMSはどう使うつもりだったんだろう

2017/10/10(火)00:40:47.02(pliWVB3X0.net)


87デフォルトの名無しさん [sage]

AAS

NG

最終的に1つのライブラリにしたいものをC#とF#で部分ごとに書き分けるとかそういう例は見た事あるけど
(ものによってはF#のほうが書きやすいとか)
実際それが必要なユーザがどれだけいるのかって話な

2017/10/10(火)21:13:43.71(9Raz+qz10.net)


88デフォルトの名無しさん [sage]

AAS

NG

C++/CLIとC#の組み合わせがある。

最終的な呼び出し元はネイティブと同じ口なんだけど、
dynamicやasync/awaitなどを使いたいため、
dllexport付近の薄皮一枚だけ C++/CLI、
残りは全部C#で記述して1つの.dllにってのに.netmoduleを使う。

C#とF#の組み合わせとか、ほとんど無意味に思えるが…

2017/10/10(火)23:25:11.21(I+aeGBiR0.net)


89デフォルトの名無しさん [sage釣]

AAS

NG

iron python も?

2017/10/11(水)03:26:54.68(rqqSAVqsM.net)


90デフォルトの名無しさん [sage]

AAS

NG

event解除ってnullぶっこんでもいいのかしら?
何処見ても-=でしろってのばかりで全解除の適切なやり方載ってないんだけど
一応null代入で動いてるぽいけどちと不安

2017/10/18(水)13:52:47.94(ufsScDVj0.net)


91デフォルトの名無しさん [sage]

AAS

NG

まいなすはそれだけ消す、nullはすべて消す
できわるいコードだとnull入れると落ちるw

2017/10/18(水)14:05:31.13(4p9Ry6Jxa.net)


92デフォルトの名無しさん [sage]

AAS

NG

全解除ってそれなりに需要あると思うんだが何処も扱ってない不思議
+=って内から外へ処理出しする訳だから
インスタンスが破棄されたら当然破棄されるべきなのにどうもそうなってない
nullぶっこめばGC回収されるみたいだけど正しいやり方なのかな

2017/10/18(水)14:18:32.71(ufsScDVj0.net)


93デフォルトの名無しさん [sage]

AAS

NG

設計次第じゃないの

2017/10/18(水)15:17:21.27(8oWZ+6kpM.net)


94デフォルトの名無しさん [sage]

AAS

NG

購読側じゃなく発行側が勝手に解除ってのがちょっと...
むしろどういう場面で必要になるのか想像できないな

> +=って内から外へ処理出しする訳だから
> インスタンスが破棄されたら当然破棄されるべきなのにどうもそうなってない
ここは何を言ってるのかよく分からない

まあ、イベントというかデリゲートのマルキチャストの仕組みが分かりづらいのはわかる

2017/10/18(水)15:34:04.84(jnsT8t6ma.net)


95デフォルトの名無しさん [sage]

AAS

NG

>>92
正しいというかとりあえず安全なのは何もしないの放り込んどく
それでも勝手に消されて困るのがあるかもしれんがw

2017/10/18(水)15:50:00.66(h6dEijxza.net)


96デフォルトの名無しさん [sage]

AAS

NG

>>94
例えば非同期通信でデシリアライズ終わったらイベント投げて後は勝手に死ね、って場合
-=だと発行側で解除するのが困難でリークしちまう
最新VerC#ならTaskで後処理書けばいいけど、Unityだとつい最近まで3.5だったから

2017/10/18(水)16:11:03.50(ufsScDVj0.net)


97デフォルトの名無しさん [sage]

AAS

NG

>>96
俺の理解不足だったらごめん

リークするのはイベントの購読側のオブジェクトLがイベントの購読を解除しないまま
Lを参照する変数がなくなった場合で、発行側のオブジェクトPのイベントに
Lのメソッドが登録されたままPへの参照がなくなってもそれはリークにならないと思うんですが

2017/10/18(水)16:24:45.96(jnsT8t6ma.net)


98デフォルトの名無しさん [sage]

AAS

NG

>>97
そう思ってた時期が俺にもありました
しかし実際はリークしてOutofMemoryが出る
どうも購読側参照が残ってると到達可能と見られてGC回収されないぽい
本当にそういう理屈かは知らんけどnullぶち込むと例外でなくなる

2017/10/18(水)16:39:10.41(ufsScDVj0.net)


99デフォルトの名無しさん [sage]

AAS

NG

思い込みって怖いネー

2017/10/18(水)17:26:02.20(jNhOnQNR0.net)


100デフォルトの名無しさん [sage]

AAS

NG

>>98
>どうも購読側参照が残ってると到達可能と見られてGC回収されないぽい

登録解除してないから購読側は発行側から参照されてて回収されない
その状態で購読側が発行側を参照してるんなら発行側も回収されないよね

2017/10/18(水)17:46:05.16(GswCLlj60.net)


101デフォルトの名無しさん [sage]

AAS

NG

循環参照しててもルートから到達不能なら回収されるよ
されないなら単に循環参照以外の参照が何かしら残ってるだけ

いいや解放されないね!とかいう思い込みに付き合う気はないから
口ごたえがしたければ、VSのメモリーアナライザーで
リークしているというオブジェクトの参照状態のスナップショットを撮って
ここに貼り付けてから続けるように

2017/10/18(水)19:19:26.31(j/PgXgnk0.net)


102デフォルトの名無しさん [sage]

AAS

NG

>>101
すまんすまん、他の言語と勘違いしてた。

2017/10/18(水)21:18:06.23(GswCLlj60.net)


103デフォルトの名無しさん [sage]

AAS

NG

WebBrowserコントロールを使うと、レジストリ編集しないと自動的にIE7相当になってしまうんですが、
レジストリ編集無しでIE11相当にするにはどうしたらいいでしょうか?

もしくは、dllファイル1つで済むなら、他のブラウザコンポーネントでもいいです。

2017/11/07(火)14:20:16.62(7CEykIkZ0.net)


104デフォルトの名無しさん [sage]

AAS

NG

IEは他にはhtmlのmeta要素使うとか
レジストリっていってもHKCUなんだからアプリ起動時に書き込むだけのことだけど

2017/11/07(火)14:42:48.60(uJ4GX7RNM.net)


105デフォルトの名無しさん [sage]

AAS

NG

>>103
CefSharpっていうChromiumの実装がNuGetにあるよ
AnyCPUに対応してないんで導入が若干手間だけど気合いでがんばれ

2017/11/07(火)18:40:38.64(MJK6I9RA0.net)


106デフォルトの名無しさん [sage]

AAS

NG

>>103
CoInternetSetFeatureEnabled

2017/11/08(水)00:31:11.06(NuL34q9d0.net)


107デフォルトの名無しさん [sage]

AAS

NG

#EntityFrameworkの質問ってここでよいですか?

EFCore+Sqliteで開発してるんですが、".db"ファイルのパス指定で困ってます。

コネクション作成時に、以下でdbパス指定をしています。
var connectionString = new SqliteConnectionStringBuilder { DataSource = @"./app.db" }.ToString();

この場合、理由がよく分かってないのですが、
Update-Databaseを実行した時(CreateDatabaseが発行される時)、プロジェクトフォルダからの相対パスになり、
SaveChangesを実行した時(Insert文が発行される時)、/bin/debugからの相対パスになります。

毎回相対パス指定を変えるのが面倒で、かつ絶対パス指定はしたくないもので。
何か良い方法はありませんでしょうか。

2017/12/18(月)07:59:20.53(mWvJQqvN0.net)


108デフォルトの名無しさん [sage]

AAS

NG

ここじゃないと思うの

2017/12/18(月)13:46:10.03(325qmzymM.net)


109デフォルトの名無しさん [sage]

AAS

NG

>>107
で、app.dbはどこに有るのよ、

2017/12/18(月)14:56:45.39(dTBoNCZ50.net)


110デフォルトの名無しさん [sage]

AAS

NG

俺ならexeパス取得して絶対パス作ってそれ使うけど、
絶対パスいやならカレントフォルダ変更したら?

2017/12/18(月)14:57:20.68(E4FIT7xPa.net)


111107 [sage]

AAS

NG

>>109
プロジェクトフォルダにできます。
ただ、プログラム実行時は別のパス見てるからDBないエラーになります。

>>110
あー、それいいかもです。
やってみます。

2017/12/18(月)23:30:30.75(mWvJQqvN0.net)


112デフォルトの名無しさん [sage]

AAS

NG

個々の人ってWinFormとWPFどっちで作ってる?

2017/12/31(日)15:13:16.63(n7dS7ECy0.net)


113デフォルトの名無しさん [sage]

AAS

NG

WPF

2017/12/31(日)15:13:40.84(K0nOGJob0.net)


114デフォルトの名無しさん [sage]

AAS

NG

何度聞かれてもformだ

2017/12/31(日)16:15:17.15(jcdX0HHma.net)


115デフォルトの名無しさん [sage]

AAS

NG

オレも2年前からWPFにした。

2017/12/31(日)16:16:35.61(PdI3PgJiM.net)


116デフォルトの名無しさん [sage]

AAS

NG

新規は基本的にWPFだけど、使い捨てのツールはFormsのことも多い。

2017/12/31(日)16:35:43.42(GvxCaHuK0.net)


117デフォルトの名無しさん [sage]

AAS

NG

昔はVSが何かっつと即堕ちして使いもんにならんかったが
今はまともになったんかねWPF

2017/12/31(日)16:54:40.12(Jm0z8SXaF.net)


118デフォルトの名無しさん [sage]

AAS

NG

WPFって技術資料があんまないから、つっかかりにくいんだよなあ

2017/12/31(日)17:32:53.36(n7dS7ECy0.net)


119デフォルトの名無しさん [sage]

AAS

NG

>>118
日本語が変だな
外国人?

2017/12/31(日)18:07:24.15(jSVu2Yi+0.net)


120デフォルトの名無しさん [sage]

AAS

NG

>>119
あれだ外人からみれば
そうみえんじゃねw

2017/12/31(日)18:22:11.56(OKQGXBiEx.net)


121デフォルトの名無しさん [sage]

AAS

NG

つっかかりにくい→つかえやすいorつっかえやすい
それとも
つっかかりにくい→とりつきにくいorとっつきにくい

あんまない→あまりないorあんまりない

2017/12/31(日)20:17:21.07(jSVu2Yi+0.net)


122デフォルトの名無しさん [sage]

AAS

NG

読解力ないな
外国人?

2017/12/31(日)20:22:19.59(TCYSbVmxa.net)


123デフォルトの名無しさん [sage]

AAS

NG

読解力が無かったら修正例は書けないと思う

2017/12/31(日)20:26:45.27(sT88mvz00.net)


124デフォルトの名無しさん [sage]

AAS

NG

どこかの田舎もんが書いた文章なんだろ

2017/12/31(日)21:26:10.60(mh0j3eXv0.net)


125デフォルトの名無しさん [sage]

AAS

NG

そんな事にも突っ込まないといけないほど余裕がないんだろうな

2018/01/01(月)08:43:08.79(qva7Cn1y0.net)


126デフォルトの名無しさん [sage]

AAS

NG

ILMergeについて質問です

例えば自作アプリ X.EXE に外部ライブラリ A.DLL と B.DLL を結合して X2.EXE を作ったとします
この X2.EXE を配布する場合、A.DLL と B.DLL の著作権情報を明記すれば問題ないという認識で合っていますか?

2018/01/08(月)21:07:22.93(ff9XOb220.net)


127デフォルトの名無しさん [sage]

AAS

NG

>>126
それはILMerge関係なくA.DLL と B.DLL のライセンスの問題です
結合が禁止されていなければ添付して配布するのと同じになります
どんなライセンスかによって違うので
【License】ライセンス総合【利用許諾】
https://mevius.5ch.net/test/read.cgi/tech/1266247461/
へどうぞ

2018/01/08(月)21:23:20.13(/QyX6ETP0.net)


128デフォルトの名無しさん [sage]

AAS

NG

>>126
> この X2.EXE を配布する場合、A.DLL と B.DLL の著作権情報を明記すれば問題ないという認識で合っていますか?
各々のライセンスを確認するしかない

2018/01/08(月)21:33:00.91(7hYpzMEE0.net)


129デフォルトの名無しさん [sage]

AAS

NG

>>127-128
レスありがとうございます

2018/01/08(月)22:13:04.36(ff9XOb220.net)


130デフォルトの名無しさん [sage]

AAS

NG

ラムダ式から右辺の情報を取得する事は出来ますか?

.net MVC のソースコードを見ていて思ったのだけど、たとえば razor の Html.LabelFor メソッドは第一引数に
m => m.name などと書いて、引数 m で示すクラスインスタンスの name プロパティの DisplayName 属性の値を
ラベルとして表示していたりします。

ということは、ラムダ式 m => model.name から name プロパティの属性情報を取得しているのだと思うのですが、
どうやってるのかさっぱり分からず。
調べるべきキーワードだけでもいいので、ヒントをいただけませんか。

2018/01/31(水)23:46:33.39(3zSQiFnB0.net)


131デフォルトの名無しさん [sage]

AAS

NG

ラムダ式を受け取るメソッドの引数を
Func<String>の代わりにExpression<Func<String>>にしたりする
キーワードは式ツリー

2018/02/01(木)01:19:13.10(7ACR6glp0.net)


132130 [sage]

AAS

NG

>>131
ありがとー。
軽く見てみましたが、Expression ってよく分からないですね。。
式ツリーでも、もっと調べてみます。

2018/02/02(金)00:27:05.13(eoTWLp2s0.net)


133デフォルトの名無しさん [sage]

AAS

NG

サイズ、位置が固定されているウィンドウを外部プログラムから移動、サイズ変更する方法を教えてください

2018/02/13(火)16:59:47.00(KbLCHvlc0.net)


134デフォルトの名無しさん [sage]

AAS

NG

とりあえず一般的には
FindWindowやEnumWindowsで目的のウィンドウのウィンドウハンドルを手に入れて
SetWindowPosする
>>133のウィンドウがこれでできるかどうかはそのプログラムの作り次第

2018/02/13(火)20:22:55.89(ElvL/+ZbM.net)


135デフォルトの名無しさん [sage]

AAS

NG

>>134
ありがとうございます
それで移動、サイズ変更できないウィンドウをどうにかできないかなと思い質問してみました
ユーザーが移動サイズ変更できないウィンドウでも強引にしてしまうプログラムがあるらしいので、どうしてるのかな?と

2018/02/13(火)20:56:39.50(KbLCHvlc0.net)


136デフォルトの名無しさん [sage]

AAS

NG

>>135
とりあえず直接のC#の話でなくWinAPIなんだからそっちで調べた方がいいと思うよ

2018/02/13(火)21:00:42.72(00bUqpHu0.net)


137デフォルトの名無しさん [sage]

AAS

NG

>>136
ありがとうございます

2018/02/13(火)21:21:31.71(KbLCHvlc0.net)


138デフォルトの名無しさん [sage]

AAS

NG

☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

2018/02/16(金)06:01:32.86(W1XJdyx10.net)


139デフォルトの名無しさん [sage]

AAS

NG

厳密に言うとC#の話じゃないんだけど
TcpClientでコネクション使い回しというか
開けっ放しでデータ送り切るって出来ない?
flushしてもデータ残っててCloseしないと全部送られない

2018/04/09(月)14:21:53.70(hXBdpr6O0.net)


140デフォルトの名無しさん [sage]

AAS

NG

ソースで説明してくれ

2018/04/09(月)15:36:40.77(Cpp6LEO80.net)


141デフォルトの名無しさん [sage]

AAS

NG

そんな複雑な話じゃないんだ
GetStream()でストリーム取ってWrite()するだろ
でもClose()しないとケツのいくばくかはいつまで経っても送られない
断続的に送りたいから、いちいちClose()してからConnect()やり直すとかしないで済む方法あるか知りたい

2018/04/09(月)15:51:30.50(hXBdpr6O0.net)


142デフォルトの名無しさん [sage]

AAS

NG

NoDelay=true

2018/04/09(月)15:59:29.12(uvdwBq6N0.net)


143デフォルトの名無しさん [sage]

AAS

NG

おおサンクスやってみる

2018/04/09(月)16:03:49.46(hXBdpr6O0.net)


144デフォルトの名無しさん

AAS

NG

質問です。

非同期実行について勉強中です。

以下のサイトの内容なんですが、

https://ufcpp.wordpress.com/2012/11/12/asyncawait%E3%81%A8%E5%90%8C%E6%99%82%E5%AE%9F%E8%A1%8C%E5%88%B6%E5%BE%A1/

ページ中ほどにある
"スレッド プール実行"

"一方、内側は、スレッド プール上での実行になりますが、スレッド プール上のコンテキストではawaitしてもスレッド プール上のどこかで実行されるだけで、決してUIスレッドには戻らなくなります。"
の意味が理解できません。プール上のどこかで何が実行されるのでしょうか?


また、その下の”問題となる書き方の例”

”Task.Runの中のawaitでは、単一スレッド実行にはならないので、lockが必要になることがあります。”

理解が出来ませんでした。

2連続someTask()は同時に実行されるという意味でしょうか?

2018/04/16(月)21:16:34.15(f86xegYk0.net)


145デフォルトの名無しさん [sage]

AAS

NG

スレッドは使い捨ての領域だから、
その中で遅延実行しても戻り値は受け取れないよ
だって戻る領域が数秒後も存在しているか分からないからね
って意味だと思う

2018/04/16(月)21:51:32.37(zRE5gkIia.net)


146デフォルトの名無しさん [sage]

AAS

NG

マルチスレッドなんて、素人がやるものじゃない。
Ruby を作った、Matz でさえ、何十年もやっていないのに

OS・CPU が今、どのプロセスのどのスレッドの、どの実行コードを実行しているのか、
君のプロセスのスレッドから、わかるわけないでしょ

同期処理じゃないのに。
バラバラに、無関係に動いているのに

逆に言えば、バラバラに動くスレッドの、
現在実行中のコードがわかるのなら、それは同期処理になる

2018/04/16(月)23:04:11.81(qlfABgAK0.net)


147デフォルトの名無しさん [sage]

AAS

NG

これがシングルスレッドおじさん再登場の瞬間であった

2018/04/16(月)23:28:22.82(pnvSaCZFa.net)


148144 [sage]

AAS

NG

どうもありがとう

2018/04/17(火)06:32:51.54(/3sDS4fX0.net)


149デフォルトの名無しさん [sage]

AAS

NG

シングルスレッドだけで出来る仕事って限られてないか。通信なんか絡んだらマルチスレッド必須でしょう。私の現場は.net3.5なんでback|ground work|er使ってるよ。

2018/04/17(火)08:18:31.78(iJwyhGM3M.net)


150デフォルトの名無しさん [sage]

AAS

NG

>>149
taskって4.0からだっけ?

2018/04/17(火)08:24:21.80(AgNOdAZLM.net)


151デフォルトの名無しさん [sage]

AAS

NG

>>150
確かそうです。
taskとか使えると楽なんですが4.0強制もできない案件なんで。

2018/04/17(火)10:03:57.21(iJwyhGM3M.net)


152デフォルトの名無しさん [sage]

AAS

NG

どうしても.net3.5を使わないといけないんだったらRxで処理するわん

2018/04/17(火)10:50:32.95(EhGIAhyrd.net)


153デフォルトの名無しさん [sage]

AAS

NG

おっ!
いいこと教えてもらった。
Rxってsilverlightだけじゃないんだ。

2018/04/17(火)11:51:31.97(iJwyhGM3M.net)


154デフォルトの名無しさん [sage]

AAS

NG

そんなの使えるなら.NET4だって使えるでしょw
3.5が使えて4が使えないプラットフォームは存在しないと思うけど

2018/04/17(火)12:18:07.14(xGjbcgxza.net)


155デフォルトの名無しさん [sage]

AAS

NG

そういう問題じゃないんだよ・・・

2018/04/17(火)12:48:49.14(JQ78IAVca.net)


156デフォルトの名無しさん [sage]

AAS

NG

お客様のPCがWindows7ならデフォルトで3.5が入ってるでしょう。4.0にしてから使ってくださいとは言いずらい。

2018/04/17(火)13:03:19.02(iJwyhGM3M.net)


157デフォルトの名無しさん [sage]

AAS

NG

ちょっと前までUnityも3.5止まりだったから多少はね?

2018/04/17(火)13:07:10.43(rojjHsw+0.net)


158デフォルトの名無しさん [sage]

AAS

NG

Rxってなんぞや!!

2018/04/17(火)16:37:52.80(joazaAE7M.net)


159デフォルトの名無しさん [sage]

AAS

NG

gugure

2018/04/17(火)17:17:34.43(JQ78IAVca.net)


160デフォルトの名無しさん [sage]

AAS

NG

ググれは正論だけど、せっかく話題になったんだからここの住民の意見も聞いてみたい。使ってる人の感想とか。

2018/04/17(火)19:00:52.03(F4BOoGzu0.net)


161デフォルトの名無しさん [sage]

AAS

NG

せや!Rxについて詳しく

2018/04/17(火)19:14:49.95(joazaAE7M.net)


162デフォルトの名無しさん [sage]

AAS

NG

全然関係ないけど、receiveの略が何でRxなのか昔から結構謎

2018/04/17(火)19:54:15.01(xGjbcgxza.net)


163デフォルトの名無しさん [sage]

AAS

NG

それ組み込みの世界だね。送信ポートはTxだ。スレチだね。

2018/04/17(火)20:38:22.07(F4BOoGzu0.net)


164デフォルトの名無しさん [sage]

AAS

NG

インストールされている証明書の読み取り、エクスポートをやりたいんだけどさ
ググるといろいろ出てきてX509とかってのを使うと良いとある
まだ実装とか全然なんだけど、この情報だけだと不安なのでだれかやったことのある人いない?

X509Cartificate.Exportはバイトデータを吐き出してそのままファイルに保存できるるっぽいけど、秘密キーを設定したいとかあったりしてモヤモヤしてる

2018/04/18(水)14:53:40.81(ur62Feqwa.net)


165デフォルトの名無しさん [sage]

AAS

NG

ワッチョイなしスレが1000行ったからこっちをage

2018/05/03(木)18:58:35.37(+FWBwd0JM.net)


166デフォルトの名無しさん [age]

AAS

NG

ageられてなかった…

2018/05/03(木)18:59:21.23(+FWBwd0JM.net)


167デフォルトの名無しさん [sage]

AAS

NG

windowformアプリケーションで

form1 ディスプレイの解像度等を入力する。入力したデータをもとにform2に表示する長方形の大きさ(rx,ry)を算出
form2 form1で算出した(rx,ry)をもとに長方形を表示

ってしたいんだけど

A. rx,ryをpublicで定義してform2.csから参照する
B. form1のrx,ryを求める計算式をクラスにしてform2からインスタンス生成して求める

のどちらがお作法的に正しいんでしょう?

2018/05/04(金)20:04:32.00(hRV05sGM0.net)


168デフォルトの名無しさん [sage]

AAS

NG

データとUIを分離するとして、データ保持と計算用のクラス、formは入力のみ、表示のみって感じになるのかな
でも、まぁそんなのAでもBでもいいだろ

関係ないが解像度ぐらい自動で取得してくれると楽

2018/05/04(金)20:12:02.30(h17LifXxa.net)


169デフォルトの名無しさん [sage]

AAS

NG

なんとなく、こういうのを"お作法"と呼ぶマにはいいイメージがない

2018/05/04(金)20:14:46.22(QSaueu9Z0.net)


170デフォルトの名無しさん [sage]

AAS

NG

>>168
ありがとうございます。
解像度は自動取得なのでディスプレイのoサイズでした。

2018/05/04(金)20:20:22.68(hRV05sGM0.net)


171デフォルトの名無しさん [sage]

AAS

NG

>>169
すいません。
プログラミング初めて勉強なので、なるべくへんなコーディングしないように可読性高くと考えてまして、
普通はどう描くんだろうなというところが気になって仕方ない。
public変数作りすぎると、後でどこかで変に触るとわけわからんことになるのかなと極力使わないように心がけてます。

2018/05/04(金)20:22:53.75(hRV05sGM0.net)


172デフォルトの名無しさん [sage]

AAS

NG

何かフリーソフトを作ってみたくて勉強しているところなのですが、GUI?を学ぶ上で良い本があれば教えていただきたいです

2018/05/04(金)20:37:07.58(HEa1U9rI0.net)


173デフォルトの名無しさん [sage]

AAS

NG

>>171
フォームは入力の受付と出力の描画だけをする
内部で使うデータはモデル側で持つ

2018/05/04(金)20:55:12.49(L0LZvRGB0.net)


174デフォルトの名無しさん [sage]

AAS

NG

>>173
それでいってみます。
ありがとうございます。

2018/05/04(金)21:33:04.91(hRV05sGM0.net)


175デフォルトの名無しさん [sage]

AAS

NG

連投すいません。

ユーザー側でフォームのサイズを変えたとしても
常にフォーム右端にボタンを固定する方法ってないでしょうか?

2018/05/04(金)21:34:38.54(hRV05sGM0.net)


176デフォルトの名無しさん [sage]

AAS

NG

>>175
ボタンのAnchorのプロパティをTop, Rightに変更

2018/05/04(金)21:39:42.44(EvkA5vHv0.net)


177デフォルトの名無しさん [sage]

AAS

NG

>>176
Anchorって設定があったんですね。
できました!
ありがとうございます。

2018/05/04(金)22:00:01.60(hRV05sGM0.net)


178デフォルトの名無しさん [sage]

AAS

NG

Form1で作成したmethod1をForm2で使用したい場合どのようにすればいいのでしょう?

Form1.method1();

だとエラーなのですが、form自体がクラスだからインスタンス生成が必要ということでしょうか?
本当に初歩的な質問ばかりですいません。

2018/05/04(金)22:18:10.81(hRV05sGM0.net)


179デフォルトの名無しさん [sage]

AAS

NG

駄目だ煮詰まってきた。

Visualstudioで新規ソリューションを作成して、既存のソリューションからフォームを追加したのですが、
フォームデザインでは新規フォームが表示されているだけ、.Designer.csを除くときちんとコードが記載されているのですが、
[デザイン]:の画面では反映されておらず、この画面でコントロールを追加などするとエラーがでてビルドできなくなります。
フォームの追加の仕方が間違ってるのかなぁ。

2018/05/04(金)23:14:52.98(hRV05sGM0.net)


180デフォルトの名無しさん [sage]

AAS

NG

煮詰まる=完成する

2018/05/04(金)23:16:00.99(o0wzY09D0.net)


181デフォルトの名無しさん [sage]

AAS

NG

>>179
エラーの内容は?

2018/05/05(土)01:05:27.05(i9GeFih30.net)


182デフォルトの名無しさん [sage]

AAS

NG

>>181

エラー CS0121 次のメソッドまたはプロパティ間で呼び出しが不適切です:
'InitalMonitorSetteing.InitializeComponent()' と 'InitalMonitorSetteing.InitializeComponent()'

エラー CS0111 型 'InitalMonitorSetteing' は、'InitializeComponent'
と呼ばれるメンバーを同じパラメーターの型で既に定義しています。

です。

2018/05/05(土)08:03:54.33(CBIAOUw10.net)


183デフォルトの名無しさん [sage]

AAS

NG

ソリューションエクスプローラーで
追加→既存の項目
でフォーム一切合切を取り込むと
フォームの[デザイン]タブのところで新規のフォームが表示され、これをいじると上記エラーが出ます。
フォームの[デザイン]タブをいじらなければ正常に実行されます。

.Designer.csを見るときちんとコードが書かれているので
[デザイン]と.Designer.csが一致していない状態になっているようです。

2018/05/05(土)08:08:30.21(CBIAOUw10.net)


184デフォルトの名無しさん [sage]

AAS

NG

地道に

フォームのデザインすべてコピー貼り付け
コードすべてコピー貼り付け

ってやって追加しました。
なんかネットで見ると、

ソリューションエクスプローラーで
追加→既存の項目
でフォーム一切合切を取り込む

ってやると後々まで得体のしれないエラーに悩まされるので、上の方法を推奨している方がいました。
Visual Studioかフォーム自体の持つバグなんですかね…。

2018/05/05(土)08:36:55.68(CBIAOUw10.net)


185デフォルトの名無しさん [sage]

AAS

NG

〜VS2015しか使ってないが俺はエラー起きたことないよ。原因分からないけど、何かやらかしてるんでしょ

2018/05/05(土)08:47:39.95(5nbJxYdYa.net)


186デフォルトの名無しさん [sage]

AAS

NG

無闇にコピペした結果を環境のバグとか
プログラム向いてないよお前

2018/05/05(土)09:57:21.01(+PUGPCx60.net)


187デフォルトの名無しさん [sage]

AAS

NG

失礼しました。
私がよく理解していないために、しなければいけない作業をしていないのかもしれませんね。

2018/05/05(土)10:00:36.87(CBIAOUw10.net)


188デフォルトの名無しさん [sage]

AAS

NG

むしろしちゃいけない作業をしてるような気がする...

2018/05/05(土)10:35:22.91(TTUQSH5zM.net)


189デフォルトの名無しさん [sage]

AAS

NG

>>178
そもそもこの質問の時点でFormsのコード部分が何をやってるのか理解できてない可能性がある

2018/05/05(土)11:08:14.41(T9f+iK/r0.net)


190デフォルトの名無しさん [sage]

AAS

NG

いきなり難しいことをやろうとするとダメやね

2018/05/05(土)11:25:44.32(qEM4shRT0.net)


191デフォルトの名無しさん [sage]

AAS

NG

基礎も身につけずに一端のフリして解決しようとして、半端で折れるバカってのはよく聞く話

とりあえず何か入門書籍に頼って動くものを作れ
話はそれからだ

2018/05/05(土)11:27:18.98(LtMyhhwZM.net)


192デフォルトの名無しさん [sage]

AAS

NG

>>184
情報共有する場所なんだからこういったいいかげんなこと書くのやめてほしいな
まずソースをそのまま取り込みたいのならプロジェクトに追加で何も不具合は起こらない
それでデザイナが反映されないのならDesigner.csを直接書き換え(認識できなくなるような書き換え)やっているはず
あとユーザーコントロールを内部で追加している場合は一度ビルドするとデザイナで反映される
プロジェクトでなくソリューションにソース追加しても当然何も起こらない
最初からふらっとにいけばいいのに

2018/05/05(土)20:20:18.85(xedbZMvy0.net)


193デフォルトの名無しさん [sage]

AAS

NG

WinFormのデザイナは中途半端に内部実行するからしょっちゅうトラブるんだよな
コンストラクタでなんかやってる奴は特に要注意

2018/05/05(土)20:30:34.54(Tc8hf/iLa.net)


194デフォルトの名無しさん [sage]

AAS

NG

デザイナかどうか判断するコードを書くのは飽きた

2018/05/05(土)22:08:57.94(1Zee5iE50.net)


195デフォルトの名無しさん [sage]

AAS

NG

そんなあなたに!WPF!

2018/05/05(土)22:38:59.04(T9f+iK/r0.net)


196デフォルトの名無しさん [sage]

AAS

NG

フォームをコントロール含めて継承すると継承先でコントロールの編集ができなかったり云々
という書き込みを見たので、
そこで提案されていた新規フォーム作成して
そこにコピペとしてみて結果オーライだったのでそれで良しとしたのですが、
私の方でなにか既存のフォームを取り込むのにまずいことをしてたのかもしれません。
記憶にないけどDesigner.csを直接書き換えしたかなぁ・・・。

フォームで作成するかWPFを使うかを悩んでた時にフォームは放置されたバグが多いと警告されていたので、
単純にバグなのかと思いましたが根拠なくソフトのバグと書き込むのはまずかったですね。
失礼しました。

2018/05/05(土)22:40:45.58(CBIAOUw10.net)


197デフォルトの名無しさん [sage]

AAS

NG

FormかWPFか悩んでるならWPFを推す。
最初は難しいがXAMLはUWPでも使っていて今後につながると思う。

2018/05/06(日)07:44:34.64(8BI4PAGy0.net)


198デフォルトの名無しさん [sage]

AAS

NG

今後ピクセル単位でのUI作成は完全に無くなるからなぁ

2018/05/06(日)15:08:05.14(gzoDeGmX0.net)


199デフォルトの名無しさん [sage]

AAS

NG

多段継承してるカスタムコントロールはぶっ壊れやすい
Winアプリ作らにゃならんならWPFのがマシってのはまあそうだ
でも将来性あるとは思わんな

2018/05/06(日)16:52:40.62(6XezKW2ea.net)


200デフォルトの名無しさん [sage]

AAS

NG

WPFそのものの将来性はともかくとして、その技術のエッセンスが次代に引き継がれると思うんです。
今後もWinアプリを開発することになるんで、なるべく将来性と言うか潰しのきく技術に投資したいと思ってWPFにしたんだけど。

2018/05/06(日)17:34:01.02(ZPoK8KSTM.net)


201デフォルトの名無しさん [sage]

AAS

NG

>>199
それはないよw
継承の段数は関係なくて、単にコントロールのカスタマイズは意外と難しいってだけの話

俺も経験があるけど簡単にシステム側のバグを疑いたくなる現象にぶち当たるけど、
ほとんどの場合はプログラマの理解不足によるユーザーコード側のバグが原因

2018/05/06(日)17:36:34.98(w10wIaHya.net)


202デフォルトの名無しさん [sage]

AAS

NG

潰しがきくってんならなおさら独自仕様なんぞあかんやろ
WPF出てから何年経ってるよ
他に採用してるとこないのはそういうことだ

2018/05/06(日)17:37:23.44(6XezKW2ea.net)


203デフォルトの名無しさん [sage]

AAS

NG

>>202
XAML

2018/05/06(日)17:39:54.31(YMV7ENjt0.net)


204デフォルトの名無しさん [sage]

AAS

NG

>>201
いや正確にはシステムがぶっ壊してるんじゃなく
レイアウト決定だの初期化順番だので罠にはまる確率がガンと上がるって話
コントロール1種を少々カスタマイズしたくらいじゃあんまハマらんさ

2018/05/06(日)17:41:16.14(6XezKW2ea.net)


205デフォルトの名無しさん [sage]

AAS

NG

GDIが使えない時点でゴミ
WPFでCADを提供してみろ

2018/05/06(日)17:43:51.97(EPydt9+c0.net)


206デフォルトの名無しさん [sage]

AAS

NG

>>202
対案示してくれると検討もできるんですけど。

2018/05/06(日)18:14:23.28(8BI4PAGy0.net)


207デフォルトの名無しさん [sage]

AAS

NG

>>206
オプショナル独自仕様なんぞわざわざ覚えんでもC#だけ抑えときゃいいじゃん

2018/05/06(日)18:17:03.64(6XezKW2ea.net)


208デフォルトの名無しさん [sage]

AAS

NG

formとwpfどっちかじゃなくて、状況に応じてどっちか使えばいい
言語だってそうだ。c#に拘らず、必要に応じてほかの言語も使えば楽になるぞ
縛りプレイとか馬鹿臭くてやってられん

2018/05/06(日)18:17:55.59(JGiuZYwWa.net)


209デフォルトの名無しさん [sage]

AAS

NG

何でこのスレ来てるの?

2018/05/06(日)18:18:35.39(gpR98zCG0.net)


210デフォルトの名無しさん [sage]

AAS

NG

xamlが単なるコードトランレート言語だったなんて知らなかったんだよ。

2018/05/06(日)18:21:30.52(gzoDeGmX0.net)


211デフォルトの名無しさん [sage]

AAS

NG

>>207
まさかの浅い答えでしたね。
今時、なんか開発する時は言語だけじゃなくAPIとかプラットホームとのセットじゃないの?

2018/05/06(日)18:31:06.82(8BI4PAGy0.net)


212デフォルトの名無しさん [sage]

AAS

NG

最近form触る機会あったけど、WPFになれた後だとバインディングが面倒でならない
formはformでわざわざ部品探したり作る必要ないから良いんだけどね

2018/05/06(日)18:36:24.83(Yj4OtQcz0.net)


213デフォルトの名無しさん [sage]

AAS

NG

Bindingが遅すぎて使い物にならない

2018/05/06(日)18:49:36.56(c85H7Qr90.net)


214デフォルトの名無しさん [sage]

AAS

NG

なんか変なイチャモン付けてる人いるけど。
CAD作れるかとか、Formならできるの?
Windows、.net、C#でGUIアプリ作るならFormかWPFしかないじゃん。
Formは終わった技術で行き止まり、WPFは普及しなくて過渡的な技術になるかも知れないがその先につながりそうでって言ってんです。
もっと論理的に反論して欲しいです。

2018/05/06(日)19:05:20.38(8BI4PAGy0.net)


215デフォルトの名無しさん [sage]

AAS

NG

昔から居ついてるから一々突っからなくて宜しい

2018/05/06(日)19:06:34.14(lPSPWHr00.net)


216デフォルトの名無しさん [sage]

AAS

NG

>>215
昔から居てもアホな書き込みすると初学者は惑わされるのよ。
自分が理解出来ない技術はみんなダメって言ってないか?
ちゃんと論理的に反論してよ。
出来ないなら駄まってろ。

2018/05/06(日)19:13:48.84(8BI4PAGy0.net)


217デフォルトの名無しさん [sage]

AAS

NG

formでCAD作ってる奴ぐぐると日本人でも複数いるよ

2018/05/06(日)19:15:40.37(JGiuZYwWa.net)


218デフォルトの名無しさん [sage]

AAS

NG

>>214
お前さんみたいな銀の弾丸求める奴ぁ先がないぞ
XAMLは文字列だらけで設計の筋がいいとは到底言えない
もし次があるなら全然違うもん出してくるんじゃないの

2018/05/06(日)19:17:40.07(OZSh5wZJ0.net)


219デフォルトの名無しさん [sage]

AAS

NG

>>217
FormでできるならWPFでもできるだろう。
Formの優位性は何?

2018/05/06(日)19:21:54.60(8BI4PAGy0.net)


220デフォルトの名無しさん [sage]

AAS

NG

>>218
XAMLは面倒よ、たしかに。
でもね、オレは使ってないがGUIのリソースエディタがあるんじゃないか?
なくても直ぐにできるよ。

2018/05/06(日)19:24:56.35(8BI4PAGy0.net)


221デフォルトの名無しさん [sage]

AAS

NG

>>218
UWPもXAMLだよ。
MSは当面これでいくんじゃないの。
あんたよりMS信じる。

2018/05/06(日)19:27:17.19(8BI4PAGy0.net)


222デフォルトの名無しさん [sage]

AAS

NG

XAMLの筋が悪い一例としてIDEサポートがHTMLにすら劣る点が上げられる
今でも時々vsごと落ちる
まあ次が出る前にWinアプリ自体がオワコンになる可能性も低くないけどな
あんたの人生だから好きにしたらいいよ

2018/05/06(日)19:34:40.78(OZSh5wZJ0.net)


223デフォルトの名無しさん [sage]

AAS

NG

>>222
XAMLでの開発3年弱だがVS落ちた経験ないよ。
Winアプリがオワコンになるんだったら、早いとこ他の言語・環境に移行したら?
オレはWinアプリだけじゃなくタブレットとかスマホにも適用できると思ってるから、この道行くよ。

2018/05/06(日)19:44:28.98(8BI4PAGy0.net)


224デフォルトの名無しさん [sage]

AAS

NG

>>222
俺も落ちたことないんだけど、どんな環境で何したん?

2018/05/06(日)19:47:05.22(YMV7ENjt0.net)


225デフォルトの名無しさん [sage]

AAS

NG

WPFはもちろん最良ではないけど
すくなくとも現行のUWPと共通のXAML使ってるぶんFormsよりは十倍マシ

2018/05/06(日)19:59:30.59(P5UQ0avb0.net)


226デフォルトの名無しさん [sage]

AAS

NG

メモリ8Gで5段くらいネストした奴編集してたらストンと落ちたぞ
vs2015だ

>>225
「現行では」比較論でまあせやな
将来性は怪しいが

2018/05/06(日)20:10:59.67(OZSh5wZJ0.net)


227デフォルトの名無しさん [sage]

AAS

NG

>>226
ハードウェアアクセラレーションの問題ではなくて?

2018/05/06(日)20:17:33.07(YMV7ENjt0.net)


228デフォルトの名無しさん [sage]

AAS

NG

>>226
すごいな。なかなか落とせるもんじゃない。
そんなにWinの将来に悲観的なら、本当にどこかに行ってください。
間違った書き込みを堂々と恫喝的にされると初学者の道を誤らせるよ。
それって罪なことです。
このスレタイでは。

2018/05/06(日)20:19:15.57(8BI4PAGy0.net)


229デフォルトの名無しさん [sage]

AAS

NG

>>228
落ちるときは落ちるさ
こんな風にその問題を追及しないのがアレ
https://stackoverflow.com/questions/31021049/visual-studio-2015-crashes/33182194#33182194

2018/05/06(日)20:22:22.92(YMV7ENjt0.net)


230デフォルトの名無しさん [sage]

AAS

NG

>>229
他の環境はそんなに安定してるのか?
VSが特別に酷いとは思わないけど。
MSデスってなんでここにいるの?

2018/05/06(日)20:28:51.95(8BI4PAGy0.net)


231デフォルトの名無しさん [sage]

AAS

NG

>>230
俺がいつMSをデスった?いつ他の環境と比較した?
ID:OZSh5wZJ0と間違えなさんな

2018/05/06(日)20:30:40.96(YMV7ENjt0.net)


232デフォルトの名無しさん [sage]

AAS

NG

>>231
Winアプリはオワコンって言ったろ。
それより、CAD作ってみろ、って恫喝的に書いたろ。
あのフォローをしてくれ。論理的に。

2018/05/06(日)20:37:41.43(8BI4PAGy0.net)


233デフォルトの名無しさん [sage]

AAS

NG

>>213
ごめん。
人違いだった。

2018/05/06(日)20:39:01.49(8BI4PAGy0.net)


234デフォルトの名無しさん [sage]

AAS

NG

>>233
たびたび訂正ですがアンカ間違えた。
すまん。

2018/05/06(日)20:40:12.87(8BI4PAGy0.net)


235デフォルトの名無しさん [sage]

AAS

NG

わかりやすく発狂してんなー
初学者どうたら言うんならもっと普及してるもん押すべきじゃあないの?
言っとくけどC#自体は他でも使われてるからなUnityとか

>>229
毎度再現するんでもないからなー
Formでは一回も落ちたことないからXAML関係が比較的不安定なのはそうじゃないの

2018/05/06(日)20:46:08.35(OZSh5wZJ0.net)


236デフォルトの名無しさん [sage]

AAS

NG

>>235
見っともないぞ。
昔からいる古狸かも知れないが、もっとちゃんとしろ。
初学者惑わす書き込みを堂々とするのはやめて、自分の考え披露するのは構わないけど。

2018/05/06(日)20:58:22.97(8BI4PAGy0.net)


237デフォルトの名無しさん [sage]

AAS

NG

>>232
だから俺は違うってばwww

2018/05/06(日)21:16:41.42(YMV7ENjt0.net)


238デフォルトの名無しさん [sage]

AAS

NG

アンカさえまともに書けないやつがコード書けるのか?

2018/05/06(日)21:31:09.89(JjviwauC0.net)


239デフォルトの名無しさん [sage]

AAS

NG

>>237
ごめん。
ちょっと酔っ払って熱くなった。
もうここらで寝ます。
>>238
ご心配いただきありがとうございます。

2018/05/06(日)21:39:39.84(8BI4PAGy0.net)


240デフォルトの名無しさん [sage]

AAS

NG

わたし錯乱某

2018/05/07(月)11:50:51.85(zM6nOBFcM.net)


241デフォルトの名無しさん [sage]

AAS

NG

わい、コンソールアプリしか作ってない

2018/05/08(火)02:53:46.31(EHD0XpOQ0.net)


242デフォルトの名無しさん [sage]

AAS

NG

>>241
.NET Core Global Toolsおもしろいよね

2018/05/08(火)03:04:56.28(wFWfdcvC0.net)


243デフォルトの名無しさん [sage]

AAS

NG

フォームアプリケーションで

A.初期設定画面
表示する円の大きさ、数、表示座標の範囲などの初期値を設定

B.ゲーム画面
初期設定画面からAの初期値を取得し、メンバ変数に代入して
円を表示する
円を消去する
円の当たり判定をする
などの3つぐらいのメソッドで使用しています。
Bのコードが長くなって200行ぐらいになると、
メンバ変数をどこで使ってるのか全部見なければいけないのは
可読性が悪いのかなと思うようになってきました。
3つのメソッドそれぞれのグループ変数として
それぞれ3つのメソッド内でAの初期値を見に行くコーディングをしたほうが良いのでしょうか?

メンバ変数の方が冗長性はないけど可読性が低くて、
メソッドないのグループ変数にしたほうが冗長性が高いが可読性も高い気がします。

独学でコーディングしているので、お仕事でプログラミングされている方のご意見を伺いたいです。

2018/05/11(金)22:56:53.52(oqUyZvi20.net)


244デフォルトの名無しさん [sage]

AAS

NG

>>243
Aが入出力と, モデルのデータ保持という3役を担っているのが良くない。
出力が本業なので可能ならばそれに特化するが, 差し当たってはデータ保持を分離して別クラス(モデル)に切り出す

2018/05/11(金)23:05:04.79(KxM4SNOx0.net)


245デフォルトの名無しさん [sage]

AAS

NG

Aは
public int GetTimeLimit
{
bool resultOfGetTimeLimit = int.TryParse(this.timeLimit.Text, out int timeLimit);
if (resultOfGetTimeLimit)
  return timeLimit;
else
return 0;
}

が10個ぐらいあるだけで、Aの可読性はいいのですが。

Bのクラスから→Aのインスタンス生成→フォーム表示しているので、

Bが
1. Aからの初期値取得
2. 取得した初期値でゲーム画面表示
3. ゲーム中の処理
4. スコアデータとAの初期値テキストファイルへの書き出し

という4つの異なった処理(特に2,3のコードが長い)をしているのと、
Aのコードの量も400行近くになっているのが可読性低下の原因かと思います。

2018/05/12(土)08:19:23.20(RvuVG0qm0.net)


246デフォルトの名無しさん [sage]

AAS

NG

Bの別のクラスを作って分離させたいんだけどBからAのインスタンス生成しているので、
BAの画面処理に基づいた1234はすべてBに入れることになってるんですよね。

これって画面遷移が良くないってことなのかなぁ?

一般的に1234の処理を一つのフォームクラスに押し込んでクラスメンバ変数10個程度、
400行のコードって可読性の観点から許容されるものなんでしょうか?

チームでプログラミングされているプロの方の意見をお伺いできればと思います。
(長文本当に申し訳ありません)

2018/05/12(土)08:19:38.98(RvuVG0qm0.net)


247デフォルトの名無しさん [sage]

AAS

NG

人の話聞いてないねw
じゃあもう好きにしたらいいと思うよ

2018/05/12(土)08:45:11.14(KCIDKf2Q0.net)


248デフォルトの名無しさん [sage]

AAS

NG

>>247
私の説明か理解が悪いのでしょうか?

Aは100行未満のコード245のコードの連続なので簡単に読めます。
Bが読みづらいのが問題なので、Aの機能を分離しても解決にはならないような。

BがAが取得したデータ保持とゲーム内でのデータ処理の二つを担っているのがまずいとのご指摘であれば、
それはそうかと思いますが、データ保持と処理が画面と密接に関係しているので分離し難いというか・・・。

コード全部見せないで質問すること自体に無理があるのかもしれませんね。
すいません。

2018/05/12(土)09:11:24.66(RvuVG0qm0.net)


249デフォルトの名無しさん [sage]

AAS

NG

たぶん端的にこう質問すればよかったのかと思います。

フォームを生成しているクラスのコードが400行、メンバ変数が10個、メソッドが8個、で、
メンバ変数はそれぞれのメソッドで3個ぐらい引用しています。

こういうコードってチームで作業してるプロから見て許容できる範囲でしょうか?
処理が多少冗長になってもメンバ変数を少なくして、メソッド内でグローバル変数として定義するべきでしょうか?

2018/05/12(土)09:18:34.84(RvuVG0qm0.net)


250デフォルトの名無しさん [sage]

AAS

NG

>>248
Aを入出力専門のAViewとデータ保持専門のDataHolderに分離
Bをゲーム画面描画専門のBViewと実際の内部処理を行うGameModel, 各種書き出しを行うWriterに分離

Windowのインスタンスの内部で色々な処理を行うのがそもそも間違ってる
描画と変更の通知以外何もさせるな

2018/05/12(土)09:19:07.30(vhGL8v7ea.net)


251デフォルトの名無しさん [sage]

AAS

NG

>>250
ありがとうございます。
理解できました。

フォーム生成するクラスはフォームの描画、変更に特化

A 初期値入力フォームを生成するクラス
B データを保持するクラス
C ゲーム画面表示クラス
D ゲームのルールに基づいてBを更新するクラス

分かりやすい。
これがオブジェクト指向ってやつか・・・。

2018/05/12(土)10:01:27.82(RvuVG0qm0.net)


252デフォルトの名無しさん [sage]

AAS

NG

自分は成り行きでBの機能の一部をCに放り込んでしまったから、
Bを処理するDも必要に迫られてCに入れざるを得なくなってたんですね。

入門書にあったサンプルプログラムはコード数が少なかったから、
BをCに入れてるものが結構あったので無意識にこんなもんだと思ってました。

こういうのって本では学びづらいですね。
勉強になりました。
ありがとうございます。

2018/05/12(土)10:07:34.76(RvuVG0qm0.net)


253デフォルトの名無しさん [sage]

AAS

NG

>>251
それはOOPではなくMVCな。一応。

2018/05/12(土)11:04:14.67(PbE4ojLD0.net)


254デフォルトの名無しさん [sage]

AAS

NG

まぁGUIアプリケーションでのOOPの具体的なアーキテクチャだから

2018/05/12(土)11:05:17.79(vhGL8v7ea.net)


255デフォルトの名無しさん [sage]

AAS

NG

MVCは初耳で今ググって勉強しました。

やはり自分のコードは人と共有できるレベルではなかったですね。
MVCの設計で修正してみます。

手続き型言語しかやってないので、
手続きで処理していって
「なんども同じ手続き出てくるな。」
と思ったらクラスにして分離する思考になってたんですけど、
それじゃだめですね。

こういうのが学べるいい本があったらいいなぁ。

2018/05/12(土)11:23:13.92(RvuVG0qm0.net)


256デフォルトの名無しさん [sage]

AAS

NG

dataHolderクラスってABCDどれからもアクセスすることになるんですが、
パブリックにして、どこからでも読み書きできるようにしていいんでしょうか?

バグの温床になるからダメ?

2018/05/12(土)11:32:37.31(RvuVG0qm0.net)


257デフォルトの名無しさん [sage]

AAS

NG

マイクロソフトのホームページだとPublicにしてますね。

これだとどこからでもすべてのデータにアクセスできるから便利だし可読性もいいけど、
どこかでうかつにdataHolderの変数に変な値を入れると、
どこがバグになっているのか全コード読まなければいけないですね。

うーん・・・。
世の中そんなもんなのか?

2018/05/12(土)11:36:18.82(RvuVG0qm0.net)


258デフォルトの名無しさん [sage]

AAS

NG

>>256
お好きに
結局は書きやすさと安全性のトレードオフ

ガッチガチに書くならgetterだけのImmutableオブジェクトを表すインターフェイスとそれを実装する具体クラスに分離してViewにはインターフェイスだけ教えるとか(あまりやらない)
作る人数とか規模によってどの程度強制するか変わってくるから程よくやるのが重要, 一貫性は重要だが徹底しすぎるとしんどい

2018/05/12(土)11:43:38.40(vhGL8v7ea.net)


259デフォルトの名無しさん [sage]

AAS

NG

>>258
immutableなんてものがあるんですね。
ごく一部の変数以外はimmutableで事足りるから、immutable設定にします。
publicでdataHolderクラス作ってメンバ変数はすべてimmutableにすれば、

可読性、コーディングの利便性、安全性

全部満たせますね。
なんて便利なんだ…。( ゚д゚)

2018/05/12(土)11:57:15.21(RvuVG0qm0.net)


260デフォルトの名無しさん [sage]

AAS

NG

>>259
残念ながらC#では上手くImmutableに出来ない(出来るかもしれないが最近やってないので詳しい人教えて)
TypeScriptとかなら既存の型にReadonlyを再帰的に付けた型が簡単に作れるんだけどなぁ

2018/05/12(土)12:02:17.65(vhGL8v7ea.net)


261デフォルトの名無しさん [sage]

AAS

NG

MVCって、VとCの境界が曖昧になりがちだよな。
ってか、VとCを分ける様な事するからUIが使い辛い物になるんだよな。

2018/05/12(土)12:04:38.53(F4kLnVK3p.net)


262デフォルトの名無しさん [sage]

AAS

NG

>>261
せやな
MVVMとかあるしな

2018/05/12(土)12:06:20.36(vhGL8v7ea.net)


263デフォルトの名無しさん [sage]

AAS

NG

そそ、MVCやMVPってのは、オンラインサービスみたいにデータ管理と画面操作が隔離してる様なコンピュータサービスでなら適してるけど、スマホとかパソコンの中で完結した操作性重視のアプリの設計には適して無いんだよな。

2018/05/12(土)12:12:09.32(F4kLnVK3p.net)


264デフォルトの名無しさん [sage]

AAS

NG

厳密に言えば readonly と immutable は別
interface で表現出来るのは readonly

2018/05/12(土)12:25:35.08(CthSiE230.net)


265デフォルトの名無しさん [sage]

AAS

NG

残念・・・

bool resultOfGetTimeLimit = int.TryParse(this.timeLimit.Text, out constant.timeLimit);

みたいに定数をフォームから取得できればありがたいんだけどなぁ。
そういう需要ってあんまりないんだろうか。

2018/05/12(土)12:57:15.57(RvuVG0qm0.net)


266デフォルトの名無しさん [sage]

AAS

NG

>>265
何いってるのかわかりません

2018/05/12(土)14:45:46.09(UZR1Ryt2a.net)


267デフォルトの名無しさん [sage]

AAS

NG

それに変数名長すぎ

2018/05/12(土)14:55:22.20(5EDA9IkjM.net)


268デフォルトの名無しさん [sage]

AAS

NG

しかもbool型に見えない

2018/05/12(土)14:55:53.42(5EDA9IkjM.net)


269デフォルトの名無しさん [sage]

AAS

NG

なんかもうMVCに従って書き直すの不可能な気がしてきた・・・
初めから作り直すほうが早いかも・・・。

2018/05/12(土)17:01:44.57(RvuVG0qm0.net)


270デフォルトの名無しさん [sage]

AAS

NG

>>269
MVCは基本的にWebだかんね…

2018/05/12(土)17:16:54.39(15xgRckc0.net)


271デフォルトの名無しさん [sage]

AAS

NG

設計思想根本から変えるのに小手先の修正で済むわけないよw

2018/05/12(土)17:19:31.54(VhwAlNWxd.net)


272デフォルトの名無しさん [sage]

AAS

NG

初心者が勉強のためにゲームプログラムを作るのにMVCなんてナンセンスです。
先ず、何でもいいから動くものを作る。プログラムスタイルはそれからいろんなな本で学べばいい。

2018/05/12(土)17:32:27.30(XEHHkDisM.net)


273デフォルトの名無しさん [sage]

AAS

NG

まず設計からやり直さないと無理だと思うよ

2018/05/12(土)17:33:18.63(oxtjRRByM.net)


274デフォルトの名無しさん [sage]

AAS

NG

頭の中がどぁーっとなってきました。
とりあえずゲーム本体は完成したんですが、一部改変しようとしたらかなりの機能がすべてゲーム画面フォームにくっついてるので読みづらいことこの上ないなと。
データ部分を別構造にしたかったんですが、ほぼ句見直しに近い改変であたまがわやになってます。

2018/05/12(土)18:06:22.88(RvuVG0qm0.net)


275デフォルトの名無しさん [sage]

AAS

NG

すんごい読みづらいコードなんだけどこのまま進めていいのかな・・・。
とりあえず力業で進めることは可能なんですけど気持ち悪い。

2018/05/12(土)18:11:39.59(RvuVG0qm0.net)


276デフォルトの名無しさん [sage]

AAS

NG

>>274
で、でたーオブジェクト指向不出来form.cs全部書込奴w

2018/05/12(土)18:12:38.37(5EDA9IkjM.net)


277デフォルトの名無しさん [sage]

AAS

NG

動くコード書ける奴の方が神だからな。
設計どうのこうのなんて、動くコード書ける様になってから理解すれば良い。
何なら作った後で反省的を挙げながらここはこう言う構造の方が良かったんじゃね?
なんてやるのが一番設計の知識ぐ身につく。

2018/05/12(土)18:16:14.33(XIsYMxrj0.net)


278デフォルトの名無しさん [sage]

AAS

NG

自分のプログラムが汚いわかりにくいと思ったのなら、あなたはセンスがあるんだよ。
汚いプログラム書いて平気なプロもいるからね。
後はいろんなサンプルプログラムを検索して読んだらいい。あっ、これがいいとか気付きがあると思う。

2018/05/12(土)18:23:40.04(XEHHkDisM.net)


279デフォルトの名無しさん [sage]

AAS

NG

プログラマの能力を試すには書かせるより読ませるのがいいからね。
人のプログラム読めない奴は進歩ないから。

2018/05/12(土)18:26:39.51(XEHHkDisM.net)


280デフォルトの名無しさん [sage]

AAS

NG

あれ、根本的なことが分かってないことが分かりました。

B DataHolder
C ゲーム
D スコア記録

CからBのインスタンスを生成
DataHolder dataHolder1=new DataHolder();
すればCのpublic変数aにアクセスするときはdataHolder.a=hoge;とかでいいけど、
DからBのdataHolder1の変数aにアクセスってできるんですか?

CからDにdataHolder1の参照を渡すってこと??

2018/05/12(土)18:31:48.49(RvuVG0qm0.net)


281デフォルトの名無しさん [sage]

AAS

NG

>>276
全部ではないけどほぼご指摘あってます・・・。
本に書いてある小さなプログラムはほとんどform.csに放り込んでたので、そんなものかと思ってた。

2018/05/12(土)18:33:40.32(RvuVG0qm0.net)


282デフォルトの名無しさん [sage]

AAS

NG

>>277
ありがとうございます。
今ようやっと設計の大事さを学習しました。
レベル0から0.01ぐらいには成長できた気がします。

2018/05/12(土)18:34:30.46(RvuVG0qm0.net)


283デフォルトの名無しさん [sage]

AAS

NG

>>280
そもそもこれが分かってなかったから一つのフォーム画面にいろいろ機能を盛り込みすぎたんだと。

2018/05/12(土)18:35:15.53(RvuVG0qm0.net)


284デフォルトの名無しさん [sage]

AAS

NG

>>280

間違いました。

あれ、根本的なことが分かってないことが分かりました。

B DataHolder
C ゲーム
D スコア記録

CからBのインスタンスを生成
DataHolder dataHolder1=new DataHolder();
すればCのpublic変数aにアクセスするときはthis.a=dataHolder.a;とかでいいけど、
DからBのdataHolder1の変数aにアクセスってできるんですか?

CからDにdataHolder1の参照を渡すってこと??

2018/05/12(土)18:37:29.64(RvuVG0qm0.net)


285デフォルトの名無しさん [sage]

AAS

NG

まあなんだよ
今の君に必要なのは鉛筆と紙だ
なんたらチャートのお作法なんぞ知らんでいいから、まずは機能を書き出して丸で囲め
それからどの機能が何処から必要になるかを線引っ張って繋げ
めちゃくちゃ線がごちゃごちゃするだろう?
それをなるべく少ない線で済むように書き直すんだ何回でも

2018/05/12(土)20:01:02.99(9rdAnFG4a.net)


286デフォルトの名無しさん [sage]

AAS

NG

>>285
自分で書いててこんがらがってきますね。
でもまずやってみます。

2018/05/12(土)23:33:51.06(RvuVG0qm0.net)


287デフォルトの名無しさん [sage]

AAS

NG

Aフォームのメンバ変数、メソッドを
BCフォームからも使用できるようするにはどうすればいいのでしょう。

Bだけで使用するならB内でAのインスタンス生成→ShowでAフォームを表示させればいいと思うのですが、
Cフォームでも使用するとなると、Cフォームで新たにAのインスタンスを生成するわけにもいかないですよね。

2018/05/12(土)23:36:15.36(RvuVG0qm0.net)


288デフォルトの名無しさん [sage]

AAS

NG

>>287
ググるなりして調べた?そろそろ初心者スレでやって
インスタンスを渡せばいいだけなのに

2018/05/12(土)23:44:08.44(7v9y2RSd0.net)


289デフォルトの名無しさん [sage]

AAS

NG

>>288
すいません。
ググってもよくわからなかったので質問したのですが安易に人に頼りすぎてましたね。

昨夜からわからないところを実際にコードで打ち込んでみて実験重ねて理解できました。
インスタンスの参照渡すって言っても

フィールド渡し
プロパティ渡し
メソッド渡し

と色々方法あるんですね。インスタンスの参照を渡す方法が分かってなかったから一つのクラスに一杯盛り込むことになってたんだと理解できました。

2018/05/13(日)11:04:57.10(ySggkKZM0.net)


290デフォルトの名無しさん [sage]

AAS

NG

こういうのってCやってれば常識なんですね。
どこからC#でどこまでCの質問か分からずこちらで何でも聞いていました。

次から初心者板に移動してみます。

でも、みなさんのおかげでだいぶいろいろなことを学べました。
ありがとうございます。

2018/05/13(日)11:06:37.40(ySggkKZM0.net)


291デフォルトの名無しさん [sage]

AAS

NG

〇〇する機能みたいにして、重要だと思う機能ほど大きく書いて相関関係を、ドラマの登場人物の関係図みたいに描いたらなんとなくクラス図の基本が出来上がる。

2018/05/13(日)13:59:35.41(23x2pXKw0.net)


292デフォルトの名無しさん [sage]

AAS

NG

>>291
ありがとうございます。
クラス図についても勉強してみます。

2018/05/13(日)14:41:31.02(ySggkKZM0.net)


293デフォルトの名無しさん

AAS

NG

Genericクラスのメソッドで
型が重複する場合の仕様について質問です
class Dic<T> : System.Collections.Generic.Dictionary<int,T>
{
    public bool Contains(int key)
    {
        return base.ContainsKey(key);
    }
    public bool Contains(T val)
    {
        return base.ContainsValue(val);
    }
}
ちょっと必要にせまられて、こんな雰囲気のクラスを作りました
基本的に、重複する型では利用しない予定ですが
気になってテストコードを作ってデバッグしたところ何の警告も出なく実行できて
「base.ContainsKey(key);」の結果が返ってきました
これは言語仕様でしょうか?
それともVisualStudioや.Net Framework仕様でしょうか?
どなたか詳しい方、おしえてください
※ 環境は Visual Studio 2017 Community Framework 4.6.1

2018/05/22(火)22:37:35.74(gaTn3ZGLJ)


294デフォルトの名無しさん

AAS

NG

僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

094C5

2018/05/23(水)19:32:08.48(Au5e7VGg0.net)


295デフォルトの名無しさん [sage]

AAS

NG

あくまでわかりやすくするために分けるのであって、クラスを分けることが目的になってしまってはいけない
余計わからん構造になる可能性があるからね

2018/05/25(金)17:55:34.06(kaJ5fQAg0.net)


296デフォルトの名無しさん [sage]

AAS

NG

わかりやすくする為にわけるのではない
問題が適切に表現される様に自ずとにわかれるのだ
それが本質的にわかりにくい問題であるならば
わかれた結果わかりにくいのは当然の帰結である
己の能力をわかるまで高めるしかあるまい
わかめ

2018/05/25(金)23:51:50.59(q1degsPf0.net)


297デフォルトの名無しさん [sage]

AAS

NG

なんか偉そうなこと言ってる

2018/05/26(土)08:31:56.50(Mb7u4pS+0.net)


298デフォルトの名無しさん [sage]

AAS

NG

ナイーブすぎ

2018/05/26(土)10:29:20.38(Qkk0DhfZM.net)


299デフォルトの名無しさん [sage]

AAS

NG

桃とアロエのカネボウ

2018/05/26(土)16:16:32.23(nVIiMXOl0.net)


300デフォルトの名無しさん

AAS

NG

ゲームくんのゲームは完成したのだろうか?
そもそもGameManagerクラスみたいなゲームを管理するクラス作ってないのが不思議
ゲーム管理クラス通して設定画面開いたり設定値を取得すればいいのに

2018/05/28(月)11:28:40.07(vRphuiRoH.net)


301デフォルトの名無しさん [sage]

AAS

NG

どんだけ連打してんだよ

2018/05/28(月)18:36:44.90(rzi0Cqlc0.net)


302デフォルトの名無しさん [sage]

AAS

NG

C#の勉強を講習会なりでお金を払う方式でレクチャーを受けたいのですが、どういった所が良いでしょうか?
ドットインストールやプロゲートの様な既にある動画を有料で見るのではなく、
欲を言えば1対1で即座に質問できる方式が良いのですが探してみたところ見つけられず、
初心者〜中級者を対象にした評判の良い講習会の様なものがあれば教えて頂けないでしょうか
東京都の渋谷区に住んでいます

2018/05/29(火)12:36:07.71(0Vp36Os40.net)


303デフォルトの名無しさん [sage]

AAS

NG

もったいないね
マンツーマンで一時間5千円〜1万はらって12〜36時間でC#を勉強するくらいなら
入門書を3冊ぐらい買って1週間で何度も読めばいいのに

2018/05/29(火)13:37:15.19(dUPfr/v4M.net)


304デフォルトの名無しさん [sage]

AAS

NG

しかし新しいC#の作法にのっとった良い入門書なんてあるかね?

2018/05/29(火)13:45:33.86(iBcg+dk20.net)


305デフォルトの名無しさん [sage]

AAS

NG

新しい作法にのっとった講師のほうが少ないと思うよ

2018/05/29(火)13:47:56.92(dUPfr/v4M.net)


306デフォルトの名無しさん [sage]

AAS

NG

>>302
趣味目的なら金余っているバカだし就職目的なら手に負えないバカ
そんなことで身につかないからパソコン教室にでも通ってろ

2018/05/29(火)17:24:32.50(0Rufp4wm0.net)


307デフォルトの名無しさん [sage]

AAS

NG

パソコン教室じゃ、最高でエクセルの使い方くらいしか教えてくれねーだろ。

2018/05/29(火)18:15:54.45(5CF0lkGw0.net)


308デフォルトの名無しさん [sage]

AAS

NG

>>302
金と時間の無駄って意見に俺も一票。

学校の勉強でもそうだけど、だいたい独習の方が効率が高いよ。
分からないところを質問できる人がいるとはかどるのは確かだと思うけど、
そんなの今はネットで代替できるし(しかもタダ)

子供の習い事みたいにモティベーション不足を金で補うっていうのはありかもしれないけど。

2018/05/29(火)18:33:40.52(/62QaXdPa.net)


309デフォルトの名無しさん [sage]

AAS

NG

何とか教室や何とかスクールって、出逢いを求めて通うものだろ?

2018/05/29(火)18:38:51.88(5CF0lkGw0.net)


310デフォルトの名無しさん [sage]

AAS

NG

云うてもプログラムって何すんの状態だと独学とか無理やん
まあ講習受けて出来るようになるかったら確率低いが

2018/05/29(火)18:39:33.21(iBcg+dk20.net)


311デフォルトの名無しさん [sage]

AAS

NG

>プログラムって何すんの状態だと独学とか無理やん
そんな人はプログラムを触ることはないので問題なし

2018/05/29(火)18:51:29.09(b3SRNDoC0.net)


312デフォルトの名無しさん [sage]

AAS

NG

C#プログラマの求人いきゃいい
マンツーマンでみっちり教えてくれてしかも金ももらえるぞ

2018/05/29(火)19:02:37.30(bwgc0PeYa.net)


313デフォルトの名無しさん [sage]

AAS

NG

>>303
>>308
でもさ、メンターがほしい気持ちは解るよ。独学で始めて今でこそイメージしたアプリは大体作れるようになったけど。

2018/05/29(火)21:20:40.23(Zh8oS8xcM.net)


314デフォルトの名無しさん [sage]

AAS

NG

教えてくれる人がいなくてもできるぐらいのやる気は持ってないと
教えてくれる人がいてもできない気がする

2018/05/29(火)21:22:39.57(tOEtldFh0.net)


315デフォルトの名無しさん

AAS

NG

独学でやってると自分のやり方が正しいのか確認が出来ない不安があるのはわかる
とにかくプログラムを書くこと、実務を重ねるとその不安は経験値でだんだん消えていく
とにかく経験を積むしかない

2018/05/29(火)21:30:02.17(+v4yesMaa.net)


316デフォルトの名無しさん [sage]

AAS

NG

>>314
スレ違いになるけどモチベーション保つのが一番大事だからな
わからなくなるとやる気無くすから誰かに教えてもらいたい、って気持ちはわかるが

2018/05/29(火)21:34:05.00(T0OOxyUA0.net)


317デフォルトの名無しさん [sage]

AAS

NG

メンターってか、語れる仲間がほしい・・
だが人付き合いはめんどくせーw

2018/05/30(水)01:10:37.65(eBpQDrsU0.net)


318デフォルトの名無しさん [sage]

AAS

NG

だから皆ここへ集うのですね

2018/05/30(水)01:15:01.88(9LsQ0F9t0.net)


319デフォルトの名無しさん [sage]

AAS

NG

メンター(導師)ってリアルで言ってる人を見ると笑うけど
意識高い系ですかって
メンターは技術面より精神的な面のよりどころだな
わけわからんけどこの人は正しい導いてくれるって人って思いこむ相手

c#入門にメンターがいる必要はないね
中級以上ならまだしも

入門者には導師より同志が必要かな

2018/05/30(水)11:53:56.18(8D7UWmqma.net)


320デフォルトの名無しさん [sage]

AAS

NG

メンターなんて初めて聞いた
グルなら知ってる

jai guru deva om

2018/05/30(水)12:12:53.49(qVo0G4AWa.net)


321デフォルトの名無しさん [sage]

AAS

NG

>>319
とりあえず中途半端な改行やめたら?

2018/05/30(水)12:16:35.68(4fnC318RM.net)


322デフォルトの名無しさん [sage]

AAS

NG

メンター初耳って…
そりゃ昔はあまり使わなかったが今の20代なら大学で大方耳にしたことあるんじゃない?

2018/05/30(水)12:53:27.56(2+ZWaFznd.net)


323デフォルトの名無しさん [sage]

AAS

NG

ゲームの初心者指導機能以外で聞いたことない

2018/05/30(水)13:06:00.57(tkaPgK/fa.net)


324デフォルトの名無しさん [sage]

AAS

NG

ちょまど神に帰依するべきです

2018/05/30(水)14:44:19.09(zGXcDYuB0.net)


325デフォルトの名無しさん [sage]

AAS

NG

CodeMentorっていう英語のメールニュース取ってるんだが?

2018/05/30(水)15:57:46.68(OvgslO8CM.net)


326デフォルトの名無しさん [sage]

AAS

NG

ぼくはメンタリストですが、何か?

2018/05/30(水)17:39:32.49(zRdb0GuK0.net)


327デフォルトの名無しさん [sage]

AAS

NG

引数ありのdelicateでデリゲートをnewする段階で
関数に引数渡しておくことはできますか?

使うときは引数関係なく実行するだけにしたい

delicateじゃなくてもそういう方法があれば教えてほしいです

2018/05/31(木)18:07:05.50(ZDpw5PAMd.net)


328デフォルトの名無しさん [sage]

AAS

NG

ない

2018/05/31(木)18:49:53.75(YepGdlhS0.net)


329デフォルトの名無しさん [sage]

AAS

NG

>>327
たとえばこれを、
Action<string> a = Console.Write;

こうするだけと違うの?
Action a = () => Console.Write("Hage");

2018/05/31(木)19:21:37.82(mNqG/VKAa.net)


330デフォルトの名無しさん

AAS

NG

>>329
普通に考えたらそうなるわな
何がいいたいんやろ

2018/05/31(木)20:29:05.32(XpaqSCj3a.net)


331デフォルトの名無しさん [sage]

AAS

NG

>>329
わかりづらくてすみません
Actionですね
これでちょっとやってみます
ありがとうございます

2018/05/31(木)21:18:37.12(ZDpw5PAMd.net)


332デフォルトの名無しさん [sage]

AAS

NG

もしかして delegate? > delicate

2018/06/01(金)00:56:14.18(v9HhHj/a0.net)


333デフォルトの名無しさん [sage]

AAS

NG

痒くなってきた

2018/06/01(金)01:50:30.82(Kjs/aFNB0.net)


334デフォルトの名無しさん

AAS

NG

もうふらっとと統合しろよ

2018/06/02(土)01:19:12.37(te+Rl8LG0.net)


335デフォルトの名無しさん [sage]

AAS

NG

隔離用のスレを本スレに統合って斬新だな

2018/06/02(土)14:30:29.50(sz40x79U0.net)


336デフォルトの名無しさん [sage]

AAS

NG

デリケートって結局なんねことなんや

2018/06/05(火)14:10:31.00(kDP+/j8RM.net)


337デフォルトの名無しさん

AAS

NG

>>336
関数ポインタ

2018/06/05(火)23:17:30.29(vNq9k7GF0.net)


338デフォルトの名無しさん [sage]

AAS

NG

わかるように説明しろや!

2018/06/06(水)11:05:26.21(kgKhbEIB0.net)


339デフォルトの名無しさん [sage]

AAS

NG

赤ん坊が庖丁持ったからと言って何かを生み出せるわけでは無し

2018/06/06(水)11:13:20.04(Glbjy1Oa0.net)


340デフォルトの名無しさん [sage]

AAS

NG

>>338
「〜とは何か」って哲学論争はたぶん時間の無駄w
実際の使われ方を見て何に使えるかを理解するのがいいよ

禅問答みたいに聞こえるかもしれんが、デリゲートのメリットは
デリゲート型の変数を作れること。

デリゲートの使えない従来の言語は、コードの中にdoubleのリテラルしか書けず
doubleの変数が作れないようなものだった

2018/06/06(水)13:00:14.82(/mNmPD5La.net)


341デフォルトの名無しさん [sage]

AAS

NG

>>331です
Actionでできました!ありがとうございます。
クロージャー(?)っていうんですかね?
関数の外の値を引数で渡さずに関数内で使うやり方が知りたかったんです。

2018/06/06(水)22:58:53.30(x4kBoo940.net)


342デフォルトの名無しさん [sage]

AAS

NG

デリゲート型の変数?????
デリゲート型にすると何かいいことあるのか?
デリゲート型にすると何がいいんだ??????何が使えるんだ?????

2018/06/07(木)21:28:18.26(HziEaPXa0.net)


343デフォルトの名無しさん [sage]

AAS

NG

2018/06/07(木)21:34:22.85(9x16GWRr0.net)


344デフォルトの名無しさん

AAS

NG

あーこういうの出来たら便利なのにー
って思ったら調べて使えばいいよ
使わんと頭入らないし

2018/06/07(木)21:34:36.55(uqa5AZHUa.net)


345デフォルトの名無しさん [sage]

AAS

NG

デリゲート、デリゲートって、おまえら
青空球児・好児かよ。

2018/06/07(木)21:41:39.12(muNvrUxm0.net)


346デフォルトの名無しさん [sage]

AAS

NG

>>342
そうじゃなくて、上に書いたように、もしdoubleのリテラルしかコード中に書けなくて
doubleの変数が使えなかったらどう困るか考えて

2018/06/07(木)23:38:02.20(p05PC41Ra.net)


347デフォルトの名無しさん [sage]

AAS

NG

図にしてくれ

2018/06/07(木)23:51:09.11(HziEaPXa0.net)


348デフォルトの名無しさん [sage]

AAS

NG

数値を格納する変数は int 型
文字を格納する変数は string 型
メソッドを格納する変数が デリゲート型

2018/06/08(金)00:56:57.47(057UgUqy0.net)


349デフォルトの名無しさん [sage]

AAS

NG

なんで
メソッドを
格納する
必要が
あるんだよ

2018/06/08(金)01:01:01.34(7BdVtDm70.net)


350デフォルトの名無しさん [sage]

AAS

NG

だから、どうして実数を変数に入れる必要があるの?
入るのはメソッド自身ではなくその参照だけどね

2018/06/08(金)01:20:20.47(vel+6yPba.net)


351デフォルトの名無しさん [sage]

AAS

NG

>>349
自分の場合はある関数にある処理を追加したい場合とか

ある処理は呼び出しもとによって変わったり

2018/06/08(金)07:41:09.77(V2PqzfzLd.net)


352デフォルトの名無しさん [sage]

AAS

NG

>>351
ピンとこない

処理を追加したいならメソッド自体に書くか、overloadとかを考えちゃう
呼び出し元で処理変えるなら引数で、みたいな

2018/06/08(金)07:54:30.62(VEbWNRWu0.net)


353デフォルトの名無しさん

AAS

NG

メソッドを引数にして渡してあげられると、実行する側は何をするか気にしないでいいじゃない

2018/06/08(金)07:59:48.51(FRxZCKgGa.net)


354デフォルトの名無しさん [sage]

AAS

NG

なぜデリゲートがあるか?
君も大人になったらわかるよ。
ママ、なんでボクはおチンチン付いてるの?
この疑問、時間が解決したろう。

2018/06/08(金)08:15:18.51(H4l6t16fM.net)


355デフォルトの名無しさん [sage]

AAS

NG

>>352
今までの処理は極力変えたくない

引数にAction渡して関数はそれを実行
引数のActionはデフォルトにnullをいれておく
nullだったら処理しないようにすれば呼び出し元は必ずしも変更する必要がなくなる

なんでこうするかってテストするのがめんどいからとか色々

2018/06/08(金)08:30:05.85(V2PqzfzLd.net)


356デフォルトの名無しさん [sage]

AAS

NG

>>355
さっぱりわからない

処理変えたくないメソッド実行
 ↓
その結果次第で別のメソッド実行

何故これで済まないの?

2018/06/08(金)10:53:38.20(p6dJfT33M.net)


357デフォルトの名無しさん [sage]

AAS

NG

それでも済むよ

例えば繰り返し処理
forなくても書けるだろ。だからforなんて要らないって言ってるようなもん
なくてもプログラミングできるが、あれば楽できる

2018/06/08(金)11:07:03.52(jzbZ53uGa.net)


358デフォルトの名無しさん [sage]

AAS

NG

済まないw

>>356-357は-π/2〜π/2の範囲の実数の数だけ、それに対応する
sinの値を返すメソッドを用意すれば汎用的なsin関数なんかなくて済むと言ってるのと同じ。

だから、どうしてdoubleの変数が必要なのかと。

っていうかこの質問者、本当は分かってて質問してる変な奴だろうね8割方w
たぶん2chの他の板によくいる、サヨクを演じて自作自演やってる頭のおかしいネトウヨと似たようなメンタルの持主なんだろうと想像

2018/06/08(金)11:49:27.44(SrLrQXUUa.net)


359デフォルトの名無しさん [sage]

AAS

NG

>>356
voidだったら"その結果"ってどう受けとる?

2018/06/08(金)13:02:11.32(V2PqzfzLd.net)


360デフォルトの名無しさん [sage]

AAS

NG

図にしろ・・・・・・・・・ッッツ!!!

2018/06/08(金)13:04:11.27(7BdVtDm70.net)


361デフォルトの名無しさん [sage]

AAS

NG

アウアウアーの見本市

2018/06/08(金)13:14:18.16(0qxXZgjd0.net)


362デフォルトの名無しさん [sage]

AAS

NG

なんか揚げ足取りしようとして引っ込みつかなくなってる感

2018/06/08(金)19:39:57.11(tyJ42miy0.net)


363デフォルトの名無しさん [sage]

AAS

NG

2018/06/08(金)19:42:51.67(sQqhvtlW0.net)


364デフォルトの名無しさん [sage]

AAS

NG

つまりメソッドにラムダ式を渡して処理した結果を使ってメソッドの処理をさせるのか?

2018/06/08(金)20:48:10.00(7BdVtDm70.net)


365デフォルトの名無しさん

AAS

NG

ごめん。ちょっと何言ってるかわかんない

2018/06/08(金)20:53:34.63(KYYD9BLCa.net)


366デフォルトの名無しさん

AAS

NG

結局デリゲートの非同期処理BeginInvokeを使用するってのが
従来大きな役割だったんじゃない?
でも今Taskクラスできたから必要なくなった

2018/06/08(金)21:00:06.62(E4qbFGXm0.net)


367デフォルトの名無しさん [sage]

AAS

NG

つまりクラス間通信。

2018/06/08(金)21:19:27.49(txACZHnFp.net)


368デフォルトの名無しさん [sage]

AAS

NG

デリゲート(委譲)って名前が悪いのかな
メソッドを他に渡しておいて適宜実行してもらうから委譲ともいえるけどそれは機能の一面しか表してない
MVPの人も過去にデリゲートいらねえって言ってたけど理解力が足りてない

c#は結構いろんなものがオブジェクトだけどメソッドはオブジェクトじゃない
デリゲートを使えばメソッドをオブジェクト(変数)みたいな感じで扱える
普通の変数とは違って+=で複数のデリゲートをいれることができるのが特徴的

コールバックとして使えるしeventはデリゲートをもとに作られてるので基本的な使用範囲は広い

2018/06/09(土)12:11:29.33(VOfp/P7BM.net)


369デフォルトの名無しさん [sage]

AAS

NG

>>368
真面目な話、そういう衒学趣味の文系学生みたいな
文章が一番人を混乱させる。

「c#は結構いろんなものがオブジェクトだけどメソッドはオブジェクトじゃない 」って何やねんw

関数ポインタが分かればデリゲートがどんなものかはその類推でだいたいイメージできる。
機械語をやった経験があれば、関数ポインタなんか、なんだこんなのただのcall命令の
アドレッシングモードのことかってすぐわかる

でも重要なのは、「デリゲートとは何か」なんか分からなくてもデリゲートは使えるってこと。
「何か」なんか理解しなくていい。それを使って何が出来るかだけ理解すればいい。

2018/06/09(土)12:44:45.38(DBY1R4Jva.net)


370デフォルトの名無しさん [sage]

AAS

NG

そう。ホビープログラマならね

2018/06/09(土)12:58:26.33(54mp5fzVM.net)


371デフォルトの名無しさん [sage]

AAS

NG

ホビーじゃないプログラマ「c#は結構いろんなものがオブジェクトだけどメソッドはオブジェクトじゃない 」

2018/06/09(土)13:02:40.19(Cz/ni8by0.net)


372デフォルトの名無しさん [sage]

AAS

NG

それは無能プログラマ

2018/06/09(土)13:05:05.70(oQlrsJoz0.net)


373デフォルトの名無しさん [sage]

AAS

NG

>>371
この文何か変か?
メソッドはobject型から派生したクラスではないっていう当たり前のことを言ってるだけだろ

2018/06/09(土)13:31:49.04(kvLDmgw/0.net)


374デフォルトの名無しさん [sage]

AAS

NG

>>369
他の言語ではメソッドもオブジェクトとして扱えるものもある
c#はメソッドはオブジェクトじゃない

その類推が間違ってるからダメなんだけどなあ…
デリゲートは関数ポインタじゃない
callでもアドレッシングとも全然無関係だわ

機能的には似たようなものに見えるけど全然別物だ

2018/06/09(土)13:40:09.88(VOfp/P7BM.net)


375デフォルトの名無しさん [sage]

AAS

NG

>>369
文系学生もプログラミングする時代になったって事だよ。

> 「何か」なんか理解しなくていい。それを使って何が出来るかだけ理解すればいい。
これな。最近の「○○って何ですか」っていう奴らは何なんだ?
お前らだって、日本語の全ての漢字を読めるわけでもないだろうに。

「デリゲート」は失敗作だから新言語を作る気がないのなら理解する必要はない。
あれはthis+関数ポインタで、一番近いのはC++の「メンバ関数ポインタ」だが、
無駄に「クラス」「関数ポインタ」「ラムダ」を抽象化しようとしておかしくなってる。
結局ラムダを導入してしまったし、当初の方針は間違いだと認められたことになる。
今後「デリゲート」を採用する言語はないだろうよ。

2018/06/09(土)13:51:37.94(MhKfyDgC0.net)


376デフォルトの名無しさん [sage]

AAS

NG

.NET Core で過去の遺産が全て無くなるかと思ったけどそんなことはなかったぜ

2018/06/09(土)13:57:35.17(1jan2CXL0.net)


377デフォルトの名無しさん [sage]

AAS

NG

>>375
誤解したままで最後までつづけるんか?

2018/06/09(土)13:59:17.43(VOfp/P7BM.net)


378デフォルトの名無しさん [sage]

AAS

NG

もともと関数がオブジェクトである言語はデリゲートを導入するメリットは少ない
c#にデリゲートが無かったらjavaの様に専用のインターフェイスを継承した無駄なクラスを作らなければならなかった

ActionやFuncやラムダがあればデリゲートが必要なかったと言ってるのは何かを誤解してる

2018/06/09(土)14:07:54.32(VOfp/P7BM.net)


379デフォルトの名無しさん [sage]

AAS

NG

>>377
理解してなくても使えれば問題ないんだよ。
お前だってPCの起動方法(BIOSとか)知らなくてもPC使ってるだろ。
MSIL読めなくてもC#使えるだろ。
CPUの例外/割り込み機構を知らなくてもtry/catch使えるだろ。
一般プログラマにとってはプログラミング言語は道具であって、それ以上でも以下でもない。
新言語を作りたいのなら学術的に正確に理解することが必要だが、普通の人はそうではない。

それ以前にC#が死ぬ可能性を考えた方がいい。
C#専用の「デリゲート」の理解はつぶしが利かない。
他言語にもある「ラムダ」の理解のほうが重要だ。

デリゲートは「クラス」と「関数ポインタ+バインド」で対応した方が良かったと思う。
C#には未だに「バインド」がない=デリゲートでの対応になるが、
実際、後付でバインドすることが出来ないだけ不便だろ。

>>378
Javaみたいなそもそも「関数ポインタ」がなかった糞言語と比較したら駄目だよ。
Cには関数ポインタはあった。
C#はそれを「デリゲート」として拡張した。
他言語は「第一級オブジェクト」として拡張した。
今のところ、後者の方が正解っぽいだろ。
(俺自身にはイマイチ「第一級オブジェクト」である利点/必然性は見えないのだが)

2018/06/09(土)14:19:40.58(MhKfyDgC0.net)


380デフォルトの名無しさん [sage]

AAS

NG

関数がもしobjectクラスから派生したオブジェクトになるとメンバーを持てることになるんだけど
A.B().ToString()のToStringが
B()というメソッド自体に係ってるのか
B()の返した戻り値にかかってるのかがよくわからないことになる

2018/06/09(土)14:24:48.97(VOfp/P7BM.net)


381デフォルトの名無しさん [sage]

AAS

NG

Javaってstaticメソッドを関数インターフェースに渡すときは最適化してくれんの?

2018/06/09(土)14:25:53.62(54mp5fzVM.net)


382デフォルトの名無しさん [sage]

AAS

NG

1+2*3
こんな計算式があったときに1+2をしてから3かけて答えは9
こうはならないだろ。それは優先順位を定めてるから。(1+2)*3のようにかけば期待通りになる

それと同じで関数がオブジェクトでメンバー持ててもそれに合わせた処理の優先順位を定めればいいだけ

2018/06/09(土)14:30:26.04(AO7Grx3Qa.net)


383デフォルトの名無しさん [sage]

AAS

NG

理解しないのと誤解してるのではわかっていないという点では同じだけど
理解してない場合は理解していない前提で行動できる
一方の誤解してる場合は悲惨だ

2018/06/09(土)14:32:21.62(VOfp/P7BM.net)


384デフォルトの名無しさん [sage]

AAS

NG

>>380
お前は右結合と左結合を勉強しろ

2018/06/09(土)14:33:21.85(MhKfyDgC0.net)


385デフォルトの名無しさん [sage]

AAS

NG

>>384
じゃあどういう風に記述したらオブジェクトである関数のプロパティやメソッドにアクセスできるかここに書いてもらいたいが

2018/06/09(土)14:35:46.47(VOfp/P7BM.net)


386デフォルトの名無しさん [sage]

AAS

NG

>>383
お前は日本語を勉強しろ。

俺達は「理解しなくていい」=「完全に理解してはいないという自覚の元で使え」と言っているのであって、
それは「誤解」には繋がらない。
「誤解」ってのは、「理解してない馬鹿が理解しているつもりになっている」事を言う。
例えば、右結合と左結合を知らないお前みたいな馬鹿のことだ。

2018/06/09(土)14:36:40.18(MhKfyDgC0.net)


387デフォルトの名無しさん [sage]

AAS

NG

>>385
意味不明。何を書いて欲しいのか分からん。

> A.B().ToString()
これはAのメソッドB()を呼んでその戻り値に対してToString()を呼ぶ。
少なくともJavaScriptではそう。

で、何をしたい場合の記述が欲しいんだ?

2018/06/09(土)14:39:35.51(MhKfyDgC0.net)


388デフォルトの名無しさん [sage]

AAS

NG

>>387
思い違いをしていた
A.B().ToString()とA.B.ToString()で区別できる
クラスにフィールドとメソッドを同名にできないから区別できる
右結合と左結合は関係なかったけど

2018/06/09(土)14:48:14.18(VOfp/P7BM.net)


389デフォルトの名無しさん [sage]

AAS

NG

>>385
エスパーすると、言いたいことは分かった。
お前は「第一級オブジェクト」も理解しておらず、「誤解」している。ちゃんと勉強しろ。

「第一級オブジェクト」ってのは、通常のオブジェクトと関数オブジェクトを区別しない。
だから書式は当然同じだし、正しく理解していればこの点が疑問になりようもない。


>>388
なら日本語を勉強しろ
> B()というメソッド自体に係ってるのか
これで何を表現しようとしたか言ってみろ。それは
> A.B.ToString()
ではないだろ。

2018/06/09(土)14:54:44.86(MhKfyDgC0.net)


390デフォルトの名無しさん [sage]

AAS

NG

>>386
誤解は悲惨
delegateを削除しろと言って削除してみたらActionもFuncも使えませんでした
eventも使えませんでした

もちろん言語レベルで変数としてのデリゲートの代わりになるものもありません

>>389
> > A.B.ToString()
> ではないだろ。
いやいやそこはそのままであってるし普通にそう理解できないのか?
A.B.ToString()が正解
逆にどう勘違いしたのか聞きたい

2018/06/09(土)15:04:32.47(VOfp/P7BM.net)


391デフォルトの名無しさん [sage]

AAS

NG

本当にC#からdelegateを削除しろって言ってるんだったらどこかおかしい
何にも理解してない

2018/06/09(土)15:06:54.66(VOfp/P7BM.net)


392デフォルトの名無しさん [sage]

AAS

NG

プロパティなんて関数オブジェクトみたいなもんだな
プロパティに引数渡してぇ

2018/06/09(土)15:06:56.64(AO7Grx3Qa.net)


393デフォルトの名無しさん [sage]

AAS

NG

>>392
っVB.net

2018/06/09(土)15:07:41.71(VOfp/P7BM.net)


394デフォルトの名無しさん [sage]

AAS

NG

>>390
日本語で言うと、
> B()というメソッド自体に係ってるのか
と理解したって事だよ。

>>391
お前がな。
他言語にはdelegateなんて無いが、何も問題ないだろ。
あれ?って思えないのか?
(今すぐ廃止していいかどうかはまた別だが)

>>388
> クラスにフィールドとメソッドを同名にできないから区別できる
これは先見の明があったかもな。
関数を「第一級オブジェクト」に昇格させるのに文法的制約がない。
Javaに対しての利点にはなり、生き残る道かも。

2018/06/09(土)15:18:29.92(MhKfyDgC0.net)


395デフォルトの名無しさん [sage]

AAS

NG

>>392
JavaScriptではオーバーライドすれば出来る。
フィールド/メソッドの区別がなく、名前だけだから。
C#的には派生クラスで「プロパティ」「を同名の「メソッド」でオーバーライドだが、
これが型チェック的に無理なのか?
しかし名前の重複を許していないのだから、今後の拡張は可能のはずだが。

JavaScriptのデタラメ文法はどうかという奴もいるが、慣れてしまうと、
型あり言語の「型が違うだけ」で色々制約されるのも相当な糞だと気づけるぞ。
型検査はエラーではなく警告に留めるべきで、
プログラマがOKすれば型が不一致でも通してくれた方がマジで楽。
一番近いのはCってことになってしまうが。

2018/06/09(土)15:25:50.19(MhKfyDgC0.net)


396デフォルトの名無しさん [sage]

AAS

NG

ア土曜の昼間からウアウアーの見本市

2018/06/09(土)15:29:15.96(a58WBe6r0.net)


397デフォルトの名無しさん [sage]

AAS

NG

友人ゼロのキモオタオッサンは他にやることないのかい

2018/06/09(土)15:29:59.09(a58WBe6r0.net)


398デフォルトの名無しさん [sage]

AAS

NG

他の言語はともかくC#はGUIのイベントの管理にデリゲートのマルチキャスト使ってるんだから無かったら困るだろ

2018/06/09(土)16:02:02.79(kvLDmgw/0.net)


399デフォルトの名無しさん [sage]

AAS

NG

だからメソッドがオブジェクトかどうかなんて話はただの衒学趣味的な無益な話w
そんな話は「ではオブジェクトって何?」って不毛な議論になるだけでしょw
初心者がデリゲートを理解して使えるようになるための屁の役にも立たないよw

>>398
素直に考えればデリゲート自身にマルチキャストの機能を持たせるんじゃなく、
シングルキャストのデリゲートのリストとして実装する方法もあったはず

なんか理由があって「こういう」風になってるんだろうが俺には積極的理由はよくわからんね。
ジェネリックをデリゲートで制約できないことと関係があるのかもしれないが

なまじマルチキャストなんて機能があるせいで何だかわかりづらくなってる面は否定できないと思う

2018/06/09(土)16:54:07.78(DBY1R4Jva.net)


400デフォルトの名無しさん [sage]

AAS

NG

>>398
GUIに関してはdelegateの導入は不要だったで決着してる。
GUIにはOOPよりMVCの方が数段マシで、WPFもそうなってるだろ。
onclickにthisがバインドされている意味がそもそも無いんだよ。

決着が付いてないのはデータフロープログラミングをするときだ。
JavaScriptではObject.observeの導入が計画され、一部フィーバーしていたが、ポシャった。
https://www.html5rocks.com/ja/tutorials/es7/observe/
以下によると、非同期なのが使えなかったらしい。
http://tech.nitoyon.com/ja/blog/2015/11/18/death-of-oo/
JavaScriptの非同期は最早宗教だが、
はっきり言って無駄に非同期すぎて、余計にやりにくくなっているケースもある。これもそう。

C#は独自eventを実装出来るし、そのためにdelegateが用意されているから、
「データフロープログラミング」を文法的にサポートしているとは言える。
ただ、それ以前に、「データフロープログラミング」が主流ではないが。
お前らも実際、やってないだろ。
関数型の次に来るって事もなさそうだし。

とはいえ、上記の通り、今のJavaScriptではデータフロープログラミングは面倒だし、
getter/setterを頑なに拒むC++ではものすごくウザくなって事実上無理だ。
次の波が来ればevent/delegateも再評価されるかもしれん。

2018/06/09(土)17:08:52.90(MhKfyDgC0.net)


401デフォルトの名無しさん [sage]

AAS

NG

>>399
> シングルキャストのデリゲートのリストとして実装する方法もあったはず
同感。

2018/06/09(土)17:12:21.10(MhKfyDgC0.net)


402デフォルトの名無しさん [sage]

AAS

NG

理解してなくても問題なく使えるからって、それを理解しようとするのは悪い事じゃないけど
もとの発端はなんだったんだこれ

2018/06/09(土)17:15:16.30(bMpGWGQ30.net)


403デフォルトの名無しさん [sage]

AAS

NG

デリケートじゃないか?w

2018/06/09(土)17:28:51.92(AO7Grx3Qa.net)


404デフォルトの名無しさん [sage]

AAS

NG

>>402
>>327 のデリケートが事の発端

2018/06/09(土)17:32:16.71(1jan2CXL0.net)


405デフォルトの名無しさん [sage]

AAS

NG

誰かさんの大好きなLinqはdelegateの塊なんだけどdelegateなくなっていいのかな
他の実装ではdelegate使ってないけど今の.netではデリゲートで実装されている

2018/06/09(土)17:43:13.42(VOfp/P7BM.net)


406デフォルトの名無しさん [sage]

AAS

NG

デリゲートにラムダ式にLinq大好きだ!
これ無くして生きてけない!
チームの誰も読めないから放置されて我が道を歩んでいる。
生産性と品質が高いから客には好評です。

2018/06/09(土)18:48:11.73(0oARoVrcM.net)


407デフォルトの名無しさん [sage]

AAS

NG

>>406
チームの誰もが読めないという事は保守性に欠けると言う事ですね

2018/06/09(土)20:25:40.95(7jH+OfQ/0.net)


408デフォルトの名無しさん [sage]

AAS

NG

そうだね。
でも、Linqバリバリ使ったらそうなるよね。
みんなの勉強しろよってこと。

2018/06/09(土)20:33:41.95(0oARoVrcM.net)


409デフォルトの名無しさん [sage]

AAS

NG

Linqが分からないってのはラムダ式を理解できないってことなの?

2018/06/09(土)20:39:16.25(h8CnrujR0.net)


410デフォルトの名無しさん [sage]

AAS

NG

行列計算ライブラリ書いてるときに
おれ掛け算わからんからおれに合わせて全部足し算で実装して
おれはいまお前の案件に関わってないけど将来そのライブラリメンテするかもしれんからヨロシクな
とか言う同僚がいたらこいち頭おかしいのかなって思うじゃん
いやいや掛け算を勉強してからっていうか最低限の単位を取ってからメンテしろよってなるじゃん普通
これがLinqやλやデザインパターンになると当たり前のように底辺至上主義がまかり通る不思議な業界

2018/06/09(土)20:43:00.38(54mp5fzVM.net)


411デフォルトの名無しさん [sage]

AAS

NG

LINQはC#にしかないからまだわかるけどラムダ式はいまどきの言語ならほぼ実装してるから知ってないとまずいよね

2018/06/09(土)20:47:26.87(kvLDmgw/0.net)


412デフォルトの名無しさん [sage]

AAS

NG

linqてC#にしかないのか

2018/06/09(土)20:50:03.81(2splWvty0.net)


413デフォルトの名無しさん [sage]

AAS

NG

Linqにも類似品あるよ
Javaのstreamやpythonのリスト内包表記など
というかそもそも単なるiterator patternでしかないからC#が起源ってわけでもない

2018/06/09(土)20:52:58.46(54mp5fzVM.net)


414デフォルトの名無しさん [sage]

AAS

NG

Linq以前にIEnumerableの意味が解らない人がいるからどうしようもない
.NET2.0から順に教えろってことかよ・・・

2018/06/09(土)21:00:28.55(4y2IVpvw0.net)


415デフォルトの名無しさん [sage]

AAS

NG

>>410
と、底辺至上主義がまかり通る所の意識高い系が申しております

>>413
どう見てもSQLが起源だろ

2018/06/09(土)21:03:28.98(MhKfyDgC0.net)


416デフォルトの名無しさん [sage]

AAS

NG

>>415
クエリ形式の文法はSQLが起源かもしれんが
実装はSQLとは全く関係がないよ
C#などの実装はまさしくiterator patternだけど
SQLの実装をiterator patternでやろうとしたら遅すぎる

2018/06/09(土)21:07:24.39(54mp5fzVM.net)


417デフォルトの名無しさん [sage]

AAS

NG

そもそも書けない奴は論外として、使うなってのは同意できる
簡潔に判りやすいラムダ書いてくれりゃいいが、わざとやってんじゃねってぐらい難読化する奴いるからな
正規表現、SQ、掲示板の長文も同じだな

2018/06/09(土)21:07:34.76(4W3gH+0Ua.net)


418デフォルトの名無しさん [sage]

AAS

NG

Linqに限らず最近のソフトウェア技術は高度で生産性も高くなってる。
昔も人によって生産性に差が出たが、最近だと理解出来るか出来ないか?ぐらいの圧倒的な格差だ。
理由出来ない人は辞めればいい。
生産性が飛躍的に上がってるので理解出来る奴だけで間に合うよ。

2018/06/09(土)21:12:52.02(0oARoVrcM.net)


419デフォルトの名無しさん

AAS

NG

自称プログラマー(趣味)ならともかく職業プログラマーでLinqすら理解出来ないやついんの?

2018/06/09(土)21:17:22.22(ekScYlKMa.net)


420デフォルトの名無しさん [sage]

AAS

NG

Linqを十分に理解できても、可読性や保守性を大事にする人は
多少冗長でも他人が理解しやすい易しいコードを書くんじゃないの?

2018/06/09(土)21:23:52.36(7jH+OfQ/0.net)


421デフォルトの名無しさん [sage]

AAS

NG

Linqてそんな可読性悪くないと思うけどなぁ
コメント書いときゃ何となくわかるべ

2018/06/09(土)21:25:54.76(2splWvty0.net)


422デフォルトの名無しさん [sage]

AAS

NG

>>418
出来ない人にも生活あるから辞めろとは言えないけどチームは分けて欲しい
使えて使いたい人がどんどん流出して出来ない人だけの会社になると悲惨

2018/06/09(土)21:26:49.03(v7FNkyrH0.net)


423デフォルトの名無しさん [sage]

AAS

NG

>>420
圧倒的に生産性が高かったらどうなの。
最近の案件は短納期になってるし、昔のコボルみたいに何十年もメンテして使うシステムも少ないと思う。

2018/06/09(土)21:30:02.70(0oARoVrcM.net)


424デフォルトの名無しさん [sage]

AAS

NG

ゴミのようなやりとり
いや、ゴミに失礼だな

2018/06/09(土)21:32:37.20(VrCE6n6GM.net)


425デフォルトの名無しさん [sage]

AAS

NG

LinqよりSQLの方が難しいぞ。
SQLは難しいから使うなって言うのか?

2018/06/09(土)21:33:12.66(0oARoVrcM.net)


426デフォルトの名無しさん [sage]

AAS

NG

業務でいじるレベルのコードなんて知らないものでもグーグル先生いりゃ大抵なんとかならない?
linqも初めて見たときはとっつきにくくてわかりづらかったけど使ってりゃ嫌でも覚えちゃうよ
つっても当然すべてを使いこなしてるわけじゃなくて自分に必要な範囲のみ理解してる程度
業界によってだいぶ差はありそうだけど

2018/06/09(土)21:35:27.62(ZDY9COOVd.net)


427デフォルトの名無しさん [sage]

AAS

NG

生産性は保守運用まで含めてトータルで考えるべきで
保守性が損なわれればトータルコストも引き上がる

2018/06/09(土)21:35:56.65(7jH+OfQ/0.net)


428デフォルトの名無しさん [sage]

AAS

NG

>>424
あんたの書き込みがゴミだから。
オレらのやりとりがゴミだって言うなら、そう感じさせる様な高踏的な書き込み頼む。

2018/06/09(土)21:36:22.73(0oARoVrcM.net)


429デフォルトの名無しさん [sage]

AAS

NG

保守性の低い Linq のコードってたとえばどんなの?
自分は他人のを読む場合でも特に困ったことないけどな〜。

2018/06/09(土)21:51:21.02(lCnNI9uz0.net)


430デフォルトの名無しさん [sage]

AAS

NG

>>416
イテレータの起源なら、C++(1983)は最初から持ってた。
C++のOOPはSimula発で、そっちが持ってたかは知らん。

いずれにしても、Java発の技術は存在しないぞ。
C#はLinqと、多分asyncもか?頑張ってる方だと思うが。
(あとちょっと違うがIDEのインテリセンスもC#が初のはず)

2018/06/09(土)22:13:44.82(MhKfyDgC0.net)


431デフォルトの名無しさん [sage]

AAS

NG

クソカスの分際で人間様に話しかけてくるな
クソカスが引っ付くわ

2018/06/09(土)22:18:01.39(a58WBe6r0.net)


432デフォルトの名無しさん [sage]

AAS

NG

>>430
> (あとちょっと違うがIDEのインテリセンスもC#が初のはず)
インテリセンスはVB5.0の時代からあるんだが...

2018/06/09(土)22:36:24.46(d5fCz/GJ0.net)


433デフォルトの名無しさん [sage]

AAS

NG

>>426
> 自分に必要な範囲のみ理解してる程度
多分これくらいが適正で、これなら大して問題にならないんだよ。

問題は、意識高い系馬鹿の>>418
> 昔も人によって生産性に差が出たが、最近だと理解出来るか出来ないか?ぐらいの圧倒的な格差だ。
みたいな、おかしな奴がいることだよ。

Linq自体でそんなに格差が出来るはずもない。
仮に、Linq部分を関数呼び出しに変えたところで、本体のコード構造は全く変わらないだろ。
便利機能だが、その程度でしかないんだよ。
逆に言うと、制御構造の違いで勝負出来ない、
新文法が読めることしか威張れない馬鹿がそこに無駄に拘っている気がする。

2018/06/09(土)22:41:24.00(MhKfyDgC0.net)


434デフォルトの名無しさん [sage]

AAS

NG

linq で Where と OrderBy 使ったところをチームリーダーから For と List<T>.Sort() に書き換えられたことはある。理由は「他と違うから」
他と書き方を合わせておくのが大事なのはわかるけど…

2018/06/09(土)23:00:28.94(0BGOlb7W0.net)


435デフォルトの名無しさん [sage]

AAS

NG

コーディング規約があるのならそれに合わせろよ

2018/06/09(土)23:10:59.82(1jan2CXL0.net)


436デフォルトの名無しさん [sage]

AAS

NG

>>434
他と違うからって理由で直すのは良くないと思うな
本来関係ないはずのクラスの間に存在しないはずの関係性を作りこんでしまう
その結果、必要ない作業や、縛りを生み出して生産性を下げることになる
俺が経験したものだと
すでに書き終えたforeachをすべてforに統一
テスト済のDAO、DTOのsnake_caseを他レイヤに合わせてCamelCaseに統一
この2つが最高にバカバカしかった

2018/06/09(土)23:45:05.02(v7FNkyrH0.net)


437デフォルトの名無しさん [sage]

AAS

NG

カプセル化を知らない人が少なくないのかな
「publicメンバーはクラス間のコミュニケーション円滑化のために規約として形式化しましょう」ぐらいならまあ理解できるが
「Linqはやめてループにしてくれ」なんて内部実装の形式にまで踏み込んでくるなよな
クラススコープで違和感なければそれでいいだろ

2018/06/09(土)23:56:36.61(wFjp4I59M.net)


438デフォルトの名無しさん [sage]

AAS

NG

>>434
俺はC#erではないが…。

単発のLinqも認めてもらえないのならご愁傷様。あれは普通に読める範囲だ。
見た目、Linq自体にはサブクエリ無しか?ならそんな酷いことにはならないはずだが、
例えばSQLでは再帰呼び出しが出来たりして、
マンデルブロだパズル解くだとか、おかしな事になってる。
https://www.sqlite.org/lang_with.html
Linqでどこまで出来るか知らんが、こんなん書かれたら殴りたくもなるだろ。

基本的には関数呼び出しにしてその先は隠蔽、
つまりLinq実装かFor/List/Sort実装かは上位からは見えない、ってことにすれば関係ないはずだ。
ただ、その場にベタで「何を選択しているか」が書かれている方が読みやすいことは多々あり、
Linqもその局面で使われているとは思うので、全面書き直しだと余計に読みにくくなるとも思うが。

2018/06/09(土)23:59:33.29(MhKfyDgC0.net)


439デフォルトの名無しさん [sage]

AAS

NG

LINQってCube扱えるんだっけ?

2018/06/10(日)00:07:12.73(wNo6w9bX0.net)


440デフォルトの名無しさん [sage]

AAS

NG

>>437
どうでもいい議論だけど、一言。
カプセル化っていうのは「メソッドの中は可読性考えなくてよい」って意味じゃないよw

LINQ(というかクエリ式)嫌いの大半は批判してる人間がそもそも理解してないだけだと思うが一理はある。
それは使い方によっては複数の処理が有機的につながった、適切に分割統治されてない、
可読性の低いコードになるからだ

実際、筋の悪いプログラマが好む100行オーバーのメソッドに近い物になりうる

2018/06/10(日)00:11:20.35(FNJYuW1ra.net)


441デフォルトの名無しさん [sage]

AAS

NG

>>440
どう読んだら「メソッドの中の可読性は考えなくていいよ」になるんだろ
外部の都合を内部実装にまで持ち込むな
クラス内での可読性が十分ならそれでいいだろ
って主張な
正しく動いて綺麗なコードを他のクラスの都合で書き直す
俺はこれある意味カプセル化破壊と言っていいと思う
もちろん本来の意味でのカプセル化とは違うのはわかってる

2018/06/10(日)00:20:43.11(kZ6+r7gZM.net)


442デフォルトの名無しさん [sage]

AAS

NG

>>441
どう読んでもそうとしか読めません
自分で自分の書いてあることが理解できないのかw

「メソッドの中は可読性考えなくてよい」と言っているのでなければ
>>437の1行目と4行目はつながらない。

カプセル化を理解していてもメソッドの中の可読性、例えば
「Linqはやめてループにしてくれ」と言うことはあり得る。

なぜなら、カプセル化とは「メソッドの中の可読性は考えなくていいよ」という意味ではないからだ

2018/06/10(日)02:00:10.36(gGHljlXMa.net)


443デフォルトの名無しさん [sage]

AAS

NG

>>442
いきなり訂正

× >>437の1行目と4行目はつながらない。
>>437の1行目と3行目はつながらない。

2018/06/10(日)02:01:02.37(gGHljlXMa.net)


444デフォルトの名無しさん [sage]

AAS

NG

ランダムな指定回数オブジェクトを作成する方法ないですか
7時まで待つ

2018/06/10(日)05:17:43.99(4PiVyKtW0.net)


445デフォルトの名無しさん [sage]

AAS

NG

>>442
横からだけど、そう思えるのはお前さんがLinq使ったら可読性悪くなるって決めつけてるからじゃないの?

2018/06/10(日)06:46:45.50(Kj8YEAmO0.net)


446デフォルトの名無しさん [sage]

AAS

NG

Random

2018/06/10(日)06:46:55.66(CFkipoua0.net)


447デフォルトの名無しさん [sage]

AAS

NG

>>436
コーディング規約を読んでないお前か
コーディング規約を定めてないお前の組織がバカなだけ

2018/06/10(日)08:32:28.14(RI4Vnlqm0.net)


448デフォルトの名無しさん [sage]

AAS

NG

この話いつまでやるの?

2018/06/10(日)08:41:39.38(HMOXZXoS0.net)


449デフォルトの名無しさん [sage]

AAS

NG

>>447
コーディング規約がバカなんだよ

2018/06/10(日)08:43:37.52(kZ6+r7gZM.net)


450デフォルトの名無しさん [sage]

AAS

NG

就職できるように頑張れ

2018/06/10(日)09:22:16.29(z8uYskXvM.net)


451デフォルトの名無しさん

AAS

NG

スレにも規約作って変な奴は矯正しないといかんな。

2018/06/10(日)09:35:53.15(0WF1gq+N0.net)


452デフォルトの名無しさん [sage]

AAS

NG

変数を関数の先頭に書く
returnは1つまで
変数名の先頭に型の略字を書く
varは使ってはいけない

こういうひと昔前まで大衆が信じてたバカ規約
システム全体で統一感のあるコードを書くって規約もいずれその仲間入りするとおもう
いまはまだIT業界全体が未熟だからみんな気付いてないだけ

2018/06/10(日)09:58:39.22(kZ6+r7gZM.net)


453デフォルトの名無しさん [sage]

AAS

NG

ちょっといいですか、この関数100行超えてます。
規約違反で可読性なくなります!
レビューで積極的に発言するサル、何も知らないで自分は立派なプログラム書いてると思っている。
ちなみににLinqの方が可読性上がるよ。
Linqはやりたいことをズバッと書ける。
古いやり方だと、このforループなに?ってなる。
forループは実装手段であって目的じゃないから。
単に慣れ、新しいこと勉強したくない連中が可読性だの規約だの持ち出す。

2018/06/10(日)10:22:35.79(YCs8n+CmM.net)


454デフォルトの名無しさん [sage]

AAS

NG

分割すれば良いじゃん
それが出来ないことを相手のせいにするな

2018/06/10(日)10:39:02.74(0nkwjY0q0.net)


455デフォルトの名無しさん [sage]

AAS

NG

魔板でやれや

2018/06/10(日)11:01:43.43(wNo6w9bX0.net)


456デフォルトの名無しさん [sage]

AAS

NG

>>445
どこが決めつけてる>>440

2018/06/10(日)12:09:56.40(ycwHE1rSa.net)


457デフォルトの名無しさん

AAS

NG

C#のLinqを使っているのならPythonの方が2倍速くなる
https://qiita.com/yniji/items/6585011633289a257888

C# の Linq が python の2倍遅い、は嘘
https://qiita.com/Akira_Kido_N/items/d9519b05ccee6a67158f

2018/06/10(日)13:05:02.68(fXHYwG6AM.net)


458デフォルトの名無しさん [sage]

AAS

NG

俺が知りたいのは、オブジェクトをx回作るやり方なんだよ

2018/06/10(日)13:22:36.14(8jSf3er6M.net)


459デフォルトの名無しさん [sage]

AAS

NG

for(var i=0;i<n;i++)Days[i]=new Day(i);

2018/06/10(日)13:47:05.85(FyF+mujLM.net)


460デフォルトの名無しさん [sage]

AAS

NG

linqで発狂してるジジイはSQL絡みでよくわからないエラーに出くわして理解できなかったんじゃないの

2018/06/10(日)14:27:51.17(A9qrJ+Er0.net)


461デフォルトの名無しさん [sage]

AAS

NG

もう全部varでええやろ

2018/06/10(日)17:59:54.77(Nj3/us+lM.net)


462デフォルトの名無しさん [sage]

AAS

NG

保守性の低い Linq を使ったコードの実例を見たいんだけど。

2018/06/10(日)18:16:30.94(Ve8EHXbu0.net)


463デフォルトの名無しさん [sage]

AAS

NG

クエリ式を使ったのは単純なのはわかりやすいけど複雑になるとお手上げ
メソッド形式で使ったとしても逆にクエリ式のfromを二重の使ったほうがいいのにSelectManyを使ってるやつは非常に醜い
JoinやAggregateも可読性が以上に低い

2018/06/10(日)18:55:50.21(FyF+mujLM.net)


464デフォルトの名無しさん [sage]

AAS

NG

意見は分かれると思うが、川俣大先生が連載記事で引用してた
このサンプルあたりがボーダーラインかね
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/linq/how-to-query-for-duplicate-files-in-a-directory-tree-linq

個人的にはこれも読みづらい

実にどうでもいい話だが、LINQは頭字語のはずなのでLinqって表記には違和感しか感じない。
あと、これもくどいが、LINQじゃなくてクエリ式の話をしてるんじゃないのかと

2018/06/10(日)18:58:38.79(0FFsGNUEa.net)


465デフォルトの名無しさん [sage]

AAS

NG

>>464
これはだめな例じゃないかな?
何をやってるかがわからない

2018/06/10(日)19:04:29.50(FyF+mujLM.net)


466デフォルトの名無しさん [sage]

AAS

NG

これの事?
var queryDupNames =
  from file in fileList
  group file.FullName.Substring(charsToSkip) by file.Name into fileGroup
  where fileGroup.Count() > 1
  select fileGroup;

基礎的なものだけで構築されていて何をやっているか一目瞭然じゃん

2018/06/10(日)19:22:31.41(0nkwjY0q0.net)


467デフォルトの名無しさん [sage]

AAS

NG

これがわかんないって言うならもうlinq禁止しか無いね
そんな人間がいるプロジェクトには関わりたくないけど

2018/06/10(日)19:59:10.70(7XGbwrsW0.net)


468デフォルトの名無しさん [sage]

AAS

NG

全員linq読めても将来読めない人がメンテするかもしれないから禁止
実際にあった話

2018/06/10(日)20:06:35.03(kZ6+r7gZM.net)


469デフォルトの名無しさん [sage]

AAS

NG

ああこれが分からないってんなら確かに LINQ 禁止だわ。w
でもそんなのに付き合ってやる義理はないんじゃね? あとは規約の問題だな。

2018/06/10(日)20:19:14.72(Ve8EHXbu0.net)


470デフォルトの名無しさん [sage]

AAS

NG

自分ならメソッド構文で書く

2018/06/10(日)20:29:40.62(FyF+mujLM.net)


471デフォルトの名無しさん [sage]

AAS

NG

分からないなら勉強するなり聞くなりすればいいじゃんとは思うけどな
可読性あげるのは理解できるが便利な関数を規制するのはおかしいくない?
いつまでたっても個人の技術力上がらなくなるけどいいの?とは思う

2018/06/10(日)21:47:34.28(WVhS1nfV0.net)


472デフォルトの名無しさん [sage]

AAS

NG

わからないって意味を誤解してるだろ

var queryDupNames = fileList.Groupby(f=>略, f=>略).Where(g=>g.Count>1);

メソッドだとほぼ一瞬で何をやってるかわかるだろ
わざわざ行数を割いて理解に時間のかかるクエリ式を使う意味はねえよ

2018/06/10(日)21:54:10.88(FyF+mujLM.net)


473デフォルトの名無しさん [sage]

AAS

NG

あークエリ式じゃなくてラムダで書いた方が見やすいって話?
それなら同意

2018/06/10(日)22:13:28.91(WVhS1nfV0.net)


474デフォルトの名無しさん [sage]

AAS

NG

そんなんリファクタすりゃ済む話じゃん

2018/06/10(日)22:39:32.51(7XGbwrsW0.net)


475デフォルトの名無しさん [sage]

AAS

NG

リファクタリングするにもユニットテストで担保取れないレベルの酷いプログラム沢山あるからなあ

2018/06/10(日)22:43:36.88(mLmPdblh0.net)


476デフォルトの名無しさん [sage]

AAS

NG

低レベルなプログラマに合わせたコードはテストしにくいひどいコードになりがち
インターフェース禁止だとか当たり前のように言ってくるからねあいつら

2018/06/10(日)22:53:21.31(kZ6+r7gZM.net)


477デフォルトの名無しさん [sage]

AAS

NG

今日も自閉症の見本市

2018/06/10(日)22:54:32.29(SjjA9sVt0.net)


478デフォルトの名無しさん [sage]

AAS

NG

低レベルなプログラマとの話し合いは無駄だと言うことがよくわかった

2018/06/10(日)23:06:57.39(0nkwjY0q0.net)


479デフォルトの名無しさん [sage]

AAS

NG

リファクタリングをリファクタ言うの非常に気持ち悪い
refactor は refactoring から派生した単語
refactor という動詞は使われだして日も浅く、まだ技術系のスラングの域でしかない

VS には「リファクター」としてリファクタリングを行うメニューが提供されているが
小洒落た動詞として使用される分には気にならないが、
日本人が「リファクタする」とか使ってると「カンパニーのコンプライアンスをガバナンスする」とかと同様に見える
いやもっとあれか「コンプラをガバーンする」とかと同じレベルかな? (govern は正しい動詞)

https://english.stackexchange.com/questions/57750/is-there-a-verb-refactor-meaning-doing-refactoring-in-english

……MSのスペルチェッカで引っかかってたのか(現在は知らんが)

2018/06/11(月)14:37:15.67(dC6OTsii0.net)


480デフォルトの名無しさん [sage]

AAS

NG

カタカナ表記する時点で英語のことなんて気にしてちゃやってられんよ

2018/06/11(月)17:24:57.86(FO+2sVJQ0.net)


481デフォルトの名無しさん [sage]

AAS

NG

唐突に何なんだろうねw
まあ、某社のVS用のリファクタリングツールの旧名がRefactor !"だったね。

2018/06/11(月)17:36:15.53(xa0hP702a.net)


482デフォルトの名無しさん [sage]

AAS

NG

英語はよく知らんが 〜ing から派生して 〜 ができるとかあり得るのか?

2018/06/11(月)19:40:48.77(IrI/gpw8M.net)


483デフォルトの名無しさん [sage]

AAS

NG

うん、そもそも refactoring が造語

初出が誰なのか不明(Martin Fowler ではない)だが、
1992年には論文で見られるっていうほんとに新しくできた単語なのよ

2018/06/11(月)22:30:32.76(dC6OTsii0.net)


484デフォルトの名無しさん [sage]

AAS

NG

新しい(26年前)

2018/06/11(月)22:53:53.28(ziXMMRuaa.net)


485デフォルトの名無しさん [sage]

AAS

NG

接頭辞と接尾辞を付けただけだから別に造語ってほどじゃ無いだろ?

2018/06/12(火)11:25:19.10(XfLFdaMYp.net)


486デフォルトの名無しさん [sage]

AAS

NG

もとの言葉がfactor、factoringで、factorは動詞としても使われているのだから、
英語圏ならrefactoringという言葉が登場した時点でrefactorという言葉も同時発生的に生まれていると思うが…

2018/06/12(火)13:31:08.41(l5O6ZBmRM.net)


487デフォルトの名無しさん [sage]

AAS

NG

どうでもいい話だけど、派生した順番はたぶん

factor(名)→ factoring → re-factoring

なんだろう。

完全に想像で何の根拠もないけど、computingが動詞のcomputeの動名詞ではない(たぶん...)
ように、factoringも動詞のfactorの動名詞ではないような気がする

2018/06/12(火)14:20:48.56(O2DKnY7ra.net)


488デフォルトの名無しさん [sage]

AAS

NG

>>448
factorizeはなぜ使われなかったんだろう

2018/06/12(火)21:59:47.02(tBKs/ecm0.net)


489デフォルトの名無しさん [sage]

AAS

NG

まずは英英辞書引こうよ…

2018/06/12(火)23:00:33.34(KC1Yqp3NM.net)


490デフォルトの名無しさん [sage]

AAS

NG

英英辞書ってやっぱりエイッエイッて引くのなのかな

2018/06/13(水)07:49:48.39(GuprKmCG0.net)


491デフォルトの名無しさん [sage]

AAS

NG

一晩考えてそれか。。

2018/06/13(水)08:29:12.19(o1Fw+zabM.net)


492デフォルトの名無しさん

AAS

NG

こういうやつってC#に向いてるんだろうか
(画像)
でもUnityとかでゲーム作りたいね思ってるのってこのタイプだろうなと思うし。

2018/06/13(水)17:13:37.26(LyYtEKg40.net)


493デフォルトの名無しさん

AAS

NG

2018/06/13(水)17:14:09.95(LyYtEKg40.net)


494デフォルトの名無しさん [sage]

AAS

NG

C#より丸鋸とか旋盤の方が向いているんじゃね?

2018/06/13(水)17:20:21.24(yGCmXdsAM.net)


495デフォルトの名無しさん

AAS

NG

3DCGはうまいけどなw

2018/06/13(水)17:22:01.32(LyYtEKg40.net)


496デフォルトの名無しさん

AAS

NG

図面はやってたけど、なんでもアバウトで絵をかいてるんじゃないからとかボロカス言われた。

2018/06/13(水)17:24:47.33(LyYtEKg40.net)


497デフォルトの名無しさん [sage]

AAS

NG

近年、そもそも右脳左脳自体がエセ科学だったんじゃないかって言われてるけどね。

ここのサイトのconsoleって書いてあるところに自分のrwitterアカウント打ち込むと、性格にマッチした言語がわかるよ。IBM製。
http://hello-new-world.mybluemix.net/top

2018/06/13(水)19:08:31.55(TJmxm3LHM.net)


498デフォルトの名無しさん [sage]

AAS

NG

>>491
やーごめん。このスレ今日初めて見たの。ちゃちゃいれてもうしわけなす。

2018/06/13(水)19:10:58.93(tfOKWYs/0.net)


499デフォルトの名無しさん [sage]

AAS

NG

>>497
IBM製じゃなくてBluemix使ったアプリなだけやん

2018/06/13(水)23:36:14.69(AGR+xSSx0.net)


500デフォルトの名無しさん [sage]

AAS

NG

>>499
いんや、公開したのは日本IBMだよ

2018/06/14(木)08:07:40.99(TG8lbF0sM.net)


501デフォルトの名無しさん

AAS

NG

自分、ブックオフで買ってきたOS無しのPCにUbuntu入れてるんですが、
Pythonとか面白いので、C#もやってみたいと思っているんですが、

Mono入れれば、書店で売ってるVisualC#の本とか出来ますか・・?

2018/06/14(木)12:02:14.52(ZrVl35qK0.net)


502デフォルトの名無しさん

AAS

NG

C#やるなら普通にWindows機でやったほうがいいと思うけど

2018/06/14(木)12:26:43.19(ZNAi3suja.net)


503デフォルトの名無しさん [sage]

AAS

NG

>>501
C#で何がしたいの?

2018/06/14(木)12:28:45.35(IAs3lrtOd.net)


504デフォルトの名無しさん [sage]

AAS

NG

左は約30年前の 稲川会 三日月一家 小原忠悦組長
https://imgur.com/a/MlKixgw

2018/06/14(木)13:05:26.16(PJ7Fj3C3a.net)


505500

AAS

NG

>>502
どうもありがとうございます。Windows機は父親のしかありません・・。強奪してこようかな・・。父親全然使っとらん。。

>>503
本のプログラムを打ち込んでみたいです。Pythonとか面白かったのでC#も挑戦してみたいという感じです。なんかいけそうっぽい

2018/06/14(木)17:14:29.50(ZrVl35qK0.net)


506デフォルトの名無しさん [sage]

AAS

NG

>>500
あら、そうなのか
すまんかった

2018/06/14(木)17:17:13.41(cv3CkBmoM.net)


507デフォルトの名無しさん [sage]

AAS

NG

>>505
本がVisual Studioを使う前提で書かれていたら無理

2018/06/14(木)17:27:33.62(im2Z0uooa.net)


508デフォルトの名無しさん [sage]

AAS

NG

>>505
だから具体的に何をしたいの?(何を作りたいの?)

2018/06/14(木)17:59:42.71(IAs3lrtOd.net)


509デフォルトの名無しさん [sage]

AAS

NG

書いてある通りだろ

本を読んでその通りなぞりたいんだろ

2018/06/14(木)18:14:23.58(im2Z0uooa.net)


510デフォルトの名無しさん [sage]

AAS

NG

>>507
猫でもわかるシリーズならそんな心配はないな!
>>505
お父さんのPCで間違ってエロコレクションとか見つけたら鬱になるのでやめたほうがいい
ただVisual Studio(VScodeでもいいかも)使えない環境でC#やるのはめんどくさいと思うよ

2018/06/14(木)18:19:58.04(T0JMmz9y0.net)


511デフォルトの名無しさん [sage]

AAS

NG

猫でもわかるシリーズは今はもう古いと思う(※個人の感想です)

2018/06/14(木)18:22:09.50(im2Z0uooa.net)


512デフォルトの名無しさん [sage]

AAS

NG

>>509
本によるやろそんなもん

2018/06/14(木)18:22:19.44(IAs3lrtOd.net)


513デフォルトの名無しさん [sage]

AAS

NG

>>512
だから馬鹿な質問するのはやめとけよ

2018/06/14(木)18:23:22.66(im2Z0uooa.net)


514デフォルトの名無しさん [sage]

AAS

NG

>>511
>>510はC#の本なんかまったく読んでいない無責任な個人の感想です

2018/06/14(木)18:23:51.86(T0JMmz9y0.net)


515デフォルトの名無しさん [sage]

AAS

NG

>>513
本によるから実際にやりたいこと聞くことの何が悪いんかい?

2018/06/14(木)18:28:25.08(IAs3lrtOd.net)


516デフォルトの名無しさん [sage]

AAS

NG

ここで聞くようなレベルの人が使うもんじゃないと思う ⇒ Mono

2018/06/14(木)18:30:41.94(Cw52iYDwM.net)


517デフォルトの名無しさん [sage]

AAS

NG

初心者がc#が何かよくわからないけど本を読んでなぞって体験したい
そんな感じだろ
それ以上何がある

2018/06/14(木)18:34:01.18(im2Z0uooa.net)


518デフォルトの名無しさん [sage]

AAS

NG

>>517
キチガイ

2018/06/14(木)18:35:19.36(Cyktia16d.net)


519デフォルトの名無しさん [sage]

AAS

NG

>>518
自分がプログラム入門者だとして何がしたいと答えるつもりだ?

2018/06/14(木)18:37:17.48(im2Z0uooa.net)


520デフォルトの名無しさん [sage]

AAS

NG

世界征服

2018/06/14(木)18:39:04.95(KqjFIT9WM.net)


521デフォルトの名無しさん [sage]

AAS

NG

>>519
いくらでもあるやろwww

2018/06/14(木)18:40:09.93(Cyktia16d.net)


522デフォルトの名無しさん [sage]

AAS

NG

>>521
やっぱり答えられないじゃないか

pythonの本を読んでその通り打ち込んで楽しかった
次はc#だって感じだろ

何か作りたいものがあるならpythonでやるだろ

2018/06/14(木)18:42:49.17(im2Z0uooa.net)


523デフォルトの名無しさん [sage]

AAS

NG

>>522
ありすぎてひとつに絞る意味がない
おばかさん

2018/06/14(木)18:44:53.14(Cyktia16d.net)


524デフォルトの名無しさん [sage]

AAS

NG

>>523
結局答えられないくせに偉そうだな

2018/06/14(木)18:46:00.00(im2Z0uooa.net)


525デフォルトの名無しさん [sage]

AAS

NG

>>524
ぼくとりあえず簡単なWebアプリがつくりたいのー

2018/06/14(木)18:47:04.68(Cyktia16d.net)


526デフォルトの名無しさん [sage]

AAS

NG

>>524
アンドロイドアプリモンスターズつくりたいなー

2018/06/14(木)18:47:24.43(Cyktia16d.net)


527デフォルトの名無しさん [sage]

AAS

NG

>>524
家計簿つくりたいー

2018/06/14(木)18:47:59.25(Cyktia16d.net)


528デフォルトの名無しさん [sage]

AAS

NG

>>524
テトリスつくりたいなあ

2018/06/14(木)18:48:16.72(Cyktia16d.net)


529デフォルトの名無しさん [sage]

AAS

NG

>>524
まだ必要?

2018/06/14(木)18:50:17.14(Cyktia16d.net)


530デフォルトの名無しさん [sage]

AAS

NG

>>529
じゃあそれを質問する意味はなんだ?

2018/06/14(木)18:50:51.62(im2Z0uooa.net)


531デフォルトの名無しさん [sage]

AAS

NG

両方NGでいいや

2018/06/14(木)18:51:45.04(T0JMmz9y0.net)


532デフォルトの名無しさん [sage]

AAS

NG

>>525-528を作るための本を紹介するのか?
本をなぞると言ってるのに?

2018/06/14(木)18:51:56.99(im2Z0uooa.net)


533デフォルトの名無しさん [sage]

AAS

NG

>>530
はいキチガイ

2018/06/14(木)18:55:45.38(Cyktia16d.net)


534デフォルトの名無しさん [sage]

AAS

NG

>>532
だから本によるんやろw

2018/06/14(木)18:56:08.99(Cyktia16d.net)


535デフォルトの名無しさん [sage]

AAS

NG

ここまで1人の自演

2018/06/15(金)06:51:22.33(7Iypneqg0.net)


536デフォルトの名無しさん [sage]

AAS

NG

.hstファイルを読み取りたいので質問です。
C#でやるのに参考になるサイトかコードはないかな?

2018/06/17(日)07:44:22.33(R12hw8Jz0.net)


537デフォルトの名無しさん [sage]

AAS

NG

hstって何さ

2018/06/17(日)08:44:00.21(aVMObWbK0.net)


538デフォルトの名無しさん [sage]

AAS

NG

HSTファイル
調べた限りだとHiSTory fileでFXの履歴を記録したファイルで使われることが多いのかな?
自分が使いたいのはFXの履歴ではないくてカメラの履歴などの情報を取りたいです。C++などのコードで書いてるサイトはあるけどC#が見つからない

2018/06/17(日)09:14:51.45(R12hw8Jz0.net)


539デフォルトの名無しさん [sage]

AAS

NG

.hst file format . . . Old and New (Jan 2014)
https://www.mql5.com/en/forum/149178

上のアドレスで説明されているフォーマットだったら普通にBinaryReaderで読み込めば良いんじゃないの
単純な構造だから苦労することも無いと思うよ

2018/06/17(日)10:00:34.77(aVMObWbK0.net)


540デフォルトの名無しさん [sage]

AAS

NG

>>538
> C++などのコードで書いてるサイトはある
ならそれ真似ればいいだけじゃねーの?

2018/06/17(日)10:05:01.86(brTRb0Nk0.net)


541デフォルトの名無しさん [sage]

AAS

NG

HSTファイルもC++ほぼわからないので、参考になるのがあればと思ったんです。
BinaryReader使って試してみます。
ありがとうございました!

2018/06/17(日)21:31:13.88(R12hw8Jz0.net)


542デフォルトの名無しさん [sage]

AAS

NG

そのC++ライブラリはそんな複雑なことしてんの?
数千行あるなら心折れるかもしれんが、自分で移植するほうが早い気がするけど
C#かけるなら余裕でしょ

2018/06/17(日)22:18:28.81(qGzm+MRqd.net)


543デフォルトの名無しさん [sage]

AAS

NG

byte[]からstructにマーシャリングするのが簡単かな
あ、でも最近のC#はマルチプラットフォームだからバイトオーダーも気にしないとダメなのかな
地味にめんどくせえな

2018/06/17(日)22:23:59.43(IxLGC6rAM.net)


544デフォルトの名無しさん [sage]

AAS

NG

内容しっかり見てなかったけど100行なかったははず
C#もどこかあるだろで探してたけどC#だけまったく見当たらなかったので、結果的には自分で移植のほうが早かったかな

2018/06/17(日)22:37:48.08(R12hw8Jz0.net)


545デフォルトの名無しさん

AAS

NG

どなたか助けてください

PaSoRiでFelicaのReadをしたいのです。
winscard.dllを利用し
ScardTransmitにてADPUを送信することで
非暗号化領域のREAD/WRITEをすることはできました

追加で、暗号化領域のREADをしてほしいと言われ、
Group Service KeyとUser Service Keyという2つの鍵を渡されました。
どうやらこの2つの鍵を使って暗号化領域のREADを行うようなのですが
それに該当する情報が見つかりません。

この2つの鍵と縮退鍵の関連もわかりません。
2つの鍵を使って縮退鍵を合成する???
合成したとしてどういうAPDUコマンドを送る???

ご存知の方がいらっしゃいましたらご教授ください。

2018/06/18(月)00:31:09.66(6KD+nJyx0.net)


546デフォルトの名無しさん [sage]

AAS

NG

それC#の質問か?

2018/06/18(月)00:46:54.25(jPyv6U8B0.net)


547デフォルトの名無しさん [sage]

AAS

NG

>>546
ごめんなさい。C#で書いてるのでC#で質問しました。
他に適当なスレが見つからなかったもので。。。

2018/06/18(月)01:05:06.10(6KD+nJyx0.net)


548デフォルトの名無しさん [sage]

AAS

NG

ライセンス契約の無い奴にそこから先は教えられねーわ。

2018/06/18(月)14:58:19.26(Pxwa7YvH0.net)


549デフォルトの名無しさん [sage]

AAS

NG

バイナリファイルをバイト配列に一気に読み込んでLINQでゴリゴリするなんてC#って言うか.netの醍醐味だね。
C、C++と歩んできて正直C#なめてたが、プログラムの書き方変わったよ。

2018/06/18(月)15:38:53.66(XzDxjxqSM.net)


550デフォルトの名無しさん [sage]

AAS

NG

バイナリファイルのバイト配列はストリーム(BinaryReader/Writer)経由でしか扱ったことないな
浅学ですまないが非常に興味があるので、何をする処理にLINQを使っているのか教えてほしい

2018/06/18(月)19:59:56.07(YV8aSpRw0.net)


551デフォルトの名無しさん [sage]

AAS

NG

>>550
横レスだけど「読み込んでLINQ」だからパーサーの部分だろ

2018/06/18(月)20:21:08.97(xPHPGLWh0.net)


552デフォルトの名無しさん [sage]

AAS

NG

スキップ.テイク.リバースでバイトオーダー反転してデータ取り込むとかだ。

2018/06/18(月)20:48:17.73(Dbb+UGxb0.net)


553デフォルトの名無しさん [sage]

AAS

NG

テキストファイルを一行ずつ読み込むとか、バイナリファイルを1フレームずつ読み込むなんてのは時代遅れなんじゃねかと。
最近は一括読み込みしかしないな。
パフォーマンスはライブラリやOSが担保してくれる。

2018/06/18(月)20:55:37.17(Dbb+UGxb0.net)


554デフォルトの名無しさん [sage]

AAS

NG

時代遅れかどうかは知らんけど(そういうネトウヨチックな「俺スゲー」という間抜けな自己陶酔、俺は大嫌いだがw)
富豪的であってもそれが一時的(たとえばメソッドの中だけ)なら何も問題ないね。

その方がより簡潔だったり可読的に書けるなら否定する理由は何もない

2018/06/18(月)21:33:32.15(ubyRHWyfa.net)


555デフォルトの名無しさん [sage]

AAS

NG

webのアクセスログとかもそんな事するのけ?

2018/06/18(月)21:36:42.05(C5OiN+R5M.net)


556デフォルトの名無しさん [sage]

AAS

NG

時系列データのリアルタイム処理とかどうやって一括で読み込むんだ??

2018/06/18(月)21:40:28.88(ltR7ddTWM.net)


557デフォルトの名無しさん [sage]

AAS

NG

巨大な高速RAMストレージを特注

2018/06/18(月)21:41:56.46(H/s4J3I+p.net)


558デフォルトの名無しさん [sage]

AAS

NG

時系列的に増えていくファイルだとか、ソケット通信のバイトストリートだとかは順次読み込みするしかないよ。
だけどドライブにあるファイルは一括読み込みの方が簡単だよ。1ステップだからね。それをソートするなりデータ抽出するなりLINQ使えば簡単だよ。
それを知ってから逐次読み出しなんか面倒くさくアホらしくなったよ。

2018/06/18(月)21:46:48.35(Dbb+UGxb0.net)


559デフォルトの名無しさん [sage]

AAS

NG

>>557
プログラム上に巨大な配列生成しても、それだけRAMに割り付けられると思うのは大間違いだよ。
メモリの階層化とかで勉強してね。

2018/06/18(月)21:50:28.19(Dbb+UGxb0.net)


560デフォルトの名無しさん [sage]

AAS

NG

>>557には「高速RAMストレージ」って書いてあるけどw

2018/06/18(月)21:52:07.22(ubyRHWyfa.net)


561デフォルトの名無しさん [sage]

AAS

NG

>>559
ストレージと書いてるだろw
外部記憶装置のアクセスの高速化しか考えてねーよw

2018/06/18(月)21:52:33.25(H/s4J3I+p.net)


562デフォルトの名無しさん [sage]

AAS

NG

LINQのメリットの一つに IEnumerable<T>があるのになんで一括読み込みに拘るんや

2018/06/18(月)21:56:24.93(DGcX/y5w0.net)


563デフォルトの名無しさん [sage]

AAS

NG

痴性溢れる御意見ですね

2018/06/18(月)21:57:36.33(C5OiN+R5M.net)


564デフォルトの名無しさん [sage]

AAS

NG

一括読み込みしたものがアイエニュメラブルになるから。

2018/06/18(月)22:00:34.70(Dbb+UGxb0.net)


565デフォルトの名無しさん [sage]

AAS

NG

>>561
最近のパソコンは速いぞ。
試しにやってみなよ。

2018/06/18(月)22:04:21.91(Dbb+UGxb0.net)


566デフォルトの名無しさん [sage]

AAS

NG

まったく関係ないが、そういや、この手のデバイスって結局実用化せずに消えたのかね
まったく聞かないな
http://blog.livedoor.jp/dankogai/archives/50560934.html

読んだのずいぶん前とは思ったがもう12年前か...

2018/06/18(月)22:08:39.81(ubyRHWyfa.net)


567デフォルトの名無しさん [sage]

AAS

NG

>>565
高速flash memoryでraid組んでもRAMの速度には負けるだろ。

2018/06/18(月)22:31:50.96(H/s4J3I+p.net)


568デフォルトの名無しさん [sage]

AAS

NG

>>566
PRAMのSSD版ならもう出てる
DIMMは今年度中にサンプル出荷のはず

STTやRe、Mは頑張ってるがまだ先だろうね

2018/06/19(火)23:13:11.27(BrsQYlEtM.net)


569デフォルトの名無しさん [sage]

AAS

NG

Debug.Failのサンプルコードがこんなのなんですが
プログラムのバグでもない限りは絶対に訪れないような場所には
片っ端からDebug.Failを撒いておいたほうがいいんですか?
それともそれ専用のthrowすべき例外なりがあるんでしょうか?
Assert.Fail?
何も書かないのは気持ち悪いので指針を教えてください

switch (option) {
case Option.First:
result = 1.0;
break;

// Insert additional cases.

default:
Debug.Fail("Unknown Option " + option);
result = 1.0;
break;
}

2018/06/25(月)11:21:29.65(pxATIqrb0.net)


570デフォルトの名無しさん [sage]

AAS

NG

>>569
そういうのはフロー解析による不要なコンパイルエラーを回避するために throw する
例外の種類は状況やポリシーに応じて InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException あたりを使うのが普通

2018/06/25(月)12:12:52.11(DuFsc7dIM.net)


571デフォルトの名無しさん [sage]

AAS

NG

これは標準で例外欲しくなるよなぁ
いつも何を投げるか迷う

2018/06/25(月)12:29:34.73(Yf6/X2v7M.net)


572デフォルトの名無しさん [sage]

AAS

NG

そうかな
>>570が挙げてくれてるので十分でしょ。
少なくともメッセージは自由に設定できるし、本当に必要なら派生もできる。

そもそも例外をそんなに細かく分類する必要が本当にあるのかちょっと疑問

2018/06/25(月)12:33:59.90(G9vuY89la.net)


573デフォルトの名無しさん [sage]

AAS

NG

常識的にキャッチされない種類の例外なら何でもいいわな
InvalidOperationExceptionだけはキャッチされる場合があるから微妙だけど、慣習的にはわりと多数派な気がする
個人的には常に NotImplementedException にしたい

2018/06/25(月)12:40:32.20(M/oLTPjda.net)


574デフォルトの名無しさん [sage]

AAS

NG

NotImplementedは使わないなぁ

2018/06/25(月)12:46:36.42(9dNJX3N0M.net)


575デフォルトの名無しさん [sage]

AAS

NG

NotImplementedException は↓の人の意見だと本当は実装すべきなのに何かの都合でまだ
未実装の場合に使うらしいね。正しいかどうかは知らない
http://yfakariya.blogspot.com/2011/07/blog-post.html

同じNotでもNotImplementedは「未」実装、NotSupportedは「非」サポートってのは分かりづらいっす

2018/06/25(月)12:58:28.80(G9vuY89la.net)


576デフォルトの名無しさん [sage]

AAS

NG

細かいけどコンパイルエラー回避のためにthrowする、ってのは違くない?
現実問題そんな感じになってしまうことはあるけど理想はコンパイラの都合に合わせたコードなんて無いほうがいいんだから

2018/06/25(月)13:00:29.11(5ya7SPIm0.net)


577568 [sage]

AAS

NG

>>570
>InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException
これらの例外は自クラスには非はなく、呼んだ側の使い方が間違っているといった感じの例外に見えますが
そんなにこだわらなくていいんでしょうか

public class MyClass
{
public class BugException: System.SystemException{}
public void buggedmethod() { ... throw new BugException(); }
}

これで良ければ1行で定義できて1番明快に思えますが
検索してもこんなことをやってる人は誰もいないっぽい…

2018/06/25(月)13:23:21.50(vUyRGEqk0.net)


578デフォルトの名無しさん [sage]

AAS

NG

>>575
>>569のケースに限れば、defaultに来るのはenumにメンバを追加したのにcaseを追加していない「変更漏れ」であると考えることもできるから、
NotImplementedException でも意味的におかしくはない
NotSupportedExceptionは(継承の都合で)メンバ自体が使えないことを意味するからちょっと違う

2018/06/25(月)14:49:07.56(o35Q9ijAM.net)


579デフォルトの名無しさん [sage]

AAS

NG

MissingCaseException
を自作でいいのでは?

2018/06/25(月)18:07:26.16(dM1+XD4cM.net)


580デフォルトの名無しさん [sage]

AAS

NG

>>578
なるほどそうかも

関係ないけど、いつも思うけどあるインターフェイスを継承してるのに
そのインターフェイスのメソッド使ったらNotSupportedExceptionが飛んでくるって設計は
なんか不条理を感じるのは俺だけかなあw

インターフェイスって契約じゃなかったのかよw

2018/06/25(月)18:51:31.43(uZsljbpsa.net)


581デフォルトの名無しさん [sage]

AAS

NG

InvalidEnumArgumentExceptionは?

2018/06/25(月)19:32:38.95(gMkOZD8Wa.net)


582デフォルトの名無しさん [sage]

AAS

NG

実装側の問題なら>>578でよさそう

2018/06/25(月)19:39:55.82(gMkOZD8Wa.net)


583デフォルトの名無しさん [sage]

AAS

NG

>>570が挙げてる例外は各々意味あるから>>569のとはちょっと違う気がする
AssertExceptionとかLogicErrorExceptionとかが欲しい

2018/06/25(月)20:13:43.81(HTnjHonAM.net)


584デフォルトの名無しさん [sage]

AAS

NG

Debugクラスのメソッドはリリース版のとき消えます、素通りします
Debug.Fail() は起こりえない状況であり、かつ、素通りしても問題ない箇所、
またはリカバリ処理を行っている箇所にしか使用できません

基本は例外か Trace.Fail() を使用するべきです

Debug.Fail() を使用して問題ないのは具体的には下記の条件に当てはまるときぐらいだと思います

・『絶対』に起こらないことを目視や単体テストで確認した上で、後続のコードでリカバリ処理を行っている箇所で、
開発によってコードが壊れてないかチェックするためにコードに挿入する
(絶対に発生しないので単体テストを行う場合は #if で慎重にコードを切り替えてエラー状態を再現することになります)

つまり、リカバリ処理してるなら Debug.Fail() は入れなくても問題ないはずです

2018/06/25(月)21:43:12.62(xJKhLBIA0.net)


585568 [sage]

AAS

NG

遅くなりましたが例外とログの使い方大変参考になりました。
ありがとうございます。

2018/06/28(木)16:32:42.98(mhaIhaYV0.net)


586デフォルトの名無しさん

AAS

NG

81F

2018/07/04(水)22:15:33.33(gFgZc5FG0.net)


587デフォルトの名無しさん

AAS

NG

C#的にはこういうプロジェクト構成(VisualStudio)が正しい!
という考えたがある方、詳しく教えてほしいんですが、
スレ違いでしょうか?

2018/07/05(木)22:48:00.22(bXohcl5rE)


588デフォルトの名無しさん [age]

AAS

NG

隔離用のスレとはいえ下がりすぎなので上げとく

2018/07/11(水)23:46:27.39(wZEnBA6P0.net)


589デフォルトの名無しさん [sage]

AAS

NG

超初心者ですが
RectangleとかPointとかって、値型?
値型ってコンストラクタに引数渡せないって、さっき、読んだけど

2018/07/12(木)02:43:18.10(VF8Jnm1rH.net)


590デフォルトの名無しさん [sage]

AAS

NG

>>589
初心者ですが
そいつらは値型でつ
値型は無引数のコンストラクタにコードを書くことができないんでなかったかいな?

2018/07/12(木)20:29:08.90(LFvEI7az0.net)


591デフォルトの名無しさん

AAS

NG

単なる構造体にインスタンスもくそもないからな。

2018/07/12(木)21:32:30.73(wWmeulvip.net)


592デフォルトの名無しさん [sage]

AAS

NG

構造体は初期化が0フィルだから
フィールドが非null値の場合はどうなるのかはしらない

2018/07/14(土)09:57:07.24(AoeZKvgvM.net)


593デフォルトの名無しさん

AAS

NG

型のデフォルト値でね?

2018/07/14(土)10:59:20.35(21Pqhes0M.net)


594デフォルトの名無しさん

AAS

NG

Visual Studio 2017
合計 90 日間が過ぎました。

無料で使いたいんですが、どうすれば良いでしょうか?

2018/07/14(土)11:24:43.76(td9rD4BU0.net)


595デフォルトの名無しさん [sage]

AAS

NG

無料の使ってください

2018/07/14(土)11:27:35.51(trGcxTua0.net)


596デフォルトの名無しさん [sage]

AAS

NG

90日ってことは有償版だろ
大人しく買えよ

もしくはCommunity版を検討する

2018/07/14(土)11:29:07.89(1NIDWWGu0.net)


597デフォルトの名無しさん [sage]

AAS

NG

>>594
どうしても有償版を使い続けたいのなら期限が切れるたびにWindowsを再インストールすればOK

2018/07/14(土)11:36:04.11(EtwCAyCb0.net)


598デフォルトの名無しさん

AAS

NG

Community版に移行する事にしました。
ありがとうございます

2018/07/14(土)12:06:05.24(td9rD4BU0.net)


599デフォルトの名無しさん [sage]

AAS

NG

Communityって登録しないと期限とかなかったっけ

2018/07/14(土)23:26:56.12(mNPit/gT0.net)


600デフォルトの名無しさん [sage]

AAS

NG

Microsoftアカウントを登録しないと30日

2018/07/15(日)01:08:37.15(WCfEKFtx0.net)


601デフォルトの名無しさん

AAS

NG

サブスクリプションで全シリーズ揃えてる俺に死角無し。

2018/07/15(日)11:14:40.73(GMJtRfj30.net)


602デフォルトの名無しさん [sage]

AAS

NG

>>601
VS-4.2くれ

2018/07/22(日)16:05:05.76(bsqxWqeBM.net)


603デフォルトの名無しさん

AAS

NG

Entity Framework Coreについて質問です。

以下のように1対多の入れ子(left join)になったデータを取ってくる場合で、一番最下層のテーブルに取得条件を追加したいです。
どのようにしてwhereメソッドを書けばよいでしょうか。
.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)

例えば以下のような感じです。
Skill.ExpireDate >= DateTime.Today

それぞれのプロパティはコレクションのため以下のようには書くことができません
Where(x => x.Departments.Groups.SubGroups.Employees.Skills.ExpireDate >= DateTime.Today)

ThenIncludeで指定しているプロパティがすべて列挙でなければ以下のように書けると思うのですが・・・
Where(x => x.Department.Group.SubGroup.Employee.Skill.ExpireDate >= DateTime.Today)

それぞれの階層のクラスは全プロパティ取得することを想定しています。
Entity Framework Coreで実現可能でしょうか。

2018/08/02(木)11:31:31.36(ijDqx/PBp.net)


604デフォルトの名無しさん [sage]

AAS

NG

その条件ならテーブルを上からたどる必要はないのかと

2018/08/02(木)12:14:20.65(jJXbX9Nfa.net)


605デフォルトの名無しさん

AAS

NG

>>604
辿らない場合、スキルクラス単位で条件絞り込みができるのでしょうか?
これができればとても楽なのですが、、、

2018/08/02(木)12:30:22.50(ijDqx/PBp.net)


606デフォルトの名無しさん [sage]

AAS

NG

どうしても上からたどりたいなら
WhereとAnyで掘り下げていくとか
SelectManyで平坦化するとかか

2018/08/02(木)13:06:25.80(CFW8XzdE0.net)


607デフォルトの名無しさん

AAS

NG

いえ、辿りたいわけではなくて、辿らないとできないと勝手に思ってただけです
辿らなくて良いなら辿らないでやれればベストです。
ですがその方法がわからないので教えてもらえませんでしょうか。

2018/08/02(木)15:11:34.29(ijDqx/PBp.net)


608デフォルトの名無しさん [sage]

AAS

NG

var q = _context.Hoges.FromSql($@"
select H.* from Hoges H where exists (
select null from Departments D where H.DeptId = D.DeptId and exists (
select null from Groups G where D.DeptId = G.DeptId and exists (
select null from SubGroups SG where G.GrpId = SG.GrpId and exists (
select null from Employees E where SG.SGrpId = E.SGrpId and exists (
select null from Skills SK where E.EmpId = SK.EmpId and SK.ExpireDate >= {DateTime.Today}
)))))
");

var hoges = q.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)
.ToList();

2018/08/02(木)21:52:06.55(nmSSZypj0.net)


609デフォルトの名無しさん [sage]

AAS

NG

以下のコードはどういう内容なのでしょうか?
public IList<float> Plus214_Output_0 { get; set; }


特に
<float>、 { get; set; }

が分かりませんでした

以下の一部になります

https://github.com/Microsoft/Windows-Machine-Learning/blob/master/Samples/UWP/MNIST/src/MNIST.cs

2018/08/03(金)07:33:44.44(TQSHsawm0.net)


610デフォルトの名無しさん [sage]

AAS

NG

>>609
前者は「ジェネリック」、後者は「自動実装プロパティ」でググれ

2018/08/03(金)07:54:13.63(/ayVy0z+a.net)


611デフォルトの名無しさん [sage]

AAS

NG

>>610
ありがとうございます!めっちゃ助かりました!

2018/08/03(金)07:55:39.91(TQSHsawm0.net)


612デフォルトの名無しさん [sage]

AAS

NG

Linqでの書き方で質問なのですが
同じサイズのdataAとdataBのデータがあるとして
データが違う箇所のIndexを取り出すとしたらどう書けば良いでしょうか?
今は↓のようなコードになっています。

List<int> dataA = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> dataB = new List<int>() { 1, 2, 4, 3, 5, 6 };
bool resultAB = dataA.SequenceEqual( dataB);

if(resultAB = false)
{
foreach(var A in dataA)
{

比較処理
}
}


結果
2
3

2018/08/07(火)20:55:48.43(7nA6P5yg0.net)


613デフォルトの名無しさん [sage]

AAS

NG

>>612
ない頭絞って考えてみた。
Enumerable.Range(0, dataA.Count()).Where(p => dataA[p] != dataB[p]);
やら
dataA.Select((v, i) => new { value = v, index = i }).Where(p => p.value != dataB[p.index]).Select(p => p.index);

どっちも汚い。もっと賢いのおしえろください

2018/08/07(火)21:22:20.14(UKw4EMmv0.net)


614デフォルトの名無しさん [sage]

AAS

NG

lLINQでやらんとあかんのかなんなのか

2018/08/07(火)21:24:07.13(ly4lPw5D0.net)


615デフォルトの名無しさん [sage]

AAS

NG

こういうのってforで一つずつ比較するのが一番読みやすくて楽じゃね?

2018/08/07(火)21:29:04.18(BzL1Bfeb0.net)


616611

AAS

NG

無理矢理LINQつかってみたけど>>615に一票

2018/08/07(火)21:35:47.39(UKw4EMmv0.net)


617デフォルトの名無しさん [sage]

AAS

NG

>>615
俺もそう思う。他の処理が入ってもすぐに組み込めるし
Linqは可読性がメリットなんだから、わかりにくくなったら本末転倒だし
あくまで個人の感想です

2018/08/07(火)21:36:11.45(q6HoXiPg0.net)


618デフォルトの名無しさん [sage]

AAS

NG

dataAとdataBが1000件以上あるので、まず単純に変更してるのがあるか?で
SequenceEqualを使ってみた流れでLINQを調べていた流れで知りたかったです。
forで書くのがわかりやすいとは思うけど、LINQでもっとうまく書けるかなと思って

>>613参考になりました。ありがとうございます!

2018/08/07(火)21:41:47.05(7nA6P5yg0.net)


619デフォルトの名無しさん [sage]

AAS

NG

for では、比較されるレコードが送られてくるけど、

LINQ では、答えしか送られてこないから、効率的

2018/08/07(火)21:43:44.13(5i41CNK00.net)


620デフォルトの名無しさん

AAS

NG

zip使えばいいんでね?

2018/08/07(火)23:11:20.30(EHUuk9/6a.net)


621デフォルトの名無しさん [sage]

AAS

NG

Linqのほうがわかりやすいし、ソースがランダムアクセスできるとも限らんだろ

シーケンスを束ねてインデックス振って比較して違うやつだけ取り出してインデックスを取り出す
Linqなら思ったことをそのまま書けばいい

IEnumerable<int> Hoge<T>(IEnumerable<T> a, IEnumerable<T> b) {
var comp = Comparer<T>.Default;
return a.Zip(b, (x, y) => (x, y)) // シーケンスを束ねて
.Select((e, i) => (i, e.x, e.y)) // インデックス振って
.Where(e => comp.Compare(e.x, e.y) != 0) // 比較して違うやつだけ取り出して
.Select(e => e.i); // インデックスを取り出す
}

ループじゃぱっとみ何やってるかわかんねえよ

2018/08/07(火)23:26:49.96(WUtnzCvr0.net)


622デフォルトの名無しさん [sage]

AAS

NG

あくまで個人の感想だけど。
自分も >>621 みたいなのの方が分かりやすいなあ。
てか、そういう書き方をよくするというか。

2018/08/07(火)23:31:30.75(kuothdai0.net)


623デフォルトの名無しさん

AAS

NG

LINQってEntityFrameworkでしか用途なくねえ?

2018/08/07(火)23:35:51.16(vAj7NHSO0.net)


624デフォルトの名無しさん [sage]

AAS

NG

>>623
は?

2018/08/07(火)23:37:10.34(9e6mZaIW0.net)


625デフォルトの名無しさん [sage]

AAS

NG

2018/08/07(火)23:40:05.44(ly4lPw5D0.net)


626デフォルトの名無しさん [sage]

AAS

NG

>>621
うーん、普通にこっちのほうが分かりやすいと思うけどw
別にLINQ否定派じゃないよ
IEnumerable<int> GetIndices()
{
  List<int> dataA = new List<int>() { 1, 2, 3, 4, 5, 6 };
  List<int> dataB = new List<int>() { 1, 2, 4, 3, 5, 6 };
  for (int i = 0; i < dataA.Count; i++)
    if (dataA[i] != dataB[i]) yield return i;
}

2018/08/08(水)00:39:26.55(cXv1v5r0a.net)


627デフォルトの名無しさん [sage]

AAS

NG

Zipしたものをforeachで回すのが一番自然
IEnumerable<int> Hoge(IEnumerable<int> A, IEnumerable<int> B)
{
  var i = 0;
  foreach (var eq in A.Zip(B, (a, b) => a == b))
  {
    if (!eq) yield return i;
    i++;
  }
}

自分はやらんけどLinqならこう
dataA.Zip(dataB, (a, b) => a == b).Select((eq, i) => eq ? -1 : i).Where(i => i >= 0);

2018/08/08(水)03:30:51.92(x4iNladl0.net)


628611 [sage]

AAS

NG

Zip知らんかったわー。超参考にする。

2018/08/08(水)05:09:02.93(9ryRYesD0.net)


629デフォルトの名無しさん [sage]

AAS

NG

インデックスが必要な時、わざわざselect挟んでインデックス貼るの馬鹿らしい感じがして好きになれないんだけど仕方ないよね?
そんなにインデックスを参照することが多いなら生成時に一緒に貼っとけって話かもしれんが…
そもそもlinqマスターはインデックスを必要としない設計にいつもなるの?
自分もインデックスが無くて済むように考えるけど結果的に必要になる箇所が細部で出てくるんだよね

2018/08/08(水)13:38:09.59(CtU8HUVGd.net)


630デフォルトの名無しさん [sage]

AAS

NG

どうしても必要な時はselect((value, index) => new {V = value, I = index})でインデックス引っ張ってるわ
それでもインデックス欲しい条件1行で書けるのが楽だからLinq便利派だけども

2018/08/08(水)14:08:00.53(csO2M6exd.net)


631デフォルトの名無しさん [sage]

AAS

NG

>>630
俺もそれ、ちょくちょくするんだけどforで回したほうがよくね?って思っちゃうことがあるんだよね
もちろん処理によりけりと言ってしまえばそれまでなんだけど
比較するようなもんじゃないかもしれんがjavascriptなんかだと大抵インデックス取れるから、そっち触ったあとにC#に戻ると処理考えるときにインデックスありきで考えがちになっちゃう気がしてる

2018/08/08(水)14:25:20.52(CtU8HUVGd.net)


632デフォルトの名無しさん [sage]

AAS

NG

先に出てた課題でもzipしたあと、そのままlinqで処理を完結させるか、zip後にforで回すか
個人的にはzipがどちらにせよ入るなら最後までlinqの方が1つの処理を1つの手法で解決してる感じがして好き
だけどインデックスが処理に必要だからfor使いたいって気持ちもわかる

2018/08/08(水)14:32:55.42(CtU8HUVGd.net)


633デフォルトの名無しさん [sage]

AAS

NG

>>631
まぁforのがいいと感じるならそれでもいいんじゃないかな
複雑な処理しない限りは大体Linqのがスッキリするからそうしてるだけだし

2018/08/08(水)14:53:36.93(bbTjp3FCd.net)


634デフォルトの名無しさん [sage]

AAS

NG

こういう拡張メソッド作っておくのはたまにやる
public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> self, Func<T, bool> predicate)
{
  var i = 0;
  foreach(var s in self)
  {
    if(predicate(s)) yield return i;
    i++;
  }
}

dataA.Zip(dataB, (a, b) => a == b).WhereIndex(eq => !eq);

拡張メソッド嫌いな人もいるだろうけど一番読みやすい
わざわざSelectでインデックスつけてる冗長さもないし、添字アクセスもないし、使う時はすっきり意味がわかりやすい

2018/08/08(水)15:07:53.10(x4iNladl0.net)


635デフォルトの名無しさん [sage]

AAS

NG

>>634
正直クソ分かりにくい
俺がレビューしたらリジェクトするわ
WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する
そもそもメソッド名以前に、LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
キーやインデックスの方を返すような操作については特に念入りにそれがわかるような明示的な表記になるように工夫したほうがいい

2018/08/08(水)16:44:49.34(Gn4Y43YUM.net)


636デフォルトの名無しさん [sage]

AAS

NG

SelectIndexWhere()ならどうか。英国紳士にも通じると思う

2018/08/08(水)17:02:43.62(0wIwbQiXM.net)


637デフォルトの名無しさん [sage]

AAS

NG

SelectWithIndexやな

2018/08/08(水)17:20:32.65(o48M+fLoM.net)


638デフォルトの名無しさん [sage]

AAS

NG

SelectIndexFilteredByValue
これでもパッと見 ? となる人は多そう

2018/08/08(水)17:26:15.62(icN1uiHAa.net)


639デフォルトの名無しさん [sage]

AAS

NG

>>636
IndicesWhereで十分でしょ
Selectはいらんと思うw
メソッドなのに動詞じゃないのはおかしいって言ったって、組み込みのWhereだってそうだ

まあスレ違いだね。

2018/08/08(水)17:40:49.62(Uqgxm++Va.net)


640デフォルトの名無しさん [sage]

AAS

NG

>>639
誰が動詞じゃないとおかしいって?

2018/08/08(水)18:11:22.97(ucfZkVugd.net)


641デフォルトの名無しさん [sage]

AAS

NG

>>635
>WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する

そんなのはWhereでできるし

>LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
>キーやインデックスの方を返すような操作については

それもSelectでできるし
だいたい要素の値を操作していくものっていう暗黙的了解があるならWhereIndexも要素の値が対象と思うんじゃない?
なんか矛盾してね?

2018/08/08(水)18:27:19.45(x4iNladl0.net)


642デフォルトの名無しさん [sage]

AAS

NG

ほぼ同じ拡張メソッドでIndexWhereのが引っかかったわ
多分こっちの方が自然なんだろうな
一応候補だったんだが自分的にしっくりこなかったけど

2018/08/08(水)19:23:56.51(x4iNladl0.net)


643デフォルトの名無しさん [sage]

AAS

NG

>>631
ランダムアクセスできるとは限らんしっていうかLinqだとほとんど出来ない

2018/08/09(木)21:27:13.79(s67NkejU0.net)


644デフォルトの名無しさん [sage]

AAS

NG

>>643
ランダムアクセスできないコレクション扱うときにインデックスが欲しくなるケースってなかなか無いと思うけど

2018/08/09(木)22:09:58.32(VdJ1XdFa0.net)


645デフォルトの名無しさん [sage]

AAS

NG

>>644
ランキングとかページングとかか?

2018/08/10(金)23:12:00.00(AJVeRJgN0.net)


646デフォルトの名無しさん [sage]

AAS

NG

>>645
それってインデックスつけることが一つの目的じゃない?
インデックスってかソートかな?
いろんなところでいろんな処理されるコレクションがあって、その処理の殆どにインデックスが不要だけどごく一部にインデックスがほしいとき、わざわざ1行追加するのスッキリしないなぁって感じ

たった1行なんだから書きゃいいんすよ?
それはわかってるけどなんか気持ち悪いなぁって気がするだけ

2018/08/11(土)00:11:00.13(p6HuaRWz0.net)


647デフォルトの名無しさん

AAS

NG

ほとんど必要が無いインデックスだけど
ごく稀に必要になるから必要になるところでだけインデックスを追加するんだろ
ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん

2018/08/11(土)12:41:19.45(YyI+aygL0.net)


648デフォルトの名無しさん [sage]

AAS

NG

何を言ってるのか意味が分からんけど、indexって言葉の意味を知ってて言ってるのかなそれw

2018/08/11(土)14:21:00.05(WHbJdrO8a.net)


649デフォルトの名無しさん [sage]

AAS

NG

>>647
いや、linqでインデックスを付与しないけどランダムアクセスすることはあるよ?
前提変えたらそら意味通らんよ
コレクションをlinq以外で処理しちゃ駄目ルールでもあるの?

2018/08/11(土)14:23:04.22(p6HuaRWz0.net)


650デフォルトの名無しさん

AAS

NG

>>649
なにいってんだ?
IEnumerable<T>にインデックスなんてない
ないからSelectで付与するんでしょ

そんなルールはないけどほとんどほとんどLinqで済むでしょ?
Linqでサクサク処理してるのに中に突然ループが紛れ込んできたらキモいって話をしてる

var tmp = list.Where(...).OrderBy(...).ToArray();

for (int i = 0; ...) {
...
}

var result = tmp.Where(...).Select(...);

2018/08/11(土)14:36:01.31(YyI+aygL0.net)


651デフォルトの名無しさん [sage]

AAS

NG

>>650
え?ずっとそういう話をしてたのになんで突然
>ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん
って書いたの?

インデックスのないlinq処理でそれが必要になったときわざわざselectで付与するのなんか気持ち悪いねーって話よ?

2018/08/11(土)14:48:08.19(p6HuaRWz0.net)


652デフォルトの名無しさん

AAS

NG

>>651
気持ち悪いのはお前の感覚ではという話だろ
俺からすればToArrayやToListをかましてメモリとCPUを無駄にしたり余計なメソッドを追加するほうが嫌
メソッド化に関しては再利用性が高いかうまく抽象化されていて可読性が高まるというなら別だが
真にランダムアクセス性が必要なアルゴリズムならば変換せざるを得ないがそもそも今回の問題には必要がない

2018/08/11(土)14:59:36.83(YyI+aygL0.net)


653デフォルトの名無しさん [sage]

AAS

NG

>>652
うん、そうだよ
個人的に気持ち悪いなーってだけ
はじめからそういうふうにしか話ししてないつもりだけど

ランダムアクセスが不要だからあえてランダムアクセスできないコレクションを選択するの?
ランダムアクセスは不要だけどあったって使わないだけだからどっちでもいい、ってなるのが普通じゃないの?
パフォーマンス要求がシビアでランダムアクセスできるコレクションを選択することで、その要求から外れてしまう、とかいうならわかるけど

2018/08/11(土)15:12:53.25(p6HuaRWz0.net)


654デフォルトの名無しさん [sage]

AAS

NG

>>653
ランダムアクセスが不要なアルゴリズムなら「当然」IEnumerable<T>(ランダムアクセスできないコレクション)を選択するだろう
まったくもって「あえて」と言う理由が分からん
もしもSelectやWhereの引数が配列だったら普通のプログラマなら「あえて配列にしたのはなぜか」と疑問を持つだろう
なんか逆なんだよね思考パターンが

2018/08/11(土)15:28:37.80(YyI+aygL0.net)


655デフォルトの名無しさん [sage]

AAS

NG

>>654
そういうもんかー
んじゃあ使うコレクションがランダムアクセスを提供しているか否かを把握しとかないと選択できないな…

2018/08/11(土)15:33:32.78(p6HuaRWz0.net)


656デフォルトの名無しさん

AAS

NG

コレクションって言葉がダメだと思うぞ?
そもそもIEnumerableはシーケンシャルな列挙の機能しか提供しない
根本的に理解が間違ってる

2018/08/12(日)00:56:37.14(UOoEXFjMp.net)


657デフォルトの名無しさん [sage]

AAS

NG

コレクションという表現はおかしいね
無限に乱数を返すものをソースにできるし

2018/08/12(日)11:56:03.51(GZni4QRja.net)


658デフォルトの名無しさん [sage]

AAS

NG

マジレスするとメッセージ捕まえて
自力で描画すれば可能なんだけど
労力に見会わないのでお勧めしない

webやWPF, UWPならグラ弄るの簡単

2018/08/23(木)15:21:46.30(7meTQdNO0.net)


659デフォルトの名無しさん [sage]

AAS

NG

誤爆しました すみません

2018/08/23(木)15:23:43.41(7meTQdNO0.net)


660デフォルトの名無しさん [sage]

AAS

NG

のへこののけとこけノハケケノノネネサマを通り越しておりましたとが気になると7人

2018/09/09(日)16:03:02.33(RaawotRPM.net)


661デフォルトの名無しさん [sage]

AAS

NG

こねのこのねのけのねここけこそけ

2018/09/09(日)16:03:23.33(RaawotRPM.net)


662デフォルトの名無しさん [sage]

AAS

NG

doxygenみたいなドキュメント生成ツールを使うとxaml部分がまともに解析出来ません。
bindingしているviewとviewmodelの関係なんかが分かるドキュメントにしたいんですが何か良い方法ないでしょうか?

2018/09/13(木)22:10:23.24(IOzhaO6j0.net)


663デフォルトの名無しさん [sage]

AAS

NG

Func<string> func = () => { return "text"; };
var res = func();

これを一文で書くことはできますか。

ふと気になっただけではあるけれど、自分で解決できなくて気になって仕方がない。
基本的なことが分かってないような気がする。

2018/09/14(金)22:17:10.47(BClpbb6X0.net)


664デフォルトの名無しさん [sage]

AAS

NG

var res = "text";

2018/09/14(金)22:28:35.55(9WO+tdsEa.net)


665デフォルトの名無しさん [sage]

AAS

NG

>>664
まあそうなるよな

2018/09/15(土)00:16:02.34(rZVfBBf1a.net)


666デフォルトの名無しさん

AAS

NG

本当はなにをしたかったんだろう
例題が悪い気がする

2018/09/15(土)00:21:48.95(elLmwu/20.net)


667661 [sage]

AAS

NG

ああ、そうか。w

パラメータに対してちょっと複雑な変換を掛けるのだけど、汎用性がないから専用関数作るのもなんだし、
だったらラムダ式で書けばいいんじゃね?→ ラムダ式は Func 型?だから戻り値とれねーじゃん ってところから進めなった。
他にやり方はあるので出来なくてもいいのだけど、気にはなって。

2018/09/15(土)00:41:48.54(LMkhUY/p0.net)


668デフォルトの名無しさん [sage]

AAS

NG

専用関数でいいんじゃない?
複雑な処理ならそれこそ括りだしておいてわかりやすくしたほうがバグ出にくいし簡単でしょ

2018/09/15(土)01:22:08.16(rZVfBBf1a.net)


669デフォルトの名無しさん

AAS

NG

>>667
参照渡すとか?

2018/09/15(土)05:59:42.97(crViL/AR0.net)


670デフォルトの名無しさん [sage]

AAS

NG

こんなのは嬉しくないね
var pi =
  (
    (Func<double>)
    (      
      () =>
      {
        const int total = 1000000;
        var inside = 0;
        var rnd = new Random();
        for (int i = 0; i < total; i++)
        {
          var x = rnd.NextDouble() * 2 - 1; var y = rnd.NextDouble() * 2 - 1;
          if (x * x + y * y < 1) inside++;
        }
        return 4.0 * inside / total;
      }
    )
  )();

2018/09/15(土)15:15:22.99(aC3C7hdpa.net)


671デフォルトの名無しさん [sage]

AAS

NG

これも却下だな
Func<Func<double>, double> invoke = (f) => f();
var pi = invoke
  (
    () =>
    {
      const int total = 1000000;
      var inside = 0;
      var rnd = new Random();
      for (int i = 0; i < total; i++)
      {
        var x = rnd.NextDouble() * 2 - 1; var y = rnd.NextDouble() * 2 - 1;
        if (x * x + y * y < 1) inside++;
      }
      return 4.0 * inside / total;
    }
  );

2018/09/15(土)15:22:04.34(aC3C7hdpa.net)


672デフォルトの名無しさん [sage]

AAS

NG

全然関係ないけど、Randomって[0, 1]とか(0, 1)の乱数は作れないのか
半開区間だと使いづらいような気がするけどそんなことないのかな

2018/09/15(土)17:23:21.76(aC3C7hdpa.net)


673デフォルトの名無しさん [sage]

AAS

NG

言葉の意味はよくわからんが
Randomは第二引数未満の乱数発生するんじゃ?

2018/09/15(土)18:10:42.64(ghSS5jwya.net)


674デフォルトの名無しさん [sage]

AAS

NG

docsにもあるけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.random?redirectedfrom=MSDN&view=netframework-4.7.2
dobonの方が分かりやすいし読みやすいから
https://dobon.net/vb/dotnet/programing/random.html の
//0.0以上1.0未満の乱数を倍精度浮動小数点数で返す
Double d = r.NextDouble();
>>672こういう意味とは違うの?
整数範囲で出して割った方が範囲や有効桁も決められるからそっちの方がよさそうな気もする

2018/09/15(土)18:34:42.22(nwnNkRfe0.net)


675デフォルトの名無しさん [sage]

AAS

NG

[0, 1]とか(0, 1)は数学の記号ね(多分高校1年ぐらいで習ってるはずw)

Random.DoubleNextの戻り値は[0, 1)(つまり0≦x<1)らしい
普段乱数使うようなコード書いてないからよく分からんけど、
0≦x≦1とか0<x<1でないと困る場面も多いんじゃないかなと思っただけ

2018/09/15(土)18:56:24.76(aC3C7hdpa.net)


676デフォルトの名無しさん [sage]

AAS

NG

えなんかめんどくさいからもういいよ

2018/09/15(土)19:01:32.64(Bg+wr9i5a.net)


677デフォルトの名無しさん [sage]

AAS

NG

有効桁区切るのと一緒で丸め、切り上げ、切り捨てしたらいいだけでは
Random自体C#で使う場面に出くわしたことないからあまり考えないな

2018/09/15(土)19:05:58.75(nwnNkRfe0.net)


678デフォルトの名無しさん [sage]

AAS

NG

game engineだとか[]の乱数あったりするよ
()は見たことない
コーディングしてたらわかるけど利用場面は圧倒的に少ない

2018/09/15(土)20:19:51.91(Fr67tYwB0.net)


679デフォルトの名無しさん [sage]

AAS

NG

>>667
> パラメータに対してちょっと複雑な変換を掛けるのだけど
と言うなら例もパラメーター使ってる例を書かなきゃ

>>670
俺もこれしか思いつかなかった
そもそも
var f = (string x) => { return "abc" + x; };
位は型推論してくれてもいいと思うんだけど難しいのかな?

2018/09/15(土)20:30:38.93(OUVvcRON0.net)


680デフォルトの名無しさん [sage]

AAS

NG

>>675
例えば0〜9の整数乱数がほしい時に[0,1)なら10倍して整数部分を取るだけだけど(0,1)とか[0,1]だとすごく面倒

2018/09/15(土)20:39:04.65(OUVvcRON0.net)


681デフォルトの名無しさん

AAS

NG

面倒だったら擬似乱数生成器を自分で作ればいい
キミラ程度が使う程度の擬似乱数だったら数行コピペでできる程度のもんで十分だからな

2018/09/15(土)20:42:09.91(KIanXBkQ0.net)


682デフォルトの名無しさん [sage]

AAS

NG

>>667
ローカル関数じゃだめなん?

2018/09/15(土)20:49:32.65(Xc5RKOnR0.net)


683デフォルトの名無しさん

AAS

NG

https://ideone.com/PJDFVv

この程度で十分

2018/09/15(土)20:53:08.93(KIanXBkQ0.net)


684デフォルトの名無しさん [sage]

AAS

NG

>>681, >>683
バカは絡んでくるな

2018/09/15(土)21:33:37.63(OUVvcRON0.net)


685デフォルトの名無しさん [sage]

AAS

NG

>>682
本来必要のない名前を考えるのが面倒
そもそもローカル関数にするぐらいなら>>663とたいして変わらんし

2018/09/15(土)21:35:49.16(OUVvcRON0.net)


686デフォルトの名無しさん

AAS

NG

やっぱり低学歴知恵遅れは
内側の擬似乱数生成器をかえるだけの話なのがわかってないわ

きっと擬似乱数がなんなのかすらわかってないわ
擬似乱数がなんなのかわからずに乱数()とかいって数字使ってる程度だからな

2018/09/15(土)21:37:43.29(KIanXBkQ0.net)


687デフォルトの名無しさん

AAS

NG

つまり
コレがC#なんか使ってるヤツラのオツムの程度

2018/09/15(土)21:39:33.01(KIanXBkQ0.net)


688デフォルトの名無しさん

AAS

NG

>>675
(0,1)は[0,1)が0ならやりなおし、でいいんじゃないのと単純に思ったがそんなものじゃない?

2018/09/15(土)21:40:44.62(qw6mr0Vb0.net)


689デフォルトの名無しさん

AAS

NG

そもそも機械イプシロンのこと分かってて
ああいうレスしてるようにはまったく見えないからな

2018/09/15(土)22:05:16.77(KIanXBkQ0.net)


690デフォルトの名無しさん [sage]

AAS

NG

>>688
発生側はそれでいいとしてそれを必要とする機会がどんだけあるの?
って話かと

2018/09/15(土)22:52:03.88(OUVvcRON0.net)


691661 [sage]

AAS

NG

気に掛けてくれた方々に。ありがとう。

>>670
ああ。なるほど。型を明示してあげたらよかったのか。
キャストを加えたら期待通りに書くことが出来ました。ありがとうございます。

これってラムダ式を var で宣言した変数に代入できなかったことがヒントになり得たんだな。頭が回ってなかった。
これくらいは型推論してくれても良さそうなのにとは原因が分かった後での負け惜しみ。

>>668,682
今回のはそういうことが出来そうなのに出来なくて悶々としてしまって。
実用性度外視で原因を知りたかったの。

2018/09/15(土)23:10:36.43(LMkhUY/p0.net)


692デフォルトの名無しさん [sage]

AAS

NG

今ならref/outがないならAction/Funcに型推論して
シグネチャが同じdelegate間の暗黙の型変換が行われる
初期化時に左辺とかキャストとかでdelegate型が明示されてたらそのdelegate型でnewされる
でいいと思うよな〜

2018/09/16(日)10:09:07.69(QiF2mi6W0.net)


693デフォルトの名無しさん [sage]

AAS

NG

Visual C#ってDelphiみたいに同じコードでWindows用とMac用にビルドできる?
マシンは両方用意できるとして

2018/09/19(水)06:50:46.79(luZsj3k/0.net)


694デフォルトの名無しさん [sage]

AAS

NG

Visual C#って具体的にはどのフレームワークを指してるのかい?

2018/09/19(水)07:42:00.17(JcyGHTPld.net)


695デフォルトの名無しさん [sage]

AAS

NG

可能

2018/09/19(水)10:08:17.18(WBt1GswEM.net)


696デフォルトの名無しさん [sage]

AAS

NG

>>693
コンソールアプリなら同じコードでどっちでも動くはずだけどGUIはよくわかんない
Xamarin Forms使えばいけるのかな?

2018/09/19(水)12:41:26.38(9aNAf/d20.net)


697デフォルトの名無しさん [sage]

AAS

NG

多分ASP.NETを使ってGUIのWebSocketクライアントを作る予定です
ありがとうございます

2018/09/19(水)13:59:56.78(luZsj3k/0.net)


698デフォルトの名無しさん [sage]

AAS

NG

MacでWebSocket??????
ちょっと何言ってるかわかんないですね

2018/09/19(水)14:05:07.91(8sfFLOeb0.net)


699デフォルトの名無しさん [sage]

AAS

NG

下みたいなことって出来ます?
やりたいのは object 型の変数に代入したジェネリック系のインスタンスを、さらに元のジェネリックの型にキャストし直すってことなんですが。

void func( object dic )
{
var tmp = (Dictionary)dic;  // ← これみたいなことをやる方法がないかなと
tmp.Add( "test", new object() );
}

var dic = new Dictionary< string, object >();
func( dic );

2018/09/26(水)21:52:32.99(rAzbq+Jy0.net)


700デフォルトの名無しさん [sage]

AAS

NG

as

2018/09/26(水)23:15:04.62(dHSM7pQD0.net)


701デフォルトの名無しさん [sage]

AAS

NG

anal

2018/09/26(水)23:17:13.70(+un+mAjX0.net)


702デフォルトの名無しさん [sage]

AAS

NG

>>700
言葉が足りてなかった。申し訳ない。

例示のケースの場合は、
var tmp = (Dictionary<string,object>)dic;
と指定すれば出来るのだけど、Dictionary だけでキャストし直すみたいなコトできないかなって。
as でも Dictionary だけではキャストできないことは確認しました。

2018/09/27(木)00:24:29.22(WuETTr790.net)


703デフォルトの名無しさん [sage]

AAS

NG

出来たとして何の意味があるのそれw
そもそもHoge<int>より大きなHoge<T>とかHogeって型が存在するわけじゃないでしょうw
根本的に勘違いしてないか

2018/09/27(木)00:30:38.46(5qvGm4LBa.net)


704デフォルトの名無しさん [sage]

AAS

NG

genericsでないDictionaryは存在しないからでしょ。
genericsパッケージでないほうのHashtableならできると思うけど安全性を損ねるしやらんほうがいいんじゃね

2018/09/27(木)08:41:34.87(649yR4/AM.net)


705デフォルトの名無しさん [sage]

AAS

NG

IDictionaryならあるよ
キャスト時にいちいち型引数を書くのが面倒ぐらいの意味しかないけど

2018/09/27(木)12:20:51.28(/G4FYlhv0.net)


706デフォルトの名無しさん [sage]

AAS

NG

>>702
を読み直してみると、ひょっとして要するにジェネリックの型パラメータを書くのが面倒臭いから
省略できないか?、って言いたいのかな

それなら答えは「できないけど仮に出来たとしても絶対やるな」じゃないの?

もちろん、
using Dictionary = System.Collections.Generic.Dictionary<string, object>;
こういうエイリアスは書けるはずだと思うけど

何にしろ、質問は他人が読んで分かるように書いて欲しいよね

2018/09/27(木)12:48:53.74(sTtGwCQ3a.net)


707デフォルトの名無しさん [sage]

AAS

NG

型安全性を無視していいならdynamic使え
そうじゃないなら出来てもやるな

つかジェネリックを勘違いしてるんじゃね

2018/09/27(木)17:14:16.27(kGqzP/YO0.net)


708デフォルトの名無しさん [sage]

AAS

NG

それによって何がしたいのかを書いてくれないと何言ってるかわからんよな

2018/09/27(木)17:21:14.85(Q+zVeK5uM.net)


709697 [sage]

AAS

NG

ありがと。
やっぱり dynamic 使うしかないかな。避けたかったのだけど。

なにが入ってるか分からない配列の中身を文字列化してログ出力したかったの。(最初は)
object[] の要素の中身が generic だったりしたときに ToString() だとクラス名?にしかならないから。

2018/09/29(土)00:47:34.72(EY+8Y7mF0.net)


710デフォルトの名無しさん [sage]

AAS

NG

なんで何が入ってるかわからない配列なんてもんを触るんだ
静的型付け言語のメリット台無しやんけ

2018/09/29(土)03:23:52.22(BJdQm5Iw0.net)


711デフォルトの名無しさん [sage]

AAS

NG

何が入っているかわからないものを扱いたいと言っていながら一方でdynamicは避けたいというのが
よくわからんなぁ。避けてどうしたかったんだろうか。

2018/09/29(土)09:01:26.24(FmliS3qN0.net)


712デフォルトの名無しさん [sage]

AAS

NG

単に dynamic が嫌いだったのから。w

2018/09/29(土)11:56:45.30(EY+8Y7mF0.net)


713デフォルトの名無しさん [sage]

AAS

NG

ふーん。頭が悪いからじゃなかったのか

2018/09/29(土)12:32:33.34(3Hj8wsg1M.net)


714デフォルトの名無しさん [sage]

AAS

NG

たぶんjsとかの感覚で言ってるんじゃないかと

2018/09/29(土)14:34:45.14(9IdCJ4nKM.net)


715デフォルトの名無しさん [sage]

AAS

NG

でもJSも実行時に型を判断できるし、逆の意味で大して変わらんと思う。

2018/09/29(土)14:42:39.43(FmliS3qN0.net)


716デフォルトの名無しさん [sage]

AAS

NG

あれ? dynamic って推奨だったの?
おまえらがどういう場面で使ってるのか教えてくれ。

2018/09/29(土)15:07:47.86(EY+8Y7mF0.net)


717デフォルトの名無しさん [sage]

AAS

NG

デシリアライズでもするつもりだったんじゃねの
クッソ面倒なんだよな実際

2018/09/29(土)16:47:06.91(rkT/I8Hma.net)


718デフォルトの名無しさん [sage]

AAS

NG

ん?
> なにが入ってるか分からない配列の中身を文字列化してログ出力したかったの。(最初は)
じゃねーの?

2018/09/29(土)16:56:30.70(X4waiIaR0.net)


719デフォルトの名無しさん [sage]

AAS

NG

もういいでしょw
たぶん何か勘違いしてるだけだと思うよ

俺もプログラミング初めて2,3年は静的/動的とかコンパイル時/実行時の違いとか
分かってるようでよく分かってなかった

2018/09/29(土)18:05:26.03(w5r/wslsa.net)


720デフォルトの名無しさん [sage]

AAS

NG

結局なにがしたいのか伝わってこない上に
微妙にムカつく上から目線

2018/09/29(土)19:25:50.32(rSQsiXYHa.net)


721デフォルトの名無しさん [sage]

AAS

NG

それは此処の仕様。

2018/10/06(土)12:04:22.29(upBech+00.net)


722デフォルトの名無しさん [sage]

AAS

NG

そろそろ.NET標準でDDSのデコードできるようになってくれないかな
エクスプローラーでは普通に表示されるんだから
できればBC6と7までw

2018/10/07(日)19:19:55.60(QvnX76F+0.net)


723デフォルトの名無しさん [sage]

AAS

NG

>>722
DDS?

2018/10/07(日)19:43:24.02(mZPrgRqf0.net)


724デフォルトの名無しさん [sage]

AAS

NG

>>696
あれ、C#って、マルチプラットフォームじゃなかったの?

Java は、Windows, Mac, Linux, iOS, Android, Chrome, Firefox, IE, どれでも
動いたよね、昔は。

2018/10/16(火)15:29:49.78(gfGA4Hi30.net)


725デフォルトの名無しさん [sage]

AAS

NG

Javaもクライアントアプリ分野から撤退したから今はクロスプラットフォーム度でいえばC#のほうが上なくらい(あくまでカタログスペック上は)
C#はWebかコンソールアプリなら.NET Core使えばLinuxやMacで動く
スマホやMac向けのGUIアプリならXamarinだな

2018/10/16(火)16:00:38.35(y5q0bWlwM.net)


726デフォルトの名無しさん [sage]

AAS

NG

Unityも忘れるな!
mono様々やな

2018/10/16(火)16:22:14.98(qWHG2Ppw0.net)


727デフォルトの名無しさん [sage]

AAS

NG

普及度とかマルチプラットフォームとかどうでもいいけど
Windows使っていて個人的に何かちょっと作ろうと思ったときに、もうC#以外考えられない体になってしまった

2018/10/21(日)20:25:55.35(5Xb93YKt0.net)


728デフォルトの名無しさん [sage]

AAS

NG

おれはpythonかなー
スクリプト言語はほんま楽やで
客先でインスト制限きつい時はC#とPowerShell
Microsoftさんは早くVSCodeとdotnet cliをWindows標準にしてPowerShellを強制アプデすべき

2018/10/21(日)20:37:33.56(MDetJiiMa.net)


729デフォルトの名無しさん [sage]

AAS

NG

おまんらWPF使ってる?

2018/10/21(日)21:09:20.78(FxDWQZOn0.net)


730デフォルトの名無しさん [sage]

AAS

NG

うん

2018/10/21(日)21:09:38.83(t4QZh6l3d.net)


731デフォルトの名無しさん [sage]

AAS

NG

>>729
個人で使ったけど、これを社内外で使わせるにはMVVMきっちり教えないと破綻確実だから諦めた

2018/10/21(日)21:34:18.47(fYYBLspX0.net)


732デフォルトの名無しさん [sage]

AAS

NG

>>728
確かに楽だな。 < python
Web API を叩くプログラムをこれで書いたけど、学習まで含めてすぐ出来た。w
VS 上でも書けるのが楽さに拍車を掛けてる。

>>729
うん。でも最近はやってないな。そーいえば。

2018/10/21(日)22:39:29.79(eTSVpSn40.net)


733デフォルトの名無しさん [sage]

AAS

NG

>>729
使ってる。
チームとして採用するのは難しいかもね。

2018/10/21(日)22:44:00.95(GgFjLBNe0.net)


734名無しさん@そうだ選挙に行こう! Go to vote! [sage]

AAS

NG

>>733
どうして?
学習コストの高さ?

2018/10/22(月)07:55:37.83(D227Fdyd0.net)


735名無しさん@そうだ選挙に行こう! Go to vote! [sage]

AAS

NG

そうです。
XAMLとか慣れるまで大変だし、やっぱり簡単なFORMになるんじゃないかな。

2018/10/22(月)08:11:55.33(vkGCn3UdM.net)


736デフォルトの名無しさん [sage]

AAS

NG

レイアウトはFormよりWPFの方が楽だと思うんだけどな
Formばかりやってたチームだと学習コストが高くて難しいのはある

2018/10/22(月)12:06:51.16(DqwlPEpNa.net)


737デフォルトの名無しさん [sage]

AAS

NG

XAMLはVS補佐がまだまだ足りない
昔の落ちまくりよりは格段に進歩はしたが

2018/10/22(月)12:25:16.33(+Bt5JEYG0.net)


738デフォルトの名無しさん [sage]

AAS

NG

Formやる前にWPFから入った俺は異端

2018/10/23(火)06:15:06.44(oKq5ee0m0.net)


739デフォルトの名無しさん [sage]

AAS

NG

formは過去の遺産だから、これからやるならWPFが正統だ。

2018/10/23(火)12:11:12.26(Z3T8y8K/M.net)


740デフォルトの名無しさん [sage]

AAS

NG

>>737
Blendを使ってください、ってことなんだろうけどなぁ

2018/10/23(火)12:32:04.49(0EGfRFOMa.net)


741デフォルトの名無しさん [sage]

AAS

NG

WPF自体は終わってるよね
次の本命が無いから使うしか無いだけで

2018/10/23(火)12:42:28.83(Q+FZ+yEYM.net)


742デフォルトの名無しさん

AAS

NG

なお、どこも新規開発はFormの模様

2018/10/23(火)12:52:00.65(Hcq+1RfE0.net)


743デフォルトの名無しさん [sage]

AAS

NG

MSのイチオシはUWPだしコントロールは充実しているんだけどね
TreeViewは完成したし、後はDataGridの完成を待つだけだ

2018/10/23(火)12:56:27.59(eyu+kwgc0.net)


744デフォルトの名無しさん [sage]

AAS

NG

全然未完成じゃねーか

2018/10/23(火)14:20:00.03(oKq5ee0m0.net)


745デフォルトの名無しさん [sage]

AAS

NG

最近のMSはだいたい未完成
ちょうどGithubもやらかしたし、Azureのサービスなんかガチで世に出しちゃいけないレベルのものが大半

2018/10/23(火)14:36:28.72(cDc5Fd7gM.net)


746デフォルトの名無しさん [sage]

AAS

NG

未完成の物をとりあえず出して、
バージョンアップで完成させてくのが昔からのビジネスモデルやろw

2018/10/23(火)15:11:27.54(BR1ycnzw0.net)


747デフォルトの名無しさん [sage]

AAS

NG

アジャイル

2018/10/23(火)15:12:45.43(dmXi8fk90.net)


748デフォルトの名無しさん [sage]

AAS

NG

新規開発もFormになるのは人集めの都合だよ。

2018/10/23(火)15:51:37.07(Z3T8y8K/M.net)


749デフォルトの名無しさん [sage]

AAS

NG

>>741
終わってるってどういうこと?

2018/10/23(火)16:28:52.85(9gwDvhi80.net)


750デフォルトの名無しさん [sage]

AAS

NG

>>749
どういうこともクソもWPFは5年くらい前にとっくに開発終了してメンテナンスモードだよ

2018/10/23(火)16:45:50.67(cDc5Fd7gM.net)


751デフォルトの名無しさん [sage]

AAS

NG

>>750
ソースは?
.NET Core3.0知らないの?

2018/10/23(火)16:46:49.17(9gwDvhi80.net)


752デフォルトの名無しさん [sage]

AAS

NG

>>751
ソースは.NET 4.5以降のリリースノートだよ
何か気になる新機能はありましたか?

2018/10/23(火)16:51:18.62(cDc5Fd7gM.net)


753デフォルトの名無しさん [sage]

AAS

NG

>>752
で、「終わってる」だなんてMicrosoftはリリースノートに書いてるのかい?
しかも.NET Coreは都合が悪いから無視ときたもんだ…

2018/10/23(火)17:16:53.27(9gwDvhi80.net)


754デフォルトの名無しさん

AAS

NG

Core3.0まで出てるんだ
なんか使いやすくなった?

2018/10/23(火)17:39:47.89(PWuDtLsGa.net)


755デフォルトの名無しさん [sage]

AAS

NG

WPFが終わってるならFormは死んでる。
しかし、ゾンビ技術者がウヨウヨいるから需要はあるのかも。

2018/10/23(火)17:40:45.51(Z3T8y8K/M.net)


756デフォルトの名無しさん [sage]

AAS

NG

>>753
CoreのWPF対応ってWPFをCore向けにビルドしてNuGetで入れられるようにするだけだぞ?
WPF自体の新機能ではないよ

2018/10/23(火)17:55:40.99(cDc5Fd7gM.net)


757デフォルトの名無しさん [sage]

AAS

NG

>>756
必死に調べて理解したのはそれだけ?

「終わっている」プロジェクトに対してそんなことしないだろ

2018/10/23(火)18:06:42.97(9gwDvhi80.net)


758デフォルトの名無しさん [sage]

AAS

NG

平日に役に立たない言い争いしている奴らが終わってる

2018/10/23(火)18:19:29.54(mVZ7w/wV0.net)


759デフォルトの名無しさん [sage]

AAS

NG

WPFの機能追加は終わってる
なら正しいかもしれない

2018/10/23(火)20:09:28.44(AlQfFCDV0.net)


760デフォルトの名無しさん [sage]

AAS

NG

>>754
せっかく切ったWPFとFormアプリ復活・・・

2018/10/23(火)20:46:15.68(duwPtJnv0.net)


761デフォルトの名無しさん [sage]

AAS

NG

業務系ならありがたいね
ランタイム依存なしでForms使えるんだろ
ブラウザ要らないじゃん

2018/10/23(火)20:53:51.51(T5C69wUW0.net)


762デフォルトの名無しさん [sage]

AAS

NG

>>761
デプロイどうすんの?アップデートの度に君が出向いて客のPCでZip解凍して回るの?
それが面倒だからWebなのに、それが.NET Coreになったところで何も解決しないよ
というかClick Onceが無くなる分だけ状況は悪くなるな

2018/10/23(火)21:26:47.62(+h1AjSvua.net)


763デフォルトの名無しさん [sage]

AAS

NG

自前でアップデート処理を実装すれば問題なし

2018/10/23(火)21:29:43.70(TLuMxHqO0.net)


764デフォルトの名無しさん [sage]

AAS

NG

>>762
>Click Onceが無くなる
ソース出してみ

2018/10/23(火)21:33:45.87(9gwDvhi80.net)


765デフォルトの名無しさん [sage]

AAS

NG

>>764
悪魔の証明を求められても困る
.NET CoreでClick Onceが使えるソースを出すのは君の仕事だ
当たり前だけど、FullFWのClick Onceを使うという本末転倒な方法は無しで頼むぞ

2018/10/23(火)21:43:47.63(+h1AjSvua.net)


766デフォルトの名無しさん

AAS

NG

.NET Coreって仕事で使う?

2018/10/23(火)21:57:45.44(NgQNKVM70.net)


767デフォルトの名無しさん [sage]

AAS

NG

>>765
妄想おつw

2018/10/23(火)21:59:32.82(9gwDvhi80.net)


768デフォルトの名無しさん [sage]

AAS

NG

>>766 
もちろん使ってるよ

2018/10/23(火)21:59:56.85(9gwDvhi80.net)


769デフォルトの名無しさん [sage]

AAS

NG

>>765
断定してたからそんなアナウンスもうされたのかと思ったのに…思い込みが激しいと周りが苦労するね

2018/10/23(火)22:02:41.25(Eu3QtAGFd.net)


770デフォルトの名無しさん [sage]

AAS

NG

まあプレリリースまでもうすぐだから期待してるよw

2018/10/23(火)22:16:19.58(+h1AjSvua.net)


771デフォルトの名無しさん [sage]

AAS

NG

そだねー

2018/10/23(火)22:34:00.35(9gwDvhi80.net)


772デフォルトの名無しさん [sage]

AAS

NG

WPFが.net coreに対応したといってもlinaxで動くわけではないんだよね?
じゃあなんの意味があるの?

2018/10/23(火)23:26:45.20(bb2jvxz40.net)


773デフォルトの名無しさん [sage]

AAS

NG

>>772
linaxって何?

2018/10/24(水)00:56:19.20(Zhd8G0p80.net)


774デフォルトの名無しさん [sage]

AAS

NG

>>772
ググれないの?

2018/10/24(水)01:29:36.25(nEIaPqDo0.net)


775デフォルトの名無しさん [sage]

AAS

NG

ライトなトイレメーカー

2018/10/24(水)04:16:13.88(lspkKr8a0.net)


776デフォルトの名無しさん [sage]

AAS

NG

同じプログラムを2台のPCで動かしたら、スペックのいい方が断トツ実行速度が遅いんだけど、何かチューニングするとこある?

2018/10/25(木)08:07:19.33(nll2w7iZM.net)


777デフォルトの名無しさん [sage]

AAS

NG

ログ仕込め

2018/10/25(木)08:25:20.58(LYsln+4LM.net)


778デフォルトの名無しさん [sage]

AAS

NG

>>776
裏で怪しげなの動かしてるんだろ

2018/10/25(木)09:13:35.22(Jq5IeBu60.net)


779774 [sage]

AAS

NG

特に怪しいものなんか動いてないと思うんだけどなぁ
アンチウイルスの保護停止しても変わらない

こんなときに効果的なログの張り方ってある?
一部がネックなのではなく、もう全部が緩慢な感じ

2018/10/25(木)12:22:26.50(nll2w7iZM.net)


780デフォルトの名無しさん [sage]

AAS

NG

適当なとこにログ仕込んで狭めて行けばええやろ

2018/10/25(木)12:26:06.77(U/6911CyM.net)


781デフォルトの名無しさん [sage]

AAS

NG

例えばウィンドウズサーチとか重たいよね
リソース逼迫してないなら
ディスクI/OやネットワークI/Oや
ネットワーク構成が違うとかかね
全体的に緩慢となるとなあ

ヒント欲しいならもっと情報ださないとダメよ

2018/10/25(木)12:28:31.91(LYsln+4LM.net)


782デフォルトの名無しさん [sage]

AAS

NG

タスクマネージャーあけてぼーっと眺めておくとひょっとしたらと。
で、スペックはどんなもんなの?

2018/10/25(木)13:18:57.91(Jq5IeBu60.net)


783デフォルトの名無しさん [sage]

AAS

NG

debugとreleaseだと速度違うんだっけ?

2018/10/25(木)13:56:04.51(m3i6L9YGM.net)


784デフォルトの名無しさん

AAS

NG

>>783
全然ちゃうで

2018/10/25(木)15:08:46.52(qGEaBy7DM.net)


785デフォルトの名無しさん [sage]

AAS

NG

そういうオチ

2018/10/25(木)16:37:44.59(LYsln+4LM.net)


786デフォルトの名無しさん [sage]

AAS

NG

debugとreleaseてそんなに違うの?おれのfizzbuzz100までどっちも一瞬だったよ

2018/10/25(木)16:59:50.46(/kJ20XbY0.net)


787デフォルトの名無しさん [sage]

AAS

NG

ネタをネタと見抜けないと
レスするのは難しい

2018/10/25(木)17:51:08.23(LYsln+4LM.net)


788デフォルトの名無しさん [sage]

AAS

NG

スレチかもしれんけど、まだサポートしてないバージョンのアセンブリで定義されてるクラスをリフレクションでもいいから使う方法ってないかな。
具体的にはフレームワークのバージョンが2.0しか許可されない職場でxdocumentを使う方法…
dllを隣に持ってきて参照しても、型自体を認識してくれない

2018/10/26(金)00:26:15.60(/Y6tHm6z0.net)


789デフォルトの名無しさん

AAS

NG

>>786
100万データ処理してから物言いなさい

2018/10/26(金)00:59:31.47(HrTWAmck0.net)


790デフォルトの名無しさん [sage]

AAS

NG

64bitアプリから32bitアプリへ効率よく通信したいのですが、良い方法ありますか?
今はPostMessageを考えてますが型が合ってないので違う方法を探してます。

2018/10/26(金)12:40:20.23(Ho1Po0zEM.net)


791デフォルトの名無しさん [sage]

AAS

NG

UWPだとreleaseとdebugでちがいそうだけど。デフォルトだとreleaseは.net nativeでコンパイル。debugは違う

2018/10/26(金)12:40:41.09(gXWoxuJ30.net)


792デフォルトの名無しさん [sage]

AAS

NG

>>790
TCP使えば?
直接叩くのが嫌ならgRPCとか使えばいい
WCFや.NET Remotingという手もあるけど、どちらもレガシー扱いで.NET Coreからは廃止されたから新規に使うのはお勧めしないな

2018/10/26(金)12:50:01.52(RVLSOnVjM.net)


793デフォルトの名無しさん [sage]

AAS

NG

gRPCいいよね
magiconionもあるよ

2018/10/26(金)13:06:48.12(1HfiCU8QM.net)


794デフォルトの名無しさん [sage]

AAS

NG

HttpListenerってあったよね

2018/10/27(土)10:20:41.86(ZWpnR1MN0.net)


795デフォルトの名無しさん [sage]

AAS

NG

Core世代のWCFや.NET Remotingの代替って何があるんだろ

2018/10/27(土)10:52:44.45(bFJ5s+tL0.net)


796デフォルトの名無しさん [sage]

AAS

NG

普通にRESTか、クラウドプラットフォームが提供するメッセージキュー(SQSとか)などの外部サービスだよ
余計な囲い込みを廃して今時のWebシステムの構成要素として組み入れやすくするというのがCoreなんだから、今更.NET固有のRPCなんか要らん

2018/10/27(土)11:23:19.53(zH3PfDR1a.net)


797デフォルトの名無しさん [sage]

AAS

NG

dllを修正する際にどの程度までの修正であれば問題ないかまとめてある
サイトってありますか?
dllのクラスの派生元に一つクラスを挟んだ修正では問題なく動いている
ようだったので・・・。

2018/11/05(月)18:13:53.94(PEqFXj+e0.net)


798デフォルトの名無しさん [sage]

AAS

NG

ライセンス読んで

2018/11/05(月)19:00:13.51(1Mw8aOkb0.net)


799デフォルトの名無しさん [sage]

AAS

NG

>>797
逆に使えなくなる場合は(マネージドdllで)厳密な名前付きアセンブリとして作ってある物が名前などが変わってしまった場合
厳密な名前付きアセンブリ
https://docs.microsoft.com/ja-jp/dotnet/framework/app-domains/strong-named-assemblies
>厳密な名前付きのアセンブリを参照すると、バージョン管理や名前の一意性を保護できるなどの利点を期待できます
それ以外は変更のないクラスやフィールドにアクセスする分には問題にならないはず

2018/11/05(月)19:16:09.78(W+eHh5+20.net)


800デフォルトの名無しさん [sage]

AAS

NG

>>799
情報ありがとう。
あまり厳密にはしたくないのですがリンク先を
よく読んでみます。

2018/11/07(水)00:50:27.11(8OYVWtUM0.net)


801デフォルトの名無しさん [sage]

AAS

NG

Monoの互換性についてなのですが、
Visual studio2017でWindowsクラシックデスクトップのWindowsフォームアプリケーション(.Net Framework)で書いたコードは
そのままMonoでコンパイルできるという認識であってますか?

2018/11/07(水)16:08:10.06(Qrgo3xvC0.net)


802デフォルトの名無しさん

AAS

NG

>>801
できるし、VisualStudioでコンパイルしたものをMonoでコンパイル直す必要すらない建前なんだけど・・・・
実際には対応状況にかなりの差があってGUIアプリケーションやら暗号やらが絡むものについてはうまくいかない事が多い

2018/11/10(土)05:02:04.09(ZJVvB/9K0.net)


803デフォルトの名無しさん [sage]

AAS

NG

>>802
そうだったんですね
ありがとうございます

2018/11/10(土)18:24:39.80(yl+mwE+c0.net)


804デフォルトの名無しさん [sage]

AAS

NG

引数を変更不能にできないのって何か理由あるの?

2018/11/10(土)21:29:39.44(BfX4LnOFa.net)


805デフォルトの名無しさん [sage]

AAS

NG

>>804
最近は条件付きでできるよ

C# in 引数

2018/11/10(土)22:01:19.43(eyW0451M0.net)


806デフォルトの名無しさん [sage]

AAS

NG

Javaのリモートデバッグは

1. 起動オプションでデバッグ用のリモートポートを指定
2. デバッガで同じポートを指定してアタッチ

でできますが
C#(DotNet Core 2.1)では同じような事は出来ませんか?
運用環境でしか発生しないバグのデバッグってどうやればいいんでしょうか?

2018/11/11(日)10:14:46.52(zL+4Qkmba.net)


807デフォルトの名無しさん [sage]

AAS

NG

>>806
リモート側にリモートデバッガ入れるとか
運用環境ということだからそもそもデバッグビルド入れられるか知らんが
まぁ、ログ仕込め

2018/11/11(日)12:52:12.52(EeRGHZk70.net)


808デフォルトの名無しさん [sage]

AAS

NG

同じLAN内ならプロセスアタッチで行けそうだが
試してないから知らん

2018/11/11(日)15:47:26.43(6jAVVbmKa.net)


809デフォルトの名無しさん [sage]

AAS

NG

Unity って、Wikipedia によれば、600,000 (60万人) も、登録ユーザーがいて、
従業員が、2,000人以上、年間利上げが、100億円を超えるほどあるとされる。

ゲームエンジン Unity の使用料は、
・1,000万円までの売り上げなら、無料。
・2,000万円までの売り上げなら、年間5万円ほど。
・それ以上の売り上げなら、で年間18万円ほど。
とある。

でも、Wikipediaに載ってる Unity を使ったゲームのリストは、
100本あるかどうか程度しかない。

これだと、Unityには、年間2,000万円程度の収入にしかならないのでは
ないかと思う。

それに、アメリカですらプロのプログラマは、30万人くらいしかいない
とされることとも辻褄が合わないように思える。


なんかおかしくない?

2018/11/15(木)15:41:42.81(hjFVqahJ0.net)


810デフォルトの名無しさん [sage]

AAS

NG

基準がwikipediaなのが謎だけど
steamとか見てみなよ
それに×人数だから実際はもっと高い

2018/11/15(木)16:09:30.56(DsJildR5M.net)


811デフォルトの名無しさん [sage]

AAS

NG

>>810
>それに×人数だから実際はもっと高い

探したけど出てこなかった。どこに書いてある?

2018/11/15(木)16:30:30.62(hjFVqahJ0.net)


812デフォルトの名無しさん [sage]

AAS

NG

そもそもUntiyはプログラマ以外も使うから小さい会社でもアカウントはそこそこもってるようなこともあるよ

2018/11/15(木)17:43:06.03(tBfV11FV0.net)


813デフォルトの名無しさん [sage]

AAS

NG

>>812
プログラマ以外は何のために訪れる??

2018/11/15(木)17:50:09.14(hjFVqahJ0.net)


814デフォルトの名無しさん [sage]

AAS

NG

最近スマホアプリのtop100くらいまでの使用エンジン調査した記事あった気がしたんだけど見つからんかった
たぶん半分くらいがunity製だった気がする
PCでもUnity製増えてきてるしswitchにもそこそこ出てる
日々山ほどのゲームがリリースされてるのにwikipediaで全てを網羅できるわけないと思うんだけど、なんで自分がおかしいと思わなかったの?

2018/11/15(木)17:52:04.91(tBfV11FV0.net)


815デフォルトの名無しさん [sage]

AAS

NG

>>813
訪れる?利用するんじゃないの?
ディレクタやプランナがUnity上でプレイすることもあるし、CGデザイナやUIデザイナがUnity上で作業することもある
もちろん3Dモデリングなんかは専用のツールのほうが作業はしやすいけどね

2018/11/15(木)17:56:18.66(tBfV11FV0.net)


816デフォルトの名無しさん [sage]

AAS

NG

っていうか普通の企業なら間違いなく年間売上2000万なんて超えるよ?
安く済ませられるのなんて個人事業主か同人サークルだけ
社員が5人でもいたらまず年間売上で引っかかるんだから
大きい企業なら普通に100単位でアカウント持ってるし、小さいところでも10以上持ってるとこなんて山ほどある

2018/11/15(木)18:00:10.49(tBfV11FV0.net)


817デフォルトの名無しさん [sage]

AAS

NG

アカウントって、1つのゲームに対して、ひとつだけじゃないの?
開発者の人数分???

2018/11/15(木)18:12:20.13(hjFVqahJ0.net)


818デフォルトの名無しさん [sage]

AAS

NG

>>817
開発者分必要
ライセンス読んで
あとここUntyスレじゃないよ

2018/11/15(木)18:14:07.61(tBfV11FV0.net)


819デフォルトの名無しさん [sage]

AAS

NG

ガイジっぽい

2018/11/15(木)20:22:13.71(biHRXo8wM.net)


820デフォルトの名無しさん [sage]

AAS

NG

年間売上2000万じゃ底辺3人雇うのが精一杯だな。

2018/11/15(木)20:41:27.20(8sDmawlrM.net)


821デフォルトの名無しさん [sage]

AAS

NG

1人でも無理あるだろ

2018/11/15(木)20:45:05.56(fRq//2+J0.net)


822デフォルトの名無しさん [sage]

AAS

NG

背理法で証明して見せたかっただけだよ。
つまり、矛盾を示す事で、間違い/捏造であることを証明する手法。

だから、ありえないような結論が出たということは、正しく証明できた
事になる。

2018/11/16(金)02:23:44.07(a546+gcL0.net)


823デフォルトの名無しさん

AAS

NG

はいりはいりふれはいりほー

2018/11/16(金)04:24:32.84(/x4PzStk0.net)


824デフォルトの名無しさん [sage]

AAS

NG

Unityの登録だけなら自分でもやってるからなぁ
仕事でやってる人なんて会社用と個人用を別々に登録してるんじゃね

あとUnityはVRチャットで自キャラ作るのに使うから、
それも多いと思う

2018/11/16(金)14:20:33.68(+bMNmjEk0.net)


825デフォルトの名無しさん [sage]

AAS

NG

>>824
やっぱり、そういう事もあるんだね。

どっちにしろ、Uniy のゲーム・ライブラリだけのライセンス料では、年間100億円
の売り上げにはならない気がする。

CADなども売っているので、そういう売り上げがかなりあるのかもしれない。

2018/11/16(金)19:05:12.63(a546+gcL0.net)


826デフォルトの名無しさん [sage]

AAS

NG

な、ガイジだろ

2018/11/16(金)19:24:02.27(ikVu1qV7M.net)


827デフォルトの名無しさん [sage]

AAS

NG

>>809
海外の人も Unity 発表の数値には疑問を抱いている。
ちなみに、日本のゲーム業界の開発者数(プログラマ、
デザイナ、企画含む) は、2万5,000任程度だとされ、
世界でも1チームの平均人数は5.5人程度。
Unityには、450万人もの開発者が登録されているとされる。
Unity発表の数値が正しければ、世界には、
ゲーム開発チームが、160万〜200万チームも
あることになってしまう。

「How many game developers existed in 2016?」
https://www.quora.com/How-many-game-developers-existed-in-2016


A cached version of Unity’s public relations page from July 2016 states that
Unity has 45% of the global market share and 4.5 million developers using the
platform, indicating an estimated total of 10 million individual game developers
(my guess is that “developers” means people working in game development,
including roles such as artists and game designers as well as engineers, who
could potentially use the tool).

From a 2013 Game Development Magazine survey of 1051 developers (republished by GamaSutra):

Studio size and type: 7% of respondents are individual independent devs,
19% are teams of 2-5 people, 14% on 6-10, 18% on 11-30 , 9% on 31-50,
7% on 51-80, 5% on 81-100, 8% on 101-150, 4.5% on 151-200,
5.5% on 201-300, and 3% on teams of 300+.

This indicates an average team size between 5 and 6 team members.
If each of these members falls under Unity’s classification of “developers,”
[全て表示]

2018/12/12(水)13:45:10.42(RRyKxOPE0.net)


828デフォルトの名無しさん [sage]

AAS

NG

2017/01/27時点で、GooglePlay には、260万個、AppStore には、
200万個のアプリがある。そのうちの25%がゲームだとして、Android
には、60万ゲームある。1チーム当たり 5個のゲームを公開している
としても、12万「チーム」あることになる。日本のプロのゲーム開発者
が2万5,000人程度しかいないことを考えると、凄い人数では有る。

そもそもアプリ全体の個数もかなり多いので、アマチュアプログラマがかなり
多い事は多い。

------
There are currently over 2.6 million apps in the Google Play Store and over
2 million in the App Store. I can’t find anything to say how many of those
are games. Let’s assume 25% are games. Lets just focus on Android as
our estimation. That would mean more than 600,000 games on Google Play.
I would say the average developer has 5 games on the store. Lets use 10
to be conservative. That would mean there are 60,000 different developers.

That’s my best guesstimate. My gut tells me it’s probably more but who
knows. I know for one thing, I am a developer and I have 4 games released.
Feel free to check them out:

2018/12/12(水)13:54:09.60(RRyKxOPE0.net)


829デフォルトの名無しさん [sage]

AAS

NG

GooglePlayやAppStoreのAppって、250万個もあれば、その中に本当に同一のものが
含まれてないか、または、250万個も本当にあるかを調べることは不可能に近い
かも知れない。
そもそも本当はそんなに無かったりして。そもそも、Vectorに登録されているアプリ
だってそこまで無い気もするし。

2018/12/12(水)14:02:18.23(RRyKxOPE0.net)


830デフォルトの名無しさん [sage]

AAS

NG

うちゲーム会社じゃなくて製造業(けっこう大手)だけど、VR絡みはUnity使ってるよ。
同業他社も使ってるのは意見交換会で聞いたし。
映像系でも使われ始めてるから、ゲーム業界から離れたほうがわかりやすいかも。

2018/12/12(水)14:04:10.36(3f3X1OW4d.net)


831デフォルトの名無しさん [sage]

AAS

NG

VRChatでスクリプトとして使われているしな

2018/12/12(水)14:05:59.54(35krN4020.net)


832デフォルトの名無しさん [sage]

AAS

NG

確かに、VRまで含めれば説明が付く気はするんだよ。
使う人の人数は作る人の人数より100倍程度は居るのが普通だから。

ただ、GooglePlayに登録されているアプリ数が本当に250万本もあるかどうか、
そのまま信じていいかについては注意すべき。

そもそも250万種類の一覧表をテキストファイルで見られるかどうか。

旧 nifty serve なんかも、「シェアウェアは儲かる」と言ってパソコン通信
加入者を増やそうとしたらしい。その際、「秀丸エディタ」が1億円の売り上げ
がある、とされたが、その作者が富士通社員だったことは公然の秘密。

2018/12/12(水)14:43:30.92(RRyKxOPE0.net)


833デフォルトの名無しさん [sage]

AAS

NG

>>832
レコード数250万のDBなんてざらにあるぞ

2018/12/12(水)14:50:38.86(4WsM1r+i0.net)


834デフォルトの名無しさん [sage]

AAS

NG

>>833
そういう意味じゃなくって、GooglePlay から、全てアプリが載った一覧表を一度に
ダウンロードできるのかってこと。

検索するだけだったら、本当に250万種類もあるかは誰にも分からないじゃない
かと。

2018/12/12(水)14:55:46.58(RRyKxOPE0.net)


835デフォルトの名無しさん [sage]

AAS

NG

で?
としか言いようがないな

2018/12/12(水)14:59:31.85(Gas9nc7W0.net)


836デフォルトの名無しさん [sage]

AAS

NG

Twitterにでも書いてろ

2018/12/12(水)16:21:36.71(YkPnkG/ad.net)


837デフォルトの名無しさん [sage]

AAS

NG

儲かってると思うけどな。Unity。
18万円はProだろ。
Enterpriseは別だよ。

2018/12/12(水)16:52:49.38(3f3X1OW4d.net)


838デフォルトの名無しさん [sage]

AAS

NG

ダウンロードできるか?ってできるだろ
1レコードがMB単位でデータあるんか?
1レコード1KBで2.5GB
最近のゲームなんて10GB超えのダウンロード当たり前みたいなとこあるじゃん
250万行のテキストはあんま開きたくはないが

2018/12/12(水)20:04:55.15(fYjPqF3od.net)


839デフォルトの名無しさん [sage]

AAS

NG

なんの根拠もない空想だけどゲームとVRの比率、VRが10%とかじゃない?
もちろん両方もそれなりにいるだろうけど
それでVRまで含めれば説明がつく、って意味がわからん

2018/12/12(水)20:09:07.70(fYjPqF3od.net)


840デフォルトの名無しさん [sage]

AAS

NG

あんまり詳しくは言えないけど、VR以外にも使ってるものもあるし、エンタープライズだとお値段時価だし、
企業ユースでは数人のチームなんてのはあり得なくて結構な人数分揃えるからね。
CADと連携したりなんやかんやで、ゲーム開発より金はかかるから、プロダクトの割合とは一致しないよ。

2018/12/12(水)20:16:58.44(3f3X1OW4d.net)


841デフォルトの名無しさん [sage]

AAS

NG

Unity用のスレはあるからそっちでやれよ
VRプログラム雑談【Unity/UnrealEngine】【HTC Vive/Oculus Rift/その他VR】
https://mevius.5ch.net/test/read.cgi/tech/1478142101/
数レスならともかく赤いのまでいるし

2018/12/12(水)20:31:17.51(kvTCOjS80.net)


842デフォルトの名無しさん [sage]

AAS

NG

先月も変なのが沸いてたけど同一人物だな

2018/12/12(水)21:46:33.67(Lm9ykMW+0.net)


843デフォルトの名無しさん

AAS

NG

質問いいでしょうか
webapiにて
var task = Task.Factory.StartNew
これで重い処理をバックグラウンドで処理させています。
このtask開始時にDBにProcessThread.IdとProcessThread.StartTimeを落として
別のwebapiでDBに落としたIdとStartTimeを使って
GetCurrentProcess().Threadsを検索して定期的に生きてるかのチェックを行っています。
これがけっこう不安定みたいで、バックグラウンドの処理が終わる前に
ProcessThreadが検索できなくなる場合があります。
最初にStartNewさせた際のProcessThreadが生きてる正しい確認方法はないでしょうか?
ブラウザを閉じた場合を考慮してProcessThreadで確認を行いたいです。

2018/12/14(金)16:44:56.02(nWTWWp6e0.net)


844デフォルトの名無しさん

AAS

NG

すいません。
変な質問ですね。
var taskを見るのではなく、その他の方法で
バックグラウンド処理が動いてるかの確認が行いたいです。

2018/12/14(金)17:44:35.68(nWTWWp6e0.net)


845デフォルトの名無しさん

AAS

NG

すいません。
自己解決です。
static public Task wkTaskを宣言しておいて

wkTask= Task.Factory.StartNewで作成したあと、ブラウザを閉じて
開き直してもwkTaskは生きてますね。

スレ汚しすいませんでした。

2018/12/14(金)18:14:11.54(nWTWWp6e0.net)


846デフォルトの名無しさん [sage]

AAS

NG

自己解決できるやつは偉いぞ

2018/12/14(金)21:29:27.54(OUs3lGdw0.net)


847デフォルトの名無しさん [sage]

AAS

NG

>>845
そのTaskが必ず1つしか動かないって保証があるならいいけどね。
ブラウザ閉じる->開くを繰り返したらどうなるんや

2018/12/15(土)02:43:07.58(LeOuIFUL0.net)


848デフォルトの名無しさん [sage]

AAS

NG

ブラウザ閉じて開いて、サーバの同じスレッドに接続して同じタスク拾う保証どうやってるんだ

2018/12/15(土)16:24:19.51(U8VjJ+lV0.net)


849デフォルトの名無しさん [sage]

AAS

NG

Action.Invokeでvoidと比べてstatic voidの方が遅いのってC#7だと改善されたの?

2018/12/26(水)11:49:06.15(yRPOvGGU0.net)


850デフォルトの名無しさん [sage]

AAS

NG

javaのtry-with-resouceみたいにusing書けるようにしてくれないかな
どうしてもネスト深くなるの辛い

2019/01/09(水)13:31:28.35(C73LM3okM.net)


851デフォルトの名無しさん [sage]

AAS

NG

>>850
C#8.0

2019/01/09(水)15:23:40.58(c4aAB3Aqd.net)


852デフォルトの名無しさん

AAS

NG

メソッドへのオブジェクト引数で、参照渡し(refをつける)、とオブジェクトの値渡し(refなしの値渡し。つまり、ポインター(アドレス)渡し)の違いがわかりません。
同じと思ってますが・・・・・。事実は違うようです。参照だと渡し元も変更される、っていう違いは分かります。
それ以外の違いはあるんでしょうか?

2019/02/10(日)17:55:21.67(Y+0FbWW50.net)


853デフォルトの名無しさん [sage]

AAS

NG

>>852
オブジェクトの値渡しってどういうこと?
参照型なら全部参照渡しになると思うが

2019/02/10(日)18:14:21.76(vpLDyodj0.net)


854デフォルトの名無しさん [sage]

AAS

NG

refだと渡し元が変更されるって十分な違いだろ
どうあって欲しいんだよ一体

2019/02/10(日)18:17:54.37(Mw20IJUM0.net)


855デフォルトの名無しさん [sage]

AAS

NG

>>852
ここらへんを見てみればいいかと
https://dobon.net/vb/dotnet/beginner/byvalbyref.html#section3

かんたんに言うとどっちでも渡されたオブジェクトの中身は変えられるけど、ref付けないと新しいオブジェクトを設定して呼び出し元に返せないってこと

2019/02/10(日)18:43:21.99(vOpxNkmL0.net)


856デフォルトの名無しさん [sage]

AAS

NG

参照値でも、refつけない値渡しとref付ける参照渡しできる。
で、参照値以外の値...とりあえず非参照値と呼ぶと
非参照値でも、refつけない値渡しとref付ける参照渡しできる。

全部で4パターンあるってこと 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)

2019/02/10(日)18:57:09.81(ynO2ssbq0.net)


857デフォルトの名無しさん [sage]

AAS

NG

>>852
簡単なので難しく考えてはだめ。すごくシンプルな話。

その型の値(その型の変数に格納される値)を渡すのが値渡し。
その型の変数の「場所」を渡すのが参照渡し。
さらっと書いたけど、「その型の値 = その型の変数に格納される値」なのはよく理解する必要がある。
つまり、参照型の変数に格納される値って何だったか要再考。

変数とはメモリ上に割り当てられた特定の領域のこと。
だからその領域のバイト列のコピーを渡すのが値渡しで、
領域の先頭アドレスを渡すのが参照渡しだと思えばいい。

参照渡しでメソッドが受け取る情報は「変数の」場所なので、参照渡しの引数に
リテラルや式を渡すことは出来ない。

2019/02/10(日)19:18:44.11(zgWWffC0a.net)


858デフォルトの名無しさん [sage]

AAS

NG

多分だけど参照渡しと値渡しの挙動自体は理解しているものの、
デフォ参照型とデフォ値型の区別がついておらずにデフォ参照型で実験をしてrefでも素渡しでも変わらないやんってことじゃないか

2019/02/10(日)19:59:44.58(xbk//Ba50.net)


859デフォルトの名無しさん [sage]

AAS

NG

tuple使えるならrefは忘れていいと思う

2019/02/10(日)20:36:28.11(3Dzzkr73a.net)


860デフォルトの名無しさん [sage]

AAS

NG

TryParseみたいなのだと成否と値がtupleで返って来てもifの中でめんどい

2019/02/10(日)20:53:04.89(OiPWe/iEa.net)


861デフォルトの名無しさん [sage]

AAS

NG

メソッド内で中身を変更するって理由で参照型のもref渡ししてるのみてイラッとしたことはある。イランヤン

2019/02/10(日)21:03:14.46(c1xIq/Nm0.net)


862デフォルトの名無しさん [sage]

AAS

NG

それVB6からの移植とかじゃない?
オフショアが移植したコードがそんなんばっかし

2019/02/11(月)08:03:59.18(RCleUAyA0.net)


863デフォルトの名無しさん [sage]

AAS

NG

ref の使いどころってライブラリから複数の返値欲しい時だから
他の手段使えるならそっちでいいわな
未初期化変数指定できんのも地味にイラッと来るし

2019/02/11(月)15:02:26.65(RVSdpjZja.net)


864デフォルトの名無しさん [sage]

AAS

NG

>>863
そういう場合はrefではなくoutを使う

2019/02/11(月)15:22:08.28(xSGeZZ3R0.net)


865デフォルトの名無しさん [sage]

AAS

NG

>>863
> 未初期化変数指定できんのも地味にイラッと来るし
out使えよ

2019/02/11(月)15:23:06.12(MkFOBvt90.net)


866デフォルトの名無しさん [sage]

AAS

NG

被った…

2019/02/11(月)15:23:27.15(MkFOBvt90.net)


867デフォルトの名無しさん [sage]

AAS

NG

引数いじるの好きじゃないわ
返り値だけで判別させて

2019/02/11(月)16:36:40.92(2icS/4sTa.net)


868デフォルトの名無しさん [sage]

AAS

NG

まあ参照型はoutの制約で十分かつ安全なのでrefはほぼ出番ないんじゃねえのん
Swap関数を定義する時くらしか適切な例が思い付かねえ

2019/02/11(月)16:54:38.75(I8dqqL3E0.net)


869デフォルトの名無しさん [sage]

AAS

NG

そのswapがな、MVVMでお決まりのBindableBaseなりのSetPropertyでプロパティの値交換するときに使いまくりで、
androidでもMVVM使いまくってるけどrefないkotlinやjavaでやると...

2019/02/11(月)18:26:18.92(2ERt5pT00.net)


870デフォルトの名無しさん [sage]

AAS

NG

プロパティの値交換するときってのが想像つかんが
どういうときにそれを使いまくるんだ?

2019/02/12(火)19:50:18.92(u96ReIy/0.net)


871デフォルトの名無しさん [sage]

AAS

NG

プロパティの値をソートする時じゃね?(適当)

2019/02/12(火)21:01:30.06(KFZGfstbM.net)


872デフォルトの名無しさん [sage]

AAS

NG

BindableBase SetPropertyとかでぐぐってみれ
有り体に言えば自身のプロパティ(のバックストア)を差し替えるジェネリックメソッドを基底クラスで定義するのに使うだけ

2019/02/12(火)23:51:08.44(HQcd2HqP0.net)


873デフォルトの名無しさん [sage]

AAS

NG

WPFとかUWPとか使ってればBindableBaseのありがたさはよくわかる

関係ないけどstaticメソッドって呼び出すときにいちいちインスタンスを生成する必要がないって以外のメリットあるのかな?

2019/02/13(水)00:40:04.33(6JezjdzR0.net)


874デフォルトの名無しさん [sage]

AAS

NG

>>873
まあメリットって発想がそもそもおかしい。
例えばDouble.Parseがstaticなのはその方が意味的に自然だから
インスタンスメソッドである必然性がないし、インスタンスメソッドでは不自然だから

2019/02/13(水)01:53:30.80(sK/raQIQa.net)


875デフォルトの名無しさん [sage]

AAS

NG

>>873
パフォーマンス

2019/02/13(水)04:15:53.43(VGvE+KfY0.net)


876デフォルトの名無しさん [sage]

AAS

NG

dictionaryとかのcollection系が手抜きなのなんで?
特にdictionaryとか拡張必須だし
割とc#好きだけどこれはほんとアカン

2019/02/14(木)21:00:36.96(YtWtNE43a.net)


877デフォルトの名無しさん [sage]

AAS

NG

>>876
何がどうあかんのか具体的に

2019/02/14(木)22:13:27.13(qKlS4dB9d.net)


878デフォルトの名無しさん [sage]

AAS

NG

テンプレート系はデータが増えればC++にでも勝てるのに
何が問題?

2019/02/14(木)22:45:20.23(tlcLfILV0.net)


879デフォルトの名無しさん [sage]

AAS

NG

Collection系はJavaの方がしっかりしてるよね。

2019/02/15(金)00:22:49.50(dIP2EtTm0.net)


880デフォルトの名無しさん [sage]

AAS

NG

>>879
Javaは何が違うん?

2019/02/15(金)00:39:22.49(2WeUN81J0.net)


881デフォルトの名無しさん [sage]

AAS

NG

Queue以外は不満持ったことないね

2019/02/15(金)03:04:36.23(l1U6kYAka.net)


882デフォルトの名無しさん [sage]

AAS

NG

queueは空っぽの時取り出そうとすると落ちやがるの許せん勝田
今はTryあるからいいけど

2019/02/15(金)21:54:02.82(kAPwBxa3M.net)


883デフォルトの名無しさん

AAS

NG

いやチェックしとけよそこは

2019/02/15(金)22:47:38.37(izkrr7dEa.net)


884デフォルトの名無しさん [sage]

AAS

NG

例外が発生することを落ちるって表現する男の人って…

2019/02/16(土)08:41:04.77(q1DAaOKG0.net)


885デフォルトの名無しさん [sage]

AAS

NG

例外っていろんな種類あるけど具体的に何を使えばいいのかよくわからなくて
とりあえずcatch(Exception e)とかしちゃってるけど本来はこんなのダメだよな……

2019/02/16(土)10:36:35.40(8cj+4+Hl0.net)


886デフォルトの名無しさん [sage]

AAS

NG

別にいいと思うぞ。下位の呼び出しのどこかで失敗したということに対して適切に処置するなら。

2019/02/16(土)11:09:50.80(mveZudXk0.net)


887デフォルトの名無しさん [sage]

AAS

NG

>>885
例外は握りつぶしてこそ華

2019/02/16(土)12:03:59.89(mmBt6tnL0.net)


888デフォルトの名無しさん [sage]

AAS

NG

catch(Exception e){

2019/02/16(土)12:43:39.03(LCZTEEhT0.net)


889デフォルトの名無しさん [sage]

AAS

NG

>>885
> 例外っていろんな種類あるけど具体的に何を使えばいいのかよくわからなくて
投げる方で悩むのはわかるけど
> とりあえずcatch(Exception e)とかしちゃってる
受ける方はどれ受けるべきかはわかってるでしょ
最終手段としてよくわからんけどエラーが発生したから終了するね
って言うならcatch(Exception e)もありだと思うが

2019/02/16(土)13:08:53.78(q1DAaOKG0.net)


890デフォルトの名無しさん [sage]

AAS

NG

終了というのがプログラムの終了のことなら逆にcatchしちゃだめだろう。

2019/02/16(土)13:37:31.27(mveZudXk0.net)


891デフォルトの名無しさん [sage]

AAS

NG

>>889
catch { }ではw
>>890
例外一つでプログラム終了していたら大概困るw

2019/02/16(土)14:43:51.47(NIO8UzEI0.net)


892デフォルトの名無しさん [sage]

AAS

NG

例外はありえない事態なんだからプログラム終了しなきゃまずいだろう

2019/02/16(土)15:01:00.34(NEtPpdWW0.net)


893デフォルトの名無しさん [sage]

AAS

NG

>>891
それは逆で、プログラマが想定してない例外が発生したら
プログラムは停止してもらわないと困る。これが正しい考え方。

そもそも例外機構というのはそのためにある

2019/02/16(土)15:02:54.74(PR5Tb5Rba.net)


894デフォルトの名無しさん

AAS

NG

最近部活の後輩が黒魔術みたいなコードを書くようになって困ってるんだが対策ない?

こんな感じのコードを後輩が書いてくるんだよ↓

public interface IMessenger {
__public MessageReceived();
}
public abstract class Messenger : IMessenger{
__public abstract void MessageReceived();
__public abstract void Retry();
}

2019/02/16(土)15:03:48.09(uy2P96bkM.net)


895デフォルトの名無しさん

AAS

NG

public class Mail : Messenger {
__public override void MessageReceived(){
____//処理
__}
__public override void Retry(){
____//処理
__}
}
public class Alarm : Messenger {
__public override void MessageReceived(){
____//処理
__}
__public override void Retry(){
____//処理
__}
}
public class Communication {
__public void SendMessage(IMesssenger message){
____SendMessage(message);
__}
__public void Received(){
____var received = GetMessage() as IMessage;
____received?.MessageReceived();
__}
}

2019/02/16(土)15:04:05.72(uy2P96bkM.net)


896デフォルトの名無しさん

AAS

NG

こんなんだったから

public class Communication{
__public void SendMessage(string message){
____SendMessage(message);
__}
__public void Received(){
____var received = GetMessage();
______switch(received.First()){
case "0":
MailEvent(received);
break;
case "1":
AlermEvent(received);
break
____}
__}
}

こんな感じで書くように矯正しといた
CSVで2文字で分けるって言ってるんだから
何が起こってるかわかるように書くことを意識してもらわないと

2019/02/16(土)15:04:31.94(uy2P96bkM.net)


897デフォルトの名無しさん

AAS

NG

まあ例外でプログラムは終了させるべきだよな
ただ客は例外が起きてもcatchで握りつぶしてスルーした方が文句言わないんだよな……

2019/02/16(土)15:06:36.58(8cj+4+Hl0.net)


898デフォルトの名無しさん [sage]

AAS

NG

>>894
酷いな
MediatoRを使うようにアドバイスしてあげなよ

2019/02/16(土)15:14:21.65(auHH3gBua.net)


899デフォルトの名無しさん [sage]

AAS

NG

>>894
2chのシステムは先頭の半角スーペースは除去するけど全角スペースは除去しない。
だから字下げは後者で

2019/02/16(土)15:19:24.61(PR5Tb5Rba.net)


900デフォルトの名無しさん [sage]

AAS

NG

>>891
> catch { }ではw
ごめん、何を言いたいのかわかん
処理部分も当然必要だけど何を受けるかの話だから(Exception e)の方が重要だろ?

2019/02/16(土)15:41:54.82(q1DAaOKG0.net)


901デフォルトの名無しさん [sage]

AAS

NG

>>893
ちょっとMSに例外じゃなくエラーコード戻す設計にするようお前から言ってきてくんね?
W32APIはそうなってんのにFrameworkの方そうなってないじゃん

2019/02/16(土)22:53:53.99(gbHoDgK/0.net)


902デフォルトの名無しさん [sage]

AAS

NG

宗教戦争を見物now

2019/02/17(日)00:48:25.53(0sFVNd3o0.net)


903デフォルトの名無しさん [sage]

AAS

NG

byte*からbyte[]にする方法ってない?
new byte[64];みたいに新規確保してコピーしか方法ないんだろうか
Unsafe.As等で新規確保無しで出来るかと思って色々試してみたけど上手くいかない

2019/02/17(日)14:42:24.50(QIeMqQFm0.net)


904デフォルトの名無しさん [sage]

AAS

NG

「byte[]にする」が「byte[]とみなして扱えるようにする」って意味なら
全然別の型なんだしあるわけないでしょう。
そういう危なっかしい機能を排除してるのがC#の売りの一つだったはずなわけで

コピーする機能ならMarshalあたりにあるんじゃない?

2019/02/17(日)15:01:42.36(99sHKv96a.net)


905デフォルトの名無しさん [sage]

AAS

NG

>>904
>「byte[]にする」が「byte[]とみなして扱えるようにする」って意味なら
そういうことです

あるわけないと言いますが、その逆はあるので出来るかなと思い
(byte*やref byteで先頭を指定し自作のstructとして読ませる。少しずらせばbyte[]を自作クラスとして読ませることも可能)

2019/02/17(日)15:16:25.11(QIeMqQFm0.net)


906デフォルトの名無しさん [sage]

AAS

NG

>>905
>(byte*やref byteで先頭を指定し自作のstructとして読ませる。少しずらせばbyte[]を自作クラスとして読ませることも可能)
具体的なコード希望

2019/02/17(日)15:21:31.28(Ox4HquXb0.net)


907デフォルトの名無しさん [sage]

AAS

NG

その逆がマネージドじゃ難しいからね
無理じゃないかなあ

やっぱこれからはSpanですよスパンスパン

2019/02/17(日)15:23:52.52(UNDanSNQ0.net)


908デフォルトの名無しさん [sage]

AAS

NG

>>906
public struct MyStruct { public int Value1, Value2, Value3, Value4 };
byte[] data = new byte[16] { 1,0,0,0, 2,0,0,0, 3,0,0,0, 4,0,0,0 };
ref var myStruct = ref Unsafe.As<byte, MyStruct>(ref data[0]);
これでmyStruct .Value1は1、myStruct .Value2は2, myStruct .Value3は3, myStruct .Value4は4と余計なコピー無しに直接読み書きできる

byte[]からclassの場合はFieldOffset指定して各フィールドを4バイト後ろにづらないと出来ないから実用は難しいけど一応可能

2019/02/17(日)15:27:09.29(QIeMqQFm0.net)


909デフォルトの名無しさん [sage]

AAS

NG

fixed (byte* ptr = &data[0]) *(MyStruct*)ptr;
と大体同じではあります

2019/02/17(日)15:31:55.60(QIeMqQFm0.net)


910デフォルトの名無しさん [sage]

AAS

NG

やっぱりこういうことやりたければC++に池ってことなのでしょうか
記憶力悪いのでVSがC#ほど助けてくれないC++に行くのは億劫なため質問させてもらいました

2019/02/17(日)15:40:47.44(QIeMqQFm0.net)


911デフォルトの名無しさん [sage]

AAS

NG

Span使え

2019/02/17(日)16:16:49.38(rf6p5Xt1a.net)


912デフォルトの名無しさん [sage]

AAS

NG

byte[]も参照型だからね、オブジェクトヘッダが付いてなければ扱えない
Span<T>でなければ、具体的なシナリオにも依るけど元からbyte[]で作って
TypeHandleとlengthのsizeof(IntPtr)*2分ずらした所を使い回す方が賢明
結局fiexdと一緒な訳だが、P/Invokeならbyte[]渡してもゼロコピーの筈だし

abstract class Union<T> where T : struct {
internal readonly IntPtr length;
public T Value;
}
みたいなオレオレ実装をILキャストした事もあったな…後はSafeBufferとか

2019/02/17(日)16:27:59.23(tKx1WgvG0.net)


913デフォルトの名無しさん [sage]

AAS

NG

self containedって完全に依存なしになるわけじゃないのね
alpine用にself containedでビルドしても動かなかった
libstdc++とか色々インストールしたら動いたけどさ
dotnetコマンド同梱と比較してコンテナサイズも殆ど変わらないし意味あるのかなこれ

2019/02/21(木)12:35:31.38(78/oBfjca.net)


914デフォルトの名無しさん [sage]

AAS

NG

>>913
おばか

2019/02/21(木)12:44:14.85(IWeqLQBdd.net)


915デフォルトの名無しさん [sage]

AAS

NG

SCDは.NETのランタイムを別途インストールじゃなくて同梱するってだけの話だしね
公式ドキュメントにも注釈あるけどLinuxは仕様上完全に断ち切るのは難しいんじゃない?
Windowsだと同梱のファイルだけでそのまま動くけど

2019/02/21(木)14:33:57.39(XSMrGlqdp.net)


916デフォルトの名無しさん [sage]

AAS

NG

>>915
Windows配布用と割り切った方がいいのかもしれない
Linuxだと管理下のサーバーかコンテナが多いからSCに拘る必要もない

2019/02/21(木)17:41:05.62(DKuxuLxMa.net)


917デフォルトの名無しさん [sage]

AAS

NG

最近のバッチはみんなSCDにしてる
らくちんらくちん

2019/02/21(木)18:56:24.09(IWeqLQBdd.net)


918デフォルトの名無しさん [sage]

AAS

NG

Goのように1バイナリにはならんものかね

2019/02/21(木)19:03:47.82(DKuxuLxMa.net)


919デフォルトの名無しさん [sage]

AAS

NG

2019/02/21(木)19:11:19.09(IWeqLQBdd.net)


920デフォルトの名無しさん

AAS

NG

ちょくちょくポインタ代替機能についての質問があるけどさ
どんな用途でポインタを使いたいのかわかんないけど、大抵の場合はストリームで代用できるんじゃないのかな

2019/02/26(火)16:27:59.06(jgGxVc0K0.net)


921デフォルトの名無しさん [sage]

AAS

NG

ID3タグとかバイナリ使うにゃ要るだろ

2019/02/26(火)19:45:51.64(KXA/2sKca.net)


922デフォルトの名無しさん [sage]

AAS

NG

>>921
バイナリデータもストリームで扱える

2019/02/26(火)22:52:44.40(cz3vAcnh0.net)


923デフォルトの名無しさん [sage]

AAS

NG

バイナリ弄るならSpanでよくね?

2019/02/26(火)23:01:06.66(w0dNr8TE0.net)


924デフォルトの名無しさん [sage]

AAS

NG

ポインタなんかアンマネージとのやり取りとBitmapdataでしか使ったことないな
アンマネージとのやり取りだとrefとかoutにしとけばあとは何も考えなくていいから助かる

2019/02/27(水)22:56:28.74(0yfFFlZD0.net)


925デフォルトの名無しさん [sage]

AAS

NG

「変数aが1,4,5,7のいずれかである場合」
という論理式を書く場合
 (a==1) || (a==4) || (a==5) || (a==7)
とswitch文以外でもっと手っ取り早く書く方法ありますか?

2019/03/02(土)10:07:34.38(yMVoU8j+0.net)


926デフォルトの名無しさん [sage]

AAS

NG

>>925
その表現が一番端的でわかりやすいのではないですか?

2019/03/02(土)10:20:00.75(Ud+LwFnR0.net)


927デフォルトの名無しさん [sage]

AAS

NG

>>925
()いらない

2019/03/02(土)10:21:50.56(Vr07loEY0.net)


928デフォルトの名無しさん [sage]

AAS

NG

new [] {1, 4, 5, 7}.Contains(a)

2019/03/02(土)11:05:26.20(heck9gfNa.net)


929デフォルトの名無しさん [sage]

AAS

NG

>>925
その程度ならその書き方が一番わかりやすいと思うが比較対象がもっと多いとか可変にしたいとかなら
var C = new HashSet<int>(){1, 4, 5. 7};
if(C.Contains(a)){ … }
とかもある

2019/03/02(土)11:08:41.04(Co1I1oSR0.net)


930デフォルトの名無しさん [sage]

AAS

NG

>>926
数が少ないうちはいいんですが

>>927
カッコの上でShift+Ctrl+}すると
式部分を一発選択できるのであえてそうしてる

>>928
これがいい感じです
少しオーバーヘッドが気になりますが

2019/03/02(土)14:06:20.64(yMVoU8j+0.net)


931デフォルトの名無しさん [sage]

AAS

NG

SQLみたく
a IN (1,4,5,7)
てかければいいなとおもうが、aが右側になっちゃうのが若干違和感

2019/03/02(土)14:59:32.01(AX9YyrwL0.net)


932デフォルトの名無しさん [sage]

AAS

NG

拡張メソッド作れば解決

2019/03/02(土)15:04:48.62(Nsc0DUxH0.net)


933デフォルトの名無しさん [sage]

AAS

NG

>>929以上の書き方ねーべ
オーバーヘッドなんぞ無きに等しい

2019/03/02(土)19:46:04.84(5yoALKCSa.net)


934デフォルトの名無しさん [sage]

AAS

NG

>>930
HashSetやDictionaryは要素の数に左右されない方法でアクセスを行うから
含まれてるか否かといったような検索用途に限定すれば1個だろうが1万個だろうが常に高速にアクセス出来る
Listや配列は要素数に比例してアクセス時間かかるようになるが

2019/03/02(土)20:18:35.52(zHCAEP8E0.net)


935デフォルトの名無しさん [sage]

AAS

NG

なぜ要素数が増えることがある
という大前提を最初の質問時に明記しないのか

2019/03/02(土)21:00:42.79(RzDDiNewd.net)


936デフォルトの名無しさん [sage]

AAS

NG

>>928
これ、new[]の部分を()で括らなくていいのは何か直感に反するけど、
newもnew[]もドット演算子と同じ優先順位なのかw

キャスト演算子も同じ扱いにしてくれたらよかったのに

2019/03/02(土)22:03:38.03(CQ1ng92ga.net)


937デフォルトの名無しさん [sage]

AAS

NG

>>934
もとの要素がどこにあるかよくわからんけどな
HashSet作成して要素セットするオーバーヘッドがあるだろう
格納時にハッシュ値計算するから比較のコストが低いわけで、その分格納にコストがかかるんだぜ

2019/03/03(日)01:24:26.71(5kU0Dorz0.net)


938デフォルトの名無しさん [sage]

AAS

NG

使い捨てなら配列のほうが安そうな気はするが
それが差となって現れるようなユースケースとも思えんしなあ

2019/03/03(日)02:51:31.92(0iBtFMi0a.net)


939デフォルトの名無しさん [sage]

AAS

NG

また質問者無視してる

2019/03/03(日)08:04:01.95(1vB8VE1Z0.net)


940デフォルトの名無しさん [sage]

AAS

NG

質問者ってそんなに偉いの?
そいつの質問に常に合致した話題じゃなきゃダメなの?
ひとつの質問があって、それを機会に派生してもいいし、あとは自由に意見しあえってもいい

どんだけ構ってほしいんだ

2019/03/03(日)09:05:10.09(wNoJ2Bbs0.net)


941デフォルトの名無しさん [sage]

AAS

NG

気にしてるの君じゃん
自由でいいと思うなら
かってにやってりゃいいじゃん
どんなけかまってほしいの?

2019/03/03(日)09:06:48.39(467OkvF30.net)


942デフォルトの名無しさん

AAS

NG

ROM専からすると多少横道にそれてもいろんな手法を見れるほうが面白い
正直これくらいの質問なら好きにしろって感じだろ

2019/03/03(日)09:27:17.06(qK6tlWl9a.net)


943デフォルトの名無しさん [sage]

AAS

NG

>>937
だから検索用途ならって書いた訳だが
if ((a==1) || (a==4) || (a==5) || (a==7))って書けるってことはAddは頻繁に行わないと受け取ったわ

2019/03/03(日)10:44:42.90(wOo332Lk0.net)


944デフォルトの名無しさん [sage]

AAS

NG

述語の部分が、

(1) 全要素を常に == で評価
(2) 全要素を同じ演算子で評価するが、==以外の演算子も使われる場合がある
(3) 要素ごとに個別の評価方法

で最適な答えが変わりそうなんでその辺ははっきりした方がよかったかもね。
質問者は
(a==1) || (a==4) || (a==5) || (a==7)
の代替案を聞いてるんだから普通に考えれば要素数はそんなに多くないはずで
パフォーマンス云々は風呂敷広げすぎだろうw

2019/03/03(日)12:55:52.71(3ZaOSZpTa.net)


945デフォルトの名無しさん [sage]

AAS

NG

議論の途中で申し訳ないのですが
例えば独自クラスで、こんなのがある。

独自クラス{
string name {get; set;}
decimal num1 {get; set;}
decimal num2 {get; set;}


というのがあって、グリッドビューにList〈独自クラス〉をデータソースとして渡して表示させたいのですが
numは3,4,と増える可能性があります。(型はすべて同じ)
この場合にソースコードをメンテナンスすることなくnumの増減に対応するにはどのようにすれば良いでしょうか?

2019/03/03(日)13:55:56.58(Nfj27eon0.net)


946デフォルトの名無しさん [sage]

AAS

NG

decimal[] num {get; set;}
とか、
Dictionary<int,decimal> num { get; set; }
じゃダメなの?
なんか設計レベルで問題がありそうな気もするけど。

2019/03/03(日)14:46:12.80(NjSnZzWN0.net)


947デフォルトの名無しさん [sage]

AAS

NG

>>945
配列なりListなり使えばいいだけじゃねーの?

2019/03/03(日)15:03:54.49(EUJr/Yte0.net)


948デフォルトの名無しさん [sage]

AAS

NG

固定値でIFするのは好きじゃないな。
ソースの冒頭で定数を定義したい。

2019/03/03(日)16:04:38.55(lbgm80aQ0.net)


949デフォルトの名無しさん [sage]

AAS

NG

>>945
列が可変になるのならデータテーブル使うのが楽だと思う。クラスでやるとしたらexpandoで作るもなくはないと思うけど、それなら上にある通りDictionaryの方がシンプルではないかと。

2019/03/03(日)16:50:33.82(fEIk0m7q0.net)


950デフォルトの名無しさん [sage]

AAS

NG

>>944
質問者がオーバーヘッド気になるとか発言してるので、パフォーマンスを考慮することに意味はあるんじゃね

まあ、ずらずらと手書き出来る程度の要素数ならどれ使っても大差ないって言っとくべきではあるかもしれんが

2019/03/03(日)21:37:48.24(5kU0Dorz0.net)


951デフォルトの名無しさん [sage]

AAS

NG

C#はセキュリティー的に問題があるので使わないほうがいい。

2019/03/05(火)02:59:42.60(01ls3eLR0.net)


952デフォルトの名無しさん [sage]

AAS

NG

>>951
詳しく

2019/03/05(火)03:03:58.87(uKTTdpNO0.net)


953デフォルトの名無しさん [sage]

AAS

NG

お前何回も見てるから詳しくしなくていい

2019/03/05(火)04:19:27.01(6CrjVVG40.net)


954デフォルトの名無しさん [sage]

AAS

NG

>>953
詳しく

2019/03/05(火)08:33:58.12(Q/LSKwqY0.net)


955デフォルトの名無しさん [sage]

AAS

NG

一発でソースコード復元されるからか?
それを言ったらJavaも同じだから泥アプリとか簡単に解析出来るけど

2019/03/05(火)12:55:11.87(xG/V/FM40.net)


956デフォルトの名無しさん [sage]

AAS

NG

それはMSも認識してるしフリーの難読化ツールが何個も出てるんやで

難読化が必要な理由 | Microsoft Docs https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/ms227271(v=vs.90)

2019/03/05(火)15:29:31.29(zDemJk6G0.net)


957デフォルトの名無しさん [sage]

AAS

NG

うちのソースは普通に難読だけどな

2019/03/05(火)20:24:10.57(X7v05Ly8M.net)


958デフォルトの名無しさん [sage]

AAS

NG

おれのソースコードはデフォで難読だから余裕

2019/03/05(火)20:50:38.72(phKvM6KvM.net)


959デフォルトの名無しさん [sage]

AAS

NG

難読化しないとってほどのソースコードなんてそんなに無いような気がするけどな…
そもそもOSSが当たり前みたいなこんな時代に

2019/03/07(木)00:13:41.81(30anmeL+0.net)


960デフォルトの名無しさん [sage]

AAS

NG

>>959
見せられない処理はAPIの向こう側だしね

2019/03/07(木)01:10:43.27(tnYmqFtJ0.net)


961デフォルトの名無しさん [sage]

AAS

NG

ゲームは改造対策に難読化したほうが良さげ

2019/03/07(木)19:34:45.84(Kf1DGo5Q0.net)


962デフォルトの名無しさん [sage]

AAS

NG

オリジナルソースがスパゲッティでも
ILSpyなんかを通すとオリジナルより見やすく逆コンパイルしてくれるからな。

2019/03/08(金)13:12:26.41(5Js7CVOV0.net)


963デフォルトの名無しさん [sage]

AAS

NG

そんなのあるんだ?ありがたいな。スパゲティにはほとほと手を焼いてたんだ。きれいにしてくれるなら使ってみようかなw

2019/03/08(金)14:21:31.67(p3uWfhXt0.net)


964デフォルトの名無しさん [sage]

AAS

NG

メソッド単位は変わらないからプライベートやグローバル使いまくりのスパゲティはどうにもならないけどね

2019/03/08(金)18:09:25.36(XK/LB6aKd.net)


965デフォルトの名無しさん [sage]

AAS

NG

制御フロー難読化をやるとさらに汚くしてくれるからオススメ

2019/03/08(金)19:36:48.59(W3YxLksd0.net)


966デフォルトの名無しさん [sage]

AAS

NG

メソッドのローカル変数をきれいに整頓してくれるILSpy△
そろそろここも終わるけど
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
でいいよね。隔離スレをわざわざ新しく立てる必要もないし

2019/03/08(金)20:13:44.24(S6VEx3Fw0.net)


967デフォルトの名無しさん [sage]

AAS

NG

ライブラリレベルのオーバーヘッドを気にするのは止めましょう
ガベージコレクションが前提の言語を使ってる以上無駄な努力に終わります
性能絶対重視なら最初からCやASMで書いた方が良いし
よほどのスパーハカーでもない限りそんな努力が報われるほどの性能差にならないと思われます

2019/03/14(木)19:31:23.01(uF+nNtm+0.net)


968デフォルトの名無しさん [sage]

AAS

NG

ASM?
コンパイラに勝てると思ってるのか?

2019/03/14(木)21:34:22.29(DpwzO91B0.net)


969 [sage]

AAS

NG

>>968
asm の教科書を書いていますが、「そのお題、asm で書く理由がない…」という深刻な問題に直面しています
asm で書くのに適したお題は何かありませんか?

2019/03/14(木)21:49:31.03(NTAm4EVS0.net)


970デフォルトの名無しさん

AAS

NG

最初のCコンパイラかな

2019/03/14(木)21:52:50.86(SvZaCm1k0.net)


971デフォルトの名無しさん [sage]

AAS

NG

x86の機械語は知らんけど、CPUを汎用計算機ではなくHWとして使いたい場合は
直接機械語で書くしかないでしょう

2019/03/14(木)22:53:26.94(fi3bTXEpa.net)


972デフォルトの名無しさん [sage]

AAS

NG

CPUを汎用計算機じゃなくてHWとして使いたいようなニーズなんてほとんどの人にはねえだろw

2019/03/14(木)22:56:05.33(6sRnwOjo0.net)


973デフォルトの名無しさん [sage]

AAS

NG

だからASMなんて(今となっては)ニッチな需要しかないのでは?

2019/03/14(木)22:59:30.46(fi3bTXEpa.net)


974 [sage]

AAS

NG

>>973
その需要の一例を知りたいですね…

2019/03/14(木)23:12:09.22(NTAm4EVS0.net)


975デフォルトの名無しさん [sage]

AAS

NG

>>969
ブート部分とかかな
I/O命令とかを発行する部分もあるけどこっちはインラインアセンブラでもいいかな

2019/03/14(木)23:13:00.27(3EvgP48J0.net)


976デフォルトの名無しさん [sage]

AAS

NG

>>974
必要を無視すればBCD演算とか。
最終的にBCD演算命令に翻訳されるようなコードをC#では(Cでも)書けないはず。

まあx86ならマルチメディア系の命令とかが王道なんだろうけどね知らんけど。

2019/03/14(木)23:43:27.63(fi3bTXEpa.net)


977デフォルトの名無しさん [sage]

AAS

NG

ニッチな事には変わりないけど、
https://ufcpp.net/blog/2018/12/hdintrinsic/
hardware intrinsicとか入ってくるし

2019/03/14(木)23:48:39.57(nlDJyEEg0.net)


978デフォルトの名無しさん [sage]

AAS

NG

20年ぐらい前の1クロックが今より数十倍以上高価だった頃なら、
ASMによる人力高速化も(コスト的に見合うという点で)意味があった

Cコードで表現されてない知識も使ってちっちゃな関数でも結構簡単に数十クロック程度は高速化できた
Cコードで表現されてない部分を使えば、今もやろうとすれば高速化はできると思う(コストに見合わないだけで)
(変数aとbは実はいつも a<b なのでこのニーモニックが使えるとか、
ここの条件判定文は実は別の変数を計算したときのレジスタのフラグと同じ意味なので計算しなおす必要はないとか)

>>977 の話題に近いけど、
今ならASMの意味があるのはJITまわりとかかな?

2019/03/15(金)20:54:11.25(lWIPCB/k0.net)


979デフォルトの名無しさん [sage]

AAS

NG

コンパイラはパイプラインでデータハザードが起きない様に計算して命令の組み替えしたりする。
人間がそこまでできるかな?
オレは20年ぐらい前にmemcpyを高速化するためにアセンブラで組んだ。
今思うとCで組んでコンパイラに最適化させるべきだったかもね。
若気の至りだ。

2019/03/15(金)21:48:50.55(D5NVJqkY0.net)


980デフォルトの名無しさん [sage]

AAS

NG

asmはコンピュータの仕組みを理解するにはうってつけの題材では有るね
最新の特殊命令なんか不要だが、68Kなんか最高の素材だと思うわ

2019/03/16(土)00:00:03.09(6P+M3e6E0.net)


981デフォルトの名無しさん [sage]

AAS

NG

ERMSBなんかを考えるとコンパイラも小手先なんかね
実行ハードでスケールするか、安定的な最適化か
汎用性を考えれば普通は後者になるだろうけど

というかC#ならCILレベルに留めるべきではねか

2019/03/16(土)00:15:39.88(sQCNGdE30.net)


982デフォルトの名無しさん [sage]

AAS

NG

WASMを最適化してくれ

2019/03/16(土)05:39:50.41(lafVI2fNM.net)


983デフォルトの名無しさん [sage]

AAS

NG

今やIoT用でもメモリMBクラスだろ
アセンブラでハック必要な用途なんてないだろな

2019/03/16(土)14:26:07.02(gcoRXnnM0.net)


984デフォルトの名無しさん [sage]

AAS

NG

>>982
wasmになる前のLLVMの段階で既に最適化が出来る。
あと、詳しくは分からないが、wasmになった後の最適化も、
Emscriptein の opt.exe で一応はできるらしい。
但し、asm.jsとの「グルー」が複雑に絡んでいるので、
何をやっているかを理解するのはかなり難しく、
wasmで最適化しているのか、asm.jsで最適化しているのかは
忘れてしまった。

2019/03/16(土)15:56:32.11(zOgp3uDK0.net)


985デフォルトの名無しさん [sage]

AAS

NG

スレを間違えたかと思っただろ

2019/03/16(土)19:51:51.79(Ox1b9ZEv0.net)


986デフォルトの名無しさん

AAS

NG

スレ終わりなんだから内容気にせず埋めてしまえwここ即死判定もないし
GetFilesやGetDirectoriesのようなメソッドでエクスプローラーと同じ順に格納してくれるメソッドが欲しい
ソートし直すのたまに忘れてしまう

2019/03/16(土)20:27:45.17(0AnVFDDg0.net)


987デフォルトの名無しさん [sage]

AAS

NG

>>986
自分でユーティリティライブラリ作っとけば

2019/03/16(土)21:07:46.17(d1qKciPD0.net)


988デフォルトの名無しさん [sage]

AAS

NG

>>986
こういうことじゃなくて?
var files = Directory.GetFiles(@"C:\hoge").OrderBy(name => name).ToArray();

2019/03/16(土)21:16:16.11(LVoOn4ja0.net)


989デフォルトの名無しさん [sage]

AAS

NG

2019/03/16(土)21:24:01.46(m10rap++a.net)


990デフォルトの名無しさん [sage]

AAS

NG

エクスプローラーと同じ順って今のエクスプローラーにどれだけソート項目があるか知ってんのか・・・

2019/03/16(土)21:28:11.62(aNdxzMMr0.net)


991デフォルトの名無しさん [sage]

AAS

NG

>>989
なるほど

2019/03/16(土)21:28:35.53(fhPcOkRld.net)


992デフォルトの名無しさん [sage]

AAS

NG

IEEEでまだ規格化されてない多ビット長の四則演算や、超コンパクトに処理を書く方法とか

2019/03/16(土)22:01:49.01(wgxWGDdm0.net)


993デフォルトの名無しさん [sage]

AAS

NG

>>990
普通の頭持ってりゃ名前のソートであることぐらいはわかりそうなもんだけどなw

2019/03/17(日)07:10:24.22(WBoQCy0zM.net)


994デフォルトの名無しさん

AAS

NG

Visual Studioって2015と2017両方いれて、2015だけ綺麗にアンスコできる?

2019/03/20(水)07:42:02.03(74ozQqG6a.net)


995デフォルトの名無しさん [sage]

AAS

NG

>>994
単体で入れても綺麗には削除できんぞ

2019/03/20(水)07:54:36.58(LAIwbd+70.net)


996デフォルトの名無しさん [sage]

AAS

NG

ワロタ

2019/03/20(水)09:19:38.34(W/HUsmxnM.net)


997デフォルトの名無しさん

AAS

NG

>>995
ありがとう
そ、それは置いといて(笑)
どちらか片方だけアンスコしたときにもう片方に必要なもんを削除されたりはしない?

2019/03/20(水)12:21:41.32(NDw+q9p/a.net)


998デフォルトの名無しさん [sage]

AAS

NG

VSに限らず明らかなNGは後から古いバージョンをインストールする行為だけのはず
アンインストールに関しては「意図としては」大丈夫なように作ってあるはず。

やってみたら?
最悪新しい方の修復インストールかOSの復元機能で何とかなるでしょ

2019/03/20(水)12:41:43.72(JR1ztFlDa.net)


999デフォルトの名無しさん [sage]

AAS

NG

試してみて欲しい
俺のPCにもVisual Studio 2010から全バージョンインストールされてるから参考にする

2019/03/20(水)14:05:02.42(vc7KPojzd.net)


1000デフォルトの名無しさん [sage]

AAS

NG

2015だけ削除したいって何がしたいんだろ
C#使う分には複数バージョンあって困ることないし

2019/03/20(水)18:48:25.28(jN76oFxX0.net)


1001デフォルトの名無しさん [sage]

AAS

NG

>>1000
使わないものを入れておいてもストレージ占有するだけ無駄じゃん
普通にある要求だと思うけど

2019/03/20(水)18:53:06.53(CvIVS+n40.net)


1002デフォルトの名無しさん [sage]

AAS

NG

2015の後に2017入れて2015アンインストールしたけど問題なかった
そのあとふと2015入れてみたら俺環だろうけど2015でビルド出来なくなった。2017の方は問題なし
そして問題のあった2015を再びアンインストールしたけど2017でずっと問題なし
>>997
2017だけ使う分には問題ないはず

2019/03/20(水)18:54:52.24(jJ3kq/hZ0.net)


10031001

AAS

NG

このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 697日 10時間 2分 52秒

Over1000Thread.net)


1004過去ログ ★

AAS

NG

■ このスレッドは過去ログ倉庫に格納されています

[過去ログ]

名前

メール

本文