AAS
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part92
echo.2ch.netが建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/04/22(土)08:52:00.93(iVvswOrb0.net)
2デフォルトの名無しさん (ワッチョイ de35-HDOw)
2017/04/22(土)10:57:42.55(g8ZT1khs0.net)
3デフォルトの名無しさん (ワッチョイ 1e06-m8Mb) [sage]
2017/04/22(土)13:39:44.03(iVvswOrb0.net)
4デフォルトの名無しさん (ワッチョイ 7ff7-/JtG) [sage]
キチガイの人(山口人生)は、複数回線もっていそうだからどこまで効果するかは分からんけれど
何もしないよりマシだね、今後もワッチョイ有りで行こう。
死ねばいいのに・・・・
2017/04/22(土)14:55:56.60(c4VI05+R0.net)
5デフォルトの名無しさん (アウアウイー Sa63-wX6N) [sage]
2017/04/22(土)15:23:39.94(FEVU7Q4Da.net)
6デフォルトの名無しさん (エムゾネ FFaa-TkTn) [sage]
2017/04/22(土)15:39:01.94(S+KK7a41F.net)
7デフォルトの名無しさん (ワッチョイ 7ff7-/JtG) [sage]
ググッてみてば分かるw
東大出でイリノイ大学で不完全性定理で有名なゲーデルの弟子として著名な
竹内外史先生の弟子になってPh.Dを取るも、神奈川大学で万年講師、研究室の壁を蹴って騒音出していたらクビになってしまったヤツwww
経歴だけ見るとスーパーエリートwwww
学歴荒らしがあるところに山口人生あり、酷い学歴厨の60台後半じぃさん
実家はお金持ち、もう親は鬼籍かな?ビル持っていて資産が一億切っているとか、絶対ヤバそうw
P=NPを主張しているが誰にも相手にされず、学会では芸人扱いw
2017/04/22(土)16:06:32.09(c4VI05+R0.net)
8デフォルトの名無しさん (アウアウイー Sa63-wX6N) [sage]
2017/04/22(土)17:40:53.42(L9cy9Aq3a.net)
9デフォルトの名無しさん (ワッチョイ 7ff7-/JtG) [sage]
いらっしゃらなくていいです、迷惑なので死んでください
2017/04/22(土)17:57:12.00(c4VI05+R0.net)
10デフォルトの名無しさん (ワッチョイ bb4c-VP69) [sage]
2017/04/22(土)19:18:48.92(7MQLYtSw0.net)
11デフォルトの名無しさん (ワッチョイ 7ff7-/JtG) [sage]
発言が山口人生と似ているし話が高齢者臭い、中年ですらない
Delphiを使っていて最近C#に移ってきている
ここまでのマジキチには普通日常で出会うことは無い、希少種
そんなヤツがこの日本に何人もいてたまるかwwww
2017/04/22(土)19:41:05.45(c4VI05+R0.net)
12デフォルトの名無しさん (ワッチョイ bb4c-VP69) [sage]
ちょっとしたホラーだな
2017/04/22(土)20:05:29.05(7MQLYtSw0.net)
13デフォルトの名無しさん (ドコグロ MM33-MUXz) [sage]
俺は付いてるほうが好きだからこっちのスレのがいいな
2017/04/22(土)20:49:00.38(IUEn1/EeM.net)
14デフォルトの名無しさん [sage]
2017/05/03(水)17:15:57.72(crwmH6BQM.net)
15デフォルトの名無しさん
なぜWindowsUpdateの時ファイルがぶっ壊れるのかというのがずっと謎だった
Application.ThreadExit イベントで書き出しスレッドの終了処理していたのだが
手動のシャットダウンだと問題なく呼ばれるのに、リブートするとThreadExitが呼ばれない
それどころか、フォアグラウンドで作成していたスレッドが強制終了させられている上
System.Threading.ThreadAbortExceptionmもSystem.Threading.ThreadInterruptedExceptionも送出されないまま
突然中断で終了しやがってた・・・
ひでぇ終了の仕方だ・・・
なんでリブートに限りこんなシーケンスで強制終了しやがるんだ、この糞が・・・
2017/05/05(金)16:32:19.84(bVbNjYk40.net)
16デフォルトの名無しさん [sage]
多少強引な手段で終了してもいいよね仕方ないね
2017/05/05(金)16:49:33.38(tHPUBlll0.net)
17デフォルトの名無しさん [sage]
2017/05/05(金)17:01:44.90(3XrDrf840.net)
18デフォルトの名無しさん [sage]
SessionEndingイベントとかで捕まれないんか?
それ
2017/05/05(金)17:10:34.10(pBlqXMv00.net)
19デフォルトの名無しさん [sage]
2017/05/05(金)17:16:16.69(bVbNjYk40.net)
20デフォルトの名無しさん
2017/05/05(金)17:17:13.60(bVbNjYk40.net)
21デフォルトの名無しさん [sage]
おおう、そうなんか。
2017/05/05(金)18:09:02.57(pBlqXMv00.net)
22デフォルトの名無しさん [sage]
2017/05/05(金)18:13:33.93(A3oUashQa.net)
23デフォルトの名無しさん [sage]
2017/05/05(金)18:24:50.53(A3oUashQa.net)
24デフォルトの名無しさん [sage]
EWX_FORCEとかEWX_FORCEIFHUNGを指定してるんでしょ
https://msdn.microsoft.com/ja-jp/library/cc429713.aspx
セキュリティアップデートは確実にリブートする必要あるから多少の犠牲はやむを得ない
って思ってるんじゃね?
2017/05/05(金)18:43:02.46(PzvORh1V0.net)
25デフォルトの名無しさん [sage]
2017/05/05(金)19:11:23.54(FiATWWo80.net)
26デフォルトの名無しさん [sage]
このへんかな
2017/05/05(金)19:58:14.99(ueXs9gXt0.net)
27あ [sage]
昔shutdown -s -t 01で落として確認した事ある。
2017/05/05(金)20:10:07.89(05XvGSted.net)
28デフォルトの名無しさん [sage]
.NET独特の挙動だったら業務でアプリ作っている人は死活問題じゃね
2017/05/05(金)20:14:25.56(3cKL/0El0.net)
29デフォルトの名無しさん [sage]
2017/05/05(金)20:27:56.88(PzvORh1V0.net)
30デフォルトの名無しさん [sage]
Winduws Updateはデフォでは自動になってるんだから、Windows Updateが走るたびに
そんな無茶苦茶やってたら世界中で大騒ぎになってるってw
XPの時代はそんな経験したような記憶もあるけど
少なくともVista以降はないと思うよ
2017/05/05(金)20:30:18.07(A3oUashQa.net)
31デフォルトの名無しさん [sage]
VSの有料ライセンス買っている人がいて心配だったら直にMSに聞いた方がいいな
2017/05/05(金)20:34:57.11(3cKL/0El0.net)
32あ [sage]
2017/05/05(金)20:48:13.06(05XvGSted.net)
33デフォルトの名無しさん [sage]
2017/05/05(金)22:27:29.53(ueXs9gXt0.net)
34デフォルトの名無しさん [sage]
2017/05/06(土)07:24:56.49(KTPtsEWO0.net)
35デフォルトの名無しさん [sage]
2017/05/06(土)07:54:55.96(rojhZA3i0.net)
36デフォルトの名無しさん [sage]
2017/05/06(土)08:25:02.90(2V5tVO5D0.net)
37あ [sage]
UIスレッドでメッセージボックス出しとくと、プロセスを落とす正規ルートからはずれて再現できるとか、なんか色々こねくり回したよ。
今だと仮想マシンあるから、マシンが上がってくるの待つ辛さ無いかもね。
2017/05/06(土)08:57:56.21(BE072L/9d.net)
38デフォルトの名無しさん
●二つ以上のオブジェクトを同時にロックしたい
片側づつ順を追ってロックしていくのはダメ、デッドロックするので。
ロック出来ない状態である限り、ロックは限りなくしないようにしたい。
ロックに失敗までのタイムアウト処理もしたい。
●例えばこれだと、デッドロックを引き起こすので良くない
lock(obj1) lock(obj2) 処理;
●そこで、言語に以下のような構文があれば理想的なのだが
ないので、それらしいヘルパを作りたい、できれば効率的な物。
lock(obj1,obj2, ... ,timeout=1000) {
ロック成功の場合の処理
}
timeout {
タイムアウトした場合の処理
}
2017/05/25(木)06:03:37.70(OZ9w4Yf70.net)
39デフォルトの名無しさん
DateTime begin = DateTime.Now;
再試行:
bool l1 = Monitor.TryEnter(obj1, 0);
bool l2 = Monitor.TryEnter(obj2, 0);
if (l1 && l2) {
goto ロック成功;
} else {
if(l1) Monitor.Exit(obj1); // チェックと共にロックしてしまうので、このコードも残念賞
if(l2) Monitor.Exit(obj2); // 同上
if ((DateTime.Now - begin).TotalMilliseconds > 1000) {
goto タイムアウト;
} else {
System.Threading.Thread.Sleep(10); // この待ち方も酷い
goto 再試行;
}
}
タイムアウト:
{
タイムアウト処理
}
ロック成功:
2017/05/25(木)06:03:54.24(OZ9w4Yf70.net)
40デフォルトの名無しさん [sage]
2017/05/25(木)07:25:50.25(zdaQwC0X0.net)
41デフォルトの名無しさん
それだとロック粒度が大きくなりすぎて逆にデッドロックの可能性を拡大してしまいますね。
2017/05/25(木)07:32:55.17(OZ9w4Yf70.net)
42デフォルトの名無しさん [sage]
資源数もタイムアウトもあるし
2017/05/25(木)07:34:38.83(ZdIAUNK00.net)
43デフォルトの名無しさん
2017/05/25(木)07:36:13.98(OZ9w4Yf70.net)
44デフォルトの名無しさん
lock(Monitor.Enter/Monitor.Exit) 同じプロセス 20ns
Mutex 違うプロセスも可能 1000ns
SemaphoreSlim 同じプロセス 200ns
Semaphore 違うプロセスも可能 1000ns
ReaderWriterLockSlim 同じプロセス 40ns
ReaderWriterLock 同じプロセス 100ns
Semaphoreは高機能すぎて、あまり軽々しくは使えない。
そのわりにはlockと違ってスレッドチェックがないので自家中毒を起こしたりするので、別途そのための対処が必要になったりする。
lock 20nsはやはり捨てがたいものです。
2017/05/25(木)07:50:05.84(OZ9w4Yf70.net)
45デフォルトの名無しさん [sage]
2017/05/25(木)08:14:43.50(CNpknsWj0.net)
46デフォルトの名無しさん
そんな事は無いと思うんだけどな、セマフォに標準で実装されているように
これはマルチスレッドデザインパターンとしては基本になるかと。
というか教科書にある典型ですし。
ところが、Monitorにはなかったので、おや何故ない?となっている所。
せっかく高性能なのに有効活用できないのは勿体ないと。
2017/05/25(木)08:20:40.14(OZ9w4Yf70.net)
47デフォルトの名無しさん [sage]
そもそもなぜロックが必要なの?
2017/05/25(木)08:30:18.43(a8axhl9cd.net)
48デフォルトの名無しさん
2017/05/25(木)08:34:06.74(OZ9w4Yf70.net)
49デフォルトの名無しさん
みたいなことをするぐらいならSpinLockを使った自前実装で処理したほうが良いかもしれない。
もしくは
>>lock(obj1) lock(obj2) 処理;
これでもデッドロックしないように、Lockする順番を厳格にしてコーディングするとか
というか、言葉遣いに気を付けたほうが良いと思うよ。
2017/05/25(木)08:52:37.16(CNpknsWj0.net)
50デフォルトの名無しさん [sage]
どうせ滅多に競合なんかしないでしょ
2017/05/25(木)08:54:51.29(foQMlEN20.net)
51デフォルトの名無しさん [sage]
2017/05/25(木)09:01:40.08(a8axhl9cd.net)
52デフォルトの名無しさん
ここにいる知らなくてもレスしないと死ぬ病気にかかっている奴はどうしょうもない。初心者の上にキチガイなら死ねって感じですが。
とりあえず、スピンロックは使いたくないですね、あれはCPUタイムをすり潰しながら高速動作を確保しようとするものだから
それの主用途は、激重計算タスクを並列処理するための物であって、目的とちょっと違いますね。
あと、排他処理をちゃんと勉強すると、順序等を考えていても意味が無くて
ロックする瞬間に作業に必要になるリソースをすべて確保して、必ず抜けられるという事の方がデッドロックに対する対処としては有用です。
でも、上に書かれているように一つのオブジェクトで粒度を上げてしまったら本末転倒になります。
2017/05/25(木)09:04:40.54(OZ9w4Yf70.net)
53デフォルトの名無しさん
ちゃんとわかっている人を待っているんだから黙ってろ
2017/05/25(木)09:05:42.97(OZ9w4Yf70.net)
54デフォルトの名無しさん [sage]
矮小な問題に限定されすぎていて、マイクロベンチマークレベルの不毛な議論にしかならない
状況によっては工夫すればロックフリーな実装もできるかもしれないよ
2017/05/25(木)09:12:36.71(foQMlEN20.net)
55デフォルトの名無しさん [sage]
2017/05/25(木)09:21:45.74(CcaoVCJwa.net)
56デフォルトの名無しさん
https://www.jpcert.or.jp/java-rules/lck07-j.html
ソースはそれっぽいものを適当に引っ張ってきた
ロックする順序は意味あると思うんだけど、、、
デッドロックが怖いってことだと思うんだけどさ
親から子へ順番守ってロックすればデッドロックしないじゃん?
2017/05/25(木)09:24:19.81(CNpknsWj0.net)
57デフォルトの名無しさん
世の中上には上の奴がいるんだよ、俺なんかよりはるかに知識を持っている奴はいくらでも。
お前より俺の方が知識あるが、そんな俺よりもはるかに凄いやつは山のようにいるんだ。
そろそろ、中二病みたいな全能感は捨てな
2017/05/25(木)09:24:47.08(OZ9w4Yf70.net)
58デフォルトの名無しさん
親子関係があれば、親についている操作ようのメソッドにロック処理をいれれば問題ないですね。
でも、今回のは完全に独立しているオブジェクト間です。
ちょっと難しいですね。
実際問題としては、順序を使う側にすべて守らせるというのは、理屈では語れても実践的ではないかもしれません。
やはり、ロック時間を短くする事が肝要であり、その為には粒度を小さくするのが基本となるかと。
汎用的なやり方としては、この方法がもっとも優れていると思います。
なので、この方法をより高パフォーマンスで実現できるヘルパーを実装して纏めて利用したい訳です。
だから、別の方法は考えていないです。Monitorを使った高速排他処理が今回の最終目標です。
2017/05/25(木)09:32:43.15(OZ9w4Yf70.net)
59デフォルトの名無しさん [sage]
人間には絶対にミス・バグがあるから、
デッドロックを100%、起こさないようにする事は、絶対に出来ないから
2017/05/25(木)11:13:36.68(5itOJ4P90.net)
60デフォルトの名無しさん [sage]
2017/05/25(木)11:20:25.49(ts6Ek6dYM.net)
61デフォルトの名無しさん [sage]
だから、もう来るなって、お前には何も聞きたいことは無いし、そんな話は聞かされたところで新たな何かには全くつながらない。
C#スレには、初心者用じゃないもう一本の匿名ゴミすれあるだろ、そっちいけよ。
分かっている人が来たときにコメントがゴミだらけになる。
2017/05/25(木)11:39:35.31(OZ9w4Yf70.net)
62デフォルトの名無しさん [sage]
>●例えばこれだと、デッドロックを引き起こすので良くない
>lock(obj1) lock(obj2) 処理;
これがデッドロックしうるのはこのスレッドがobj1だけをロックした状態で
別のスレッドがobj2をロックして、そのスレッドがobj1を待機してる場合だよね?
この場合このスレッドがobj1をアンロックしない限りobj2もアンロックされないからデッドロック
だから、ネストの内側のock(obj2) だけをタイムアウト付きのMonitor.TryEnterに置き換えれば
効率的かどうかはどうかはともかく、要件は満たせるんじゃいないの?
知らんけど
2017/05/25(木)12:20:12.43(XlAyjrlQa.net)
63デフォルトの名無しさん
まさにその通りです、それが直下に書いた雑な例です。
このヘルパーを作りたいという訳です、見るからに美しくないので詳しい人の登場をお待ちしているという所です。
必要な全ロック取得に失敗したら即座に全て解放して、乱数時間まって次を伺う。
これはよくある教科書通りです。
2017/05/25(木)12:28:42.96(OZ9w4Yf70.net)
64デフォルトの名無しさん [sage]
キチガイに触るなよ
2017/05/25(木)13:09:08.98(a8axhl9cd.net)
65デフォルトの名無しさん [sage]
2017/05/25(木)13:35:53.97(Gj1BXJi/M.net)
66デフォルトの名無しさん
勢いで書いた。
2017/05/25(木)13:51:23.71(CNpknsWj0.net)
67デフォルトの名無しさん
いいっすね、いいっすね
Thread.Sleep(100); ← ここがもうちょっとマシな待ち方になるといいんですがw
自分はインターフェイスは、IDispose使ってロック範囲を lock で書いたような雰囲気にしてます。
タイマーは、初ロック失敗の後にスタートさせて、ロック成功(大半のケース)でロスが少ないようにしてます。
なかなか素敵な感じになってくれませんw
2017/05/25(木)13:59:41.85(OZ9w4Yf70.net)
68デフォルトの名無しさん (ワッチョイ 1f1b-6//c) [sage]
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics
トップ項目にある
・C# ジェネリック クラスでは、ユーザー定義演算子は呼び出すことができますが、算術演算子を呼び出すことはできません。
"算術演算子を呼び出すことはできません"ってどーいう意味っすか?
算術演算子って+-*/のこと?
2017/07/11(火)08:22:12.16(MCsEtOKi0.net)
69デフォルトの名無しさん (アウアウイー Sacb-G8QH) [sage]
算術演算子が使える型のみ受け入れるような制約はできないから
自動的に算術演算子は使えないことになるわけだけど...
2017/07/11(火)09:57:14.72(t4lUkhAUa.net)
70デフォルトの名無しさん (ワッチョイ 5eea-bL4e) [sage]
2017/07/16(日)01:54:50.85(mMdQfX5s0.net)
71デフォルトの名無しさん (ワッチョイ 6a90-qWRz) [sage]
(dynamic)にキャストしてからなら演算子が使える
まあこれキャッシュ付きのリフレクションだから速度は期待しないでよー
2017/07/29(土)20:36:18.47(Gw88XuqA0.net)
72デフォルトの名無しさん [sage]
C#でジェネリックに絞ったオススメ書物ってのはありますか?
C++のテンプレートテクニックのどれが使えないか?ってのは知りたい。
2017/08/21(月)18:56:43.94(LgNyTwHt0.net)
73デフォルトの名無しさん [sage]
2017/08/21(月)19:55:10.65(KmAQXiSua.net)
74デフォルトの名無しさん [sage]
2017/08/21(月)20:02:09.15(vP5jpteT0.net)
75デフォルトの名無しさん [sage]
2017/08/21(月)21:10:14.69(qdRqCzb30.net)
76デフォルトの名無しさん
2017/08/27(日)02:29:03.34(/hywh0UG0.net)
77デフォルトの名無しさん
C#でクラスを宣言する際に、
class {...} とpublic class {...}
このふたつの違いが判りません。
教えてください。
2017/10/09(月)21:40:27.74(dzl0TrLma.net)
78デフォルトの名無しさん
2017/10/09(月)21:54:29.58(rAF1hT8M0.net)
79デフォルトの名無しさん [sage]
public とか internal とかの意味については↓
アクセス修飾子 (C# プログラミング ガイド) | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers
2017/10/09(月)21:56:31.06(28tAbNEV0.net)
80デフォルトの名無しさん [sage]
外部から見えるか見えないか
2017/10/09(月)21:56:50.83(u67WqECL0.net)
81デフォルトの名無しさん [sage]
internalですね。アセンブリ言語レベルの話のようなので
まだそこまで至ってないのでpublic, private, protectedだけ使います。
すみませんでした。
2017/10/09(月)22:03:58.01(rAF1hT8M0.net)
82デフォルトの名無しさん [sage]
2017/10/09(月)22:12:08.58(Y4203ffV0.net)
83デフォルトの名無しさん [sage]
2017/10/09(月)22:16:05.20(28tAbNEV0.net)
84デフォルトの名無しさん [sage]
今自分でも調べていてなんか違うなーって思ってました。
2017/10/09(月)22:41:05.37(rAF1hT8M0.net)
85デフォルトの名無しさん [sage]
バイナリ・ファイル
2017/10/09(月)23:04:42.97(/pZGRYTm0.net)
86デフォルトの名無しさん [sage]
ファイル単位の物理的なまとまりはモジュール(.netmodule)で
モジュールをまとめた論理的まとまりがアセンブリ(.dll/.exe)
Visual Studioが2002の初めから一貫してサポートしてないこのモジュールって単位をMSはどう使うつもりだったんだろう
2017/10/10(火)00:40:47.02(pliWVB3X0.net)
87デフォルトの名無しさん [sage]
(ものによってはF#のほうが書きやすいとか)
実際それが必要なユーザがどれだけいるのかって話な
2017/10/10(火)21:13:43.71(9Raz+qz10.net)
88デフォルトの名無しさん [sage]
最終的な呼び出し元はネイティブと同じ口なんだけど、
dynamicやasync/awaitなどを使いたいため、
dllexport付近の薄皮一枚だけ C++/CLI、
残りは全部C#で記述して1つの.dllにってのに.netmoduleを使う。
C#とF#の組み合わせとか、ほとんど無意味に思えるが…
2017/10/10(火)23:25:11.21(I+aeGBiR0.net)
89デフォルトの名無しさん [sage釣]
2017/10/11(水)03:26:54.68(rqqSAVqsM.net)
90デフォルトの名無しさん [sage]
何処見ても-=でしろってのばかりで全解除の適切なやり方載ってないんだけど
一応null代入で動いてるぽいけどちと不安
2017/10/18(水)13:52:47.94(ufsScDVj0.net)
91デフォルトの名無しさん [sage]
できわるいコードだとnull入れると落ちるw
2017/10/18(水)14:05:31.13(4p9Ry6Jxa.net)
92デフォルトの名無しさん [sage]
+=って内から外へ処理出しする訳だから
インスタンスが破棄されたら当然破棄されるべきなのにどうもそうなってない
nullぶっこめばGC回収されるみたいだけど正しいやり方なのかな
2017/10/18(水)14:18:32.71(ufsScDVj0.net)
93デフォルトの名無しさん [sage]
2017/10/18(水)15:17:21.27(8oWZ+6kpM.net)
94デフォルトの名無しさん [sage]
むしろどういう場面で必要になるのか想像できないな
> +=って内から外へ処理出しする訳だから
> インスタンスが破棄されたら当然破棄されるべきなのにどうもそうなってない
ここは何を言ってるのかよく分からない
まあ、イベントというかデリゲートのマルキチャストの仕組みが分かりづらいのはわかる
2017/10/18(水)15:34:04.84(jnsT8t6ma.net)
95デフォルトの名無しさん [sage]
2017/10/18(水)15:50:00.66(h6dEijxza.net)
96デフォルトの名無しさん [sage]
例えば非同期通信でデシリアライズ終わったらイベント投げて後は勝手に死ね、って場合
-=だと発行側で解除するのが困難でリークしちまう
最新VerC#ならTaskで後処理書けばいいけど、Unityだとつい最近まで3.5だったから
2017/10/18(水)16:11:03.50(ufsScDVj0.net)
97デフォルトの名無しさん [sage]
俺の理解不足だったらごめん
リークするのはイベントの購読側のオブジェクトLがイベントの購読を解除しないまま
Lを参照する変数がなくなった場合で、発行側のオブジェクトPのイベントに
Lのメソッドが登録されたままPへの参照がなくなってもそれはリークにならないと思うんですが
2017/10/18(水)16:24:45.96(jnsT8t6ma.net)
98デフォルトの名無しさん [sage]
そう思ってた時期が俺にもありました
しかし実際はリークしてOutofMemoryが出る
どうも購読側参照が残ってると到達可能と見られてGC回収されないぽい
本当にそういう理屈かは知らんけどnullぶち込むと例外でなくなる
2017/10/18(水)16:39:10.41(ufsScDVj0.net)
99デフォルトの名無しさん [sage]
2017/10/18(水)17:26:02.20(jNhOnQNR0.net)
100デフォルトの名無しさん [sage]
>どうも購読側参照が残ってると到達可能と見られてGC回収されないぽい
登録解除してないから購読側は発行側から参照されてて回収されない
その状態で購読側が発行側を参照してるんなら発行側も回収されないよね
2017/10/18(水)17:46:05.16(GswCLlj60.net)
101デフォルトの名無しさん [sage]
されないなら単に循環参照以外の参照が何かしら残ってるだけ
いいや解放されないね!とかいう思い込みに付き合う気はないから
口ごたえがしたければ、VSのメモリーアナライザーで
リークしているというオブジェクトの参照状態のスナップショットを撮って
ここに貼り付けてから続けるように
2017/10/18(水)19:19:26.31(j/PgXgnk0.net)
102デフォルトの名無しさん [sage]
すまんすまん、他の言語と勘違いしてた。
2017/10/18(水)21:18:06.23(GswCLlj60.net)
103デフォルトの名無しさん [sage]
レジストリ編集無しでIE11相当にするにはどうしたらいいでしょうか?
もしくは、dllファイル1つで済むなら、他のブラウザコンポーネントでもいいです。
2017/11/07(火)14:20:16.62(7CEykIkZ0.net)
104デフォルトの名無しさん [sage]
レジストリっていってもHKCUなんだからアプリ起動時に書き込むだけのことだけど
2017/11/07(火)14:42:48.60(uJ4GX7RNM.net)
105デフォルトの名無しさん [sage]
2017/11/07(火)18:40:38.64(MJK6I9RA0.net)
106デフォルトの名無しさん [sage]
CoInternetSetFeatureEnabled
2017/11/08(水)00:31:11.06(NuL34q9d0.net)
107デフォルトの名無しさん [sage]
EFCore+Sqliteで開発してるんですが、".db"ファイルのパス指定で困ってます。
コネクション作成時に、以下でdbパス指定をしています。
var connectionString = new SqliteConnectionStringBuilder { DataSource = @"./app.db" }.ToString();
この場合、理由がよく分かってないのですが、
Update-Databaseを実行した時(CreateDatabaseが発行される時)、プロジェクトフォルダからの相対パスになり、
SaveChangesを実行した時(Insert文が発行される時)、/bin/debugからの相対パスになります。
毎回相対パス指定を変えるのが面倒で、かつ絶対パス指定はしたくないもので。
何か良い方法はありませんでしょうか。
2017/12/18(月)07:59:20.53(mWvJQqvN0.net)
108デフォルトの名無しさん [sage]
2017/12/18(月)13:46:10.03(325qmzymM.net)
109デフォルトの名無しさん [sage]
で、app.dbはどこに有るのよ、
2017/12/18(月)14:56:45.39(dTBoNCZ50.net)
110デフォルトの名無しさん [sage]
絶対パスいやならカレントフォルダ変更したら?
2017/12/18(月)14:57:20.68(E4FIT7xPa.net)
111107 [sage]
2017/12/18(月)23:30:30.75(mWvJQqvN0.net)
112デフォルトの名無しさん [sage]
2017/12/31(日)15:13:16.63(n7dS7ECy0.net)
113デフォルトの名無しさん [sage]
2017/12/31(日)15:13:40.84(K0nOGJob0.net)
114デフォルトの名無しさん [sage]
2017/12/31(日)16:15:17.15(jcdX0HHma.net)
115デフォルトの名無しさん [sage]
2017/12/31(日)16:16:35.61(PdI3PgJiM.net)
116デフォルトの名無しさん [sage]
2017/12/31(日)16:35:43.42(GvxCaHuK0.net)
117デフォルトの名無しさん [sage]
今はまともになったんかねWPF
2017/12/31(日)16:54:40.12(Jm0z8SXaF.net)
118デフォルトの名無しさん [sage]
2017/12/31(日)17:32:53.36(n7dS7ECy0.net)
119デフォルトの名無しさん [sage]
2017/12/31(日)18:07:24.15(jSVu2Yi+0.net)
120デフォルトの名無しさん [sage]
2017/12/31(日)18:22:11.56(OKQGXBiEx.net)
121デフォルトの名無しさん [sage]
それとも
つっかかりにくい→とりつきにくいorとっつきにくい
あんまない→あまりないorあんまりない
2017/12/31(日)20:17:21.07(jSVu2Yi+0.net)
122デフォルトの名無しさん [sage]
外国人?
2017/12/31(日)20:22:19.59(TCYSbVmxa.net)
123デフォルトの名無しさん [sage]
2017/12/31(日)20:26:45.27(sT88mvz00.net)
124デフォルトの名無しさん [sage]
2017/12/31(日)21:26:10.60(mh0j3eXv0.net)
125デフォルトの名無しさん [sage]
2018/01/01(月)08:43:08.79(qva7Cn1y0.net)
126デフォルトの名無しさん [sage]
例えば自作アプリ X.EXE に外部ライブラリ A.DLL と B.DLL を結合して X2.EXE を作ったとします
この X2.EXE を配布する場合、A.DLL と B.DLL の著作権情報を明記すれば問題ないという認識で合っていますか?
2018/01/08(月)21:07:22.93(ff9XOb220.net)
127デフォルトの名無しさん [sage]
それはILMerge関係なくA.DLL と B.DLL のライセンスの問題です
結合が禁止されていなければ添付して配布するのと同じになります
どんなライセンスかによって違うので
【License】ライセンス総合【利用許諾】
https://mevius.5ch.net/test/read.cgi/tech/1266247461/
へどうぞ
2018/01/08(月)21:23:20.13(/QyX6ETP0.net)
128デフォルトの名無しさん [sage]
2018/01/08(月)21:33:00.91(7hYpzMEE0.net)
129デフォルトの名無しさん [sage]
レスありがとうございます
2018/01/08(月)22:13:04.36(ff9XOb220.net)
130デフォルトの名無しさん [sage]
.net MVC のソースコードを見ていて思ったのだけど、たとえば razor の Html.LabelFor メソッドは第一引数に
m => m.name などと書いて、引数 m で示すクラスインスタンスの name プロパティの DisplayName 属性の値を
ラベルとして表示していたりします。
ということは、ラムダ式 m => model.name から name プロパティの属性情報を取得しているのだと思うのですが、
どうやってるのかさっぱり分からず。
調べるべきキーワードだけでもいいので、ヒントをいただけませんか。
2018/01/31(水)23:46:33.39(3zSQiFnB0.net)
131デフォルトの名無しさん [sage]
Func<String>の代わりにExpression<Func<String>>にしたりする
キーワードは式ツリー
2018/02/01(木)01:19:13.10(7ACR6glp0.net)
132130 [sage]
2018/02/02(金)00:27:05.13(eoTWLp2s0.net)
133デフォルトの名無しさん [sage]
2018/02/13(火)16:59:47.00(KbLCHvlc0.net)
134デフォルトの名無しさん [sage]
FindWindowやEnumWindowsで目的のウィンドウのウィンドウハンドルを手に入れて
SetWindowPosする
>>133のウィンドウがこれでできるかどうかはそのプログラムの作り次第
2018/02/13(火)20:22:55.89(ElvL/+ZbM.net)
135デフォルトの名無しさん [sage]
ありがとうございます
それで移動、サイズ変更できないウィンドウをどうにかできないかなと思い質問してみました
ユーザーが移動サイズ変更できないウィンドウでも強引にしてしまうプログラムがあるらしいので、どうしてるのかな?と
2018/02/13(火)20:56:39.50(KbLCHvlc0.net)
136デフォルトの名無しさん [sage]
とりあえず直接のC#の話でなくWinAPIなんだからそっちで調べた方がいいと思うよ
2018/02/13(火)21:00:42.72(00bUqpHu0.net)
137デフォルトの名無しさん [sage]
ありがとうございます
2018/02/13(火)21:21:31.71(KbLCHvlc0.net)
138デフォルトの名無しさん [sage]
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
2018/02/16(金)06:01:32.86(W1XJdyx10.net)
139デフォルトの名無しさん [sage]
TcpClientでコネクション使い回しというか
開けっ放しでデータ送り切るって出来ない?
flushしてもデータ残っててCloseしないと全部送られない
2018/04/09(月)14:21:53.70(hXBdpr6O0.net)
140デフォルトの名無しさん [sage]
2018/04/09(月)15:36:40.77(Cpp6LEO80.net)
141デフォルトの名無しさん [sage]
GetStream()でストリーム取ってWrite()するだろ
でもClose()しないとケツのいくばくかはいつまで経っても送られない
断続的に送りたいから、いちいちClose()してからConnect()やり直すとかしないで済む方法あるか知りたい
2018/04/09(月)15:51:30.50(hXBdpr6O0.net)
142デフォルトの名無しさん [sage]
2018/04/09(月)15:59:29.12(uvdwBq6N0.net)
143デフォルトの名無しさん [sage]
2018/04/09(月)16:03:49.46(hXBdpr6O0.net)
144デフォルトの名無しさん
非同期実行について勉強中です。
以下のサイトの内容なんですが、
https://ufcpp.wordpress.com/2012/11/12/asyncawait%E3%81%A8%E5%90%8C%E6%99%82%E5%AE%9F%E8%A1%8C%E5%88%B6%E5%BE%A1/
ページ中ほどにある
"スレッド プール実行"
の
"一方、内側は、スレッド プール上での実行になりますが、スレッド プール上のコンテキストではawaitしてもスレッド プール上のどこかで実行されるだけで、決してUIスレッドには戻らなくなります。"
の意味が理解できません。プール上のどこかで何が実行されるのでしょうか?
また、その下の”問題となる書き方の例”
の
”Task.Runの中のawaitでは、単一スレッド実行にはならないので、lockが必要になることがあります。”
理解が出来ませんでした。
2連続someTask()は同時に実行されるという意味でしょうか?
2018/04/16(月)21:16:34.15(f86xegYk0.net)
145デフォルトの名無しさん [sage]
その中で遅延実行しても戻り値は受け取れないよ
だって戻る領域が数秒後も存在しているか分からないからね
って意味だと思う
2018/04/16(月)21:51:32.37(zRE5gkIia.net)
146デフォルトの名無しさん [sage]
Ruby を作った、Matz でさえ、何十年もやっていないのに
OS・CPU が今、どのプロセスのどのスレッドの、どの実行コードを実行しているのか、
君のプロセスのスレッドから、わかるわけないでしょ
同期処理じゃないのに。
バラバラに、無関係に動いているのに
逆に言えば、バラバラに動くスレッドの、
現在実行中のコードがわかるのなら、それは同期処理になる
2018/04/16(月)23:04:11.81(qlfABgAK0.net)
147デフォルトの名無しさん [sage]
2018/04/16(月)23:28:22.82(pnvSaCZFa.net)
148144 [sage]
2018/04/17(火)06:32:51.54(/3sDS4fX0.net)
149デフォルトの名無しさん [sage]
2018/04/17(火)08:18:31.78(iJwyhGM3M.net)
150デフォルトの名無しさん [sage]
taskって4.0からだっけ?
2018/04/17(火)08:24:21.80(AgNOdAZLM.net)
151デフォルトの名無しさん [sage]
2018/04/17(火)10:03:57.21(iJwyhGM3M.net)
152デフォルトの名無しさん [sage]
2018/04/17(火)10:50:32.95(EhGIAhyrd.net)
153デフォルトの名無しさん [sage]
いいこと教えてもらった。
Rxってsilverlightだけじゃないんだ。
2018/04/17(火)11:51:31.97(iJwyhGM3M.net)
154デフォルトの名無しさん [sage]
3.5が使えて4が使えないプラットフォームは存在しないと思うけど
2018/04/17(火)12:18:07.14(xGjbcgxza.net)
155デフォルトの名無しさん [sage]
2018/04/17(火)12:48:49.14(JQ78IAVca.net)
156デフォルトの名無しさん [sage]
2018/04/17(火)13:03:19.02(iJwyhGM3M.net)
157デフォルトの名無しさん [sage]
2018/04/17(火)13:07:10.43(rojjHsw+0.net)
158デフォルトの名無しさん [sage]
2018/04/17(火)16:37:52.80(joazaAE7M.net)
159デフォルトの名無しさん [sage]
2018/04/17(火)17:17:34.43(JQ78IAVca.net)
160デフォルトの名無しさん [sage]
2018/04/17(火)19:00:52.03(F4BOoGzu0.net)
161デフォルトの名無しさん [sage]
2018/04/17(火)19:14:49.95(joazaAE7M.net)
162デフォルトの名無しさん [sage]
2018/04/17(火)19:54:15.01(xGjbcgxza.net)
163デフォルトの名無しさん [sage]
2018/04/17(火)20:38:22.07(F4BOoGzu0.net)
164デフォルトの名無しさん [sage]
ググるといろいろ出てきてX509とかってのを使うと良いとある
まだ実装とか全然なんだけど、この情報だけだと不安なのでだれかやったことのある人いない?
X509Cartificate.Exportはバイトデータを吐き出してそのままファイルに保存できるるっぽいけど、秘密キーを設定したいとかあったりしてモヤモヤしてる
2018/04/18(水)14:53:40.81(ur62Feqwa.net)
165デフォルトの名無しさん [sage]
2018/05/03(木)18:58:35.37(+FWBwd0JM.net)
166デフォルトの名無しさん [age]
2018/05/03(木)18:59:21.23(+FWBwd0JM.net)
167デフォルトの名無しさん [sage]
form1 ディスプレイの解像度等を入力する。入力したデータをもとにform2に表示する長方形の大きさ(rx,ry)を算出
form2 form1で算出した(rx,ry)をもとに長方形を表示
ってしたいんだけど
A. rx,ryをpublicで定義してform2.csから参照する
B. form1のrx,ryを求める計算式をクラスにしてform2からインスタンス生成して求める
のどちらがお作法的に正しいんでしょう?
2018/05/04(金)20:04:32.00(hRV05sGM0.net)
168デフォルトの名無しさん [sage]
でも、まぁそんなのAでもBでもいいだろ
関係ないが解像度ぐらい自動で取得してくれると楽
2018/05/04(金)20:12:02.30(h17LifXxa.net)
169デフォルトの名無しさん [sage]
2018/05/04(金)20:14:46.22(QSaueu9Z0.net)
170デフォルトの名無しさん [sage]
2018/05/04(金)20:20:22.68(hRV05sGM0.net)
171デフォルトの名無しさん [sage]
すいません。
プログラミング初めて勉強なので、なるべくへんなコーディングしないように可読性高くと考えてまして、
普通はどう描くんだろうなというところが気になって仕方ない。
public変数作りすぎると、後でどこかで変に触るとわけわからんことになるのかなと極力使わないように心がけてます。
2018/05/04(金)20:22:53.75(hRV05sGM0.net)
172デフォルトの名無しさん [sage]
2018/05/04(金)20:37:07.58(HEa1U9rI0.net)
173デフォルトの名無しさん [sage]
2018/05/04(金)20:55:12.49(L0LZvRGB0.net)
174デフォルトの名無しさん [sage]
2018/05/04(金)21:33:04.91(hRV05sGM0.net)
175デフォルトの名無しさん [sage]
ユーザー側でフォームのサイズを変えたとしても
常にフォーム右端にボタンを固定する方法ってないでしょうか?
2018/05/04(金)21:34:38.54(hRV05sGM0.net)
176デフォルトの名無しさん [sage]
ボタンのAnchorのプロパティをTop, Rightに変更
2018/05/04(金)21:39:42.44(EvkA5vHv0.net)
177デフォルトの名無しさん [sage]
2018/05/04(金)22:00:01.60(hRV05sGM0.net)
178デフォルトの名無しさん [sage]
Form1.method1();
だとエラーなのですが、form自体がクラスだからインスタンス生成が必要ということでしょうか?
本当に初歩的な質問ばかりですいません。
2018/05/04(金)22:18:10.81(hRV05sGM0.net)
179デフォルトの名無しさん [sage]
Visualstudioで新規ソリューションを作成して、既存のソリューションからフォームを追加したのですが、
フォームデザインでは新規フォームが表示されているだけ、.Designer.csを除くときちんとコードが記載されているのですが、
[デザイン]:の画面では反映されておらず、この画面でコントロールを追加などするとエラーがでてビルドできなくなります。
フォームの追加の仕方が間違ってるのかなぁ。
2018/05/04(金)23:14:52.98(hRV05sGM0.net)
180デフォルトの名無しさん [sage]
2018/05/04(金)23:16:00.99(o0wzY09D0.net)
181デフォルトの名無しさん [sage]
エラーの内容は?
2018/05/05(土)01:05:27.05(i9GeFih30.net)
182デフォルトの名無しさん [sage]
エラー CS0121 次のメソッドまたはプロパティ間で呼び出しが不適切です:
'InitalMonitorSetteing.InitializeComponent()' と 'InitalMonitorSetteing.InitializeComponent()'
エラー CS0111 型 'InitalMonitorSetteing' は、'InitializeComponent'
と呼ばれるメンバーを同じパラメーターの型で既に定義しています。
です。
2018/05/05(土)08:03:54.33(CBIAOUw10.net)
183デフォルトの名無しさん [sage]
追加→既存の項目
でフォーム一切合切を取り込むと
フォームの[デザイン]タブのところで新規のフォームが表示され、これをいじると上記エラーが出ます。
フォームの[デザイン]タブをいじらなければ正常に実行されます。
.Designer.csを見るときちんとコードが書かれているので
[デザイン]と.Designer.csが一致していない状態になっているようです。
2018/05/05(土)08:08:30.21(CBIAOUw10.net)
184デフォルトの名無しさん [sage]
フォームのデザインすべてコピー貼り付け
コードすべてコピー貼り付け
ってやって追加しました。
なんかネットで見ると、
ソリューションエクスプローラーで
追加→既存の項目
でフォーム一切合切を取り込む
ってやると後々まで得体のしれないエラーに悩まされるので、上の方法を推奨している方がいました。
Visual Studioかフォーム自体の持つバグなんですかね…。
2018/05/05(土)08:36:55.68(CBIAOUw10.net)
185デフォルトの名無しさん [sage]
2018/05/05(土)08:47:39.95(5nbJxYdYa.net)
186デフォルトの名無しさん [sage]
プログラム向いてないよお前
2018/05/05(土)09:57:21.01(+PUGPCx60.net)
187デフォルトの名無しさん [sage]
私がよく理解していないために、しなければいけない作業をしていないのかもしれませんね。
2018/05/05(土)10:00:36.87(CBIAOUw10.net)
188デフォルトの名無しさん [sage]
2018/05/05(土)10:35:22.91(TTUQSH5zM.net)
189デフォルトの名無しさん [sage]
そもそもこの質問の時点でFormsのコード部分が何をやってるのか理解できてない可能性がある
2018/05/05(土)11:08:14.41(T9f+iK/r0.net)
190デフォルトの名無しさん [sage]
2018/05/05(土)11:25:44.32(qEM4shRT0.net)
191デフォルトの名無しさん [sage]
とりあえず何か入門書籍に頼って動くものを作れ
話はそれからだ
2018/05/05(土)11:27:18.98(LtMyhhwZM.net)
192デフォルトの名無しさん [sage]
情報共有する場所なんだからこういったいいかげんなこと書くのやめてほしいな
まずソースをそのまま取り込みたいのならプロジェクトに追加で何も不具合は起こらない
それでデザイナが反映されないのならDesigner.csを直接書き換え(認識できなくなるような書き換え)やっているはず
あとユーザーコントロールを内部で追加している場合は一度ビルドするとデザイナで反映される
プロジェクトでなくソリューションにソース追加しても当然何も起こらない
最初からふらっとにいけばいいのに
2018/05/05(土)20:20:18.85(xedbZMvy0.net)
193デフォルトの名無しさん [sage]
コンストラクタでなんかやってる奴は特に要注意
2018/05/05(土)20:30:34.54(Tc8hf/iLa.net)
194デフォルトの名無しさん [sage]
2018/05/05(土)22:08:57.94(1Zee5iE50.net)
195デフォルトの名無しさん [sage]
2018/05/05(土)22:38:59.04(T9f+iK/r0.net)
196デフォルトの名無しさん [sage]
という書き込みを見たので、
そこで提案されていた新規フォーム作成して
そこにコピペとしてみて結果オーライだったのでそれで良しとしたのですが、
私の方でなにか既存のフォームを取り込むのにまずいことをしてたのかもしれません。
記憶にないけどDesigner.csを直接書き換えしたかなぁ・・・。
フォームで作成するかWPFを使うかを悩んでた時にフォームは放置されたバグが多いと警告されていたので、
単純にバグなのかと思いましたが根拠なくソフトのバグと書き込むのはまずかったですね。
失礼しました。
2018/05/05(土)22:40:45.58(CBIAOUw10.net)
197デフォルトの名無しさん [sage]
最初は難しいがXAMLはUWPでも使っていて今後につながると思う。
2018/05/06(日)07:44:34.64(8BI4PAGy0.net)
198デフォルトの名無しさん [sage]
2018/05/06(日)15:08:05.14(gzoDeGmX0.net)
199デフォルトの名無しさん [sage]
Winアプリ作らにゃならんならWPFのがマシってのはまあそうだ
でも将来性あるとは思わんな
2018/05/06(日)16:52:40.62(6XezKW2ea.net)
200デフォルトの名無しさん [sage]
今後もWinアプリを開発することになるんで、なるべく将来性と言うか潰しのきく技術に投資したいと思ってWPFにしたんだけど。
2018/05/06(日)17:34:01.02(ZPoK8KSTM.net)
201デフォルトの名無しさん [sage]
それはないよw
継承の段数は関係なくて、単にコントロールのカスタマイズは意外と難しいってだけの話
俺も経験があるけど簡単にシステム側のバグを疑いたくなる現象にぶち当たるけど、
ほとんどの場合はプログラマの理解不足によるユーザーコード側のバグが原因
2018/05/06(日)17:36:34.98(w10wIaHya.net)
202デフォルトの名無しさん [sage]
WPF出てから何年経ってるよ
他に採用してるとこないのはそういうことだ
2018/05/06(日)17:37:23.44(6XezKW2ea.net)
203デフォルトの名無しさん [sage]
XAML
2018/05/06(日)17:39:54.31(YMV7ENjt0.net)
204デフォルトの名無しさん [sage]
2018/05/06(日)17:41:16.14(6XezKW2ea.net)
205デフォルトの名無しさん [sage]
WPFでCADを提供してみろ
2018/05/06(日)17:43:51.97(EPydt9+c0.net)
206デフォルトの名無しさん [sage]
対案示してくれると検討もできるんですけど。
2018/05/06(日)18:14:23.28(8BI4PAGy0.net)
207デフォルトの名無しさん [sage]
オプショナル独自仕様なんぞわざわざ覚えんでもC#だけ抑えときゃいいじゃん
2018/05/06(日)18:17:03.64(6XezKW2ea.net)
208デフォルトの名無しさん [sage]
言語だってそうだ。c#に拘らず、必要に応じてほかの言語も使えば楽になるぞ
縛りプレイとか馬鹿臭くてやってられん
2018/05/06(日)18:17:55.59(JGiuZYwWa.net)
209デフォルトの名無しさん [sage]
2018/05/06(日)18:18:35.39(gpR98zCG0.net)
210デフォルトの名無しさん [sage]
2018/05/06(日)18:21:30.52(gzoDeGmX0.net)
211デフォルトの名無しさん [sage]
2018/05/06(日)18:31:06.82(8BI4PAGy0.net)
212デフォルトの名無しさん [sage]
formはformでわざわざ部品探したり作る必要ないから良いんだけどね
2018/05/06(日)18:36:24.83(Yj4OtQcz0.net)
213デフォルトの名無しさん [sage]
2018/05/06(日)18:49:36.56(c85H7Qr90.net)
214デフォルトの名無しさん [sage]
CAD作れるかとか、Formならできるの?
Windows、.net、C#でGUIアプリ作るならFormかWPFしかないじゃん。
Formは終わった技術で行き止まり、WPFは普及しなくて過渡的な技術になるかも知れないがその先につながりそうでって言ってんです。
もっと論理的に反論して欲しいです。
2018/05/06(日)19:05:20.38(8BI4PAGy0.net)
215デフォルトの名無しさん [sage]
2018/05/06(日)19:06:34.14(lPSPWHr00.net)
216デフォルトの名無しさん [sage]
2018/05/06(日)19:13:48.84(8BI4PAGy0.net)
217デフォルトの名無しさん [sage]
2018/05/06(日)19:15:40.37(JGiuZYwWa.net)
218デフォルトの名無しさん [sage]
2018/05/06(日)19:17:40.07(OZSh5wZJ0.net)
219デフォルトの名無しさん [sage]
2018/05/06(日)19:21:54.60(8BI4PAGy0.net)
220デフォルトの名無しさん [sage]
2018/05/06(日)19:24:56.35(8BI4PAGy0.net)
221デフォルトの名無しさん [sage]
2018/05/06(日)19:27:17.19(8BI4PAGy0.net)
222デフォルトの名無しさん [sage]
今でも時々vsごと落ちる
まあ次が出る前にWinアプリ自体がオワコンになる可能性も低くないけどな
あんたの人生だから好きにしたらいいよ
2018/05/06(日)19:34:40.78(OZSh5wZJ0.net)
223デフォルトの名無しさん [sage]
XAMLでの開発3年弱だがVS落ちた経験ないよ。
Winアプリがオワコンになるんだったら、早いとこ他の言語・環境に移行したら?
オレはWinアプリだけじゃなくタブレットとかスマホにも適用できると思ってるから、この道行くよ。
2018/05/06(日)19:44:28.98(8BI4PAGy0.net)
224デフォルトの名無しさん [sage]
俺も落ちたことないんだけど、どんな環境で何したん?
2018/05/06(日)19:47:05.22(YMV7ENjt0.net)
225デフォルトの名無しさん [sage]
すくなくとも現行のUWPと共通のXAML使ってるぶんFormsよりは十倍マシ
2018/05/06(日)19:59:30.59(P5UQ0avb0.net)
226デフォルトの名無しさん [sage]
2018/05/06(日)20:10:59.67(OZSh5wZJ0.net)
227デフォルトの名無しさん [sage]
ハードウェアアクセラレーションの問題ではなくて?
2018/05/06(日)20:17:33.07(YMV7ENjt0.net)
228デフォルトの名無しさん [sage]
すごいな。なかなか落とせるもんじゃない。
そんなにWinの将来に悲観的なら、本当にどこかに行ってください。
間違った書き込みを堂々と恫喝的にされると初学者の道を誤らせるよ。
それって罪なことです。
このスレタイでは。
2018/05/06(日)20:19:15.57(8BI4PAGy0.net)
229デフォルトの名無しさん [sage]
落ちるときは落ちるさ
こんな風にその問題を追及しないのがアレ
https://stackoverflow.com/questions/31021049/visual-studio-2015-crashes/33182194#33182194
2018/05/06(日)20:22:22.92(YMV7ENjt0.net)
230デフォルトの名無しさん [sage]
2018/05/06(日)20:28:51.95(8BI4PAGy0.net)
231デフォルトの名無しさん [sage]
2018/05/06(日)20:30:40.96(YMV7ENjt0.net)
232デフォルトの名無しさん [sage]
2018/05/06(日)20:37:41.43(8BI4PAGy0.net)
233デフォルトの名無しさん [sage]
2018/05/06(日)20:39:01.49(8BI4PAGy0.net)
234デフォルトの名無しさん [sage]
2018/05/06(日)20:40:12.87(8BI4PAGy0.net)
235デフォルトの名無しさん [sage]
初学者どうたら言うんならもっと普及してるもん押すべきじゃあないの?
言っとくけどC#自体は他でも使われてるからなUnityとか
>>229
毎度再現するんでもないからなー
Formでは一回も落ちたことないからXAML関係が比較的不安定なのはそうじゃないの
2018/05/06(日)20:46:08.35(OZSh5wZJ0.net)
236デフォルトの名無しさん [sage]
2018/05/06(日)20:58:22.97(8BI4PAGy0.net)
237デフォルトの名無しさん [sage]
だから俺は違うってばwww
2018/05/06(日)21:16:41.42(YMV7ENjt0.net)
238デフォルトの名無しさん [sage]
2018/05/06(日)21:31:09.89(JjviwauC0.net)
239デフォルトの名無しさん [sage]
2018/05/06(日)21:39:39.84(8BI4PAGy0.net)
240デフォルトの名無しさん [sage]
2018/05/07(月)11:50:51.85(zM6nOBFcM.net)
241デフォルトの名無しさん [sage]
2018/05/08(火)02:53:46.31(EHD0XpOQ0.net)
242デフォルトの名無しさん [sage]
.NET Core Global Toolsおもしろいよね
2018/05/08(火)03:04:56.28(wFWfdcvC0.net)
243デフォルトの名無しさん [sage]
A.初期設定画面
表示する円の大きさ、数、表示座標の範囲などの初期値を設定
B.ゲーム画面
初期設定画面からAの初期値を取得し、メンバ変数に代入して
円を表示する
円を消去する
円の当たり判定をする
などの3つぐらいのメソッドで使用しています。
Bのコードが長くなって200行ぐらいになると、
メンバ変数をどこで使ってるのか全部見なければいけないのは
可読性が悪いのかなと思うようになってきました。
3つのメソッドそれぞれのグループ変数として
それぞれ3つのメソッド内でAの初期値を見に行くコーディングをしたほうが良いのでしょうか?
メンバ変数の方が冗長性はないけど可読性が低くて、
メソッドないのグループ変数にしたほうが冗長性が高いが可読性も高い気がします。
独学でコーディングしているので、お仕事でプログラミングされている方のご意見を伺いたいです。
2018/05/11(金)22:56:53.52(oqUyZvi20.net)
244デフォルトの名無しさん [sage]
2018/05/11(金)23:05:04.79(KxM4SNOx0.net)
245デフォルトの名無しさん [sage]
public int GetTimeLimit
{
bool resultOfGetTimeLimit = int.TryParse(this.timeLimit.Text, out int timeLimit);
if (resultOfGetTimeLimit)
return timeLimit;
else
return 0;
}
が10個ぐらいあるだけで、Aの可読性はいいのですが。
Bのクラスから→Aのインスタンス生成→フォーム表示しているので、
Bが
1. Aからの初期値取得
2. 取得した初期値でゲーム画面表示
3. ゲーム中の処理
4. スコアデータとAの初期値テキストファイルへの書き出し
という4つの異なった処理(特に2,3のコードが長い)をしているのと、
Aのコードの量も400行近くになっているのが可読性低下の原因かと思います。
2018/05/12(土)08:19:23.20(RvuVG0qm0.net)
246デフォルトの名無しさん [sage]
BAの画面処理に基づいた1234はすべてBに入れることになってるんですよね。
これって画面遷移が良くないってことなのかなぁ?
一般的に1234の処理を一つのフォームクラスに押し込んでクラスメンバ変数10個程度、
400行のコードって可読性の観点から許容されるものなんでしょうか?
チームでプログラミングされているプロの方の意見をお伺いできればと思います。
(長文本当に申し訳ありません)
2018/05/12(土)08:19:38.98(RvuVG0qm0.net)
247デフォルトの名無しさん [sage]
じゃあもう好きにしたらいいと思うよ
2018/05/12(土)08:45:11.14(KCIDKf2Q0.net)
248デフォルトの名無しさん [sage]
私の説明か理解が悪いのでしょうか?
Aは100行未満のコード245のコードの連続なので簡単に読めます。
Bが読みづらいのが問題なので、Aの機能を分離しても解決にはならないような。
BがAが取得したデータ保持とゲーム内でのデータ処理の二つを担っているのがまずいとのご指摘であれば、
それはそうかと思いますが、データ保持と処理が画面と密接に関係しているので分離し難いというか・・・。
コード全部見せないで質問すること自体に無理があるのかもしれませんね。
すいません。
2018/05/12(土)09:11:24.66(RvuVG0qm0.net)
249デフォルトの名無しさん [sage]
フォームを生成しているクラスのコードが400行、メンバ変数が10個、メソッドが8個、で、
メンバ変数はそれぞれのメソッドで3個ぐらい引用しています。
こういうコードってチームで作業してるプロから見て許容できる範囲でしょうか?
処理が多少冗長になってもメンバ変数を少なくして、メソッド内でグローバル変数として定義するべきでしょうか?
2018/05/12(土)09:18:34.84(RvuVG0qm0.net)
250デフォルトの名無しさん [sage]
Aを入出力専門のAViewとデータ保持専門のDataHolderに分離
Bをゲーム画面描画専門のBViewと実際の内部処理を行うGameModel, 各種書き出しを行うWriterに分離
Windowのインスタンスの内部で色々な処理を行うのがそもそも間違ってる
描画と変更の通知以外何もさせるな
2018/05/12(土)09:19:07.30(vhGL8v7ea.net)
251デフォルトの名無しさん [sage]
ありがとうございます。
理解できました。
フォーム生成するクラスはフォームの描画、変更に特化
A 初期値入力フォームを生成するクラス
B データを保持するクラス
C ゲーム画面表示クラス
D ゲームのルールに基づいてBを更新するクラス
分かりやすい。
これがオブジェクト指向ってやつか・・・。
2018/05/12(土)10:01:27.82(RvuVG0qm0.net)
252デフォルトの名無しさん [sage]
Bを処理するDも必要に迫られてCに入れざるを得なくなってたんですね。
入門書にあったサンプルプログラムはコード数が少なかったから、
BをCに入れてるものが結構あったので無意識にこんなもんだと思ってました。
こういうのって本では学びづらいですね。
勉強になりました。
ありがとうございます。
2018/05/12(土)10:07:34.76(RvuVG0qm0.net)
253デフォルトの名無しさん [sage]
それはOOPではなくMVCな。一応。
2018/05/12(土)11:04:14.67(PbE4ojLD0.net)
254デフォルトの名無しさん [sage]
2018/05/12(土)11:05:17.79(vhGL8v7ea.net)
255デフォルトの名無しさん [sage]
やはり自分のコードは人と共有できるレベルではなかったですね。
MVCの設計で修正してみます。
手続き型言語しかやってないので、
手続きで処理していって
「なんども同じ手続き出てくるな。」
と思ったらクラスにして分離する思考になってたんですけど、
それじゃだめですね。
こういうのが学べるいい本があったらいいなぁ。
2018/05/12(土)11:23:13.92(RvuVG0qm0.net)
256デフォルトの名無しさん [sage]
パブリックにして、どこからでも読み書きできるようにしていいんでしょうか?
バグの温床になるからダメ?
2018/05/12(土)11:32:37.31(RvuVG0qm0.net)
257デフォルトの名無しさん [sage]
これだとどこからでもすべてのデータにアクセスできるから便利だし可読性もいいけど、
どこかでうかつにdataHolderの変数に変な値を入れると、
どこがバグになっているのか全コード読まなければいけないですね。
うーん・・・。
世の中そんなもんなのか?
2018/05/12(土)11:36:18.82(RvuVG0qm0.net)
258デフォルトの名無しさん [sage]
お好きに
結局は書きやすさと安全性のトレードオフ
ガッチガチに書くならgetterだけのImmutableオブジェクトを表すインターフェイスとそれを実装する具体クラスに分離してViewにはインターフェイスだけ教えるとか(あまりやらない)
作る人数とか規模によってどの程度強制するか変わってくるから程よくやるのが重要, 一貫性は重要だが徹底しすぎるとしんどい
2018/05/12(土)11:43:38.40(vhGL8v7ea.net)
259デフォルトの名無しさん [sage]
immutableなんてものがあるんですね。
ごく一部の変数以外はimmutableで事足りるから、immutable設定にします。
publicでdataHolderクラス作ってメンバ変数はすべてimmutableにすれば、
可読性、コーディングの利便性、安全性
全部満たせますね。
なんて便利なんだ…。( ゚д゚)
2018/05/12(土)11:57:15.21(RvuVG0qm0.net)
260デフォルトの名無しさん [sage]
残念ながらC#では上手くImmutableに出来ない(出来るかもしれないが最近やってないので詳しい人教えて)
TypeScriptとかなら既存の型にReadonlyを再帰的に付けた型が簡単に作れるんだけどなぁ
2018/05/12(土)12:02:17.65(vhGL8v7ea.net)
261デフォルトの名無しさん [sage]
ってか、VとCを分ける様な事するからUIが使い辛い物になるんだよな。
2018/05/12(土)12:04:38.53(F4kLnVK3p.net)
262デフォルトの名無しさん [sage]
2018/05/12(土)12:06:20.36(vhGL8v7ea.net)
263デフォルトの名無しさん [sage]
2018/05/12(土)12:12:09.32(F4kLnVK3p.net)
264デフォルトの名無しさん [sage]
interface で表現出来るのは readonly
2018/05/12(土)12:25:35.08(CthSiE230.net)
265デフォルトの名無しさん [sage]
bool resultOfGetTimeLimit = int.TryParse(this.timeLimit.Text, out constant.timeLimit);
みたいに定数をフォームから取得できればありがたいんだけどなぁ。
そういう需要ってあんまりないんだろうか。
2018/05/12(土)12:57:15.57(RvuVG0qm0.net)
266デフォルトの名無しさん [sage]
何いってるのかわかりません
2018/05/12(土)14:45:46.09(UZR1Ryt2a.net)
267デフォルトの名無しさん [sage]
2018/05/12(土)14:55:22.20(5EDA9IkjM.net)
268デフォルトの名無しさん [sage]
2018/05/12(土)14:55:53.42(5EDA9IkjM.net)
269デフォルトの名無しさん [sage]
初めから作り直すほうが早いかも・・・。
2018/05/12(土)17:01:44.57(RvuVG0qm0.net)
270デフォルトの名無しさん [sage]
MVCは基本的にWebだかんね…
2018/05/12(土)17:16:54.39(15xgRckc0.net)
271デフォルトの名無しさん [sage]
2018/05/12(土)17:19:31.54(VhwAlNWxd.net)
272デフォルトの名無しさん [sage]
先ず、何でもいいから動くものを作る。プログラムスタイルはそれからいろんなな本で学べばいい。
2018/05/12(土)17:32:27.30(XEHHkDisM.net)
273デフォルトの名無しさん [sage]
2018/05/12(土)17:33:18.63(oxtjRRByM.net)
274デフォルトの名無しさん [sage]
とりあえずゲーム本体は完成したんですが、一部改変しようとしたらかなりの機能がすべてゲーム画面フォームにくっついてるので読みづらいことこの上ないなと。
データ部分を別構造にしたかったんですが、ほぼ句見直しに近い改変であたまがわやになってます。
2018/05/12(土)18:06:22.88(RvuVG0qm0.net)
275デフォルトの名無しさん [sage]
とりあえず力業で進めることは可能なんですけど気持ち悪い。
2018/05/12(土)18:11:39.59(RvuVG0qm0.net)
276デフォルトの名無しさん [sage]
で、でたーオブジェクト指向不出来form.cs全部書込奴w
2018/05/12(土)18:12:38.37(5EDA9IkjM.net)
277デフォルトの名無しさん [sage]
設計どうのこうのなんて、動くコード書ける様になってから理解すれば良い。
何なら作った後で反省的を挙げながらここはこう言う構造の方が良かったんじゃね?
なんてやるのが一番設計の知識ぐ身につく。
2018/05/12(土)18:16:14.33(XIsYMxrj0.net)
278デフォルトの名無しさん [sage]
汚いプログラム書いて平気なプロもいるからね。
後はいろんなサンプルプログラムを検索して読んだらいい。あっ、これがいいとか気付きがあると思う。
2018/05/12(土)18:23:40.04(XEHHkDisM.net)
279デフォルトの名無しさん [sage]
人のプログラム読めない奴は進歩ないから。
2018/05/12(土)18:26:39.51(XEHHkDisM.net)
280デフォルトの名無しさん [sage]
B DataHolder
C ゲーム
D スコア記録
CからBのインスタンスを生成
DataHolder dataHolder1=new DataHolder();
すればCのpublic変数aにアクセスするときはdataHolder.a=hoge;とかでいいけど、
DからBのdataHolder1の変数aにアクセスってできるんですか?
CからDにdataHolder1の参照を渡すってこと??
2018/05/12(土)18:31:48.49(RvuVG0qm0.net)
281デフォルトの名無しさん [sage]
2018/05/12(土)18:33:40.32(RvuVG0qm0.net)
282デフォルトの名無しさん [sage]
2018/05/12(土)18:34:30.46(RvuVG0qm0.net)
283デフォルトの名無しさん [sage]
そもそもこれが分かってなかったから一つのフォーム画面にいろいろ機能を盛り込みすぎたんだと。
2018/05/12(土)18:35:15.53(RvuVG0qm0.net)
284デフォルトの名無しさん [sage]
間違いました。
あれ、根本的なことが分かってないことが分かりました。
B DataHolder
C ゲーム
D スコア記録
CからBのインスタンスを生成
DataHolder dataHolder1=new DataHolder();
すればCのpublic変数aにアクセスするときはthis.a=dataHolder.a;とかでいいけど、
DからBのdataHolder1の変数aにアクセスってできるんですか?
CからDにdataHolder1の参照を渡すってこと??
2018/05/12(土)18:37:29.64(RvuVG0qm0.net)
285デフォルトの名無しさん [sage]
今の君に必要なのは鉛筆と紙だ
なんたらチャートのお作法なんぞ知らんでいいから、まずは機能を書き出して丸で囲め
それからどの機能が何処から必要になるかを線引っ張って繋げ
めちゃくちゃ線がごちゃごちゃするだろう?
それをなるべく少ない線で済むように書き直すんだ何回でも
2018/05/12(土)20:01:02.99(9rdAnFG4a.net)
286デフォルトの名無しさん [sage]
2018/05/12(土)23:33:51.06(RvuVG0qm0.net)
287デフォルトの名無しさん [sage]
BCフォームからも使用できるようするにはどうすればいいのでしょう。
Bだけで使用するならB内でAのインスタンス生成→ShowでAフォームを表示させればいいと思うのですが、
Cフォームでも使用するとなると、Cフォームで新たにAのインスタンスを生成するわけにもいかないですよね。
2018/05/12(土)23:36:15.36(RvuVG0qm0.net)
288デフォルトの名無しさん [sage]
2018/05/12(土)23:44:08.44(7v9y2RSd0.net)
289デフォルトの名無しさん [sage]
すいません。
ググってもよくわからなかったので質問したのですが安易に人に頼りすぎてましたね。
昨夜からわからないところを実際にコードで打ち込んでみて実験重ねて理解できました。
インスタンスの参照渡すって言っても
フィールド渡し
プロパティ渡し
メソッド渡し
と色々方法あるんですね。インスタンスの参照を渡す方法が分かってなかったから一つのクラスに一杯盛り込むことになってたんだと理解できました。
2018/05/13(日)11:04:57.10(ySggkKZM0.net)
290デフォルトの名無しさん [sage]
どこからC#でどこまでCの質問か分からずこちらで何でも聞いていました。
次から初心者板に移動してみます。
でも、みなさんのおかげでだいぶいろいろなことを学べました。
ありがとうございます。
2018/05/13(日)11:06:37.40(ySggkKZM0.net)
291デフォルトの名無しさん [sage]
2018/05/13(日)13:59:35.41(23x2pXKw0.net)
292デフォルトの名無しさん [sage]
2018/05/13(日)14:41:31.02(ySggkKZM0.net)
293デフォルトの名無しさん
型が重複する場合の仕様について質問です
class Dic<T> : System.Collections.Generic.Dictionary<int,T>
{
public bool Contains(int key)
{
return base.ContainsKey(key);
}
public bool Contains(T val)
{
return base.ContainsValue(val);
}
}
ちょっと必要にせまられて、こんな雰囲気のクラスを作りました
基本的に、重複する型では利用しない予定ですが
気になってテストコードを作ってデバッグしたところ何の警告も出なく実行できて
「base.ContainsKey(key);」の結果が返ってきました
これは言語仕様でしょうか?
それともVisualStudioや.Net Framework仕様でしょうか?
どなたか詳しい方、おしえてください
※ 環境は Visual Studio 2017 Community Framework 4.6.1
2018/05/22(火)22:37:35.74(gaTn3ZGLJ)
294デフォルトの名無しさん
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
094C5
2018/05/23(水)19:32:08.48(Au5e7VGg0.net)
295デフォルトの名無しさん [sage]
余計わからん構造になる可能性があるからね
2018/05/25(金)17:55:34.06(kaJ5fQAg0.net)
296デフォルトの名無しさん [sage]
問題が適切に表現される様に自ずとにわかれるのだ
それが本質的にわかりにくい問題であるならば
わかれた結果わかりにくいのは当然の帰結である
己の能力をわかるまで高めるしかあるまい
わかめ
2018/05/25(金)23:51:50.59(q1degsPf0.net)
297デフォルトの名無しさん [sage]
2018/05/26(土)08:31:56.50(Mb7u4pS+0.net)
298デフォルトの名無しさん [sage]
2018/05/26(土)10:29:20.38(Qkk0DhfZM.net)
299デフォルトの名無しさん [sage]
2018/05/26(土)16:16:32.23(nVIiMXOl0.net)
300デフォルトの名無しさん
そもそもGameManagerクラスみたいなゲームを管理するクラス作ってないのが不思議
ゲーム管理クラス通して設定画面開いたり設定値を取得すればいいのに
2018/05/28(月)11:28:40.07(vRphuiRoH.net)
301デフォルトの名無しさん [sage]
2018/05/28(月)18:36:44.90(rzi0Cqlc0.net)
302デフォルトの名無しさん [sage]
ドットインストールやプロゲートの様な既にある動画を有料で見るのではなく、
欲を言えば1対1で即座に質問できる方式が良いのですが探してみたところ見つけられず、
初心者〜中級者を対象にした評判の良い講習会の様なものがあれば教えて頂けないでしょうか
東京都の渋谷区に住んでいます
2018/05/29(火)12:36:07.71(0Vp36Os40.net)
303デフォルトの名無しさん [sage]
マンツーマンで一時間5千円〜1万はらって12〜36時間でC#を勉強するくらいなら
入門書を3冊ぐらい買って1週間で何度も読めばいいのに
2018/05/29(火)13:37:15.19(dUPfr/v4M.net)
304デフォルトの名無しさん [sage]
2018/05/29(火)13:45:33.86(iBcg+dk20.net)
305デフォルトの名無しさん [sage]
2018/05/29(火)13:47:56.92(dUPfr/v4M.net)
306デフォルトの名無しさん [sage]
2018/05/29(火)17:24:32.50(0Rufp4wm0.net)
307デフォルトの名無しさん [sage]
2018/05/29(火)18:15:54.45(5CF0lkGw0.net)
308デフォルトの名無しさん [sage]
金と時間の無駄って意見に俺も一票。
学校の勉強でもそうだけど、だいたい独習の方が効率が高いよ。
分からないところを質問できる人がいるとはかどるのは確かだと思うけど、
そんなの今はネットで代替できるし(しかもタダ)
子供の習い事みたいにモティベーション不足を金で補うっていうのはありかもしれないけど。
2018/05/29(火)18:33:40.52(/62QaXdPa.net)
309デフォルトの名無しさん [sage]
2018/05/29(火)18:38:51.88(5CF0lkGw0.net)
310デフォルトの名無しさん [sage]
まあ講習受けて出来るようになるかったら確率低いが
2018/05/29(火)18:39:33.21(iBcg+dk20.net)
311デフォルトの名無しさん [sage]
そんな人はプログラムを触ることはないので問題なし
2018/05/29(火)18:51:29.09(b3SRNDoC0.net)
312デフォルトの名無しさん [sage]
マンツーマンでみっちり教えてくれてしかも金ももらえるぞ
2018/05/29(火)19:02:37.30(bwgc0PeYa.net)
313デフォルトの名無しさん [sage]
2018/05/29(火)21:20:40.23(Zh8oS8xcM.net)
314デフォルトの名無しさん [sage]
教えてくれる人がいてもできない気がする
2018/05/29(火)21:22:39.57(tOEtldFh0.net)
315デフォルトの名無しさん
とにかくプログラムを書くこと、実務を重ねるとその不安は経験値でだんだん消えていく
とにかく経験を積むしかない
2018/05/29(火)21:30:02.17(+v4yesMaa.net)
316デフォルトの名無しさん [sage]
2018/05/29(火)21:34:05.00(T0OOxyUA0.net)
317デフォルトの名無しさん [sage]
だが人付き合いはめんどくせーw
2018/05/30(水)01:10:37.65(eBpQDrsU0.net)
318デフォルトの名無しさん [sage]
2018/05/30(水)01:15:01.88(9LsQ0F9t0.net)
319デフォルトの名無しさん [sage]
意識高い系ですかって
メンターは技術面より精神的な面のよりどころだな
わけわからんけどこの人は正しい導いてくれるって人って思いこむ相手
c#入門にメンターがいる必要はないね
中級以上ならまだしも
入門者には導師より同志が必要かな
2018/05/30(水)11:53:56.18(8D7UWmqma.net)
320デフォルトの名無しさん [sage]
グルなら知ってる
jai guru deva om
2018/05/30(水)12:12:53.49(qVo0G4AWa.net)
321デフォルトの名無しさん [sage]
とりあえず中途半端な改行やめたら?
2018/05/30(水)12:16:35.68(4fnC318RM.net)
322デフォルトの名無しさん [sage]
そりゃ昔はあまり使わなかったが今の20代なら大学で大方耳にしたことあるんじゃない?
2018/05/30(水)12:53:27.56(2+ZWaFznd.net)
323デフォルトの名無しさん [sage]
2018/05/30(水)13:06:00.57(tkaPgK/fa.net)
324デフォルトの名無しさん [sage]
2018/05/30(水)14:44:19.09(zGXcDYuB0.net)
325デフォルトの名無しさん [sage]
2018/05/30(水)15:57:46.68(OvgslO8CM.net)
326デフォルトの名無しさん [sage]
2018/05/30(水)17:39:32.49(zRdb0GuK0.net)
327デフォルトの名無しさん [sage]
関数に引数渡しておくことはできますか?
使うときは引数関係なく実行するだけにしたい
delicateじゃなくてもそういう方法があれば教えてほしいです
2018/05/31(木)18:07:05.50(ZDpw5PAMd.net)
328デフォルトの名無しさん [sage]
2018/05/31(木)18:49:53.75(YepGdlhS0.net)
329デフォルトの名無しさん [sage]
たとえばこれを、
Action<string> a = Console.Write;
こうするだけと違うの?
Action a = () => Console.Write("Hage");
2018/05/31(木)19:21:37.82(mNqG/VKAa.net)
330デフォルトの名無しさん
2018/05/31(木)20:29:05.32(XpaqSCj3a.net)
331デフォルトの名無しさん [sage]
2018/05/31(木)21:18:37.12(ZDpw5PAMd.net)
332デフォルトの名無しさん [sage]
2018/06/01(金)00:56:14.18(v9HhHj/a0.net)
333デフォルトの名無しさん [sage]
2018/06/01(金)01:50:30.82(Kjs/aFNB0.net)
334デフォルトの名無しさん
2018/06/02(土)01:19:12.37(te+Rl8LG0.net)
335デフォルトの名無しさん [sage]
2018/06/02(土)14:30:29.50(sz40x79U0.net)
336デフォルトの名無しさん [sage]
2018/06/05(火)14:10:31.00(kDP+/j8RM.net)
337デフォルトの名無しさん
関数ポインタ
2018/06/05(火)23:17:30.29(vNq9k7GF0.net)
338デフォルトの名無しさん [sage]
2018/06/06(水)11:05:26.21(kgKhbEIB0.net)
339デフォルトの名無しさん [sage]
2018/06/06(水)11:13:20.04(Glbjy1Oa0.net)
340デフォルトの名無しさん [sage]
「〜とは何か」って哲学論争はたぶん時間の無駄w
実際の使われ方を見て何に使えるかを理解するのがいいよ
禅問答みたいに聞こえるかもしれんが、デリゲートのメリットは
デリゲート型の変数を作れること。
デリゲートの使えない従来の言語は、コードの中にdoubleのリテラルしか書けず
doubleの変数が作れないようなものだった
2018/06/06(水)13:00:14.82(/mNmPD5La.net)
341デフォルトの名無しさん [sage]
2018/06/06(水)22:58:53.30(x4kBoo940.net)
342デフォルトの名無しさん [sage]
デリゲート型にすると何かいいことあるのか?
デリゲート型にすると何がいいんだ??????何が使えるんだ?????
2018/06/07(木)21:28:18.26(HziEaPXa0.net)
343デフォルトの名無しさん [sage]
2018/06/07(木)21:34:22.85(9x16GWRr0.net)
344デフォルトの名無しさん
って思ったら調べて使えばいいよ
使わんと頭入らないし
2018/06/07(木)21:34:36.55(uqa5AZHUa.net)
345デフォルトの名無しさん [sage]
青空球児・好児かよ。
2018/06/07(木)21:41:39.12(muNvrUxm0.net)
346デフォルトの名無しさん [sage]
2018/06/07(木)23:38:02.20(p05PC41Ra.net)
347デフォルトの名無しさん [sage]
2018/06/07(木)23:51:09.11(HziEaPXa0.net)
348デフォルトの名無しさん [sage]
文字を格納する変数は string 型
メソッドを格納する変数が デリゲート型
2018/06/08(金)00:56:57.47(057UgUqy0.net)
349デフォルトの名無しさん [sage]
メソッドを
格納する
必要が
あるんだよ
!
2018/06/08(金)01:01:01.34(7BdVtDm70.net)
350デフォルトの名無しさん [sage]
入るのはメソッド自身ではなくその参照だけどね
2018/06/08(金)01:20:20.47(vel+6yPba.net)
351デフォルトの名無しさん [sage]
2018/06/08(金)07:41:09.77(V2PqzfzLd.net)
352デフォルトの名無しさん [sage]
2018/06/08(金)07:54:30.62(VEbWNRWu0.net)
353デフォルトの名無しさん
2018/06/08(金)07:59:48.51(FRxZCKgGa.net)
354デフォルトの名無しさん [sage]
君も大人になったらわかるよ。
ママ、なんでボクはおチンチン付いてるの?
この疑問、時間が解決したろう。
2018/06/08(金)08:15:18.51(H4l6t16fM.net)
355デフォルトの名無しさん [sage]
今までの処理は極力変えたくない
引数にAction渡して関数はそれを実行
引数のActionはデフォルトにnullをいれておく
nullだったら処理しないようにすれば呼び出し元は必ずしも変更する必要がなくなる
なんでこうするかってテストするのがめんどいからとか色々
2018/06/08(金)08:30:05.85(V2PqzfzLd.net)
356デフォルトの名無しさん [sage]
2018/06/08(金)10:53:38.20(p6dJfT33M.net)
357デフォルトの名無しさん [sage]
例えば繰り返し処理
forなくても書けるだろ。だからforなんて要らないって言ってるようなもん
なくてもプログラミングできるが、あれば楽できる
2018/06/08(金)11:07:03.52(jzbZ53uGa.net)
358デフォルトの名無しさん [sage]
>>356-357は-π/2〜π/2の範囲の実数の数だけ、それに対応する
sinの値を返すメソッドを用意すれば汎用的なsin関数なんかなくて済むと言ってるのと同じ。
だから、どうしてdoubleの変数が必要なのかと。
っていうかこの質問者、本当は分かってて質問してる変な奴だろうね8割方w
たぶん2chの他の板によくいる、サヨクを演じて自作自演やってる頭のおかしいネトウヨと似たようなメンタルの持主なんだろうと想像
2018/06/08(金)11:49:27.44(SrLrQXUUa.net)
359デフォルトの名無しさん [sage]
voidだったら"その結果"ってどう受けとる?
2018/06/08(金)13:02:11.32(V2PqzfzLd.net)
360デフォルトの名無しさん [sage]
2018/06/08(金)13:04:11.27(7BdVtDm70.net)
361デフォルトの名無しさん [sage]
2018/06/08(金)13:14:18.16(0qxXZgjd0.net)
362デフォルトの名無しさん [sage]
2018/06/08(金)19:39:57.11(tyJ42miy0.net)
363デフォルトの名無しさん [sage]
2018/06/08(金)19:42:51.67(sQqhvtlW0.net)
364デフォルトの名無しさん [sage]
2018/06/08(金)20:48:10.00(7BdVtDm70.net)
365デフォルトの名無しさん
2018/06/08(金)20:53:34.63(KYYD9BLCa.net)
366デフォルトの名無しさん
従来大きな役割だったんじゃない?
でも今Taskクラスできたから必要なくなった
2018/06/08(金)21:00:06.62(E4qbFGXm0.net)
367デフォルトの名無しさん [sage]
2018/06/08(金)21:19:27.49(txACZHnFp.net)
368デフォルトの名無しさん [sage]
メソッドを他に渡しておいて適宜実行してもらうから委譲ともいえるけどそれは機能の一面しか表してない
MVPの人も過去にデリゲートいらねえって言ってたけど理解力が足りてない
c#は結構いろんなものがオブジェクトだけどメソッドはオブジェクトじゃない
デリゲートを使えばメソッドをオブジェクト(変数)みたいな感じで扱える
普通の変数とは違って+=で複数のデリゲートをいれることができるのが特徴的
コールバックとして使えるしeventはデリゲートをもとに作られてるので基本的な使用範囲は広い
2018/06/09(土)12:11:29.33(VOfp/P7BM.net)
369デフォルトの名無しさん [sage]
真面目な話、そういう衒学趣味の文系学生みたいな
文章が一番人を混乱させる。
「c#は結構いろんなものがオブジェクトだけどメソッドはオブジェクトじゃない 」って何やねんw
関数ポインタが分かればデリゲートがどんなものかはその類推でだいたいイメージできる。
機械語をやった経験があれば、関数ポインタなんか、なんだこんなのただのcall命令の
アドレッシングモードのことかってすぐわかる
でも重要なのは、「デリゲートとは何か」なんか分からなくてもデリゲートは使えるってこと。
「何か」なんか理解しなくていい。それを使って何が出来るかだけ理解すればいい。
2018/06/09(土)12:44:45.38(DBY1R4Jva.net)
370デフォルトの名無しさん [sage]
2018/06/09(土)12:58:26.33(54mp5fzVM.net)
371デフォルトの名無しさん [sage]
2018/06/09(土)13:02:40.19(Cz/ni8by0.net)
372デフォルトの名無しさん [sage]
2018/06/09(土)13:05:05.70(oQlrsJoz0.net)
373デフォルトの名無しさん [sage]
2018/06/09(土)13:31:49.04(kvLDmgw/0.net)
374デフォルトの名無しさん [sage]
他の言語ではメソッドもオブジェクトとして扱えるものもある
c#はメソッドはオブジェクトじゃない
その類推が間違ってるからダメなんだけどなあ…
デリゲートは関数ポインタじゃない
callでもアドレッシングとも全然無関係だわ
機能的には似たようなものに見えるけど全然別物だ
2018/06/09(土)13:40:09.88(VOfp/P7BM.net)
375デフォルトの名無しさん [sage]
文系学生もプログラミングする時代になったって事だよ。
> 「何か」なんか理解しなくていい。それを使って何が出来るかだけ理解すればいい。
これな。最近の「○○って何ですか」っていう奴らは何なんだ?
お前らだって、日本語の全ての漢字を読めるわけでもないだろうに。
「デリゲート」は失敗作だから新言語を作る気がないのなら理解する必要はない。
あれはthis+関数ポインタで、一番近いのはC++の「メンバ関数ポインタ」だが、
無駄に「クラス」「関数ポインタ」「ラムダ」を抽象化しようとしておかしくなってる。
結局ラムダを導入してしまったし、当初の方針は間違いだと認められたことになる。
今後「デリゲート」を採用する言語はないだろうよ。
2018/06/09(土)13:51:37.94(MhKfyDgC0.net)
376デフォルトの名無しさん [sage]
2018/06/09(土)13:57:35.17(1jan2CXL0.net)
377デフォルトの名無しさん [sage]
誤解したままで最後までつづけるんか?
2018/06/09(土)13:59:17.43(VOfp/P7BM.net)
378デフォルトの名無しさん [sage]
c#にデリゲートが無かったらjavaの様に専用のインターフェイスを継承した無駄なクラスを作らなければならなかった
ActionやFuncやラムダがあればデリゲートが必要なかったと言ってるのは何かを誤解してる
2018/06/09(土)14:07:54.32(VOfp/P7BM.net)
379デフォルトの名無しさん [sage]
理解してなくても使えれば問題ないんだよ。
お前だってPCの起動方法(BIOSとか)知らなくてもPC使ってるだろ。
MSIL読めなくてもC#使えるだろ。
CPUの例外/割り込み機構を知らなくてもtry/catch使えるだろ。
一般プログラマにとってはプログラミング言語は道具であって、それ以上でも以下でもない。
新言語を作りたいのなら学術的に正確に理解することが必要だが、普通の人はそうではない。
それ以前にC#が死ぬ可能性を考えた方がいい。
C#専用の「デリゲート」の理解はつぶしが利かない。
他言語にもある「ラムダ」の理解のほうが重要だ。
デリゲートは「クラス」と「関数ポインタ+バインド」で対応した方が良かったと思う。
C#には未だに「バインド」がない=デリゲートでの対応になるが、
実際、後付でバインドすることが出来ないだけ不便だろ。
>>378
Javaみたいなそもそも「関数ポインタ」がなかった糞言語と比較したら駄目だよ。
Cには関数ポインタはあった。
C#はそれを「デリゲート」として拡張した。
他言語は「第一級オブジェクト」として拡張した。
今のところ、後者の方が正解っぽいだろ。
(俺自身にはイマイチ「第一級オブジェクト」である利点/必然性は見えないのだが)
2018/06/09(土)14:19:40.58(MhKfyDgC0.net)
380デフォルトの名無しさん [sage]
A.B().ToString()のToStringが
B()というメソッド自体に係ってるのか
B()の返した戻り値にかかってるのかがよくわからないことになる
2018/06/09(土)14:24:48.97(VOfp/P7BM.net)
381デフォルトの名無しさん [sage]
2018/06/09(土)14:25:53.62(54mp5fzVM.net)
382デフォルトの名無しさん [sage]
こんな計算式があったときに1+2をしてから3かけて答えは9
こうはならないだろ。それは優先順位を定めてるから。(1+2)*3のようにかけば期待通りになる
それと同じで関数がオブジェクトでメンバー持ててもそれに合わせた処理の優先順位を定めればいいだけ
2018/06/09(土)14:30:26.04(AO7Grx3Qa.net)
383デフォルトの名無しさん [sage]
理解してない場合は理解していない前提で行動できる
一方の誤解してる場合は悲惨だ
2018/06/09(土)14:32:21.62(VOfp/P7BM.net)
384デフォルトの名無しさん [sage]
お前は右結合と左結合を勉強しろ
2018/06/09(土)14:33:21.85(MhKfyDgC0.net)
385デフォルトの名無しさん [sage]
じゃあどういう風に記述したらオブジェクトである関数のプロパティやメソッドにアクセスできるかここに書いてもらいたいが
2018/06/09(土)14:35:46.47(VOfp/P7BM.net)
386デフォルトの名無しさん [sage]
お前は日本語を勉強しろ。
俺達は「理解しなくていい」=「完全に理解してはいないという自覚の元で使え」と言っているのであって、
それは「誤解」には繋がらない。
「誤解」ってのは、「理解してない馬鹿が理解しているつもりになっている」事を言う。
例えば、右結合と左結合を知らないお前みたいな馬鹿のことだ。
2018/06/09(土)14:36:40.18(MhKfyDgC0.net)
387デフォルトの名無しさん [sage]
意味不明。何を書いて欲しいのか分からん。
> A.B().ToString()
これはAのメソッドB()を呼んでその戻り値に対してToString()を呼ぶ。
少なくともJavaScriptではそう。
で、何をしたい場合の記述が欲しいんだ?
2018/06/09(土)14:39:35.51(MhKfyDgC0.net)
388デフォルトの名無しさん [sage]
思い違いをしていた
A.B().ToString()とA.B.ToString()で区別できる
クラスにフィールドとメソッドを同名にできないから区別できる
右結合と左結合は関係なかったけど
2018/06/09(土)14:48:14.18(VOfp/P7BM.net)
389デフォルトの名無しさん [sage]
エスパーすると、言いたいことは分かった。
お前は「第一級オブジェクト」も理解しておらず、「誤解」している。ちゃんと勉強しろ。
「第一級オブジェクト」ってのは、通常のオブジェクトと関数オブジェクトを区別しない。
だから書式は当然同じだし、正しく理解していればこの点が疑問になりようもない。
>>388
なら日本語を勉強しろ
> B()というメソッド自体に係ってるのか
これで何を表現しようとしたか言ってみろ。それは
> A.B.ToString()
ではないだろ。
2018/06/09(土)14:54:44.86(MhKfyDgC0.net)
390デフォルトの名無しさん [sage]
誤解は悲惨
delegateを削除しろと言って削除してみたらActionもFuncも使えませんでした
eventも使えませんでした
もちろん言語レベルで変数としてのデリゲートの代わりになるものもありません
>>389
> > A.B.ToString()
> ではないだろ。
いやいやそこはそのままであってるし普通にそう理解できないのか?
A.B.ToString()が正解
逆にどう勘違いしたのか聞きたい
2018/06/09(土)15:04:32.47(VOfp/P7BM.net)
391デフォルトの名無しさん [sage]
何にも理解してない
2018/06/09(土)15:06:54.66(VOfp/P7BM.net)
392デフォルトの名無しさん [sage]
プロパティに引数渡してぇ
2018/06/09(土)15:06:56.64(AO7Grx3Qa.net)
393デフォルトの名無しさん [sage]
っVB.net
2018/06/09(土)15:07:41.71(VOfp/P7BM.net)
394デフォルトの名無しさん [sage]
日本語で言うと、
> B()というメソッド自体に係ってるのか
と理解したって事だよ。
>>391
お前がな。
他言語にはdelegateなんて無いが、何も問題ないだろ。
あれ?って思えないのか?
(今すぐ廃止していいかどうかはまた別だが)
>>388
> クラスにフィールドとメソッドを同名にできないから区別できる
これは先見の明があったかもな。
関数を「第一級オブジェクト」に昇格させるのに文法的制約がない。
Javaに対しての利点にはなり、生き残る道かも。
2018/06/09(土)15:18:29.92(MhKfyDgC0.net)
395デフォルトの名無しさん [sage]
JavaScriptではオーバーライドすれば出来る。
フィールド/メソッドの区別がなく、名前だけだから。
C#的には派生クラスで「プロパティ」「を同名の「メソッド」でオーバーライドだが、
これが型チェック的に無理なのか?
しかし名前の重複を許していないのだから、今後の拡張は可能のはずだが。
JavaScriptのデタラメ文法はどうかという奴もいるが、慣れてしまうと、
型あり言語の「型が違うだけ」で色々制約されるのも相当な糞だと気づけるぞ。
型検査はエラーではなく警告に留めるべきで、
プログラマがOKすれば型が不一致でも通してくれた方がマジで楽。
一番近いのはCってことになってしまうが。
2018/06/09(土)15:25:50.19(MhKfyDgC0.net)
396デフォルトの名無しさん [sage]
2018/06/09(土)15:29:15.96(a58WBe6r0.net)
397デフォルトの名無しさん [sage]
2018/06/09(土)15:29:59.09(a58WBe6r0.net)
398デフォルトの名無しさん [sage]
2018/06/09(土)16:02:02.79(kvLDmgw/0.net)
399デフォルトの名無しさん [sage]
そんな話は「ではオブジェクトって何?」って不毛な議論になるだけでしょw
初心者がデリゲートを理解して使えるようになるための屁の役にも立たないよw
>>398
素直に考えればデリゲート自身にマルチキャストの機能を持たせるんじゃなく、
シングルキャストのデリゲートのリストとして実装する方法もあったはず
なんか理由があって「こういう」風になってるんだろうが俺には積極的理由はよくわからんね。
ジェネリックをデリゲートで制約できないことと関係があるのかもしれないが
なまじマルチキャストなんて機能があるせいで何だかわかりづらくなってる面は否定できないと思う
2018/06/09(土)16:54:07.78(DBY1R4Jva.net)
400デフォルトの名無しさん [sage]
GUIに関してはdelegateの導入は不要だったで決着してる。
GUIにはOOPよりMVCの方が数段マシで、WPFもそうなってるだろ。
onclickにthisがバインドされている意味がそもそも無いんだよ。
決着が付いてないのはデータフロープログラミングをするときだ。
JavaScriptではObject.observeの導入が計画され、一部フィーバーしていたが、ポシャった。
https://www.html5rocks.com/ja/tutorials/es7/observe/
以下によると、非同期なのが使えなかったらしい。
http://tech.nitoyon.com/ja/blog/2015/11/18/death-of-oo/
JavaScriptの非同期は最早宗教だが、
はっきり言って無駄に非同期すぎて、余計にやりにくくなっているケースもある。これもそう。
C#は独自eventを実装出来るし、そのためにdelegateが用意されているから、
「データフロープログラミング」を文法的にサポートしているとは言える。
ただ、それ以前に、「データフロープログラミング」が主流ではないが。
お前らも実際、やってないだろ。
関数型の次に来るって事もなさそうだし。
とはいえ、上記の通り、今のJavaScriptではデータフロープログラミングは面倒だし、
getter/setterを頑なに拒むC++ではものすごくウザくなって事実上無理だ。
次の波が来ればevent/delegateも再評価されるかもしれん。
2018/06/09(土)17:08:52.90(MhKfyDgC0.net)
401デフォルトの名無しさん [sage]
2018/06/09(土)17:12:21.10(MhKfyDgC0.net)
402デフォルトの名無しさん [sage]
もとの発端はなんだったんだこれ
2018/06/09(土)17:15:16.30(bMpGWGQ30.net)
403デフォルトの名無しさん [sage]
2018/06/09(土)17:28:51.92(AO7Grx3Qa.net)
404デフォルトの名無しさん [sage]
2018/06/09(土)17:32:16.71(1jan2CXL0.net)
405デフォルトの名無しさん [sage]
他の実装ではdelegate使ってないけど今の.netではデリゲートで実装されている
2018/06/09(土)17:43:13.42(VOfp/P7BM.net)
406デフォルトの名無しさん [sage]
これ無くして生きてけない!
チームの誰も読めないから放置されて我が道を歩んでいる。
生産性と品質が高いから客には好評です。
2018/06/09(土)18:48:11.73(0oARoVrcM.net)
407デフォルトの名無しさん [sage]
チームの誰もが読めないという事は保守性に欠けると言う事ですね
2018/06/09(土)20:25:40.95(7jH+OfQ/0.net)
408デフォルトの名無しさん [sage]
でも、Linqバリバリ使ったらそうなるよね。
みんなの勉強しろよってこと。
2018/06/09(土)20:33:41.95(0oARoVrcM.net)
409デフォルトの名無しさん [sage]
2018/06/09(土)20:39:16.25(h8CnrujR0.net)
410デフォルトの名無しさん [sage]
おれ掛け算わからんからおれに合わせて全部足し算で実装して
おれはいまお前の案件に関わってないけど将来そのライブラリメンテするかもしれんからヨロシクな
とか言う同僚がいたらこいち頭おかしいのかなって思うじゃん
いやいや掛け算を勉強してからっていうか最低限の単位を取ってからメンテしろよってなるじゃん普通
これがLinqやλやデザインパターンになると当たり前のように底辺至上主義がまかり通る不思議な業界
2018/06/09(土)20:43:00.38(54mp5fzVM.net)
411デフォルトの名無しさん [sage]
2018/06/09(土)20:47:26.87(kvLDmgw/0.net)
412デフォルトの名無しさん [sage]
2018/06/09(土)20:50:03.81(2splWvty0.net)
413デフォルトの名無しさん [sage]
Javaのstreamやpythonのリスト内包表記など
というかそもそも単なるiterator patternでしかないからC#が起源ってわけでもない
2018/06/09(土)20:52:58.46(54mp5fzVM.net)
414デフォルトの名無しさん [sage]
.NET2.0から順に教えろってことかよ・・・
2018/06/09(土)21:00:28.55(4y2IVpvw0.net)
415デフォルトの名無しさん [sage]
2018/06/09(土)21:03:28.98(MhKfyDgC0.net)
416デフォルトの名無しさん [sage]
クエリ形式の文法はSQLが起源かもしれんが
実装はSQLとは全く関係がないよ
C#などの実装はまさしくiterator patternだけど
SQLの実装をiterator patternでやろうとしたら遅すぎる
2018/06/09(土)21:07:24.39(54mp5fzVM.net)
417デフォルトの名無しさん [sage]
簡潔に判りやすいラムダ書いてくれりゃいいが、わざとやってんじゃねってぐらい難読化する奴いるからな
正規表現、SQ、掲示板の長文も同じだな
2018/06/09(土)21:07:34.76(4W3gH+0Ua.net)
418デフォルトの名無しさん [sage]
昔も人によって生産性に差が出たが、最近だと理解出来るか出来ないか?ぐらいの圧倒的な格差だ。
理由出来ない人は辞めればいい。
生産性が飛躍的に上がってるので理解出来る奴だけで間に合うよ。
2018/06/09(土)21:12:52.02(0oARoVrcM.net)
419デフォルトの名無しさん
2018/06/09(土)21:17:22.22(ekScYlKMa.net)
420デフォルトの名無しさん [sage]
多少冗長でも他人が理解しやすい易しいコードを書くんじゃないの?
2018/06/09(土)21:23:52.36(7jH+OfQ/0.net)
421デフォルトの名無しさん [sage]
コメント書いときゃ何となくわかるべ
2018/06/09(土)21:25:54.76(2splWvty0.net)
422デフォルトの名無しさん [sage]
2018/06/09(土)21:26:49.03(v7FNkyrH0.net)
423デフォルトの名無しさん [sage]
2018/06/09(土)21:30:02.70(0oARoVrcM.net)
424デフォルトの名無しさん [sage]
いや、ゴミに失礼だな
2018/06/09(土)21:32:37.20(VrCE6n6GM.net)
425デフォルトの名無しさん [sage]
SQLは難しいから使うなって言うのか?
2018/06/09(土)21:33:12.66(0oARoVrcM.net)
426デフォルトの名無しさん [sage]
linqも初めて見たときはとっつきにくくてわかりづらかったけど使ってりゃ嫌でも覚えちゃうよ
つっても当然すべてを使いこなしてるわけじゃなくて自分に必要な範囲のみ理解してる程度
業界によってだいぶ差はありそうだけど
2018/06/09(土)21:35:27.62(ZDY9COOVd.net)
427デフォルトの名無しさん [sage]
保守性が損なわれればトータルコストも引き上がる
2018/06/09(土)21:35:56.65(7jH+OfQ/0.net)
428デフォルトの名無しさん [sage]
2018/06/09(土)21:36:22.73(0oARoVrcM.net)
429デフォルトの名無しさん [sage]
自分は他人のを読む場合でも特に困ったことないけどな〜。
2018/06/09(土)21:51:21.02(lCnNI9uz0.net)
430デフォルトの名無しさん [sage]
イテレータの起源なら、C++(1983)は最初から持ってた。
C++のOOPはSimula発で、そっちが持ってたかは知らん。
いずれにしても、Java発の技術は存在しないぞ。
C#はLinqと、多分asyncもか?頑張ってる方だと思うが。
(あとちょっと違うがIDEのインテリセンスもC#が初のはず)
2018/06/09(土)22:13:44.82(MhKfyDgC0.net)
431デフォルトの名無しさん [sage]
クソカスが引っ付くわ
2018/06/09(土)22:18:01.39(a58WBe6r0.net)
432デフォルトの名無しさん [sage]
2018/06/09(土)22:36:24.46(d5fCz/GJ0.net)
433デフォルトの名無しさん [sage]
> 自分に必要な範囲のみ理解してる程度
多分これくらいが適正で、これなら大して問題にならないんだよ。
問題は、意識高い系馬鹿の>>418
> 昔も人によって生産性に差が出たが、最近だと理解出来るか出来ないか?ぐらいの圧倒的な格差だ。
みたいな、おかしな奴がいることだよ。
Linq自体でそんなに格差が出来るはずもない。
仮に、Linq部分を関数呼び出しに変えたところで、本体のコード構造は全く変わらないだろ。
便利機能だが、その程度でしかないんだよ。
逆に言うと、制御構造の違いで勝負出来ない、
新文法が読めることしか威張れない馬鹿がそこに無駄に拘っている気がする。
2018/06/09(土)22:41:24.00(MhKfyDgC0.net)
434デフォルトの名無しさん [sage]
他と書き方を合わせておくのが大事なのはわかるけど…
2018/06/09(土)23:00:28.94(0BGOlb7W0.net)
435デフォルトの名無しさん [sage]
2018/06/09(土)23:10:59.82(1jan2CXL0.net)
436デフォルトの名無しさん [sage]
他と違うからって理由で直すのは良くないと思うな
本来関係ないはずのクラスの間に存在しないはずの関係性を作りこんでしまう
その結果、必要ない作業や、縛りを生み出して生産性を下げることになる
俺が経験したものだと
すでに書き終えたforeachをすべてforに統一
テスト済のDAO、DTOのsnake_caseを他レイヤに合わせてCamelCaseに統一
この2つが最高にバカバカしかった
2018/06/09(土)23:45:05.02(v7FNkyrH0.net)
437デフォルトの名無しさん [sage]
「publicメンバーはクラス間のコミュニケーション円滑化のために規約として形式化しましょう」ぐらいならまあ理解できるが
「Linqはやめてループにしてくれ」なんて内部実装の形式にまで踏み込んでくるなよな
クラススコープで違和感なければそれでいいだろ
2018/06/09(土)23:56:36.61(wFjp4I59M.net)
438デフォルトの名無しさん [sage]
俺はC#erではないが…。
単発のLinqも認めてもらえないのならご愁傷様。あれは普通に読める範囲だ。
見た目、Linq自体にはサブクエリ無しか?ならそんな酷いことにはならないはずだが、
例えばSQLでは再帰呼び出しが出来たりして、
マンデルブロだパズル解くだとか、おかしな事になってる。
https://www.sqlite.org/lang_with.html
Linqでどこまで出来るか知らんが、こんなん書かれたら殴りたくもなるだろ。
基本的には関数呼び出しにしてその先は隠蔽、
つまりLinq実装かFor/List/Sort実装かは上位からは見えない、ってことにすれば関係ないはずだ。
ただ、その場にベタで「何を選択しているか」が書かれている方が読みやすいことは多々あり、
Linqもその局面で使われているとは思うので、全面書き直しだと余計に読みにくくなるとも思うが。
2018/06/09(土)23:59:33.29(MhKfyDgC0.net)
439デフォルトの名無しさん [sage]
2018/06/10(日)00:07:12.73(wNo6w9bX0.net)
440デフォルトの名無しさん [sage]
どうでもいい議論だけど、一言。
カプセル化っていうのは「メソッドの中は可読性考えなくてよい」って意味じゃないよw
LINQ(というかクエリ式)嫌いの大半は批判してる人間がそもそも理解してないだけだと思うが一理はある。
それは使い方によっては複数の処理が有機的につながった、適切に分割統治されてない、
可読性の低いコードになるからだ
実際、筋の悪いプログラマが好む100行オーバーのメソッドに近い物になりうる
2018/06/10(日)00:11:20.35(FNJYuW1ra.net)
441デフォルトの名無しさん [sage]
どう読んだら「メソッドの中の可読性は考えなくていいよ」になるんだろ
外部の都合を内部実装にまで持ち込むな
クラス内での可読性が十分ならそれでいいだろ
って主張な
正しく動いて綺麗なコードを他のクラスの都合で書き直す
俺はこれある意味カプセル化破壊と言っていいと思う
もちろん本来の意味でのカプセル化とは違うのはわかってる
2018/06/10(日)00:20:43.11(kZ6+r7gZM.net)
442デフォルトの名無しさん [sage]
どう読んでもそうとしか読めません
自分で自分の書いてあることが理解できないのかw
「メソッドの中は可読性考えなくてよい」と言っているのでなければ
>>437の1行目と4行目はつながらない。
カプセル化を理解していてもメソッドの中の可読性、例えば
「Linqはやめてループにしてくれ」と言うことはあり得る。
なぜなら、カプセル化とは「メソッドの中の可読性は考えなくていいよ」という意味ではないからだ
2018/06/10(日)02:00:10.36(gGHljlXMa.net)
443デフォルトの名無しさん [sage]
2018/06/10(日)02:01:02.37(gGHljlXMa.net)
444デフォルトの名無しさん [sage]
7時まで待つ
2018/06/10(日)05:17:43.99(4PiVyKtW0.net)
445デフォルトの名無しさん [sage]
横からだけど、そう思えるのはお前さんがLinq使ったら可読性悪くなるって決めつけてるからじゃないの?
2018/06/10(日)06:46:45.50(Kj8YEAmO0.net)
446デフォルトの名無しさん [sage]
2018/06/10(日)06:46:55.66(CFkipoua0.net)
447デフォルトの名無しさん [sage]
2018/06/10(日)08:32:28.14(RI4Vnlqm0.net)
448デフォルトの名無しさん [sage]
2018/06/10(日)08:41:39.38(HMOXZXoS0.net)
449デフォルトの名無しさん [sage]
コーディング規約がバカなんだよ
2018/06/10(日)08:43:37.52(kZ6+r7gZM.net)
450デフォルトの名無しさん [sage]
2018/06/10(日)09:22:16.29(z8uYskXvM.net)
451デフォルトの名無しさん
2018/06/10(日)09:35:53.15(0WF1gq+N0.net)
452デフォルトの名無しさん [sage]
returnは1つまで
変数名の先頭に型の略字を書く
varは使ってはいけない
こういうひと昔前まで大衆が信じてたバカ規約
システム全体で統一感のあるコードを書くって規約もいずれその仲間入りするとおもう
いまはまだIT業界全体が未熟だからみんな気付いてないだけ
2018/06/10(日)09:58:39.22(kZ6+r7gZM.net)
453デフォルトの名無しさん [sage]
規約違反で可読性なくなります!
レビューで積極的に発言するサル、何も知らないで自分は立派なプログラム書いてると思っている。
ちなみににLinqの方が可読性上がるよ。
Linqはやりたいことをズバッと書ける。
古いやり方だと、このforループなに?ってなる。
forループは実装手段であって目的じゃないから。
単に慣れ、新しいこと勉強したくない連中が可読性だの規約だの持ち出す。
2018/06/10(日)10:22:35.79(YCs8n+CmM.net)
454デフォルトの名無しさん [sage]
それが出来ないことを相手のせいにするな
2018/06/10(日)10:39:02.74(0nkwjY0q0.net)
455デフォルトの名無しさん [sage]
2018/06/10(日)11:01:43.43(wNo6w9bX0.net)
456デフォルトの名無しさん [sage]
2018/06/10(日)12:09:56.40(ycwHE1rSa.net)
457デフォルトの名無しさん
https://qiita.com/yniji/items/6585011633289a257888
C# の Linq が python の2倍遅い、は嘘
https://qiita.com/Akira_Kido_N/items/d9519b05ccee6a67158f
2018/06/10(日)13:05:02.68(fXHYwG6AM.net)
458デフォルトの名無しさん [sage]
2018/06/10(日)13:22:36.14(8jSf3er6M.net)
459デフォルトの名無しさん [sage]
2018/06/10(日)13:47:05.85(FyF+mujLM.net)
460デフォルトの名無しさん [sage]
2018/06/10(日)14:27:51.17(A9qrJ+Er0.net)
461デフォルトの名無しさん [sage]
2018/06/10(日)17:59:54.77(Nj3/us+lM.net)
462デフォルトの名無しさん [sage]
2018/06/10(日)18:16:30.94(Ve8EHXbu0.net)
463デフォルトの名無しさん [sage]
メソッド形式で使ったとしても逆にクエリ式のfromを二重の使ったほうがいいのにSelectManyを使ってるやつは非常に醜い
JoinやAggregateも可読性が以上に低い
2018/06/10(日)18:55:50.21(FyF+mujLM.net)
464デフォルトの名無しさん [sage]
このサンプルあたりがボーダーラインかね
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/linq/how-to-query-for-duplicate-files-in-a-directory-tree-linq
個人的にはこれも読みづらい
実にどうでもいい話だが、LINQは頭字語のはずなのでLinqって表記には違和感しか感じない。
あと、これもくどいが、LINQじゃなくてクエリ式の話をしてるんじゃないのかと
2018/06/10(日)18:58:38.79(0FFsGNUEa.net)
465デフォルトの名無しさん [sage]
2018/06/10(日)19:04:29.50(FyF+mujLM.net)
466デフォルトの名無しさん [sage]
var queryDupNames =
from file in fileList
group file.FullName.Substring(charsToSkip) by file.Name into fileGroup
where fileGroup.Count() > 1
select fileGroup;
基礎的なものだけで構築されていて何をやっているか一目瞭然じゃん
2018/06/10(日)19:22:31.41(0nkwjY0q0.net)
467デフォルトの名無しさん [sage]
そんな人間がいるプロジェクトには関わりたくないけど
2018/06/10(日)19:59:10.70(7XGbwrsW0.net)
468デフォルトの名無しさん [sage]
実際にあった話
2018/06/10(日)20:06:35.03(kZ6+r7gZM.net)
469デフォルトの名無しさん [sage]
でもそんなのに付き合ってやる義理はないんじゃね? あとは規約の問題だな。
2018/06/10(日)20:19:14.72(Ve8EHXbu0.net)
470デフォルトの名無しさん [sage]
2018/06/10(日)20:29:40.62(FyF+mujLM.net)
471デフォルトの名無しさん [sage]
可読性あげるのは理解できるが便利な関数を規制するのはおかしいくない?
いつまでたっても個人の技術力上がらなくなるけどいいの?とは思う
2018/06/10(日)21:47:34.28(WVhS1nfV0.net)
472デフォルトの名無しさん [sage]
var queryDupNames = fileList.Groupby(f=>略, f=>略).Where(g=>g.Count>1);
メソッドだとほぼ一瞬で何をやってるかわかるだろ
わざわざ行数を割いて理解に時間のかかるクエリ式を使う意味はねえよ
2018/06/10(日)21:54:10.88(FyF+mujLM.net)
473デフォルトの名無しさん [sage]
それなら同意
2018/06/10(日)22:13:28.91(WVhS1nfV0.net)
474デフォルトの名無しさん [sage]
2018/06/10(日)22:39:32.51(7XGbwrsW0.net)
475デフォルトの名無しさん [sage]
2018/06/10(日)22:43:36.88(mLmPdblh0.net)
476デフォルトの名無しさん [sage]
インターフェース禁止だとか当たり前のように言ってくるからねあいつら
2018/06/10(日)22:53:21.31(kZ6+r7gZM.net)
477デフォルトの名無しさん [sage]
2018/06/10(日)22:54:32.29(SjjA9sVt0.net)
478デフォルトの名無しさん [sage]
2018/06/10(日)23:06:57.39(0nkwjY0q0.net)
479デフォルトの名無しさん [sage]
refactor は refactoring から派生した単語
refactor という動詞は使われだして日も浅く、まだ技術系のスラングの域でしかない
VS には「リファクター」としてリファクタリングを行うメニューが提供されているが
小洒落た動詞として使用される分には気にならないが、
日本人が「リファクタする」とか使ってると「カンパニーのコンプライアンスをガバナンスする」とかと同様に見える
いやもっとあれか「コンプラをガバーンする」とかと同じレベルかな? (govern は正しい動詞)
https://english.stackexchange.com/questions/57750/is-there-a-verb-refactor-meaning-doing-refactoring-in-english
……MSのスペルチェッカで引っかかってたのか(現在は知らんが)
2018/06/11(月)14:37:15.67(dC6OTsii0.net)
480デフォルトの名無しさん [sage]
2018/06/11(月)17:24:57.86(FO+2sVJQ0.net)
481デフォルトの名無しさん [sage]
まあ、某社のVS用のリファクタリングツールの旧名がRefactor !"だったね。
2018/06/11(月)17:36:15.53(xa0hP702a.net)
482デフォルトの名無しさん [sage]
2018/06/11(月)19:40:48.77(IrI/gpw8M.net)
483デフォルトの名無しさん [sage]
初出が誰なのか不明(Martin Fowler ではない)だが、
1992年には論文で見られるっていうほんとに新しくできた単語なのよ
2018/06/11(月)22:30:32.76(dC6OTsii0.net)
484デフォルトの名無しさん [sage]
2018/06/11(月)22:53:53.28(ziXMMRuaa.net)
485デフォルトの名無しさん [sage]
2018/06/12(火)11:25:19.10(XfLFdaMYp.net)
486デフォルトの名無しさん [sage]
英語圏ならrefactoringという言葉が登場した時点でrefactorという言葉も同時発生的に生まれていると思うが…
2018/06/12(火)13:31:08.41(l5O6ZBmRM.net)
487デフォルトの名無しさん [sage]
factor(名)→ factoring → re-factoring
なんだろう。
完全に想像で何の根拠もないけど、computingが動詞のcomputeの動名詞ではない(たぶん...)
ように、factoringも動詞のfactorの動名詞ではないような気がする
2018/06/12(火)14:20:48.56(O2DKnY7ra.net)
488デフォルトの名無しさん [sage]
factorizeはなぜ使われなかったんだろう
2018/06/12(火)21:59:47.02(tBKs/ecm0.net)
489デフォルトの名無しさん [sage]
2018/06/12(火)23:00:33.34(KC1Yqp3NM.net)
490デフォルトの名無しさん [sage]
2018/06/13(水)07:49:48.39(GuprKmCG0.net)
491デフォルトの名無しさん [sage]
2018/06/13(水)08:29:12.19(o1Fw+zabM.net)
492デフォルトの名無しさん
2018/06/13(水)17:13:37.26(LyYtEKg40.net)
493デフォルトの名無しさん
2018/06/13(水)17:14:09.95(LyYtEKg40.net)
494デフォルトの名無しさん [sage]
2018/06/13(水)17:20:21.24(yGCmXdsAM.net)
495デフォルトの名無しさん
2018/06/13(水)17:22:01.32(LyYtEKg40.net)
496デフォルトの名無しさん
2018/06/13(水)17:24:47.33(LyYtEKg40.net)
497デフォルトの名無しさん [sage]
ここのサイトのconsoleって書いてあるところに自分のrwitterアカウント打ち込むと、性格にマッチした言語がわかるよ。IBM製。
http://hello-new-world.mybluemix.net/top
2018/06/13(水)19:08:31.55(TJmxm3LHM.net)
498デフォルトの名無しさん [sage]
やーごめん。このスレ今日初めて見たの。ちゃちゃいれてもうしわけなす。
2018/06/13(水)19:10:58.93(tfOKWYs/0.net)
499デフォルトの名無しさん [sage]
IBM製じゃなくてBluemix使ったアプリなだけやん
2018/06/13(水)23:36:14.69(AGR+xSSx0.net)
500デフォルトの名無しさん [sage]
いんや、公開したのは日本IBMだよ
2018/06/14(木)08:07:40.99(TG8lbF0sM.net)
501デフォルトの名無しさん
Pythonとか面白いので、C#もやってみたいと思っているんですが、
Mono入れれば、書店で売ってるVisualC#の本とか出来ますか・・?
2018/06/14(木)12:02:14.52(ZrVl35qK0.net)
502デフォルトの名無しさん
2018/06/14(木)12:26:43.19(ZNAi3suja.net)
503デフォルトの名無しさん [sage]
C#で何がしたいの?
2018/06/14(木)12:28:45.35(IAs3lrtOd.net)
504デフォルトの名無しさん [sage]
https://imgur.com/a/MlKixgw
2018/06/14(木)13:05:26.16(PJ7Fj3C3a.net)
505500
どうもありがとうございます。Windows機は父親のしかありません・・。強奪してこようかな・・。父親全然使っとらん。。
>>503
本のプログラムを打ち込んでみたいです。Pythonとか面白かったのでC#も挑戦してみたいという感じです。なんかいけそうっぽい
2018/06/14(木)17:14:29.50(ZrVl35qK0.net)
506デフォルトの名無しさん [sage]
2018/06/14(木)17:17:13.41(cv3CkBmoM.net)
507デフォルトの名無しさん [sage]
本がVisual Studioを使う前提で書かれていたら無理
2018/06/14(木)17:27:33.62(im2Z0uooa.net)
508デフォルトの名無しさん [sage]
だから具体的に何をしたいの?(何を作りたいの?)
2018/06/14(木)17:59:42.71(IAs3lrtOd.net)
509デフォルトの名無しさん [sage]
本を読んでその通りなぞりたいんだろ
2018/06/14(木)18:14:23.58(im2Z0uooa.net)
510デフォルトの名無しさん [sage]
猫でもわかるシリーズならそんな心配はないな!
>>505
お父さんのPCで間違ってエロコレクションとか見つけたら鬱になるのでやめたほうがいい
ただVisual Studio(VScodeでもいいかも)使えない環境でC#やるのはめんどくさいと思うよ
2018/06/14(木)18:19:58.04(T0JMmz9y0.net)
511デフォルトの名無しさん [sage]
2018/06/14(木)18:22:09.50(im2Z0uooa.net)
512デフォルトの名無しさん [sage]
本によるやろそんなもん
2018/06/14(木)18:22:19.44(IAs3lrtOd.net)
513デフォルトの名無しさん [sage]
だから馬鹿な質問するのはやめとけよ
2018/06/14(木)18:23:22.66(im2Z0uooa.net)
514デフォルトの名無しさん [sage]
2018/06/14(木)18:23:51.86(T0JMmz9y0.net)
515デフォルトの名無しさん [sage]
本によるから実際にやりたいこと聞くことの何が悪いんかい?
2018/06/14(木)18:28:25.08(IAs3lrtOd.net)
516デフォルトの名無しさん [sage]
2018/06/14(木)18:30:41.94(Cw52iYDwM.net)
517デフォルトの名無しさん [sage]
そんな感じだろ
それ以上何がある
2018/06/14(木)18:34:01.18(im2Z0uooa.net)
518デフォルトの名無しさん [sage]
キチガイ
2018/06/14(木)18:35:19.36(Cyktia16d.net)
519デフォルトの名無しさん [sage]
自分がプログラム入門者だとして何がしたいと答えるつもりだ?
2018/06/14(木)18:37:17.48(im2Z0uooa.net)
520デフォルトの名無しさん [sage]
2018/06/14(木)18:39:04.95(KqjFIT9WM.net)
521デフォルトの名無しさん [sage]
いくらでもあるやろwww
2018/06/14(木)18:40:09.93(Cyktia16d.net)
522デフォルトの名無しさん [sage]
2018/06/14(木)18:42:49.17(im2Z0uooa.net)
523デフォルトの名無しさん [sage]
2018/06/14(木)18:44:53.14(Cyktia16d.net)
524デフォルトの名無しさん [sage]
結局答えられないくせに偉そうだな
2018/06/14(木)18:46:00.00(im2Z0uooa.net)
525デフォルトの名無しさん [sage]
ぼくとりあえず簡単なWebアプリがつくりたいのー
2018/06/14(木)18:47:04.68(Cyktia16d.net)
526デフォルトの名無しさん [sage]
アンドロイドアプリモンスターズつくりたいなー
2018/06/14(木)18:47:24.43(Cyktia16d.net)
527デフォルトの名無しさん [sage]
家計簿つくりたいー
2018/06/14(木)18:47:59.25(Cyktia16d.net)
528デフォルトの名無しさん [sage]
テトリスつくりたいなあ
2018/06/14(木)18:48:16.72(Cyktia16d.net)
529デフォルトの名無しさん [sage]
まだ必要?
2018/06/14(木)18:50:17.14(Cyktia16d.net)
530デフォルトの名無しさん [sage]
じゃあそれを質問する意味はなんだ?
2018/06/14(木)18:50:51.62(im2Z0uooa.net)
531デフォルトの名無しさん [sage]
2018/06/14(木)18:51:45.04(T0JMmz9y0.net)
532デフォルトの名無しさん [sage]
本をなぞると言ってるのに?
2018/06/14(木)18:51:56.99(im2Z0uooa.net)
533デフォルトの名無しさん [sage]
はいキチガイ
2018/06/14(木)18:55:45.38(Cyktia16d.net)
534デフォルトの名無しさん [sage]
だから本によるんやろw
2018/06/14(木)18:56:08.99(Cyktia16d.net)
535デフォルトの名無しさん [sage]
2018/06/15(金)06:51:22.33(7Iypneqg0.net)
536デフォルトの名無しさん [sage]
C#でやるのに参考になるサイトかコードはないかな?
2018/06/17(日)07:44:22.33(R12hw8Jz0.net)
537デフォルトの名無しさん [sage]
2018/06/17(日)08:44:00.21(aVMObWbK0.net)
538デフォルトの名無しさん [sage]
調べた限りだとHiSTory fileでFXの履歴を記録したファイルで使われることが多いのかな?
自分が使いたいのはFXの履歴ではないくてカメラの履歴などの情報を取りたいです。C++などのコードで書いてるサイトはあるけどC#が見つからない
2018/06/17(日)09:14:51.45(R12hw8Jz0.net)
539デフォルトの名無しさん [sage]
https://www.mql5.com/en/forum/149178
上のアドレスで説明されているフォーマットだったら普通にBinaryReaderで読み込めば良いんじゃないの
単純な構造だから苦労することも無いと思うよ
2018/06/17(日)10:00:34.77(aVMObWbK0.net)
540デフォルトの名無しさん [sage]
2018/06/17(日)10:05:01.86(brTRb0Nk0.net)
541デフォルトの名無しさん [sage]
BinaryReader使って試してみます。
ありがとうございました!
2018/06/17(日)21:31:13.88(R12hw8Jz0.net)
542デフォルトの名無しさん [sage]
数千行あるなら心折れるかもしれんが、自分で移植するほうが早い気がするけど
C#かけるなら余裕でしょ
2018/06/17(日)22:18:28.81(qGzm+MRqd.net)
543デフォルトの名無しさん [sage]
あ、でも最近のC#はマルチプラットフォームだからバイトオーダーも気にしないとダメなのかな
地味にめんどくせえな
2018/06/17(日)22:23:59.43(IxLGC6rAM.net)
544デフォルトの名無しさん [sage]
C#もどこかあるだろで探してたけどC#だけまったく見当たらなかったので、結果的には自分で移植のほうが早かったかな
2018/06/17(日)22:37:48.08(R12hw8Jz0.net)
545デフォルトの名無しさん
PaSoRiでFelicaのReadをしたいのです。
winscard.dllを利用し
ScardTransmitにてADPUを送信することで
非暗号化領域のREAD/WRITEをすることはできました
追加で、暗号化領域のREADをしてほしいと言われ、
Group Service KeyとUser Service Keyという2つの鍵を渡されました。
どうやらこの2つの鍵を使って暗号化領域のREADを行うようなのですが
それに該当する情報が見つかりません。
この2つの鍵と縮退鍵の関連もわかりません。
2つの鍵を使って縮退鍵を合成する???
合成したとしてどういうAPDUコマンドを送る???
ご存知の方がいらっしゃいましたらご教授ください。
2018/06/18(月)00:31:09.66(6KD+nJyx0.net)
546デフォルトの名無しさん [sage]
2018/06/18(月)00:46:54.25(jPyv6U8B0.net)
547デフォルトの名無しさん [sage]
2018/06/18(月)01:05:06.10(6KD+nJyx0.net)
548デフォルトの名無しさん [sage]
2018/06/18(月)14:58:19.26(Pxwa7YvH0.net)
549デフォルトの名無しさん [sage]
C、C++と歩んできて正直C#なめてたが、プログラムの書き方変わったよ。
2018/06/18(月)15:38:53.66(XzDxjxqSM.net)
550デフォルトの名無しさん [sage]
浅学ですまないが非常に興味があるので、何をする処理にLINQを使っているのか教えてほしい
2018/06/18(月)19:59:56.07(YV8aSpRw0.net)
551デフォルトの名無しさん [sage]
横レスだけど「読み込んでLINQ」だからパーサーの部分だろ
2018/06/18(月)20:21:08.97(xPHPGLWh0.net)
552デフォルトの名無しさん [sage]
2018/06/18(月)20:48:17.73(Dbb+UGxb0.net)
553デフォルトの名無しさん [sage]
最近は一括読み込みしかしないな。
パフォーマンスはライブラリやOSが担保してくれる。
2018/06/18(月)20:55:37.17(Dbb+UGxb0.net)
554デフォルトの名無しさん [sage]
富豪的であってもそれが一時的(たとえばメソッドの中だけ)なら何も問題ないね。
その方がより簡潔だったり可読的に書けるなら否定する理由は何もない
2018/06/18(月)21:33:32.15(ubyRHWyfa.net)
555デフォルトの名無しさん [sage]
2018/06/18(月)21:36:42.05(C5OiN+R5M.net)
556デフォルトの名無しさん [sage]
2018/06/18(月)21:40:28.88(ltR7ddTWM.net)
557デフォルトの名無しさん [sage]
2018/06/18(月)21:41:56.46(H/s4J3I+p.net)
558デフォルトの名無しさん [sage]
だけどドライブにあるファイルは一括読み込みの方が簡単だよ。1ステップだからね。それをソートするなりデータ抽出するなりLINQ使えば簡単だよ。
それを知ってから逐次読み出しなんか面倒くさくアホらしくなったよ。
2018/06/18(月)21:46:48.35(Dbb+UGxb0.net)
559デフォルトの名無しさん [sage]
2018/06/18(月)21:50:28.19(Dbb+UGxb0.net)
560デフォルトの名無しさん [sage]
2018/06/18(月)21:52:07.22(ubyRHWyfa.net)
561デフォルトの名無しさん [sage]
2018/06/18(月)21:52:33.25(H/s4J3I+p.net)
562デフォルトの名無しさん [sage]
2018/06/18(月)21:56:24.93(DGcX/y5w0.net)
563デフォルトの名無しさん [sage]
2018/06/18(月)21:57:36.33(C5OiN+R5M.net)
564デフォルトの名無しさん [sage]
2018/06/18(月)22:00:34.70(Dbb+UGxb0.net)
565デフォルトの名無しさん [sage]
2018/06/18(月)22:04:21.91(Dbb+UGxb0.net)
566デフォルトの名無しさん [sage]
まったく聞かないな
http://blog.livedoor.jp/dankogai/archives/50560934.html
読んだのずいぶん前とは思ったがもう12年前か...
2018/06/18(月)22:08:39.81(ubyRHWyfa.net)
567デフォルトの名無しさん [sage]
高速flash memoryでraid組んでもRAMの速度には負けるだろ。
2018/06/18(月)22:31:50.96(H/s4J3I+p.net)
568デフォルトの名無しさん [sage]
2018/06/19(火)23:13:11.27(BrsQYlEtM.net)
569デフォルトの名無しさん [sage]
プログラムのバグでもない限りは絶対に訪れないような場所には
片っ端からDebug.Failを撒いておいたほうがいいんですか?
それともそれ専用のthrowすべき例外なりがあるんでしょうか?
Assert.Fail?
何も書かないのは気持ち悪いので指針を教えてください
switch (option) {
case Option.First:
result = 1.0;
break;
// Insert additional cases.
default:
Debug.Fail("Unknown Option " + option);
result = 1.0;
break;
}
2018/06/25(月)11:21:29.65(pxATIqrb0.net)
570デフォルトの名無しさん [sage]
そういうのはフロー解析による不要なコンパイルエラーを回避するために throw する
例外の種類は状況やポリシーに応じて InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException あたりを使うのが普通
2018/06/25(月)12:12:52.11(DuFsc7dIM.net)
571デフォルトの名無しさん [sage]
いつも何を投げるか迷う
2018/06/25(月)12:29:34.73(Yf6/X2v7M.net)
572デフォルトの名無しさん [sage]
2018/06/25(月)12:33:59.90(G9vuY89la.net)
573デフォルトの名無しさん [sage]
InvalidOperationExceptionだけはキャッチされる場合があるから微妙だけど、慣習的にはわりと多数派な気がする
個人的には常に NotImplementedException にしたい
2018/06/25(月)12:40:32.20(M/oLTPjda.net)
574デフォルトの名無しさん [sage]
2018/06/25(月)12:46:36.42(9dNJX3N0M.net)
575デフォルトの名無しさん [sage]
未実装の場合に使うらしいね。正しいかどうかは知らない
http://yfakariya.blogspot.com/2011/07/blog-post.html
同じNotでもNotImplementedは「未」実装、NotSupportedは「非」サポートってのは分かりづらいっす
2018/06/25(月)12:58:28.80(G9vuY89la.net)
576デフォルトの名無しさん [sage]
現実問題そんな感じになってしまうことはあるけど理想はコンパイラの都合に合わせたコードなんて無いほうがいいんだから
2018/06/25(月)13:00:29.11(5ya7SPIm0.net)
577568 [sage]
>InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException
これらの例外は自クラスには非はなく、呼んだ側の使い方が間違っているといった感じの例外に見えますが
そんなにこだわらなくていいんでしょうか
public class MyClass
{
public class BugException: System.SystemException{}
public void buggedmethod() { ... throw new BugException(); }
}
これで良ければ1行で定義できて1番明快に思えますが
検索してもこんなことをやってる人は誰もいないっぽい…
2018/06/25(月)13:23:21.50(vUyRGEqk0.net)
578デフォルトの名無しさん [sage]
>>569のケースに限れば、defaultに来るのはenumにメンバを追加したのにcaseを追加していない「変更漏れ」であると考えることもできるから、
NotImplementedException でも意味的におかしくはない
NotSupportedExceptionは(継承の都合で)メンバ自体が使えないことを意味するからちょっと違う
2018/06/25(月)14:49:07.56(o35Q9ijAM.net)
579デフォルトの名無しさん [sage]
を自作でいいのでは?
2018/06/25(月)18:07:26.16(dM1+XD4cM.net)
580デフォルトの名無しさん [sage]
なるほどそうかも
関係ないけど、いつも思うけどあるインターフェイスを継承してるのに
そのインターフェイスのメソッド使ったらNotSupportedExceptionが飛んでくるって設計は
なんか不条理を感じるのは俺だけかなあw
インターフェイスって契約じゃなかったのかよw
2018/06/25(月)18:51:31.43(uZsljbpsa.net)
581デフォルトの名無しさん [sage]
2018/06/25(月)19:32:38.95(gMkOZD8Wa.net)
582デフォルトの名無しさん [sage]
2018/06/25(月)19:39:55.82(gMkOZD8Wa.net)
583デフォルトの名無しさん [sage]
2018/06/25(月)20:13:43.81(HTnjHonAM.net)
584デフォルトの名無しさん [sage]
Debug.Fail() は起こりえない状況であり、かつ、素通りしても問題ない箇所、
またはリカバリ処理を行っている箇所にしか使用できません
基本は例外か Trace.Fail() を使用するべきです
Debug.Fail() を使用して問題ないのは具体的には下記の条件に当てはまるときぐらいだと思います
・『絶対』に起こらないことを目視や単体テストで確認した上で、後続のコードでリカバリ処理を行っている箇所で、
開発によってコードが壊れてないかチェックするためにコードに挿入する
(絶対に発生しないので単体テストを行う場合は #if で慎重にコードを切り替えてエラー状態を再現することになります)
つまり、リカバリ処理してるなら Debug.Fail() は入れなくても問題ないはずです
2018/06/25(月)21:43:12.62(xJKhLBIA0.net)
585568 [sage]
ありがとうございます。
2018/06/28(木)16:32:42.98(mhaIhaYV0.net)
586デフォルトの名無しさん
2018/07/04(水)22:15:33.33(gFgZc5FG0.net)
587デフォルトの名無しさん
という考えたがある方、詳しく教えてほしいんですが、
スレ違いでしょうか?
2018/07/05(木)22:48:00.22(bXohcl5rE)
588デフォルトの名無しさん [age]
2018/07/11(水)23:46:27.39(wZEnBA6P0.net)
589デフォルトの名無しさん [sage]
RectangleとかPointとかって、値型?
値型ってコンストラクタに引数渡せないって、さっき、読んだけど
2018/07/12(木)02:43:18.10(VF8Jnm1rH.net)
590デフォルトの名無しさん [sage]
2018/07/12(木)20:29:08.90(LFvEI7az0.net)
591デフォルトの名無しさん
2018/07/12(木)21:32:30.73(wWmeulvip.net)
592デフォルトの名無しさん [sage]
フィールドが非null値の場合はどうなるのかはしらない
2018/07/14(土)09:57:07.24(AoeZKvgvM.net)
593デフォルトの名無しさん
2018/07/14(土)10:59:20.35(21Pqhes0M.net)
594デフォルトの名無しさん
合計 90 日間が過ぎました。
無料で使いたいんですが、どうすれば良いでしょうか?
2018/07/14(土)11:24:43.76(td9rD4BU0.net)
595デフォルトの名無しさん [sage]
2018/07/14(土)11:27:35.51(trGcxTua0.net)
596デフォルトの名無しさん [sage]
大人しく買えよ
もしくはCommunity版を検討する
2018/07/14(土)11:29:07.89(1NIDWWGu0.net)
597デフォルトの名無しさん [sage]
どうしても有償版を使い続けたいのなら期限が切れるたびにWindowsを再インストールすればOK
2018/07/14(土)11:36:04.11(EtwCAyCb0.net)
598デフォルトの名無しさん
ありがとうございます
2018/07/14(土)12:06:05.24(td9rD4BU0.net)
599デフォルトの名無しさん [sage]
2018/07/14(土)23:26:56.12(mNPit/gT0.net)
600デフォルトの名無しさん [sage]
2018/07/15(日)01:08:37.15(WCfEKFtx0.net)
601デフォルトの名無しさん
2018/07/15(日)11:14:40.73(GMJtRfj30.net)
602デフォルトの名無しさん [sage]
VS-4.2くれ
2018/07/22(日)16:05:05.76(bsqxWqeBM.net)
603デフォルトの名無しさん
以下のように1対多の入れ子(left join)になったデータを取ってくる場合で、一番最下層のテーブルに取得条件を追加したいです。
どのようにしてwhereメソッドを書けばよいでしょうか。
.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)
例えば以下のような感じです。
Skill.ExpireDate >= DateTime.Today
それぞれのプロパティはコレクションのため以下のようには書くことができません
Where(x => x.Departments.Groups.SubGroups.Employees.Skills.ExpireDate >= DateTime.Today)
ThenIncludeで指定しているプロパティがすべて列挙でなければ以下のように書けると思うのですが・・・
Where(x => x.Department.Group.SubGroup.Employee.Skill.ExpireDate >= DateTime.Today)
それぞれの階層のクラスは全プロパティ取得することを想定しています。
Entity Framework Coreで実現可能でしょうか。
2018/08/02(木)11:31:31.36(ijDqx/PBp.net)
604デフォルトの名無しさん [sage]
2018/08/02(木)12:14:20.65(jJXbX9Nfa.net)
605デフォルトの名無しさん
2018/08/02(木)12:30:22.50(ijDqx/PBp.net)
606デフォルトの名無しさん [sage]
WhereとAnyで掘り下げていくとか
SelectManyで平坦化するとかか
2018/08/02(木)13:06:25.80(CFW8XzdE0.net)
607デフォルトの名無しさん
辿らなくて良いなら辿らないでやれればベストです。
ですがその方法がわからないので教えてもらえませんでしょうか。
2018/08/02(木)15:11:34.29(ijDqx/PBp.net)
608デフォルトの名無しさん [sage]
select H.* from Hoges H where exists (
select null from Departments D where H.DeptId = D.DeptId and exists (
select null from Groups G where D.DeptId = G.DeptId and exists (
select null from SubGroups SG where G.GrpId = SG.GrpId and exists (
select null from Employees E where SG.SGrpId = E.SGrpId and exists (
select null from Skills SK where E.EmpId = SK.EmpId and SK.ExpireDate >= {DateTime.Today}
)))))
");
var hoges = q.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)
.ToList();
2018/08/02(木)21:52:06.55(nmSSZypj0.net)
609デフォルトの名無しさん [sage]
public IList<float> Plus214_Output_0 { get; set; }
特に
<float>、 { get; set; }
が分かりませんでした
以下の一部になります
https://github.com/Microsoft/Windows-Machine-Learning/blob/master/Samples/UWP/MNIST/src/MNIST.cs
2018/08/03(金)07:33:44.44(TQSHsawm0.net)
610デフォルトの名無しさん [sage]
前者は「ジェネリック」、後者は「自動実装プロパティ」でググれ
2018/08/03(金)07:54:13.63(/ayVy0z+a.net)
611デフォルトの名無しさん [sage]
ありがとうございます!めっちゃ助かりました!
2018/08/03(金)07:55:39.91(TQSHsawm0.net)
612デフォルトの名無しさん [sage]
同じサイズのdataAとdataBのデータがあるとして
データが違う箇所のIndexを取り出すとしたらどう書けば良いでしょうか?
今は↓のようなコードになっています。
List<int> dataA = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> dataB = new List<int>() { 1, 2, 4, 3, 5, 6 };
bool resultAB = dataA.SequenceEqual( dataB);
if(resultAB = false)
{
foreach(var A in dataA)
{
比較処理
}
}
結果
2
3
2018/08/07(火)20:55:48.43(7nA6P5yg0.net)
613デフォルトの名無しさん [sage]
ない頭絞って考えてみた。
Enumerable.Range(0, dataA.Count()).Where(p => dataA[p] != dataB[p]);
やら
dataA.Select((v, i) => new { value = v, index = i }).Where(p => p.value != dataB[p.index]).Select(p => p.index);
どっちも汚い。もっと賢いのおしえろください
2018/08/07(火)21:22:20.14(UKw4EMmv0.net)
614デフォルトの名無しさん [sage]
2018/08/07(火)21:24:07.13(ly4lPw5D0.net)
615デフォルトの名無しさん [sage]
2018/08/07(火)21:29:04.18(BzL1Bfeb0.net)
616611
2018/08/07(火)21:35:47.39(UKw4EMmv0.net)
617デフォルトの名無しさん [sage]
2018/08/07(火)21:36:11.45(q6HoXiPg0.net)
618デフォルトの名無しさん [sage]
SequenceEqualを使ってみた流れでLINQを調べていた流れで知りたかったです。
forで書くのがわかりやすいとは思うけど、LINQでもっとうまく書けるかなと思って
>>613参考になりました。ありがとうございます!
2018/08/07(火)21:41:47.05(7nA6P5yg0.net)
619デフォルトの名無しさん [sage]
LINQ では、答えしか送られてこないから、効率的
2018/08/07(火)21:43:44.13(5i41CNK00.net)
620デフォルトの名無しさん
2018/08/07(火)23:11:20.30(EHUuk9/6a.net)
621デフォルトの名無しさん [sage]
シーケンスを束ねてインデックス振って比較して違うやつだけ取り出してインデックスを取り出す
Linqなら思ったことをそのまま書けばいい
IEnumerable<int> Hoge<T>(IEnumerable<T> a, IEnumerable<T> b) {
var comp = Comparer<T>.Default;
return a.Zip(b, (x, y) => (x, y)) // シーケンスを束ねて
.Select((e, i) => (i, e.x, e.y)) // インデックス振って
.Where(e => comp.Compare(e.x, e.y) != 0) // 比較して違うやつだけ取り出して
.Select(e => e.i); // インデックスを取り出す
}
ループじゃぱっとみ何やってるかわかんねえよ
2018/08/07(火)23:26:49.96(WUtnzCvr0.net)
622デフォルトの名無しさん [sage]
2018/08/07(火)23:31:30.75(kuothdai0.net)
623デフォルトの名無しさん
2018/08/07(火)23:35:51.16(vAj7NHSO0.net)
624デフォルトの名無しさん [sage]
は?
2018/08/07(火)23:37:10.34(9e6mZaIW0.net)
625デフォルトの名無しさん [sage]
2018/08/07(火)23:40:05.44(ly4lPw5D0.net)
626デフォルトの名無しさん [sage]
うーん、普通にこっちのほうが分かりやすいと思うけどw
別にLINQ否定派じゃないよ
IEnumerable<int> GetIndices()
{
List<int> dataA = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> dataB = new List<int>() { 1, 2, 4, 3, 5, 6 };
for (int i = 0; i < dataA.Count; i++)
if (dataA[i] != dataB[i]) yield return i;
}
2018/08/08(水)00:39:26.55(cXv1v5r0a.net)
627デフォルトの名無しさん [sage]
IEnumerable<int> Hoge(IEnumerable<int> A, IEnumerable<int> B)
{
var i = 0;
foreach (var eq in A.Zip(B, (a, b) => a == b))
{
if (!eq) yield return i;
i++;
}
}
自分はやらんけどLinqならこう
dataA.Zip(dataB, (a, b) => a == b).Select((eq, i) => eq ? -1 : i).Where(i => i >= 0);
2018/08/08(水)03:30:51.92(x4iNladl0.net)
628611 [sage]
2018/08/08(水)05:09:02.93(9ryRYesD0.net)
629デフォルトの名無しさん [sage]
そんなにインデックスを参照することが多いなら生成時に一緒に貼っとけって話かもしれんが…
そもそもlinqマスターはインデックスを必要としない設計にいつもなるの?
自分もインデックスが無くて済むように考えるけど結果的に必要になる箇所が細部で出てくるんだよね
2018/08/08(水)13:38:09.59(CtU8HUVGd.net)
630デフォルトの名無しさん [sage]
それでもインデックス欲しい条件1行で書けるのが楽だからLinq便利派だけども
2018/08/08(水)14:08:00.53(csO2M6exd.net)
631デフォルトの名無しさん [sage]
俺もそれ、ちょくちょくするんだけどforで回したほうがよくね?って思っちゃうことがあるんだよね
もちろん処理によりけりと言ってしまえばそれまでなんだけど
比較するようなもんじゃないかもしれんがjavascriptなんかだと大抵インデックス取れるから、そっち触ったあとにC#に戻ると処理考えるときにインデックスありきで考えがちになっちゃう気がしてる
2018/08/08(水)14:25:20.52(CtU8HUVGd.net)
632デフォルトの名無しさん [sage]
個人的にはzipがどちらにせよ入るなら最後までlinqの方が1つの処理を1つの手法で解決してる感じがして好き
だけどインデックスが処理に必要だからfor使いたいって気持ちもわかる
2018/08/08(水)14:32:55.42(CtU8HUVGd.net)
633デフォルトの名無しさん [sage]
2018/08/08(水)14:53:36.93(bbTjp3FCd.net)
634デフォルトの名無しさん [sage]
public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> self, Func<T, bool> predicate)
{
var i = 0;
foreach(var s in self)
{
if(predicate(s)) yield return i;
i++;
}
}
dataA.Zip(dataB, (a, b) => a == b).WhereIndex(eq => !eq);
拡張メソッド嫌いな人もいるだろうけど一番読みやすい
わざわざSelectでインデックスつけてる冗長さもないし、添字アクセスもないし、使う時はすっきり意味がわかりやすい
2018/08/08(水)15:07:53.10(x4iNladl0.net)
635デフォルトの名無しさん [sage]
正直クソ分かりにくい
俺がレビューしたらリジェクトするわ
WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する
そもそもメソッド名以前に、LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
キーやインデックスの方を返すような操作については特に念入りにそれがわかるような明示的な表記になるように工夫したほうがいい
2018/08/08(水)16:44:49.34(Gn4Y43YUM.net)
636デフォルトの名無しさん [sage]
2018/08/08(水)17:02:43.62(0wIwbQiXM.net)
637デフォルトの名無しさん [sage]
2018/08/08(水)17:20:32.65(o48M+fLoM.net)
638デフォルトの名無しさん [sage]
これでもパッと見 ? となる人は多そう
2018/08/08(水)17:26:15.62(icN1uiHAa.net)
639デフォルトの名無しさん [sage]
2018/08/08(水)17:40:49.62(Uqgxm++Va.net)
640デフォルトの名無しさん [sage]
誰が動詞じゃないとおかしいって?
2018/08/08(水)18:11:22.97(ucfZkVugd.net)
641デフォルトの名無しさん [sage]
>WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する
そんなのはWhereでできるし
>LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
>キーやインデックスの方を返すような操作については
それもSelectでできるし
だいたい要素の値を操作していくものっていう暗黙的了解があるならWhereIndexも要素の値が対象と思うんじゃない?
なんか矛盾してね?
2018/08/08(水)18:27:19.45(x4iNladl0.net)
642デフォルトの名無しさん [sage]
多分こっちの方が自然なんだろうな
一応候補だったんだが自分的にしっくりこなかったけど
2018/08/08(水)19:23:56.51(x4iNladl0.net)
643デフォルトの名無しさん [sage]
ランダムアクセスできるとは限らんしっていうかLinqだとほとんど出来ない
2018/08/09(木)21:27:13.79(s67NkejU0.net)
644デフォルトの名無しさん [sage]
ランダムアクセスできないコレクション扱うときにインデックスが欲しくなるケースってなかなか無いと思うけど
2018/08/09(木)22:09:58.32(VdJ1XdFa0.net)
645デフォルトの名無しさん [sage]
ランキングとかページングとかか?
2018/08/10(金)23:12:00.00(AJVeRJgN0.net)
646デフォルトの名無しさん [sage]
それってインデックスつけることが一つの目的じゃない?
インデックスってかソートかな?
いろんなところでいろんな処理されるコレクションがあって、その処理の殆どにインデックスが不要だけどごく一部にインデックスがほしいとき、わざわざ1行追加するのスッキリしないなぁって感じ
たった1行なんだから書きゃいいんすよ?
それはわかってるけどなんか気持ち悪いなぁって気がするだけ
2018/08/11(土)00:11:00.13(p6HuaRWz0.net)
647デフォルトの名無しさん
ごく稀に必要になるから必要になるところでだけインデックスを追加するんだろ
ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん
2018/08/11(土)12:41:19.45(YyI+aygL0.net)
648デフォルトの名無しさん [sage]
2018/08/11(土)14:21:00.05(WHbJdrO8a.net)
649デフォルトの名無しさん [sage]
2018/08/11(土)14:23:04.22(p6HuaRWz0.net)
650デフォルトの名無しさん
なにいってんだ?
IEnumerable<T>にインデックスなんてない
ないからSelectで付与するんでしょ
そんなルールはないけどほとんどほとんどLinqで済むでしょ?
Linqでサクサク処理してるのに中に突然ループが紛れ込んできたらキモいって話をしてる
var tmp = list.Where(...).OrderBy(...).ToArray();
for (int i = 0; ...) {
...
}
var result = tmp.Where(...).Select(...);
2018/08/11(土)14:36:01.31(YyI+aygL0.net)
651デフォルトの名無しさん [sage]
え?ずっとそういう話をしてたのになんで突然
>ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん
って書いたの?
インデックスのないlinq処理でそれが必要になったときわざわざselectで付与するのなんか気持ち悪いねーって話よ?
2018/08/11(土)14:48:08.19(p6HuaRWz0.net)
652デフォルトの名無しさん
気持ち悪いのはお前の感覚ではという話だろ
俺からすればToArrayやToListをかましてメモリとCPUを無駄にしたり余計なメソッドを追加するほうが嫌
メソッド化に関しては再利用性が高いかうまく抽象化されていて可読性が高まるというなら別だが
真にランダムアクセス性が必要なアルゴリズムならば変換せざるを得ないがそもそも今回の問題には必要がない
2018/08/11(土)14:59:36.83(YyI+aygL0.net)
653デフォルトの名無しさん [sage]
うん、そうだよ
個人的に気持ち悪いなーってだけ
はじめからそういうふうにしか話ししてないつもりだけど
ランダムアクセスが不要だからあえてランダムアクセスできないコレクションを選択するの?
ランダムアクセスは不要だけどあったって使わないだけだからどっちでもいい、ってなるのが普通じゃないの?
パフォーマンス要求がシビアでランダムアクセスできるコレクションを選択することで、その要求から外れてしまう、とかいうならわかるけど
2018/08/11(土)15:12:53.25(p6HuaRWz0.net)
654デフォルトの名無しさん [sage]
ランダムアクセスが不要なアルゴリズムなら「当然」IEnumerable<T>(ランダムアクセスできないコレクション)を選択するだろう
まったくもって「あえて」と言う理由が分からん
もしもSelectやWhereの引数が配列だったら普通のプログラマなら「あえて配列にしたのはなぜか」と疑問を持つだろう
なんか逆なんだよね思考パターンが
2018/08/11(土)15:28:37.80(YyI+aygL0.net)
655デフォルトの名無しさん [sage]
2018/08/11(土)15:33:32.78(p6HuaRWz0.net)
656デフォルトの名無しさん
そもそもIEnumerableはシーケンシャルな列挙の機能しか提供しない
根本的に理解が間違ってる
2018/08/12(日)00:56:37.14(UOoEXFjMp.net)
657デフォルトの名無しさん [sage]
無限に乱数を返すものをソースにできるし
2018/08/12(日)11:56:03.51(GZni4QRja.net)
658デフォルトの名無しさん [sage]
自力で描画すれば可能なんだけど
労力に見会わないのでお勧めしない
webやWPF, UWPならグラ弄るの簡単
2018/08/23(木)15:21:46.30(7meTQdNO0.net)
659デフォルトの名無しさん [sage]
2018/08/23(木)15:23:43.41(7meTQdNO0.net)
660デフォルトの名無しさん [sage]
2018/09/09(日)16:03:02.33(RaawotRPM.net)
661デフォルトの名無しさん [sage]
2018/09/09(日)16:03:23.33(RaawotRPM.net)
662デフォルトの名無しさん [sage]
bindingしているviewとviewmodelの関係なんかが分かるドキュメントにしたいんですが何か良い方法ないでしょうか?
2018/09/13(木)22:10:23.24(IOzhaO6j0.net)
663デフォルトの名無しさん [sage]
var res = func();
これを一文で書くことはできますか。
ふと気になっただけではあるけれど、自分で解決できなくて気になって仕方がない。
基本的なことが分かってないような気がする。
2018/09/14(金)22:17:10.47(BClpbb6X0.net)
664デフォルトの名無しさん [sage]
2018/09/14(金)22:28:35.55(9WO+tdsEa.net)
665デフォルトの名無しさん [sage]
まあそうなるよな
2018/09/15(土)00:16:02.34(rZVfBBf1a.net)
666デフォルトの名無しさん
例題が悪い気がする
2018/09/15(土)00:21:48.95(elLmwu/20.net)
667661 [sage]
パラメータに対してちょっと複雑な変換を掛けるのだけど、汎用性がないから専用関数作るのもなんだし、
だったらラムダ式で書けばいいんじゃね?→ ラムダ式は Func 型?だから戻り値とれねーじゃん ってところから進めなった。
他にやり方はあるので出来なくてもいいのだけど、気にはなって。
2018/09/15(土)00:41:48.54(LMkhUY/p0.net)
668デフォルトの名無しさん [sage]
複雑な処理ならそれこそ括りだしておいてわかりやすくしたほうがバグ出にくいし簡単でしょ
2018/09/15(土)01:22:08.16(rZVfBBf1a.net)
669デフォルトの名無しさん
参照渡すとか?
2018/09/15(土)05:59:42.97(crViL/AR0.net)
670デフォルトの名無しさん [sage]
var pi =
(
(Func<double>)
(
() =>
{
const int total = 1000000;
var inside = 0;
var rnd = new Random();
for (int i = 0; i < total; i++)
{
var x = rnd.NextDouble() * 2 - 1; var y = rnd.NextDouble() * 2 - 1;
if (x * x + y * y < 1) inside++;
}
return 4.0 * inside / total;
}
)
)();
2018/09/15(土)15:15:22.99(aC3C7hdpa.net)
671デフォルトの名無しさん [sage]
Func<Func<double>, double> invoke = (f) => f();
var pi = invoke
(
() =>
{
const int total = 1000000;
var inside = 0;
var rnd = new Random();
for (int i = 0; i < total; i++)
{
var x = rnd.NextDouble() * 2 - 1; var y = rnd.NextDouble() * 2 - 1;
if (x * x + y * y < 1) inside++;
}
return 4.0 * inside / total;
}
);
2018/09/15(土)15:22:04.34(aC3C7hdpa.net)
672デフォルトの名無しさん [sage]
半開区間だと使いづらいような気がするけどそんなことないのかな
2018/09/15(土)17:23:21.76(aC3C7hdpa.net)
673デフォルトの名無しさん [sage]
Randomは第二引数未満の乱数発生するんじゃ?
2018/09/15(土)18:10:42.64(ghSS5jwya.net)
674デフォルトの名無しさん [sage]
https://docs.microsoft.com/ja-jp/dotnet/api/system.random?redirectedfrom=MSDN&view=netframework-4.7.2
dobonの方が分かりやすいし読みやすいから
https://dobon.net/vb/dotnet/programing/random.html の
//0.0以上1.0未満の乱数を倍精度浮動小数点数で返す
Double d = r.NextDouble();
>>672こういう意味とは違うの?
整数範囲で出して割った方が範囲や有効桁も決められるからそっちの方がよさそうな気もする
2018/09/15(土)18:34:42.22(nwnNkRfe0.net)
675デフォルトの名無しさん [sage]
Random.DoubleNextの戻り値は[0, 1)(つまり0≦x<1)らしい
普段乱数使うようなコード書いてないからよく分からんけど、
0≦x≦1とか0<x<1でないと困る場面も多いんじゃないかなと思っただけ
2018/09/15(土)18:56:24.76(aC3C7hdpa.net)
676デフォルトの名無しさん [sage]
2018/09/15(土)19:01:32.64(Bg+wr9i5a.net)
677デフォルトの名無しさん [sage]
Random自体C#で使う場面に出くわしたことないからあまり考えないな
2018/09/15(土)19:05:58.75(nwnNkRfe0.net)
678デフォルトの名無しさん [sage]
()は見たことない
コーディングしてたらわかるけど利用場面は圧倒的に少ない
2018/09/15(土)20:19:51.91(Fr67tYwB0.net)
679デフォルトの名無しさん [sage]
> パラメータに対してちょっと複雑な変換を掛けるのだけど
と言うなら例もパラメーター使ってる例を書かなきゃ
>>670
俺もこれしか思いつかなかった
そもそも
var f = (string x) => { return "abc" + x; };
位は型推論してくれてもいいと思うんだけど難しいのかな?
2018/09/15(土)20:30:38.93(OUVvcRON0.net)
680デフォルトの名無しさん [sage]
例えば0〜9の整数乱数がほしい時に[0,1)なら10倍して整数部分を取るだけだけど(0,1)とか[0,1]だとすごく面倒
2018/09/15(土)20:39:04.65(OUVvcRON0.net)
681デフォルトの名無しさん
キミラ程度が使う程度の擬似乱数だったら数行コピペでできる程度のもんで十分だからな
2018/09/15(土)20:42:09.91(KIanXBkQ0.net)
682デフォルトの名無しさん [sage]
ローカル関数じゃだめなん?
2018/09/15(土)20:49:32.65(Xc5RKOnR0.net)
683デフォルトの名無しさん
2018/09/15(土)20:53:08.93(KIanXBkQ0.net)
684デフォルトの名無しさん [sage]
2018/09/15(土)21:33:37.63(OUVvcRON0.net)
685デフォルトの名無しさん [sage]
2018/09/15(土)21:35:49.16(OUVvcRON0.net)
686デフォルトの名無しさん
内側の擬似乱数生成器をかえるだけの話なのがわかってないわ
きっと擬似乱数がなんなのかすらわかってないわ
擬似乱数がなんなのかわからずに乱数()とかいって数字使ってる程度だからな
2018/09/15(土)21:37:43.29(KIanXBkQ0.net)
687デフォルトの名無しさん
コレがC#なんか使ってるヤツラのオツムの程度
2018/09/15(土)21:39:33.01(KIanXBkQ0.net)
688デフォルトの名無しさん
(0,1)は[0,1)が0ならやりなおし、でいいんじゃないのと単純に思ったがそんなものじゃない?
2018/09/15(土)21:40:44.62(qw6mr0Vb0.net)
689デフォルトの名無しさん
ああいうレスしてるようにはまったく見えないからな
2018/09/15(土)22:05:16.77(KIanXBkQ0.net)
690デフォルトの名無しさん [sage]
2018/09/15(土)22:52:03.88(OUVvcRON0.net)
691661 [sage]
>>670
ああ。なるほど。型を明示してあげたらよかったのか。
キャストを加えたら期待通りに書くことが出来ました。ありがとうございます。
これってラムダ式を var で宣言した変数に代入できなかったことがヒントになり得たんだな。頭が回ってなかった。
これくらいは型推論してくれても良さそうなのにとは原因が分かった後での負け惜しみ。
>>668,682
今回のはそういうことが出来そうなのに出来なくて悶々としてしまって。
実用性度外視で原因を知りたかったの。
2018/09/15(土)23:10:36.43(LMkhUY/p0.net)
692デフォルトの名無しさん [sage]
シグネチャが同じdelegate間の暗黙の型変換が行われる
初期化時に左辺とかキャストとかでdelegate型が明示されてたらそのdelegate型でnewされる
でいいと思うよな〜
2018/09/16(日)10:09:07.69(QiF2mi6W0.net)
693デフォルトの名無しさん [sage]
マシンは両方用意できるとして
2018/09/19(水)06:50:46.79(luZsj3k/0.net)
694デフォルトの名無しさん [sage]
2018/09/19(水)07:42:00.17(JcyGHTPld.net)
695デフォルトの名無しさん [sage]
2018/09/19(水)10:08:17.18(WBt1GswEM.net)
696デフォルトの名無しさん [sage]
2018/09/19(水)12:41:26.38(9aNAf/d20.net)
697デフォルトの名無しさん [sage]
ありがとうございます
2018/09/19(水)13:59:56.78(luZsj3k/0.net)
698デフォルトの名無しさん [sage]
ちょっと何言ってるかわかんないですね
2018/09/19(水)14:05:07.91(8sfFLOeb0.net)
699デフォルトの名無しさん [sage]
やりたいのは object 型の変数に代入したジェネリック系のインスタンスを、さらに元のジェネリックの型にキャストし直すってことなんですが。
void func( object dic )
{
var tmp = (Dictionary)dic; // ← これみたいなことをやる方法がないかなと
tmp.Add( "test", new object() );
}
var dic = new Dictionary< string, object >();
func( dic );
2018/09/26(水)21:52:32.99(rAzbq+Jy0.net)
700デフォルトの名無しさん [sage]
2018/09/26(水)23:15:04.62(dHSM7pQD0.net)
701デフォルトの名無しさん [sage]
2018/09/26(水)23:17:13.70(+un+mAjX0.net)
702デフォルトの名無しさん [sage]
言葉が足りてなかった。申し訳ない。
例示のケースの場合は、
var tmp = (Dictionary<string,object>)dic;
と指定すれば出来るのだけど、Dictionary だけでキャストし直すみたいなコトできないかなって。
as でも Dictionary だけではキャストできないことは確認しました。
2018/09/27(木)00:24:29.22(WuETTr790.net)
703デフォルトの名無しさん [sage]
そもそもHoge<int>より大きなHoge<T>とかHogeって型が存在するわけじゃないでしょうw
根本的に勘違いしてないか
2018/09/27(木)00:30:38.46(5qvGm4LBa.net)
704デフォルトの名無しさん [sage]
genericsパッケージでないほうのHashtableならできると思うけど安全性を損ねるしやらんほうがいいんじゃね
2018/09/27(木)08:41:34.87(649yR4/AM.net)
705デフォルトの名無しさん [sage]
キャスト時にいちいち型引数を書くのが面倒ぐらいの意味しかないけど
2018/09/27(木)12:20:51.28(/G4FYlhv0.net)
706デフォルトの名無しさん [sage]
を読み直してみると、ひょっとして要するにジェネリックの型パラメータを書くのが面倒臭いから
省略できないか?、って言いたいのかな
それなら答えは「できないけど仮に出来たとしても絶対やるな」じゃないの?
もちろん、
using Dictionary = System.Collections.Generic.Dictionary<string, object>;
こういうエイリアスは書けるはずだと思うけど
何にしろ、質問は他人が読んで分かるように書いて欲しいよね
2018/09/27(木)12:48:53.74(sTtGwCQ3a.net)
707デフォルトの名無しさん [sage]
そうじゃないなら出来てもやるな
つかジェネリックを勘違いしてるんじゃね
2018/09/27(木)17:14:16.27(kGqzP/YO0.net)
708デフォルトの名無しさん [sage]
2018/09/27(木)17:21:14.85(Q+zVeK5uM.net)
709697 [sage]
やっぱり dynamic 使うしかないかな。避けたかったのだけど。
なにが入ってるか分からない配列の中身を文字列化してログ出力したかったの。(最初は)
object[] の要素の中身が generic だったりしたときに ToString() だとクラス名?にしかならないから。
2018/09/29(土)00:47:34.72(EY+8Y7mF0.net)
710デフォルトの名無しさん [sage]
静的型付け言語のメリット台無しやんけ
2018/09/29(土)03:23:52.22(BJdQm5Iw0.net)
711デフォルトの名無しさん [sage]
よくわからんなぁ。避けてどうしたかったんだろうか。
2018/09/29(土)09:01:26.24(FmliS3qN0.net)
712デフォルトの名無しさん [sage]
2018/09/29(土)11:56:45.30(EY+8Y7mF0.net)
713デフォルトの名無しさん [sage]
2018/09/29(土)12:32:33.34(3Hj8wsg1M.net)
714デフォルトの名無しさん [sage]
2018/09/29(土)14:34:45.14(9IdCJ4nKM.net)
715デフォルトの名無しさん [sage]
2018/09/29(土)14:42:39.43(FmliS3qN0.net)
716デフォルトの名無しさん [sage]
おまえらがどういう場面で使ってるのか教えてくれ。
2018/09/29(土)15:07:47.86(EY+8Y7mF0.net)
717デフォルトの名無しさん [sage]
クッソ面倒なんだよな実際
2018/09/29(土)16:47:06.91(rkT/I8Hma.net)
718デフォルトの名無しさん [sage]
> なにが入ってるか分からない配列の中身を文字列化してログ出力したかったの。(最初は)
じゃねーの?
2018/09/29(土)16:56:30.70(X4waiIaR0.net)
719デフォルトの名無しさん [sage]
たぶん何か勘違いしてるだけだと思うよ
俺もプログラミング初めて2,3年は静的/動的とかコンパイル時/実行時の違いとか
分かってるようでよく分かってなかった
2018/09/29(土)18:05:26.03(w5r/wslsa.net)
720デフォルトの名無しさん [sage]
微妙にムカつく上から目線
2018/09/29(土)19:25:50.32(rSQsiXYHa.net)
721デフォルトの名無しさん [sage]
2018/10/06(土)12:04:22.29(upBech+00.net)
722デフォルトの名無しさん [sage]
エクスプローラーでは普通に表示されるんだから
できればBC6と7までw
2018/10/07(日)19:19:55.60(QvnX76F+0.net)
723デフォルトの名無しさん [sage]
DDS?
2018/10/07(日)19:43:24.02(mZPrgRqf0.net)
724デフォルトの名無しさん [sage]
あれ、C#って、マルチプラットフォームじゃなかったの?
Java は、Windows, Mac, Linux, iOS, Android, Chrome, Firefox, IE, どれでも
動いたよね、昔は。
2018/10/16(火)15:29:49.78(gfGA4Hi30.net)
725デフォルトの名無しさん [sage]
C#はWebかコンソールアプリなら.NET Core使えばLinuxやMacで動く
スマホやMac向けのGUIアプリならXamarinだな
2018/10/16(火)16:00:38.35(y5q0bWlwM.net)
726デフォルトの名無しさん [sage]
mono様々やな
2018/10/16(火)16:22:14.98(qWHG2Ppw0.net)
727デフォルトの名無しさん [sage]
Windows使っていて個人的に何かちょっと作ろうと思ったときに、もうC#以外考えられない体になってしまった
2018/10/21(日)20:25:55.35(5Xb93YKt0.net)
728デフォルトの名無しさん [sage]
スクリプト言語はほんま楽やで
客先でインスト制限きつい時はC#とPowerShell
Microsoftさんは早くVSCodeとdotnet cliをWindows標準にしてPowerShellを強制アプデすべき
2018/10/21(日)20:37:33.56(MDetJiiMa.net)
729デフォルトの名無しさん [sage]
2018/10/21(日)21:09:20.78(FxDWQZOn0.net)
730デフォルトの名無しさん [sage]
2018/10/21(日)21:09:38.83(t4QZh6l3d.net)
731デフォルトの名無しさん [sage]
個人で使ったけど、これを社内外で使わせるにはMVVMきっちり教えないと破綻確実だから諦めた
2018/10/21(日)21:34:18.47(fYYBLspX0.net)
732デフォルトの名無しさん [sage]
確かに楽だな。 < python
Web API を叩くプログラムをこれで書いたけど、学習まで含めてすぐ出来た。w
VS 上でも書けるのが楽さに拍車を掛けてる。
>>729
うん。でも最近はやってないな。そーいえば。
2018/10/21(日)22:39:29.79(eTSVpSn40.net)
733デフォルトの名無しさん [sage]
2018/10/21(日)22:44:00.95(GgFjLBNe0.net)
734名無しさん@そうだ選挙に行こう! Go to vote! [sage]
2018/10/22(月)07:55:37.83(D227Fdyd0.net)
735名無しさん@そうだ選挙に行こう! Go to vote! [sage]
XAMLとか慣れるまで大変だし、やっぱり簡単なFORMになるんじゃないかな。
2018/10/22(月)08:11:55.33(vkGCn3UdM.net)
736デフォルトの名無しさん [sage]
Formばかりやってたチームだと学習コストが高くて難しいのはある
2018/10/22(月)12:06:51.16(DqwlPEpNa.net)
737デフォルトの名無しさん [sage]
昔の落ちまくりよりは格段に進歩はしたが
2018/10/22(月)12:25:16.33(+Bt5JEYG0.net)
738デフォルトの名無しさん [sage]
2018/10/23(火)06:15:06.44(oKq5ee0m0.net)
739デフォルトの名無しさん [sage]
2018/10/23(火)12:11:12.26(Z3T8y8K/M.net)
740デフォルトの名無しさん [sage]
Blendを使ってください、ってことなんだろうけどなぁ
2018/10/23(火)12:32:04.49(0EGfRFOMa.net)
741デフォルトの名無しさん [sage]
次の本命が無いから使うしか無いだけで
2018/10/23(火)12:42:28.83(Q+FZ+yEYM.net)
742デフォルトの名無しさん
2018/10/23(火)12:52:00.65(Hcq+1RfE0.net)
743デフォルトの名無しさん [sage]
TreeViewは完成したし、後はDataGridの完成を待つだけだ
2018/10/23(火)12:56:27.59(eyu+kwgc0.net)
744デフォルトの名無しさん [sage]
2018/10/23(火)14:20:00.03(oKq5ee0m0.net)
745デフォルトの名無しさん [sage]
ちょうどGithubもやらかしたし、Azureのサービスなんかガチで世に出しちゃいけないレベルのものが大半
2018/10/23(火)14:36:28.72(cDc5Fd7gM.net)
746デフォルトの名無しさん [sage]
バージョンアップで完成させてくのが昔からのビジネスモデルやろw
2018/10/23(火)15:11:27.54(BR1ycnzw0.net)
747デフォルトの名無しさん [sage]
2018/10/23(火)15:12:45.43(dmXi8fk90.net)
748デフォルトの名無しさん [sage]
2018/10/23(火)15:51:37.07(Z3T8y8K/M.net)
749デフォルトの名無しさん [sage]
終わってるってどういうこと?
2018/10/23(火)16:28:52.85(9gwDvhi80.net)
750デフォルトの名無しさん [sage]
どういうこともクソもWPFは5年くらい前にとっくに開発終了してメンテナンスモードだよ
2018/10/23(火)16:45:50.67(cDc5Fd7gM.net)
751デフォルトの名無しさん [sage]
2018/10/23(火)16:46:49.17(9gwDvhi80.net)
752デフォルトの名無しさん [sage]
2018/10/23(火)16:51:18.62(cDc5Fd7gM.net)
753デフォルトの名無しさん [sage]
2018/10/23(火)17:16:53.27(9gwDvhi80.net)
754デフォルトの名無しさん
なんか使いやすくなった?
2018/10/23(火)17:39:47.89(PWuDtLsGa.net)
755デフォルトの名無しさん [sage]
しかし、ゾンビ技術者がウヨウヨいるから需要はあるのかも。
2018/10/23(火)17:40:45.51(Z3T8y8K/M.net)
756デフォルトの名無しさん [sage]
2018/10/23(火)17:55:40.99(cDc5Fd7gM.net)
757デフォルトの名無しさん [sage]
2018/10/23(火)18:06:42.97(9gwDvhi80.net)
758デフォルトの名無しさん [sage]
2018/10/23(火)18:19:29.54(mVZ7w/wV0.net)
759デフォルトの名無しさん [sage]
なら正しいかもしれない
2018/10/23(火)20:09:28.44(AlQfFCDV0.net)
760デフォルトの名無しさん [sage]
せっかく切ったWPFとFormアプリ復活・・・
2018/10/23(火)20:46:15.68(duwPtJnv0.net)
761デフォルトの名無しさん [sage]
ランタイム依存なしでForms使えるんだろ
ブラウザ要らないじゃん
2018/10/23(火)20:53:51.51(T5C69wUW0.net)
762デフォルトの名無しさん [sage]
デプロイどうすんの?アップデートの度に君が出向いて客のPCでZip解凍して回るの?
それが面倒だからWebなのに、それが.NET Coreになったところで何も解決しないよ
というかClick Onceが無くなる分だけ状況は悪くなるな
2018/10/23(火)21:26:47.62(+h1AjSvua.net)
763デフォルトの名無しさん [sage]
2018/10/23(火)21:29:43.70(TLuMxHqO0.net)
764デフォルトの名無しさん [sage]
2018/10/23(火)21:33:45.87(9gwDvhi80.net)
765デフォルトの名無しさん [sage]
悪魔の証明を求められても困る
.NET CoreでClick Onceが使えるソースを出すのは君の仕事だ
当たり前だけど、FullFWのClick Onceを使うという本末転倒な方法は無しで頼むぞ
2018/10/23(火)21:43:47.63(+h1AjSvua.net)
766デフォルトの名無しさん
2018/10/23(火)21:57:45.44(NgQNKVM70.net)
767デフォルトの名無しさん [sage]
妄想おつw
2018/10/23(火)21:59:32.82(9gwDvhi80.net)
768デフォルトの名無しさん [sage]
もちろん使ってるよ
2018/10/23(火)21:59:56.85(9gwDvhi80.net)
769デフォルトの名無しさん [sage]
断定してたからそんなアナウンスもうされたのかと思ったのに…思い込みが激しいと周りが苦労するね
2018/10/23(火)22:02:41.25(Eu3QtAGFd.net)
770デフォルトの名無しさん [sage]
2018/10/23(火)22:16:19.58(+h1AjSvua.net)
771デフォルトの名無しさん [sage]
2018/10/23(火)22:34:00.35(9gwDvhi80.net)
772デフォルトの名無しさん [sage]
じゃあなんの意味があるの?
2018/10/23(火)23:26:45.20(bb2jvxz40.net)
773デフォルトの名無しさん [sage]
linaxって何?
2018/10/24(水)00:56:19.20(Zhd8G0p80.net)
774デフォルトの名無しさん [sage]
ググれないの?
2018/10/24(水)01:29:36.25(nEIaPqDo0.net)
775デフォルトの名無しさん [sage]
2018/10/24(水)04:16:13.88(lspkKr8a0.net)
776デフォルトの名無しさん [sage]
2018/10/25(木)08:07:19.33(nll2w7iZM.net)
777デフォルトの名無しさん [sage]
2018/10/25(木)08:25:20.58(LYsln+4LM.net)
778デフォルトの名無しさん [sage]
裏で怪しげなの動かしてるんだろ
2018/10/25(木)09:13:35.22(Jq5IeBu60.net)
779774 [sage]
アンチウイルスの保護停止しても変わらない
こんなときに効果的なログの張り方ってある?
一部がネックなのではなく、もう全部が緩慢な感じ
2018/10/25(木)12:22:26.50(nll2w7iZM.net)
780デフォルトの名無しさん [sage]
2018/10/25(木)12:26:06.77(U/6911CyM.net)
781デフォルトの名無しさん [sage]
リソース逼迫してないなら
ディスクI/OやネットワークI/Oや
ネットワーク構成が違うとかかね
全体的に緩慢となるとなあ
ヒント欲しいならもっと情報ださないとダメよ
2018/10/25(木)12:28:31.91(LYsln+4LM.net)
782デフォルトの名無しさん [sage]
で、スペックはどんなもんなの?
2018/10/25(木)13:18:57.91(Jq5IeBu60.net)
783デフォルトの名無しさん [sage]
2018/10/25(木)13:56:04.51(m3i6L9YGM.net)
784デフォルトの名無しさん
全然ちゃうで
2018/10/25(木)15:08:46.52(qGEaBy7DM.net)
785デフォルトの名無しさん [sage]
2018/10/25(木)16:37:44.59(LYsln+4LM.net)
786デフォルトの名無しさん [sage]
2018/10/25(木)16:59:50.46(/kJ20XbY0.net)
787デフォルトの名無しさん [sage]
レスするのは難しい
2018/10/25(木)17:51:08.23(LYsln+4LM.net)
788デフォルトの名無しさん [sage]
具体的にはフレームワークのバージョンが2.0しか許可されない職場でxdocumentを使う方法…
dllを隣に持ってきて参照しても、型自体を認識してくれない
2018/10/26(金)00:26:15.60(/Y6tHm6z0.net)
789デフォルトの名無しさん
100万データ処理してから物言いなさい
2018/10/26(金)00:59:31.47(HrTWAmck0.net)
790デフォルトの名無しさん [sage]
今はPostMessageを考えてますが型が合ってないので違う方法を探してます。
2018/10/26(金)12:40:20.23(Ho1Po0zEM.net)
791デフォルトの名無しさん [sage]
2018/10/26(金)12:40:41.09(gXWoxuJ30.net)
792デフォルトの名無しさん [sage]
TCP使えば?
直接叩くのが嫌ならgRPCとか使えばいい
WCFや.NET Remotingという手もあるけど、どちらもレガシー扱いで.NET Coreからは廃止されたから新規に使うのはお勧めしないな
2018/10/26(金)12:50:01.52(RVLSOnVjM.net)
793デフォルトの名無しさん [sage]
magiconionもあるよ
2018/10/26(金)13:06:48.12(1HfiCU8QM.net)
794デフォルトの名無しさん [sage]
2018/10/27(土)10:20:41.86(ZWpnR1MN0.net)
795デフォルトの名無しさん [sage]
2018/10/27(土)10:52:44.45(bFJ5s+tL0.net)
796デフォルトの名無しさん [sage]
余計な囲い込みを廃して今時のWebシステムの構成要素として組み入れやすくするというのがCoreなんだから、今更.NET固有のRPCなんか要らん
2018/10/27(土)11:23:19.53(zH3PfDR1a.net)
797デフォルトの名無しさん [sage]
サイトってありますか?
dllのクラスの派生元に一つクラスを挟んだ修正では問題なく動いている
ようだったので・・・。
2018/11/05(月)18:13:53.94(PEqFXj+e0.net)
798デフォルトの名無しさん [sage]
2018/11/05(月)19:00:13.51(1Mw8aOkb0.net)
799デフォルトの名無しさん [sage]
逆に使えなくなる場合は(マネージドdllで)厳密な名前付きアセンブリとして作ってある物が名前などが変わってしまった場合
厳密な名前付きアセンブリ
https://docs.microsoft.com/ja-jp/dotnet/framework/app-domains/strong-named-assemblies
>厳密な名前付きのアセンブリを参照すると、バージョン管理や名前の一意性を保護できるなどの利点を期待できます
それ以外は変更のないクラスやフィールドにアクセスする分には問題にならないはず
2018/11/05(月)19:16:09.78(W+eHh5+20.net)
800デフォルトの名無しさん [sage]
2018/11/07(水)00:50:27.11(8OYVWtUM0.net)
801デフォルトの名無しさん [sage]
Visual studio2017でWindowsクラシックデスクトップのWindowsフォームアプリケーション(.Net Framework)で書いたコードは
そのままMonoでコンパイルできるという認識であってますか?
2018/11/07(水)16:08:10.06(Qrgo3xvC0.net)
802デフォルトの名無しさん
できるし、VisualStudioでコンパイルしたものをMonoでコンパイル直す必要すらない建前なんだけど・・・・
実際には対応状況にかなりの差があってGUIアプリケーションやら暗号やらが絡むものについてはうまくいかない事が多い
2018/11/10(土)05:02:04.09(ZJVvB/9K0.net)
803デフォルトの名無しさん [sage]
2018/11/10(土)18:24:39.80(yl+mwE+c0.net)
804デフォルトの名無しさん [sage]
2018/11/10(土)21:29:39.44(BfX4LnOFa.net)
805デフォルトの名無しさん [sage]
2018/11/10(土)22:01:19.43(eyW0451M0.net)
806デフォルトの名無しさん [sage]
1. 起動オプションでデバッグ用のリモートポートを指定
2. デバッガで同じポートを指定してアタッチ
でできますが
C#(DotNet Core 2.1)では同じような事は出来ませんか?
運用環境でしか発生しないバグのデバッグってどうやればいいんでしょうか?
2018/11/11(日)10:14:46.52(zL+4Qkmba.net)
807デフォルトの名無しさん [sage]
2018/11/11(日)12:52:12.52(EeRGHZk70.net)
808デフォルトの名無しさん [sage]
試してないから知らん
2018/11/11(日)15:47:26.43(6jAVVbmKa.net)
809デフォルトの名無しさん [sage]
従業員が、2,000人以上、年間利上げが、100億円を超えるほどあるとされる。
ゲームエンジン Unity の使用料は、
・1,000万円までの売り上げなら、無料。
・2,000万円までの売り上げなら、年間5万円ほど。
・それ以上の売り上げなら、で年間18万円ほど。
とある。
でも、Wikipediaに載ってる Unity を使ったゲームのリストは、
100本あるかどうか程度しかない。
これだと、Unityには、年間2,000万円程度の収入にしかならないのでは
ないかと思う。
それに、アメリカですらプロのプログラマは、30万人くらいしかいない
とされることとも辻褄が合わないように思える。
なんかおかしくない?
2018/11/15(木)15:41:42.81(hjFVqahJ0.net)
810デフォルトの名無しさん [sage]
steamとか見てみなよ
それに×人数だから実際はもっと高い
2018/11/15(木)16:09:30.56(DsJildR5M.net)
811デフォルトの名無しさん [sage]
2018/11/15(木)16:30:30.62(hjFVqahJ0.net)
812デフォルトの名無しさん [sage]
2018/11/15(木)17:43:06.03(tBfV11FV0.net)
813デフォルトの名無しさん [sage]
プログラマ以外は何のために訪れる??
2018/11/15(木)17:50:09.14(hjFVqahJ0.net)
814デフォルトの名無しさん [sage]
たぶん半分くらいがunity製だった気がする
PCでもUnity製増えてきてるしswitchにもそこそこ出てる
日々山ほどのゲームがリリースされてるのにwikipediaで全てを網羅できるわけないと思うんだけど、なんで自分がおかしいと思わなかったの?
2018/11/15(木)17:52:04.91(tBfV11FV0.net)
815デフォルトの名無しさん [sage]
訪れる?利用するんじゃないの?
ディレクタやプランナがUnity上でプレイすることもあるし、CGデザイナやUIデザイナがUnity上で作業することもある
もちろん3Dモデリングなんかは専用のツールのほうが作業はしやすいけどね
2018/11/15(木)17:56:18.66(tBfV11FV0.net)
816デフォルトの名無しさん [sage]
安く済ませられるのなんて個人事業主か同人サークルだけ
社員が5人でもいたらまず年間売上で引っかかるんだから
大きい企業なら普通に100単位でアカウント持ってるし、小さいところでも10以上持ってるとこなんて山ほどある
2018/11/15(木)18:00:10.49(tBfV11FV0.net)
817デフォルトの名無しさん [sage]
開発者の人数分???
2018/11/15(木)18:12:20.13(hjFVqahJ0.net)
818デフォルトの名無しさん [sage]
2018/11/15(木)18:14:07.61(tBfV11FV0.net)
819デフォルトの名無しさん [sage]
2018/11/15(木)20:22:13.71(biHRXo8wM.net)
820デフォルトの名無しさん [sage]
2018/11/15(木)20:41:27.20(8sDmawlrM.net)
821デフォルトの名無しさん [sage]
2018/11/15(木)20:45:05.56(fRq//2+J0.net)
822デフォルトの名無しさん [sage]
つまり、矛盾を示す事で、間違い/捏造であることを証明する手法。
だから、ありえないような結論が出たということは、正しく証明できた
事になる。
2018/11/16(金)02:23:44.07(a546+gcL0.net)
823デフォルトの名無しさん
2018/11/16(金)04:24:32.84(/x4PzStk0.net)
824デフォルトの名無しさん [sage]
仕事でやってる人なんて会社用と個人用を別々に登録してるんじゃね
あとUnityはVRチャットで自キャラ作るのに使うから、
それも多いと思う
2018/11/16(金)14:20:33.68(+bMNmjEk0.net)
825デフォルトの名無しさん [sage]
やっぱり、そういう事もあるんだね。
どっちにしろ、Uniy のゲーム・ライブラリだけのライセンス料では、年間100億円
の売り上げにはならない気がする。
CADなども売っているので、そういう売り上げがかなりあるのかもしれない。
2018/11/16(金)19:05:12.63(a546+gcL0.net)
826デフォルトの名無しさん [sage]
2018/11/16(金)19:24:02.27(ikVu1qV7M.net)
827デフォルトの名無しさん [sage]
海外の人も Unity 発表の数値には疑問を抱いている。
ちなみに、日本のゲーム業界の開発者数(プログラマ、
デザイナ、企画含む) は、2万5,000任程度だとされ、
世界でも1チームの平均人数は5.5人程度。
Unityには、450万人もの開発者が登録されているとされる。
Unity発表の数値が正しければ、世界には、
ゲーム開発チームが、160万〜200万チームも
あることになってしまう。
「How many game developers existed in 2016?」
https://www.quora.com/How-many-game-developers-existed-in-2016
A cached version of Unity’s public relations page from July 2016 states that
Unity has 45% of the global market share and 4.5 million developers using the
platform, indicating an estimated total of 10 million individual game developers
(my guess is that “developers” means people working in game development,
including roles such as artists and game designers as well as engineers, who
could potentially use the tool).
From a 2013 Game Development Magazine survey of 1051 developers (republished by GamaSutra):
Studio size and type: 7% of respondents are individual independent devs,
19% are teams of 2-5 people, 14% on 6-10, 18% on 11-30 , 9% on 31-50,
7% on 51-80, 5% on 81-100, 8% on 101-150, 4.5% on 151-200,
5.5% on 201-300, and 3% on teams of 300+.
This indicates an average team size between 5 and 6 team members.
If each of these members falls under Unity’s classification of “developers,”
2018/12/12(水)13:45:10.42(RRyKxOPE0.net)
828デフォルトの名無しさん [sage]
200万個のアプリがある。そのうちの25%がゲームだとして、Android
には、60万ゲームある。1チーム当たり 5個のゲームを公開している
としても、12万「チーム」あることになる。日本のプロのゲーム開発者
が2万5,000人程度しかいないことを考えると、凄い人数では有る。
そもそもアプリ全体の個数もかなり多いので、アマチュアプログラマがかなり
多い事は多い。
------
There are currently over 2.6 million apps in the Google Play Store and over
2 million in the App Store. I can’t find anything to say how many of those
are games. Let’s assume 25% are games. Lets just focus on Android as
our estimation. That would mean more than 600,000 games on Google Play.
I would say the average developer has 5 games on the store. Lets use 10
to be conservative. That would mean there are 60,000 different developers.
That’s my best guesstimate. My gut tells me it’s probably more but who
knows. I know for one thing, I am a developer and I have 4 games released.
Feel free to check them out:
2018/12/12(水)13:54:09.60(RRyKxOPE0.net)
829デフォルトの名無しさん [sage]
含まれてないか、または、250万個も本当にあるかを調べることは不可能に近い
かも知れない。
そもそも本当はそんなに無かったりして。そもそも、Vectorに登録されているアプリ
だってそこまで無い気もするし。
2018/12/12(水)14:02:18.23(RRyKxOPE0.net)
830デフォルトの名無しさん [sage]
同業他社も使ってるのは意見交換会で聞いたし。
映像系でも使われ始めてるから、ゲーム業界から離れたほうがわかりやすいかも。
2018/12/12(水)14:04:10.36(3f3X1OW4d.net)
831デフォルトの名無しさん [sage]
2018/12/12(水)14:05:59.54(35krN4020.net)
832デフォルトの名無しさん [sage]
使う人の人数は作る人の人数より100倍程度は居るのが普通だから。
ただ、GooglePlayに登録されているアプリ数が本当に250万本もあるかどうか、
そのまま信じていいかについては注意すべき。
そもそも250万種類の一覧表をテキストファイルで見られるかどうか。
旧 nifty serve なんかも、「シェアウェアは儲かる」と言ってパソコン通信
加入者を増やそうとしたらしい。その際、「秀丸エディタ」が1億円の売り上げ
がある、とされたが、その作者が富士通社員だったことは公然の秘密。
2018/12/12(水)14:43:30.92(RRyKxOPE0.net)
833デフォルトの名無しさん [sage]
レコード数250万のDBなんてざらにあるぞ
2018/12/12(水)14:50:38.86(4WsM1r+i0.net)
834デフォルトの名無しさん [sage]
そういう意味じゃなくって、GooglePlay から、全てアプリが載った一覧表を一度に
ダウンロードできるのかってこと。
検索するだけだったら、本当に250万種類もあるかは誰にも分からないじゃない
かと。
2018/12/12(水)14:55:46.58(RRyKxOPE0.net)
835デフォルトの名無しさん [sage]
としか言いようがないな
2018/12/12(水)14:59:31.85(Gas9nc7W0.net)
836デフォルトの名無しさん [sage]
2018/12/12(水)16:21:36.71(YkPnkG/ad.net)
837デフォルトの名無しさん [sage]
18万円はProだろ。
Enterpriseは別だよ。
2018/12/12(水)16:52:49.38(3f3X1OW4d.net)
838デフォルトの名無しさん [sage]
1レコードがMB単位でデータあるんか?
1レコード1KBで2.5GB
最近のゲームなんて10GB超えのダウンロード当たり前みたいなとこあるじゃん
250万行のテキストはあんま開きたくはないが
2018/12/12(水)20:04:55.15(fYjPqF3od.net)
839デフォルトの名無しさん [sage]
もちろん両方もそれなりにいるだろうけど
それでVRまで含めれば説明がつく、って意味がわからん
2018/12/12(水)20:09:07.70(fYjPqF3od.net)
840デフォルトの名無しさん [sage]
企業ユースでは数人のチームなんてのはあり得なくて結構な人数分揃えるからね。
CADと連携したりなんやかんやで、ゲーム開発より金はかかるから、プロダクトの割合とは一致しないよ。
2018/12/12(水)20:16:58.44(3f3X1OW4d.net)
841デフォルトの名無しさん [sage]
VRプログラム雑談【Unity/UnrealEngine】【HTC Vive/Oculus Rift/その他VR】
https://mevius.5ch.net/test/read.cgi/tech/1478142101/
数レスならともかく赤いのまでいるし
2018/12/12(水)20:31:17.51(kvTCOjS80.net)
842デフォルトの名無しさん [sage]
2018/12/12(水)21:46:33.67(Lm9ykMW+0.net)
843デフォルトの名無しさん
webapiにて
var task = Task.Factory.StartNew
これで重い処理をバックグラウンドで処理させています。
このtask開始時にDBにProcessThread.IdとProcessThread.StartTimeを落として
別のwebapiでDBに落としたIdとStartTimeを使って
GetCurrentProcess().Threadsを検索して定期的に生きてるかのチェックを行っています。
これがけっこう不安定みたいで、バックグラウンドの処理が終わる前に
ProcessThreadが検索できなくなる場合があります。
最初にStartNewさせた際のProcessThreadが生きてる正しい確認方法はないでしょうか?
ブラウザを閉じた場合を考慮してProcessThreadで確認を行いたいです。
2018/12/14(金)16:44:56.02(nWTWWp6e0.net)
844デフォルトの名無しさん
変な質問ですね。
var taskを見るのではなく、その他の方法で
バックグラウンド処理が動いてるかの確認が行いたいです。
2018/12/14(金)17:44:35.68(nWTWWp6e0.net)
845デフォルトの名無しさん
自己解決です。
static public Task wkTaskを宣言しておいて
wkTask= Task.Factory.StartNewで作成したあと、ブラウザを閉じて
開き直してもwkTaskは生きてますね。
スレ汚しすいませんでした。
2018/12/14(金)18:14:11.54(nWTWWp6e0.net)
846デフォルトの名無しさん [sage]
2018/12/14(金)21:29:27.54(OUs3lGdw0.net)
847デフォルトの名無しさん [sage]
2018/12/15(土)02:43:07.58(LeOuIFUL0.net)
848デフォルトの名無しさん [sage]
2018/12/15(土)16:24:19.51(U8VjJ+lV0.net)
849デフォルトの名無しさん [sage]
2018/12/26(水)11:49:06.15(yRPOvGGU0.net)
850デフォルトの名無しさん [sage]
どうしてもネスト深くなるの辛い
2019/01/09(水)13:31:28.35(C73LM3okM.net)
851デフォルトの名無しさん [sage]
C#8.0
2019/01/09(水)15:23:40.58(c4aAB3Aqd.net)
852デフォルトの名無しさん
同じと思ってますが・・・・・。事実は違うようです。参照だと渡し元も変更される、っていう違いは分かります。
それ以外の違いはあるんでしょうか?
2019/02/10(日)17:55:21.67(Y+0FbWW50.net)
853デフォルトの名無しさん [sage]
2019/02/10(日)18:14:21.76(vpLDyodj0.net)
854デフォルトの名無しさん [sage]
どうあって欲しいんだよ一体
2019/02/10(日)18:17:54.37(Mw20IJUM0.net)
855デフォルトの名無しさん [sage]
ここらへんを見てみればいいかと
https://dobon.net/vb/dotnet/beginner/byvalbyref.html#section3
かんたんに言うとどっちでも渡されたオブジェクトの中身は変えられるけど、ref付けないと新しいオブジェクトを設定して呼び出し元に返せないってこと
2019/02/10(日)18:43:21.99(vOpxNkmL0.net)
856デフォルトの名無しさん [sage]
で、参照値以外の値...とりあえず非参照値と呼ぶと
非参照値でも、refつけない値渡しとref付ける参照渡しできる。
全部で4パターンあるってこと 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
2019/02/10(日)18:57:09.81(ynO2ssbq0.net)
857デフォルトの名無しさん [sage]
簡単なので難しく考えてはだめ。すごくシンプルな話。
その型の値(その型の変数に格納される値)を渡すのが値渡し。
その型の変数の「場所」を渡すのが参照渡し。
さらっと書いたけど、「その型の値 = その型の変数に格納される値」なのはよく理解する必要がある。
つまり、参照型の変数に格納される値って何だったか要再考。
変数とはメモリ上に割り当てられた特定の領域のこと。
だからその領域のバイト列のコピーを渡すのが値渡しで、
領域の先頭アドレスを渡すのが参照渡しだと思えばいい。
参照渡しでメソッドが受け取る情報は「変数の」場所なので、参照渡しの引数に
リテラルや式を渡すことは出来ない。
2019/02/10(日)19:18:44.11(zgWWffC0a.net)
858デフォルトの名無しさん [sage]
デフォ参照型とデフォ値型の区別がついておらずにデフォ参照型で実験をしてrefでも素渡しでも変わらないやんってことじゃないか
2019/02/10(日)19:59:44.58(xbk//Ba50.net)
859デフォルトの名無しさん [sage]
2019/02/10(日)20:36:28.11(3Dzzkr73a.net)
860デフォルトの名無しさん [sage]
2019/02/10(日)20:53:04.89(OiPWe/iEa.net)
861デフォルトの名無しさん [sage]
2019/02/10(日)21:03:14.46(c1xIq/Nm0.net)
862デフォルトの名無しさん [sage]
オフショアが移植したコードがそんなんばっかし
2019/02/11(月)08:03:59.18(RCleUAyA0.net)
863デフォルトの名無しさん [sage]
他の手段使えるならそっちでいいわな
未初期化変数指定できんのも地味にイラッと来るし
2019/02/11(月)15:02:26.65(RVSdpjZja.net)
864デフォルトの名無しさん [sage]
そういう場合はrefではなくoutを使う
2019/02/11(月)15:22:08.28(xSGeZZ3R0.net)
865デフォルトの名無しさん [sage]
2019/02/11(月)15:23:06.12(MkFOBvt90.net)
866デフォルトの名無しさん [sage]
2019/02/11(月)15:23:27.15(MkFOBvt90.net)
867デフォルトの名無しさん [sage]
返り値だけで判別させて
2019/02/11(月)16:36:40.92(2icS/4sTa.net)
868デフォルトの名無しさん [sage]
Swap関数を定義する時くらしか適切な例が思い付かねえ
2019/02/11(月)16:54:38.75(I8dqqL3E0.net)
869デフォルトの名無しさん [sage]
androidでもMVVM使いまくってるけどrefないkotlinやjavaでやると...
2019/02/11(月)18:26:18.92(2ERt5pT00.net)
870デフォルトの名無しさん [sage]
どういうときにそれを使いまくるんだ?
2019/02/12(火)19:50:18.92(u96ReIy/0.net)
871デフォルトの名無しさん [sage]
2019/02/12(火)21:01:30.06(KFZGfstbM.net)
872デフォルトの名無しさん [sage]
有り体に言えば自身のプロパティ(のバックストア)を差し替えるジェネリックメソッドを基底クラスで定義するのに使うだけ
2019/02/12(火)23:51:08.44(HQcd2HqP0.net)
873デフォルトの名無しさん [sage]
関係ないけどstaticメソッドって呼び出すときにいちいちインスタンスを生成する必要がないって以外のメリットあるのかな?
2019/02/13(水)00:40:04.33(6JezjdzR0.net)
874デフォルトの名無しさん [sage]
まあメリットって発想がそもそもおかしい。
例えばDouble.Parseがstaticなのはその方が意味的に自然だから
インスタンスメソッドである必然性がないし、インスタンスメソッドでは不自然だから
2019/02/13(水)01:53:30.80(sK/raQIQa.net)
875デフォルトの名無しさん [sage]
パフォーマンス
2019/02/13(水)04:15:53.43(VGvE+KfY0.net)
876デフォルトの名無しさん [sage]
特にdictionaryとか拡張必須だし
割とc#好きだけどこれはほんとアカン
2019/02/14(木)21:00:36.96(YtWtNE43a.net)
877デフォルトの名無しさん [sage]
何がどうあかんのか具体的に
2019/02/14(木)22:13:27.13(qKlS4dB9d.net)
878デフォルトの名無しさん [sage]
何が問題?
2019/02/14(木)22:45:20.23(tlcLfILV0.net)
879デフォルトの名無しさん [sage]
2019/02/15(金)00:22:49.50(dIP2EtTm0.net)
880デフォルトの名無しさん [sage]
Javaは何が違うん?
2019/02/15(金)00:39:22.49(2WeUN81J0.net)
881デフォルトの名無しさん [sage]
2019/02/15(金)03:04:36.23(l1U6kYAka.net)
882デフォルトの名無しさん [sage]
今はTryあるからいいけど
2019/02/15(金)21:54:02.82(kAPwBxa3M.net)
883デフォルトの名無しさん
2019/02/15(金)22:47:38.37(izkrr7dEa.net)
884デフォルトの名無しさん [sage]
2019/02/16(土)08:41:04.77(q1DAaOKG0.net)
885デフォルトの名無しさん [sage]
とりあえずcatch(Exception e)とかしちゃってるけど本来はこんなのダメだよな……
2019/02/16(土)10:36:35.40(8cj+4+Hl0.net)
886デフォルトの名無しさん [sage]
2019/02/16(土)11:09:50.80(mveZudXk0.net)
887デフォルトの名無しさん [sage]
例外は握りつぶしてこそ華
2019/02/16(土)12:03:59.89(mmBt6tnL0.net)
888デフォルトの名無しさん [sage]
2019/02/16(土)12:43:39.03(LCZTEEhT0.net)
889デフォルトの名無しさん [sage]
> 例外っていろんな種類あるけど具体的に何を使えばいいのかよくわからなくて
投げる方で悩むのはわかるけど
> とりあえずcatch(Exception e)とかしちゃってる
受ける方はどれ受けるべきかはわかってるでしょ
最終手段としてよくわからんけどエラーが発生したから終了するね
って言うならcatch(Exception e)もありだと思うが
2019/02/16(土)13:08:53.78(q1DAaOKG0.net)
890デフォルトの名無しさん [sage]
2019/02/16(土)13:37:31.27(mveZudXk0.net)
891デフォルトの名無しさん [sage]
2019/02/16(土)14:43:51.47(NIO8UzEI0.net)
892デフォルトの名無しさん [sage]
2019/02/16(土)15:01:00.34(NEtPpdWW0.net)
893デフォルトの名無しさん [sage]
2019/02/16(土)15:02:54.74(PR5Tb5Rba.net)
894デフォルトの名無しさん
こんな感じのコードを後輩が書いてくるんだよ↓
public interface IMessenger {
__public MessageReceived();
}
public abstract class Messenger : IMessenger{
__public abstract void MessageReceived();
__public abstract void Retry();
}
2019/02/16(土)15:03:48.09(uy2P96bkM.net)
895デフォルトの名無しさん
__public override void MessageReceived(){
____//処理
__}
__public override void Retry(){
____//処理
__}
}
public class Alarm : Messenger {
__public override void MessageReceived(){
____//処理
__}
__public override void Retry(){
____//処理
__}
}
public class Communication {
__public void SendMessage(IMesssenger message){
____SendMessage(message);
__}
__public void Received(){
____var received = GetMessage() as IMessage;
____received?.MessageReceived();
__}
}
2019/02/16(土)15:04:05.72(uy2P96bkM.net)
896デフォルトの名無しさん
public class Communication{
__public void SendMessage(string message){
____SendMessage(message);
__}
__public void Received(){
____var received = GetMessage();
______switch(received.First()){
case "0":
MailEvent(received);
break;
case "1":
AlermEvent(received);
break
____}
__}
}
こんな感じで書くように矯正しといた
CSVで2文字で分けるって言ってるんだから
何が起こってるかわかるように書くことを意識してもらわないと
2019/02/16(土)15:04:31.94(uy2P96bkM.net)
897デフォルトの名無しさん
ただ客は例外が起きてもcatchで握りつぶしてスルーした方が文句言わないんだよな……
2019/02/16(土)15:06:36.58(8cj+4+Hl0.net)
898デフォルトの名無しさん [sage]
2019/02/16(土)15:14:21.65(auHH3gBua.net)
899デフォルトの名無しさん [sage]
2019/02/16(土)15:19:24.61(PR5Tb5Rba.net)
900デフォルトの名無しさん [sage]
2019/02/16(土)15:41:54.82(q1DAaOKG0.net)
901デフォルトの名無しさん [sage]
2019/02/16(土)22:53:53.99(gbHoDgK/0.net)
902デフォルトの名無しさん [sage]
2019/02/17(日)00:48:25.53(0sFVNd3o0.net)
903デフォルトの名無しさん [sage]
new byte[64];みたいに新規確保してコピーしか方法ないんだろうか
Unsafe.As等で新規確保無しで出来るかと思って色々試してみたけど上手くいかない
2019/02/17(日)14:42:24.50(QIeMqQFm0.net)
904デフォルトの名無しさん [sage]
全然別の型なんだしあるわけないでしょう。
そういう危なっかしい機能を排除してるのがC#の売りの一つだったはずなわけで
コピーする機能ならMarshalあたりにあるんじゃない?
2019/02/17(日)15:01:42.36(99sHKv96a.net)
905デフォルトの名無しさん [sage]
>「byte[]にする」が「byte[]とみなして扱えるようにする」って意味なら
そういうことです
あるわけないと言いますが、その逆はあるので出来るかなと思い
(byte*やref byteで先頭を指定し自作のstructとして読ませる。少しずらせばbyte[]を自作クラスとして読ませることも可能)
2019/02/17(日)15:16:25.11(QIeMqQFm0.net)
906デフォルトの名無しさん [sage]
2019/02/17(日)15:21:31.28(Ox4HquXb0.net)
907デフォルトの名無しさん [sage]
無理じゃないかなあ
やっぱこれからはSpanですよスパンスパン
2019/02/17(日)15:23:52.52(UNDanSNQ0.net)
908デフォルトの名無しさん [sage]
public struct MyStruct { public int Value1, Value2, Value3, Value4 };
byte[] data = new byte[16] { 1,0,0,0, 2,0,0,0, 3,0,0,0, 4,0,0,0 };
ref var myStruct = ref Unsafe.As<byte, MyStruct>(ref data[0]);
これでmyStruct .Value1は1、myStruct .Value2は2, myStruct .Value3は3, myStruct .Value4は4と余計なコピー無しに直接読み書きできる
byte[]からclassの場合はFieldOffset指定して各フィールドを4バイト後ろにづらないと出来ないから実用は難しいけど一応可能
2019/02/17(日)15:27:09.29(QIeMqQFm0.net)
909デフォルトの名無しさん [sage]
と大体同じではあります
2019/02/17(日)15:31:55.60(QIeMqQFm0.net)
910デフォルトの名無しさん [sage]
記憶力悪いのでVSがC#ほど助けてくれないC++に行くのは億劫なため質問させてもらいました
2019/02/17(日)15:40:47.44(QIeMqQFm0.net)
911デフォルトの名無しさん [sage]
2019/02/17(日)16:16:49.38(rf6p5Xt1a.net)
912デフォルトの名無しさん [sage]
Span<T>でなければ、具体的なシナリオにも依るけど元からbyte[]で作って
TypeHandleとlengthのsizeof(IntPtr)*2分ずらした所を使い回す方が賢明
結局fiexdと一緒な訳だが、P/Invokeならbyte[]渡してもゼロコピーの筈だし
abstract class Union<T> where T : struct {
internal readonly IntPtr length;
public T Value;
}
みたいなオレオレ実装をILキャストした事もあったな…後はSafeBufferとか
2019/02/17(日)16:27:59.23(tKx1WgvG0.net)
913デフォルトの名無しさん [sage]
alpine用にself containedでビルドしても動かなかった
libstdc++とか色々インストールしたら動いたけどさ
dotnetコマンド同梱と比較してコンテナサイズも殆ど変わらないし意味あるのかなこれ
2019/02/21(木)12:35:31.38(78/oBfjca.net)
914デフォルトの名無しさん [sage]
おばか
2019/02/21(木)12:44:14.85(IWeqLQBdd.net)
915デフォルトの名無しさん [sage]
公式ドキュメントにも注釈あるけどLinuxは仕様上完全に断ち切るのは難しいんじゃない?
Windowsだと同梱のファイルだけでそのまま動くけど
2019/02/21(木)14:33:57.39(XSMrGlqdp.net)
916デフォルトの名無しさん [sage]
2019/02/21(木)17:41:05.62(DKuxuLxMa.net)
917デフォルトの名無しさん [sage]
らくちんらくちん
2019/02/21(木)18:56:24.09(IWeqLQBdd.net)
918デフォルトの名無しさん [sage]
2019/02/21(木)19:03:47.82(DKuxuLxMa.net)
919デフォルトの名無しさん [sage]
2019/02/21(木)19:11:19.09(IWeqLQBdd.net)
920デフォルトの名無しさん
どんな用途でポインタを使いたいのかわかんないけど、大抵の場合はストリームで代用できるんじゃないのかな
2019/02/26(火)16:27:59.06(jgGxVc0K0.net)
921デフォルトの名無しさん [sage]
2019/02/26(火)19:45:51.64(KXA/2sKca.net)
922デフォルトの名無しさん [sage]
バイナリデータもストリームで扱える
2019/02/26(火)22:52:44.40(cz3vAcnh0.net)
923デフォルトの名無しさん [sage]
2019/02/26(火)23:01:06.66(w0dNr8TE0.net)
924デフォルトの名無しさん [sage]
アンマネージとのやり取りだとrefとかoutにしとけばあとは何も考えなくていいから助かる
2019/02/27(水)22:56:28.74(0yfFFlZD0.net)
925デフォルトの名無しさん [sage]
という論理式を書く場合
(a==1) || (a==4) || (a==5) || (a==7)
とswitch文以外でもっと手っ取り早く書く方法ありますか?
2019/03/02(土)10:07:34.38(yMVoU8j+0.net)
926デフォルトの名無しさん [sage]
その表現が一番端的でわかりやすいのではないですか?
2019/03/02(土)10:20:00.75(Ud+LwFnR0.net)
927デフォルトの名無しさん [sage]
()いらない
2019/03/02(土)10:21:50.56(Vr07loEY0.net)
928デフォルトの名無しさん [sage]
2019/03/02(土)11:05:26.20(heck9gfNa.net)
929デフォルトの名無しさん [sage]
その程度ならその書き方が一番わかりやすいと思うが比較対象がもっと多いとか可変にしたいとかなら
var C = new HashSet<int>(){1, 4, 5. 7};
if(C.Contains(a)){ … }
とかもある
2019/03/02(土)11:08:41.04(Co1I1oSR0.net)
930デフォルトの名無しさん [sage]
数が少ないうちはいいんですが
>>927
カッコの上でShift+Ctrl+}すると
式部分を一発選択できるのであえてそうしてる
>>928
これがいい感じです
少しオーバーヘッドが気になりますが
2019/03/02(土)14:06:20.64(yMVoU8j+0.net)
931デフォルトの名無しさん [sage]
a IN (1,4,5,7)
てかければいいなとおもうが、aが右側になっちゃうのが若干違和感
2019/03/02(土)14:59:32.01(AX9YyrwL0.net)
932デフォルトの名無しさん [sage]
2019/03/02(土)15:04:48.62(Nsc0DUxH0.net)
933デフォルトの名無しさん [sage]
オーバーヘッドなんぞ無きに等しい
2019/03/02(土)19:46:04.84(5yoALKCSa.net)
934デフォルトの名無しさん [sage]
HashSetやDictionaryは要素の数に左右されない方法でアクセスを行うから
含まれてるか否かといったような検索用途に限定すれば1個だろうが1万個だろうが常に高速にアクセス出来る
Listや配列は要素数に比例してアクセス時間かかるようになるが
2019/03/02(土)20:18:35.52(zHCAEP8E0.net)
935デフォルトの名無しさん [sage]
という大前提を最初の質問時に明記しないのか
2019/03/02(土)21:00:42.79(RzDDiNewd.net)
936デフォルトの名無しさん [sage]
2019/03/02(土)22:03:38.03(CQ1ng92ga.net)
937デフォルトの名無しさん [sage]
もとの要素がどこにあるかよくわからんけどな
HashSet作成して要素セットするオーバーヘッドがあるだろう
格納時にハッシュ値計算するから比較のコストが低いわけで、その分格納にコストがかかるんだぜ
2019/03/03(日)01:24:26.71(5kU0Dorz0.net)
938デフォルトの名無しさん [sage]
それが差となって現れるようなユースケースとも思えんしなあ
2019/03/03(日)02:51:31.92(0iBtFMi0a.net)
939デフォルトの名無しさん [sage]
2019/03/03(日)08:04:01.95(1vB8VE1Z0.net)
940デフォルトの名無しさん [sage]
そいつの質問に常に合致した話題じゃなきゃダメなの?
ひとつの質問があって、それを機会に派生してもいいし、あとは自由に意見しあえってもいい
どんだけ構ってほしいんだ
2019/03/03(日)09:05:10.09(wNoJ2Bbs0.net)
941デフォルトの名無しさん [sage]
自由でいいと思うなら
かってにやってりゃいいじゃん
どんなけかまってほしいの?
2019/03/03(日)09:06:48.39(467OkvF30.net)
942デフォルトの名無しさん
正直これくらいの質問なら好きにしろって感じだろ
2019/03/03(日)09:27:17.06(qK6tlWl9a.net)
943デフォルトの名無しさん [sage]
2019/03/03(日)10:44:42.90(wOo332Lk0.net)
944デフォルトの名無しさん [sage]
(1) 全要素を常に == で評価
(2) 全要素を同じ演算子で評価するが、==以外の演算子も使われる場合がある
(3) 要素ごとに個別の評価方法
で最適な答えが変わりそうなんでその辺ははっきりした方がよかったかもね。
質問者は
(a==1) || (a==4) || (a==5) || (a==7)
の代替案を聞いてるんだから普通に考えれば要素数はそんなに多くないはずで
パフォーマンス云々は風呂敷広げすぎだろうw
2019/03/03(日)12:55:52.71(3ZaOSZpTa.net)
945デフォルトの名無しさん [sage]
例えば独自クラスで、こんなのがある。
独自クラス{
string name {get; set;}
decimal num1 {get; set;}
decimal num2 {get; set;}
}
というのがあって、グリッドビューにList〈独自クラス〉をデータソースとして渡して表示させたいのですが
numは3,4,と増える可能性があります。(型はすべて同じ)
この場合にソースコードをメンテナンスすることなくnumの増減に対応するにはどのようにすれば良いでしょうか?
2019/03/03(日)13:55:56.58(Nfj27eon0.net)
946デフォルトの名無しさん [sage]
とか、
Dictionary<int,decimal> num { get; set; }
じゃダメなの?
なんか設計レベルで問題がありそうな気もするけど。
2019/03/03(日)14:46:12.80(NjSnZzWN0.net)
947デフォルトの名無しさん [sage]
配列なりListなり使えばいいだけじゃねーの?
2019/03/03(日)15:03:54.49(EUJr/Yte0.net)
948デフォルトの名無しさん [sage]
ソースの冒頭で定数を定義したい。
2019/03/03(日)16:04:38.55(lbgm80aQ0.net)
949デフォルトの名無しさん [sage]
列が可変になるのならデータテーブル使うのが楽だと思う。クラスでやるとしたらexpandoで作るもなくはないと思うけど、それなら上にある通りDictionaryの方がシンプルではないかと。
2019/03/03(日)16:50:33.82(fEIk0m7q0.net)
950デフォルトの名無しさん [sage]
質問者がオーバーヘッド気になるとか発言してるので、パフォーマンスを考慮することに意味はあるんじゃね
まあ、ずらずらと手書き出来る程度の要素数ならどれ使っても大差ないって言っとくべきではあるかもしれんが
2019/03/03(日)21:37:48.24(5kU0Dorz0.net)
951デフォルトの名無しさん [sage]
2019/03/05(火)02:59:42.60(01ls3eLR0.net)
952デフォルトの名無しさん [sage]
詳しく
2019/03/05(火)03:03:58.87(uKTTdpNO0.net)
953デフォルトの名無しさん [sage]
2019/03/05(火)04:19:27.01(6CrjVVG40.net)
954デフォルトの名無しさん [sage]
詳しく
2019/03/05(火)08:33:58.12(Q/LSKwqY0.net)
955デフォルトの名無しさん [sage]
それを言ったらJavaも同じだから泥アプリとか簡単に解析出来るけど
2019/03/05(火)12:55:11.87(xG/V/FM40.net)
956デフォルトの名無しさん [sage]
難読化が必要な理由 | Microsoft Docs https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/ms227271(v=vs.90)
2019/03/05(火)15:29:31.29(zDemJk6G0.net)
957デフォルトの名無しさん [sage]
2019/03/05(火)20:24:10.57(X7v05Ly8M.net)
958デフォルトの名無しさん [sage]
2019/03/05(火)20:50:38.72(phKvM6KvM.net)
959デフォルトの名無しさん [sage]
そもそもOSSが当たり前みたいなこんな時代に
2019/03/07(木)00:13:41.81(30anmeL+0.net)
960デフォルトの名無しさん [sage]
見せられない処理はAPIの向こう側だしね
2019/03/07(木)01:10:43.27(tnYmqFtJ0.net)
961デフォルトの名無しさん [sage]
2019/03/07(木)19:34:45.84(Kf1DGo5Q0.net)
962デフォルトの名無しさん [sage]
ILSpyなんかを通すとオリジナルより見やすく逆コンパイルしてくれるからな。
2019/03/08(金)13:12:26.41(5Js7CVOV0.net)
963デフォルトの名無しさん [sage]
2019/03/08(金)14:21:31.67(p3uWfhXt0.net)
964デフォルトの名無しさん [sage]
2019/03/08(金)18:09:25.36(XK/LB6aKd.net)
965デフォルトの名無しさん [sage]
2019/03/08(金)19:36:48.59(W3YxLksd0.net)
966デフォルトの名無しさん [sage]
そろそろここも終わるけど
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
でいいよね。隔離スレをわざわざ新しく立てる必要もないし
2019/03/08(金)20:13:44.24(S6VEx3Fw0.net)
967デフォルトの名無しさん [sage]
ガベージコレクションが前提の言語を使ってる以上無駄な努力に終わります
性能絶対重視なら最初からCやASMで書いた方が良いし
よほどのスパーハカーでもない限りそんな努力が報われるほどの性能差にならないと思われます
2019/03/14(木)19:31:23.01(uF+nNtm+0.net)
968デフォルトの名無しさん [sage]
コンパイラに勝てると思ってるのか?
2019/03/14(木)21:34:22.29(DpwzO91B0.net)
969 [sage]
2019/03/14(木)21:49:31.03(NTAm4EVS0.net)
970デフォルトの名無しさん
2019/03/14(木)21:52:50.86(SvZaCm1k0.net)
971デフォルトの名無しさん [sage]
直接機械語で書くしかないでしょう
2019/03/14(木)22:53:26.94(fi3bTXEpa.net)
972デフォルトの名無しさん [sage]
2019/03/14(木)22:56:05.33(6sRnwOjo0.net)
973デフォルトの名無しさん [sage]
2019/03/14(木)22:59:30.46(fi3bTXEpa.net)
974 [sage]
その需要の一例を知りたいですね…
2019/03/14(木)23:12:09.22(NTAm4EVS0.net)
975デフォルトの名無しさん [sage]
2019/03/14(木)23:13:00.27(3EvgP48J0.net)
976デフォルトの名無しさん [sage]
必要を無視すればBCD演算とか。
最終的にBCD演算命令に翻訳されるようなコードをC#では(Cでも)書けないはず。
まあx86ならマルチメディア系の命令とかが王道なんだろうけどね知らんけど。
2019/03/14(木)23:43:27.63(fi3bTXEpa.net)
977デフォルトの名無しさん [sage]
2019/03/14(木)23:48:39.57(nlDJyEEg0.net)
978デフォルトの名無しさん [sage]
ASMによる人力高速化も(コスト的に見合うという点で)意味があった
Cコードで表現されてない知識も使ってちっちゃな関数でも結構簡単に数十クロック程度は高速化できた
Cコードで表現されてない部分を使えば、今もやろうとすれば高速化はできると思う(コストに見合わないだけで)
(変数aとbは実はいつも a<b なのでこのニーモニックが使えるとか、
ここの条件判定文は実は別の変数を計算したときのレジスタのフラグと同じ意味なので計算しなおす必要はないとか)
>>977 の話題に近いけど、
今ならASMの意味があるのはJITまわりとかかな?
2019/03/15(金)20:54:11.25(lWIPCB/k0.net)
979デフォルトの名無しさん [sage]
人間がそこまでできるかな?
オレは20年ぐらい前にmemcpyを高速化するためにアセンブラで組んだ。
今思うとCで組んでコンパイラに最適化させるべきだったかもね。
若気の至りだ。
2019/03/15(金)21:48:50.55(D5NVJqkY0.net)
980デフォルトの名無しさん [sage]
最新の特殊命令なんか不要だが、68Kなんか最高の素材だと思うわ
2019/03/16(土)00:00:03.09(6P+M3e6E0.net)
981デフォルトの名無しさん [sage]
実行ハードでスケールするか、安定的な最適化か
汎用性を考えれば普通は後者になるだろうけど
というかC#ならCILレベルに留めるべきではねか
2019/03/16(土)00:15:39.88(sQCNGdE30.net)
982デフォルトの名無しさん [sage]
2019/03/16(土)05:39:50.41(lafVI2fNM.net)
983デフォルトの名無しさん [sage]
アセンブラでハック必要な用途なんてないだろな
2019/03/16(土)14:26:07.02(gcoRXnnM0.net)
984デフォルトの名無しさん [sage]
wasmになる前のLLVMの段階で既に最適化が出来る。
あと、詳しくは分からないが、wasmになった後の最適化も、
Emscriptein の opt.exe で一応はできるらしい。
但し、asm.jsとの「グルー」が複雑に絡んでいるので、
何をやっているかを理解するのはかなり難しく、
wasmで最適化しているのか、asm.jsで最適化しているのかは
忘れてしまった。
2019/03/16(土)15:56:32.11(zOgp3uDK0.net)
985デフォルトの名無しさん [sage]
2019/03/16(土)19:51:51.79(Ox1b9ZEv0.net)
986デフォルトの名無しさん
GetFilesやGetDirectoriesのようなメソッドでエクスプローラーと同じ順に格納してくれるメソッドが欲しい
ソートし直すのたまに忘れてしまう
2019/03/16(土)20:27:45.17(0AnVFDDg0.net)
987デフォルトの名無しさん [sage]
自分でユーティリティライブラリ作っとけば
2019/03/16(土)21:07:46.17(d1qKciPD0.net)
988デフォルトの名無しさん [sage]
2019/03/16(土)21:16:16.11(LVoOn4ja0.net)
989デフォルトの名無しさん [sage]
そんな単純な話じゃないはず
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
2019/03/16(土)21:24:01.46(m10rap++a.net)
990デフォルトの名無しさん [sage]
2019/03/16(土)21:28:11.62(aNdxzMMr0.net)
991デフォルトの名無しさん [sage]
なるほど
2019/03/16(土)21:28:35.53(fhPcOkRld.net)
992デフォルトの名無しさん [sage]
2019/03/16(土)22:01:49.01(wgxWGDdm0.net)
993デフォルトの名無しさん [sage]
普通の頭持ってりゃ名前のソートであることぐらいはわかりそうなもんだけどなw
2019/03/17(日)07:10:24.22(WBoQCy0zM.net)
994デフォルトの名無しさん
2019/03/20(水)07:42:02.03(74ozQqG6a.net)
995デフォルトの名無しさん [sage]
単体で入れても綺麗には削除できんぞ
2019/03/20(水)07:54:36.58(LAIwbd+70.net)
996デフォルトの名無しさん [sage]
2019/03/20(水)09:19:38.34(W/HUsmxnM.net)
997デフォルトの名無しさん
2019/03/20(水)12:21:41.32(NDw+q9p/a.net)
998デフォルトの名無しさん [sage]
アンインストールに関しては「意図としては」大丈夫なように作ってあるはず。
やってみたら?
最悪新しい方の修復インストールかOSの復元機能で何とかなるでしょ
2019/03/20(水)12:41:43.72(JR1ztFlDa.net)
999デフォルトの名無しさん [sage]
俺のPCにもVisual Studio 2010から全バージョンインストールされてるから参考にする
2019/03/20(水)14:05:02.42(vc7KPojzd.net)
1000デフォルトの名無しさん [sage]
C#使う分には複数バージョンあって困ることないし
2019/03/20(水)18:48:25.28(jN76oFxX0.net)
1001デフォルトの名無しさん [sage]
2019/03/20(水)18:53:06.53(CvIVS+n40.net)
1002デフォルトの名無しさん [sage]
そのあとふと2015入れてみたら俺環だろうけど2015でビルド出来なくなった。2017の方は問題なし
そして問題のあった2015を再びアンインストールしたけど2017でずっと問題なし
>>997
2017だけ使う分には問題ないはず
2019/03/20(水)18:54:52.24(jJ3kq/hZ0.net)
10031001
新しいスレッドを立ててください。
life time: 697日 10時間 2分 52秒
Over1000Thread.net)
1004過去ログ ★
[過去ログ]