1 名前:デフォルトの名無しさん (ワッチョイ 1e06-m8Mb) mailto:sageteoff [2017/04/22(土) 08:52:00.93 ID:iVvswOrb0.net] ■Visual Studio 2017 Community(無償の統合開発環境)等はこちら www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part92 echo.2ch.net/test/read.cgi/tech/1485589613/ ■次スレは>>970 が建てる事。 建てられない場合は他を指定する事。 VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
653 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 03:30:51.92 ID:x4iNladl0.net] Zipしたものをforeachで回すのが一番自然 IEnumerable<int> Hoge(IEnumerable<int> A, IEnumerable<int> B) { var i = 0; foreach (var eq in A.Zip(B, (a, b) => a == b)) { if (!eq) yield return i; i++; } } 自分はやらんけどLinqならこう dataA.Zip(dataB, (a, b) => a == b).Select((eq, i) => eq ? -1 : i).Where(i => i >= 0);
654 名前:611 mailto:sage [2018/08/08(水) 05:09:02.93 ID:9ryRYesD0.net] Zip知らんかったわー。超参考にする。
655 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 13:38:09.59 ID:CtU8HUVGd.net] インデックスが必要な時、わざわざselect挟んでインデックス貼るの馬鹿らしい感じがして好きになれないんだけど仕方ないよね? そんなにインデックスを参照することが多いなら生成時に一緒に貼っとけって話かもしれんが… そもそもlinqマスターはインデックスを必要としない設計にいつもなるの? 自分もインデックスが無くて済むように考えるけど結果的に必要になる箇所が細部で出てくるんだよね
656 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:08:00.53 ID:csO2M6exd.net] どうしても必要な時はselect((value, index) => new {V = value, I = index})でインデックス引っ張ってるわ それでもインデックス欲しい条件1行で書けるのが楽だからLinq便利派だけども
657 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:25:20.52 ID:CtU8HUVGd.net] >>630 俺もそれ、ちょくちょくするんだけどforで回したほうがよくね?って思っちゃうことがあるんだよね もちろん処理によりけりと言ってしまえばそれまでなんだけど 比較するようなもんじゃないかもしれんがjavascriptなんかだと大抵インデックス取れるから、そっち触ったあとにC#に戻ると処理考えるときにインデックスありきで考えがちになっちゃう気がしてる
658 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:32:55.42 ID:CtU8HUVGd.net] 先に出てた課題でもzipしたあと、そのままlinqで処理を完結させるか、zip後にforで回すか 個人的にはzipがどちらにせよ入るなら最後までlinqの方が1つの処理を1つの手法で解決してる感じがして好き だけどインデックスが処理に必要だからfor使いたいって気持ちもわかる
659 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:53:36.93 ID:bbTjp3FCd.net] >>631 まぁforのがいいと感じるならそれでもいいんじゃないかな 複雑な処理しない限りは大体Linqのがスッキリするからそうしてるだけだし
660 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 15:07:53.10 ID:x4iNladl0.net] こういう拡張メソッド作っておくのはたまにやる public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> self, Func<T, bool> predicate) { var i = 0; foreach(var s in self) { if(predicate(s)) yield return i; i++; } } dataA.Zip(dataB, (a, b) => a == b).WhereIndex(eq => !eq); 拡張メソッド嫌いな人もいるだろうけど一番読みやすい わざわざSelectでインデックスつけてる冗長さもないし、添字アクセスもないし、使う時はすっきり意味がわかりやすい
661 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 16:44:49.34 ID:Gn4Y43YUM.net] >>634 正直クソ分かりにくい 俺がレビューしたらリジェクトするわ WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する そもそも
662 名前:メソッド名以前に、LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、 キーやインデックスの方を返すような操作については特に念入りにそれがわかるような明示的な表記になるように工夫したほうがいい [] [ここ壊れてます]
663 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:02:43.62 ID:0wIwbQiXM.net] SelectIndexWhere()ならどうか。英国紳士にも通じると思う
664 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:20:32.65 ID:o48M+fLoM.net] SelectWithIndexやな
665 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:26:15.62 ID:icN1uiHAa.net] SelectIndexFilteredByValue これでもパッと見 ? となる人は多そう
666 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:40:49.62 ID:Uqgxm++Va.net] >>636 IndicesWhereで十分でしょ Selectはいらんと思うw メソッドなのに動詞じゃないのはおかしいって言ったって、組み込みのWhereだってそうだ まあスレ違いだね。
667 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 18:11:22.97 ID:ucfZkVugd.net] >>639 誰が動詞じゃないとおかしいって?
668 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 18:27:19.45 ID:x4iNladl0.net] >>635 >WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する そんなのはWhereでできるし >LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、 >キーやインデックスの方を返すような操作については それもSelectでできるし だいたい要素の値を操作していくものっていう暗黙的了解があるならWhereIndexも要素の値が対象と思うんじゃない? なんか矛盾してね?
669 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 19:23:56.51 ID:x4iNladl0.net] ほぼ同じ拡張メソッドでIndexWhereのが引っかかったわ 多分こっちの方が自然なんだろうな 一応候補だったんだが自分的にしっくりこなかったけど
670 名前:デフォルトの名無しさん mailto:sage [2018/08/09(木) 21:27:13.79 ID:s67NkejU0.net] >>631 ランダムアクセスできるとは限らんしっていうかLinqだとほとんど出来ない
671 名前:デフォルトの名無しさん mailto:sage [2018/08/09(木) 22:09:58.32 ID:VdJ1XdFa0.net] >>643 ランダムアクセスできないコレクション扱うときにインデックスが欲しくなるケースってなかなか無いと思うけど
672 名前:デフォルトの名無しさん mailto:sage [2018/08/10(金) 23:12:00.00 ID:AJVeRJgN0.net] >>644 ランキングとかページングとかか?
673 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 00:11:00.13 ID:p6HuaRWz0.net] >>645 それってインデックスつけることが一つの目的じゃない? インデックスってかソートかな? いろんなところでいろんな処理されるコレクションがあって、その処理の殆どにインデックスが不要だけどごく一部にインデックスがほしいとき、わざわざ1行追加するのスッキリしないなぁって感じ たった1行なんだから書きゃいいんすよ? それはわかってるけどなんか気持ち悪いなぁって気がするだけ
674 名前:デフォルトの名無しさん [2018/08/11(土) 12:41:19.45 ID:YyI+aygL0.net] ほとんど必要が無いインデックスだけど ごく稀に必要になるから必要になるところでだけインデックスを追加するんだろ ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん
675 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 14:21:00.05 ID:WHbJdrO8a.net] 何を言ってるのか意味が分からんけど、indexって言葉の意味を知ってて言ってるのかなそれw
676 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 14:23:04.22 ID:p6HuaRWz0.net] >>647 いや、linqでインデックスを付与しないけどランダムアクセスすることはあるよ? 前提変えたらそら意味通らんよ コレクションをlinq以外で処理しちゃ駄目ルールでもあるの?
677 名前:デフォルトの名無しさん [2018/08/11(土) 14:36:01.31 ID:YyI+aygL0.net] >>649 なにいってんだ? IEnumerable<T>にインデックスなんてない ないからSelectで付与するんでしょ そんなルールはないけどほとんどほとんどLinqで済むでしょ? Linqでサクサク処理してるのに中に突然ループが紛れ込んできたらキモいって話をしてる var tmp = list.Where(...).OrderBy(...).ToArray(); for (int i = 0; ...) { ... } var result = tmp.Where(...).Select(...);
678 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 14:48:08.19 ID:p6HuaRWz0.net] >>650 え?ずっとそういう話をしてたのになんで突然 >ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん って書いたの? インデックスのないlinq処理でそれが必要になったときわざわざselectで付与するのなんか気持ち悪いねーって話よ?
679 名前:デフォルトの名無しさん [2018/08/11(土) 14:59:36.83 ID:YyI+aygL0.net] >>651 気持ち悪いのはお前の感覚ではという話だろ 俺からすればToArrayやToListをかましてメモリとCPUを無駄にしたり余計なメソッドを追加するほうが嫌 メソッド化に関しては再利用性が高いかうまく抽象化されていて可読性が高まるというなら別だが 真にランダムアクセス性が必要なアルゴリズムならば変換せざるを得ないがそもそも今回の問題には必要がない
680 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 15:12:53.25 ID:p6HuaRWz0.net] >>652 うん、そうだよ 個人的に気持ち悪いなーってだけ はじめからそういうふうにしか話ししてないつもりだけど ランダムアクセスが不要だからあえてランダムアクセスできないコレクションを選択するの? ランダムアクセスは不要だけどあったって使わないだけだからどっちでもいい、ってなるのが普通じゃないの? パフォーマンス要求がシビアでランダムアクセスできるコレクションを選択することで、その要求から外れてしまう、とかいうならわかるけど
681 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 15:28:37.80 ID:YyI+aygL0.net] >>653 ランダムアクセスが不要なアルゴリズムなら「当然」IEnumerable<T>(ランダムアクセスできないコレクション)を選択するだろう まったくもって「あえて」と言う理由が分からん もしもSelectやWhereの引数が配列だったら普通のプログラマなら「あえて配列にしたのはなぜか」と疑問を持つだろう なんか逆なんだよね思考パターンが
682 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 15:33:32.78 ID:p6HuaRWz0.net] >>654 そういうもんかー んじゃあ使うコレクションがランダムアクセスを提供しているか否かを把握しとかないと選択できないな…
683 名前:デフォルトの名無しさん [2018/08/12(日) 00:56:37.14 ID:UOoEXFjMp.net] コレクションって言葉がダメだと思うぞ? そもそもIEnumerableはシーケンシャルな列挙の機能しか提供しない 根本的に理解が間違ってる
684 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 11:56:03.51 ID:GZni4QRja.net] コレクションという表現はおかしいね 無限に乱数を返すものをソースにできるし
685 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:21:46.30 ID:7meTQdNO0.net] マジレスするとメッセージ捕まえて 自力で描画すれば可能なんだけど 労力に見会わないのでお勧めしない webやWPF, UWPならグラ弄るの簡単
686 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:23:43.41 ID:7meTQdNO0.net] 誤爆しました すみません
687 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 16:03:02.33 ID:RaawotRPM.net] のへこののけとこけノハケケノノネネサマを通り越しておりましたとが気になると7人
688 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 16:03:23.33 ID:RaawotRPM.net] こねのこのねのけのねここけこそけ
689 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 22:10:23.24 ID:IOzhaO6j0.net] doxygenみたいなドキュメント生成ツールを使うとxaml部分がまともに解析出来ません。 bindingしているviewとviewmodelの関係なんかが分かるドキュメントにしたいんですが何か良い方法ないでしょうか?
690 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 22:17:10.47 ID:BClpbb6X0.net] Func<string> func = () => { return "text"; }; var res = func(); これを一文で書くことはできますか。 ふと気になっただけではあるけれど、自分で解決できなくて気になって仕方がない。 基本的なことが分かってないような気がする。
691 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 22:28:35.55 ID:9WO+tdsEa.net] var res = "text";
692 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 00:16:02.34 ID:rZVfBBf1a.net] >>664 まあそうなるよな
693 名前:デフォルトの名無しさん [2018/09/15(土) 00:21:48.95 ID:elLmwu/20.net] 本当はなにをしたかったんだろう 例題が悪い気がする
694 名前:661 mailto:sage [2018/09/15(土) 00:41:48.54 ID:LMkhUY/p0.net] ああ、そうか。w パラメータに対してちょっと複雑な変換を掛けるのだけど、汎用性がないから専用関数作るのもなんだし、 だったらラムダ式で書けばいいんじゃね?→ ラムダ式は Func 型?だから戻り値とれねーじゃん ってところから進めなった
695 名前:。 他にやり方はあるので出来なくてもいいのだけど、気にはなって。 [] [ここ壊れてます]
696 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 01:22:08.16 ID:rZVfBBf1a.net] 専用関数でいいんじゃない? 複雑な処理ならそれこそ括りだしておいてわかりやすくしたほうがバグ出にくいし簡単でしょ
697 名前:デフォルトの名無しさん [2018/09/15(土) 05:59:42.97 ID:crViL/AR0.net] >>667 参照渡すとか?
698 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 15:15:22.99 ID:aC3C7hdpa.net] こんなのは嬉しくないね var pi = ( (Func<double>) ( () => { const int total = 1000000; var inside = 0; var rnd = new Random(); for (int i = 0; i < total; i++) { var x = rnd.NextDouble() * 2 - 1; var y = rnd.NextDouble() * 2 - 1; if (x * x + y * y < 1) inside++; } return 4.0 * inside / total; } ) )();
699 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 15:22:04.34 ID:aC3C7hdpa.net] これも却下だな Func<Func<double>, double> invoke = (f) => f(); var pi = invoke ( () => { const int total = 1000000; var inside = 0; var rnd = new Random(); for (int i = 0; i < total; i++) { var x = rnd.NextDouble() * 2 - 1; var y = rnd.NextDouble() * 2 - 1; if (x * x + y * y < 1) inside++; } return 4.0 * inside / total; } );
700 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 17:23:21.76 ID:aC3C7hdpa.net] 全然関係ないけど、Randomって[0, 1]とか(0, 1)の乱数は作れないのか 半開区間だと使いづらいような気がするけどそんなことないのかな
701 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 18:10:42.64 ID:ghSS5jwya.net] 言葉の意味はよくわからんが Randomは第二引数未満の乱数発生するんじゃ?
702 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 18:34:42.22 ID:nwnNkRfe0.net] docsにもあるけど https://docs.microsoft.com/ja-jp/dotnet/api/system.random?redirectedfrom=MSDN&view=netframework-4.7.2 dobonの方が分かりやすいし読みやすいから https://dobon.net/vb/dotnet/programing/random.html の //0.0以上1.0未満の乱数を倍精度浮動小数点数で返す Double d = r.NextDouble(); >>672 こういう意味とは違うの? 整数範囲で出して割った方が範囲や有効桁も決められるからそっちの方がよさそうな気もする
703 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 18:56:24.76 ID:aC3C7hdpa.net] [0, 1]とか(0, 1)は数学の記号ね(多分高校1年ぐらいで習ってるはずw) Random.DoubleNextの戻り値は[0, 1)(つまり0≦x<1)らしい 普段乱数使うようなコード書いてないからよく分からんけど、 0≦x≦1とか0<x<1でないと困る場面も多いんじゃないかなと思っただけ
704 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 19:01:32.64 ID:Bg+wr9i5a.net] えなんかめんどくさいからもういいよ
705 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 19:05:58.75 ID:nwnNkRfe0.net] 有効桁区切るのと一緒で丸め、切り上げ、切り捨てしたらいいだけでは Random自体C#で使う場面に出くわしたことないからあまり考えないな
706 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:19:51.91 ID:Fr67tYwB0.net] game engineだとか[]の乱数あったりするよ ()は見たことない コーディングしてたらわかるけど利用場面は圧倒的に少ない
707 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:30:38.93 ID:OUVvcRON0.net] >>667 > パラメータに対してちょっと複雑な変換を掛けるのだけど と言うなら例もパラメーター使ってる例を書かなきゃ >>670 俺もこれしか思いつかなかった そもそも var f = (string x) => { return "abc" + x; }; 位は型推論してくれてもいいと思うんだけど難しいのかな?
708 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:39:04.65 ID:OUVvcRON0.net] >>675 例えば0〜9の整数乱数がほしい時に[0,1)なら10倍して整数部分を取るだけだけど(0,1)とか[0,1]だとすごく面倒
709 名前:デフォルトの名無しさん [2018/09/15(土) 20:42:09.91 ID:KIanXBkQ0.net] 面倒だったら擬似乱数生成器を自分で作ればいい キミラ程度が使う程度の擬似乱数だったら数行コピペでできる程度のもんで十分だからな
710 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:49:32.65 ID:Xc5RKOnR0.net] >>667 ローカル関数じゃだめなん?
711 名前:デフォルトの名無しさん [2018/09/15(土) 20:53:08.93 ID:KIanXBkQ0.net] https://ideone.com/PJDFVv この程度で十分
712 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 21:33:37.63 ID:OUVvcRON0.net] >>681 , >>683 バカは絡んでくるな
713 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 21:35:49.16 ID:OUVvcRON0.net] >>682 本来必要のない名前を考えるのが面倒 そもそもローカル関数にするぐらいなら>>663 とたいして変わらんし
714 名前:デフォルトの名無しさん [2018/09/15(土) 21:37:43.29 ID:KIanXBkQ0.net] やっぱり低学歴知恵遅れは 内側の擬似乱数生成器をかえるだけの話なのがわかってないわ きっと擬似乱数がなんなのかすらわかってないわ 擬似乱数がなんなのかわからずに乱数()とかいって数字使ってる程度だからな
715 名前:デフォルトの名無しさん [2018/09/15(土) 21:39:33.01 ID:KIanXBkQ0.net] つまり コレがC#なんか使ってるヤツラのオツムの程度
716 名前:デフォルトの名無しさん [2018/09/15(土) 21:40:44.62 ID:qw6mr0Vb0.net] >>675 (0,1)は[0,1)が0ならやりなおし、でいいんじゃないのと単純に思ったがそんなものじゃない?
717 名前:デフォルトの名無しさん [2018/09/15(土) 22:05:16.77 ID:KIanXBkQ0.net] そもそも機械イプシロンのこと分かってて ああいうレスしてるようにはまったく見えないからな
718 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 22:52:03.88 ID:OUVvcRON0.net] >>688 発生側はそれでいいとしてそれを必要とする機会がどんだけあるの? って話かと
719 名前:661 mailto:sage [2018/09/15(土) 23:10:36.43 ID:LMkhUY/p0.net] 気に掛けてくれた方々に。ありがとう。 >>670 ああ。なるほど。型を明示してあげたらよかったのか。 キャストを加えたら期待通りに書くことが出来ました。ありがとうございます。 これってラムダ式を var で宣言した変数に代入できなかったことがヒントになり得たんだな。頭が回ってなかった。 これくらいは型推論してくれても良さそうなのにとは原因が分かった後での負け惜しみ。 >>668 ,682 今回のはそういうことが出来そうなのに出来なくて悶々としてしまって。 実用性度外視で原因を知りたかったの。
720 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 10:09:07.69 ID:QiF2mi6W0.net] 今ならref/outがないならAction/Funcに型推論して シグネチャが同じdelegate間の暗黙の型変換が行われる 初期化時に左辺とかキャストとかでdelegate型が明示されてたらそのdelegate型でnewされる でいいと思うよな〜
721 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 06:50:46.79 ID:luZsj3k/0.net] Visual C#ってDelphiみたいに同じコードでWindows用とMac用にビルドできる? マシンは両方用意できるとして
722 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 07:42:00.17 ID:JcyGHTPld.net] Visual C#って具体的にはどのフレームワークを指してるのかい?
723 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 10:08:17.18 ID:WBt1GswEM.net] 可能
724 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 12:41:26.38 ID:9aNAf/d20.net] >>693 コンソールアプリなら同じコードでどっちでも動くはずだけどGUIはよくわかんない Xamarin Forms使えばいけるのかな?
725 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 13:59:56.78 ID:luZsj3k/0.net] 多分ASP.NETを使ってGUIのWebSocketクライアントを作る予定です ありがとうございます
726 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 14:05:07.91 ID:8sfFLOeb0.net] MacでWebSocket?????? ちょっと何言ってるかわかんないですね
727 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 21:52:32.99 ID:rAzbq+Jy0.net] 下みたいなことって出来ます? やりたいのは object 型の変数に代入したジェネリック系のインスタンスを、さらに元のジェネリックの型にキャストし直すってことなんですが。 void func( object dic ) { var tmp = (Dictionary)dic; // ← これみたいなことをやる方法がないかなと tmp.Add( "test", new object() ); } var dic = new Dictionary< string, object >(); func( dic );
728 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 23:15:04.62 ID:dHSM7pQD0.net] as
729 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 23:17:13.70 ID:+un+mAjX0.net] anal
730 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 00:24:29.22 ID:WuETTr790.net] >>700 言葉が足りてなかった。申し訳ない。 例示のケースの場合は、 var tmp = (Dictionary<string,object>)dic; と指定すれば出来るのだけど、Dictionary だけでキャストし直すみたいなコトできないかなって。 as でも Dictionary だけではキャストできないことは確認しました。
731 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 00:30:38.46 ID:5qvGm4LBa.net] 出来たとして何の意味があるのそれw そもそもHoge<int>より大きなHoge<T>とかHogeって型が存在するわけじゃないでしょうw 根本的に勘違いしてないか
732 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 08:41:34.87 ID:649yR4/AM.net] genericsでないDictionaryは存在しないからでしょ。 genericsパッケージでないほうのHashtableならできると思うけど安全性を損ねるしやらんほうがいいんじゃね
733 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 12:20:51.28 ID:/G4FYlhv0.net] IDictionaryならあるよ キャスト時にいちいち型引数を書くのが面倒ぐらいの意味しかないけど
734 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 12:48:53.74 ID:sTtGwCQ3a.net] >>702 を読み直してみると、ひょっとして要するにジェネリックの型パラメータを書くのが面倒臭いから 省略できないか?、って言いたいのかな それなら答えは「できないけど仮に出来たとしても絶対やるな」じゃないの? もちろん、 using Dictionary = System.Collections.Generic.Dictionary<string, object>; こういうエイリアスは書けるはずだと思うけど 何にしろ、質問は他人が読んで分かるように書いて欲しいよね
735 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 17:14:16.27 ID:kGqzP/YO0.net] 型安全性を無視していいならdynamic使え そうじゃないなら出来てもやるな つかジェネリックを勘違いしてるんじゃね
736 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 17:21:14.85 ID:Q+zVeK5uM.net] それによって何がしたいのかを書いてくれないと何言ってるかわからんよな
737 名前:697 mailto:sage [2018/09/29(土) 00:47:34.72 ID:EY+8Y7mF0.net] ありがと。 やっぱり dynamic 使うしかないかな。避けたかったのだけど。 なにが入ってるか分からない配列の中身を文字列化してログ出力したかったの。(最初は) object[] の要素の中身が generic だったりしたときに ToString() だとクラス名?にしかならないから。
738 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 03:23:52.22 ID:BJdQm5Iw0.net] なんで何が入ってるかわからない配列なんてもんを触るんだ 静的型付け言語のメリット台無しやんけ
739 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 09:01:26.24 ID:FmliS3qN0.net] 何が入っているかわからないものを扱いたいと言っていながら一方でdynamicは避けたいというのが よくわからんなぁ。避けてどうしたかったんだろうか。
740 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 11:56:45.30 ID:EY+8Y7mF0.net] 単に dynamic が嫌いだったのから。w
741 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 12:32:33.34 ID:3Hj8wsg1M.net] ふーん。頭が悪いからじゃなかったのか
742 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 14:34:45.14 ID:9IdCJ4nKM.net] たぶんjsとかの感覚で言ってるんじゃないかと
743 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 14:42:39.43 ID:FmliS3qN0.net] でもJSも実行時に型を判断できるし、逆の意味で大して変わらんと思う。
744 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 15:07:47.86 ID:EY+8Y7mF0.net] あれ? dynamic って推奨だったの? おまえらがどういう場面で使ってるのか教えてくれ。
745 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 16:47:06.91 ID:rkT/I8Hma.net] デシリアライズでもするつもりだったんじゃねの クッソ面倒なんだよな実際
746 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 16:56:30.70 ID:X4waiIaR0.net] ん? > なにが入ってるか分からない配列の中身を文字列化してログ出力したかったの。(最初は) じゃねーの?
747 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 18:05:26.03 ID:w5r/wslsa.net] もういいでしょw たぶん何か勘違いしてるだけだ
748 名前:ニ思うよ 俺もプログラミング初めて2,3年は静的/動的とかコンパイル時/実行時の違いとか 分かってるようでよく分かってなかった [] [ここ壊れてます]
749 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 19:25:50.32 ID:rSQsiXYHa.net] 結局なにがしたいのか伝わってこない上に 微妙にムカつく上から目線
750 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 12:04:22.29 ID:upBech+00.net] それは此処の仕様。
751 名前:デフォルトの名無しさん mailto:sage [2018/10/07(日) 19:19:55.60 ID:QvnX76F+0.net] そろそろ.NET標準でDDSのデコードできるようになってくれないかな エクスプローラーでは普通に表示されるんだから できればBC6と7までw
752 名前:デフォルトの名無しさん mailto:sage [2018/10/07(日) 19:43:24.02 ID:mZPrgRqf0.net] >>722 DDS?
753 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 15:29:49.78 ID:gfGA4Hi30.net] >>696 あれ、C#って、マルチプラットフォームじゃなかったの? Java は、Windows, Mac, Linux, iOS, Android, Chrome, Firefox, IE, どれでも 動いたよね、昔は。
754 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 16:00:38.35 ID:y5q0bWlwM.net] Javaもクライアントアプリ分野から撤退したから今はクロスプラットフォーム度でいえばC#のほうが上なくらい(あくまでカタログスペック上は) C#はWebかコンソールアプリなら.NET Core使えばLinuxやMacで動く スマホやMac向けのGUIアプリならXamarinだな
755 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 16:22:14.98 ID:qWHG2Ppw0.net] Unityも忘れるな! mono様々やな
756 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 20:25:55.35 ID:5Xb93YKt0.net] 普及度とかマルチプラットフォームとかどうでもいいけど Windows使っていて個人的に何かちょっと作ろうと思ったときに、もうC#以外考えられない体になってしまった
757 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 20:37:33.56 ID:MDetJiiMa.net] おれはpythonかなー スクリプト言語はほんま楽やで 客先でインスト制限きつい時はC#とPowerShell Microsoftさんは早くVSCodeとdotnet cliをWindows標準にしてPowerShellを強制アプデすべき
758 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 21:09:20.78 ID:FxDWQZOn0.net] おまんらWPF使ってる?
759 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 21:09:38.83 ID:t4QZh6l3d.net] うん
760 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 21:34:18.47 ID:fYYBLspX0.net] >>729 個人で使ったけど、これを社内外で使わせるにはMVVMきっちり教えないと破綻確実だから諦めた
761 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 22:39:29.79 ID:eTSVpSn40.net] >>728 確かに楽だな。 < python Web API を叩くプログラムをこれで書いたけど、学習まで含めてすぐ出来た。w VS 上でも書けるのが楽さに拍車を掛けてる。 >>729 うん。でも最近はやってないな。そーいえば。
762 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 22:44:00.95 ID:GgFjLBNe0.net] >>729 使ってる。 チームとして採用するのは難しいかもね。
763 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2018/10/22(月) 07:55:37.83 ID:D227Fdyd0.net] >>733 どうして? 学習コストの高さ?
764 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2018/10/22(月) 08:11:55.33 ID:vkGCn3UdM.net] そうです。 XAMLとか慣れるまで大変だし、やっぱり簡単なFORMになるんじゃないかな。
765 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 12:06:51.16 ID:DqwlPEpNa.net] レイアウトはFormよりWPFの方が楽だと思うんだけどな Formばかりやってたチームだと学習コストが高くて難しいのはある
766 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 12:25:16.33 ID:+Bt5JEYG0.net] XAMLはVS補佐がまだまだ足りない 昔の落ちまくりよりは格段に進歩はしたが
767 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 06:15:06.44 ID:oKq5ee0m0.net] Formやる前にWPFから入った俺は異端
768 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 12:11:12.26 ID:Z3T8y8K/M.net] formは過去の遺産だから、これからやるならWPFが正統だ。
769 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 12:32:04.49 ID:0EGfRFOMa.net] >>737 Blendを使ってください、ってことなんだろうけどなぁ
770 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 12:42:28.83 ID:Q+FZ+yEYM.net] WPF自体は終わってるよね 次の本命が無いから使うしか無いだけで
771 名前:デフォルトの名無しさん [2018/10/23(火) 12:52:00.65 ID:Hcq+1RfE0.net] なお、どこも新規開発はFormの模様
772 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 12:56:27.59 ID:eyu+kwgc0.net] MSのイチオシはUWPだしコントロールは充実しているんだけどね TreeViewは完成したし、後はDataGridの完成を待つだけだ
773 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 14:20:00.03 ID:oKq5ee0m0.net] 全然未完成じゃねーか
774 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 14:36:28.72 ID:cDc5Fd7gM.net] 最近のMSはだいたい未完成 ちょうどGithubもやらかしたし、Azureのサービスなんかガチで世に出しちゃいけないレベルのものが大半
775 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 15:11:27.54 ID:BR1ycnzw0.net] 未完成の物をとりあえず出して、 バージョンアップで完成させてくのが昔からのビジネスモデルやろw
776 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 15:12:45.43 ID:dmXi8fk90.net] アジャイル
777 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 15:51:37.07 ID:Z3T8y8K/M.net] 新規開発もFormになるのは人集めの都合だよ。
778 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 16:28:52.85 ID:9gwDvhi80.net] >>741 終わってるってどういうこと?
779 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 16:45:50.67 ID:cDc5Fd7gM.net] >>749 どういうこともクソもWPFは5年くらい前にとっくに開発終了してメンテナンスモードだよ
780 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 16:46:49.17 ID:9gwDvhi80.net] >>750 ソースは? .NET Core3.0知らないの?
781 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 16:51:18.62 ID:cDc5Fd7gM.net] >>751 ソースは.NET 4.5以降のリリースノートだよ 何か気になる新機能はありましたか?
782 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 17:16:53.27 ID:9gwDvhi80.net] >>752 で、「終わってる」だなんてMicrosoftはリリースノートに書いてるのかい? しかも.NET Coreは都合が悪いから無視ときたもんだ…
783 名前:デフォルトの名無しさん [2018/10/23(火) 17:39:47.89 ID:PWuDtLsGa.net] Core3.0まで出てるんだ なんか使いやすくなった?
784 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 17:40:45.51 ID:Z3T8y8K/M.net] WPFが終わってるならFormは死んでる。 しかし、ゾンビ技術者がウヨウヨいるから需要はあるのかも。
785 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 17:55:40.99 ID:cDc5Fd7gM.net] >>753 CoreのWPF対応ってWPFをCore向けにビルドしてNuGetで入れられるようにするだけだぞ? WPF自体の新機能ではないよ
786 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 18:06:42.97 ID:9gwDvhi80.net] >>756 必死に調べて理解したのはそれだけ? 「終わっている」プロジェクトに対してそんなことしないだろ
787 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 18:19:29.54 ID:mVZ7w/wV0.net] 平日に役に立たない言い争いしている奴らが終わってる
788 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 20:09:28.44 ID:AlQfFCDV0.net] WPFの機能追加は終わってる なら正しいかもしれない
789 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 20:46:15.68 ID:duwPtJnv0.net] >>754 せっかく切ったWPFとFormアプリ復活・・・
790 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 20:53:51.51 ID:T5C69wUW0.net] 業務系ならありがたいね ランタイム依存なしでForms使えるんだろ ブラウザ要らないじゃん
791 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:26:47.62 ID:+h1AjSvua.net] >>761 デプロイどうすんの?アップデートの度に君が出向いて客のPCでZip解凍して回るの? それが面倒だからWebなのに、それが.NET Coreになったところで何も解決し
792 名前:ないよ というかClick Onceが無くなる分だけ状況は悪くなるな [] [ここ壊れてます]
793 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:29:43.70 ID:TLuMxHqO0.net] 自前でアップデート処理を実装すれば問題なし
794 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:33:45.87 ID:9gwDvhi80.net] >>762 >Click Onceが無くなる ソース出してみ
795 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:43:47.63 ID:+h1AjSvua.net] >>764 悪魔の証明を求められても困る .NET CoreでClick Onceが使えるソースを出すのは君の仕事だ 当たり前だけど、FullFWのClick Onceを使うという本末転倒な方法は無しで頼むぞ
796 名前:デフォルトの名無しさん [2018/10/23(火) 21:57:45.44 ID:NgQNKVM70.net] .NET Coreって仕事で使う?
797 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:59:32.82 ID:9gwDvhi80.net] >>765 妄想おつw
798 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 21:59:56.85 ID:9gwDvhi80.net] >>766 もちろん使ってるよ
799 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 22:02:41.25 ID:Eu3QtAGFd.net] >>765 断定してたからそんなアナウンスもうされたのかと思ったのに…思い込みが激しいと周りが苦労するね
800 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 22:16:19.58 ID:+h1AjSvua.net] まあプレリリースまでもうすぐだから期待してるよw
801 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 22:34:00.35 ID:9gwDvhi80.net] そだねー
802 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 23:26:45.20 ID:bb2jvxz40.net] WPFが.net coreに対応したといってもlinaxで動くわけではないんだよね? じゃあなんの意味があるの?
803 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 00:56:19.20 ID:Zhd8G0p80.net] >>772 linaxって何?
804 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 01:29:36.25 ID:nEIaPqDo0.net] >>772 ググれないの?
805 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 04:16:13.88 ID:lspkKr8a0.net] ライトなトイレメーカー
806 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 08:07:19.33 ID:nll2w7iZM.net] 同じプログラムを2台のPCで動かしたら、スペックのいい方が断トツ実行速度が遅いんだけど、何かチューニングするとこある?
807 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 08:25:20.58 ID:LYsln+4LM.net] ログ仕込め
808 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 09:13:35.22 ID:Jq5IeBu60.net] >>776 裏で怪しげなの動かしてるんだろ
809 名前:774 mailto:sage [2018/10/25(木) 12:22:26.50 ID:nll2w7iZM.net] 特に怪しいものなんか動いてないと思うんだけどなぁ アンチウイルスの保護停止しても変わらない こんなときに効果的なログの張り方ってある? 一部がネックなのではなく、もう全部が緩慢な感じ
810 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 12:26:06.77 ID:U/6911CyM.net] 適当なとこにログ仕込んで狭めて行けばええやろ
811 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 12:28:31.91 ID:LYsln+4LM.net] 例えばウィンドウズサーチとか重たいよね リソース逼迫してないなら ディスクI/OやネットワークI/Oや ネットワーク構成が違うとかかね 全体的に緩慢となるとなあ ヒント欲しいならもっと情報ださないとダメよ
812 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 13:18:57.91 ID:Jq5IeBu60.net] タスクマネージャーあけてぼーっと眺めておくとひょっとしたらと。 で、スペックはどんなもんなの?
813 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 13:56:04.51 ID:m3i6L9YGM.net] debugとreleaseだと速度違うんだっけ?
814 名前:デフォルトの名無しさん [2018/10/25(木) 15:08:46.52 ID:qGEaBy7DM.net] >>783 全然ちゃうで
815 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 16:37:44.59 ID:LYsln+4LM.net] そういうオチ
816 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 16:59:50.46 ID:/kJ20XbY0.net] debugとreleaseてそんなに違うの?おれのfizzbuzz100までどっちも一瞬だったよ
817 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 17:51:08.23 ID:LYsln+4LM.net] ネタをネタと見抜けないと レスするのは難しい
818 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 00:26:15.60 ID:/Y6tHm6z0.net] スレチかもしれんけど、まだサポートしてないバージョンのアセンブリで定義されてるクラスをリフレクションでもいいから使う方法ってないかな。 具体的にはフレームワークのバージョンが2.0しか許可されない職場でxdocumentを使う方法… dllを隣に
819 名前:揩チてきて参照しても、型自体を認識してくれない [] [ここ壊れてます]
820 名前:デフォルトの名無しさん [2018/10/26(金) 00:59:31.47 ID:HrTWAmck0.net] >>786 100万データ処理してから物言いなさい
821 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 12:40:20.23 ID:Ho1Po0zEM.net] 64bitアプリから32bitアプリへ効率よく通信したいのですが、良い方法ありますか? 今はPostMessageを考えてますが型が合ってないので違う方法を探してます。
822 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 12:40:41.09 ID:gXWoxuJ30.net] UWPだとreleaseとdebugでちがいそうだけど。デフォルトだとreleaseは.net nativeでコンパイル。debugは違う
823 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 12:50:01.52 ID:RVLSOnVjM.net] >>790 TCP使えば? 直接叩くのが嫌ならgRPCとか使えばいい WCFや.NET Remotingという手もあるけど、どちらもレガシー扱いで.NET Coreからは廃止されたから新規に使うのはお勧めしないな
824 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 13:06:48.12 ID:1HfiCU8QM.net] gRPCいいよね magiconionもあるよ
825 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 10:20:41.86 ID:ZWpnR1MN0.net] HttpListenerってあったよね
826 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 10:52:44.45 ID:bFJ5s+tL0.net] Core世代のWCFや.NET Remotingの代替って何があるんだろ
827 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 11:23:19.53 ID:zH3PfDR1a.net] 普通にRESTか、クラウドプラットフォームが提供するメッセージキュー(SQSとか)などの外部サービスだよ 余計な囲い込みを廃して今時のWebシステムの構成要素として組み入れやすくするというのがCoreなんだから、今更.NET固有のRPCなんか要らん
828 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 18:13:53.94 ID:PEqFXj+e0.net] dllを修正する際にどの程度までの修正であれば問題ないかまとめてある サイトってありますか? dllのクラスの派生元に一つクラスを挟んだ修正では問題なく動いている ようだったので・・・。
829 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 19:00:13.51 ID:1Mw8aOkb0.net] ライセンス読んで
830 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 19:16:09.78 ID:W+eHh5+20.net] >>797 逆に使えなくなる場合は(マネージドdllで)厳密な名前付きアセンブリとして作ってある物が名前などが変わってしまった場合 厳密な名前付きアセンブリ https://docs.microsoft.com/ja-jp/dotnet/framework/app-domains/strong-named-assemblies >厳密な名前付きのアセンブリを参照すると、バージョン管理や名前の一意性を保護できるなどの利点を期待できます それ以外は変更のないクラスやフィールドにアクセスする分には問題にならないはず
831 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 00:50:27.11 ID:8OYVWtUM0.net] >>799 情報ありがとう。 あまり厳密にはしたくないのですがリンク先を よく読んでみます。
832 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 16:08:10.06 ID:Qrgo3xvC0.net] Monoの互換性についてなのですが、 Visual studio2017でWindowsクラシックデスクトップのWindowsフォームアプリケーション(.Net Framework)で書いたコードは そのままMonoでコンパイルできるという認識であってますか?
833 名前:デフォルトの名無しさん [2018/11/10(土) 05:02:04.09 ID:ZJVvB/9K0.net] >>801 できるし、VisualStudioでコンパイルしたものをMonoでコンパイル直す必要すらない建前なんだけど・・・・ 実際には対応状況にかなりの差があってGUIアプリケーションやら暗号やらが絡むものについてはうまくいかない事が多い
834 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 18:24:39.80 ID:yl+mwE+c0.net] >>802 そうだったんですね ありがとうございます
835 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 21:29:39.44 ID:BfX4LnOFa.net] 引数を変更不能にできないのって何か理由あるの?
836 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 22:01:19.43 ID:eyW0451M0.net] >>804 最近は
837 名前:件付きでできるよ C# in 引数 [] [ここ壊れてます]
838 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 10:14:46.52 ID:zL+4Qkmba.net] Javaのリモートデバッグは 1. 起動オプションでデバッグ用のリモートポートを指定 2. デバッガで同じポートを指定してアタッチ でできますが C#(DotNet Core 2.1)では同じような事は出来ませんか? 運用環境でしか発生しないバグのデバッグってどうやればいいんでしょうか?
839 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 12:52:12.52 ID:EeRGHZk70.net] >>806 リモート側にリモートデバッガ入れるとか 運用環境ということだからそもそもデバッグビルド入れられるか知らんが まぁ、ログ仕込め
840 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 15:47:26.43 ID:6jAVVbmKa.net] 同じLAN内ならプロセスアタッチで行けそうだが 試してないから知らん
841 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 15:41:42.81 ID:hjFVqahJ0.net] Unity って、Wikipedia によれば、600,000 (60万人) も、登録ユーザーがいて、 従業員が、2,000人以上、年間利上げが、100億円を超えるほどあるとされる。 ゲームエンジン Unity の使用料は、 ・1,000万円までの売り上げなら、無料。 ・2,000万円までの売り上げなら、年間5万円ほど。 ・それ以上の売り上げなら、で年間18万円ほど。 とある。 でも、Wikipediaに載ってる Unity を使ったゲームのリストは、 100本あるかどうか程度しかない。 これだと、Unityには、年間2,000万円程度の収入にしかならないのでは ないかと思う。 それに、アメリカですらプロのプログラマは、30万人くらいしかいない とされることとも辻褄が合わないように思える。 なんかおかしくない?
842 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 16:09:30.56 ID:DsJildR5M.net] 基準がwikipediaなのが謎だけど steamとか見てみなよ それに×人数だから実際はもっと高い
843 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 16:30:30.62 ID:hjFVqahJ0.net] >>810 >それに×人数だから実際はもっと高い 探したけど出てこなかった。どこに書いてある?
844 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 17:43:06.03 ID:tBfV11FV0.net] そもそもUntiyはプログラマ以外も使うから小さい会社でもアカウントはそこそこもってるようなこともあるよ
845 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 17:50:09.14 ID:hjFVqahJ0.net] >>812 プログラマ以外は何のために訪れる??
846 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 17:52:04.91 ID:tBfV11FV0.net] 最近スマホアプリのtop100くらいまでの使用エンジン調査した記事あった気がしたんだけど見つからんかった たぶん半分くらいがunity製だった気がする PCでもUnity製増えてきてるしswitchにもそこそこ出てる 日々山ほどのゲームがリリースされてるのにwikipediaで全てを網羅できるわけないと思うんだけど、なんで自分がおかしいと思わなかったの?
847 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 17:56:18.66 ID:tBfV11FV0.net] >>813 訪れる?利用するんじゃないの? ディレクタやプランナがUnity上でプレイすることもあるし、CGデザイナやUIデザイナがUnity上で作業することもある もちろん3Dモデリングなんかは専用のツールのほうが作業はしやすいけどね
848 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 18:00:10.49 ID:tBfV11FV0.net] っていうか普通の企業なら間違いなく年間売上2000万なんて超えるよ? 安く済ませられるのなんて個人事業主か同人サークルだけ 社員が5人でもいたらまず年間売上で引っかかるんだから 大きい企業なら普通に100単位でアカウント持ってるし、小さいところでも10以上持ってるとこなんて山ほどある
849 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 18:12:20.13 ID:hjFVqahJ0.net] アカウントって、1つのゲームに対して、ひとつだけじゃないの? 開発者の人数分???
850 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 18:14:07.61 ID:tBfV11FV0.net] >>817 開発者分必要 ライセンス読んで あとここUnty
851 名前:スレじゃないよ [] [ここ壊れてます]
852 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 20:22:13.71 ID:biHRXo8wM.net] ガイジっぽい
853 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 20:41:27.20 ID:8sDmawlrM.net] 年間売上2000万じゃ底辺3人雇うのが精一杯だな。
854 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 20:45:05.56 ID:fRq//2+J0.net] 1人でも無理あるだろ
855 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 02:23:44.07 ID:a546+gcL0.net] 背理法で証明して見せたかっただけだよ。 つまり、矛盾を示す事で、間違い/捏造であることを証明する手法。 だから、ありえないような結論が出たということは、正しく証明できた 事になる。
856 名前:デフォルトの名無しさん [2018/11/16(金) 04:24:32.84 ID:/x4PzStk0.net] はいりはいりふれはいりほー
857 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 14:20:33.68 ID:+bMNmjEk0.net] Unityの登録だけなら自分でもやってるからなぁ 仕事でやってる人なんて会社用と個人用を別々に登録してるんじゃね あとUnityはVRチャットで自キャラ作るのに使うから、 それも多いと思う
858 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 19:05:12.63 ID:a546+gcL0.net] >>824 やっぱり、そういう事もあるんだね。 どっちにしろ、Uniy のゲーム・ライブラリだけのライセンス料では、年間100億円 の売り上げにはならない気がする。 CADなども売っているので、そういう売り上げがかなりあるのかもしれない。
859 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 19:24:02.27 ID:ikVu1qV7M.net] な、ガイジだろ
860 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 13:45:10.42 ID:RRyKxOPE0.net] >>809 海外の人も Unity 発表の数値には疑問を抱いている。 ちなみに、日本のゲーム業界の開発者数(プログラマ、 デザイナ、企画含む) は、2万5,000任程度だとされ、 世界でも1チームの平均人数は5.5人程度。 Unityには、450万人もの開発者が登録されているとされる。 Unity発表の数値が正しければ、世界には、 ゲーム開発チームが、160万〜200万チームも あることになってしまう。 「How many game developers existed in 2016?」 https://www.quora.com/How-many-game-developers-existed-in-2016 A cached version of Unity’s public relations page from July 2016 states that Unity has 45% of the global market share and 4.5 million developers using the platform, indicating an estimated total of 10 million individual game developers (my guess is that “developers” means people working in game development, including roles such as artists and game designers as well as engineers, who could potentially use the tool). From a 2013 Game Development Magazine survey of 1051 developers (republished by GamaSutra): Studio size and type: 7% of respondents are individual independent devs, 19% are teams of 2-5 people, 14% on 6-10, 18% on 11-30 , 9% on 31-50, 7% on 51-80, 5% on 81-100, 8% on 101-150, 4.5% on 151-200, 5.5% on 201-300, and 3% on teams of 300+. This indicates an average team size between 5 and 6 team members. If each of these members falls under Unity’s classification of “developers,” we can estimate 1,600,000 - 2,000,000 game development studios (including individuals developing games alone as well as teams).
861 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 13:54:09.60 ID:RRyKxOPE0.net] 2017/01/27時点で、GooglePlay には、260万個、AppStore には、 200万個のアプリがある。そのうちの25%がゲームだとして、Android には、60万ゲームある。1チーム当たり 5個のゲームを公開している としても、12万「チーム」あることになる。日本のプロのゲーム開発者 が2万5,000人程度しかいないことを考えると、凄い人数では有る。 そもそもアプリ全体の個数もかなり多いので、アマチュアプログラマがかなり 多い事は多い。 ------ There are currently over 2.6 million apps in the Google Play Store and over 2 million in the App Store. I can’t find anything to say how many of those are games. Let’s assume 25% are games. Lets just focus on Android as our estimation. That would mean more than 600,000 games on Google Play. I would say the average developer has 5 games on the store. Lets use 10 to be conservative. That would mean there are 60,000 different developers. That’s my best guesstimate. My gut tells me it’s probably more but who knows. I know for one thing, I am a developer and I have 4 games released. Feel free to check them out:
862 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:02:18.23 ID:RRyKxOPE0.net] GooglePlayやAppStoreのAppって、250万個もあれば、その中に本当に同一のものが 含まれてないか、または、250万個も本当にあるかを調べることは不可能に近い かも知れない。 そもそも本当はそんなに無かったりして。そもそも、Vectorに登録されているアプリ だってそこまで無い気もするし。
863 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:04:10.36 ID:3f3X1OW4d.net] うちゲーム会社じゃなくて製造業(けっこう大手)だけど、VR絡みはUnity使ってるよ。 同業他社も使ってるのは意見交換会で聞いたし。 映像系でも使われ始めてるから、ゲーム業界から離れたほうがわかりやすいかも。
864 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:05:59.54 ID:35krN4020.net] VRChatでスクリプトとして使われているしな
865 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:43:30.92 ID:RRyKxOPE0.net] 確かに、VRまで含めれば説明が付く気はするんだよ。 使う人の人数は作る人の人数より100倍程度は居るのが普通だから。 ただ、GooglePlayに登録されているアプリ数が本当に250万本もあるかどうか、 そのまま信じていいかについては注意すべき。 そもそも250万種類の一覧表をテキストファイルで見られるかどうか。 旧 nifty serve なんかも、「シェアウェアは儲かる」と言ってパソコン通信 加入者を増やそうとしたらしい。その際、「秀丸エディタ」が1億円の売り上げ がある、とされたが、その作者が富士通社員だったことは公然の秘密。
866 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:50:38.86 ID:4WsM1r+i0.net] >>832 レコード数250万のDBなんてざらにあるぞ
867 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:55:46.58 ID:RRyKxOPE0.net] >>833 そういう意味じゃなくって、GooglePlay から、全てアプリが載った一覧表を一度に ダウンロードできるのかってこと。 検索するだけだったら、本当に250万種類もあるかは誰にも分からないじゃない かと。
868 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 14:59:31.85 ID:Gas9nc7W0.net] で? としか言いようがないな
869 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 16:21:36.71 ID:YkPnkG/ad.net] Twitterにでも書いてろ
870 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 16:52:49.38 ID:3f3X1OW4d.net] 儲かってると思うけどな。Unity。 18万円はProだろ。 Enterpriseは別だよ。
871 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 20:04:55.15 ID:fYjPqF3od.net] ダウンロードできるか?ってできるだろ 1レコードがMB単位でデータあるんか? 1レコード1KBで2.5GB 最近のゲームなんて10GB超えのダウンロード当たり前み
872 名前:たいなとこあるじゃん 250万行のテキストはあんま開きたくはないが [] [ここ壊れてます]
873 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 20:09:07.70 ID:fYjPqF3od.net] なんの根拠もない空想だけどゲームとVRの比率、VRが10%とかじゃない? もちろん両方もそれなりにいるだろうけど それでVRまで含めれば説明がつく、って意味がわからん
874 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 20:16:58.44 ID:3f3X1OW4d.net] あんまり詳しくは言えないけど、VR以外にも使ってるものもあるし、エンタープライズだとお値段時価だし、 企業ユースでは数人のチームなんてのはあり得なくて結構な人数分揃えるからね。 CADと連携したりなんやかんやで、ゲーム開発より金はかかるから、プロダクトの割合とは一致しないよ。
875 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 20:31:17.51 ID:kvTCOjS80.net] Unity用のスレはあるからそっちでやれよ VRプログラム雑談【Unity/UnrealEngine】【HTC Vive/Oculus Rift/その他VR】 https://mevius.5ch.net/test/read.cgi/tech/1478142101/ 数レスならともかく赤いのまでいるし
876 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 21:46:33.67 ID:Lm9ykMW+0.net] 先月も変なのが沸いてたけど同一人物だな
877 名前:デフォルトの名無しさん [2018/12/14(金) 16:44:56.02 ID:nWTWWp6e0.net] 質問いいでしょうか webapiにて var task = Task.Factory.StartNew これで重い処理をバックグラウンドで処理させています。 このtask開始時にDBにProcessThread.IdとProcessThread.StartTimeを落として 別のwebapiでDBに落としたIdとStartTimeを使って GetCurrentProcess().Threadsを検索して定期的に生きてるかのチェックを行っています。 これがけっこう不安定みたいで、バックグラウンドの処理が終わる前に ProcessThreadが検索できなくなる場合があります。 最初にStartNewさせた際のProcessThreadが生きてる正しい確認方法はないでしょうか? ブラウザを閉じた場合を考慮してProcessThreadで確認を行いたいです。
878 名前:デフォルトの名無しさん [2018/12/14(金) 17:44:35.68 ID:nWTWWp6e0.net] すいません。 変な質問ですね。 var taskを見るのではなく、その他の方法で バックグラウンド処理が動いてるかの確認が行いたいです。
879 名前:デフォルトの名無しさん [2018/12/14(金) 18:14:11.54 ID:nWTWWp6e0.net] すいません。 自己解決です。 static public Task wkTaskを宣言しておいて wkTask= Task.Factory.StartNewで作成したあと、ブラウザを閉じて 開き直してもwkTaskは生きてますね。 スレ汚しすいませんでした。
880 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 21:29:27.54 ID:OUs3lGdw0.net] 自己解決できるやつは偉いぞ
881 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 02:43:07.58 ID:LeOuIFUL0.net] >>845 そのTaskが必ず1つしか動かないって保証があるならいいけどね。 ブラウザ閉じる->開くを繰り返したらどうなるんや
882 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 16:24:19.51 ID:U8VjJ+lV0.net] ブラウザ閉じて開いて、サーバの同じスレッドに接続して同じタスク拾う保証どうやってるんだ
883 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 11:49:06.15 ID:yRPOvGGU0.net] Action.Invokeでvoidと比べてstatic voidの方が遅いのってC#7だと改善されたの?
884 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 13:31:28.35 ID:C73LM3okM.net] javaのtry-with-resouceみたいにusing書けるようにしてくれないかな どうしてもネスト深くなるの辛い
885 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 15:23:40.58 ID:c4aAB3Aqd.net] >>850 C#8.0
886 名前:デフォルトの名無しさん [2019/02/10(日) 17:55:21.67 ID:Y+0FbWW50.net] メソッドへのオブジェクト引数で、参照渡し(refをつける)、とオブジェクトの値渡し(refなしの値渡し。つまり、ポインター(アドレス)渡し)の違いがわかりません。 同じと思ってますが・・・・・。事実は違うようです。参照だと
887 名前:渡し元も変更される、っていう違いは分かります。 それ以外の違いはあるんでしょうか? [] [ここ壊れてます]
888 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:14:21.76 ID:vpLDyodj0.net] >>852 オブジェクトの値渡しってどういうこと? 参照型なら全部参照渡しになると思うが
889 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:17:54.37 ID:Mw20IJUM0.net] refだと渡し元が変更されるって十分な違いだろ どうあって欲しいんだよ一体
890 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:43:21.99 ID:vOpxNkmL0.net] >>852 ここらへんを見てみればいいかと https://dobon.net/vb/dotnet/beginner/byvalbyref.html#section3 かんたんに言うとどっちでも渡されたオブジェクトの中身は変えられるけど、ref付けないと新しいオブジェクトを設定して呼び出し元に返せないってこと
891 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:57:09.81 ID:ynO2ssbq0.net] 参照値でも、refつけない値渡しとref付ける参照渡しできる。 で、参照値以外の値...とりあえず非参照値と呼ぶと 非参照値でも、refつけない値渡しとref付ける参照渡しできる。 全部で4パターンあるってこと 👀 Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
892 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 19:18:44.11 ID:zgWWffC0a.net] >>852 簡単なので難しく考えてはだめ。すごくシンプルな話。 その型の値(その型の変数に格納される値)を渡すのが値渡し。 その型の変数の「場所」を渡すのが参照渡し。 さらっと書いたけど、「その型の値 = その型の変数に格納される値」なのはよく理解する必要がある。 つまり、参照型の変数に格納される値って何だったか要再考。 変数とはメモリ上に割り当てられた特定の領域のこと。 だからその領域のバイト列のコピーを渡すのが値渡しで、 領域の先頭アドレスを渡すのが参照渡しだと思えばいい。 参照渡しでメソッドが受け取る情報は「変数の」場所なので、参照渡しの引数に リテラルや式を渡すことは出来ない。
893 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 19:59:44.58 ID:xbk//Ba50.net] 多分だけど参照渡しと値渡しの挙動自体は理解しているものの、 デフォ参照型とデフォ値型の区別がついておらずにデフォ参照型で実験をしてrefでも素渡しでも変わらないやんってことじゃないか
894 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 20:36:28.11 ID:3Dzzkr73a.net] tuple使えるならrefは忘れていいと思う
895 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 20:53:04.89 ID:OiPWe/iEa.net] TryParseみたいなのだと成否と値がtupleで返って来てもifの中でめんどい
896 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 21:03:14.46 ID:c1xIq/Nm0.net] メソッド内で中身を変更するって理由で参照型のもref渡ししてるのみてイラッとしたことはある。イランヤン
897 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 08:03:59.18 ID:RCleUAyA0.net] それVB6からの移植とかじゃない? オフショアが移植したコードがそんなんばっかし
898 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 15:02:26.65 ID:RVSdpjZja.net] ref の使いどころってライブラリから複数の返値欲しい時だから 他の手段使えるならそっちでいいわな 未初期化変数指定できんのも地味にイラッと来るし
899 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 15:22:08.28 ID:xSGeZZ3R0.net] >>863 そういう場合はrefではなくoutを使う
900 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 15:23:06.12 ID:MkFOBvt90.net] >>863 > 未初期化変数指定できんのも地味にイラッと来るし out使えよ
901 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 15:23:27.15 ID:MkFOBvt90.net] 被った…
902 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 16:36:40.92 ID:2icS/4sTa.net] 引数いじるの好きじゃないわ 返り値だけで判別させて
903 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 16:54:38.75 ID:I8dqqL3E0.net] まあ参照型はoutの制約で十分かつ安全なのでrefはほぼ出番ないんじゃねえのん Swap関数を定義する時くらしか適切な例が思い付かねえ
904 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 18:26:18.92 ID:2ERt5pT00.net] そのswapがな、MVVMでお決まりのBindableBaseなりのSetPropertyでプロパティの値交換するときに使いまくりで、 androidでもMVVM使いまくってるけどrefないkotlinやjavaでやると...
905 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 19:50:18.92 ID:u96ReIy/0.net] プロパティの値交換するときってのが想像つかんが どういうときにそれを使いまくるんだ?
906 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 21:01:30.06 ID:KFZGfstbM.net] プロパティの値をソートする時じゃね?(適当)
907 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 23:51:08.44 ID:HQcd2HqP0.net] BindableBase SetPropertyとかでぐぐってみれ 有り体に言えば自身のプロパティ(のバックストア)を差し替えるジェネリックメソッドを基底クラスで定義するのに使うだけ
908 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 00:40:04.33 ID:6JezjdzR0.net] WPFとかUWPとか使ってればBindableBaseのありがたさはよくわかる 関係ないけどstaticメソッドって呼び出すときにいちいちインスタンスを生成する必要がないって以外のメリットあるのかな?
909 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 01:53:30.80 ID:sK/raQIQa.net] >>873 まあメリットって発想がそもそもおかしい。 例えばDouble.Parseがstaticなのはその方が意味的に自然だから インスタンスメソッドである必然性がないし、インスタンスメソッドでは不自然だから
910 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 04:15:53.43 ID:VGvE+KfY0.net] >>873 パフォーマンス
911 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 21:00:36.96 ID:YtWtNE43a.net] dictionaryとかのcollection系が手抜きなのなんで? 特にdictionaryとか拡張必須だし 割とc#好きだけどこれはほんとアカン
912 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 22:13:27.13 ID:qKlS4dB9d.net] >>876 何がどうあかんのか具体的に
913 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 22:45:20.23 ID:tlcLfILV0.net] テンプレート系はデータが増えればC++にでも勝てるのに 何が問題?
914 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 00:22:49.50 ID:dIP2EtTm0.net] Collection系はJavaの方がしっかりしてるよね。
915 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 00:39:22.49 ID:2WeUN81J0.net] >>879 Javaは何が違うん?
916 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 03:04:36.23 ID:l1U6kYAka.net] Queue以外は不満持ったことないね
917 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 21:54:02.82 ID:kAPwBxa3M.net] queueは空っぽの時取り出そうとすると落ちやがるの許せん勝田 今はTryあるからいいけど
918 名前:デフォルトの名無しさん [2019/02/15(金) 22:47:38.37 ID:izkrr7dEa.net] いやチェックしとけよそこは
919 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 08:41:04.77 ID:q1DAaOKG0.net] 例外が発生することを落ちるって表現する男の人って…
920 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 10:36:35.40 ID:8cj+4+Hl0.net] 例外っていろんな種類あるけど具体的に何を使えばいいのかよくわからなくて とりあえずcatch(Exception e)とかしちゃってるけど本来はこんなのダメだよな……
921 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 11:09:50.80 ID:mveZudXk0.net] 別にいいと思うぞ。下位の呼び出しのどこかで失敗したということに対して適切に処置するなら。
922 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 12:03:59.89 ID:mmBt6tnL0.net] >>885 例外は握りつぶしてこそ華
923 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 12:43:39.03 ID:LCZTEEhT0.net] catch(Exception e){
924 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 13:08:53.78 ID:q1DAaOKG0.net] >>885 > 例外っていろんな種類あるけど具体的に何を使えばいいのかよくわからなくて 投げる方で悩むのはわかるけど > とりあえずcatch(Exception e)とかしちゃってる 受ける方はどれ受けるべきかはわかってる
925 名前:ナしょ 最終手段としてよくわからんけどエラーが発生したから終了するね って言うならcatch(Exception e)もありだと思うが [] [ここ壊れてます]
926 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 13:37:31.27 ID:mveZudXk0.net] 終了というのがプログラムの終了のことなら逆にcatchしちゃだめだろう。
927 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 14:43:51.47 ID:NIO8UzEI0.net] >>889 catch { }ではw >>890 例外一つでプログラム終了していたら大概困るw
928 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:01:00.34 ID:NEtPpdWW0.net] 例外はありえない事態なんだからプログラム終了しなきゃまずいだろう
929 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:02:54.74 ID:PR5Tb5Rba.net] >>891 それは逆で、プログラマが想定してない例外が発生したら プログラムは停止してもらわないと困る。これが正しい考え方。 そもそも例外機構というのはそのためにある
930 名前:デフォルトの名無しさん [2019/02/16(土) 15:03:48.09 ID:uy2P96bkM.net] 最近部活の後輩が黒魔術みたいなコードを書くようになって困ってるんだが対策ない? こんな感じのコードを後輩が書いてくるんだよ↓ public interface IMessenger { __public MessageReceived(); } public abstract class Messenger : IMessenger{ __public abstract void MessageReceived(); __public abstract void Retry(); }
931 名前:デフォルトの名無しさん [2019/02/16(土) 15:04:05.72 ID:uy2P96bkM.net] public class Mail : Messenger { __public override void MessageReceived(){ ____//処理 __} __public override void Retry(){ ____//処理 __} } public class Alarm : Messenger { __public override void MessageReceived(){ ____//処理 __} __public override void Retry(){ ____//処理 __} } public class Communication { __public void SendMessage(IMesssenger message){ ____SendMessage(message); __} __public void Received(){ ____var received = GetMessage() as IMessage; ____received?.MessageReceived(); __} }
932 名前:デフォルトの名無しさん [2019/02/16(土) 15:04:31.94 ID:uy2P96bkM.net] こんなんだったから public class Communication{ __public void SendMessage(string message){ ____SendMessage(message); __} __public void Received(){ ____var received = GetMessage(); ______switch(received.First()){ _______case "0": _________MailEvent(received); _________break; _______case "1": _________AlermEvent(received); _________break ____} __} } こんな感じで書くように矯正しといた CSVで2文字で分けるって言ってるんだから 何が起こってるかわかるように書くことを意識してもらわないと
933 名前:デフォルトの名無しさん [2019/02/16(土) 15:06:36.58 ID:8cj+4+Hl0.net] まあ例外でプログラムは終了させるべきだよな ただ客は例外が起きてもcatchで握りつぶしてスルーした方が文句言わないんだよな……
934 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:14:21.65 ID:auHH3gBua.net] >>894 酷いな MediatoRを使うようにアドバイスしてあげなよ
935 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:19:24.61 ID:PR5Tb5Rba.net] >>894 2chのシステムは先頭の半角スーペースは除去するけど全角スペースは除去しない。 だから字下げは後者で
936 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:41:54.82 ID:q1DAaOKG0.net] >>891 > catch { }ではw ごめん、何を言いたいのかわかん 処理部分も当然必要だけど何を受けるかの話だから(Exception e)の方が重要だろ?
937 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 22:53:53.99 ID:gbHoDgK/0.net] >>893 ちょっとMSに例外じゃなくエラーコード戻す設計にするようお前から言ってきてくんね? W32APIはそうなってんのにFrameworkの方そうなってないじゃん
938 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 00:48:25.53 ID:0sFVNd3o0.net] 宗教戦争を見物now
939 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 14:42:24.50 ID:QIeMqQFm0.net] byte*からbyte[]にする方法ってない? new byte[64];みたいに新規確保してコピーしか方法ないんだろうか Unsafe.As等で新規確保無しで出来るかと思って色々試してみたけど上手くいかない
940 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:01:42.36 ID:99sHKv96a.net] 「byte[]にする」が「byte[]とみなして扱えるようにする」って意味なら 全然別の型なんだしあるわけないでしょう。 そういう危なっかしい機能を排除してるのがC#の売りの一つだったはずなわけで コピーする機能ならMarshalあ
941 名前:スりにあるんじゃない? [] [ここ壊れてます]
942 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:16:25.11 ID:QIeMqQFm0.net] >>904 >「byte[]にする」が「byte[]とみなして扱えるようにする」って意味なら そういうことです あるわけないと言いますが、その逆はあるので出来るかなと思い (byte*やref byteで先頭を指定し自作のstructとして読ませる。少しずらせばbyte[]を自作クラスとして読ませることも可能)
943 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:21:31.28 ID:Ox4HquXb0.net] >>905 >(byte*やref byteで先頭を指定し自作のstructとして読ませる。少しずらせばbyte[]を自作クラスとして読ませることも可能) 具体的なコード希望
944 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:23:52.52 ID:UNDanSNQ0.net] その逆がマネージドじゃ難しいからね 無理じゃないかなあ やっぱこれからはSpanですよスパンスパン
945 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:27:09.29 ID:QIeMqQFm0.net] >>906 public struct MyStruct { public int Value1, Value2, Value3, Value4 }; byte[] data = new byte[16] { 1,0,0,0, 2,0,0,0, 3,0,0,0, 4,0,0,0 }; ref var myStruct = ref Unsafe.As<byte, MyStruct>(ref data[0]); これでmyStruct .Value1は1、myStruct .Value2は2, myStruct .Value3は3, myStruct .Value4は4と余計なコピー無しに直接読み書きできる byte[]からclassの場合はFieldOffset指定して各フィールドを4バイト後ろにづらないと出来ないから実用は難しいけど一応可能
946 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:31:55.60 ID:QIeMqQFm0.net] fixed (byte* ptr = &data[0]) *(MyStruct*)ptr; と大体同じではあります
947 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:40:47.44 ID:QIeMqQFm0.net] やっぱりこういうことやりたければC++に池ってことなのでしょうか 記憶力悪いのでVSがC#ほど助けてくれないC++に行くのは億劫なため質問させてもらいました
948 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 16:16:49.38 ID:rf6p5Xt1a.net] Span使え
949 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 16:27:59.23 ID:tKx1WgvG0.net] byte[]も参照型だからね、オブジェクトヘッダが付いてなければ扱えない Span<T>でなければ、具体的なシナリオにも依るけど元からbyte[]で作って TypeHandleとlengthのsizeof(IntPtr)*2分ずらした所を使い回す方が賢明 結局fiexdと一緒な訳だが、P/Invokeならbyte[]渡してもゼロコピーの筈だし abstract class Union<T> where T : struct { internal readonly IntPtr length; public T Value; } みたいなオレオレ実装をILキャストした事もあったな…後はSafeBufferとか
950 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 12:35:31.38 ID:78/oBfjca.net] self containedって完全に依存なしになるわけじゃないのね alpine用にself containedでビルドしても動かなかった libstdc++とか色々インストールしたら動いたけどさ dotnetコマンド同梱と比較してコンテナサイズも殆ど変わらないし意味あるのかなこれ
951 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 12:44:14.85 ID:IWeqLQBdd.net] >>913 おばか
952 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 14:33:57.39 ID:XSMrGlqdp.net] SCDは.NETのランタイムを別途インストールじゃなくて同梱するってだけの話だしね 公式ドキュメントにも注釈あるけどLinuxは仕様上完全に断ち切るのは難しいんじゃない? Windowsだと同梱のファイルだけでそのまま動くけど
953 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 17:41:05.62 ID:DKuxuLxMa.net] >>915 Windows配布用と割り切った方がいいのかもしれない Linuxだと管理下のサーバーかコンテナが多いからSCに拘る必要もない
954 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 18:56:24.09 ID:IWeqLQBdd.net] 最近のバッチはみんなSCDにしてる らくちんらくちん
955 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 19:03:47.82 ID:DKuxuLxMa.net] Goのように1バイナリにはならんものかね
956 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 19:11:19.09 ID:IWeqLQBdd.net] >>918 https://github.com/dotnet/designs/pull/52
957 名前:デフォルトの名無しさん [2019/02/26(火) 16:27:59.06 ID:jgGxVc0K0.net] ちょくちょくポインタ代替機能についての質問があるけどさ どんな用途でポインタを使いたいのかわかんないけど、大抵の場合はストリームで代用できるんじゃないのかな
958 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 19:45:51.64 ID:KXA/2sKca.net] ID3タグとかバイナリ使うにゃ要るだろ
959 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 22:52:44.40 ID:cz3vAcnh0.net] >>921 バイナリデータもストリームで扱える
960 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 23:01:06.66 ID:w0dNr8TE0.net] バイナリ弄るならSpanでよくね?
961 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 22:56:28.74 ID:0yfFFlZD0.net] ポインタなんかアンマネージとのやり取りとBitmapdataでしか使ったことないな アンマネージとのやり取りだとrefとかoutにしとけばあとは何も考えなくていいから助かる
962 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 10:07:34.38 ID:yMVoU8j+0.net] 「変数aが1,4,5,7のいずれかである場合」 という論理式を書く場合 (a==1) || (a==4) || (a==5) || (a==7) とswitch文以外でもっと手っ取り早く書く方法ありますか?
963 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 10:20:00.75 ID:Ud+LwFnR0.net] >>925 その表現が一番端的でわかりやすいのではないですか?
964 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 10:21:50.56 ID:Vr07loEY0.net] >>925 ()いらない
965 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 11:05:26.20 ID:heck9gfNa.net] new [] {1, 4, 5, 7}.Contains(a)
966 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 11:08:41.04 ID:Co1I1oSR0.net] >>925 その程度ならその書き方が一番わかりやすいと思うが比較対象がもっと多いとか可変にしたいとかなら var C = new HashSet<int>(){1, 4, 5. 7}; if(C.Contains(a)){ … } とかもある
967 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 14:06:20.64 ID:yMVoU8j+0.net] >>926 数が少ないうちはいいんですが >>927 カッコの上でShift+Ctrl+}すると 式部分を一発選択できるのであえてそうしてる >>928 これがいい感じです 少しオーバーヘッドが気になりますが
968 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 14:59:32.01 ID:AX9YyrwL0.net] SQLみたく a IN (1,4,5,7) てかければいいなとおもうが、aが右側になっちゃうのが若干違和感
969 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 15:04:48.62 ID:Nsc0DUxH0.net] 拡張メソッド作れば解決
970 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 19:46:04.84 ID:5yoALKCSa.net] >>929 以上の書き方ねーべ オーバーヘッドなんぞ無きに等しい
971 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 20:18:35.52 ID:zHCAEP8E0.net] >>930 HashSetやDictionaryは要素の数に左右されない方法でアクセスを行うから 含まれてるか否かといったような検索用途に限定すれば1個だろうが1万個だろうが常に高速にアクセス出来る Listや配列は要素数に比例してアクセス時間かかるようになるが
972 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 21:00:42.79 ID:RzDDiNewd.net] なぜ要素数が増えることがある という大前提を最初の質問時に明記しないのか
973 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 22:03:38.03 ID:CQ1ng92ga.net] >>928 これ、new[]の部分を()で括らなくていいのは何か直感に反するけど、 newもnew[]もドット演算子と同じ優先順位なのかw キャスト演算子も同じ扱いにしてくれたらよかったのに
974 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 01:24:26.71 ID:5kU0Dorz0.net] >>934 もとの要素がどこにあるかよくわからんけどな HashSet作成して要素セットするオーバーヘッドがあるだろう 格納時にハッシュ値計算するから比較のコストが低いわけで、その分格納にコストがかかるんだぜ
975 名前: [] [ここ壊れてます]
976 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 02:51:31.92 ID:0iBtFMi0a.net] 使い捨てなら配列のほうが安そうな気はするが それが差となって現れるようなユースケースとも思えんしなあ
977 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 08:04:01.95 ID:1vB8VE1Z0.net] また質問者無視してる
978 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:05:10.09 ID:wNoJ2Bbs0.net] 質問者ってそんなに偉いの? そいつの質問に常に合致した話題じゃなきゃダメなの? ひとつの質問があって、それを機会に派生してもいいし、あとは自由に意見しあえってもいい どんだけ構ってほしいんだ
979 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:06:48.39 ID:467OkvF30.net] 気にしてるの君じゃん 自由でいいと思うなら かってにやってりゃいいじゃん どんなけかまってほしいの?
980 名前:デフォルトの名無しさん [2019/03/03(日) 09:27:17.06 ID:qK6tlWl9a.net] ROM専からすると多少横道にそれてもいろんな手法を見れるほうが面白い 正直これくらいの質問なら好きにしろって感じだろ
981 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 10:44:42.90 ID:wOo332Lk0.net] >>937 だから検索用途ならって書いた訳だが if ((a==1) || (a==4) || (a==5) || (a==7))って書けるってことはAddは頻繁に行わないと受け取ったわ
982 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 12:55:52.71 ID:3ZaOSZpTa.net] 述語の部分が、 (1) 全要素を常に == で評価 (2) 全要素を同じ演算子で評価するが、==以外の演算子も使われる場合がある (3) 要素ごとに個別の評価方法 で最適な答えが変わりそうなんでその辺ははっきりした方がよかったかもね。 質問者は (a==1) || (a==4) || (a==5) || (a==7) の代替案を聞いてるんだから普通に考えれば要素数はそんなに多くないはずで パフォーマンス云々は風呂敷広げすぎだろうw
983 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 13:55:56.58 ID:Nfj27eon0.net] 議論の途中で申し訳ないのですが 例えば独自クラスで、こんなのがある。 独自クラス{ string name {get; set;} decimal num1 {get; set;} decimal num2 {get; set;} } というのがあって、グリッドビューにList〈独自クラス〉をデータソースとして渡して表示させたいのですが numは3,4,と増える可能性があります。(型はすべて同じ) この場合にソースコードをメンテナンスすることなくnumの増減に対応するにはどのようにすれば良いでしょうか?
984 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 14:46:12.80 ID:NjSnZzWN0.net] decimal[] num {get; set;} とか、 Dictionary<int,decimal> num { get; set; } じゃダメなの? なんか設計レベルで問題がありそうな気もするけど。
985 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 15:03:54.49 ID:EUJr/Yte0.net] >>945 配列なりListなり使えばいいだけじゃねーの?
986 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 16:04:38.55 ID:lbgm80aQ0.net] 固定値でIFするのは好きじゃないな。 ソースの冒頭で定数を定義したい。
987 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 16:50:33.82 ID:fEIk0m7q0.net] >>945 列が可変になるのならデータテーブル使うのが楽だと思う。クラスでやるとしたらexpandoで作るもなくはないと思うけど、それなら上にある通りDictionaryの方がシンプルではないかと。
988 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 21:37:48.24 ID:5kU0Dorz0.net] >>944 質問者がオーバーヘッド気になるとか発言してるので、パフォーマンスを考慮することに意味はあるんじゃね まあ、ずらずらと手書き出来る程度の要素数ならどれ使っても大差ないって言っとくべきではあるかもしれんが
989 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 02:59:42.60 ID:01ls3eLR0.net] C#はセキュリティー的に問題があるので使わないほうがいい。
990 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 03:03:58.87 ID:uKTTdpNO0.net] >>951 詳しく
991 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 04:19:27.01 ID:6CrjVVG40.net] お前何回も見てるから詳しくしなくていい
992 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 08:33:58.12 ID:Q/LSKwqY0.net] >>953 詳しく [] [ここ壊れてます]
994 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 12:55:11.87 ID:xG/V/FM40.net] 一発でソースコード復元されるからか? それを言ったらJavaも同じだから泥アプリとか簡単に解析出来るけど
995 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 15:29:31.29 ID:zDemJk6G0.net] それはMSも認識してるしフリーの難読化ツールが何個も出てるんやで 難読化が必要な理由 | Microsoft Docs https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/ms227271(v=vs.90)
996 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 20:24:10.57 ID:X7v05Ly8M.net] うちのソースは普通に難読だけどな
997 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 20:50:38.72 ID:phKvM6KvM.net] おれのソースコードはデフォで難読だから余裕
998 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 00:13:41.81 ID:30anmeL+0.net] 難読化しないとってほどのソースコードなんてそんなに無いような気がするけどな… そもそもOSSが当たり前みたいなこんな時代に
999 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 01:10:43.27 ID:tnYmqFtJ0.net] >>959 見せられない処理はAPIの向こう側だしね
1000 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 19:34:45.84 ID:Kf1DGo5Q0.net] ゲームは改造対策に難読化したほうが良さげ
1001 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:12:26.41 ID:5Js7CVOV0.net] オリジナルソースがスパゲッティでも ILSpyなんかを通すとオリジナルより見やすく逆コンパイルしてくれるからな。
1002 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 14:21:31.67 ID:p3uWfhXt0.net] そんなのあるんだ?ありがたいな。スパゲティにはほとほと手を焼いてたんだ。きれいにしてくれるなら使ってみようかなw
1003 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 18:09:25.36 ID:XK/LB6aKd.net] メソッド単位は変わらないからプライベートやグローバル使いまくりのスパゲティはどうにもならないけどね
1004 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 19:36:48.59 ID:W3YxLksd0.net] 制御フロー難読化をやるとさらに汚くしてくれるからオススメ
1005 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 20:13:44.24 ID:S6VEx3Fw0.net] メソッドのローカル変数をきれいに整頓してくれるILSpy△ そろそろここも終わるけど C#, C♯, C#相談室 Part95 https://mevius.5ch.net/test/read.cgi/tech/1508168482/ でいいよね。隔離スレをわざわざ新しく立てる必要もないし
1006 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 19:31:23.01 ID:uF+nNtm+0.net] ライブラリレベルのオーバーヘッドを気にするのは止めましょう ガベージコレクションが前提の言語を使ってる以上無駄な努力に終わります 性能絶対重視なら最初からCやASMで書いた方が良いし よほどのスパーハカーでもない限りそんな努力が報われるほどの性能差にならないと思われます
1007 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:34:22.29 ID:DpwzO91B0.net] ASM? コンパイラに勝てると思ってるのか?
1008 名前: mailto:sage [2019/03/14(木) 21:49:31.03 ID:NTAm4EVS0.net] >>968 asm の教科書を書いていますが、「そのお題、asm で書く理由がない…」という深刻な問題に直面しています asm で書くのに適したお題は何かありませんか?
1009 名前:デフォルトの名無しさん [2019/03/14(木) 21:52:50.86 ID:SvZaCm1k0.net] 最初のCコンパイラかな
1010 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 22:53:26.94 ID:fi3bTXEpa.net] x86の機械語は知らんけど、CPUを汎用計算機ではなくHWとして使いたい場合は 直接機械語で書くしかないでしょう
1011 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 22:56:05.33 ID:6sRnwOjo0.net] CPUを汎用計算機じゃなくてHWとして使いたいようなニーズなんてほとんどの人にはねえだろw
1012 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 22:59:30.46 ID:fi3bTXEpa.net] だからASMなんて(今となっては)ニッチな需要しかないのでは?
1013 名前: mailto:sage [2019/03/14(木) 23:12:09.22 ID:NTAm4EVS0.net] >>973 その需要の一例を知
1014 名前:りたいですね… [] [ここ壊れてます]
1015 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 23:13:00.27 ID:3EvgP48J0.net] >>969 ブート部分とかかな I/O命令とかを発行する部分もあるけどこっちはインラインアセンブラでもいいかな
1016 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 23:43:27.63 ID:fi3bTXEpa.net] >>974 必要を無視すればBCD演算とか。 最終的にBCD演算命令に翻訳されるようなコードをC#では(Cでも)書けないはず。 まあx86ならマルチメディア系の命令とかが王道なんだろうけどね知らんけど。
1017 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 23:48:39.57 ID:nlDJyEEg0.net] ニッチな事には変わりないけど、 https://ufcpp.net/blog/2018/12/hdintrinsic/ hardware intrinsicとか入ってくるし
1018 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 20:54:11.25 ID:lWIPCB/k0.net] 20年ぐらい前の1クロックが今より数十倍以上高価だった頃なら、 ASMによる人力高速化も(コスト的に見合うという点で)意味があった Cコードで表現されてない知識も使ってちっちゃな関数でも結構簡単に数十クロック程度は高速化できた Cコードで表現されてない部分を使えば、今もやろうとすれば高速化はできると思う(コストに見合わないだけで) (変数aとbは実はいつも a<b なのでこのニーモニックが使えるとか、 ここの条件判定文は実は別の変数を計算したときのレジスタのフラグと同じ意味なので計算しなおす必要はないとか) >>977 の話題に近いけど、 今ならASMの意味があるのはJITまわりとかかな?
1019 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 21:48:50.55 ID:D5NVJqkY0.net] コンパイラはパイプラインでデータハザードが起きない様に計算して命令の組み替えしたりする。 人間がそこまでできるかな? オレは20年ぐらい前にmemcpyを高速化するためにアセンブラで組んだ。 今思うとCで組んでコンパイラに最適化させるべきだったかもね。 若気の至りだ。
1020 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 00:00:03.09 ID:6P+M3e6E0.net] asmはコンピュータの仕組みを理解するにはうってつけの題材では有るね 最新の特殊命令なんか不要だが、68Kなんか最高の素材だと思うわ
1021 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 00:15:39.88 ID:sQCNGdE30.net] ERMSBなんかを考えるとコンパイラも小手先なんかね 実行ハードでスケールするか、安定的な最適化か 汎用性を考えれば普通は後者になるだろうけど というかC#ならCILレベルに留めるべきではねか
1022 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 05:39:50.41 ID:lafVI2fNM.net] WASMを最適化してくれ
1023 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 14:26:07.02 ID:gcoRXnnM0.net] 今やIoT用でもメモリMBクラスだろ アセンブラでハック必要な用途なんてないだろな
1024 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 15:56:32.11 ID:zOgp3uDK0.net] >>982 wasmになる前のLLVMの段階で既に最適化が出来る。 あと、詳しくは分からないが、wasmになった後の最適化も、 Emscriptein の opt.exe で一応はできるらしい。 但し、asm.jsとの「グルー」が複雑に絡んでいるので、 何をやっているかを理解するのはかなり難しく、 wasmで最適化しているのか、asm.jsで最適化しているのかは 忘れてしまった。
1025 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 19:51:51.79 ID:Ox1b9ZEv0.net] スレを間違えたかと思っただろ
1026 名前:デフォルトの名無しさん [2019/03/16(土) 20:27:45.17 ID:0AnVFDDg0.net] スレ終わりなんだから内容気にせず埋めてしまえwここ即死判定もないし GetFilesやGetDirectoriesのようなメソッドでエクスプローラーと同じ順に格納してくれるメソッドが欲しい ソートし直すのたまに
1027 名前:Yれてしまう [] [ここ壊れてます]
1028 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:07:46.17 ID:d1qKciPD0.net] >>986 自分でユーティリティライブラリ作っとけば
1029 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:16:16.11 ID:LVoOn4ja0.net] >>986 こういうことじゃなくて? var files = Directory.GetFiles(@"C:\hoge").OrderBy(name => name).ToArray();
1030 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:24:01.46 ID:m10rap++a.net] >>988 そんな単純な話じゃないはず https://wiki.dobon.net/index.php?.NET%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B8%A6%B5%E6%2F111
1031 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:28:11.62 ID:aNdxzMMr0.net] エクスプローラーと同じ順って今のエクスプローラーにどれだけソート項目があるか知ってんのか・・・
1032 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:28:35.53 ID:fhPcOkRld.net] >>989 なるほど
1033 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 22:01:49.01 ID:wgxWGDdm0.net] IEEEでまだ規格化されてない多ビット長の四則演算や、超コンパクトに処理を書く方法とか
1034 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 07:10:24.22 ID:WBoQCy0zM.net] >>990 普通の頭持ってりゃ名前のソートであることぐらいはわかりそうなもんだけどなw
1035 名前:デフォルトの名無しさん [2019/03/20(水) 07:42:02.03 ID:74ozQqG6a.net] Visual Studioって2015と2017両方いれて、2015だけ綺麗にアンスコできる?
1036 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 07:54:36.58 ID:LAIwbd+70.net] >>994 単体で入れても綺麗には削除できんぞ
1037 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 09:19:38.34 ID:W/HUsmxnM.net] ワロタ
1038 名前:デフォルトの名無しさん [2019/03/20(水) 12:21:41.32 ID:NDw+q9p/a.net] >>995 ありがとう そ、それは置いといて(笑) どちらか片方だけアンスコしたときにもう片方に必要なもんを削除されたりはしない?
1039 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 12:41:43.72 ID:JR1ztFlDa.net] VSに限らず明らかなNGは後から古いバージョンをインストールする行為だけのはず アンインストールに関しては「意図としては」大丈夫なように作ってあるはず。 やってみたら? 最悪新しい方の修復インストールかOSの復元機能で何とかなるでしょ
1040 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 14:05:02.42 ID:vc7KPojzd.net] 試してみて欲しい 俺のPCにもVisual Studio 2010から全バージョンインストールされてるから参考にする
1041 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 18:48:25.28 ID:jN76oFxX0.net] 2015だけ削除したいって何がしたいんだろ C#使う分には複数バージョンあって困ることないし
1042 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 18:53:06.53 ID:CvIVS+n40.net] >>1000 使わないものを入れておいてもストレージ占有するだけ無駄じゃん 普通にある要求だと思うけど
1043 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 18:54:52.24 ID:jJ3kq/hZ0.net] 2015の後に2017入れて2015アンインストールしたけど問題なかった そのあとふと2015入れてみたら俺環だろうけど2015でビルド出来なくなった。2017の方は問題なし そして問題のあった2015を再びアンインストールしたけど2017でずっと問題なし >>997 2017だけ使う分には問題ないはず
1044 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 697日 10時間 2分 52秒
1045 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています