[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/05 08:27 / Filesize : 268 KB / Number-of Response : 1046
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん(ワッチョイ 1e06-m8Mb) mailto:sageteoff [2017/04/22(土) 08:52:00.93 ID:iVvswOrb0.net]
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/

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

■前スレ
C#, C♯, C#相談室 Part92
echo.2ch.net/test/read.cgi/tech/1485589613/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

2 名前:デフォルトの名無しさん (ワッチョイ de35-HDOw) [2017/04/22(土) 10:57:42.55 ID:g8ZT1khs0.net]
■過去スレ
C#, C♯, C#相談室 Part89
peace.2ch.net/test/read.cgi/tech/1443271409/
C#, C♯, C#相談室 Part90
echo.2ch.net/test/read.cgi/tech/1455160063/
C#, C♯, C#相談室 Part91
echo.2ch.net/test/read.cgi/tech/1467142749/
C#, C♯, C#相談室 Part91 (実質Part92)
echo.2ch.net/test/read.cgi/tech/1467211515/
C#, C♯, C#相談室 Part92 (実質Part93)
echo.2ch.net/test/read.cgi/tech/1485589613/

>>1
ここは、実質Part94

3 名前:デフォルトの名無しさん (ワッチョイ 1e06-m8Mb) mailto:sage [2017/04/22(土) 13:39:44.03 ID:iVvswOrb0.net]
■関連スレ
初心者の質問向けはこちら
ふらっと C#,C♯,C#(初心者用) Part127
echo.2ch.net/test/read.cgi/tech/1489498042/

>>2
補足thx。見逃していた

4 名前:デフォルトの名無しさん (ワッチョイ 7ff7-/JtG) mailto:sage [2017/04/22(土) 14:55:56.60 ID:c4VI05+R0.net]
おつかれ
キチガイの人(山口人生)は、複数回線もっていそうだからどこまで効果するかは分からんけれど
何もしないよりマシだね、今後もワッチョイ有りで行こう。
死ねばいいのに・・・・

5 名前:デフォルトの名無しさん (アウアウイー Sa63-wX6N) mailto:sage [2017/04/22(土) 15:23:39.94 ID:FEVU7Q4Da.net]
誰だよ山口人生ってww

6 名前:デフォルトの名無しさん (エムゾネ FFaa-TkTn) mailto:sage [2017/04/22(土) 15:39:01.94 ID:S+KK7a41F.net]
正しいスレ番と設定で立てました

C#, C♯, C#相談室 Part94
echo.2ch.net/test/read.cgi/tech/1492843013/

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

8 名前:デフォルトの名無しさん (アウアウイー Sa63-wX6N) mailto:sage [2017/04/22(土) 17:40:53.42 ID:L9cy9Aq3a.net]
統失くんいらっしゃい、ってかw

9 名前:デフォルトの名無しさん (ワッチョイ 7ff7-/JtG) mailto:sage [2017/04/22(土) 17:57:12.00 ID:c4VI05+R0.net]
敬意が足らないですね、糖質超教授と読んであげましょうwww
いらっしゃらなくていいです、迷惑なので死んでください

10 名前:デフォルトの名無しさん (ワッチョイ bb4c-VP69) mailto:sage [2017/04/22(土) 19:18:48.92 ID:7MQLYtSw0.net]
本当のその山口ってのなのか?



11 名前:デフォルトの名無しさん (ワッチョイ 7ff7-/JtG) mailto:sage [2017/04/22(土) 19:41:05.45 ID:c4VI05+R0.net]
張り付き方が異常、現役じゃ不可能
発言が山口人生と似ているし話が高齢者臭い、中年ですらない
Delphiを使っていて最近C#に移ってきている
ここまでのマジキチには普通日常で出会うことは無い、希少種

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

12 名前:デフォルトの名無しさん (ワッチョイ bb4c-VP69) mailto:sage [2017/04/22(土) 20:05:29.05 ID:7MQLYtSw0.net]
このスレ、自分以外は全部同じ人が書き込んでたりしてw

ちょっとしたホラーだな

13 名前:デフォルトの名無しさん (ドコグロ MM33-MUXz) mailto:sage [2017/04/22(土) 20:49:00.38 ID:IUEn1/EeM.net]
なんかワッチョイ付いてると気に入らないみたいよ
俺は付いてるほうが好きだからこっちのスレのがいいな

14 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 17:15:57.72 ID:crwmH6BQM.net]
こっち使おうぜ

15 名前:デフォルトの名無しさん [2017/05/05(金) 16:32:19.84 ID:bVbNjYk40.net]
今日発見した衝撃の事実
なぜWindowsUpdateの時ファイルがぶっ壊れるのかというのがずっと謎だった
Application.ThreadExit イベントで書き出しスレッドの終了処理していたのだが
手動のシャットダウンだと問題なく呼ばれるのに、リブートするとThreadExitが呼ばれない
それどころか、フォアグラウンドで作成していたスレッドが強制終了させられている上
System.Threading.ThreadAbortExceptionmもSystem.Threading.ThreadInterruptedExceptionも送出されないまま
突然中断で終了しやがってた・・・
ひでぇ終了の

16 名前:仕方だ・・・
なんでリブートに限りこんなシーケンスで強制終了しやがるんだ、この糞が・・・
[]
[ここ壊れてます]

17 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 16:49:33.38 ID:tHPUBlll0.net]
セキュリティ的にアプデは大事だからね
多少強引な手段で終了してもいいよね仕方ないね

18 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 17:01:44.90 ID:3XrDrf840.net]
シャットダウンと再起動で違うのか

19 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 17:10:34.10 ID:pBlqXMv00.net]
もっと詳しく知りたい。

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

20 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 17:16:16.69 ID:bVbNjYk40.net]
>>16
セキュリティは最終的には自分のファイルが壊れないことを目的にやるわけだが
そのセキュリティ対策が破壊してくれるのであれば、本末転倒なのでそんな対策は不必要って思うわけだよ。



21 名前:デフォルトの名無しさん [2017/05/05(金) 17:17:13.60 ID:bVbNjYk40.net]
>>18
SessionEndingイベントが来たときはもう殺された後だねw
ここでは対策出来ない。

22 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 18:09:02.57 ID:pBlqXMv00.net]
>>20
おおう、そうなんか。

23 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 18:13:33.93 ID:A3oUashQa.net]
>>15
Windows Updateだろうが何だろうがリブート開始時に
ユーザーに確認なくプロセスの強制終了なんてそもそもされないと思うよw

何か勘違いしてない?

24 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 18:24:50.53 ID:A3oUashQa.net]
ちょっと調べた感じ
news.mynavi.jp/column/windows/270/
にあるような感じでレジストリいじっちゃったんだろうねw

25 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 18:43:02.46 ID:PzvORh1V0.net]
>>22
EWX_FORCEとかEWX_FORCEIFHUNGを指定してるんでしょ
https://msdn.microsoft.com/ja-jp/library/cc429713.aspx
セキュリティアップデートは確実にリブートする必要あるから多少の犠牲はやむを得ない
って思ってるんじゃね?

26 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 19:11:23.54 ID:FiATWWo80.net]
客側でこれを指定されたらたまらないなー

27 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 19:58:14.99 ID:ueXs9gXt0.net]
ExitWindowExの英文説明では、DWORD dwReservedのとこがdwReasonになってんね。

このへんかな

28 名前: mailto:sage [2017/05/05(金) 20:10:07.89 ID:05XvGSted.net]
プロセスの終了確認はあるだろうか、その結果タイムアウトした時のスレッドの落とし方はものすごい強引だった気がする。
昔shutdown -s -t 01で落として確認した事ある。

29 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 20:14:25.56 ID:3cKL/0El0.net]
OSの仕様なのか.NET独特の挙動なのか>>23みたいな話なのかはっきりしないな
.NET独特の挙動だったら業務でアプリ作っている人は死活問題じゃね

30 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 20:27:56.88 ID:PzvORh1V0.net]
>>26
日本語版のドキュメントが更新されてないだけみたい
WindowsXPからdwReasonになってる



31 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 20:30:18.07 ID:A3oUashQa.net]
いやいやデフォではプロセス強制終了なんてないよ絶対w

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

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

32 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 20:34:57.11 ID:3cKL/0El0.net]
俺は趣味でやっているだけだしアップデートも任意のタイミングでしかやらないからどうでもいいが
VSの有料ライセンス買っている人がいて心配だったら直にMSに聞いた方がいいな

33 名前: mailto:sage [2017/05/05(金) 20: ]
[ここ壊れてます]

34 名前:48:13.06 ID:05XvGSted.net mailto: >>28
業務アプリが走るような環境は、社内でKB単位で配布して、ログイン前に当たるようにしてると思う。
>>30
本人はプロセスじゃなくてスレッドを問題視してるのでは?
[]
[ここ壊れてます]

35 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 22:27:29.53 ID:ueXs9gXt0.net]
>>30
言いたい事はわかるw

まーもちつけ

36 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 07:24:56.49 ID:KTPtsEWO0.net]
>>30
10以前はWindowsUpdateをするタイミングをこちらの問題の無いタイミングで出来たから
そもそも問題自体が存在しなかったという事実。

37 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 07:54:55.96 ID:rojhZA3i0.net]
適度にトラブル起こしてあげないと窓際族の情シスの仕事がなくなっちゃうからね

38 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 08:25:02.90 ID:2V5tVO5D0.net]
>>27
これは良いこと聞いた。
うちも似たような仕組み作ってるグループあるから、ExitWindowsExも利用して調査してみるよう伝えてみるわ

39 名前: mailto:sage [2017/05/06(土) 08:57:56.21 ID:BE072L/9d.net]
>>36
UIスレッドでメッセージボックス出しとくと、プロセスを落とす正規ルートからはずれて再現できるとか、なんか色々こねくり回したよ。
今だと仮想マシンあるから、マシンが上がってくるの待つ辛さ無いかもね。

40 名前:デフォルトの名無しさん [2017/05/25(木) 06:03:37.70 ID:OZ9w4Yf70.net]
ロック処理についてちょっと相談です

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

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

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



41 名前:デフォルトの名無しさん [2017/05/25(木) 06:03:54.24 ID:OZ9w4Yf70.net]
●とりあえず簡単に考えた、しかし無駄が多そうに見える、もっと良いものが欲しい。
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 再試行;
 }
}
タイムアウト:
{
 タイムアウト処理
}
ロック成功:

42 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 07:25:50.25 ID:zdaQwC0X0.net]
ていうか普通にロック専用のオブジェクト作ってそれをロックすりゃいいんじゃねーの

43 名前:デフォルトの名無しさん [2017/05/25(木) 07:32:55.17 ID:OZ9w4Yf70.net]
>>40
それだとロック粒度が大きくなりすぎて逆にデッドロックの可能性を拡大してしまいますね。

44 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 07:34:38.83 ID:ZdIAUNK00.net]
セマフォ使ったらどう?
資源数もタイムアウトもあるし

45 名前:デフォルトの名無しさん [2017/05/25(木) 07:36:13.98 ID:OZ9w4Yf70.net]
>>42
セマフォは重いんですよねぇ
それをやるくらいなら>>39の例の方が効率的ですね。

46 名前:デフォルトの名無しさん [2017/05/25(木) 07:50:05.84 ID:OZ9w4Yf70.net]
>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はやはり捨てがたいものです。

47 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 08:14:43.50 ID:CNpknsWj0.net]
見も蓋もないが、設計が間違ってる気がする。

48 名前:デフォルトの名無しさん [2017/05/25(木) 08:20:40.14 ID:OZ9w4Yf70.net]
>>45
そんな事は無いと思うんだけどな、セマフォに標準で実装されているように
これはマルチスレッドデザインパターンとしては基本になるかと。
というか教科書にある典型ですし。
ところが、Monitorにはなかったので、おや何故ない?となっている所。
せっかく高性能なのに有効活用できないのは勿体ないと。

49 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 08:30:18.43 ID:a8axhl9cd.net]
>>46
そもそもなぜロックが必要なの?

50 名前:デフォルトの名無しさん [2017/05/25(木) 08:34:06.74 ID:OZ9w4Yf70.net]
>>47
分からないならレスしないでもらえますか?
流されては叶いません。



51 名前:デフォルトの名無しさん [2017/05/25(木) 08:52:37.16 ID:CNpknsWj0.net]
>>39
みたいなことをするぐらいならSpinLockを使った自前実装で処理したほうが良いかもしれない。

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

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

52 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 08:54:51.29 ID:foQMlEN20.net]
そんなにパフォーマンスが大事ならオプティミスティックロックも検討したら?
どうせ滅多に競合なんかしないでしょ

53 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 09:01:40.08 ID:a8axhl9cd.net]
>>48
そもそもロックが必要という判断に至った理由が明らかでない
ロックがベストな選択肢である保証はどこにもない

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

55 名前:デフォルトの名無しさん [2017/05/25(木) 09:05:42.97 ID:OZ9w4Yf70.net]
>>51
ちゃんとわかっている人を待っているんだから黙ってろ

56 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 09:12:36.71 ID:foQMlEN20.net]
アイデアを募るならもっと広い視野で考えたほうがいいってことでしょ
矮小な問題に限定されすぎていて、マイクロベンチマークレベルの不毛な議論にしかならない
状況によっては工夫すればロックフリーな実装もできるかもしれないよ

57 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 09:21:45.74 ID:CcaoVCJwa.net]
うわあ。

58 名前:これは無視すべき奴だw []
[ここ壊れてます]

59 名前:デフォルトの名無しさん [2017/05/25(木) 09:24:19.81 ID:CNpknsWj0.net]
>>52
https://www.jpcert.or.jp/java-rules/lck07-j.html
ソースはそれっぽいものを適当に引っ張ってきた
ロックする順序は意味あると思うんだけど、、、

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

60 名前:デフォルトの名無しさん [2017/05/25(木) 09:24:47.08 ID:OZ9w4Yf70.net]
>>55
世の中上には上の奴がいるんだよ、俺なんかよりはるかに知識を持っている奴はいくらでも。
お前より俺の方が知識あるが、そんな俺よりもはるかに凄いやつは山のようにいるんだ。
そろそろ、中二病みたいな全能感は捨てな



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

62 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 11:13:36.68 ID:5itOJ4P90.net]
楽観的ロックのタイムアウトで、ロールバックするのが確実

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

63 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 11:20:25.49 ID:ts6Ek6dYM.net]
これ触っちゃいけないやつじゃん・・・

64 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 11:39:35.31 ID:OZ9w4Yf70.net]
>>59-60
だから、もう来るなって、お前には何も聞きたいことは無いし、そんな話は聞かされたところで新たな何かには全くつながらない。
C#スレには、初心者用じゃないもう一本の匿名ゴミすれあるだろ、そっちいけよ。
分かっている人が来たときにコメントがゴミだらけになる。

65 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 12:20:12.43 ID:XlAyjrlQa.net]
たぶん質問者の方が俺よりずっと詳しそうだから釈迦に説法だと思うけど、

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

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

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

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

66 名前:デフォルトの名無しさん [2017/05/25(木) 12:28:42.96 ID:OZ9w4Yf70.net]
>>62
まさにその通りです、それが直下に書いた雑な例です。
このヘルパーを作りたいという訳です、見るからに美しくないので詳しい人の登場をお待ちしているという所です。
必要な全ロック取得に失敗したら即座に全て解放して、乱数時間まって次を伺う。
これはよくある教科書通りです。

67 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 13:09:08.98 ID:a8axhl9cd.net]
>>62
キチガイに触るなよ

68 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 13:35:53.97 ID:Gj1BXJi/M.net]
基地外大暴れワロタ

69 名前:デフォルトの名無しさん [2017/05/25(木) 13:51:23.71 ID:CNpknsWj0.net]
ideone.com/GHvgKN
勢いで書いた。

70 名前:デフォルトの名無しさん [2017/05/25(木) 13:59:41.85 ID:OZ9w4Yf70.net]
>>66
いいっすね、いいっすね
Thread.Sleep(100); ← ここがもうちょっとマシな待ち方になるといいんですがw
自分はインターフェイスは、IDispose使ってロック範囲を lock で書いたような雰囲気にしてます。
タイマーは、初ロック失敗の後にスタートさせて、ロック成功(大半のケース)でロスが少ないようにしてます。
なかなか素敵な感じになってくれませんw



71 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:sage [2017/07/11(火) 08:22:12.16 ID:MCsEtOKi0.net]
↓のテンプレートとジェネリックの違い、にある
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics
トップ項目にある
・C# ジェネリック クラスでは、ユーザー定義演算子は呼び出すことができますが、算術演算子を呼び出すことはできません。
"算術演算子を呼び出すことはできません"ってどーいう意味っすか?
算術演算子って+-*/のこと?

72 名前:デフォルトの名無しさん (アウアウイー Sacb-G8QH) mailto:sage [2017/07/11(火) 09:57:14.72 ID:t4lUkhAUa.net]
遠まわしに制約について言ってるのかな。

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

73 名前:デフォルトの名無しさん (ワッチョイ 5eea-bL4e) mailto:sage [2017/07/16(日) 01:54:50.85 ID:mMdQfX5s0.net]
楽しそうだな。w

74 名前:デフォルトの名無しさん (ワッチョイ 6a90-qWRz) mailto:sage [2017/07/29(土) 20:36:18.47 ID:Gw88XuqA0.net]
ジェネリックに算術演算子を使うなら、そんなに速度が要求されないんなら
(dynamic)にキャストしてからなら演算子が使える
まあこれキャッシュ付きのリフレクションだから速度は期待しないでよー

75 名前:デフォルトの名無しさん mailto:sage [2017/08/21(月) 18:56:43.94 ID:LgNyTwHt0.net]
C++ではテンプレートに焦点をあてた書籍はいくつかあるけど
C#でジェネリックに絞ったオススメ書物ってのはありますか?
C++のテンプレートテクニックのどれが使えないか?ってのは知りたい。

76 名前:デフォルトの名無しさん mailto:sage [2017/08/21(月) 19:55:10.65 ID:KmAQXiSua.net]
C#のジェネリックって1時間で読める記事で網羅されるぐらいの内容しかないっすよ

77 名前:デフォルトの名無しさん mailto:sage [2017/08/21(月) 20:02:09.15 ID:vP5jpteT0.net]
テンプレートテクニックとか全部忘れてOK

78 名前:デフォルトの名無しさん mailto:sage [2017/08/21(月) 21:10:14.69 ID:qdRqCzb30.net]
プレートテクトニクス

79 名前:デフォルトの名無しさん [2017/08/27(日) 02:29:03.34 ID:/hywh0UG0.net]
式テンプレートジェネリックでどー書くんだよ

80 名前:デフォルトの名無しさん [2017/10/09(月) 21:40:27.74 ID:dzl0TrLma.net]
すみません。ちょっと急いでいます。

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



81 名前:デフォルトの名無しさん [2017/10/09(月) 21:54:29.58 ID:rAF1hT8M0.net]
お願いします。同じものですか?

82 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 21:56:31.06 ID:28tAbNEV0.net]
アクセス修飾子を省略したクラスは internal になる
public とか internal とかの意味については↓

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

83 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 21:56:50.83 ID:u67WqECL0.net]
>>77
外部から見えるか見えないか

84 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 22:03:58.01 ID:rAF1hT8M0.net]
ありがとうごぜます。
internalですね。アセンブリ言語レベルの話のようなので
まだそこまで至ってないのでpublic, private, protectedだけ使います。
すみませんでした。

85 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 22:12:08.58 ID:Y4203ffV0.net]
「アセンブリ」ってみて「アセンブリ言語」って理解するのは先が思いやられるな。全然意味が違う話なのに

86 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 22:16:05.20 ID:28tAbNEV0.net]
>>81
上記のページで

87 名前:「アセンブリ」と言ってるのはアセンブリ言語のことではなくて
「exe」とか「dll」とかのファイル単位での機械語のまとまりのことだよ
[]
[ここ壊れてます]

88 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 22:41:05.37 ID:rAF1hT8M0.net]
ありがとう。
今自分でも調べていてなんか違うなーって思ってました。

89 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 23:04:42.97 ID:/pZGRYTm0.net]
bin

バイナリ・ファイル

90 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 00:40:47.02 ID:pliWVB3X0.net]
今となっては、いや初めから忘れてもいい話だったけど
ファイル単位の物理的なまとまりはモジュール(.netmodule)で
モジュールをまとめた論理的まとまりがアセンブリ(.dll/.exe)
Visual Studioが2002の初めから一貫してサポートしてないこのモジュールって単位をMSはどう使うつもりだったんだろう



91 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 21:13:43.71 ID:9Raz+qz10.net]
最終的に1つのライブラリにしたいものをC#とF#で部分ごとに書き分けるとかそういう例は見た事あるけど
(ものによってはF#のほうが書きやすいとか)
実際それが必要なユーザがどれだけいるのかって話な

92 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 23:25:11.21 ID:I+aeGBiR0.net]
C++/CLIとC#の組み合わせがある。

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

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

93 名前:デフォルトの名無しさん mailto:sage釣 [2017/10/11(水) 03:26:54.68 ID:rqqSAVqsM.net]
iron python も?

94 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 13:52:47.94 ID:ufsScDVj0.net]
event解除ってnullぶっこんでもいいのかしら?
何処見ても-=でしろってのばかりで全解除の適切なやり方載ってないんだけど
一応null代入で動いてるぽいけどちと不安

95 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 14:05:31.13 ID:4p9Ry6Jxa.net]
まいなすはそれだけ消す、nullはすべて消す
できわるいコードだとnull入れると落ちるw

96 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 14:18:32.71 ID:ufsScDVj0.net]
全解除ってそれなりに需要あると思うんだが何処も扱ってない不思議
+=って内から外へ処理出しする訳だから
インスタンスが破棄されたら当然破棄されるべきなのにどうもそうなってない
nullぶっこめばGC回収されるみたいだけど正しいやり方なのかな

97 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 15:17:21.27 ID:8oWZ+6kpM.net]
設計次第じゃないの

98 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 15:34:04.84 ID:jnsT8t6ma.net]
購読側じゃなく発行側が勝手に解除ってのがちょっと...
むしろどういう場面で必要になるのか想像できないな

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

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

99 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 15:50:00.66 ID:h6dEijxza.net]
>>92
正しいというかとりあえず安全なのは何もしないの放り込んどく
それでも勝手に消されて困るのがあるかもしれんがw

100 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 16:11:03.50 ID:ufsScDVj0.net]
>>94
例えば非同期通信でデシリアライズ終わったらイベント投げて後は勝手に死ね、って場合
-=だと発行側で解除するのが困難でリークしちまう
最新VerC#ならTaskで後処理書けばいいけど、Unityだとつい最近まで3.5だったから



101 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 16:24:45.96 ID:jnsT8t6ma.net]
>>96
俺の理解不足だったらごめん

リークするのはイベントの購読側のオブジェクトLがイベントの購読を解除しないまま
Lを参照する変数がなくなった場合で

102 名前:A発行側のオブジェクトPのイベントに
Lのメソッドが登録されたままPへの参照がなくなってもそれはリークにならないと思うんですが
[]
[ここ壊れてます]

103 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 16:39:10.41 ID:ufsScDVj0.net]
>>97
そう思ってた時期が俺にもありました
しかし実際はリークしてOutofMemoryが出る
どうも購読側参照が残ってると到達可能と見られてGC回収されないぽい
本当にそういう理屈かは知らんけどnullぶち込むと例外でなくなる

104 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 17:26:02.20 ID:jNhOnQNR0.net]
思い込みって怖いネー

105 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 17:46:05.16 ID:GswCLlj60.net]
>>98
>どうも購読側参照が残ってると到達可能と見られてGC回収されないぽい

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

106 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 19:19:26.31 ID:j/PgXgnk0.net]
循環参照しててもルートから到達不能なら回収されるよ
されないなら単に循環参照以外の参照が何かしら残ってるだけ

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

107 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 21:18:06.23 ID:GswCLlj60.net]
>>101
すまんすまん、他の言語と勘違いしてた。

108 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 14:20:16.62 ID:7CEykIkZ0.net]
WebBrowserコントロールを使うと、レジストリ編集しないと自動的にIE7相当になってしまうんですが、
レジストリ編集無しでIE11相当にするにはどうしたらいいでしょうか?

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

109 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 14:42:48.60 ID:uJ4GX7RNM.net]
IEは他にはhtmlのmeta要素使うとか
レジストリっていってもHKCUなんだからアプリ起動時に書き込むだけのことだけど

110 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 18:40:38.64 ID:MJK6I9RA0.net]
>>103
CefSharpっていうChromiumの実装がNuGetにあるよ
AnyCPUに対応してないんで導入が若干手間だけど気合いでがんばれ



111 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:31:11.06 ID:NuL34q9d0.net]
>>103
CoInternetSetFeatureEnabled

112 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 07:59:20.53 ID:mWvJQqvN0.net]
#EntityFrameworkの質問ってここでよいですか?

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

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

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

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

113 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 13:46:10.03 ID:325qmzymM.net]
ここじゃないと思うの

114 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 14:56:45.39 ID:dTBoNCZ50.net]
>>107
で、app.dbはどこに有るのよ、

115 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 14:57:20.68 ID:E4FIT7xPa.net]
俺ならexeパス取得して絶対パス作ってそれ使うけど、
絶対パスいやならカレントフォルダ変更したら?

116 名前:107 mailto:sage [2017/12/18(月) 23:30:30.75 ID:mWvJQqvN0.net]
>>109
プロジェクトフォルダにできます。
ただ、プログラム実行時は別のパス見てるからDBないエラーになります。

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

117 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 15:13:16.63 ID:n7dS7ECy0.net]
個々の人ってWinFormとWPFどっちで作ってる?

118 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 15:13:40.84 ID:K0nOGJob0.net]
WPF

119 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 16:15:17.15 ID:jcdX0HHma.net]
何度聞かれてもformだ

120 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 16:16:35.61 ID:PdI3PgJiM.net]
オレも2年前からWPFにした。



121 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 16:35:43.42 ID:GvxCaHuK0.net]
新規は基本的にWPFだけど、使い捨てのツールはFormsのことも多い。

122 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 16:54:40.12 ID:Jm0z8SXaF.net]
昔はVSが何かっつと即堕ちして使いもんにならんかったが
今はまともになったんかねWPF

123 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 17:32:53.36 ID:n7dS7ECy0.net]
WPFって技術資料があんまないから、つっかかりにくいんだよなあ

124 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 18:07:24.15 ID:jSVu2Yi+0.net]
>>118
日本語が変だな
外国人?

125 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 18:22:11.56 ID:OKQGXBiEx.net]
>>119
あれだ外人からみれば
そうみえんじゃねw

126 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 20:17:21.07 ID:jSVu2Yi+0.net]
つっかかりにくい→つかえやすいorつっかえやすい
それとも
つっかかりにくい→とりつきにくいorとっつきにくい

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

127 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 20:22:19.59 ID:TCYSbVmxa.net]
読解力ないな
外国人?

128 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 20:26:45.27 ID:sT88mvz00.net]
読解力が無かったら修正例は書けないと思う

129 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 21:26:10.60 ID:mh0j3eXv0.net]
どこかの田舎もんが書いた文章なんだろ

130 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 08:43:08.79 ID:qva7Cn1y0.net]
そんな事にも突っ込まないといけないほど余裕がないんだろうな



131 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 21:07:22.93 ID:ff9XOb220.net]
ILMergeについて質問です

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

132 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 21:23:20.13 ID:/QyX6ETP0.net]
>>126
それはILMerge関係なくA.DLL と B.DLL のライセンスの問題です
結合が禁止されていなければ添付して配布するのと同じになります
どんなライセンスかによって違うので
【License】ライセンス総合【利用許諾】
https://mevius.5ch.net/test/read.cgi/tech/1266247461/
へどうぞ

133 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 21:33:00.91 ID:7hYpzMEE0.net]
>>126
> この X2.EXE を配布する場合、A.DLL と B.DLL の著作権情報を明記すれば問題ないという認識で合っていますか?
各々のライセンスを確認するしかない

134 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 22:13:04.36 ID:ff9XOb220.net]
>>127-128
レスありがとうございます

135 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 23:46:33.39 ID:3zSQiFnB0.net]
ラムダ式から右辺の情報を取得する事は出来ますか?

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

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

136 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 01:19:13.10 ID:7ACR6glp0.net]
ラムダ式を受け取るメソッドの引数を
Func<String>の代わりにExpression<Func<String>>にしたりする
キーワードは式ツリー

137 名前:130 mailto:sage [2018/02/02(金) 00:27:05.13 ID:eoTWLp2s0.net]
>>131
ありがとー。
軽く見てみましたが、Expression ってよく分からないですね。。
式ツリーでも、もっと調べてみます。

138 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 16:59:47.00 ID:KbLCHvlc0.net]
サイズ、位置が固定されているウィンドウを外部プログラムから移動、サイズ変更する方法を教えてください

139 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 20:22:55.89 ID:ElvL/+ZbM.net]
とりあえず一般的には
FindWindowやEnumWindowsで目的のウィンドウのウィンドウハンドルを手に入れて
SetWindowPosする
>>133のウィンドウがこれでできるかどうかはそのプログラムの作り次第

140 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 20:56:39.50 ID:KbLCHvlc0.net]
>>134
ありがとうございます
それで移動、サイズ変更できないウィンドウをどうにかできないかなと思い質問してみました
ユーザーが移動サイズ変更できないウィンドウでも強引にしてしまうプログラムがあるらしいので、どうしてるのかな?と



141 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 21:00:42.72 ID:00bUqpHu0.net]
>>135
とりあえず直接のC#の話でなくWinAPIなんだからそっちで調べた方がいいと思うよ

142 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 21:21:31.71 ID:KbLCHvlc0.net]
>>136
ありがとうございます

143 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 06:01:32.86 ID:W1XJdyx10.net]
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

144 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 14:21:53.70 ID:hXBdpr6O0.net]
厳密に言うとC#の話じゃないんだけど
TcpClientでコネクション使い回しというか
開けっ放しでデータ送り切るって出来ない?
flushしてもデータ残っててCloseしないと全部送られない

145 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 15:36:40.77 ID:Cpp6LEO80.net]
ソースで説明してくれ

146 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 15:51:30.50 ID:hXBdpr6O0.net]
そんな複雑な話じゃないんだ
GetStream()でストリーム取ってWrite()するだろ
でもClose()しないとケツのいくばくかはいつまで経っても送られない
断続的に送りたいから、いちいちClose()してからConnect()やり直すとかしないで済む方法あるか知りたい

147 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 15:59:29.12 ID:uvdwBq6N0.net]
NoDelay=true

148 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 16:03:49.46 ID:hXBdpr6O0.net]
おおサンクスやってみる

149 名前:デフォルトの名無しさん [2018/04/16(月) 21:16:34.15 ID:f86xegYk0.net]
質問です。

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

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

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()は同時に実行されるという意味でしょうか?

150 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 21:51:32.37 ID:zRE5gkIia.net]
スレッドは使い捨ての領域だから、
その中で遅延実行しても戻り値は受け取れないよ
だって戻る領域が数秒後も存在しているか分からないからね
って意味だと思う



151 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 23:04:11.81 ID:qlfABgAK0.net]
マルチスレッドなんて、素人がやるものじゃない。
Ruby を作った、Matz でさえ、何十年もやっていないのに

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

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

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

152 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 23:28:22.82 ID:pnvSaCZFa.net]
これがシングルスレッドおじさん再登場の瞬間であった

153 名前:144 mailto:sage [2018/04/17(火) 06:32:51.54 ID:/3sDS4fX0.net]
どうもありがとう

154 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 08:18:31.78 ID:iJwyhGM3M.net]
シングルスレッドだけで出来る仕事って限られてないか。通信なんか絡んだらマルチスレッド必須でしょう。私の現場は.net3.5なんでback|ground work|er使ってるよ。

155 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 08:24:21.80 ID:AgNOdAZLM.net]
>>149
taskって4.0からだっけ?

156 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 10:03:57.21 ID:iJwyhGM3M.net]
>>150
確かそうです。
taskとか使えると楽なんですが4.0強制もできない案件なんで。

157 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 10:50:32.95 ID:EhGIAhyrd.net]
どうしても.net3.5を使わないといけないんだったらRxで処理するわん

158 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 11:51:31.97 ID:iJwyhGM3M.net]
おっ!
いいこと教えてもらった。
Rxってsilverlightだけじゃないんだ。

159 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 12:18:07.14 ID:xGjbcgxza.net]
そんなの使えるなら.NET4だって使えるでしょw
3.5が使えて4が使えないプラットフォームは存在しないと思うけど

160 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 12:48:49.14 ID:JQ78IAVca.net]
そういう問題じゃないんだよ・・・



161 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 13:03:19.02 ID:iJwyhGM3M.net]
お客様のPCがWindows7ならデフォルトで3.5が入ってるでしょう。4.0にしてから使ってくださいとは言いずらい。

162 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 13:07:10.43 ID:rojjHsw+0.net]
ちょっと前までUnityも3.5止まりだったから多少はね?

163 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 16:37:52.80 ID:joazaAE7M.net]
Rxってなんぞや!!

164 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 17:17:34.43 ID:JQ78IAVca.net]
gugure

165 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 19:00:52.03 ID:F4BOoGzu0.net]
ググれは正論だけど、せっかく話題になったんだからここの住民の意見も聞いてみたい。使ってる人の感想とか。

166 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 19:14:49.95 ID:joazaAE7M.net]
せや!Rxについて詳しく

167 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 19:54:15.01 ID:xGjbcgxza.net]
全然関係ないけど、receiveの略が何でRxなのか昔から結構謎

168 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 20:38:22.07 ID:F4BOoGzu0.net]
それ組み込みの世界だね。送信ポートはTxだ。スレチだね。

169 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 14:53:40.81 ID:ur62Feqwa.net]
インストールされている証明書の読み取り、エクスポートをやりたいんだけどさ
ググるといろいろ出てきてX509とかってのを使うと良いとある
まだ実装とか全然なんだけど、この情報だけだと不安なのでだれかやったことのある人いない?

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

170 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 18:58:35.37 ID:+FWBwd0JM.net]
ワッチョイなしスレが1000行ったからこっちをage



171 名前:デフォルトの名無しさん mailto:age [2018/05/03(木) 18:59:21.23 ID:+FWBwd0JM.net]
ageられてなかった…

172 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 20:04:32.00 ID:hRV05sGM0.net]
windowformアプリケーションで

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

ってしたいんだけど

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

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

173 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 20:12:02.30 ID:h17LifXxa.net]
データとUIを分離するとして、データ保持と計算用のクラス、formは入力のみ、表示のみって感じになるのかな
でも、まぁそんなのAでもBでもいいだろ

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

174 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 20:14:46.22 ID:QSaueu9Z0.net]
なんとなく、こういうのを"お作法"と呼ぶマにはいいイメージがない

175 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 20:20:22.68 ID:hRV05sGM0.net]
>>168
ありがとうございます。
解像度は自動取得なのでディスプレイのoサイズでした。

176 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 20:22:53.75 ID:hRV05sGM0.net]
>>169
すいません。
プログラミング初めて勉強なので、なるべくへんなコーディングしないように可読性高くと考えてまして、
普通はどう描くんだろうなというところが気になって仕方ない。
public変数作りすぎると、後でどこかで変に触るとわけわからんことになるのかなと極力使わないように心がけてます。

177 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 20:37:07.58 ID:HEa1U9rI0.net]
何かフリーソフトを作ってみたくて勉強しているところなのですが、GUI?を学ぶ上で良い本があれば教えていただきたいです

178 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 20:55:12.49 ID:L0LZvRGB0.net]
>>171
フォームは入力の受付と出力の描画だけをする
内部で使うデータはモデル側で持つ

179 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 21:33:04.91 ID:hRV05sGM0.net]
>>173
それでいってみます。
ありがとうございます。

180 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 21:34:38.54 ID:hRV05sGM0.net]
連投すいません。

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



181 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 21:39:42.44 ID:EvkA5vHv0.net]
>>175
ボタンのAnchorのプロパティをTop, Rightに変更

182 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 22:00:01.60 ID:hRV05sGM0.net]
>>176
Anchorって設定があったんですね。
できました!
ありがとうございます。

183 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 22:18:10.81 ID:hRV05sGM0.net]
Form1で作成したmethod1をForm2で使用したい場合どのようにすればいいのでしょう?

Form1.method1();

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

184 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 23:14:52.98 ID:hRV05sGM0.net]
駄目だ煮詰まってきた。

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

185 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 23:16:00.99 ID:o0wzY09D0.net]
煮詰まる=完成する

186 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 01:05:27.05 ID:i9GeFih30.net]
>>179
エラーの内容は?

187 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 08:03:54.33 ID:CBIAOUw10.net]
>>181

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

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

です。

188 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 08:08:30.21 ID:CBIAOUw10.net]
ソリューションエクスプローラーで
追加→既存の項目
でフォーム一切合切を取り込むと
フォームの[デザイン]タブのところで新規のフォームが表示され、これをいじると上記エラーが出ます。
フォームの[デザイン]タブをいじらなければ正常に実行されます。

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

189 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 08:36:55.68 ID:CBIAOUw10.net]
地道に

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

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

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

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

190 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 08:47:39.95 ID:5nbJxYdYa.net]
〜VS2015しか使ってないが俺はエラー起きたことないよ。原因分からないけど、何かやらかしてるんでしょ



191 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 09:57:21.01 ID:+PUGPCx60.net]
無闇にコピペした結果を環境のバグとか
プログラム向いてないよお前

192 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 10:00:36.87 ID:CBIAOUw10.net]
失礼しました。
私がよく理解していないために、しなければいけない作業をしていないのかもしれませんね。

193 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 10:35:22.91 ID:TTUQSH5zM.net]
むしろしちゃいけない作業をしてるような気がする...

194 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 11:08:14.41 ID:T9f+iK/r0.net]
>>178
そもそもこの質問の時点でFormsのコード部分が何をやってるのか理解できてない可能性がある

195 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 11:25:44.32 ID:qEM4shRT0.net]
いきなり難しいことをやろうとするとダメやね

196 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 11:27:18.98 ID:LtMyhhwZM.net]
基礎も身につけずに一端のフリして解決しようとして、半端で折れるバカってのはよく聞く話

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

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

198 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 20:30:34.54 ID:Tc8hf/iLa.net]
WinFormのデザイナは中途半端に内部実行するからしょっちゅうトラブるんだよな
コンストラクタでなんかやってる奴は特に要注意

199 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 22:08:57.94 ID:1Zee5iE50.net]
デザイナかどうか判断するコードを書くのは飽きた

200 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 22:38:59.04 ID:T9f+iK/r0.net]
そんなあなたに!WPF!



201 名前:デフォルトの名無しさん mailto:sage [2018/05/05(土) 22:40:45.58 ID:CBIAOUw10.net]
フォームをコントロール含めて継承すると継承先でコントロールの編集ができなかったり云々
という書き込みを見たので、
そこで提案されていた新規フォーム作成して
そこにコピペとしてみて結果オーライだったのでそれで良しとしたのですが、
私の方でなにか既存のフォームを取り込むのにまずいことをしてたのかもしれません。
記憶にないけどDesigner.csを直接書き換えしたかなぁ・・・。

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

202 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 07:44:34.64 ID:8BI4PAGy0.net]
FormかWPFか悩んでるならWPFを推す。
最初は難しいがXAMLはUWPでも使っていて今後につながると思う。

203 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 15:08:05.14 ID:gzoDeGmX0.net]
今後ピクセル単位でのUI作成は完全に無くなるからなぁ

204 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 16:52:40.62 ID:6XezKW2ea.net]
多段継承してるカスタムコントロールはぶっ壊れやすい
Winアプリ作らにゃならんならWPFのが

205 名前:}シってのはまあそうだ
でも将来性あるとは思わんな
[]
[ここ壊れてます]

206 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 17:34:01.02 ID:ZPoK8KSTM.net]
WPFそのものの将来性はともかくとして、その技術のエッセンスが次代に引き継がれると思うんです。
今後もWinアプリを開発することになるんで、なるべく将来性と言うか潰しのきく技術に投資したいと思ってWPFにしたんだけど。

207 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 17:36:34.98 ID:w10wIaHya.net]
>>199
それはないよw
継承の段数は関係なくて、単にコントロールのカスタマイズは意外と難しいってだけの話

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

208 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 17:37:23.44 ID:6XezKW2ea.net]
潰しがきくってんならなおさら独自仕様なんぞあかんやろ
WPF出てから何年経ってるよ
他に採用してるとこないのはそういうことだ

209 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 17:39:54.31 ID:YMV7ENjt0.net]
>>202
XAML

210 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 17:41:16.14 ID:6XezKW2ea.net]
>>201
いや正確にはシステムがぶっ壊してるんじゃなく
レイアウト決定だの初期化順番だので罠にはまる確率がガンと上がるって話
コントロール1種を少々カスタマイズしたくらいじゃあんまハマらんさ



211 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 17:43:51.97 ID:EPydt9+c0.net]
GDIが使えない時点でゴミ
WPFでCADを提供してみろ

212 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 18:14:23.28 ID:8BI4PAGy0.net]
>>202
対案示してくれると検討もできるんですけど。

213 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 18:17:03.64 ID:6XezKW2ea.net]
>>206
オプショナル独自仕様なんぞわざわざ覚えんでもC#だけ抑えときゃいいじゃん

214 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 18:17:55.59 ID:JGiuZYwWa.net]
formとwpfどっちかじゃなくて、状況に応じてどっちか使えばいい
言語だってそうだ。c#に拘らず、必要に応じてほかの言語も使えば楽になるぞ
縛りプレイとか馬鹿臭くてやってられん

215 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 18:18:35.39 ID:gpR98zCG0.net]
何でこのスレ来てるの?

216 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 18:21:30.52 ID:gzoDeGmX0.net]
xamlが単なるコードトランレート言語だったなんて知らなかったんだよ。

217 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 18:31:06.82 ID:8BI4PAGy0.net]
>>207
まさかの浅い答えでしたね。
今時、なんか開発する時は言語だけじゃなくAPIとかプラットホームとのセットじゃないの?

218 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 18:36:24.83 ID:Yj4OtQcz0.net]
最近form触る機会あったけど、WPFになれた後だとバインディングが面倒でならない
formはformでわざわざ部品探したり作る必要ないから良いんだけどね

219 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 18:49:36.56 ID:c85H7Qr90.net]
Bindingが遅すぎて使い物にならない

220 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:05:20.38 ID:8BI4PAGy0.net]
なんか変なイチャモン付けてる人いるけど。
CAD作れるかとか、Formならできるの?
Windows、.net、C#でGUIアプリ作るならFormかWPFしかないじゃん。
Formは終わった技術で行き止まり、WPFは普及しなくて過渡的な技術になるかも知れないがその先につながりそうでって言ってんです。
もっと論理的に反論して欲しいです。



221 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:06:34.14 ID:lPSPWHr00.net]
昔から居ついてるから一々突っからなくて宜しい

222 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:13:48.84 ID:8BI4PAGy0.net]
>>215
昔から居てもアホな書き込みすると初学者は惑わされるのよ。
自分が理解出来ない技術はみんなダメって言ってないか?
ちゃんと論理的に反論してよ。
出来ないなら駄まってろ。

223 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:15:40.37 ID:JGiuZYwWa.net]
formでCAD作ってる奴ぐぐると日本人でも複数いるよ

224 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:17:40.07 ID:OZSh5wZJ0.net]
>>214
お前

225 名前:さんみたいな銀の弾丸求める奴ぁ先がないぞ
XAMLは文字列だらけで設計の筋がいいとは到底言えない
もし次があるなら全然違うもん出してくるんじゃないの
[]
[ここ壊れてます]

226 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:21:54.60 ID:8BI4PAGy0.net]
>>217
FormでできるならWPFでもできるだろう。
Formの優位性は何?

227 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:24:56.35 ID:8BI4PAGy0.net]
>>218
XAMLは面倒よ、たしかに。
でもね、オレは使ってないがGUIのリソースエディタがあるんじゃないか?
なくても直ぐにできるよ。

228 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:27:17.19 ID:8BI4PAGy0.net]
>>218
UWPもXAMLだよ。
MSは当面これでいくんじゃないの。
あんたよりMS信じる。

229 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:34:40.78 ID:OZSh5wZJ0.net]
XAMLの筋が悪い一例としてIDEサポートがHTMLにすら劣る点が上げられる
今でも時々vsごと落ちる
まあ次が出る前にWinアプリ自体がオワコンになる可能性も低くないけどな
あんたの人生だから好きにしたらいいよ

230 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:44:28.98 ID:8BI4PAGy0.net]
>>222
XAMLでの開発3年弱だがVS落ちた経験ないよ。
Winアプリがオワコンになるんだったら、早いとこ他の言語・環境に移行したら?
オレはWinアプリだけじゃなくタブレットとかスマホにも適用できると思ってるから、この道行くよ。



231 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:47:05.22 ID:YMV7ENjt0.net]
>>222
俺も落ちたことないんだけど、どんな環境で何したん?

232 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 19:59:30.59 ID:P5UQ0avb0.net]
WPFはもちろん最良ではないけど
すくなくとも現行のUWPと共通のXAML使ってるぶんFormsよりは十倍マシ

233 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 20:10:59.67 ID:OZSh5wZJ0.net]
メモリ8Gで5段くらいネストした奴編集してたらストンと落ちたぞ
vs2015だ

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

234 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 20:17:33.07 ID:YMV7ENjt0.net]
>>226
ハードウェアアクセラレーションの問題ではなくて?

235 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 20:19:15.57 ID:8BI4PAGy0.net]
>>226
すごいな。なかなか落とせるもんじゃない。
そんなにWinの将来に悲観的なら、本当にどこかに行ってください。
間違った書き込みを堂々と恫喝的にされると初学者の道を誤らせるよ。
それって罪なことです。
このスレタイでは。

236 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 20:22:22.92 ID:YMV7ENjt0.net]
>>228
落ちるときは落ちるさ
こんな風にその問題を追及しないのがアレ
https://stackoverflow.com/questions/31021049/visual-studio-2015-crashes/33182194#33182194

237 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 20:28:51.95 ID:8BI4PAGy0.net]
>>229
他の環境はそんなに安定してるのか?
VSが特別に酷いとは思わないけど。
MSデスってなんでここにいるの?

238 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 20:30:40.96 ID:YMV7ENjt0.net]
>>230
俺がいつMSをデスった?いつ他の環境と比較した?
ID:OZSh5wZJ0と間違えなさんな

239 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 20:37:41.43 ID:8BI4PAGy0.net]
>>231
Winアプリはオワコンって言ったろ。
それより、CAD作ってみろ、って恫喝的に書いたろ。
あのフォローをしてくれ。論理的に。

240 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 20:39:01.49 ID:8BI4PAGy0.net]
>>213
ごめん。
人違いだった。



241 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 20:40:12.87 ID:8BI4PAGy0.net]
>>233
たびたび訂正ですがアンカ間違えた。
すまん。

242 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 20:46:08.35 ID:OZSh5wZJ0.net]
わかりやすく発狂してんなー
初学者どうたら言うんならもっと普及してるもん押すべきじゃあないの?
言っとくけどC#自体は他でも使われてるからなUnityとか

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

243 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 20:58:22.97 ID:8BI4PAGy0.net]
>>235
見っともないぞ。
昔からいる古狸かも知れないが、もっとちゃんとしろ。
初学者惑わす書き込みを堂々とするのはやめて、自分の考え披露するのは構わないけど。

244 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 21:16:41.42 ID:YMV7ENjt0.net]
>>232
だから俺は違うってばwww

245 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 21:31:09.89 ID:JjviwauC0.net]
アンカさえまともに書けないやつがコード書けるのか?

246 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 21:39:39.84 ID:8BI4PAGy0.net]
>>237
ごめん。
ちょっと酔っ払って熱くなった。
もうここらで寝ます。
>>238
ご心配いただきありがとうございます。

247 名前:デフォルトの名無しさん mailto:sage [2018/05/07(月) 11:50:51.85 ID:zM6nOBFcM.net]
わたし錯乱某

248 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 02:53:46.31 ID:EHD0XpOQ0.net]
わい、コンソールアプリしか作ってない

249 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 03:04:56.28 ID:wFWfdcvC0.net]
>>241
.NET Core Global Toolsおもしろいよね

250 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 22:56:53.52 ID:oqUyZvi20.net]
フォームアプリケーションで

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

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

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

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



251 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 23:05:04.79 ID:KxM4SNOx0.net]
>>243
Aが入出力と, モデルのデータ保持という3役を担っているのが良くない。
出力が本業なので可能ならばそれに特化するが, 差し当たってはデータ保持を分離して別クラス(モデル)に切り出す

252 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 08:19:23.20 ID:RvuVG0qm0.net]
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行近くになっているのが可読性低下の原因かと思います。

253 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 08:19:38.98 ID:RvuVG0qm0.net]
Bの別のクラスを作って分離させたいんだけどBからAのインスタンス生成しているので、
BAの画面処理に基づいた1234はすべてBに入れることになってるんですよね。

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

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

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

254 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 08:45:11.14 ID:KCIDKf2Q0.net]
人の話聞いてないねw
じゃあもう好きにしたらいいと思うよ

255 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 09:11:24.66 ID:RvuVG0qm0.net]
>>247
私の説明か理解が悪いのでしょうか?

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

256 名前:ノはならないような。

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

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

257 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 09:18:34.84 ID:RvuVG0qm0.net]
たぶん端的にこう質問すればよかったのかと思います。

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

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

258 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 09:19:07.30 ID:vhGL8v7ea.net]
>>248
Aを入出力専門のAViewとデータ保持専門のDataHolderに分離
Bをゲーム画面描画専門のBViewと実際の内部処理を行うGameModel, 各種書き出しを行うWriterに分離

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

259 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 10:01:27.82 ID:RvuVG0qm0.net]
>>250
ありがとうございます。
理解できました。

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

A 初期値入力フォームを生成するクラス
B データを保持するクラス
C ゲーム画面表示クラス
D ゲームのルールに基づいてBを更新するクラス

分かりやすい。
これがオブジェクト指向ってやつか・・・。

260 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 10:07:34.76 ID:RvuVG0qm0.net]
自分は成り行きでBの機能の一部をCに放り込んでしまったから、
Bを処理するDも必要に迫られてCに入れざるを得なくなってたんですね。

入門書にあったサンプルプログラムはコード数が少なかったから、
BをCに入れてるものが結構あったので無意識にこんなもんだと思ってました。

こういうのって本では学びづらいですね。
勉強になりました。
ありがとうございます。



261 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 11:04:14.67 ID:PbE4ojLD0.net]
>>251
それはOOPではなくMVCな。一応。

262 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 11:05:17.79 ID:vhGL8v7ea.net]
まぁGUIアプリケーションでのOOPの具体的なアーキテクチャだから

263 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 11:23:13.92 ID:RvuVG0qm0.net]
MVCは初耳で今ググって勉強しました。

やはり自分のコードは人と共有できるレベルではなかったですね。
MVCの設計で修正してみます。

手続き型言語しかやってないので、
手続きで処理していって
「なんども同じ手続き出てくるな。」
と思ったらクラスにして分離する思考になってたんですけど、
それじゃだめですね。

こういうのが学べるいい本があったらいいなぁ。

264 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 11:32:37.31 ID:RvuVG0qm0.net]
dataHolderクラスってABCDどれからもアクセスすることになるんですが、
パブリックにして、どこからでも読み書きできるようにしていいんでしょうか?

バグの温床になるからダメ?

265 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 11:36:18.82 ID:RvuVG0qm0.net]
マイクロソフトのホームページだとPublicにしてますね。

これだとどこからでもすべてのデータにアクセスできるから便利だし可読性もいいけど、
どこかでうかつにdataHolderの変数に変な値を入れると、
どこがバグになっているのか全コード読まなければいけないですね。

うーん・・・。
世の中そんなもんなのか?

266 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 11:43:38.40 ID:vhGL8v7ea.net]
>>256
お好きに
結局は書きやすさと安全性のトレードオフ

ガッチガチに書くならgetterだけのImmutableオブジェクトを表すインターフェイスとそれを実装する具体クラスに分離してViewにはインターフェイスだけ教えるとか(あまりやらない)
作る人数とか規模によってどの程度強制するか変わってくるから程よくやるのが重要, 一貫性は重要だが徹底しすぎるとしんどい

267 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 11:57:15.21 ID:RvuVG0qm0.net]
>>258
immutableなんてものがあるんですね。
ごく一部の変数以外はimmutableで事足りるから、immutable設定にします。
publicでdataHolderクラス作ってメンバ変数はすべてimmutableにすれば、

可読性、コーディングの利便性、安全性

全部満たせますね。
なんて便利なんだ…。( ゚д゚)

268 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 12:02:17.65 ID:vhGL8v7ea.net]
>>259
残念ながらC#では上手くImmutableに出来ない(出来るかもしれないが最近やってないので詳しい人教えて)
TypeScriptとかなら既存の型にReadonlyを再帰的に付けた型が簡単に作れるんだけどなぁ

269 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 12:04:38.53 ID:F4kLnVK3p.net]
MVCって、VとCの境界が曖昧になりがちだよな。
ってか、VとCを分ける様な事するからUIが使い辛い物になるんだよな。

270 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 12:06:20.36 ID:vhGL8v7ea.net]
>>261
せやな
MVVMとかあるしな



271 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 12:12:09.32 ID:F4kLnVK3p.net]
そそ、MVCやMVPってのは、オンラインサービスみたいにデータ管理と画面操作が隔離してる様なコンピュータサービスでなら適してるけど、スマホとかパソコンの中で完結した操作性重視のアプリの設計には適して無いんだよな。

272 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 12:25:35.08 ID:CthSiE230.net]
厳密に言えば readonly と immutable は別
interface で表現出来るのは readonly

273 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 12:57:15.57 ID:RvuVG0qm0.net]
残念・・・

bool resultOfGetTimeLimit = int.TryParse(this.timeLimit.Text, out constant.timeLimit);

みたいに定数をフォームから取得できればありがたいんだけどなぁ。
そういう需要ってあんまりないんだろうか。

274 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 14:45:46.09 ID:UZR1Ryt2a.net]
>>265
何いってるのかわかりません

275 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 14:55:22.20 ID:5EDA9IkjM.net]
それに変数名長すぎ

276 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 14:55:53.42 ID:5EDA9IkjM.net]
しかもbool型に見えない

277 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 17:01:44.57 ID:RvuVG0qm0.net]
なんかもうMVCに従って書き直すの不可能な気がしてきた・・・
初めから作り直すほうが早いかも・・・。

278 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 17:16:54.39 ID:15xgRckc0.net]
>>269
MVCは基本的にWebだかんね…

279 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 17:19:31.54 ID:VhwAlNWxd.net]
設計思想根本から変えるのに小手先の修正で済むわけないよw

280 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 17:32:27.30 ID:XEHHkDisM.net]
初心者が勉強のためにゲームプログラムを作るのにMVCなんてナンセンスです。
先ず、何でもいいから動くものを作る。プログラムスタイルはそれからいろんなな本で学べばいい。



281 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 17:33:18.63 ID:oxtjRRByM.net]
まず設計からやり直さないと無理だと思うよ

282 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:06:22.88 ID:RvuVG0qm0.net]
頭の中がどぁーっとなってきました。
とりあえずゲーム本体は完成したんですが、一部改変しようとしたらかなりの機能がすべてゲーム画面フォームにくっついてるので読みづらいことこの上ないなと。
データ部分を別構造にしたかったんですが、ほぼ句見直しに近い改変であたまがわやになってます。

283 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:11:39.59 ID:RvuVG0qm0.net]
すんごい読みづらいコードなんだけどこのまま進めていいのかな・・・。
とりあえず力業で進めることは可能なんですけど気持ち悪い。

284 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:12:38.37 ID:5EDA9IkjM.net]
>>274
で、でたーオブジェクト指向不出来form.cs全部書込奴w

285 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:16:14.33 ID:XIsYMxrj0.net]
動くコード書ける奴の方が神だからな。
設計どうのこうのなんて、動くコード書ける様になってから理解すれば良い。


286 名前:スなら作った後で反省的を挙げながらここはこう言う構造の方が良かったんじゃね?
なんてやるのが一番設計の知識ぐ身につく。
[]
[ここ壊れてます]

287 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:23:40.04 ID:XEHHkDisM.net]
自分のプログラムが汚いわかりにくいと思ったのなら、あなたはセンスがあるんだよ。
汚いプログラム書いて平気なプロもいるからね。
後はいろんなサンプルプログラムを検索して読んだらいい。あっ、これがいいとか気付きがあると思う。

288 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:26:39.51 ID:XEHHkDisM.net]
プログラマの能力を試すには書かせるより読ませるのがいいからね。
人のプログラム読めない奴は進歩ないから。

289 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:31:48.49 ID:RvuVG0qm0.net]
あれ、根本的なことが分かってないことが分かりました。

B DataHolder
C ゲーム
D スコア記録

CからBのインスタンスを生成
DataHolder dataHolder1=new DataHolder();
すればCのpublic変数aにアクセスするときはdataHolder.a=hoge;とかでいいけど、
DからBのdataHolder1の変数aにアクセスってできるんですか?

CからDにdataHolder1の参照を渡すってこと??

290 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:33:40.32 ID:RvuVG0qm0.net]
>>276
全部ではないけどほぼご指摘あってます・・・。
本に書いてある小さなプログラムはほとんどform.csに放り込んでたので、そんなものかと思ってた。



291 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:34:30.46 ID:RvuVG0qm0.net]
>>277
ありがとうございます。
今ようやっと設計の大事さを学習しました。
レベル0から0.01ぐらいには成長できた気がします。

292 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:35:15.53 ID:RvuVG0qm0.net]
>>280
そもそもこれが分かってなかったから一つのフォーム画面にいろいろ機能を盛り込みすぎたんだと。

293 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:37:29.64 ID:RvuVG0qm0.net]
>>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の参照を渡すってこと??

294 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 20:01:02.99 ID:9rdAnFG4a.net]
まあなんだよ
今の君に必要なのは鉛筆と紙だ
なんたらチャートのお作法なんぞ知らんでいいから、まずは機能を書き出して丸で囲め
それからどの機能が何処から必要になるかを線引っ張って繋げ
めちゃくちゃ線がごちゃごちゃするだろう?
それをなるべく少ない線で済むように書き直すんだ何回でも

295 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 23:33:51.06 ID:RvuVG0qm0.net]
>>285
自分で書いててこんがらがってきますね。
でもまずやってみます。

296 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 23:36:15.36 ID:RvuVG0qm0.net]
Aフォームのメンバ変数、メソッドを
BCフォームからも使用できるようするにはどうすればいいのでしょう。

Bだけで使用するならB内でAのインスタンス生成→ShowでAフォームを表示させればいいと思うのですが、
Cフォームでも使用するとなると、Cフォームで新たにAのインスタンスを生成するわけにもいかないですよね。

297 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 23:44:08.44 ID:7v9y2RSd0.net]
>>287
ググるなりして調べた?そろそろ初心者スレでやって
インスタンスを渡せばいいだけなのに

298 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 11:04:57.10 ID:ySggkKZM0.net]
>>288
すいません。
ググってもよくわからなかったので質問したのですが安易に人に頼りすぎてましたね。

昨夜からわからないところを実際にコードで打ち込んでみて実験重ねて理解できました。
インスタンスの参照渡すって言っても

フィールド渡し
プロパティ渡し
メソッド渡し

と色々方法あるんですね。インスタンスの参照を渡す方法が分かってなかったから一つのクラスに一杯盛り込むことになってたんだと理解できました。

299 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 11:06:37.40 ID:ySggkKZM0.net]
こういうのってCやってれば常識なんですね。
どこからC#でどこまでCの質問か分からずこちらで何でも聞いていました。

次から初心者板に移動してみます。

でも、みなさんのおかげでだいぶいろいろなことを学べました。
ありがとうございます。

300 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 13:59:35.41 ID:23x2pXKw0.net]
〇〇する機能みたいにして、重要だと思う機能ほど大きく書いて相関関係を、ドラマの登場人物の関係図みたいに描いたらなんとなくクラス図の基本が出来上がる。



301 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 14:41:31.02 ID:ySggkKZM0.net]
>>291
ありがとうございます。
クラス図についても勉強してみます。

302 名前:デフォルトの名無しさん [2018/05/22(火) 22:37:35.74 ID:gaTn3ZGLJ]
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

303 名前:デフォルトの名無しさん [2018/05/23(水) 19:32:08.48 ID:Au5e7VGg0.net]
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

094C5

304 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 17:55:34.06 ID:kaJ5fQAg0.net]
あくまでわかりやすくするために分けるのであって、クラスを分けることが目的になってしまってはいけない
余計わからん構造になる可能性があるからね

305 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 23:51:50.59 ID:q1degsPf0.net]
わかりやすくする為にわけるのではない
問題が適切に表現される様に自ずとにわかれるのだ
それが本質的にわかりにくい問題であるならば
わかれた結果わかりにくいのは当然の帰結である
己の能力をわかるまで高めるしかあるまい
わかめ

306 名前:デフォルトの名無しさん mailto:sage [2018/05/26(土) 08:31:56.50 ID:Mb7u4pS+0.net]
なんか偉そうなこと言ってる

307 名前:デフォルトの名無しさん mailto:sage [2018/05/26(土) 10:29:20.38 ID:Qkk0DhfZM.net]
ナイーブすぎ

308 名前:デフォルトの名無しさん mailto:sage [2018/05/26(土) 16:16:32.23 ID:nVIiMXOl0.net]
桃とアロエのカネボウ

309 名前:デフォルトの名無しさん [2018/05/28(月) 11:28:40.07 ID:vRphuiRoH.net]
ゲームくんのゲームは完成したのだろうか?
そもそもGameManagerクラスみたいなゲームを管理するクラス作ってないのが不思議
ゲーム管理クラス通して設定画面開いたり設定値を取得すればいいのに

310 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 18:36:44.90 ID:rzi0Cqlc0.net]
どんだけ連打してんだよ



311 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 12:36:07.71 ID:0Vp36Os40.net]
C#の勉強を講習会なりでお金を払う方式でレクチャーを受けたいのですが、どういった所が良いでしょうか?
ドットインストールやプロゲートの様な既にある動画を有料で見るのではなく、
欲を言えば1対1で即座に質問できる方式が良いのですが探してみたところ見つけられず、
初心者〜中級者を対象にした評判の良い講習会の様なものがあれば教えて頂けないでしょうか
東京都の渋谷区に住んでいます

312 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 13:37:15.19 ID:dUPfr/v4M.net]
もったいないね
マンツーマンで一時間5千円〜1万はらって12〜36時間でC#を勉強するくらいなら
入門書を3冊ぐらい買って1週間で何度も読めばいいのに

313 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 13:45:33.86 ID:iBcg+dk20.net]
しかし新しいC#の作法にのっとった良い入門書なんてあるかね?

314 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 13:47:56.92 ID:dUPfr/v4M.net]
新しい作法にのっとった講師のほうが少ないと思うよ

315 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 17:24:32.50 ID:0Rufp4wm0.net]
>>302
趣味目的なら金

316 名前:]っているバカだし就職目的なら手に負えないバカ
そんなことで身につかないからパソコン教室にでも通ってろ
[]
[ここ壊れてます]

317 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 18:15:54.45 ID:5CF0lkGw0.net]
パソコン教室じゃ、最高でエクセルの使い方くらいしか教えてくれねーだろ。

318 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 18:33:40.52 ID:/62QaXdPa.net]
>>302
金と時間の無駄って意見に俺も一票。

学校の勉強でもそうだけど、だいたい独習の方が効率が高いよ。
分からないところを質問できる人がいるとはかどるのは確かだと思うけど、
そんなの今はネットで代替できるし(しかもタダ)

子供の習い事みたいにモティベーション不足を金で補うっていうのはありかもしれないけど。

319 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 18:38:51.88 ID:5CF0lkGw0.net]
何とか教室や何とかスクールって、出逢いを求めて通うものだろ?

320 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 18:39:33.21 ID:iBcg+dk20.net]
云うてもプログラムって何すんの状態だと独学とか無理やん
まあ講習受けて出来るようになるかったら確率低いが



321 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 18:51:29.09 ID:b3SRNDoC0.net]
>プログラムって何すんの状態だと独学とか無理やん
そんな人はプログラムを触ることはないので問題なし

322 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 19:02:37.30 ID:bwgc0PeYa.net]
C#プログラマの求人いきゃいい
マンツーマンでみっちり教えてくれてしかも金ももらえるぞ

323 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 21:20:40.23 ID:Zh8oS8xcM.net]
>>303
>>308
でもさ、メンターがほしい気持ちは解るよ。独学で始めて今でこそイメージしたアプリは大体作れるようになったけど。

324 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 21:22:39.57 ID:tOEtldFh0.net]
教えてくれる人がいなくてもできるぐらいのやる気は持ってないと
教えてくれる人がいてもできない気がする

325 名前:デフォルトの名無しさん [2018/05/29(火) 21:30:02.17 ID:+v4yesMaa.net]
独学でやってると自分のやり方が正しいのか確認が出来ない不安があるのはわかる
とにかくプログラムを書くこと、実務を重ねるとその不安は経験値でだんだん消えていく
とにかく経験を積むしかない

326 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 21:34:05.00 ID:T0OOxyUA0.net]
>>314
スレ違いになるけどモチベーション保つのが一番大事だからな
わからなくなるとやる気無くすから誰かに教えてもらいたい、って気持ちはわかるが

327 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 01:10:37.65 ID:eBpQDrsU0.net]
メンターってか、語れる仲間がほしい・・
だが人付き合いはめんどくせーw

328 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 01:15:01.88 ID:9LsQ0F9t0.net]
だから皆ここへ集うのですね

329 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 11:53:56.18 ID:8D7UWmqma.net]
メンター(導師)ってリアルで言ってる人を見ると笑うけど
意識高い系ですかって
メンターは技術面より精神的な面のよりどころだな
わけわからんけどこの人は正しい導いてくれるって人って思いこむ相手

c#入門にメンターがいる必要はないね
中級以上ならまだしも

入門者には導師より同志が必要かな

330 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 12:12:53.49 ID:qVo0G4AWa.net]
メンターなんて初めて聞いた
グルなら知ってる

jai guru deva om



331 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 12:16:35.68 ID:4fnC318RM.net]
>>319
とりあえず中途半端な改行やめたら?

332 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 12:53:27.56 ID:2+ZWaFznd.net]
メンター初耳って…
そりゃ昔はあまり使わなかったが今の20代なら大学で大方耳にしたことあるんじゃない?

333 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 13:06:00.57 ID:tkaPgK/fa.net]
ゲームの初心者指導機能以外で聞いたことない

334 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 14:44:19.09 ID:zGXcDYuB0.net]
ちょまど神に帰依するべきです

335 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 15:57:46.68 ID:OvgslO8CM.net]
CodeMentorっていう英語のメールニュース取ってるんだが?

336 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 17 ]
[ここ壊れてます]

337 名前::39:32.49 ID:zRdb0GuK0.net mailto: ぼくはメンタリストですが、何か? []
[ここ壊れてます]

338 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 18:07:05.50 ID:ZDpw5PAMd.net]
引数ありのdelicateでデリゲートをnewする段階で
関数に引数渡しておくことはできますか?

使うときは引数関係なく実行するだけにしたい

delicateじゃなくてもそういう方法があれば教えてほしいです

339 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 18:49:53.75 ID:YepGdlhS0.net]
ない

340 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 19:21:37.82 ID:mNqG/VKAa.net]
>>327
たとえばこれを、
Action<string> a = Console.Write;

こうするだけと違うの?
Action a = () => Console.Write("Hage");



341 名前:デフォルトの名無しさん [2018/05/31(木) 20:29:05.32 ID:XpaqSCj3a.net]
>>329
普通に考えたらそうなるわな
何がいいたいんやろ

342 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 21:18:37.12 ID:ZDpw5PAMd.net]
>>329
わかりづらくてすみません
Actionですね
これでちょっとやってみます
ありがとうございます

343 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 00:56:14.18 ID:v9HhHj/a0.net]
もしかして delegate? > delicate

344 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 01:50:30.82 ID:Kjs/aFNB0.net]
痒くなってきた

345 名前:デフォルトの名無しさん [2018/06/02(土) 01:19:12.37 ID:te+Rl8LG0.net]
もうふらっとと統合しろよ

346 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 14:30:29.50 ID:sz40x79U0.net]
隔離用のスレを本スレに統合って斬新だな

347 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 14:10:31.00 ID:kDP+/j8RM.net]
デリケートって結局なんねことなんや

348 名前:デフォルトの名無しさん [2018/06/05(火) 23:17:30.29 ID:vNq9k7GF0.net]
>>336
関数ポインタ

349 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 11:05:26.21 ID:kgKhbEIB0.net]
わかるように説明しろや!

350 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 11:13:20.04 ID:Glbjy1Oa0.net]
赤ん坊が庖丁持ったからと言って何かを生み出せるわけでは無し



351 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 13:00:14.82 ID:/mNmPD5La.net]
>>338
「〜とは何か」って哲学論争はたぶん時間の無駄w
実際の使われ方を見て何に使えるかを理解するのがいいよ

禅問答みたいに聞こえるかもしれんが、デリゲートのメリットは
デリゲート型の変数を作れること。

デリゲートの使えない従来の言語は、コードの中にdoubleのリテラルしか書けず
doubleの変数が作れないようなものだった

352 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 22:58:53.30 ID:x4kBoo940.net]
>>331です
Actionでできました!ありがとうございます。
クロージャー(?)っていうんですかね?
関数の外の値を引数で渡さずに関数内で使うやり方が知りたかったんです。

353 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 21:28:18.26 ID:HziEaPXa0.net]
デリゲート型の変数?????
デリゲート型にすると何かいいことあるのか?
デリゲート型にすると何がいいんだ??????何が使えるんだ?????

354 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 21:34:22.85 ID:9x16GWRr0.net]
>>342
ここ読め
ufcpp.net/study/csharp/sp_delegate.html

355 名前:デフォルトの名無しさん [2018/06/07(木) 21:34:36.55 ID:uqa5AZHUa.net]
あーこういうの出来たら便利なのにー
って思ったら調べて使えばいいよ
使わんと頭入らないし

356 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 21:41:39.12 ID:muNvrUxm0.net]
デリゲート、デリゲートって、おまえら
青空球児・好児かよ。

357 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 23:38:02.20 ID:p05PC41Ra.net]
>>342
そうじゃなくて、上に書いたように、もしdoubleのリテラルしかコード中に書けなくて
doubleの変数が使えなかったらどう困るか考えて

358 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 23:51:09.11 ID:HziEaPXa0.net]
図にしてくれ

359 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 00:56:57.47 ID:057UgUqy0.net]
数値を格納する変数は int 型
文字を格納する変数は string 型
メソッドを格納する変数が デリゲート型

360 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 01:01:01.34 ID:7BdVtDm70.net]
なんで
メソッドを
格納する
必要が
あるんだよ




361 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 01:20:20.47 ID:vel+6 ]
[ここ壊れてます]

362 名前:yPba.net mailto: だから、どうして実数を変数に入れる必要があるの?
入るのはメソッド自身ではなくその参照だけどね
[]
[ここ壊れてます]

363 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 07:41:09.77 ID:V2PqzfzLd.net]
>>349
自分の場合はある関数にある処理を追加したい場合とか

ある処理は呼び出しもとによって変わったり

364 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 07:54:30.62 ID:VEbWNRWu0.net]
>>351
ピンとこない

処理を追加したいならメソッド自体に書くか、overloadとかを考えちゃう
呼び出し元で処理変えるなら引数で、みたいな

365 名前:デフォルトの名無しさん [2018/06/08(金) 07:59:48.51 ID:FRxZCKgGa.net]
メソッドを引数にして渡してあげられると、実行する側は何をするか気にしないでいいじゃない

366 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 08:15:18.51 ID:H4l6t16fM.net]
なぜデリゲートがあるか?
君も大人になったらわかるよ。
ママ、なんでボクはおチンチン付いてるの?
この疑問、時間が解決したろう。

367 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 08:30:05.85 ID:V2PqzfzLd.net]
>>352
今までの処理は極力変えたくない

引数にAction渡して関数はそれを実行
引数のActionはデフォルトにnullをいれておく
nullだったら処理しないようにすれば呼び出し元は必ずしも変更する必要がなくなる

なんでこうするかってテストするのがめんどいからとか色々

368 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 10:53:38.20 ID:p6dJfT33M.net]
>>355
さっぱりわからない

処理変えたくないメソッド実行
 ↓
その結果次第で別のメソッド実行

何故これで済まないの?

369 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 11:07:03.52 ID:jzbZ53uGa.net]
それでも済むよ

例えば繰り返し処理
forなくても書けるだろ。だからforなんて要らないって言ってるようなもん
なくてもプログラミングできるが、あれば楽できる

370 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 11:49:27.44 ID:SrLrQXUUa.net]
済まないw

>>356-357は-π/2〜π/2の範囲の実数の数だけ、それに対応する
sinの値を返すメソッドを用意すれば汎用的なsin関数なんかなくて済むと言ってるのと同じ。

だから、どうしてdoubleの変数が必要なのかと。

っていうかこの質問者、本当は分かってて質問してる変な奴だろうね8割方w
たぶん2chの他の板によくいる、サヨクを演じて自作自演やってる頭のおかしいネトウヨと似たようなメンタルの持主なんだろうと想像



371 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 13:02:11.32 ID:V2PqzfzLd.net]
>>356
voidだったら"その結果"ってどう受けとる?

372 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 13:04:11.27 ID:7BdVtDm70.net]
図にしろ・・・・・・・・・ッッツ!!!

373 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 13:14:18.16 ID:0qxXZgjd0.net]
アウアウアーの見本市

374 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 19:39:57.11 ID:tyJ42miy0.net]
なんか揚げ足取りしようとして引っ込みつかなくなってる感

375 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 19:42:51.67 ID:sQqhvtlW0.net]
ufcpp.net/study/csharp/misc_delegate.html

376 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 20:48:10.00 ID:7BdVtDm70.net]
つまりメソッドにラムダ式を渡して処理した結果を使ってメソッドの処理をさせるのか?

377 名前:デフォルトの名無しさん [2018/06/08(金) 20:53:34.63 ID:KYYD9BLCa.net]
ごめん。ちょっと何言ってるかわかんない

378 名前:デフォルトの名無しさん [2018/06/08(金) 21:00:06.62 ID:E4qbFGXm0.net]
結局デリゲートの非同期処理BeginInvokeを使用するってのが
従来大きな役割だったんじゃない?
でも今Taskクラスできたから必要なくなった

379 名前:デフォルトの名無しさん mailto:sage [2018/06/08(金) 21:19:27.49 ID:txACZHnFp.net]
つまりクラス間通信。

380 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 12:11:29.33 ID:VOfp/P7BM.net]
デリゲート(委譲)って名前が悪いのかな
メソッドを他に渡しておいて適宜実行してもらうから委譲ともいえるけどそれは機能の一面しか表してない
MVPの人も過去にデリゲートいらねえって言ってたけど理解力が足りてない

c#は結構



381 名前:「ろんなものがオブジェクトだけどメソッドはオブジェクトじゃない
デリゲートを使えばメソッドをオブジェクト(変数)みたいな感じで扱える
普通の変数とは違って+=で複数のデリゲートをいれることができるのが特徴的

コールバックとして使えるしeventはデリゲートをもとに作られてるので基本的な使用範囲は広い
[]
[ここ壊れてます]

382 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 12:44:45.38 ID:DBY1R4Jva.net]
>>368
真面目な話、そういう衒学趣味の文系学生みたいな
文章が一番人を混乱させる。

「c#は結構いろんなものがオブジェクトだけどメソッドはオブジェクトじゃない 」って何やねんw

関数ポインタが分かればデリゲートがどんなものかはその類推でだいたいイメージできる。
機械語をやった経験があれば、関数ポインタなんか、なんだこんなのただのcall命令の
アドレッシングモードのことかってすぐわかる

でも重要なのは、「デリゲートとは何か」なんか分からなくてもデリゲートは使えるってこと。
「何か」なんか理解しなくていい。それを使って何が出来るかだけ理解すればいい。

383 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 12:58:26.33 ID:54mp5fzVM.net]
そう。ホビープログラマならね

384 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 13:02:40.19 ID:Cz/ni8by0.net]
ホビーじゃないプログラマ「c#は結構いろんなものがオブジェクトだけどメソッドはオブジェクトじゃない 」

385 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 13:05:05.70 ID:oQlrsJoz0.net]
それは無能プログラマ

386 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 13:31:49.04 ID:kvLDmgw/0.net]
>>371
この文何か変か?
メソッドはobject型から派生したクラスではないっていう当たり前のことを言ってるだけだろ

387 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 13:40:09.88 ID:VOfp/P7BM.net]
>>369
他の言語ではメソッドもオブジェクトとして扱えるものもある
c#はメソッドはオブジェクトじゃない

その類推が間違ってるからダメなんだけどなあ…
デリゲートは関数ポインタじゃない
callでもアドレッシングとも全然無関係だわ

機能的には似たようなものに見えるけど全然別物だ

388 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 13:51:37.94 ID:MhKfyDgC0.net]
>>369
文系学生もプログラミングする時代になったって事だよ。

> 「何か」なんか理解しなくていい。それを使って何が出来るかだけ理解すればいい。
これな。最近の「○○って何ですか」っていう奴らは何なんだ?
お前らだって、日本語の全ての漢字を読めるわけでもないだろうに。

「デリゲート」は失敗作だから新言語を作る気がないのなら理解する必要はない。
あれはthis+関数ポインタで、一番近いのはC++の「メンバ関数ポインタ」だが、
無駄に「クラス」「関数ポインタ」「ラムダ」を抽象化しようとしておかしくなってる。
結局ラムダを導入してしまったし、当初の方針は間違いだと認められたことになる。
今後「デリゲート」を採用する言語はないだろうよ。

389 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 13:57:35.17 ID:1jan2CXL0.net]
.NET Core で過去の遺産が全て無くなるかと思ったけどそんなことはなかったぜ

390 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 13:59:17.43 ID:VOfp/P7BM.net]
>>375
誤解したままで最後までつづけるんか?



391 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:07:54.32 ID:VOfp/P7BM.net]
もともと関数がオブジェクトである言語はデリゲートを導入するメリットは少ない
c#にデリゲートが無かったらjavaの様に専用のインターフェイスを継承した無駄なクラスを作らなければならなかった

ActionやFuncやラムダがあればデリゲートが必要なかったと言ってるのは何かを誤解してる

392 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:19:40.58 ID:MhKfyDgC0.net]
>>377
理解してなくても使えれば問題ないんだよ。
お前だってPCの起動方法(BIOSとか)知らなくてもPC使ってるだろ。
MSIL読めなくてもC#使えるだろ。
CPUの例外/割り込み機構を知らなくてもtry/catch使えるだろ。
一般プログラマにとってはプログラミング言語は道具であって、それ以上でも以下でもない。
新言語を作りたいのなら学術的に正確に理解することが必要だが、普通の人はそうではない。

それ以前にC#が死ぬ可能性を考えた方がいい。
C#専用の「デリゲート」の理解はつぶしが利かない。
他言語にもある「ラムダ」の理解のほうが重要だ。

デリゲート

393 名前:ヘ「クラス」と「関数ポインタ+バインド」で対応した方が良かったと思う。
C#には未だに「バインド」がない=デリゲートでの対応になるが、
実際、後付でバインドすることが出来ないだけ不便だろ。

>>378
Javaみたいなそもそも「関数ポインタ」がなかった糞言語と比較したら駄目だよ。
Cには関数ポインタはあった。
C#はそれを「デリゲート」として拡張した。
他言語は「第一級オブジェクト」として拡張した。
今のところ、後者の方が正解っぽいだろ。
(俺自身にはイマイチ「第一級オブジェクト」である利点/必然性は見えないのだが)
[]
[ここ壊れてます]

394 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:24:48.97 ID:VOfp/P7BM.net]
関数がもしobjectクラスから派生したオブジェクトになるとメンバーを持てることになるんだけど
A.B().ToString()のToStringが
B()というメソッド自体に係ってるのか
B()の返した戻り値にかかってるのかがよくわからないことになる

395 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:25:53.62 ID:54mp5fzVM.net]
Javaってstaticメソッドを関数インターフェースに渡すときは最適化してくれんの?

396 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:30:26.04 ID:AO7Grx3Qa.net]
1+2*3
こんな計算式があったときに1+2をしてから3かけて答えは9
こうはならないだろ。それは優先順位を定めてるから。(1+2)*3のようにかけば期待通りになる

それと同じで関数がオブジェクトでメンバー持ててもそれに合わせた処理の優先順位を定めればいいだけ

397 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:32:21.62 ID:VOfp/P7BM.net]
理解しないのと誤解してるのではわかっていないという点では同じだけど
理解してない場合は理解していない前提で行動できる
一方の誤解してる場合は悲惨だ

398 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:33:21.85 ID:MhKfyDgC0.net]
>>380
お前は右結合と左結合を勉強しろ

399 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:35:46.47 ID:VOfp/P7BM.net]
>>384
じゃあどういう風に記述したらオブジェクトである関数のプロパティやメソッドにアクセスできるかここに書いてもらいたいが

400 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:36:40.18 ID:MhKfyDgC0.net]
>>383
お前は日本語を勉強しろ。

俺達は「理解しなくていい」=「完全に理解してはいないという自覚の元で使え」と言っているのであって、
それは「誤解」には繋がらない。
「誤解」ってのは、「理解してない馬鹿が理解しているつもりになっている」事を言う。
例えば、右結合と左結合を知らないお前みたいな馬鹿のことだ。



401 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:39:35.51 ID:MhKfyDgC0.net]
>>385
意味不明。何を書いて欲しいのか分からん。

> A.B().ToString()
これはAのメソッドB()を呼んでその戻り値に対してToString()を呼ぶ。
少なくともJavaScriptではそう。

で、何をしたい場合の記述が欲しいんだ?

402 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:48:14.18 ID:VOfp/P7BM.net]
>>387
思い違いをしていた
A.B().ToString()とA.B.ToString()で区別できる
クラスにフィールドとメソッドを同名にできないから区別できる
右結合と左結合は関係なかったけど

403 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:54:44.86 ID:MhKfyDgC0.net]
>>385
エスパーすると、言いたいことは分かった。
お前は「第一級オブジェクト」も理解しておらず、「誤解」している。ちゃんと勉強しろ。

「第一級オブジェクト」ってのは、通常のオブジェクトと関数オブジェクトを区別しない。
だから書式は当然同じだし、正しく理解していればこの点が疑問になりようもない。


>>388
なら日本語を勉強しろ
> B()というメソッド自体に係ってるのか
これで何を表現しようとしたか言ってみろ。それは
> A.B.ToString()
ではないだろ。

404 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:04:32.47 ID:VOfp/P7BM.net]
>>386
誤解は悲惨
delegateを削除しろと言って削除してみたらActionもFuncも使えませんでした
eventも使えませんでした

もちろん言語レベルで変数としてのデリゲートの代わりになるものもありません

>>389
> > A.B.ToString()
> ではないだろ。
いやいやそこはそのままであってるし普通にそう理解できないのか?
A.B.ToString()が正解
逆にどう勘違いしたのか聞きたい

405 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:06:54.66 ID:VOfp/P7BM.net]
本当にC#からdelegateを削除しろって言ってるんだったらどこかおかしい
何にも理解してない

406 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:06:56.64 ID:AO7Grx3Qa.net]
プロパティなんて関数オブジェクトみたいなもんだな
プロパティ

407 名前:ノ引数渡してぇ []
[ここ壊れてます]

408 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:07:41.71 ID:VOfp/P7BM.net]
>>392
っVB.net

409 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:18:29.92 ID:MhKfyDgC0.net]
>>390
日本語で言うと、
> B()というメソッド自体に係ってるのか
と理解したって事だよ。

>>391
お前がな。
他言語にはdelegateなんて無いが、何も問題ないだろ。
あれ?って思えないのか?
(今すぐ廃止していいかどうかはまた別だが)

>>388
> クラスにフィールドとメソッドを同名にできないから区別できる
これは先見の明があったかもな。
関数を「第一級オブジェクト」に昇格させるのに文法的制約がない。
Javaに対しての利点にはなり、生き残る道かも。

410 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:25:50.19 ID:MhKfyDgC0.net]
>>392
JavaScriptではオーバーライドすれば出来る。
フィールド/メソッドの区別がなく、名前だけだから。
C#的には派生クラスで「プロパティ」「を同名の「メソッド」でオーバーライドだが、
これが型チェック的に無理なのか?
しかし名前の重複を許していないのだから、今後の拡張は可能のはずだが。

JavaScriptのデタラメ文法はどうかという奴もいるが、慣れてしまうと、
型あり言語の「型が違うだけ」で色々制約されるのも相当な糞だと気づけるぞ。
型検査はエラーではなく警告に留めるべきで、
プログラマがOKすれば型が不一致でも通してくれた方がマジで楽。
一番近いのはCってことになってしまうが。



411 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:29:15.96 ID:a58WBe6r0.net]
ア土曜の昼間からウアウアーの見本市

412 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:29:59.09 ID:a58WBe6r0.net]
友人ゼロのキモオタオッサンは他にやることないのかい

413 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 16:02:02.79 ID:kvLDmgw/0.net]
他の言語はともかくC#はGUIのイベントの管理にデリゲートのマルチキャスト使ってるんだから無かったら困るだろ

414 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 16:54:07.78 ID:DBY1R4Jva.net]
だからメソッドがオブジェクトかどうかなんて話はただの衒学趣味的な無益な話w
そんな話は「ではオブジェクトって何?」って不毛な議論になるだけでしょw
初心者がデリゲートを理解して使えるようになるための屁の役にも立たないよw

>>398
素直に考えればデリゲート自身にマルチキャストの機能を持たせるんじゃなく、
シングルキャストのデリゲートのリストとして実装する方法もあったはず

なんか理由があって「こういう」風になってるんだろうが俺には積極的理由はよくわからんね。
ジェネリックをデリゲートで制約できないことと関係があるのかもしれないが

なまじマルチキャストなんて機能があるせいで何だかわかりづらくなってる面は否定できないと思う

415 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:08:52.90 ID:MhKfyDgC0.net]
>>398
GUIに関してはdelegateの導入は不要だったで決着してる。
GUIにはOOPよりMVCの方が数段マシで、WPFもそうなってるだろ。
onclickにthisがバインドされている意味がそもそも無いんだよ。

決着が付いてないのはデータフロープログラミングをするときだ。
JavaScriptではObject.observeの導入が計画され、一部フィーバーしていたが、ポシャった。
https://www.html5rocks.com/ja/tutorials/es7/observe/
以下によると、非同期なのが使えなかったらしい。
tech.nitoyon.com/ja/blog/2015/11/18/death-of-oo/
JavaScriptの非同期は最早宗教だが、
はっきり言って無駄に非同期すぎて、余計にやりにくくなっているケースもある。これもそう。

C#は独自eventを実装出来るし、そのためにdelegateが用意されているから、
「データフロープログラミング」を文法的にサポートしているとは言える。
ただ、それ以前に、「データフロープログラミング」が主流ではないが。
お前らも実際、やってないだろ。
関数型の次に来るって事もなさそうだし。

とはいえ、上記の通り、今のJavaScriptではデータフロープログラミングは面倒だし、
getter/setterを頑なに拒むC++ではものすごくウザくなって事実上無理だ。
次の波が来ればevent/delegateも再評価されるかもしれん。

416 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:12:21.10 ID:MhKfyDgC0.net]
>>399
> シングルキャストのデリゲートのリストとして実装する方法もあったはず
同感。

417 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:15:16.30 ID:bMpGWGQ30.net]
理解してなくても問題なく使えるからって、それを理解しようとするのは悪い事じゃないけど
もとの発端はなんだったんだこれ

418 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:28:51.92 ID:AO7Grx3Qa.net]
デリケートじゃないか?w

419 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:32:16.71 ID:1jan2CXL0.net]
>>402
>>327 のデリケートが事の発端

420 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:43:13.42 ID:VOfp/P7BM.net]
誰かさんの大好きなLinqはdelegateの塊なんだけどdelegateなくなっていいのかな
他の実装ではdelegate使ってないけど今の.netではデリゲートで実装されている



421 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 18:48:11.73 ID:0oARoVrcM.net]
デリゲートにラムダ式にLinq大好きだ!
これ無くして生きてけない!
チームの誰も読めないから放置されて我が道を歩んでいる。
生産性と品質が高いから客には好評です。

422 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:25:40.95 ID:7jH+OfQ/0.net]
>>406
チームの誰もが読めないという事は保守性に欠けると言う事ですね

423 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:33:41.95 ID:0oARoVrcM.net]
そうだね。
でも、Linqバリバリ使ったらそうなるよね。
みんなの勉強しろよってこと。

424 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:39:16.25 ID:h8CnrujR0.net]
Linqが分からないってのはラムダ式を理解できないってことなの?

425 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:43:00.38 ID:54mp5fzVM.net]
行列計算ライブラリ書いてるときに
おれ掛け算わからんからおれに合わせて全部足し算で実装して
おれはいまお前の案件に関わってないけど将来そのライブラリメンテするかもしれんからヨロシクな
とか言う同僚がいたらこいち頭おかしいのかなって思うじゃん
いやいや掛け算を勉強してからっていうか最低限の単位を取ってからメンテしろよってなるじゃん普通
これがLinqやλやデザインパターンになると当たり前のように底辺至上主義がまかり通る不思議な業界

426 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:47:26.87 ID:kvLDmgw/0.net]
LINQはC#にしかないからまだわかるけどラムダ式はいまどきの言語ならほぼ実装してるから知ってないとまずいよね

427 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:50:03.81 ID:2splWvty0.net]
linqてC#にしかないのか

428 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:52:58.46 ID:54mp5fzVM.net]
Linqにも類似品あるよ
Javaのstreamやpythonのリスト内包表記など
というかそもそも単なるiterator patternでしかないからC#が起源ってわけでもない

429 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:00:28.55 ID:4y2IVpvw0.net]
Linq以前にIEnumerableの意味が解らない人がいるからどうしようもない
.NET2.0から順に教えろってことかよ・・・

430 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:03:28.98 ID:MhKfyDgC0.net]
>>410
と、底辺至上主義がまかり通る所の意識高い系が申しております

>>413
どう見てもSQLが起源だろ



431 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:07:24.39 ID:54mp5fzVM.net]
>>415
クエリ形式の文法はSQLが起源かもしれんが
実装はSQLとは全く関係がないよ
C#などの実装はまさしくiterator patternだけど
SQLの実装をiterator patternでやろうとしたら遅すぎる

432 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:07:34.76 ID:4W3gH+0Ua.net]
そもそも書けない奴は論外として、使うなってのは同意できる
簡潔に判りやすいラムダ書いてくれりゃいいが、わざとやってんじゃねってぐらい難読化する奴いるからな
正規表現、SQ、掲示板の長文も同じだな

433 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:12:52.02 ID:0oARoVrcM.net]
Linqに限らず最近のソフトウェア技術は高度で生産性も高くなってる。
昔も人によって生産性に差が出たが、最近だと理解出来るか出来ないか?ぐらいの圧倒的な格差だ。
理由出来ない人は辞めればいい。
生産性が飛躍的に上がってるので理解出来る奴だけで

434 名前:間に合うよ。 []
[ここ壊れてます]

435 名前:デフォルトの名無しさん [2018/06/09(土) 21:17:22.22 ID:ekScYlKMa.net]
自称プログラマー(趣味)ならともかく職業プログラマーでLinqすら理解出来ないやついんの?

436 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:23:52.36 ID:7jH+OfQ/0.net]
Linqを十分に理解できても、可読性や保守性を大事にする人は
多少冗長でも他人が理解しやすい易しいコードを書くんじゃないの?

437 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:25:54.76 ID:2splWvty0.net]
Linqてそんな可読性悪くないと思うけどなぁ
コメント書いときゃ何となくわかるべ

438 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:26:49.03 ID:v7FNkyrH0.net]
>>418
出来ない人にも生活あるから辞めろとは言えないけどチームは分けて欲しい
使えて使いたい人がどんどん流出して出来ない人だけの会社になると悲惨

439 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:30:02.70 ID:0oARoVrcM.net]
>>420
圧倒的に生産性が高かったらどうなの。
最近の案件は短納期になってるし、昔のコボルみたいに何十年もメンテして使うシステムも少ないと思う。

440 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:32:37.20 ID:VrCE6n6GM.net]
ゴミのようなやりとり
いや、ゴミに失礼だな



441 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:33:12.66 ID:0oARoVrcM.net]
LinqよりSQLの方が難しいぞ。
SQLは難しいから使うなって言うのか?

442 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:35:27.62 ID:ZDY9COOVd.net]
業務でいじるレベルのコードなんて知らないものでもグーグル先生いりゃ大抵なんとかならない?
linqも初めて見たときはとっつきにくくてわかりづらかったけど使ってりゃ嫌でも覚えちゃうよ
つっても当然すべてを使いこなしてるわけじゃなくて自分に必要な範囲のみ理解してる程度
業界によってだいぶ差はありそうだけど

443 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:35:56.65 ID:7jH+OfQ/0.net]
生産性は保守運用まで含めてトータルで考えるべきで
保守性が損なわれればトータルコストも引き上がる

444 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:36:22.73 ID:0oARoVrcM.net]
>>424
あんたの書き込みがゴミだから。
オレらのやりとりがゴミだって言うなら、そう感じさせる様な高踏的な書き込み頼む。

445 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:51:21.02 ID:lCnNI9uz0.net]
保守性の低い Linq のコードってたとえばどんなの?
自分は他人のを読む場合でも特に困ったことないけどな〜。

446 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 22:13:44.82 ID:MhKfyDgC0.net]
>>416
イテレータの起源なら、C++(1983)は最初から持ってた。
C++のOOPはSimula発で、そっちが持ってたかは知らん。

いずれにしても、Java発の技術は存在しないぞ。
C#はLinqと、多分asyncもか?頑張ってる方だと思うが。
(あとちょっと違うがIDEのインテリセンスもC#が初のはず)

447 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 22:18:01.39 ID:a58WBe6r0.net]
クソカスの分際で人間様に話しかけてくるな
クソカスが引っ付くわ

448 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 22:36:24.46 ID:d5fCz/GJ0.net]
>>430
> (あとちょっと違うがIDEのインテリセンスもC#が初のはず)
インテリセンスはVB5.0の時代からあるんだが...

449 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 22:41:24.00 ID:MhKfyDgC0.net]
>>426
> 自分に必要な範囲のみ理解してる程度
多分これくらいが適正で、これなら大して問題にならないんだよ。

問題は、意識高い系馬鹿の>>418
> 昔も人によって生産性に差が出たが、最近だと理解出来るか出来ないか?ぐらいの圧倒的な格差だ。
みたいな、おかしな奴がいることだよ。

Linq自体でそんなに格差が出来るはずもない。
仮に、Linq部分を関数呼び出しに変えたところで、本体のコード構造は全く変わらないだろ。
便利機能だが、その程度でしかないんだよ。
逆に言うと、制御構造の違いで勝負出来ない、
新文法が読めることしか威張れない馬鹿がそこに無駄に拘っている気がする。

450 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 23:00:28.94 ID:0BGOlb7W0.net]
linq で Where と OrderBy 使ったところをチームリーダーから For と List<T>.Sort() に書き



451 名前:キえられたことはある。理由は「他と違うから」
他と書き方を合わせておくのが大事なのはわかるけど…
[]
[ここ壊れてます]

452 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 23:10:59.82 ID:1jan2CXL0.net]
コーディング規約があるのならそれに合わせろよ

453 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 23:45:05.02 ID:v7FNkyrH0.net]
>>434
他と違うからって理由で直すのは良くないと思うな
本来関係ないはずのクラスの間に存在しないはずの関係性を作りこんでしまう
その結果、必要ない作業や、縛りを生み出して生産性を下げることになる
俺が経験したものだと
すでに書き終えたforeachをすべてforに統一
テスト済のDAO、DTOのsnake_caseを他レイヤに合わせてCamelCaseに統一
この2つが最高にバカバカしかった

454 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 23:56:36.61 ID:wFjp4I59M.net]
カプセル化を知らない人が少なくないのかな
「publicメンバーはクラス間のコミュニケーション円滑化のために規約として形式化しましょう」ぐらいならまあ理解できるが
「Linqはやめてループにしてくれ」なんて内部実装の形式にまで踏み込んでくるなよな
クラススコープで違和感なければそれでいいだろ

455 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 23:59:33.29 ID:MhKfyDgC0.net]
>>434
俺はC#erではないが…。

単発のLinqも認めてもらえないのならご愁傷様。あれは普通に読める範囲だ。
見た目、Linq自体にはサブクエリ無しか?ならそんな酷いことにはならないはずだが、
例えばSQLでは再帰呼び出しが出来たりして、
マンデルブロだパズル解くだとか、おかしな事になってる。
https://www.sqlite.org/lang_with.html
Linqでどこまで出来るか知らんが、こんなん書かれたら殴りたくもなるだろ。

基本的には関数呼び出しにしてその先は隠蔽、
つまりLinq実装かFor/List/Sort実装かは上位からは見えない、ってことにすれば関係ないはずだ。
ただ、その場にベタで「何を選択しているか」が書かれている方が読みやすいことは多々あり、
Linqもその局面で使われているとは思うので、全面書き直しだと余計に読みにくくなるとも思うが。

456 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 00:07:12.73 ID:wNo6w9bX0.net]
LINQってCube扱えるんだっけ?

457 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 00:11:20.35 ID:FNJYuW1ra.net]
>>437
どうでもいい議論だけど、一言。
カプセル化っていうのは「メソッドの中は可読性考えなくてよい」って意味じゃないよw

LINQ(というかクエリ式)嫌いの大半は批判してる人間がそもそも理解してないだけだと思うが一理はある。
それは使い方によっては複数の処理が有機的につながった、適切に分割統治されてない、
可読性の低いコードになるからだ

実際、筋の悪いプログラマが好む100行オーバーのメソッドに近い物になりうる

458 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 00:20:43.11 ID:kZ6+r7gZM.net]
>>440
どう読んだら「メソッドの中の可読性は考えなくていいよ」になるんだろ
外部の都合を内部実装にまで持ち込むな
クラス内での可読性が十分ならそれでいいだろ
って主張な
正しく動いて綺麗なコードを他のクラスの都合で書き直す
俺はこれある意味カプセル化破壊と言っていいと思う
もちろん本来の意味でのカプセル化とは違うのはわかってる

459 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 02:00:10.36 ID:gGHljlXMa.net]
>>441
どう読んでもそうとしか読めません
自分で自分の書いてあることが理解できないのかw

「メソッドの中は可読性考えなくてよい」と言っているのでなければ
>>437の1行目と4行目はつながらない。

カプセル化を理解していてもメソッドの中の可読性、例えば
「Linqはやめてループにしてくれ」と言うことはあり得る。

なぜなら、カプセル化とは「メソッドの中の可読性は考えなくていいよ」という意味ではないからだ

460 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 02:01:02. ]
[ここ壊れてます]



461 名前:37 ID:gGHljlXMa.net mailto: >>442
いきなり訂正

× >>437の1行目と4行目はつながらない。
>>437の1行目と3行目はつながらない。
[]
[ここ壊れてます]

462 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 05:17:43.99 ID:4PiVyKtW0.net]
ランダムな指定回数オブジェクトを作成する方法ないですか
7時まで待つ

463 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 06:46:45.50 ID:Kj8YEAmO0.net]
>>442
横からだけど、そう思えるのはお前さんがLinq使ったら可読性悪くなるって決めつけてるからじゃないの?

464 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 06:46:55.66 ID:CFkipoua0.net]
Random

465 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 08:32:28.14 ID:RI4Vnlqm0.net]
>>436
コーディング規約を読んでないお前か
コーディング規約を定めてないお前の組織がバカなだけ

466 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 08:41:39.38 ID:HMOXZXoS0.net]
この話いつまでやるの?

467 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 08:43:37.52 ID:kZ6+r7gZM.net]
>>447
コーディング規約がバカなんだよ

468 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 09:22:16.29 ID:z8uYskXvM.net]
就職できるように頑張れ

469 名前:デフォルトの名無しさん [2018/06/10(日) 09:35:53.15 ID:0WF1gq+N0.net]
スレにも規約作って変な奴は矯正しないといかんな。

470 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 09:58:39.22 ID:kZ6+r7gZM.net]
変数を関数の先頭に書く
returnは1つまで
変数名の先頭に型の略字を書く
varは使ってはいけない

こういうひと昔前まで大衆が信じてたバカ規約
システム全体で統一感のあるコードを書くって規約もいずれその仲間入りするとおもう
いまはまだIT業界全体が未熟だからみんな気付いてないだけ



471 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 10:22:35.79 ID:YCs8n+CmM.net]
ちょっといいですか、この関数100行超えてます。
規約違反で可読性なくなります!
レビューで積極的に発言するサル、何も知らないで自分は立派なプログラム書いてると思っている。
ちなみににLinqの方が可読性上がるよ。
Linqはやりたいことをズバッと書ける。
古いやり方だと、このforループなに?ってなる。
forループは実装手段であって目的じゃないから。
単に慣れ、新しいこと勉強したくない連中が可読性だの規約だの持ち出す。

472 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 10:39:02.74 ID:0nkwjY0q0.net]
分割すれば良いじゃん
それが出来ないことを相手のせいにするな

473 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 11:01:43.43 ID:wNo6w9bX0.net]
魔板でやれや

474 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 12:09:56.40 ID:ycwHE1rSa.net]
>>445
どこが決めつけてる>>440

475 名前:デフォルトの名無しさん [2018/06/10(日) 13:05:02.68 ID:fXHYwG6AM.net]
C#のLinqを使っているのならPythonの方が2倍速くなる
https://qiita.com/yniji/items/6585011633289a257888

C# の Linq が python の2倍遅い、は嘘
https://qiita.com/Akira_Kido_N/items/d9519b05ccee6a67158f

476 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 13:22:36.14 ID:8jSf3er6M.net]
俺が知りたいのは、オブジェクトをx回作るやり方なんだよ

477 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 13:47:05.85 ID:FyF+mujLM.net]
for(var i=0;i<n;i++)Days[i]=new Day(i);

478 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 14:27:51.17 ID:A9qrJ+Er0.net]
linqで発狂してるジジイはSQL絡みでよくわからないエラーに出くわして理解できなかったんじゃないの

479 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 17:59:54.77 ID:Nj3/us+lM.net]
もう全部varでええやろ

480 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 18:16:30.94 ID:Ve8EHXbu0.net]
保守性の低い Linq を使ったコードの実例を見たいんだけど。



481 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 18:55:50.21 ID:FyF+mujLM.net]
クエリ式を使ったのは単純なのはわかりやすいけど複雑になるとお手上げ
メソッド形式で使ったとしても逆にクエリ式のfromを二重の使ったほうがいいのにSelectManyを使ってるやつは非常に醜い
JoinやAggregateも可読性が以上に低い

482 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 18:58:38.79 ID:0FFsGNUEa.net]
意見は分かれる

483 名前:と思うが、川俣大先生が連載記事で引用してた
このサンプルあたりがボーダーラインかね
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じゃなくてクエリ式の話をしてるんじゃないのかと
[]
[ここ壊れてます]

484 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 19:04:29.50 ID:FyF+mujLM.net]
>>464
これはだめな例じゃないかな?
何をやってるかがわからない

485 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 19:22:31.41 ID:0nkwjY0q0.net]
これの事?
var queryDupNames =
  from file in fileList
  group file.FullName.Substring(charsToSkip) by file.Name into fileGroup
  where fileGroup.Count() > 1
  select fileGroup;

基礎的なものだけで構築されていて何をやっているか一目瞭然じゃん

486 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 19:59:10.70 ID:7XGbwrsW0.net]
これがわかんないって言うならもうlinq禁止しか無いね
そんな人間がいるプロジェクトには関わりたくないけど

487 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 20:06:35.03 ID:kZ6+r7gZM.net]
全員linq読めても将来読めない人がメンテするかもしれないから禁止
実際にあった話

488 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 20:19:14.72 ID:Ve8EHXbu0.net]
ああこれが分からないってんなら確かに LINQ 禁止だわ。w
でもそんなのに付き合ってやる義理はないんじゃね? あとは規約の問題だな。

489 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 20:29:40.62 ID:FyF+mujLM.net]
自分ならメソッド構文で書く

490 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 21:47:34.28 ID:WVhS1nfV0.net]
分からないなら勉強するなり聞くなりすればいいじゃんとは思うけどな
可読性あげるのは理解できるが便利な関数を規制するのはおかしいくない?
いつまでたっても個人の技術力上がらなくなるけどいいの?とは思う



491 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 21:54:10.88 ID:FyF+mujLM.net]
わからないって意味を誤解してるだろ

var queryDupNames = fileList.Groupby(f=>略, f=>略).Where(g=>g.Count>1);

メソッドだとほぼ一瞬で何をやってるかわかるだろ
わざわざ行数を割いて理解に時間のかかるクエリ式を使う意味はねえよ

492 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 22:13:28.91 ID:WVhS1nfV0.net]
あークエリ式じゃなくてラムダで書いた方が見やすいって話?
それなら同意

493 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 22:39:32.51 ID:7XGbwrsW0.net]
そんなんリファクタすりゃ済む話じゃん

494 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 22:43:36.88 ID:mLmPdblh0.net]
リファクタリングするにもユニットテストで担保取れないレベルの酷いプログラム沢山あるからなあ

495 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 22:53:21.31 ID:kZ6+r7gZM.net]
低レベルなプログラマに合わせたコードはテストしにくいひどいコードになりがち
インターフェース禁止だとか当たり前のように言ってくるからねあいつら

496 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 22:54:32.29 ID:SjjA9sVt0.net]
今日も自閉症の見本市

497 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 23:06:57.39 ID:0nkwjY0q0.net]
低レベルなプログラマとの話し合いは無駄だと言うことがよくわかった

498 名前:デフォルトの名無しさん mailto:sage [2018/06/11(月) 14:37:15.67 ID:dC6OTsii0.net]
リファクタリングをリファクタ言うの非常に気持ち悪い
refactor は refactoring から派生した単語
refactor という動詞は使われだして日も浅く、まだ技術系のスラングの域でしかない

VS には「リファクター」としてリファクタリングを行うメニューが提供されているが
小洒落た動詞として使用される分には気にならないが、
日本人が「リファクタする」とか使ってると「カンパニーのコンプライアンスをガバナンスする」とかと同様に見える
いやもっとあれか「コンプラをガバーンする」とかと同じレベルかな? (govern は正し

499 名前:「動詞)

https://english.stackexchange.com/questions/57750/is-there-a-verb-refactor-meaning-doing-refactoring-in-english

……MSのスペルチェッカで引っかかってたのか(現在は知らんが)
[]
[ここ壊れてます]

500 名前:デフォルトの名無しさん mailto:sage [2018/06/11(月) 17:24:57.86 ID:FO+2sVJQ0.net]
カタカナ表記する時点で英語のことなんて気にしてちゃやってられんよ



501 名前:デフォルトの名無しさん mailto:sage [2018/06/11(月) 17:36:15.53 ID:xa0hP702a.net]
唐突に何なんだろうねw
まあ、某社のVS用のリファクタリングツールの旧名がRefactor !"だったね。

502 名前:デフォルトの名無しさん mailto:sage [2018/06/11(月) 19:40:48.77 ID:IrI/gpw8M.net]
英語はよく知らんが 〜ing から派生して 〜 ができるとかあり得るのか?

503 名前:デフォルトの名無しさん mailto:sage [2018/06/11(月) 22:30:32.76 ID:dC6OTsii0.net]
うん、そもそも refactoring が造語

初出が誰なのか不明(Martin Fowler ではない)だが、
1992年には論文で見られるっていうほんとに新しくできた単語なのよ

504 名前:デフォルトの名無しさん mailto:sage [2018/06/11(月) 22:53:53.28 ID:ziXMMRuaa.net]
新しい(26年前)

505 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 11:25:19.10 ID:XfLFdaMYp.net]
接頭辞と接尾辞を付けただけだから別に造語ってほどじゃ無いだろ?

506 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 13:31:08.41 ID:l5O6ZBmRM.net]
もとの言葉がfactor、factoringで、factorは動詞としても使われているのだから、
英語圏ならrefactoringという言葉が登場した時点でrefactorという言葉も同時発生的に生まれていると思うが…

507 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 14:20:48.56 ID:O2DKnY7ra.net]
どうでもいい話だけど、派生した順番はたぶん

factor(名)→ factoring → re-factoring

なんだろう。

完全に想像で何の根拠もないけど、computingが動詞のcomputeの動名詞ではない(たぶん...)
ように、factoringも動詞のfactorの動名詞ではないような気がする

508 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 21:59:47.02 ID:tBKs/ecm0.net]
>>448
factorizeはなぜ使われなかったんだろう

509 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 23:00:33.34 ID:KC1Yqp3NM.net]
まずは英英辞書引こうよ…

510 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 07:49:48.39 ID:GuprKmCG0.net]
英英辞書ってやっぱりエイッエイッて引くのなのかな



511 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 08:29:12.19 ID:o1Fw+zabM.net]
一晩考えてそれか。。

512 名前:デフォルトの名無しさん [2018/06/13(水) 17:13:37.26 ID:LyYtEKg40.net]
こういうやつってC#に向いてるんだろうか
https://i.imgur.com/XbewmEQ.jpg
でもUnityとかでゲーム作りたいね思ってるのってこのタイプだろうなと思うし。

513 名前:デフォルトの名無しさん [2018/06/13(水) 17:14:09.95 ID:LyYtEKg40.net]
これな
https://www.arealme.com/left-right-brain/ja/?ag

514 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 17:20:21.24 ID:yGCmXdsAM.net]
C#より丸鋸とか旋盤の方が向いているんじゃね?

515 名前:デフォルトの名無しさん [2018/06/13(水) 17:22:01.32 ID:LyYtEKg40.net]
3DCGはうまいけどなw

516 名前:デフォルトの名無しさん [2018/06/13(水) 17:24:47.33 ID:LyYtEKg40.net]
図面はやってたけど、なんでもアバウトで絵をかいてるんじゃないからとかボロカス言われた。

517 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 19:08:31.55 ID:TJmxm3LHM.net]
近年、そもそも右脳左脳自体がエセ科学だったんじゃないかって言われてるけどね。

ここのサイトのconsoleって書いてあるところに自分のrwitterアカウント打ち込むと、性格にマッチした言語がわかるよ。IBM製。
hello-new-world.mybluemix.net/top

518 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 19:10:58.93 ID:tfOKWYs/0.net]
>>491
やーごめん。このスレ今日初めて見たの。ちゃちゃいれてもうしわけなす。

519 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 23:36:14.69 ID:AGR+xSSx0.net]
>>497
IBM製じゃなくてBluemix使ったアプリなだけやん

520 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 08:07:40.99 ID:TG8lbF0sM.net]
>>499
いんや、公開したのは日本IBMだよ



521 名前:デフォルトの名無しさん [2018/06/14(木) 12:02:14.52 ID:ZrVl35qK0.net]
自分、ブックオフで買ってきたOS無しのPCにUbuntu入れてるんですが、
Pythonとか面白いので、C#もやってみたいと思っているんですが、

Mono入れれば、書店で売ってるVisualC#の本とか出来ますか・・?

522 名前:デフォルトの名無しさん [2018/06/14(木) 12:26:43.19 ID:ZNAi3suja.net]
C#やるなら普通にWindows機でやったほうがいいと思うけど

523 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 12:28:45.35 ID:IAs3lrtOd.net]
>>501
C#で何がしたいの?

524 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 13:05:26.16 ID:PJ7Fj3C3a.net]
左は約30年前の 稲川会 三日月一家 小原忠悦組長
https://imgur.com/a/MlKixgw

525 名前:500 [2018/06/14(木) 17:14:29.50 ID:ZrVl35qK0.net]
>>502
どうもありがとうございます。Windows機は父親のしかありません・・。強奪してこようかな・・。父親全然使っとらん。。

>>503
本のプログラムを打ち込んでみたいです。Pythonとか面白かったのでC#も挑戦してみたいという感じです。なんかいけそうっぽい

526 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 17:17:13.41 ID:cv3CkBmoM.net]
>>500
あら、そうなのか
すまんかった

527 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 17:27:33.62 ID:im2Z0uooa.net]
>>505
本がVisual Studioを使う前提で書かれていたら無理

528 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 17:59:42.71 ID:IAs3lrtOd.net]
>>505
だから具体的に何をしたいの?(何を作りたいの?)

529 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:14:23.58 ID:im2Z0uooa.net]
書いてある通りだろ

本を読んでその通りなぞりたいんだろ

530 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:19:58.04 ID:T0JMmz9y0.net]
>>507
猫でもわかるシリーズならそんな心配はないな!
>>505
お父さんのPCで間違ってエロコレクションとか見つけたら鬱になるのでやめたほうがいい
ただVisual Studio(VScodeでもいいかも)使えない環境でC#やるのはめんどくさいと思うよ



531 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:22:09.50 ID:im2Z0uooa.net]
猫でもわかるシリーズは今はもう古いと思う(※個人の感想です)

532 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:22:19.44 ID:IAs3lrtOd.net]
>>509
本によるやろそんなもん

533 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:23:22.66 ID:im2Z0uooa.net]
>>512
だから馬鹿な質問するのはやめとけよ

534 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:23:51.86 ID:T0JMmz9y0.net]
>>511
>>510はC#の本なんかまったく読んでいない無責任な個人の感想です

535 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:28:25.08 ID:IAs3lrtOd.net]
>>513
本によるから実際にやりたいこと聞くことの何が悪いんかい?

536 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:30:41.94 ID:Cw52iYDwM.net]
ここで聞くようなレベルの人が使うもんじゃないと思う ⇒ Mono

537 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:34:01.18 ID:im2Z0uooa.net]
初心者がc#が何かよくわからないけど本を読んでなぞって体験したい
そんな感じだろ
それ以上何がある

538 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:35:19.36 ID:Cyktia16d.net]
>>517
キチガイ

539 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:37:17.48 ID:im2Z0uooa.net]
>>518
自分がプログラム入門者だとして何がしたいと答えるつもりだ?

540 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:39:04.95 ID:KqjFIT9WM.net]
世界征服



541 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:40:09.93 ID:Cyktia16d.net]
>>519
いくらでもあるやろwww

542 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:42:49.17 ID:im2Z0uooa.net]
>>521
やっぱり答えられないじゃないか

pythonの本を読んでその通り打ち込んで楽しかった
次はc#だって感じだろ

何か作りたいものがあるならpythonでやるだろ

543 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:44:53.14 ID:Cyktia16d.net]
>>522
ありすぎてひとつに絞る意味がない
おばかさん

544 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:46:00.00 ID:im2Z0uooa.net]
>>523
結局答えられないくせに偉そうだな

545 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:47:04.68 ID:Cyktia16d.net]
>>524
ぼくとり

546 名前:えず簡単なWebアプリがつくりたいのー []
[ここ壊れてます]

547 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:47:24.43 ID:Cyktia16d.net]
>>524
アンドロイドアプリモンスターズつくりたいなー

548 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:47:59.25 ID:Cyktia16d.net]
>>524
家計簿つくりたいー

549 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:48:16.72 ID:Cyktia16d.net]
>>524
テトリスつくりたいなあ

550 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:50:17.14 ID:Cyktia16d.net]
>>524
まだ必要?



551 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:50:51.62 ID:im2Z0uooa.net]
>>529
じゃあそれを質問する意味はなんだ?

552 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:51:45.04 ID:T0JMmz9y0.net]
両方NGでいいや

553 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:51:56.99 ID:im2Z0uooa.net]
>>525-528を作るための本を紹介するのか?
本をなぞると言ってるのに?

554 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:55:45.38 ID:Cyktia16d.net]
>>530
はいキチガイ

555 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 18:56:08.99 ID:Cyktia16d.net]
>>532
だから本によるんやろw

556 名前:デフォルトの名無しさん mailto:sage [2018/06/15(金) 06:51:22.33 ID:7Iypneqg0.net]
ここまで1人の自演

557 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 07:44:22.33 ID:R12hw8Jz0.net]
.hstファイルを読み取りたいので質問です。
C#でやるのに参考になるサイトかコードはないかな?

558 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 08:44:00.21 ID:aVMObWbK0.net]
hstって何さ

559 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 09:14:51.45 ID:R12hw8Jz0.net]
HSTファイル
調べた限りだとHiSTory fileでFXの履歴を記録したファイルで使われることが多いのかな?
自分が使いたいのはFXの履歴ではないくてカメラの履歴などの情報を取りたいです。C++などのコードで書いてるサイトはあるけどC#が見つからない

560 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 10:00:34.77 ID:aVMObWbK0.net]
.hst file format . . . Old and New (Jan 2014)
https://www.mql5.com/en/forum/149178

上のアドレスで説明されているフォーマットだったら普通にBinaryReaderで読み込めば良いんじゃないの
単純な構造だから苦労することも無いと思うよ



561 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 10:05:01.86 ID:brTRb0Nk0.net]
>>538
> C++などのコードで書いてるサイトはある
ならそれ真似ればいいだけじゃねーの?

562 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 21:31:13.88 ID:R12hw8Jz0.net]
HSTファイルもC++ほぼわからないので、参考になるのがあればと思ったんです。
BinaryReader使って試してみます。
ありがとうございました!

563 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 22:18:28.81 ID:qGzm+MRqd.net]
そのC++ライブラリはそんな複雑なことしてんの?
数千行あるなら心折れるかもしれんが、自分で移植するほうが早い気がするけど
C#かけるなら余裕でしょ

564 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 22:23:59.43 ID:IxLGC6rAM.net]
byte[]からstructにマーシャリングするのが簡単かな
あ、でも最近のC#はマルチプラットフォームだからバイトオーダーも気にしないとダメなのかな
地味にめんどくせえな

565 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 22:37:48.08 ID:R12hw8Jz0.net]
内容しっかり見てなかったけど100行なかったははず
C#もどこかあるだろで探してたけどC#だけまったく見当たらなかったので、結果的には自分で移植のほうが早かったかな

566 名前:デフォルトの名無しさん [2018/06/18(月) 00:31:09.66 ID:6KD+nJyx0.net]
どなたか助けてください

PaSoRiでFelicaのReadをしたいのです。
winscard.dllを利用し
ScardTransmitにてADPUを送信することで
非暗号化領域のREAD/WRITEをすることはできました

追加で、暗号化領域のREADをしてほしいと言われ、
Group Service KeyとUser Service Keyという2つの鍵を渡されました。
どうやらこの2つの鍵を使って暗号化領域のREADを行うようなのですが
それに該当する情報が見つかりません。

この2つの鍵と縮退鍵の関連もわかりません。
2つの鍵を使って縮退鍵を合成する???
合成したとしてどういうAPDUコマンドを送る???

ご存知の方がいらっしゃいましたらご教授ください。

567 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 00:46:54.25 ID:jPyv6U8B0.net]
それC#の質問か?

568 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 01:05:06.10 ID:6KD+nJyx0.net]
>>546
ごめんなさい。C#で書いてるのでC#で質問しました。
他に適当なスレが見つからなかったもので。。。

569 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 14:58:19.26 ID:Pxwa7YvH0.net]
ライセンス契約の無い奴にそこから先は教えられねーわ。

570 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 15:38:53.66 ID:XzDxjxqSM.net]
バイナリファイルをバイト配列に一気に読み込んでLINQでゴリゴリするなんてC#って言うか.netの醍醐味だね。
C、C++と歩んできて正直C#なめてたが、プログラムの書き方変わったよ。



571 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 19:59:56.07 ID:YV8aSpRw0.net]
バイナリファイルのバイト配列はストリーム(BinaryReader/Writer)経由でしか扱ったことないな
浅学ですまないが非常に興味があるので、何をする処理にLINQを使っているのか教えてほしい

572 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 20:21:08.97 ID:xPHPGLWh0.net]
>>550
横レスだけど「読み込んでLINQ」だからパーサーの部分だろ

573 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 20:48:17.73 ID:Dbb+UGxb0.net]
スキップ.テイク.リバースでバイトオーダー反転してデータ取り込むとかだ。

574 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 20:55:37.17 ID:Dbb+UGxb0.net]
テキストファイルを一行ずつ読み込むとか、バイナリファイルを1フレームずつ読み込むなんてのは時代遅れなんじゃねかと。
最近は一括読み込みしかしないな。
パフォーマンスはライブラリやOSが担保してくれる。

575 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 21:33:32.15 ID:ubyRHWyfa.net]
時代遅れかどうかは知らんけど(そういうネトウヨチックな「俺スゲー」という間抜けな自己陶酔、俺は大嫌いだがw)
富豪的であってもそれが一時的(たとえばメソッドの中だけ)なら何も問題ないね。

その方がより簡潔だったり可読的に書けるなら否定する理由は何もない

576 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 21:36:42.05 ID:C5OiN+R5M.net]
webのアクセスログとかもそんな事するのけ?

577 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 21:40:28.88 ID:ltR7ddTWM.net]
時系列データのリアルタイム処理とかどうやって一括で読み込むんだ??

578 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 21:41:56.46 ID:H/s4J3I+p.net]
巨大な高速RAMストレージを特注

579 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 21:46:48.35 ID:Dbb+UGxb0.net]
時系列的に増えていくファイルだとか、ソケット通信のバイトストリートだとかは順次読み込みするしかないよ。
だけどドライブにあるファイルは一括読み込みの方が簡単だよ。1ステップだからね。それをソートするなりデータ抽出するなりLINQ使えば簡単だよ。
それを知ってから逐次読み出しなんか面倒くさくアホらしくなったよ。

580 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 21:50:28.19 ID:Dbb+UGxb0.net]
>>557
プログラム上に巨大な配列生成しても、それだけRAMに割り付けられると思うのは大間違いだよ。
メモリの階層化とかで勉強してね。



581 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 21:52:07.22 ID:ubyRHWyfa.net]
>>557には「高速RAMストレージ」って書いてあるけどw

582 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 21:52:33.25 ID:H/s4J3I+p.net]
>>559
ストレージと書いてるだろw
外部記憶装置のアクセスの高速化しか考えてねーよw

583 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 21:56:24.93 ID:DGcX/y5w0.net]
LINQのメリットの一つに IEnumerable<T>があるのになんで一括読み込みに拘るんや

584 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 21:57:36.33 ID:C5OiN+R5M.net]
痴性溢れる御意見ですね

585 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 22:00:34.70 ID:Dbb+UGxb0.net]
一括読み込みしたものがアイエニュメラブルになるから。

586 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 22:04:21.91 ID:Dbb+UGxb0.net]
>>561
最近のパソコンは速いぞ。
試しにやってみなよ。

587 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 22:08:39.81 ID:ubyRHWyfa.net]
まったく関係ないが、そういや、この手のデバイスって結局実用化せずに消えたのかね
まったく聞かないな
blog.livedoor.jp/dankogai/archives/50560934.html

読んだのずいぶん前とは思ったがもう12年前か...

588 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 22:31:50.96 ID:H/s4J3I+p.net]


589 名前:>>565
高速flash memoryでraid組んでもRAMの速度には負けるだろ。
[]
[ここ壊れてます]

590 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 23:13:11.27 ID:BrsQYlEtM.net]
>>566
PRAMのSSD版ならもう出てる
DIMMは今年度中にサンプル出荷のはず

STTやRe、Mは頑張ってるがまだ先だろうね



591 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 11:21:29.65 ID:pxATIqrb0.net]
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;
}

592 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 12:12:52.11 ID:DuFsc7dIM.net]
>>569
そういうのはフロー解析による不要なコンパイルエラーを回避するために throw する
例外の種類は状況やポリシーに応じて InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException あたりを使うのが普通

593 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 12:29:34.73 ID:Yf6/X2v7M.net]
これは標準で例外欲しくなるよなぁ
いつも何を投げるか迷う

594 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 12:33:59.90 ID:G9vuY89la.net]
そうかな
>>570が挙げてくれてるので十分でしょ。
少なくともメッセージは自由に設定できるし、本当に必要なら派生もできる。

そもそも例外をそんなに細かく分類する必要が本当にあるのかちょっと疑問

595 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 12:40:32.20 ID:M/oLTPjda.net]
常識的にキャッチされない種類の例外なら何でもいいわな
InvalidOperationExceptionだけはキャッチされる場合があるから微妙だけど、慣習的にはわりと多数派な気がする
個人的には常に NotImplementedException にしたい

596 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 12:46:36.42 ID:9dNJX3N0M.net]
NotImplementedは使わないなぁ

597 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 12:58:28.80 ID:G9vuY89la.net]
NotImplementedException は↓の人の意見だと本当は実装すべきなのに何かの都合でまだ
未実装の場合に使うらしいね。正しいかどうかは知らない
yfakariya.blogspot.com/2011/07/blog-post.html

同じNotでもNotImplementedは「未」実装、NotSupportedは「非」サポートってのは分かりづらいっす

598 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 13:00:29.11 ID:5ya7SPIm0.net]
細かいけどコンパイルエラー回避のためにthrowする、ってのは違くない?
現実問題そんな感じになってしまうことはあるけど理想はコンパイラの都合に合わせたコードなんて無いほうがいいんだから

599 名前:568 mailto:sage [2018/06/25(月) 13:23:21.50 ID:vUyRGEqk0.net]
>>570
>InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException
これらの例外は自クラスには非はなく、呼んだ側の使い方が間違っているといった感じの例外に見えますが
そんなにこだわらなくていいんでしょうか

public class MyClass
{
public class BugException: System.SystemException{}
public void buggedmethod() { ... throw new

600 名前:BugException(); }
}

これで良ければ1行で定義できて1番明快に思えますが
検索してもこんなことをやってる人は誰もいないっぽい…
[]
[ここ壊れてます]



601 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 14:49:07.56 ID:o35Q9ijAM.net]
>>575
>>569のケースに限れば、defaultに来るのはenumにメンバを追加したのにcaseを追加していない「変更漏れ」であると考えることもできるから、
NotImplementedException でも意味的におかしくはない
NotSupportedExceptionは(継承の都合で)メンバ自体が使えないことを意味するからちょっと違う

602 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 18:07:26.16 ID:dM1+XD4cM.net]
MissingCaseException
を自作でいいのでは?

603 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 18:51:31.43 ID:uZsljbpsa.net]
>>578
なるほどそうかも

関係ないけど、いつも思うけどあるインターフェイスを継承してるのに
そのインターフェイスのメソッド使ったらNotSupportedExceptionが飛んでくるって設計は
なんか不条理を感じるのは俺だけかなあw

インターフェイスって契約じゃなかったのかよw

604 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 19:32:38.95 ID:gMkOZD8Wa.net]
InvalidEnumArgumentExceptionは?

605 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 19:39:55.82 ID:gMkOZD8Wa.net]
実装側の問題なら>>578でよさそう

606 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 20:13:43.81 ID:HTnjHonAM.net]
>>570が挙げてる例外は各々意味あるから>>569のとはちょっと違う気がする
AssertExceptionとかLogicErrorExceptionとかが欲しい

607 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 21:43:12.62 ID:xJKhLBIA0.net]
Debugクラスのメソッドはリリース版のとき消えます、素通りします
Debug.Fail() は起こりえない状況であり、かつ、素通りしても問題ない箇所、
またはリカバリ処理を行っている箇所にしか使用できません

基本は例外か Trace.Fail() を使用するべきです

Debug.Fail() を使用して問題ないのは具体的には下記の条件に当てはまるときぐらいだと思います

・『絶対』に起こらないことを目視や単体テストで確認した上で、後続のコードでリカバリ処理を行っている箇所で、
開発によってコードが壊れてないかチェックするためにコードに挿入する
(絶対に発生しないので単体テストを行う場合は #if で慎重にコードを切り替えてエラー状態を再現することになります)

つまり、リカバリ処理してるなら Debug.Fail() は入れなくても問題ないはずです

608 名前:568 mailto:sage [2018/06/28(木) 16:32:42.98 ID:mhaIhaYV0.net]
遅くなりましたが例外とログの使い方大変参考になりました。
ありがとうございます。

609 名前:デフォルトの名無しさん [2018/07/04(水) 22:15:33.33 ID:gFgZc5FG0.net]
81F

610 名前:デフォルトの名無しさん [2018/07/05(木) 22:48:00.22 ID:bXohcl5rE]
C#的にはこういうプロジェクト構成(VisualStudio)が正しい!
という考えたがある方、詳しく教えてほしいんですが、
スレ違いでしょうか?



611 名前:デフォルトの名無しさん mailto:age [2018/07/11(水) 23:46:27.39 ID:wZEnBA6P0.net]
隔離用のスレとはいえ下がりすぎなので上げとく

612 名前:デフォルトの名無しさん mailto:sage [2018/07/12(木) 02:43:18.10 ID:VF8Jnm1rH.net]
超初心者ですが
RectangleとかPointとかって、値型?
値型ってコンストラクタに引数渡せないって、さっき、読んだけど

613 名前:デフォルトの名無しさん mailto:sage [2018/07/12(木) 20:29:08.90 ID:LFvEI7az0.net]
>>589
初心者ですが
そいつらは値型でつ
値型は無引数のコンストラクタにコードを書くことができないんでなかったかいな?

614 名前:デフォルトの名無しさん [2018/07/12(木) 21:32:30.73 ID:wWmeulvip.net]
単なる構造体にインスタンスもくそもないからな。

615 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 09:57:07.24 ID:AoeZKvgvM.net]
構造体は初期化が0フィルだから
フィールドが非null値の場合はどうなるのかはしらない

616 名前:デフォルトの名無しさん [2018/07/14(土) 10:59:20.35 ID:21Pqhes0M.net]


617 名前:のデフォルト値でね? []
[ここ壊れてます]

618 名前:デフォルトの名無しさん [2018/07/14(土) 11:24:43.76 ID:td9rD4BU0.net]
Visual Studio 2017
合計 90 日間が過ぎました。

無料で使いたいんですが、どうすれば良いでしょうか?

619 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 11:27:35.51 ID:trGcxTua0.net]
無料の使ってください

620 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 11:29:07.89 ID:1NIDWWGu0.net]
90日ってことは有償版だろ
大人しく買えよ

もしくはCommunity版を検討する



621 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 11:36:04.11 ID:EtwCAyCb0.net]
>>594
どうしても有償版を使い続けたいのなら期限が切れるたびにWindowsを再インストールすればOK

622 名前:デフォルトの名無しさん [2018/07/14(土) 12:06:05.24 ID:td9rD4BU0.net]
Community版に移行する事にしました。
ありがとうございます

623 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 23:26:56.12 ID:mNPit/gT0.net]
Communityって登録しないと期限とかなかったっけ

624 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 01:08:37.15 ID:WCfEKFtx0.net]
Microsoftアカウントを登録しないと30日

625 名前:デフォルトの名無しさん [2018/07/15(日) 11:14:40.73 ID:GMJtRfj30.net]
サブスクリプションで全シリーズ揃えてる俺に死角無し。

626 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 16:05:05.76 ID:bsqxWqeBM.net]
>>601
VS-4.2くれ

627 名前:デフォルトの名無しさん [2018/08/02(木) 11:31:31.36 ID:ijDqx/PBp.net]
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で実現可能でしょうか。

628 名前:デフォルトの名無しさん mailto:sage [2018/08/02(木) 12:14:20.65 ID:jJXbX9Nfa.net]
その条件ならテーブルを上からたどる必要はないのかと

629 名前:デフォルトの名無しさん [2018/08/02(木) 12:30:22.50 ID:ijDqx/PBp.net]
>>604
辿らない場合、スキルクラス単位で条件絞り込みができるのでしょうか?
これができればとても楽なのですが、、、

630 名前:デフォルトの名無しさん mailto:sage [2018/08/02(木) 13:06:25.80 ID:CFW8XzdE0.net]
どうしても上からたどりたいなら
WhereとAnyで掘り下げていくとか
SelectManyで平坦化するとかか



631 名前:デフォルトの名無しさん [2018/08/02(木) 15:11:34.29 ID:ijDqx/PBp.net]
いえ、辿りたいわけではなくて、辿らないとできないと勝手に思ってただけです
辿らなくて良いなら辿らないでやれればベストです。
ですがその方法がわからないので教えてもらえませんでしょうか。

632 名前:デフォルトの名無しさん mailto:sage [2018/08/02(木) 21:52:06.55 ID:nmSSZypj0.net]
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();

633 名前:デフォルトの名無しさん mailto:sage [2018/08/03(金) 07:33:44.44 ID:TQSHsawm0.net]
以下のコードはどういう内容なのでしょうか?
public IList<float> Plus214_Output_0 { get; set; }


特に
<float>、 { get; set; }

が分かりませんでし

634 名前:

以下の一部になります

https://github.com/Microsoft/Windows-Machine-Learning/blob/master/Samples/UWP/MNIST/src/MNIST.cs
[]
[ここ壊れてます]

635 名前:デフォルトの名無しさん mailto:sage [2018/08/03(金) 07:54:13.63 ID:/ayVy0z+a.net]
>>609
前者は「ジェネリック」、後者は「自動実装プロパティ」でググれ

636 名前:デフォルトの名無しさん mailto:sage [2018/08/03(金) 07:55:39.91 ID:TQSHsawm0.net]
>>610
ありがとうございます!めっちゃ助かりました!

637 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 20:55:48.43 ID:7nA6P5yg0.net]
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

638 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:22:20.14 ID:UKw4EMmv0.net]
>>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);

どっちも汚い。もっと賢いのおしえろください

639 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:24:07.13 ID:ly4lPw5D0.net]
lLINQでやらんとあかんのかなんなのか

640 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:29:04.18 ID:BzL1Bfeb0.net]
こういうのってforで一つずつ比較するのが一番読みやすくて楽じゃね?



641 名前:611 [2018/08/07(火) 21:35:47.39 ID:UKw4EMmv0.net]
無理矢理LINQつかってみたけど>>615に一票

642 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:36:11.45 ID:q6HoXiPg0.net]
>>615
俺もそう思う。他の処理が入ってもすぐに組み込めるし
Linqは可読性がメリットなんだから、わかりにくくなったら本末転倒だし
あくまで個人の感想です

643 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:41:47.05 ID:7nA6P5yg0.net]
dataAとdataBが1000件以上あるので、まず単純に変更してるのがあるか?で
SequenceEqualを使ってみた流れでLINQを調べていた流れで知りたかったです。
forで書くのがわかりやすいとは思うけど、LINQでもっとうまく書けるかなと思って

>>613参考になりました。ありがとうございます!

644 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:43:44.13 ID:5i41CNK00.net]
for では、比較されるレコードが送られてくるけど、

LINQ では、答えしか送られてこないから、効率的

645 名前:デフォルトの名無しさん [2018/08/07(火) 23:11:20.30 ID:EHUuk9/6a.net]
zip使えばいいんでね?

646 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 23:26:49.96 ID:WUtnzCvr0.net]
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); // インデックスを取り出す
}

ループじゃぱっとみ何やってるかわかんねえよ

647 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 23:31:30.75 ID:kuothdai0.net]
あくまで個人の感想だけど。
自分も >>621 みたいなのの方が分かりやすいなあ。
てか、そういう書き方をよくするというか。

648 名前:デフォルトの名無しさん [2018/08/07(火) 23:35:51.16 ID:vAj7NH ]
[ここ壊れてます]

649 名前:SO0.net mailto: LINQってEntityFrameworkでしか用途なくねえ? []
[ここ壊れてます]

650 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 23:37:10.34 ID:9e6mZaIW0.net]
>>623
は?



651 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 23:40:05.44 ID:ly4lPw5D0.net]
>>623

652 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 00:39:26.55 ID:cXv1v5r0a.net]
>>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;
}

653 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 03:30:51.92 ID:x4iNladl0.net]
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);

654 名前:611 mailto:sage [2018/08/08(水) 05:09:02.93 ID:9ryRYesD0.net]
Zip知らんかったわー。超参考にする。

655 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 13:38:09.59 ID:CtU8HUVGd.net]
インデックスが必要な時、わざわざselect挟んでインデックス貼るの馬鹿らしい感じがして好きになれないんだけど仕方ないよね?
そんなにインデックスを参照することが多いなら生成時に一緒に貼っとけって話かもしれんが…
そもそもlinqマスターはインデックスを必要としない設計にいつもなるの?
自分もインデックスが無くて済むように考えるけど結果的に必要になる箇所が細部で出てくるんだよね

656 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:08:00.53 ID:csO2M6exd.net]
どうしても必要な時はselect((value, index) => new {V = value, I = index})でインデックス引っ張ってるわ
それでもインデックス欲しい条件1行で書けるのが楽だからLinq便利派だけども

657 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:25:20.52 ID:CtU8HUVGd.net]
>>630
俺もそれ、ちょくちょくするんだけどforで回したほうがよくね?って思っちゃうことがあるんだよね
もちろん処理によりけりと言ってしまえばそれまでなんだけど
比較するようなもんじゃないかもしれんがjavascriptなんかだと大抵インデックス取れるから、そっち触ったあとにC#に戻ると処理考えるときにインデックスありきで考えがちになっちゃう気がしてる

658 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:32:55.42 ID:CtU8HUVGd.net]
先に出てた課題でもzipしたあと、そのままlinqで処理を完結させるか、zip後にforで回すか
個人的にはzipがどちらにせよ入るなら最後までlinqの方が1つの処理を1つの手法で解決してる感じがして好き
だけどインデックスが処理に必要だからfor使いたいって気持ちもわかる

659 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:53:36.93 ID:bbTjp3FCd.net]
>>631
まぁforのがいいと感じるならそれでもいいんじゃないかな
複雑な処理しない限りは大体Linqのがスッキリするからそうしてるだけだし

660 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 15:07:53.10 ID:x4iNladl0.net]
こういう拡張メソッド作っておくのはたまにやる
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でインデックスつけてる冗長さもないし、添字アクセスもないし、使う時はすっきり意味がわかりやすい



661 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 16:44:49.34 ID:Gn4Y43YUM.net]
>>634
正直クソ分かりにくい
俺がレビューしたらリジェクトするわ
WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する
そもそも

662 名前:メソッド名以前に、LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
キーやインデックスの方を返すような操作については特に念入りにそれがわかるような明示的な表記になるように工夫したほうがいい
[]
[ここ壊れてます]

663 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:02:43.62 ID:0wIwbQiXM.net]
SelectIndexWhere()ならどうか。英国紳士にも通じると思う

664 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:20:32.65 ID:o48M+fLoM.net]
SelectWithIndexやな

665 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:26:15.62 ID:icN1uiHAa.net]
SelectIndexFilteredByValue
これでもパッと見 ? となる人は多そう

666 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:40:49.62 ID:Uqgxm++Va.net]
>>636
IndicesWhereで十分でしょ
Selectはいらんと思うw
メソッドなのに動詞じゃないのはおかしいって言ったって、組み込みのWhereだってそうだ

まあスレ違いだね。

667 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 18:11:22.97 ID:ucfZkVugd.net]
>>639
誰が動詞じゃないとおかしいって?

668 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 18:27:19.45 ID:x4iNladl0.net]
>>635
>WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する

そんなのはWhereでできるし

>LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
>キーやインデックスの方を返すような操作については

それもSelectでできるし
だいたい要素の値を操作していくものっていう暗黙的了解があるならWhereIndexも要素の値が対象と思うんじゃない?
なんか矛盾してね?

669 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 19:23:56.51 ID:x4iNladl0.net]
ほぼ同じ拡張メソッドでIndexWhereのが引っかかったわ
多分こっちの方が自然なんだろうな
一応候補だったんだが自分的にしっくりこなかったけど

670 名前:デフォルトの名無しさん mailto:sage [2018/08/09(木) 21:27:13.79 ID:s67NkejU0.net]
>>631
ランダムアクセスできるとは限らんしっていうかLinqだとほとんど出来ない



671 名前:デフォルトの名無しさん mailto:sage [2018/08/09(木) 22:09:58.32 ID:VdJ1XdFa0.net]
>>643
ランダムアクセスできないコレクション扱うときにインデックスが欲しくなるケースってなかなか無いと思うけど

672 名前:デフォルトの名無しさん mailto:sage [2018/08/10(金) 23:12:00.00 ID:AJVeRJgN0.net]
>>644
ランキングとかページングとかか?

673 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 00:11:00.13 ID:p6HuaRWz0.net]
>>645
それってインデックスつけることが一つの目的じゃない?
インデックスってかソートかな?
いろんなところでいろんな処理されるコレクションがあって、その処理の殆どにインデックスが不要だけどごく一部にインデックスがほしいとき、わざわざ1行追加するのスッキリしないなぁって感じ

たった1行なんだから書きゃいいんすよ?
それはわかってるけどなんか気持ち悪いなぁって気がするだけ

674 名前:デフォルトの名無しさん [2018/08/11(土) 12:41:19.45 ID:YyI+aygL0.net]
ほとんど必要が無いインデックスだけど
ごく稀に必要になるから必要になるところでだけインデックスを追加するんだろ
ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん

675 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 14:21:00.05 ID:WHbJdrO8a.net]
何を言ってるのか意味が分からんけど、indexって言葉の意味を知ってて言ってるのかなそれw

676 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 14:23:04.22 ID:p6HuaRWz0.net]
>>647
いや、linqでインデックスを付与しないけどランダムアクセスすることはあるよ?
前提変えたらそら意味通らんよ
コレクションをlinq以外で処理しちゃ駄目ルールでもあるの?

677 名前:デフォルトの名無しさん [2018/08/11(土) 14:36:01.31 ID:YyI+aygL0.net]
>>649
なにいってんだ?
IEnumerable<T>にインデックスなんてない
ないからSelectで付与するんでしょ

そんなルールはないけどほとんどほとんどLinqで済むでしょ?
Linqでサクサク処理してるのに中に突然ループが紛れ込んできたらキモいって話をしてる

var tmp = list.Where(...).OrderBy(...).ToArray();

for (int i = 0; ...) {
...
}

var result = tmp.Where(...).Select(...);

678 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 14:48:08.19 ID:p6HuaRWz0.net]
>>650
え?ずっとそういう話をしてたのになんで突然
>ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん
って書いたの?

インデックスのないlinq処理でそれが必要になったときわざわざselectで付与するのなんか気持ち悪いねーって話よ?

679 名前:デフォルトの名無しさん [2018/08/11(土) 14:59:36.83 ID:YyI+aygL0.net]
>>651
気持ち悪いのはお前の感覚ではという話だろ
俺からすればToArrayやToListをかましてメモリとCPUを無駄にしたり余計なメソッドを追加するほうが嫌
メソッド化に関しては再利用性が高いかうまく抽象化されていて可読性が高まるというなら別だが
真にランダムアクセス性が必要なアルゴリズムならば変換せざるを得ないがそもそも今回の問題には必要がない

680 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 15:12:53.25 ID:p6HuaRWz0.net]
>>652
うん、そうだよ
個人的に気持ち悪いなーってだけ
はじめからそういうふうにしか話ししてないつもりだけど

ランダムアクセスが不要だからあえてランダムアクセスできないコレクションを選択するの?
ランダムアクセスは不要だけどあったって使わないだけだからどっちでもいい、ってなるのが普通じゃないの?
パフォーマンス要求がシビアでランダムアクセスできるコレクションを選択することで、その要求から外れてしまう、とかいうならわかるけど



681 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 15:28:37.80 ID:YyI+aygL0.net]
>>653
ランダムアクセスが不要なアルゴリズムなら「当然」IEnumerable<T>(ランダムアクセスできないコレクション)を選択するだろう
まったくもって「あえて」と言う理由が分からん
もしもSelectやWhereの引数が配列だったら普通のプログラマなら「あえて配列にしたのはなぜか」と疑問を持つだろう
なんか逆なんだよね思考パターンが

682 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 15:33:32.78 ID:p6HuaRWz0.net]
>>654
そういうもんかー
んじゃあ使うコレクションがランダムアクセスを提供しているか否かを把握しとかないと選択できないな…

683 名前:デフォルトの名無しさん [2018/08/12(日) 00:56:37.14 ID:UOoEXFjMp.net]
コレクションって言葉がダメだと思うぞ?
そもそもIEnumerableはシーケンシャルな列挙の機能しか提供しない
根本的に理解が間違ってる

684 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 11:56:03.51 ID:GZni4QRja.net]
コレクションという表現はおかしいね
無限に乱数を返すものをソースにできるし

685 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:21:46.30 ID:7meTQdNO0.net]
マジレスするとメッセージ捕まえて
自力で描画すれば可能なんだけど
労力に見会わないのでお勧めしない

webやWPF, UWPならグラ弄るの簡単

686 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:23:43.41 ID:7meTQdNO0.net]
誤爆しました すみません

687 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 16:03:02.33 ID:RaawotRPM.net]
のへこののけとこけノハケケノノネネサマを通り越しておりましたとが気になると7人

688 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 16:03:23.33 ID:RaawotRPM.net]
こねのこのねのけのねここけこそけ

689 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 22:10:23.24 ID:IOzhaO6j0.net]
doxygenみたいなドキュメント生成ツールを使うとxaml部分がまともに解析出来ません。
bindingしているviewとviewmodelの関係なんかが分かるドキュメントにしたいんですが何か良い方法ないでしょうか?

690 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 22:17:10.47 ID:BClpbb6X0.net]
Func<string> func = () => { return "text"; };
var res = func();

これを一文で書くことはできますか。

ふと気になっただけではあるけれど、自分で解決できなくて気になって仕方がない。
基本的なことが分かってないような気がする。



691 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 22:28:35.55 ID:9WO+tdsEa.net]
var res = "text";

692 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 00:16:02.34 ID:rZVfBBf1a.net]
>>664
まあそうなるよな

693 名前:デフォルトの名無しさん [2018/09/15(土) 00:21:48.95 ID:elLmwu/20.net]
本当はなにをしたかったんだろう
例題が悪い気がする

694 名前:661 mailto:sage [2018/09/15(土) 00:41:48.54 ID:LMkhUY/p0.net]
ああ、そうか。w

パラメータに対してちょっと複雑な変換を掛けるのだけど、汎用性がないから専用関数作るのもなんだし、
だったらラムダ式で書けばいいんじゃね?→ ラムダ式は Func 型?だから戻り値とれねーじゃん ってところから進めなった

695 名前:
他にやり方はあるので出来なくてもいいのだけど、気にはなって。
[]
[ここ壊れてます]

696 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 01:22:08.16 ID:rZVfBBf1a.net]
専用関数でいいんじゃない?
複雑な処理ならそれこそ括りだしておいてわかりやすくしたほうがバグ出にくいし簡単でしょ

697 名前:デフォルトの名無しさん [2018/09/15(土) 05:59:42.97 ID:crViL/AR0.net]
>>667
参照渡すとか?

698 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 15:15:22.99 ID:aC3C7hdpa.net]
こんなのは嬉しくないね
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;
      }
    )
  )();

699 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 15:22:04.34 ID:aC3C7hdpa.net]
これも却下だな
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;
    }
  );

700 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 17:23:21.76 ID:aC3C7hdpa.net]
全然関係ないけど、Randomって[0, 1]とか(0, 1)の乱数は作れないのか
半開区間だと使いづらいような気がするけどそんなことないのかな



701 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 18:10:42.64 ID:ghSS5jwya.net]
言葉の意味はよくわからんが
Randomは第二引数未満の乱数発生するんじゃ?

702 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 18:34:42.22 ID:nwnNkRfe0.net]
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こういう意味とは違うの?
整数範囲で出して割った方が範囲や有効桁も決められるからそっちの方がよさそうな気もする

703 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 18:56:24.76 ID:aC3C7hdpa.net]
[0, 1]とか(0, 1)は数学の記号ね(多分高校1年ぐらいで習ってるはずw)

Random.DoubleNextの戻り値は[0, 1)(つまり0≦x<1)らしい
普段乱数使うようなコード書いてないからよく分からんけど、
0≦x≦1とか0<x<1でないと困る場面も多いんじゃないかなと思っただけ

704 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 19:01:32.64 ID:Bg+wr9i5a.net]
えなんかめんどくさいからもういいよ

705 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 19:05:58.75 ID:nwnNkRfe0.net]
有効桁区切るのと一緒で丸め、切り上げ、切り捨てしたらいいだけでは
Random自体C#で使う場面に出くわしたことないからあまり考えないな

706 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:19:51.91 ID:Fr67tYwB0.net]
game engineだとか[]の乱数あったりするよ
()は見たことない
コーディングしてたらわかるけど利用場面は圧倒的に少ない

707 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:30:38.93 ID:OUVvcRON0.net]
>>667
> パラメータに対してちょっと複雑な変換を掛けるのだけど
と言うなら例もパラメーター使ってる例を書かなきゃ

>>670
俺もこれしか思いつかなかった
そもそも
var f = (string x) => { return "abc" + x; };
位は型推論してくれてもいいと思うんだけど難しいのかな?

708 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:39:04.65 ID:OUVvcRON0.net]
>>675
例えば0〜9の整数乱数がほしい時に[0,1)なら10倍して整数部分を取るだけだけど(0,1)とか[0,1]だとすごく面倒

709 名前:デフォルトの名無しさん [2018/09/15(土) 20:42:09.91 ID:KIanXBkQ0.net]
面倒だったら擬似乱数生成器を自分で作ればいい
キミラ程度が使う程度の擬似乱数だったら数行コピペでできる程度のもんで十分だからな

710 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:49:32.65 ID:Xc5RKOnR0.net]
>>667
ローカル関数じゃだめなん?



711 名前:デフォルトの名無しさん [2018/09/15(土) 20:53:08.93 ID:KIanXBkQ0.net]
https://ideone.com/PJDFVv

この程度で十分

712 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 21:33:37.63 ID:OUVvcRON0.net]
>>681, >>683
バカは絡んでくるな

713 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 21:35:49.16 ID:OUVvcRON0.net]
>>682
本来必要のない名前を考えるのが面倒
そもそもローカル関数にするぐらいなら>>663とたいして変わらんし

714 名前:デフォルトの名無しさん [2018/09/15(土) 21:37:43.29 ID:KIanXBkQ0.net]
やっぱり低学歴知恵遅れは
内側の擬似乱数生成器をかえるだけの話なのがわかってないわ

きっと擬似乱数がなんなのかすらわかってないわ
擬似乱数がなんなのかわからずに乱数()とかいって数字使ってる程度だからな

715 名前:デフォルトの名無しさん [2018/09/15(土) 21:39:33.01 ID:KIanXBkQ0.net]
つまり
コレがC#なんか使ってるヤツラのオツムの程度

716 名前:デフォルトの名無しさん [2018/09/15(土) 21:40:44.62 ID:qw6mr0Vb0.net]
>>675
(0,1)は[0,1)が0ならやりなおし、でいいんじゃないのと単純に思ったがそんなものじゃない?

717 名前:デフォルトの名無しさん [2018/09/15(土) 22:05:16.77 ID:KIanXBkQ0.net]
そもそも機械イプシロンのこと分かってて
ああいうレスしてるようにはまったく見えないからな

718 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 22:52:03.88 ID:OUVvcRON0.net]
>>688
発生側はそれでいいとしてそれを必要とする機会がどんだけあるの?
って話かと

719 名前:661 mailto:sage [2018/09/15(土) 23:10:36.43 ID:LMkhUY/p0.net]
気に掛けてくれた方々に。ありがとう。

>>670
ああ。なるほど。型を明示してあげたらよかったのか。
キャストを加えたら期待通りに書くことが出来ました。ありがとうございます。

これってラムダ式を var で宣言した変数に代入できなかったことがヒントになり得たんだな。頭が回ってなかった。
これくらいは型推論してくれても良さそうなのにとは原因が分かった後での負け惜しみ。

>>668,682
今回のはそういうことが出来そうなのに出来なくて悶々としてしまって。
実用性度外視で原因を知りたかったの。

720 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 10:09:07.69 ID:QiF2mi6W0.net]
今ならref/outがないならAction/Funcに型推論して
シグネチャが同じdelegate間の暗黙の型変換が行われる
初期化時に左辺とかキャストとかでdelegate型が明示されてたらそのdelegate型でnewされる
でいいと思うよな〜



721 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 06:50:46.79 ID:luZsj3k/0.net]
Visual C#ってDelphiみたいに同じコードでWindows用とMac用にビルドできる?
マシンは両方用意できるとして

722 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 07:42:00.17 ID:JcyGHTPld.net]
Visual C#って具体的にはどのフレームワークを指してるのかい?

723 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 10:08:17.18 ID:WBt1GswEM.net]
可能

724 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 12:41:26.38 ID:9aNAf/d20.net]
>>693
コンソールアプリなら同じコードでどっちでも動くはずだけどGUIはよくわかんない
Xamarin Forms使えばいけるのかな?

725 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 13:59:56.78 ID:luZsj3k/0.net]
多分ASP.NETを使ってGUIのWebSocketクライアントを作る予定です
ありがとうございます

726 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 14:05:07.91 ID:8sfFLOeb0.net]
MacでWebSocket??????
ちょっと何言ってるかわかんないですね

727 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 21:52:32.99 ID:rAzbq+Jy0.net]
下みたいなことって出来ます?
やりたいのは object 型の変数に代入したジェネリック系のインスタンスを、さらに元のジェネリックの型にキャストし直すってことなんですが。

void func( object dic )
{
var tmp = (Dictionary)dic;  // ← これみたいなことをやる方法がないかなと
tmp.Add( "test", new object() );
}

var dic = new Dictionary< string, object >();
func( dic );

728 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 23:15:04.62 ID:dHSM7pQD0.net]
as

729 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 23:17:13.70 ID:+un+mAjX0.net]
anal

730 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 00:24:29.22 ID:WuETTr790.net]
>>700
言葉が足りてなかった。申し訳ない。

例示のケースの場合は、
var tmp = (Dictionary<string,object>)dic;
と指定すれば出来るのだけど、Dictionary だけでキャストし直すみたいなコトできないかなって。
as でも Dictionary だけではキャストできないことは確認しました。



731 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 00:30:38.46 ID:5qvGm4LBa.net]
出来たとして何の意味があるのそれw
そもそもHoge<int>より大きなHoge<T>とかHogeって型が存在するわけじゃないでしょうw
根本的に勘違いしてないか

732 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 08:41:34.87 ID:649yR4/AM.net]
genericsでないDictionaryは存在しないからでしょ。
genericsパッケージでないほうのHashtableならできると思うけど安全性を損ねるしやらんほうがいいんじゃね

733 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 12:20:51.28 ID:/G4FYlhv0.net]
IDictionaryならあるよ
キャスト時にいちいち型引数を書くのが面倒ぐらいの意味しかないけど

734 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 12:48:53.74 ID:sTtGwCQ3a.net]
>>702
を読み直してみると、ひょっとして要するにジェネリックの型パラメータを書くのが面倒臭いから
省略できないか?、って言いたいのかな

それなら答えは「できないけど仮に出来たとしても絶対やるな」じゃないの?

もちろん、
using Dictionary = System.Collections.Generic.Dictionary<string, object>;
こういうエイリアスは書けるはずだと思うけど

何にしろ、質問は他人が読んで分かるように書いて欲しいよね

735 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 17:14:16.27 ID:kGqzP/YO0.net]
型安全性を無視していいならdynamic使え
そうじゃないなら出来てもやるな

つかジェネリックを勘違いしてるんじゃね

736 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 17:21:14.85 ID:Q+zVeK5uM.net]
それによって何がしたいのかを書いてくれないと何言ってるかわからんよな

737 名前:697 mailto:sage [2018/09/29(土) 00:47:34.72 ID:EY+8Y7mF0.net]
ありがと。
やっぱり dynamic 使うしかないかな。避けたかったのだけど。

なにが入ってるか分からない配列の中身を文字列化してログ出力したかったの。(最初は)
object[] の要素の中身が generic だったりしたときに ToString() だとクラス名?にしかならないから。

738 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 03:23:52.22 ID:BJdQm5Iw0.net]
なんで何が入ってるかわからない配列なんてもんを触るんだ
静的型付け言語のメリット台無しやんけ

739 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 09:01:26.24 ID:FmliS3qN0.net]
何が入っているかわからないものを扱いたいと言っていながら一方でdynamicは避けたいというのが
よくわからんなぁ。避けてどうしたかったんだろうか。

740 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 11:56:45.30 ID:EY+8Y7mF0.net]
単に dynamic が嫌いだったのから。w



741 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 12:32:33.34 ID:3Hj8wsg1M.net]
ふーん。頭が悪いからじゃなかったのか

742 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 14:34:45.14 ID:9IdCJ4nKM.net]
たぶんjsとかの感覚で言ってるんじゃないかと

743 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 14:42:39.43 ID:FmliS3qN0.net]
でもJSも実行時に型を判断できるし、逆の意味で大して変わらんと思う。

744 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 15:07:47.86 ID:EY+8Y7mF0.net]
あれ? dynamic って推奨だったの?
おまえらがどういう場面で使ってるのか教えてくれ。

745 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 16:47:06.91 ID:rkT/I8Hma.net]
デシリアライズでもするつもりだったんじゃねの
クッソ面倒なんだよな実際

746 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 16:56:30.70 ID:X4waiIaR0.net]
ん?
> なにが入ってるか分からない配列の中身を文字列化してログ出力したかったの。(最初は)
じゃねーの?

747 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 18:05:26.03 ID:w5r/wslsa.net]
もういいでしょw
たぶん何か勘違いしてるだけだ

748 名前:ニ思うよ

俺もプログラミング初めて2,3年は静的/動的とかコンパイル時/実行時の違いとか
分かってるようでよく分かってなかった
[]
[ここ壊れてます]

749 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 19:25:50.32 ID:rSQsiXYHa.net]
結局なにがしたいのか伝わってこない上に
微妙にムカつく上から目線

750 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 12:04:22.29 ID:upBech+00.net]
それは此処の仕様。



751 名前:デフォルトの名無しさん mailto:sage [2018/10/07(日) 19:19:55.60 ID:QvnX76F+0.net]
そろそろ.NET標準でDDSのデコードできるようになってくれないかな
エクスプローラーでは普通に表示されるんだから
できればBC6と7までw

752 名前:デフォルトの名無しさん mailto:sage [2018/10/07(日) 19:43:24.02 ID:mZPrgRqf0.net]
>>722
DDS?

753 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 15:29:49.78 ID:gfGA4Hi30.net]
>>696
あれ、C#って、マルチプラットフォームじゃなかったの?

Java は、Windows, Mac, Linux, iOS, Android, Chrome, Firefox, IE, どれでも
動いたよね、昔は。

754 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 16:00:38.35 ID:y5q0bWlwM.net]
Javaもクライアントアプリ分野から撤退したから今はクロスプラットフォーム度でいえばC#のほうが上なくらい(あくまでカタログスペック上は)
C#はWebかコンソールアプリなら.NET Core使えばLinuxやMacで動く
スマホやMac向けのGUIアプリならXamarinだな

755 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 16:22:14.98 ID:qWHG2Ppw0.net]
Unityも忘れるな!
mono様々やな

756 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 20:25:55.35 ID:5Xb93YKt0.net]
普及度とかマルチプラットフォームとかどうでもいいけど
Windows使っていて個人的に何かちょっと作ろうと思ったときに、もうC#以外考えられない体になってしまった

757 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 20:37:33.56 ID:MDetJiiMa.net]
おれはpythonかなー
スクリプト言語はほんま楽やで
客先でインスト制限きつい時はC#とPowerShell
Microsoftさんは早くVSCodeとdotnet cliをWindows標準にしてPowerShellを強制アプデすべき

758 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 21:09:20.78 ID:FxDWQZOn0.net]
おまんらWPF使ってる?

759 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 21:09:38.83 ID:t4QZh6l3d.net]
うん

760 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 21:34:18.47 ID:fYYBLspX0.net]
>>729
個人で使ったけど、これを社内外で使わせるにはMVVMきっちり教えないと破綻確実だから諦めた



761 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 22:39:29.79 ID:eTSVpSn40.net]
>>728
確かに楽だな。 < python
Web API を叩くプログラムをこれで書いたけど、学習まで含めてすぐ出来た。w
VS 上でも書けるのが楽さに拍車を掛けてる。

>>729
うん。でも最近はやってないな。そーいえば。

762 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 22:44:00.95 ID:GgFjLBNe0.net]
>>729
使ってる。
チームとして採用するのは難しいかもね。

763 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2018/10/22(月) 07:55:37.83 ID:D227Fdyd0.net]
>>733
どうして?
学習コストの高さ?

764 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2018/10/22(月) 08:11:55.33 ID:vkGCn3UdM.net]
そうです。
XAMLとか慣れるまで大変だし、やっぱり簡単なFORMになるんじゃないかな。

765 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 12:06:51.16 ID:DqwlPEpNa.net]
レイアウトはFormよりWPFの方が楽だと思うんだけどな
Formばかりやってたチームだと学習コストが高くて難しいのはある

766 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 12:25:16.33 ID:+Bt5JEYG0.net]
XAMLはVS補佐がまだまだ足りない
昔の落ちまくりよりは格段に進歩はしたが

767 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 06:15:06.44 ID:oKq5ee0m0.net]
Formやる前にWPFから入った俺は異端

768 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 12:11:12.26 ID:Z3T8y8K/M.net]
formは過去の遺産だから、これからやるならWPFが正統だ。

769 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 12:32:04.49 ID:0EGfRFOMa.net]
>>737
Blendを使ってください、ってことなんだろうけどなぁ

770 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 12:42:28.83 ID:Q+FZ+yEYM.net]
WPF自体は終わってるよね
次の本命が無いから使うしか無いだけで



771 名前:デフォルトの名無しさん [2018/10/23(火) 12:52:00.65 ID:Hcq+1RfE0.net]
なお、どこも新規開発はFormの模様

772 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 12:56:27.59 ID:eyu+kwgc0.net]
MSのイチオシはUWPだしコントロールは充実しているんだけどね
TreeViewは完成したし、後はDataGridの完成を待つだけだ

773 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 14:20:00.03 ID:oKq5ee0m0.net]
全然未完成じゃねーか

774 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 14:36:28.72 ID:cDc5Fd7gM.net]
最近のMSはだいたい未完成
ちょうどGithubもやらかしたし、Azureのサービスなんかガチで世に出しちゃいけないレベルのものが大半

775 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 15:11:27.54 ID:BR1ycnzw0.net]
未完成の物をとりあえず出して、
バージョンアップで完成させてくのが昔からのビジネスモデルやろw

776 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 15:12:45.43 ID:dmXi8fk90.net]
アジャイル

777 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 15:51:37.07 ID:Z3T8y8K/M.net]
新規開発もFormになるのは人集めの都合だよ。

778 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 16:28:52.85 ID:9gwDvhi80.net]
>>741
終わってるってどういうこと?

779 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 16:45:50.67 ID:cDc5Fd7gM.net]
>>749
どういうこともクソもWPFは5年くらい前にとっくに開発終了してメンテナンスモードだよ

780 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 16:46:49.17 ID:9gwDvhi80.net]
>>750
ソースは?
.NET Core3.0知らないの?



781 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 16:51:18.62 ID:cDc5Fd7gM.net]
>>751
ソースは.NET 4.5以降のリリースノートだよ
何か気になる新機能はありましたか?

782 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 17:16:53.27 ID:9gwDvhi80.net]
>>752
で、「終わってる」だなんてMicrosoftはリリースノートに書いてるのかい?
しかも.NET Coreは都合が悪いから無視ときたもんだ…

783 名前:デフォルトの名無しさん [2018/10/23(火) 17:39:47.89 ID:PWuDtLsGa.net]
Core3.0まで出てるんだ
なんか使いやすくなった?

784 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 17:40:45.51 ID:Z3T8y8K/M.net]
WPFが終わってるならFormは死んでる。
しかし、ゾンビ技術者がウヨウヨいるから需要はあるのかも。

785 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 17:55:40.99 ID:cDc5Fd7gM.net]
>>753
CoreのWPF対応ってWPFをCore向けにビルドしてNuGetで入れられるようにするだけだぞ?
WPF自体の新機能ではないよ

786 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 18:06:42.97 ID:9gwDvhi80.net]
>>756
必死に調べて理解したのはそれだけ?

「終わっている」プロジェクトに対してそんなことしないだろ

787 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 18:19:29.54 ID:mVZ7w/wV0.net]
平日に役に立たない言い争いしている奴らが終わってる

788 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 20:09:28.44 ID:AlQfFCDV0.net]
WPFの機能追加は終わってる
なら正しいかもしれない

789 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 20:46:15.68 ID:duwPtJnv0.net]
>>754
せっかく切ったWPFとFormアプリ復活・・・

790 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 20:53:51.51 ID:T5C69wUW0.net]
業務系ならありがたいね
ランタイム依存なしでForms使えるんだろ
ブラウザ要らないじゃん



791 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:26:47.62 ID:+h1AjSvua.net]
>>761
デプロイどうすんの?アップデートの度に君が出向いて客のPCでZip解凍して回るの?
それが面倒だからWebなのに、それが.NET Coreになったところで何も解決し

792 名前:ないよ
というかClick Onceが無くなる分だけ状況は悪くなるな
[]
[ここ壊れてます]

793 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:29:43.70 ID:TLuMxHqO0.net]
自前でアップデート処理を実装すれば問題なし

794 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:33:45.87 ID:9gwDvhi80.net]
>>762
>Click Onceが無くなる
ソース出してみ

795 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:43:47.63 ID:+h1AjSvua.net]
>>764
悪魔の証明を求められても困る
.NET CoreでClick Onceが使えるソースを出すのは君の仕事だ
当たり前だけど、FullFWのClick Onceを使うという本末転倒な方法は無しで頼むぞ

796 名前:デフォルトの名無しさん [2018/10/23(火) 21:57:45.44 ID:NgQNKVM70.net]
.NET Coreって仕事で使う?

797 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:59:32.82 ID:9gwDvhi80.net]
>>765
妄想おつw

798 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:59:56.85 ID:9gwDvhi80.net]
>>766 
もちろん使ってるよ

799 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 22:02:41.25 ID:Eu3QtAGFd.net]
>>765
断定してたからそんなアナウンスもうされたのかと思ったのに…思い込みが激しいと周りが苦労するね

800 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 22:16:19.58 ID:+h1AjSvua.net]
まあプレリリースまでもうすぐだから期待してるよw



801 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 22:34:00.35 ID:9gwDvhi80.net]
そだねー

802 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 23:26:45.20 ID:bb2jvxz40.net]
WPFが.net coreに対応したといってもlinaxで動くわけではないんだよね?
じゃあなんの意味があるの?

803 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 00:56:19.20 ID:Zhd8G0p80.net]
>>772
linaxって何?

804 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 01:29:36.25 ID:nEIaPqDo0.net]
>>772
ググれないの?

805 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 04:16:13.88 ID:lspkKr8a0.net]
ライトなトイレメーカー

806 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 08:07:19.33 ID:nll2w7iZM.net]
同じプログラムを2台のPCで動かしたら、スペックのいい方が断トツ実行速度が遅いんだけど、何かチューニングするとこある?

807 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 08:25:20.58 ID:LYsln+4LM.net]
ログ仕込め

808 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 09:13:35.22 ID:Jq5IeBu60.net]
>>776
裏で怪しげなの動かしてるんだろ

809 名前:774 mailto:sage [2018/10/25(木) 12:22:26.50 ID:nll2w7iZM.net]
特に怪しいものなんか動いてないと思うんだけどなぁ
アンチウイルスの保護停止しても変わらない

こんなときに効果的なログの張り方ってある?
一部がネックなのではなく、もう全部が緩慢な感じ

810 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 12:26:06.77 ID:U/6911CyM.net]
適当なとこにログ仕込んで狭めて行けばええやろ



811 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 12:28:31.91 ID:LYsln+4LM.net]
例えばウィンドウズサーチとか重たいよね
リソース逼迫してないなら
ディスクI/OやネットワークI/Oや
ネットワーク構成が違うとかかね
全体的に緩慢となるとなあ

ヒント欲しいならもっと情報ださないとダメよ

812 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 13:18:57.91 ID:Jq5IeBu60.net]
タスクマネージャーあけてぼーっと眺めておくとひょっとしたらと。
で、スペックはどんなもんなの?

813 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 13:56:04.51 ID:m3i6L9YGM.net]
debugとreleaseだと速度違うんだっけ?

814 名前:デフォルトの名無しさん [2018/10/25(木) 15:08:46.52 ID:qGEaBy7DM.net]
>>783
全然ちゃうで

815 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 16:37:44.59 ID:LYsln+4LM.net]
そういうオチ

816 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 16:59:50.46 ID:/kJ20XbY0.net]
debugとreleaseてそんなに違うの?おれのfizzbuzz100までどっちも一瞬だったよ

817 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 17:51:08.23 ID:LYsln+4LM.net]
ネタをネタと見抜けないと
レスするのは難しい

818 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 00:26:15.60 ID:/Y6tHm6z0.net]
スレチかもしれんけど、まだサポートしてないバージョンのアセンブリで定義されてるクラスをリフレクションでもいいから使う方法ってないかな。
具体的にはフレームワークのバージョンが2.0しか許可されない職場でxdocumentを使う方法…
dllを隣に

819 名前:揩チてきて参照しても、型自体を認識してくれない []
[ここ壊れてます]

820 名前:デフォルトの名無しさん [2018/10/26(金) 00:59:31.47 ID:HrTWAmck0.net]
>>786
100万データ処理してから物言いなさい



821 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 12:40:20.23 ID:Ho1Po0zEM.net]
64bitアプリから32bitアプリへ効率よく通信したいのですが、良い方法ありますか?
今はPostMessageを考えてますが型が合ってないので違う方法を探してます。

822 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 12:40:41.09 ID:gXWoxuJ30.net]
UWPだとreleaseとdebugでちがいそうだけど。デフォルトだとreleaseは.net nativeでコンパイル。debugは違う

823 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 12:50:01.52 ID:RVLSOnVjM.net]
>>790
TCP使えば?
直接叩くのが嫌ならgRPCとか使えばいい
WCFや.NET Remotingという手もあるけど、どちらもレガシー扱いで.NET Coreからは廃止されたから新規に使うのはお勧めしないな

824 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 13:06:48.12 ID:1HfiCU8QM.net]
gRPCいいよね
magiconionもあるよ

825 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 10:20:41.86 ID:ZWpnR1MN0.net]
HttpListenerってあったよね

826 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 10:52:44.45 ID:bFJ5s+tL0.net]
Core世代のWCFや.NET Remotingの代替って何があるんだろ

827 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 11:23:19.53 ID:zH3PfDR1a.net]
普通にRESTか、クラウドプラットフォームが提供するメッセージキュー(SQSとか)などの外部サービスだよ
余計な囲い込みを廃して今時のWebシステムの構成要素として組み入れやすくするというのがCoreなんだから、今更.NET固有のRPCなんか要らん

828 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 18:13:53.94 ID:PEqFXj+e0.net]
dllを修正する際にどの程度までの修正であれば問題ないかまとめてある
サイトってありますか?
dllのクラスの派生元に一つクラスを挟んだ修正では問題なく動いている
ようだったので・・・。

829 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 19:00:13.51 ID:1Mw8aOkb0.net]
ライセンス読んで

830 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 19:16:09.78 ID:W+eHh5+20.net]
>>797
逆に使えなくなる場合は(マネージドdllで)厳密な名前付きアセンブリとして作ってある物が名前などが変わってしまった場合
厳密な名前付きアセンブリ
https://docs.microsoft.com/ja-jp/dotnet/framework/app-domains/strong-named-assemblies
>厳密な名前付きのアセンブリを参照すると、バージョン管理や名前の一意性を保護できるなどの利点を期待できます
それ以外は変更のないクラスやフィールドにアクセスする分には問題にならないはず



831 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 00:50:27.11 ID:8OYVWtUM0.net]
>>799
情報ありがとう。
あまり厳密にはしたくないのですがリンク先を
よく読んでみます。

832 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 16:08:10.06 ID:Qrgo3xvC0.net]
Monoの互換性についてなのですが、
Visual studio2017でWindowsクラシックデスクトップのWindowsフォームアプリケーション(.Net Framework)で書いたコードは
そのままMonoでコンパイルできるという認識であってますか?

833 名前:デフォルトの名無しさん [2018/11/10(土) 05:02:04.09 ID:ZJVvB/9K0.net]
>>801
できるし、VisualStudioでコンパイルしたものをMonoでコンパイル直す必要すらない建前なんだけど・・・・
実際には対応状況にかなりの差があってGUIアプリケーションやら暗号やらが絡むものについてはうまくいかない事が多い

834 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 18:24:39.80 ID:yl+mwE+c0.net]
>>802
そうだったんですね
ありがとうございます

835 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 21:29:39.44 ID:BfX4LnOFa.net]
引数を変更不能にできないのって何か理由あるの?

836 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 22:01:19.43 ID:eyW0451M0.net]
>>804
最近は

837 名前:件付きでできるよ

C# in 引数
[]
[ここ壊れてます]

838 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 10:14:46.52 ID:zL+4Qkmba.net]
Javaのリモートデバッグは

1. 起動オプションでデバッグ用のリモートポートを指定
2. デバッガで同じポートを指定してアタッチ

でできますが
C#(DotNet Core 2.1)では同じような事は出来ませんか?
運用環境でしか発生しないバグのデバッグってどうやればいいんでしょうか?

839 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 12:52:12.52 ID:EeRGHZk70.net]
>>806
リモート側にリモートデバッガ入れるとか
運用環境ということだからそもそもデバッグビルド入れられるか知らんが
まぁ、ログ仕込め

840 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 15:47:26.43 ID:6jAVVbmKa.net]
同じLAN内ならプロセスアタッチで行けそうだが
試してないから知らん



841 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 15:41:42.81 ID:hjFVqahJ0.net]
Unity って、Wikipedia によれば、600,000 (60万人) も、登録ユーザーがいて、
従業員が、2,000人以上、年間利上げが、100億円を超えるほどあるとされる。

ゲームエンジン Unity の使用料は、
・1,000万円までの売り上げなら、無料。
・2,000万円までの売り上げなら、年間5万円ほど。
・それ以上の売り上げなら、で年間18万円ほど。
とある。

でも、Wikipediaに載ってる Unity を使ったゲームのリストは、
100本あるかどうか程度しかない。

これだと、Unityには、年間2,000万円程度の収入にしかならないのでは
ないかと思う。

それに、アメリカですらプロのプログラマは、30万人くらいしかいない
とされることとも辻褄が合わないように思える。


なんかおかしくない?

842 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 16:09:30.56 ID:DsJildR5M.net]
基準がwikipediaなのが謎だけど
steamとか見てみなよ
それに×人数だから実際はもっと高い

843 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 16:30:30.62 ID:hjFVqahJ0.net]
>>810
>それに×人数だから実際はもっと高い

探したけど出てこなかった。どこに書いてある?

844 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 17:43:06.03 ID:tBfV11FV0.net]
そもそもUntiyはプログラマ以外も使うから小さい会社でもアカウントはそこそこもってるようなこともあるよ

845 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 17:50:09.14 ID:hjFVqahJ0.net]
>>812
プログラマ以外は何のために訪れる??

846 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 17:52:04.91 ID:tBfV11FV0.net]
最近スマホアプリのtop100くらいまでの使用エンジン調査した記事あった気がしたんだけど見つからんかった
たぶん半分くらいがunity製だった気がする
PCでもUnity製増えてきてるしswitchにもそこそこ出てる
日々山ほどのゲームがリリースされてるのにwikipediaで全てを網羅できるわけないと思うんだけど、なんで自分がおかしいと思わなかったの?

847 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 17:56:18.66 ID:tBfV11FV0.net]
>>813
訪れる?利用するんじゃないの?
ディレクタやプランナがUnity上でプレイすることもあるし、CGデザイナやUIデザイナがUnity上で作業することもある
もちろん3Dモデリングなんかは専用のツールのほうが作業はしやすいけどね

848 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 18:00:10.49 ID:tBfV11FV0.net]
っていうか普通の企業なら間違いなく年間売上2000万なんて超えるよ?
安く済ませられるのなんて個人事業主か同人サークルだけ
社員が5人でもいたらまず年間売上で引っかかるんだから
大きい企業なら普通に100単位でアカウント持ってるし、小さいところでも10以上持ってるとこなんて山ほどある

849 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 18:12:20.13 ID:hjFVqahJ0.net]
アカウントって、1つのゲームに対して、ひとつだけじゃないの?
開発者の人数分???

850 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 18:14:07.61 ID:tBfV11FV0.net]
>>817
開発者分必要
ライセンス読んで
あとここUnty



851 名前:スレじゃないよ []
[ここ壊れてます]

852 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 20:22:13.71 ID:biHRXo8wM.net]
ガイジっぽい

853 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 20:41:27.20 ID:8sDmawlrM.net]
年間売上2000万じゃ底辺3人雇うのが精一杯だな。

854 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 20:45:05.56 ID:fRq//2+J0.net]
1人でも無理あるだろ

855 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 02:23:44.07 ID:a546+gcL0.net]
背理法で証明して見せたかっただけだよ。
つまり、矛盾を示す事で、間違い/捏造であることを証明する手法。

だから、ありえないような結論が出たということは、正しく証明できた
事になる。

856 名前:デフォルトの名無しさん [2018/11/16(金) 04:24:32.84 ID:/x4PzStk0.net]
はいりはいりふれはいりほー

857 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 14:20:33.68 ID:+bMNmjEk0.net]
Unityの登録だけなら自分でもやってるからなぁ
仕事でやってる人なんて会社用と個人用を別々に登録してるんじゃね

あとUnityはVRチャットで自キャラ作るのに使うから、
それも多いと思う

858 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 19:05:12.63 ID:a546+gcL0.net]
>>824
やっぱり、そういう事もあるんだね。

どっちにしろ、Uniy のゲーム・ライブラリだけのライセンス料では、年間100億円
の売り上げにはならない気がする。

CADなども売っているので、そういう売り上げがかなりあるのかもしれない。

859 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 19:24:02.27 ID:ikVu1qV7M.net]
な、ガイジだろ

860 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 13:45:10.42 ID:RRyKxOPE0.net]
>>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,”
we can estimate 1,600,000 - 2,000,000 game development studios (including
individuals developing games alone as well as teams).



861 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 13:54:09.60 ID:RRyKxOPE0.net]
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:

862 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:02:18.23 ID:RRyKxOPE0.net]
GooglePlayやAppStoreのAppって、250万個もあれば、その中に本当に同一のものが
含まれてないか、または、250万個も本当にあるかを調べることは不可能に近い
かも知れない。
そもそも本当はそんなに無かったりして。そもそも、Vectorに登録されているアプリ
だってそこまで無い気もするし。

863 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:04:10.36 ID:3f3X1OW4d.net]
うちゲーム会社じゃなくて製造業(けっこう大手)だけど、VR絡みはUnity使ってるよ。
同業他社も使ってるのは意見交換会で聞いたし。
映像系でも使われ始めてるから、ゲーム業界から離れたほうがわかりやすいかも。

864 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:05:59.54 ID:35krN4020.net]
VRChatでスクリプトとして使われているしな

865 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:43:30.92 ID:RRyKxOPE0.net]
確かに、VRまで含めれば説明が付く気はするんだよ。
使う人の人数は作る人の人数より100倍程度は居るのが普通だから。

ただ、GooglePlayに登録されているアプリ数が本当に250万本もあるかどうか、
そのまま信じていいかについては注意すべき。

そもそも250万種類の一覧表をテキストファイルで見られるかどうか。

旧 nifty serve なんかも、「シェアウェアは儲かる」と言ってパソコン通信
加入者を増やそうとしたらしい。その際、「秀丸エディタ」が1億円の売り上げ
がある、とされたが、その作者が富士通社員だったことは公然の秘密。

866 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:50:38.86 ID:4WsM1r+i0.net]
>>832
レコード数250万のDBなんてざらにあるぞ

867 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:55:46.58 ID:RRyKxOPE0.net]
>>833
そういう意味じゃなくって、GooglePlay から、全てアプリが載った一覧表を一度に
ダウンロードできるのかってこと。

検索するだけだったら、本当に250万種類もあるかは誰にも分からないじゃない
かと。

868 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:59:31.85 ID:Gas9nc7W0.net]
で?
としか言いようがないな

869 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 16:21:36.71 ID:YkPnkG/ad.net]
Twitterにでも書いてろ

870 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 16:52:49.38 ID:3f3X1OW4d.net]
儲かってると思うけどな。Unity。
18万円はProだろ。
Enterpriseは別だよ。



871 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 20:04:55.15 ID:fYjPqF3od.net]
ダウンロードできるか?ってできるだろ
1レコードがMB単位でデータあるんか?
1レコード1KBで2.5GB
最近のゲームなんて10GB超えのダウンロード当たり前み

872 名前:たいなとこあるじゃん
250万行のテキストはあんま開きたくはないが
[]
[ここ壊れてます]

873 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 20:09:07.70 ID:fYjPqF3od.net]
なんの根拠もない空想だけどゲームとVRの比率、VRが10%とかじゃない?
もちろん両方もそれなりにいるだろうけど
それでVRまで含めれば説明がつく、って意味がわからん

874 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 20:16:58.44 ID:3f3X1OW4d.net]
あんまり詳しくは言えないけど、VR以外にも使ってるものもあるし、エンタープライズだとお値段時価だし、
企業ユースでは数人のチームなんてのはあり得なくて結構な人数分揃えるからね。
CADと連携したりなんやかんやで、ゲーム開発より金はかかるから、プロダクトの割合とは一致しないよ。

875 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 20:31:17.51 ID:kvTCOjS80.net]
Unity用のスレはあるからそっちでやれよ
VRプログラム雑談【Unity/UnrealEngine】【HTC Vive/Oculus Rift/その他VR】
https://mevius.5ch.net/test/read.cgi/tech/1478142101/
数レスならともかく赤いのまでいるし

876 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 21:46:33.67 ID:Lm9ykMW+0.net]
先月も変なのが沸いてたけど同一人物だな

877 名前:デフォルトの名無しさん [2018/12/14(金) 16:44:56.02 ID:nWTWWp6e0.net]
質問いいでしょうか
webapiにて
var task = Task.Factory.StartNew
これで重い処理をバックグラウンドで処理させています。
このtask開始時にDBにProcessThread.IdとProcessThread.StartTimeを落として
別のwebapiでDBに落としたIdとStartTimeを使って
GetCurrentProcess().Threadsを検索して定期的に生きてるかのチェックを行っています。
これがけっこう不安定みたいで、バックグラウンドの処理が終わる前に
ProcessThreadが検索できなくなる場合があります。
最初にStartNewさせた際のProcessThreadが生きてる正しい確認方法はないでしょうか?
ブラウザを閉じた場合を考慮してProcessThreadで確認を行いたいです。

878 名前:デフォルトの名無しさん [2018/12/14(金) 17:44:35.68 ID:nWTWWp6e0.net]
すいません。
変な質問ですね。
var taskを見るのではなく、その他の方法で
バックグラウンド処理が動いてるかの確認が行いたいです。

879 名前:デフォルトの名無しさん [2018/12/14(金) 18:14:11.54 ID:nWTWWp6e0.net]
すいません。
自己解決です。
static public Task wkTaskを宣言しておいて

wkTask= Task.Factory.StartNewで作成したあと、ブラウザを閉じて
開き直してもwkTaskは生きてますね。

スレ汚しすいませんでした。

880 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 21:29:27.54 ID:OUs3lGdw0.net]
自己解決できるやつは偉いぞ



881 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 02:43:07.58 ID:LeOuIFUL0.net]
>>845
そのTaskが必ず1つしか動かないって保証があるならいいけどね。
ブラウザ閉じる->開くを繰り返したらどうなるんや

882 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 16:24:19.51 ID:U8VjJ+lV0.net]
ブラウザ閉じて開いて、サーバの同じスレッドに接続して同じタスク拾う保証どうやってるんだ

883 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 11:49:06.15 ID:yRPOvGGU0.net]
Action.Invokeでvoidと比べてstatic voidの方が遅いのってC#7だと改善されたの?

884 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 13:31:28.35 ID:C73LM3okM.net]
javaのtry-with-resouceみたいにusing書けるようにしてくれないかな
どうしてもネスト深くなるの辛い

885 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 15:23:40.58 ID:c4aAB3Aqd.net]
>>850
C#8.0

886 名前:デフォルトの名無しさん [2019/02/10(日) 17:55:21.67 ID:Y+0FbWW50.net]
メソッドへのオブジェクト引数で、参照渡し(refをつける)、とオブジェクトの値渡し(refなしの値渡し。つまり、ポインター(アドレス)渡し)の違いがわかりません。
同じと思ってますが・・・・・。事実は違うようです。参照だと

887 名前:渡し元も変更される、っていう違いは分かります。
それ以外の違いはあるんでしょうか?
[]
[ここ壊れてます]

888 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:14:21.76 ID:vpLDyodj0.net]
>>852
オブジェクトの値渡しってどういうこと?
参照型なら全部参照渡しになると思うが

889 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:17:54.37 ID:Mw20IJUM0.net]
refだと渡し元が変更されるって十分な違いだろ
どうあって欲しいんだよ一体

890 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:43:21.99 ID:vOpxNkmL0.net]
>>852
ここらへんを見てみればいいかと
https://dobon.net/vb/dotnet/beginner/byvalbyref.html#section3

かんたんに言うとどっちでも渡されたオブジェクトの中身は変えられるけど、ref付けないと新しいオブジェクトを設定して呼び出し元に返せないってこと



891 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:57:09.81 ID:ynO2ssbq0.net]
参照値でも、refつけない値渡しとref付ける参照渡しできる。
で、参照値以外の値...とりあえず非参照値と呼ぶと
非参照値でも、refつけない値渡しとref付ける参照渡しできる。

全部で4パターンあるってこと 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)


892 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 19:18:44.11 ID:zgWWffC0a.net]
>>852
簡単なので難しく考えてはだめ。すごくシンプルな話。

その型の値(その型の変数に格納される値)を渡すのが値渡し。
その型の変数の「場所」を渡すのが参照渡し。
さらっと書いたけど、「その型の値 = その型の変数に格納される値」なのはよく理解する必要がある。
つまり、参照型の変数に格納される値って何だったか要再考。

変数とはメモリ上に割り当てられた特定の領域のこと。
だからその領域のバイト列のコピーを渡すのが値渡しで、
領域の先頭アドレスを渡すのが参照渡しだと思えばいい。

参照渡しでメソッドが受け取る情報は「変数の」場所なので、参照渡しの引数に
リテラルや式を渡すことは出来ない。

893 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 19:59:44.58 ID:xbk//Ba50.net]
多分だけど参照渡しと値渡しの挙動自体は理解しているものの、
デフォ参照型とデフォ値型の区別がついておらずにデフォ参照型で実験をしてrefでも素渡しでも変わらないやんってことじゃないか

894 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 20:36:28.11 ID:3Dzzkr73a.net]
tuple使えるならrefは忘れていいと思う

895 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 20:53:04.89 ID:OiPWe/iEa.net]
TryParseみたいなのだと成否と値がtupleで返って来てもifの中でめんどい

896 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 21:03:14.46 ID:c1xIq/Nm0.net]
メソッド内で中身を変更するって理由で参照型のもref渡ししてるのみてイラッとしたことはある。イランヤン

897 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 08:03:59.18 ID:RCleUAyA0.net]
それVB6からの移植とかじゃない?
オフショアが移植したコードがそんなんばっかし

898 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 15:02:26.65 ID:RVSdpjZja.net]
ref の使いどころってライブラリから複数の返値欲しい時だから
他の手段使えるならそっちでいいわな
未初期化変数指定できんのも地味にイラッと来るし

899 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 15:22:08.28 ID:xSGeZZ3R0.net]
>>863
そういう場合はrefではなくoutを使う

900 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 15:23:06.12 ID:MkFOBvt90.net]
>>863
> 未初期化変数指定できんのも地味にイラッと来るし
out使えよ



901 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 15:23:27.15 ID:MkFOBvt90.net]
被った…

902 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 16:36:40.92 ID:2icS/4sTa.net]
引数いじるの好きじゃないわ
返り値だけで判別させて

903 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 16:54:38.75 ID:I8dqqL3E0.net]
まあ参照型はoutの制約で十分かつ安全なのでrefはほぼ出番ないんじゃねえのん
Swap関数を定義する時くらしか適切な例が思い付かねえ

904 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 18:26:18.92 ID:2ERt5pT00.net]
そのswapがな、MVVMでお決まりのBindableBaseなりのSetPropertyでプロパティの値交換するときに使いまくりで、
androidでもMVVM使いまくってるけどrefないkotlinやjavaでやると...

905 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 19:50:18.92 ID:u96ReIy/0.net]
プロパティの値交換するときってのが想像つかんが
どういうときにそれを使いまくるんだ?

906 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 21:01:30.06 ID:KFZGfstbM.net]
プロパティの値をソートする時じゃね?(適当)

907 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 23:51:08.44 ID:HQcd2HqP0.net]
BindableBase SetPropertyとかでぐぐってみれ
有り体に言えば自身のプロパティ(のバックストア)を差し替えるジェネリックメソッドを基底クラスで定義するのに使うだけ

908 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 00:40:04.33 ID:6JezjdzR0.net]
WPFとかUWPとか使ってればBindableBaseのありがたさはよくわかる

関係ないけどstaticメソッドって呼び出すときにいちいちインスタンスを生成する必要がないって以外のメリットあるのかな?

909 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 01:53:30.80 ID:sK/raQIQa.net]
>>873
まあメリットって発想がそもそもおかしい。
例えばDouble.Parseがstaticなのはその方が意味的に自然だから
インスタンスメソッドである必然性がないし、インスタンスメソッドでは不自然だから

910 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 04:15:53.43 ID:VGvE+KfY0.net]
>>873
パフォーマンス



911 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 21:00:36.96 ID:YtWtNE43a.net]
dictionaryとかのcollection系が手抜きなのなんで?
特にdictionaryとか拡張必須だし
割とc#好きだけどこれはほんとアカン

912 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 22:13:27.13 ID:qKlS4dB9d.net]
>>876
何がどうあかんのか具体的に

913 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 22:45:20.23 ID:tlcLfILV0.net]
テンプレート系はデータが増えればC++にでも勝てるのに
何が問題?

914 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 00:22:49.50 ID:dIP2EtTm0.net]
Collection系はJavaの方がしっかりしてるよね。

915 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 00:39:22.49 ID:2WeUN81J0.net]
>>879
Javaは何が違うん?

916 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 03:04:36.23 ID:l1U6kYAka.net]
Queue以外は不満持ったことないね

917 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 21:54:02.82 ID:kAPwBxa3M.net]
queueは空っぽの時取り出そうとすると落ちやがるの許せん勝田
今はTryあるからいいけど

918 名前:デフォルトの名無しさん [2019/02/15(金) 22:47:38.37 ID:izkrr7dEa.net]
いやチェックしとけよそこは

919 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 08:41:04.77 ID:q1DAaOKG0.net]
例外が発生することを落ちるって表現する男の人って…

920 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 10:36:35.40 ID:8cj+4+Hl0.net]
例外っていろんな種類あるけど具体的に何を使えばいいのかよくわからなくて
とりあえずcatch(Exception e)とかしちゃってるけど本来はこんなのダメだよな……



921 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 11:09:50.80 ID:mveZudXk0.net]
別にいいと思うぞ。下位の呼び出しのどこかで失敗したということに対して適切に処置するなら。

922 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 12:03:59.89 ID:mmBt6tnL0.net]
>>885
例外は握りつぶしてこそ華

923 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 12:43:39.03 ID:LCZTEEhT0.net]
catch(Exception e){

924 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 13:08:53.78 ID:q1DAaOKG0.net]
>>885
> 例外っていろんな種類あるけど具体的に何を使えばいいのかよくわからなくて
投げる方で悩むのはわかるけど
> とりあえずcatch(Exception e)とかしちゃってる
受ける方はどれ受けるべきかはわかってる

925 名前:ナしょ
最終手段としてよくわからんけどエラーが発生したから終了するね
って言うならcatch(Exception e)もありだと思うが
[]
[ここ壊れてます]

926 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 13:37:31.27 ID:mveZudXk0.net]
終了というのがプログラムの終了のことなら逆にcatchしちゃだめだろう。

927 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 14:43:51.47 ID:NIO8UzEI0.net]
>>889
catch { }ではw
>>890
例外一つでプログラム終了していたら大概困るw

928 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:01:00.34 ID:NEtPpdWW0.net]
例外はありえない事態なんだからプログラム終了しなきゃまずいだろう

929 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:02:54.74 ID:PR5Tb5Rba.net]
>>891
それは逆で、プログラマが想定してない例外が発生したら
プログラムは停止してもらわないと困る。これが正しい考え方。

そもそも例外機構というのはそのためにある

930 名前:デフォルトの名無しさん [2019/02/16(土) 15:03:48.09 ID:uy2P96bkM.net]
最近部活の後輩が黒魔術みたいなコードを書くようになって困ってるんだが対策ない?

こんな感じのコードを後輩が書いてくるんだよ↓

public interface IMessenger {
__public MessageReceived();
}
public abstract class Messenger : IMessenger{
__public abstract void MessageReceived();
__public abstract void Retry();
}



931 名前:デフォルトの名無しさん [2019/02/16(土) 15:04:05.72 ID:uy2P96bkM.net]
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();
__}
}

932 名前:デフォルトの名無しさん [2019/02/16(土) 15:04:31.94 ID:uy2P96bkM.net]
こんなんだったから

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文字で分けるって言ってるんだから
何が起こってるかわかるように書くことを意識してもらわないと

933 名前:デフォルトの名無しさん [2019/02/16(土) 15:06:36.58 ID:8cj+4+Hl0.net]
まあ例外でプログラムは終了させるべきだよな
ただ客は例外が起きてもcatchで握りつぶしてスルーした方が文句言わないんだよな……

934 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:14:21.65 ID:auHH3gBua.net]
>>894
酷いな
MediatoRを使うようにアドバイスしてあげなよ

935 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:19:24.61 ID:PR5Tb5Rba.net]
>>894
2chのシステムは先頭の半角スーペースは除去するけど全角スペースは除去しない。
だから字下げは後者で

936 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:41:54.82 ID:q1DAaOKG0.net]
>>891
> catch { }ではw
ごめん、何を言いたいのかわかん
処理部分も当然必要だけど何を受けるかの話だから(Exception e)の方が重要だろ?

937 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 22:53:53.99 ID:gbHoDgK/0.net]
>>893
ちょっとMSに例外じゃなくエラーコード戻す設計にするようお前から言ってきてくんね?
W32APIはそうなってんのにFrameworkの方そうなってないじゃん

938 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 00:48:25.53 ID:0sFVNd3o0.net]
宗教戦争を見物now

939 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 14:42:24.50 ID:QIeMqQFm0.net]
byte*からbyte[]にする方法ってない?
new byte[64];みたいに新規確保してコピーしか方法ないんだろうか
Unsafe.As等で新規確保無しで出来るかと思って色々試してみたけど上手くいかない

940 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:01:42.36 ID:99sHKv96a.net]
「byte[]にする」が「byte[]とみなして扱えるようにする」って意味なら
全然別の型なんだしあるわけないでしょう。
そういう危なっかしい機能を排除してるのがC#の売りの一つだったはずなわけで

コピーする機能ならMarshalあ



941 名前:スりにあるんじゃない? []
[ここ壊れてます]

942 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:16:25.11 ID:QIeMqQFm0.net]
>>904
>「byte[]にする」が「byte[]とみなして扱えるようにする」って意味なら
そういうことです

あるわけないと言いますが、その逆はあるので出来るかなと思い
(byte*やref byteで先頭を指定し自作のstructとして読ませる。少しずらせばbyte[]を自作クラスとして読ませることも可能)

943 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:21:31.28 ID:Ox4HquXb0.net]
>>905
>(byte*やref byteで先頭を指定し自作のstructとして読ませる。少しずらせばbyte[]を自作クラスとして読ませることも可能)
具体的なコード希望

944 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:23:52.52 ID:UNDanSNQ0.net]
その逆がマネージドじゃ難しいからね
無理じゃないかなあ

やっぱこれからはSpanですよスパンスパン

945 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:27:09.29 ID:QIeMqQFm0.net]
>>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バイト後ろにづらないと出来ないから実用は難しいけど一応可能

946 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:31:55.60 ID:QIeMqQFm0.net]
fixed (byte* ptr = &data[0]) *(MyStruct*)ptr;
と大体同じではあります

947 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:40:47.44 ID:QIeMqQFm0.net]
やっぱりこういうことやりたければC++に池ってことなのでしょうか
記憶力悪いのでVSがC#ほど助けてくれないC++に行くのは億劫なため質問させてもらいました

948 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 16:16:49.38 ID:rf6p5Xt1a.net]
Span使え

949 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 16:27:59.23 ID:tKx1WgvG0.net]
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とか

950 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 12:35:31.38 ID:78/oBfjca.net]
self containedって完全に依存なしになるわけじゃないのね
alpine用にself containedでビルドしても動かなかった
libstdc++とか色々インストールしたら動いたけどさ
dotnetコマンド同梱と比較してコンテナサイズも殆ど変わらないし意味あるのかなこれ



951 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 12:44:14.85 ID:IWeqLQBdd.net]
>>913
おばか

952 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 14:33:57.39 ID:XSMrGlqdp.net]
SCDは.NETのランタイムを別途インストールじゃなくて同梱するってだけの話だしね
公式ドキュメントにも注釈あるけどLinuxは仕様上完全に断ち切るのは難しいんじゃない?
Windowsだと同梱のファイルだけでそのまま動くけど

953 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 17:41:05.62 ID:DKuxuLxMa.net]
>>915
Windows配布用と割り切った方がいいのかもしれない
Linuxだと管理下のサーバーかコンテナが多いからSCに拘る必要もない

954 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 18:56:24.09 ID:IWeqLQBdd.net]
最近のバッチはみんなSCDにしてる
らくちんらくちん

955 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 19:03:47.82 ID:DKuxuLxMa.net]
Goのように1バイナリにはならんものかね

956 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 19:11:19.09 ID:IWeqLQBdd.net]
>>918
https://github.com/dotnet/designs/pull/52

957 名前:デフォルトの名無しさん [2019/02/26(火) 16:27:59.06 ID:jgGxVc0K0.net]
ちょくちょくポインタ代替機能についての質問があるけどさ
どんな用途でポインタを使いたいのかわかんないけど、大抵の場合はストリームで代用できるんじゃないのかな

958 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 19:45:51.64 ID:KXA/2sKca.net]
ID3タグとかバイナリ使うにゃ要るだろ

959 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 22:52:44.40 ID:cz3vAcnh0.net]
>>921
バイナリデータもストリームで扱える

960 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 23:01:06.66 ID:w0dNr8TE0.net]
バイナリ弄るならSpanでよくね?



961 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 22:56:28.74 ID:0yfFFlZD0.net]
ポインタなんかアンマネージとのやり取りとBitmapdataでしか使ったことないな
アンマネージとのやり取りだとrefとかoutにしとけばあとは何も考えなくていいから助かる

962 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 10:07:34.38 ID:yMVoU8j+0.net]
「変数aが1,4,5,7のいずれかである場合」
という論理式を書く場合
 (a==1) || (a==4) || (a==5) || (a==7)
とswitch文以外でもっと手っ取り早く書く方法ありますか?

963 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 10:20:00.75 ID:Ud+LwFnR0.net]
>>925
その表現が一番端的でわかりやすいのではないですか?

964 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 10:21:50.56 ID:Vr07loEY0.net]
>>925
()いらない

965 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 11:05:26.20 ID:heck9gfNa.net]
new [] {1, 4, 5, 7}.Contains(a)

966 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 11:08:41.04 ID:Co1I1oSR0.net]
>>925
その程度ならその書き方が一番わかりやすいと思うが比較対象がもっと多いとか可変にしたいとかなら
var C = new HashSet<int>(){1, 4, 5. 7};
if(C.Contains(a)){ … }
とかもある

967 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 14:06:20.64 ID:yMVoU8j+0.net]
>>926
数が少ないうちはいいんですが

>>927
カッコの上でShift+Ctrl+}すると
式部分を一発選択できるのであえてそうしてる

>>928
これがいい感じです
少しオーバーヘッドが気になりますが

968 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 14:59:32.01 ID:AX9YyrwL0.net]
SQLみたく
a IN (1,4,5,7)
てかければいいなとおもうが、aが右側になっちゃうのが若干違和感

969 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 15:04:48.62 ID:Nsc0DUxH0.net]
拡張メソッド作れば解決

970 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 19:46:04.84 ID:5yoALKCSa.net]
>>929以上の書き方ねーべ
オーバーヘッドなんぞ無きに等しい



971 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 20:18:35.52 ID:zHCAEP8E0.net]
>>930
HashSetやDictionaryは要素の数に左右されない方法でアクセスを行うから
含まれてるか否かといったような検索用途に限定すれば1個だろうが1万個だろうが常に高速にアクセス出来る
Listや配列は要素数に比例してアクセス時間かかるようになるが

972 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 21:00:42.79 ID:RzDDiNewd.net]
なぜ要素数が増えることがある
という大前提を最初の質問時に明記しないのか

973 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 22:03:38.03 ID:CQ1ng92ga.net]
>>928
これ、new[]の部分を()で括らなくていいのは何か直感に反するけど、
newもnew[]もドット演算子と同じ優先順位なのかw

キャスト演算子も同じ扱いにしてくれたらよかったのに

974 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 01:24:26.71 ID:5kU0Dorz0.net]
>>934
もとの要素がどこにあるかよくわからんけどな
HashSet作成して要素セットするオーバーヘッドがあるだろう
格納時にハッシュ値計算するから比較のコストが低いわけで、その分格納にコストがかかるんだぜ

975 名前: []
[ここ壊れてます]

976 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 02:51:31.92 ID:0iBtFMi0a.net]
使い捨てなら配列のほうが安そうな気はするが
それが差となって現れるようなユースケースとも思えんしなあ

977 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 08:04:01.95 ID:1vB8VE1Z0.net]
また質問者無視してる

978 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:05:10.09 ID:wNoJ2Bbs0.net]
質問者ってそんなに偉いの?
そいつの質問に常に合致した話題じゃなきゃダメなの?
ひとつの質問があって、それを機会に派生してもいいし、あとは自由に意見しあえってもいい

どんだけ構ってほしいんだ

979 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:06:48.39 ID:467OkvF30.net]
気にしてるの君じゃん
自由でいいと思うなら
かってにやってりゃいいじゃん
どんなけかまってほしいの?

980 名前:デフォルトの名無しさん [2019/03/03(日) 09:27:17.06 ID:qK6tlWl9a.net]
ROM専からすると多少横道にそれてもいろんな手法を見れるほうが面白い
正直これくらいの質問なら好きにしろって感じだろ



981 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 10:44:42.90 ID:wOo332Lk0.net]
>>937
だから検索用途ならって書いた訳だが
if ((a==1) || (a==4) || (a==5) || (a==7))って書けるってことはAddは頻繁に行わないと受け取ったわ

982 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 12:55:52.71 ID:3ZaOSZpTa.net]
述語の部分が、

(1) 全要素を常に == で評価
(2) 全要素を同じ演算子で評価するが、==以外の演算子も使われる場合がある
(3) 要素ごとに個別の評価方法

で最適な答えが変わりそうなんでその辺ははっきりした方がよかったかもね。
質問者は
(a==1) || (a==4) || (a==5) || (a==7)
の代替案を聞いてるんだから普通に考えれば要素数はそんなに多くないはずで
パフォーマンス云々は風呂敷広げすぎだろうw

983 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 13:55:56.58 ID:Nfj27eon0.net]
議論の途中で申し訳ないのですが
例えば独自クラスで、こんなのがある。

独自クラス{
string name {get; set;}
decimal num1 {get; set;}
decimal num2 {get; set;}


というのがあって、グリッドビューにList〈独自クラス〉をデータソースとして渡して表示させたいのですが
numは3,4,と増える可能性があります。(型はすべて同じ)
この場合にソースコードをメンテナンスすることなくnumの増減に対応するにはどのようにすれば良いでしょうか?

984 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 14:46:12.80 ID:NjSnZzWN0.net]
decimal[] num {get; set;}
とか、
Dictionary<int,decimal> num { get; set; }
じゃダメなの?
なんか設計レベルで問題がありそうな気もするけど。

985 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 15:03:54.49 ID:EUJr/Yte0.net]
>>945
配列なりListなり使えばいいだけじゃねーの?

986 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 16:04:38.55 ID:lbgm80aQ0.net]
固定値でIFするのは好きじゃないな。
ソースの冒頭で定数を定義したい。

987 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 16:50:33.82 ID:fEIk0m7q0.net]
>>945
列が可変になるのならデータテーブル使うのが楽だと思う。クラスでやるとしたらexpandoで作るもなくはないと思うけど、それなら上にある通りDictionaryの方がシンプルではないかと。

988 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 21:37:48.24 ID:5kU0Dorz0.net]
>>944
質問者がオーバーヘッド気になるとか発言してるので、パフォーマンスを考慮することに意味はあるんじゃね

まあ、ずらずらと手書き出来る程度の要素数ならどれ使っても大差ないって言っとくべきではあるかもしれんが

989 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 02:59:42.60 ID:01ls3eLR0.net]
C#はセキュリティー的に問題があるので使わないほうがいい。

990 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 03:03:58.87 ID:uKTTdpNO0.net]
>>951
詳しく



991 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 04:19:27.01 ID:6CrjVVG40.net]
お前何回も見てるから詳しくしなくていい

992 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 08:33:58.12 ID:Q/LSKwqY0.net]
>>953
詳しく []
[ここ壊れてます]

994 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 12:55:11.87 ID:xG/V/FM40.net]
一発でソースコード復元されるからか?
それを言ったらJavaも同じだから泥アプリとか簡単に解析出来るけど

995 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 15:29:31.29 ID:zDemJk6G0.net]
それはMSも認識してるしフリーの難読化ツールが何個も出てるんやで

難読化が必要な理由 | Microsoft Docs https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/ms227271(v=vs.90)

996 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 20:24:10.57 ID:X7v05Ly8M.net]
うちのソースは普通に難読だけどな

997 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 20:50:38.72 ID:phKvM6KvM.net]
おれのソースコードはデフォで難読だから余裕

998 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 00:13:41.81 ID:30anmeL+0.net]
難読化しないとってほどのソースコードなんてそんなに無いような気がするけどな…
そもそもOSSが当たり前みたいなこんな時代に

999 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 01:10:43.27 ID:tnYmqFtJ0.net]
>>959
見せられない処理はAPIの向こう側だしね

1000 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 19:34:45.84 ID:Kf1DGo5Q0.net]
ゲームは改造対策に難読化したほうが良さげ



1001 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:12:26.41 ID:5Js7CVOV0.net]
オリジナルソースがスパゲッティでも
ILSpyなんかを通すとオリジナルより見やすく逆コンパイルしてくれるからな。

1002 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 14:21:31.67 ID:p3uWfhXt0.net]
そんなのあるんだ?ありがたいな。スパゲティにはほとほと手を焼いてたんだ。きれいにしてくれるなら使ってみようかなw

1003 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 18:09:25.36 ID:XK/LB6aKd.net]
メソッド単位は変わらないからプライベートやグローバル使いまくりのスパゲティはどうにもならないけどね

1004 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 19:36:48.59 ID:W3YxLksd0.net]
制御フロー難読化をやるとさらに汚くしてくれるからオススメ

1005 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 20:13:44.24 ID:S6VEx3Fw0.net]
メソッドのローカル変数をきれいに整頓してくれるILSpy△
そろそろここも終わるけど
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
でいいよね。隔離スレをわざわざ新しく立てる必要もないし

1006 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 19:31:23.01 ID:uF+nNtm+0.net]
ライブラリレベルのオーバーヘッドを気にするのは止めましょう
ガベージコレクションが前提の言語を使ってる以上無駄な努力に終わります
性能絶対重視なら最初からCやASMで書いた方が良いし
よほどのスパーハカーでもない限りそんな努力が報われるほどの性能差にならないと思われます

1007 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:34:22.29 ID:DpwzO91B0.net]
ASM?
コンパイラに勝てると思ってるのか?

1008 名前: mailto:sage [2019/03/14(木) 21:49:31.03 ID:NTAm4EVS0.net]
>>968
asm の教科書を書いていますが、「そのお題、asm で書く理由がない…」という深刻な問題に直面しています
asm で書くのに適したお題は何かありませんか?

1009 名前:デフォルトの名無しさん [2019/03/14(木) 21:52:50.86 ID:SvZaCm1k0.net]
最初のCコンパイラかな

1010 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 22:53:26.94 ID:fi3bTXEpa.net]
x86の機械語は知らんけど、CPUを汎用計算機ではなくHWとして使いたい場合は
直接機械語で書くしかないでしょう



1011 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 22:56:05.33 ID:6sRnwOjo0.net]
CPUを汎用計算機じゃなくてHWとして使いたいようなニーズなんてほとんどの人にはねえだろw

1012 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 22:59:30.46 ID:fi3bTXEpa.net]
だからASMなんて(今となっては)ニッチな需要しかないのでは?

1013 名前: mailto:sage [2019/03/14(木) 23:12:09.22 ID:NTAm4EVS0.net]
>>973
その需要の一例を知

1014 名前:りたいですね… []
[ここ壊れてます]

1015 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 23:13:00.27 ID:3EvgP48J0.net]
>>969
ブート部分とかかな
I/O命令とかを発行する部分もあるけどこっちはインラインアセンブラでもいいかな

1016 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 23:43:27.63 ID:fi3bTXEpa.net]
>>974
必要を無視すればBCD演算とか。
最終的にBCD演算命令に翻訳されるようなコードをC#では(Cでも)書けないはず。

まあx86ならマルチメディア系の命令とかが王道なんだろうけどね知らんけど。

1017 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 23:48:39.57 ID:nlDJyEEg0.net]
ニッチな事には変わりないけど、
https://ufcpp.net/blog/2018/12/hdintrinsic/
hardware intrinsicとか入ってくるし

1018 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 20:54:11.25 ID:lWIPCB/k0.net]
20年ぐらい前の1クロックが今より数十倍以上高価だった頃なら、
ASMによる人力高速化も(コスト的に見合うという点で)意味があった

Cコードで表現されてない知識も使ってちっちゃな関数でも結構簡単に数十クロック程度は高速化できた
Cコードで表現されてない部分を使えば、今もやろうとすれば高速化はできると思う(コストに見合わないだけで)
(変数aとbは実はいつも a<b なのでこのニーモニックが使えるとか、
ここの条件判定文は実は別の変数を計算したときのレジスタのフラグと同じ意味なので計算しなおす必要はないとか)

>>977 の話題に近いけど、
今ならASMの意味があるのはJITまわりとかかな?

1019 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 21:48:50.55 ID:D5NVJqkY0.net]
コンパイラはパイプラインでデータハザードが起きない様に計算して命令の組み替えしたりする。
人間がそこまでできるかな?
オレは20年ぐらい前にmemcpyを高速化するためにアセンブラで組んだ。
今思うとCで組んでコンパイラに最適化させるべきだったかもね。
若気の至りだ。

1020 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 00:00:03.09 ID:6P+M3e6E0.net]
asmはコンピュータの仕組みを理解するにはうってつけの題材では有るね
最新の特殊命令なんか不要だが、68Kなんか最高の素材だと思うわ



1021 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 00:15:39.88 ID:sQCNGdE30.net]
ERMSBなんかを考えるとコンパイラも小手先なんかね
実行ハードでスケールするか、安定的な最適化か
汎用性を考えれば普通は後者になるだろうけど

というかC#ならCILレベルに留めるべきではねか

1022 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 05:39:50.41 ID:lafVI2fNM.net]
WASMを最適化してくれ

1023 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 14:26:07.02 ID:gcoRXnnM0.net]
今やIoT用でもメモリMBクラスだろ
アセンブラでハック必要な用途なんてないだろな

1024 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 15:56:32.11 ID:zOgp3uDK0.net]
>>982
wasmになる前のLLVMの段階で既に最適化が出来る。
あと、詳しくは分からないが、wasmになった後の最適化も、
Emscriptein の opt.exe で一応はできるらしい。
但し、asm.jsとの「グルー」が複雑に絡んでいるので、
何をやっているかを理解するのはかなり難しく、
wasmで最適化しているのか、asm.jsで最適化しているのかは
忘れてしまった。

1025 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 19:51:51.79 ID:Ox1b9ZEv0.net]
スレを間違えたかと思っただろ

1026 名前:デフォルトの名無しさん [2019/03/16(土) 20:27:45.17 ID:0AnVFDDg0.net]
スレ終わりなんだから内容気にせず埋めてしまえwここ即死判定もないし
GetFilesやGetDirectoriesのようなメソッドでエクスプローラーと同じ順に格納してくれるメソッドが欲しい
ソートし直すのたまに

1027 名前:Yれてしまう []
[ここ壊れてます]

1028 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:07:46.17 ID:d1qKciPD0.net]
>>986
自分でユーティリティライブラリ作っとけば

1029 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:16:16.11 ID:LVoOn4ja0.net]
>>986
こういうことじゃなくて?
var files = Directory.GetFiles(@"C:\hoge").OrderBy(name => name).ToArray();

1030 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:24:01.46 ID:m10rap++a.net]
>>988
そんな単純な話じゃないはず
https://wiki.dobon.net/index.php?.NET%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B8%A6%B5%E6%2F111



1031 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:28:11.62 ID:aNdxzMMr0.net]
エクスプローラーと同じ順って今のエクスプローラーにどれだけソート項目があるか知ってんのか・・・

1032 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:28:35.53 ID:fhPcOkRld.net]
>>989
なるほど

1033 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 22:01:49.01 ID:wgxWGDdm0.net]
IEEEでまだ規格化されてない多ビット長の四則演算や、超コンパクトに処理を書く方法とか

1034 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 07:10:24.22 ID:WBoQCy0zM.net]
>>990
普通の頭持ってりゃ名前のソートであることぐらいはわかりそうなもんだけどなw

1035 名前:デフォルトの名無しさん [2019/03/20(水) 07:42:02.03 ID:74ozQqG6a.net]
Visual Studioって2015と2017両方いれて、2015だけ綺麗にアンスコできる?

1036 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 07:54:36.58 ID:LAIwbd+70.net]
>>994
単体で入れても綺麗には削除できんぞ

1037 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 09:19:38.34 ID:W/HUsmxnM.net]
ワロタ

1038 名前:デフォルトの名無しさん [2019/03/20(水) 12:21:41.32 ID:NDw+q9p/a.net]
>>995
ありがとう
そ、それは置いといて(笑)
どちらか片方だけアンスコしたときにもう片方に必要なもんを削除されたりはしない?

1039 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 12:41:43.72 ID:JR1ztFlDa.net]
VSに限らず明らかなNGは後から古いバージョンをインストールする行為だけのはず
アンインストールに関しては「意図としては」大丈夫なように作ってあるはず。

やってみたら?
最悪新しい方の修復インストールかOSの復元機能で何とかなるでしょ

1040 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 14:05:02.42 ID:vc7KPojzd.net]
試してみて欲しい
俺のPCにもVisual Studio 2010から全バージョンインストールされてるから参考にする



1041 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 18:48:25.28 ID:jN76oFxX0.net]
2015だけ削除したいって何がしたいんだろ
C#使う分には複数バージョンあって困ることないし

1042 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 18:53:06.53 ID:CvIVS+n40.net]
>>1000
使わないものを入れておいてもストレージ占有するだけ無駄じゃん
普通にある要求だと思うけど

1043 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 18:54:52.24 ID:jJ3kq/hZ0.net]
2015の後に2017入れて2015アンインストールしたけど問題なかった
そのあとふと2015入れてみたら俺環だろうけど2015でビルド出来なくなった。2017の方は問題なし
そして問題のあった2015を再びアンインストールしたけど2017でずっと問題なし
>>997
2017だけ使う分には問題ないはず

1044 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 697日 10時間 2分 52秒

1045 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<268KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef