1 名前:デフォルトの名無しさん mailto:sage [2018/08/05(日) 19:55:44.50 ID:tZmoj8I+.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part93 https://mevius.5ch.net/test/read.cgi/tech/1492818720/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part138 https://mevius.5ch.net/test/read.cgi/tech/1528194762/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/ja-jp/library/gg145045.aspx https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/
84 名前:感あるような [] [ここ壊れてます]
85 名前:デフォルトの名無しさん mailto:sage [2018/08/19(日) 20:47:54.16 ID:ztvlDXyo.net] >>80 Dapper使うならNpgsqlも必要だろ 自分で使ったこともないのに回答してるの?
86 名前:デフォルトの名無しさん [2018/08/19(日) 20:49:37.70 ID:WKvykaAV.net] >>80 >>81 どっちも勉強してみます ありがとうございます
87 名前:デフォルトの名無しさん [2018/08/19(日) 22:25:18.22 ID:WKvykaAV.net] メッソッドってregionで囲むもんなん? これアウトライン用よね?
88 名前:デフォルトの名無しさん [2018/08/19(日) 22:33:16.81 ID:NgDo0XDZ.net] 冗長なコード書くやつは畳みたいんだろう
89 名前:デフォルトの名無しさん mailto:sage [2018/08/19(日) 22:43:06.20 ID:Qn4G0bqC.net] 畳みたくなるような長いクラスは書かない
90 名前:デフォルトの名無しさん [2018/08/19(日) 22:44:46.22 ID:WKvykaAV.net] >>84 >>85 好きにしてってことか メソッド囲んでるソース多かったから基本なのかと思ったけど 面倒だし囲まないことにする
91 名前:デフォルトの名無しさん mailto:sage [2018/08/19(日) 23:10:34.65 ID:0oWhlzQ+.net] 全ての機能をFormに
92 名前:デフォルトの名無しさん mailto:sage [2018/08/19(日) 23:19:59.25 ID:hDKgqoRf.net] 俺はregionによる仕分け多用するけど一般的な習慣とまでは言えないね でも、単純にプロパティ、メソッド、イベント(OnXxxx)、コンストラクタに分類するだけでも 少なくとも視覚的な見やすさはだいぶ違うと思うよ MSDNライブラリのクラスメンバー一覧がそういう分類じゃなく単純にアルファベット順だったら どうか想像すりゃ分かると思うけど
93 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 20:47:47.03 ID:4Ys3BH8f.net] 複数のメソッドをregionで囲むはまだ許せるが、くそ長いメソッドの一部をregionで囲って短く見せるのは許せない
94 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:12:28.08 ID:dwFWVIwC.net] >くそ長いメソッドの一部をregionで囲って短く見せる 海外サイトでサンプル漁ってると時々見かけるな
95 名前:デフォルトの名無しさん [2018/08/20(月) 21:18:42.69 ID:7wKYHqTA.net] まあアウトラインってスコープ単位で線引されるからね regionは昔の機能と思っていいよ
96 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:21:04.27 ID:Uo4wU7xn.net] メソッドはregionで囲まなくても普通に畳めるよww
97 名前:デフォルトの名無しさん [2018/08/20(月) 21:23:33.78 ID:7wKYHqTA.net] >>92 畳めるけどメソッドをregionで囲ってるソースみること結構あるわ
98 名前:デフォルトの名無しさん [2018/08/20(月) 21:23:49.70 ID:7wKYHqTA.net] ホント謎
99 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:41:03.34 ID:UWgl1tII.net] メソッド単位で囲ってるのは俺も謎だと思ってた 昔は普通にたたむのできなくてその名残とかなのかもしかして普通にたためるの知らないのか
100 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:43:29.04 ID:/2kqdAhT.net] メソッドで畳めないIDE使ってるとか?
101 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:45:48.75 ID:1JpQrvUt.net] IEnumerable、IDisposable、IEquatableみたいな定型インターフェイスの実装は邪魔なんでregionで括ってるわ あとToStringやらGetHashCodeのオーバーライドなんかも
102 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:50:55.75 ID:DUHqVJSw.net] >>97 .NET Frameworkのライブラリと同じように作らなきゃいけないと勘違いしてた頃は俺もそれやってた アプリと不特定多数向けのライブラリは作り方が違ってていい、アプリはなるべく絞り込んで作るのがよい、 ということを理解してからは無駄なコードが減って必要なくなった
103 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 22:10:27.90 ID:FTwuHoIr.net] 不特定多数向けのライブラリを作ってるのかもしれないだろ
104 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 23:12:34.39 ID:4xbzQ56O.net] IDisposableはusing使うために必須だからなあ
105 名前:デフォルトの名無しさん [2018/08/21(火) 00:18:54.40 ID:oo1eFPzK.net] HttpClientみたいにsession繋ぎっぱなしが推奨されてるのにusing使う奴
106 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 00:23:49.00 ID:2/I2BB9Y.net] >>101 なんでそのルールをセッション繋ぎっぱなしが推奨されないものにまで適用しなきゃいけないの?
107 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 00:27:03.72 ID:2ZNryZEm.net] ここで聞くことでもないんだけど適当に意見くだせえ 仮に外部設計書・内部設計書・詳細設計書が必要として、 詳細設計書は別ファイルで作成するよりxmlドキュメントコメント使って生成したxmlファイル使った方がよっぽどいいよね?
108 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 00:40:44.14 ID:lLRe5osi.net] >>103 ドキュメントコメントは内部設計だろ 詳細設計というのはソースコードを日本語に逐語翻訳したものであり、一般にはコーディングシートと同じもの 下請けの一番使えない奴に押し付けるのが一番
109 名前:デフォルトの名無しさん [2018/08/21(火) 00:46:11.78 ID:Fn3PsyHg.net] >>102 日本語読めます?
110 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 00:50:51.67 ID:1ei+2zpw.net] 最初の設計がおかしかったからこんなことになった using使えるような新しいライブラリを出してこないMSが悪い pythonだったらpython的でないと言う理由で新しいライブラリが出てくる
111 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 01:07:05.30 ID:krr9M76P.net] >>101 ファイルの利用が終わったのにすぐにファイルハンドルを解放しないとか不便でしょうが
112 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 01:46:45.25 ID:2ZNryZEm.net] >>104 ドキュメントコメントは内部設計なの? サイトによって言ってること違って混乱してる 内部設計書=詳細設計書と書いてるところもあれば、 内部設計書=複数の処理の流れ、詳細設計書=ドキュメントコメントってところもある 自然言語でコード書いた奴は見当違いで本来必要の無い何かって認識だった。会社と人によって違うのかな
113 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 02:00:13.53 ID:lLRe5osi.net] >>108 詳細設計はCOBOL時代の名残りだ パンチカードや80x24文字の画面でコーディングしてた頃はソースコードは純粋なアウトプットであり、 ソース上で試行錯誤したりソース眺めながらコミュニケーションしたりするなんていう発想は無かったの プログラミングはタイピングの前に完了していなければならず、詳細設計を作成することこそが今でいうコーディング工程そのものだったんだよ 本来全く必要のないもの、でまさに正しいんだよ
114 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 02:01:33.41 ID:NrpzP/Hk.net] >>106 HttpClientFactoryも知らないおじいちゃんこんにちは
115 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 07:18:27.76 ID:K3bJIWvH.net] >>103 答えはNO 内部・詳細設計書はゴミのように不要どころか持ってると邪魔なものだけど客は金を出してくれる ビジネスでやる以上金になるほうを選ぶのが当然
116 名前:デフォルトの名無しさん [2018/08/21(火) 09:21:19.00 ID:6+/Jo0uy.net] 設計書ネタはスレちがくね?
117 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 09:58:08.14 ID:eCXr2PsD.net] 質問者すらそう言ってるが 言及したがりのバカが沸いたからしゃーない
118 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 10:26:32.76 ID:UjHMgN47.net] しかも最初の疑問点からずれた話題だけを掘り下げるという意味不明な状態
119 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 12:27:18.26 ID:DYb1gEuJ.net] Win32API関数でのエラー処理について質問です var DllFilePath = "hogehoge.dll"; handle = LoadLibrary(DllFilePath); if (handle == IntPtr.Zero) { throw new System.ComponentModel.Win32Exception(); } ↑のコードで例外をthrowするときに例外のMessageにDllFilePathの値を追加したいのですが throw new System.ComponentModel.Win32Exception(DllFilePath) とすると本来のエラーメッセージが上書きされてしまいます。 var DllFilePath = "hogehoge.dll"; try { handle = LoadLibrary(DllFilePath); if (handle == IntPtr.Zero) { throw new System.ComponentModel.Win32Exception(); } } catch(System.ComponentModel.Win32Exception e) { throw new System.ComponentModel.Win32Exception($"{e.Message} \"{DllFileName}\"", e); } こうすれば期待通りの内容にできるのですがAPI呼び出しの度に例外処理を書くのは コードが冗長になってしまうし何より面倒なのでうまいこと簡単に書けないか悩んでいます。 何かいい方法は無いですかね?
120 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 12:58:43.22 ID:GmRbaMy/.net] >>115 Win32Exceptionを継承して使う
121 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 13:00:35.25 ID:Ua1FlSB5.net] >>115 public class LoadLibraryFailedException : Win32Exception { public LoadLibraryFailedException (string path) { DllPath = path; } public string DllPath {get; private set; } ... }
122 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 14:32:10.34 ID:DYb1gEuJ.net] Messageに情報を足すことばかりが頭にあって 情報を別のプロパティに持たせる発想がなかった… こっちのほうがcatchする側で融通が利かせやすいし クラスやプロパティの名前を調整すればLoadLibraryに限らず 他のAPI呼び出しにも汎用的に使えそうでいいですね この方法で検討してみます。ありがとうございました
123 名前:デフォルトの名無しさん [2018/08/23(木) 11:52:17.79 ID:+a3jfYk1.net] すんません初歩駅な質問なんですが フォームアプリのコントロールに ボリュームやスライダーのような可変データコントロールは無いのでしょうか? 似たのはNumericUpDownがありますが・・・ これの画像を差し替えてボリューム風にしろってことですか?
124 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 12:20:54.20 ID:Qdf2BjgW.net] >>119 トラックバー
125 名前:デフォルトの名無しさん [2018/08/23(木) 12:40:46.09 ID:+a3jfYk1.net] >>120 おお!「コモンコントロール」にも他カテゴリにも無いコントロールがあったのか! 完全に見落としてました ところでこれの画像を差し替えて丸型回転ノブにすることはできるんでしょうか? まだ勉強不足でよくわかってないのですが Imageプロパティとか無いからできないかな?
126 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 13:36:36.72 ID:XFHRsDpy.net] ノブに変えるのは おお難しいんじゃあ〜
127 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 13:42:16.42 ID:OU0cRkrI.net] 初心者に回転ノブの実装は難しいと思う ってか使いにくいだろ
128 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 13:58:21.08 ID:oqmXoghj.net] >>121 画像だけで済まないでしょそれ そんな形で回転するコントロールは無いので一から自作しないと >>123 マウスホイール部分で動かすのならともかくドラッグで操作するものとか考えただけで頭痛くなる
129 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 14:11:46.80 ID:YLcqAqh8.net] volatile キーワードの役割がどうしても理解できないので教えてください。 自分の考えでは、以下のようなプログラムを最適化ありでコンパイルして実行すると while (loop) ; のループから抜け出すことができないから volatile キーワードが役に立つのかと思ったのですが、 残念ながら(?)実際に試すと普通にループを抜け出せてしまいました。 class Program { static bool loop = true; static void Main(string[] args) { new Thread(() => { Thread.Sleep(1000); loop = false; }).Start(); while (loop) ; Console.WriteLine("End"); } } そもそも、volatile がある場合とない場合で動作が変わるコードを ただの1つも作り出すことができていない状態なので、 何か volatile の役割を示すコードの例を示していただけると嬉しいです。 よろしくお願いします。
130 名前:デフォルトの名無しさん [2018/08/23(木) 15:15:56.49 ID:MTIo/8hT.net] >>122-124 むむむ画像の差し替えだけじゃ回転ノブは難しいのか! C#というのは在り物のコントロールをそのまま使って工夫するものなんですかね?
131 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:23:55.44 ID:7meTQdNO.net] マジレスするとメッセージ捕まえて 自力で描画すれば可能なんだけど 労
132 名前:力に見会わないのでお勧めしない webやWPF, UWPならグラ弄るの簡単 [] [ここ壊れてます]
133 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:58:07.77 ID:yzuHUqjv.net] 労力かけてそんな使いにくいUI作る必要ないだろ
134 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 19:00:57.46 ID:4aOJVToK.net] たぶん音量調整とかしたいんだろうけど そんなui見かけないのは使いづらいからでは?
135 名前:デフォルトの名無しさん [2018/08/23(木) 19:45:13.80 ID:/L2wlbg3.net] regionの適切な使い方って結局どうすんのがいいんだ? 独学だし人のあんま見たことないからよくわからん
136 名前:デフォルトの名無しさん [2018/08/23(木) 19:50:59.55 ID:Hj0kcImk.net] 折れ線グラフとか棒グラフとか 3Dで立体的に表示できる機能なんかない? 開いたら開始地点から現在の値のトコまで棒が伸びていくアニメーションとか リッチ感だしたいんだけど
137 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 21:01:34.44 ID:IbEC1I+s.net] GDI+よりWPFが簡単とはまったく思わんなあw >>129 XPの時代はそういうUIが結構あった。 >>126 ボリュームの位置(値)を、例えば小さな丸で示す実装なら超簡単でしょう。
138 名前:デフォルトの名無しさん [2018/08/23(木) 23:07:37.52 ID:nqcPx5oZ.net] 自分の作ったプログラムをウェブで公開したいのですが、完全に独学のため、 リリース用のビルドをするにあたっての注意点がよくわかりません。 このウェブサイトにあるように、単純にリリースビルドすればそれでいいのでしょうか? 第5回 Windowsアプリケーションのデバッグ&リリース (5/5):連載簡単!Visual Studio .NET入門 - @IT www.atmarkit.co.jp/ait/articles/0410/13/news100_5.html また、リリースビルドした場合、デバッグ不足で予期しないエラーが発生した場合、何行目にエラーがあるとかそういう表示って出てこなくなるのですか?
139 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:19:35.02 ID:S0ZPdzES.net] >>132 回転はどうするのwってのは置いておくとして超簡単って書くのなら方法示したほうがいいと思う >>133 公開するのならビルドした.Netのバージョンを必ず明記すること .Net以外の外部DLL等参照している場合はそれも書くこと >何行目にエラーがあるとかそういう表示って出てこなくなるのですか? はい
140 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:24:55.20 ID:AuVZlFM/.net] >>134 PDBの設定によるやろ…
141 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:55:38.28 ID:OU0cRkrI.net] >>133 pdbファイルも一緒に配布すればrelease版でも例外発生箇所を表示できる
142 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:57:41.73 ID:AuVZlFM/.net] >>136 リリースビルド時のフルパスがPDBに含まれないようにするのってどうやるんだっけ?
143 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:17:32.21 ID:uCffaOwh.net] >>137 [ビルド]-[出力]-[詳細設定]-[デバッグ情報]を「なし」に設定
144 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 07:41:58.39 ID:uu5lHyZK.net] フォーマット指定の方法なんだけど ("id:{0}",変数)みたい0とかのインデックス指定なしに 記載する方法ってなかったっけ? こんな感じ ("id:{}",変数) あったような気がするのだが見つからない
145 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:05:28.79 ID:1zvoR5Nf.net] >>139 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/tokens/interpolated
146 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:16:29.54 ID:srP6ovAZ.net] >>139 文字列補完? $"Id:{変数}"
147 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:23:14.01 ID:fKyaBZGN.net] 計算処理クラスは自動テスト実現のため一時変数以外のインスタンスを持たせない という方針を聞いたんですけどC#に例えるとどういう事ですか? 独り派遣で聞く人もおらず困っています
148 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:53:09.08 ID:ucGkXF3f.net] なぜその方針を作った
149 名前:、の人に直接聞かないの 理解せずに間違ったことやったら最終的に叱られるのは君じゃないの?w こういう人が2chで「コミュニケーションスキルガー」とか被害妄想全開で吠えてるんだろうなあ [] [ここ壊れてます]
150 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:54:55.58 ID:/eex7TkL.net] 2chとかいつの時代だよ
151 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 13:47:23.02 ID:7bl9vxOR.net] 未来から来てる可能性だってあるじゃないか
152 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:00:43.60 ID:ILYVISJ2.net] 状態を持たせずに純粋関数にした方が バグが減って保守やテストがしやすいってことじゃろ Mathクラスみたいに
153 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:28:08.95 ID:cHge5Sdm.net] メソッドを全部staticにしたらいいんじゃね もちろんstaticな変数は持たない utilクラスみたいなもんだと思えば
154 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:41:00.57 ID:qtcVVPQQ.net] それやるならstatic classってのがc#にはあったような
155 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:06:07.87 ID:7htaPF/P.net] メソッドやクラスをstaticにしたところで他のクラスのインスタンスへの依存は防げないだろ 計算処理クラスなんてものが生み出されるようなレベルの現場だと、 ヘタにstatic強制なんかしたらstaticフィールドに状態持たせるバカが増えて余計に酷い状況になりそう
156 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:54:49.70 ID:g1+rhs2E.net] >>143 それ書いた人はもう居ないです いつもイライラして椅子蹴ってくる正社員リーダーとは恐怖でこちらから話せません
157 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:56:51.04 ID:q0UJEScu.net] Utilクラスってゴミ箱になりがちだから嫌いだわ。 計算処理クラスはなんとなく気持ちはわかるが。 delegateでは微妙に表現力が足りないから特定のinterface実装したクラスを受けるようにして、その引数と型を渡せばネットワーク上のどこかでインスタンスが起こされて実行されるようにした、みたいなケースじゃないの? テストではないけど、ジョブスケジューラがdll名と引数をキューから拾って、appdomain切って動的にそのクラスを実装したdllを読み込んで実行してくれる、みたいなのは作ったことある。
158 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 18:01:21.93 ID:g1+rhs2E.net] >>149 処理をクラスにするって古い考えなのでしょうか 自分はDDD的な知識のクラスを構成するクラスも作りますが、そんなものは作らんのが流行りなのかと気になります
159 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 18:44:47.51 ID:h3eX92xO.net] >>134 >>136 ありがとうございます。やってみます
160 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:20:46.35 ID:s18ZTF9u.net] >>150 マジで底辺のリーダーってこんなんがほとんどなの?こええ
161 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:36:31.86 ID:n2aXOJxU.net] staticなナントカUtilクラスはJavaドカが好むよねー staticなのに内部でインフラ異存しまくっててキレそうになるよ
162 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:32:41.02 ID:KbP5R+D4.net] 失礼します。 ASP.NET MVC又はASP.NET MVC CoreのRazorビューから匿名型がサポートされない理由を説明してくださる方居ますか?
163 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:36:20.82 ID:usF07bpd.net] >>156 これのこと? https://stackoverflow.com/questions/5120317/dynamic-anonymous-type-in-razor-causes-runtimebinderexception
164 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 00:04:54.82 ID:K7SavMc/.net] >>157 はい。 .frameworkがpoorなのでサポート出来ない事が私には理解できません。 こちらのurlの記事では普通にプロパティで取得出来ているように見えますが… architect-wat.hatenablog.jp/entry/20130501/1367415654
165 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 09:58:42.90 ID:uF3Ar+0r.net] >>158 匿名型なんて使わなきゃいい
166 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:34:07.64 ID:ZJ6IWHAy.net] c#アプリって簡単に逆コンパイルで簡単にソース見れちゃうじゃん? 例えばAPIキーとかハードコーディングしてもしてなくても抜き出せてしまうけどどうすんの?
167 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:41:36.20 ID:ajbZjNWE.net] >>160 リバースエンジニアリングはどのくらいの労力がかかるかだけの違いで解析できないものなんかないから諦めろ
168 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:57:01.93 ID:Z58Bgt4H.net] >>160 ハッシュ値使うねん
169 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:08:24.14 ID:6fvgv2wi.net] >>162 ハッシュからAPIキーは復元できないでしょ
170 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:21:29.85 ID:nj06+sqx.net] >>160 環境変数
171 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:50:49.58 ID:J4BiRy9W.net] 200週くらい周回遅れの話題だ
172 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 21:51:49.34 ID:uGtRYhlb.net] >>163 間接的に別なのから取得するとか
173 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 21:53:27.00 ID:Y3DnwOBx.net] >>165 結論はどうなってるの? どうしようもない?
174 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 21:53:40.13 ID:Y3DnwOBx.net] >>166 どういうこと?
175 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 09:06:38.21 ID:mvt+Dc+2.net] >>159 問題はEFで匿名型が簡単に作られてしまうのが問題ですね。 結局expandoobjectに変換するか、ViewModelを毎回作るしか無さそうですね。
176 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 09:44:13.36 ID:O9adGcKd.net] >>167 要件による サーバーからもらうとか
177 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:36:40.81 ID:KYhaaDP0.net] >>161 まあそうだけど >>164 ふむふむ >>170 まあそれだね てかそれやってるんだけど超めんどい
178 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:41:52.49 ID:d3emHXQQ.net] >>170 サーバーから貰うときの認証は?
179 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:45:24.17 ID:MAg8NxfR.net] >>172 認証のパスワードなどの手続を登録した人に別途配布
180 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:48:09.71 ID:mLZLsxB6.net] サーバーから受け取るようにしたとしてもクライアントが丸見えなら同じ方法でサーバーからキー抜けるだろ ちゃんとやるなら、開発者だけが知ってる秘密鍵でシリアルキー作ってクライアントごとに払い出すようにする そしてサーバー側でシリアルキーに基づいてクライアントを識別し、クライアント単位でクォータや権限の制御をする 漏れる前提で他のクライアントに影響が出ないように設計するのが基本的な戦略だよ
181 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:55:18.75 ID:IHY0+SV3.net] どうでもいいけど、もともとの質問の趣旨は ネイティブコードと同程度の秘匿性でバイナリにデータを隠せるかじゃないの? それは無理、で終わりだと思うけど。
182 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:56:47.03 ID:g9QDbTAC.net] APIキーって5chのAPIみたいなの想像してたけど違うの? それだとクライアント毎に払い出しても誰か一人のがばれたら使用権貰えちゃうけど
183 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:57:13.81 ID:mLZLsxB6.net] >>175 APIキーを抜くくらいならネイティブでも難しくないよ
184 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 13:13:33.45 ID:mLZLsxB6.net] >>176 それで困るのは5chではなくブラウザの開発者だろ? 5chにとっては、特定のクライアント(この場合は開発者単位な)からの不正な大量投稿があれば、 そのクライアント(開発者)を丸ごとBANしてしまえばいい。他のクライアント(開発者)には影響しない。それを防ぐ責任はあくまでクライアントの開発者にある。 ユーザー単位で
185 名前:払い出すにしろ開発者単位て払い出すにしろ、個別に払い出すことで責任をAPIキーを払い出された側に転嫁できるんだよ。 [] [ここ壊れてます]
186 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 13:14:28.64 ID:fHWcXfSA.net] >>178 なるほど
187 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 13:22:20.16 ID:KYhaaDP0.net] ソースコード丸見えだから、APIキーがどこにあるかわかるよね そうやって海賊版作れてしまうわけだ
188 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 14:46:35.94 ID:VBsyc88B.net] 流石にAPIキーを普通に文字列で書くアホはnativeでも居ないだろ。 難読化する。 ソースコードが丸見えだとしても問題無い気はする。どーせnativeでも逆アセンブルするんだし。 カジュアルな対策なら、c#には逆コンパイルされないILコード使って復号ロジック書くべきかと思うな。 ちゃんとやるならドングルかライセンスサーバのどっちかじゃねえかな。
189 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 16:44:19.57 ID:Aux3ZmsD.net] nativeと同程度の隠匿で良いならそこだけnativeにすれば良いだけやん
190 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 16:46:40.21 ID:UH8BRHfz.net] oauthのキーなら速攻でばれるし文字列でそのまま書くな。難読かしても意味ねぇし。やるだけ無駄。
191 名前:デフォルトの名無しさん [2018/08/26(日) 16:48:17.70 ID:7VY92v0a.net] DBのパスワードとかソースに直書きしてるわ ハッシュにしてもどこで復号すればいいのか
192 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:33:04.42 ID:Lq+jppE1.net] 自前でやるだけのセキュリティのスキルがあるとこは珍しい 素直にASP.NET Identity + IdentityServerでOIDC使っとくのが懸命な判断
193 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:45:57.13 ID:6lhNHki6.net] こういう大事な部分を手軽で強固なセキュリティとしてなんでMSは用意しておかないんだ?
194 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:47:36.13 ID:vKa62JvF.net] はい意味不明 OIDCってアプリ側がユーザーの認証認可をする仕組みだぞ? それをどうクライアントアプリのAPIキーの隠蔽に使うのか教えてくれ
195 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:47:37.20 ID:86UvKUWS.net] >>186 もうすでにC#関係なくなっているが手軽で強固なやり方ってどんなことよ?
196 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:49:20.77 ID:vKa62JvF.net] >>186 本質的に不可能だからだよ 見られたくないならクライアントに埋め込まずにサーバーに持ってプロキシせよってこと
197 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:49:59.20 ID:6lhNHki6.net] まあそれよりもソースを復元できるのが問題だわな
198 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:50:52.91 ID:O9adGcKd.net] >>172 マシンに固定したいならMACアドレスとかHDDのシリアル番号とかで特定 ユーザーに固定するなら登録されたパスワードを定期的に入力とか
199 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:51:50.11 ID:86UvKUWS.net] >>190 中間言語形式だけでなくスクリプト言語も否定する気かw
200 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:54:18.49 ID:Lq+jppE1.net] >>187 チュートリアルもやったことないのかよ…
201 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:56:14.36 ID:vKa62JvF.net] >>193 だから何のことを言ってるんだ アプリ本体がユーザーの手元にあるのに認証認可もクソもないわ
202 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:57:02.40 ID:6lhNHki6.net] >>192 サーバー型はビジネスロジックがサーバー内にあるからそこで防げるけど、c#アプリは無理じゃん
203 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:00:17.07 ID:O9adGcKd.net] >>186 それなりには用意してる お前らが使わねーだけ https://docs.microsoft.com/ja-jp/windows/uwp/security/intro-to-secure-windows-app-development
204 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:02:46.79 ID:6lhNHki6.net] >>196 UWPじゃなくFormアプリでおねがい
205 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:04:53.73 ID:vKa62JvF.net] >>196 これユーザーが入力した認証情報を安全に保持するのと、サーバー側のリソースに関するユーザーの認証認可をする話だよね 開発者の機密情報を安全にクライアントに持たせるのとは全く別の問題だよ(そしてそれは原理的に不可能)
206 名前:198 mailto:sage [2018/08/26(日) 18:15:55.92 ID:vKa62JvF.net] もちろんクライアント側で復号する必要がなくて、単にデータストアをクライアント側に置きたいだけなら、サーバー側で暗号化すればいいだけだよ 原理的に不可能なのはクライアント側でも機密情報を復号して使う必要がある場合の話ね
207 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:22:46.80 ID:wR7TFJf0.net] こんな解説しないと分からないってのが信じられん
208 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:40:28.29 ID:O9adGcKd.net] >>198 だから「それなり」って書いてあるだろ
209 名前:デフォルトの名無しさん [2018/08/26(日) 23:06:54.05 ID:BDbiNYg/.net] Dapperを使用するにあたり、下記の「DAO」クラスの「SelectDAO」メソッドの 戻り値を抽象的に表現できれば、SQL与えるだけで共通に使えるのになと思っているのですが 戻り値を下記のList<IAB>のように書く方法はあるでしょうか? interface IAB{ } public class A : IAB { public string nen{ get; set; } } public class B : IAB { public string nen{ get; set; } } public class DAO { public List<IAB> SelectDAO(string sql) { System.Data.IDbConnection _con = new SqlConnection("接続文字列"); return (List<IAB>)_con.Query<IAB>(sql);//DynamicMethodに対する型オーナーが無効です。 と怒られます。 } }
210 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 23:10:18.71 ID:iDr2keD8.net] >>202 いやSQLを隠蔽するのがDAOなのにSQL渡したらダメだろ…
211 名前:デフォルトの名無しさん [2018/08/26(日) 23:12:59.95 ID:hANAm2gW.net] ようするにdaoなんか使わずに odbc使いなさいということ
212 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 23:15:38.55 ID:qu/vhMXg.net] >>204 ODBCだなんて何十年前の話だよ…
213 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 23:26:06.62 ID:HvpvLn4I.net] >>202 戻す値をList<dynamics>にすることで解決します。 マジオススメ
214 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 23:30:34.69 ID:BDbiNYg/.net] >>203 Dapperは緩いORMでクエリは書く必要あるんです EntityFrameworkなら確かに悩む必要無い問題な気がします
215 名前:デフォルトの名無しさん [2018/08/26(日) 23:32:55.01 ID:acagJbyI.net] API抜かれるってどのシーンで警戒してるの?サーバー上でアプリ起動してるとき?
216 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 23:33:30.52 ID:8W/FdQms.net] 5chせんぶら
217 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 10:42:42.81 ID:YXkmN521.net] >>202 最終的にDapperも何らかのインスタンスをnewしないといけないのに IABだけ渡されても何作ればいいのか分からないだろ 素直に public List<T> SelectDAO<T>(string sql) where T : IAB とかに というかSelectDAOを呼び出した側はメンバの存在しないIABを使って何をすればいいのか
218 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 13:05:39.06 ID:97nSTlug.net] >>207 いやそういう問題じゃなくて、SQLを書くんだったらDAOの中で書くんだよ 外からSelectクエリを文字列で受け取るってそれ使う側がDBのテーブル構造を知ってないとできないだろ データストアの詳細を全く隠蔽できてない
219 名前:デフォルトの名無しさん [2018/08/27(月) 13:51:51.69 ID:eRxM3k20.net] Dapperの実装ってこんな大変だったのか
220 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 17:39:21.68 ID:dQ3pJlXI.net] >>211 1知識1DAOクラスが本来の姿という事でしょうか? 実装レベルでもうちょっと抽象化できるかと思ったのですが設計レベルでは好ましく無いとなれば深追いは不要ですね
221 名前:デフォルトの名無しさん [2018/08/27(月) 20:08:24.29 ID:LmPAdMN0.net] VS2017WindowsFormsAppの実行ファイルを作成したのですが、 実行ファイルをzip圧縮するとサイズが10分の1以下になります 小さくなりすぎな気がするのですが正常の範囲で問題ありませんでしょうか? または、実行ファイルが肥大?(余分な情報が含まれている等)していたりするのでしょうか? なにかVS上で出来ることはありますか?
222 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 20:15:33.37 ID:RlI7Tzg3.net] >>21
223 名前:4 使用しないのならデバッグ情報とか埋め込まれるマニフェストとか外せるけどそれは肥大するほどでもない どんな実行ファイルか見てみないと分からないし解凍しても動くのなら気にしなくてもいいのでは [] [ここ壊れてます]
224 名前:デフォルトの名無しさん [2018/08/27(月) 20:39:37.08 ID:liNpwcvg.net] プログラミング初心者です visual studio for mac2017をインストールしてC#を覚えたいんだけど、どうやって学習したらいいのか教えてください! 探してもなかなかいい日本語の学習動画やサイトがなくて、、、
225 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 20:46:49.73 ID:lvpUeXXJ.net] 未確認飛行が定番じゃないかね
226 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 21:10:56.77 ID:LmPAdMN0.net] >>215 ありがとうございます 1MBほどのファイルが80KBほどになるので、小さくなりすぎではないかと思いまして… 生成される実行ファイルが、プロジェクトのある時点から1MBほどに大きくなったような記憶もあります 読み込み差し替えした画像リソースが上手く外れていないのかなと想像したりしますが… もうちょっと色々自分で調査してみます
227 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 21:15:57.46 ID:RlI7Tzg3.net] >>216 念のため書いておくけどMac版はWinフォームやWPF作れないからな >>218 コード中心で1MBくらいになるのは数万行のものだから、そんな縮むのは間違いなく画像リソースだろうな BMP形式で入っているとかアイコンが多いとかならZIPでもかなり縮む
228 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 22:15:24.67 ID:SLuEHwvX.net] >>219 コードは5000行ほどですね。試しにプロジェクトを新規で作り直して中身を移し替えてみます エクスポートインポート的なのがあれば良いのですがVS標準ではないみたいなので 大変ですが手動でやるしかないですが
229 名前:デフォルトの名無しさん [2018/08/27(月) 22:26:04.85 ID:liNpwcvg.net] >>217 ありがとうございます!!!
230 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 22:36:37.03 ID:HUaFIhtM.net] >>217 あそこほんと神
231 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 23:34:18.00 ID:nPk8x20U.net] OSデフォルト環境だとsn.exeがインストールされてないのか 隔離環境で作ったアセンブリにストロングネームつけたい時ってみんなどうしてんだ?
232 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 23:53:32.54 ID:E9g9LiKW.net] >>217 >>222 未確認ってどちらかというと入門じゃなくて確認用途だと思うよ あれを見て判る人はすでにjavaなどの他の言語を習得してる
233 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 23:57:11.03 ID:rJOuuZ33.net] まあそうだね C#でプログラミング入門って正直キツいと思うし、そういうコンセプトのところは たぶんないんじゃないか
234 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 23:58:55.68 ID:m5aHtIH2.net] >>225 俺は「C#の絵本」でプログラミング入門した。 つまり、C#でプログラミング入門した
235 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 00:04:55.80 ID:5gce9PvO.net] プログラミングはDelphi6からだったなー \5,000でパッケージを買ったすぐ後に、無料版のDL提供が始まった思い出 高校生にとって\5,000は地味に痛かった……
236 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 00:10:26.77 ID:ym/+5T0Q.net] >>225 何がそんなにキツい? Windows Formsのぽとペタ以上に初心者に優しいのってなんだろ
237 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 00:11:23.06 ID:9uK3R3xF.net] Androidもjavaのコンパイル通すだけなら
238 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 00:36:01.05 ID:a3yKcaCh.net] 英語得意ではなくてプログラミング言語の経験が全くないのなら 本を買う方がいいような気もする・・
239 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 03:46:31.78 ID:CqD+kceR.net] 猫でも判るで十分じゃね
240 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 07:03:31.88 ID:CaCX57FK.net] 神サイトはどぼんでしょ あのサイトのコピペがC#する日本ITドカタを支えてる
241 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 07:14:31.08 ID:TOj+sTb1.net] そこもう情報が古くね
242 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 12:15:17.24 ID:psOOFlwe.net] >>228 細かいことよくわかんないけどなんとなくコピペで動くからいいやとVB的に使うならそれでいいけど、 言語を一から体系的に習得しようとするとC#はかなり大変だよ 継続的に進化してるから実感がないかもしれないが、今のC#はもはやメジャーな言語の中ではC++に次いでトップクラスに複雑な部類
243 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 12:27:46.49 ID:Xl5gotOf.net] 仕事でも趣味でも体系的に一から学ぶとかやっていたら何もできなくなる 自分の必要な部分以外勉強するのはもはや研究者
244 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 12:31:32.32 ID:fGWTaV2a.net] C#って、言語仕様で難し目なのはyield, dynamic, awaitくらいな気がする 複数ある実行環境や巨大なフレームワーク、コンパイル後のILの話まで含めたら複雑だと思う
245 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 12:39:40.35 ID:wSuYfii2.net] >>234 具体的に
246 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 13:10:00.14 ID:psOOFlwe.net] >>237 たとえば簡単なところでいうと、読み取り専用プロパティの定義には今何種類のバリエーションがあるか知ってる? int Hoge { get { return 5; } } int Hoge { get => 5; } int Hoge => 5; int Hoge { get; private set; } = 5; int Hoge { get; } = 5; これらにどういう違いがあってどういうときにどれを使うべきか初学者向けに説明できる?
247 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 13:12:12.91 ID:H5BH2HV+.net] >>238 どれでもいいじゃん まずは動けばいいんだよ バグる?そんなのバグったときに対応すればいい どうせ世の中のほとんどのアプリがバグだらけなんだし そしてそのバグ取り経験が学習にもなる
248 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 13:14:07.70 ID:5WHkkAct.net] C++やったことないから知らないどC++は基本的なことも複雑なイメージ C#は極めるほど複雑なイメージ
249 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 13:14:21.36 ID:5WHkkAct.net] 基本はかんたん
250 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 13:15:27.95 ID:5WHkkAct.net] >>238 の例なら初心者は一番上だけ知っとけばいい
251 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 13:20:49.83 ID:onl38Ff8.net] 複雑なことができると学習が困難 すべてを学習すること前提ならそうかもしれん
252 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 13:55:05.69 ID:8egnCxzp.net] >>236 >>125 でも質問させていただいたのですが、 yield, dynamic, await あたりは理解できているつもりであるものの volatile の役割がどうしても理解できません。 慣れている方にとっては当たり前のことなのかもしれませんが、 volatile がある場合とない場合で動作が変わるコードの例だけでも お教えいただけないでしょうか。 どうぞよろしくお願いいたします。
253 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 14:22:59.40 ID:MmXTTGRL.net] >>244 >volatile がある場合とない場合で動作が変わるコード 難しいんじゃないかなあ (1) 実行儒所を入れ替える (2) 変数(メモリ)に直接アクセスしない みたいな最適化がどういうケースでコンパイラによって行われるか、たぶん誰もよく知らないw だけでなく、古い記事だけど www.itmedia.co.jp/enterprise/articles/0503/23/news086_4.html ↑にあるように、CPUレベルの最適化はCPUに依存する
254 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 14:32:18.53 ID:sGx9mZW+.net] 使ったことなくてググったけどそもそものvolatileに対する理解がなんか違う気がする d.hatena.ne.jp/dotnetmemo/touch/20111023/1319380181
255 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 14:33:27.71 ID:d5vKjLdu.net] >>125 volitateは「この変数はマルチスレッドで使うよ」と明示することによってシングルスレッドの場合
256 名前:ノしか効果的ではないような実行速度の最適化技術を使わせないようにするだけであって、排他制御を自動で行うものではないのでは? [] [ここ壊れてます]
257 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 14:53:49.79 ID:8egnCxzp.net] >>245-247 皆さんレスどうもありがとうございます! >>245 > >volatile がある場合とない場合で動作が変わるコード > 難しいんじゃないかなあ ありがとうございます。 ということは逆に言えば、volatile が無いことによって想定外の最適化が行われて 不具合につながること自体が起こりにくいものだと考えてもいいのでしょうか。 ただ仮にそうだとしても、お作法的には複数のスレッドからアクセスされる可能性のある フィールドはすべてに volatile を付けるべきなのかなとも思うのですが、 CS0420 : volatile フィールドへの参照は、volatile として扱われません。 のような警告がうるさくてあまり volatile をつけたくないときもあるので悩んでしまいます。
258 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 14:54:59.71 ID:8egnCxzp.net] >>246 参考ページのご紹介どうもありがとうございます。 実はそのページも読んでみたのですが > ちなみに後者の記事では実際にvolatileをつけないと問題のあるコードが記載されている。 > 以下のコードをReleaseモードでビルドして、デバッグなしで実行すると終了しない。 > volatile をつける(static volatile bool complete = false;)と正しく終了する。 という記述に反して、私の環境(Win10, .NET Framework 4.7.1)では volatile がなくても終了してしまうようです。 そもそも私にはそのページのコードと >>125 のコードが本質的に同じものに見えてしまい、 > volatileに対する理解がなんか違う気がする とおっしゃることの真意が理解できていないのですが、 何かお気づきのことがあれば教えていただけないでしょうか。 >>247 レスありがとうございます。 つまり、volatite の有無で実行速度に差が出ることはあっても 計算結果が変わることはない、ということでしょうか。 そうであるなら気が楽なのですが、いくつかのページやここでの他の方のレスを読むと どうしても確信が持てずにいます。
259 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 15:45:02.14 ID:MmXTTGRL.net] >>248 確実である保証がないものに確実性の保証を与えるvolatileを「お作法」 と思う発想は100%間違っています
260 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 16:26:12.47 ID:8egnCxzp.net] >>250 レスどうもありがとうございます。やはり、>>249 に書いたような > volatite の有無で実行速度に差が出ることはあっても > 計算結果が変わることはない などということを期待してはいけないということでしょうか。 ただ、volatite が無いとどのような問題が起こるのかを理解していないと、 どのような場面で volatite を使えば確実性の保証が得られるのかも分からず、 結局は、なんとなく気分が悪いから volatite をつけておこう、 というレベルにとどまってしまうように思うのです。 確実である保証がないことを証明するというのは 一種の悪魔の証明なのかもしれませんが、 例えばオーバーフローの危険性を説明するなら int x = int.MaxValue; int y = 1; int z = x + y; のようなコードを見せればいいですし、 volatite についてもこのようなコードがないものかと期待して 質問させていただいた次第です。
261 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 16:40:01.44 ID:d5vKjLdu.net] volatie付けないとマルチスレッドだと遅くなるとかじゃないのか? 実行結果が変わるとか困るしそんなことになるならもっと知られてるはずなんだが
262 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 16:45:40.99 ID:3YXzfPPp.net] >>251 最適化のオプション外してビルドしたら? 保険であるvolatiteが「どのようなときに必要か」はMSも公表していないんだからどうしようもない volatiteを含んだ上で機能するコードをどうしても書きたいとかなら知らないけど
263 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 17:49:00.74 ID:YFDGQHp2.net] 保障のようなものでしょ 今はどうか知らないけど 例えば a=1; a=1; a=1; a=1; a=1; みたいなコードがあっても
264 名前:最適化でa=1が一回しか実行されないようにならないで ちゃんと回数分実行されることの保証 [] [ここ壊れてます]
265 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 18:10:01.12 ID:YFDGQHp2.net] 憶測で申し訳ないけど a=calc0(a); b=calc1(a); が最終的にアセンブラレベルで フィールドa = レジスタA レジスタA =フィールドa みたいなのが出てきた場合に シングルスレッドであればあとのレジスタA=aの実行が無駄じゃないかと思って 実行しないとかありうるかもしれない マルチスレッドならフィールドaが書き変わってる可能性あり
266 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 18:24:08.22 ID:MzYJYWNz.net] >>255 コンパイラの最適化で削られるんじゃなく実行されないのか どっちにしてもきりがない
267 名前:デフォルトの名無しさん [2018/08/28(火) 19:01:48.59 ID:5NsMegki.net] >>233 新しいとこ教えてクレメンス
268 名前:デフォルトの名無しさん [2018/08/28(火) 19:52:33.60 ID:QdKJddNI.net] コンパイラの最適化の問題でしょ? 非同期処理で使うフィールドはいれときゃいいんじゃね
269 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 20:25:43.56 ID:M3D05fOs.net] ちなみに「お作法」という言葉を使う人間が書くコードは間違ってます マメな
270 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 20:43:21.83 ID:sKgj8tWl.net] >>251 もう作成されたILのコード全部確認・検証しとけよ 問題が起こらない方がいいのに何か起こらないと困るように見える
271 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 01:22:33.42 ID:4YeISD0k.net] >>251 C#ひいては.NET CILではJITないしAOTのコンパイルにかかる時間など故か ネイティブC/C++程の最適化は行われないので具体例は難しいかもしれません ということでネイティブC++(プログラム全体の最適化は無効)を例にしてみると int n; int main() { n = 1; n = 2; return NO_ERROR; } 上記コードは関数内でn = 1時点を参照してないし、最終的にn = 2じゃんという事で 「n = 1;」が削られマシンコードは「mov dword ptr [n], 2」とリターンコードのみに成ったりします 参照の場合においても変数の値を逐一読み込まずレジスタに保持して使い回すかもしれません これを「volatile int n;」と修飾すれば、そのような最適化は抑制されます C#コンパイラ(C#→CIL)レベルでは読み書きにvolatile.接頭辞などが付く事になる筈 https://msdn.microsoft.com/ja-jp/library/system.reflection.emit.opcodes.volatile ECMA-335やJIS X 3016といった言語仕様にも記載されていますが、排他制御云々ではありません
272 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 02:03:21.40 ID:Hgs5A/6b.net] つまり、実行結果が変わる場合があるということ?
273 名前:デフォルトの名無しさん [2018/08/29(水) 03:59:58.56 ID:B+rDuEfA.net] C#のデストラクタってどういう場面で必要なんでしょうか? ネットの記事で見かけたところ C++ではコンストラクタとセットでプログラマがマネージする必要があるが C#ではシステムが自動でやるのであまり重要じゃないとありましたが イマイチよく分かりませんでした Win32API関数をマーシャリングして使用したりするとデストラクタは必要でしょうか? 実はそういうプログラムを自作してずっと使用してるのですが デストラクタを書いてなくても特に問題が発生したことがありません 問題が出ないのはたまたま自分の使用環境が合ってるだけでしょうか? デストラクタを書かないと具体的にどういう不具合が起こるんでしょうか?
274 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 05:59:16.57 ID:saiWj2Qp.net] ファイル・データベース・プロセスなどのリソースが解放されないから、 使用メモリサイズが
275 名前:ドンドン大きくなっていく つまり、メモリリーク [] [ここ壊れてます]
276 名前:デフォルトの名無しさん [2018/08/29(水) 09:22:23.43 ID:o37zBcM2.net] >>264 ありがとうございます その「使用メモリサイズ」というのは タスクマネージャーの「メモリ」という所を見ればいいのですか?
277 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 09:30:37.55 ID:SgdWV5FD.net] vmmapを使った方が良いかも HeapWalkerを使えるようになればなおよし
278 名前:デフォルトの名無しさん [2018/08/29(水) 09:55:10.31 ID:o37zBcM2.net] >>266 windowsデフォの管理ツールに「リソースモニタ」ていうのもありますね これでもいいのかな? 初耳な分野なので全く分かりませんが調べてみます ありがとうございました
279 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 21:29:00.98 ID:xKUAwzTF.net] C♯にて数あるエクセルファイルの中身を読み取りあれこれしたい時、早く開いて読み取って閉じる方法ってありますか?
280 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 21:43:41.82 ID:bGCoQXPI.net] >>268 何と比較して?
281 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 22:02:30.99 ID:XA15QLm3.net] >>268 「あれこれ」じゃなく具体的に何がしたいか書かないと やりたいことが多くなるほど「じゃあエクセルで直接開いた方が早いね」になるだろうけど
282 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 22:14:58.95 ID:dev0xKTh.net] 前提条件やマシン構成で大きく変わるので思いつく手段を全部書いて実測
283 名前:デフォルトの名無しさん [2018/08/30(木) 03:48:10.84 ID:Aa4o8Duk.net] >>268 バイナリーで読み込むのが最速
284 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 07:21:13.96 ID:oIUtx1rS.net] >>270 @シート名の読み込み。 A指定シートの指定列の読み込み。 B指定シートの指定行の読み込み。 こんな感じのを各エクセルに@〜Bを繰り返し行う。 ネットを参考に見て普通に開いて閉じるだと遅くて...
285 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 09:55:38.76 ID:l8OdYu1h.net] >>273 ExcelDataReaderでも満足できないレベルに遅いの? だとしたらほぼ無理かと Excel側で予め必要になる情報をVBAとかでtxtファイルに出力しとくとかで対処するしかなさそう
286 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 12:24:59.82 ID:8MIxRZMr.net] >>273 ネットで参考にした情報はOLEでExcelを起動して読み込む方法かね? それは遅いからOpen XML SDKでも使って直接ファイルを読んだ方がいいね
287 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 17:27:14.97 ID:Cn/2yBNm.net] 質問させてください! VisualStudio2017のC#Formアプリで自分用のテキストエディタを作ろうとしていて、 「改行した時、一行前の行頭に全角スペースがあった場合次の行頭にも全角スペースを挿入する」 というちょっとした自動インデントのような動作をさせたいのが目的です。 探り探りで一応目的の動作をするコードは書けたのですが、 「KeyUpからエンターキーの場合のみ分岐して座標をひとつ戻してから改行かどうかを確かめて、 行数を調べて一文字切り出してからカーソル位置を戻して比較して……」 をはじめとする行程で相当に回りくどいことをやっているような感覚があるので もっとスマートな方法はないものかと思い質問に来ました。 どうぞよろしくお願いします。 https://ideone.com/8J7uBK
288 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 18:25:03.14 ID:iISOYGhU.net] エディタはそんなもん 作るの超めんどい
289 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 18:56:29.70 ID:2QdSuJnz.net] task難しすぎない…? 非同期が難しいのは当然だけどこんな躓いたのc#が初めて
290 名前:デフォルトの名無しさん [2018/08/30(木) 19:01:33.74 ID:16om6f/5.net] スレッドのシーケンシャル図みたいなのに書き出すといいよ まあスレッドセーフな構造を理解してるのが大前提だけど
291 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:0
] [ここ壊れてます]
292 名前:5:11.47 ID:syYDPcaO.net mailto: >>278 Taskを使わないと更に難しくなる [] [ここ壊れてます]
293 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:16:12.27 ID:r/TRQYs/.net] task自体は簡単だと思うけど async/awaitは誤解したまま使うとハマる
294 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:19:23.09 ID:JgfkbZf2.net] >>275 いや普通にOSSのライブラリ使えよ
295 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:25:02.55 ID:2+/sJ3kY.net] >>276 読み辛すぎるw っていうか、これ本当にちゃんと動く? KeyUp発生した時点で入力したキーがTextに反映されてる前提になってると思うけどそうだっけ?
296 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:34:27.48 ID:r/TRQYs/.net] windowsの仕組み上不定な気がする
297 名前:デフォルトの名無しさん [2018/08/30(木) 20:37:16.45 ID:4drhoSMA.net] >>276 行頭に全角スペースが入力されたときにフラグ立てる というのはどうかな 文字列型フラグ変数に行頭に入力された全角スペースを突っ込んでおいて 改行でフラグ変数の値を行頭に挿入とか 行頭全角スペースが削除されたらフラグも空文字列にしないといけないけど
298 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 20:42:40.52 ID:2QdSuJnz.net] https://ideone.com/0aD1lJ >>278 で質問したものだけどコードで書いたので下の疑問が正しいのか教えてください A:ここで並列にダウンロードできているのか? B:Resultを使うとデッドロックすると聞いたけどawaitしていれば大丈夫?
299 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:00:14.61 ID:Assw0OKp.net] >>285 行全部のフラグ作るのとテキスト読み込むときにフラグ作る必要があるが 何万行とかで構成されるテキストでもそれやるの? 動くのなら>>276 の方がまだ楽だと思う
300 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:07:07.68 ID:cD6Bz7+B.net] >>282 ん? Open XML SDKってOSSなんだが w https://blogs.technet.microsoft.com/microsoft_office_/2014/06/25/open-xml-sdk-goes-open-source/
301 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:24:36.54 ID:VlraDHRu.net] >>288 え、生でそれ使えってか?
302 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:26:02.80 ID:Yh+aUVCO.net] >>286 A: DownloadAsyncが真っ当に実装されていれば並列ダウンロードになる (真っ当ではない例: 同期的にダウンロードしてTask.FromResult) B: Task<TResult>.Resultはタスクが終了済みなら即座に値を返すので、デッドロックしない ちなみにTask<TResult>.WhenAllはTask<TResult[]>を返すから return (await Task.WhenAll(tasks)).ToList(); でも行けるはず
303 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:26:33.91 ID:qGVo2Ysa.net] Open XML SDK生で使ったことあるけど、もうちょっと頑張れなかったのかと言いたい 中のファイルメモリに乗っけてシートごとの並列処理出来るかと思ってたのに全然だし、セルの位置はR1C1限定とかマジで死ねよ
304 名前:デフォルトの名無しさん [2018/08/30(木) 21:27:27.97 ID:jRU2Egdi.net] >>288 Open XML SDKはWordなんかも含むOffice製品全部のSDKちょっと直感的じゃないから ラッパーで多少はExcel VBAライクなClosedXMLとかNPOIとかの話と思われ
305 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:27:50.35 ID:2+/sJ3kY.net] >>276 まあケチ付けるだけなのもあれなんで 俺ならこうかなあ 無駄なフィールドを作らないために無理矢理ラムダ式使ってるけど本当はこういうのよくないかも class TextBoxEx:TextBox { protected string GetIndent(int line) { var s = Lines[line]; var m = Regex.Match(s, @"^[ \t]*"); return m.Value; } protected string GetIndent() { return GetIndent(CaretLine); } public int CaretLine { get { return GetLineFromCharIndex(SelectionStart
306 名前:); } } [] [ここ壊れてます]
307 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:28:10.88 ID:2+/sJ3kY.net] protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); if(e.KeyCode == Keys.Enter) { var indent = GetIndent(); EventHandler eh = null; eh = (sender, ea) => { TextChanged -= eh; SelectedText = indent; }; TextChanged += eh; } } }
308 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:41:05.42 ID:cD6Bz7+B.net] >>289 , >>292 だからそういう話ならもっと便利なOSS書けよって話 >>282 だと単なるバカか文句しか言えないクズにしかならん
309 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:46:27.28 ID:2QdSuJnz.net] >>290 勉強になりました c#は書き方いろいろあってむつかしいです
310 名前:デフォルトの名無しさん [2018/08/30(木) 22:15:02.92 ID:jRU2Egdi.net] >>295 >>282 はSDKという単語に対してライブラリという単語を使ったんだだと思うぞ (それにOpen XML SDKはソース公開されてるものの MSしかコミットしてない実質プロプラなのでOSSと呼ぶの違和感あるのもあると思う) >>275 の質問レベルに対してSDKを出すのは それこそもっと便利なOSS書けよって話 ここ初心者スレだぞ
311 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 22:26:00.43 ID:R+j2ccwX.net] >>282 が的外れで意味不明なのが悪いということ
312 名前:デフォルトの名無しさん [2018/08/30(木) 23:39:14.89 ID:4drhoSMA.net] >>287 そう言われるとそうだな もっとよく考えないとダメだったな テキストエディタ舐めてたわ
313 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 00:01:56.93 ID:4iUWs/UZ.net] var config = new ConfigurationBuilder() .AddEnvironmentVariables(prefix: @"XXX_") .Build(); services.Configure<MyOptions>(config.GetSection("MyOptions")); class MyOptions { public int Foo { get; set; } public int Bar { get; set; } } ---env--- export XXX_MYOPTIONS_FOO=1 export XXX_MYOPTIONS_BAR=2 ヒエラルキーを持った設定を環境変数に入れたいのだけどコロンを環境変数の識別子に使うとOSに怒られる アンダーバーにすれば環境変数をセットできるけど今度はIOptionsパターンがヒエラルキーを認識してくれない なんかイケてる対処法ないんか?
314 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 00:12:53.87 ID:0MAifXJX.net] >>299 ギガ単位のテキストファイルを編集できるエディタって意外とないのよね ログファイルとかで需要はありそうなのに 昔、探したけど無かったからけっこう苦労して自作したわ
315 名前:デフォルトの名無しさん [2018/08/31(金) 00:14:40.87 ID:4ZfpOo1s.net] そんなもんをエディタで編集しようというのが そもそもの間違い sedで十分
316 名前:デフォルトの名無しさん [2018/08/31(金) 00:18:44.01 ID:4ZfpOo1s.net] ギガ単位のファイルなんか 結局検索しないと編集箇所を特定することなんかできない もしかしてギガ単位のファイルを目視で編集箇所特定してんの どんだけ頭悪いねんと。。。
317 名前:276 mailto:sage [2018/08/31(金) 03:32:18.34 ID:ogs0aMAV.net] >>277 こんなもんなんですね!? テキスト入力を広げていくだけだから初心者向きだと思って始めたのですが びっくりです……でも組み上げていくのは楽しい…… >>283 >>293 当方プログラミング3日目ゆえ……読み辛くてすまぬ……すまぬ…… コードありがとうございます! すでに用意されているものを組み合わせることしか考えてなかったので Textboxのクラスごと作ってしまう方法は目から鱗でした! GetLineFromCharIndexメソッドの存在すら知らなかったので これだけで無限に簡略化できそうな気がします…… 本当にありがとうございます、色々弄ってみます! >>285 既存のファイルを読み込んだ時に改行しやすくするのが目的なので >>287 さんの言うとおり一行一行フラグ立てていく方式は厳しいかなと思いました……! リアルタイムで少ない文章を入力していくならそのぐらい簡素でも いいと思うのですけれどね! むずかしい! おかげで先に進めそうです、ありがとうございましたー!
318 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 03:47:24.61 ID:ogs0aMAV.net] れんとうしつれいします いざググって調べてclass TextBoxEXの意味を勘違いしていた事に気付いたため レス内容は笑い流してあげてください 正しい意味を知って本当に目からウロコでした ありがとうございました!!
319 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 06:16:33.32 ID:WaaqYsvL.net] >>298 たぶん>>297 と同類でOpen XML SDKがOSSなのを知らなかったんだろうな 実質プロプラとかわけわからんこと口走って恥の上塗りしてるし w
320 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 06:36:54.02 ID:7Lf8QxyM.net] 実質プロプラw
321 名前:デフォルトの名無しさん [2018/08/31(金) 07:41:37.25 ID:Sw5Wccxa.net] >>304 3日目なら他にやることあるだろ
322 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 08:23:57.84 ID:ogs0aMAV.net] >>308 どんな技術も取り敢えず自分がやりたい事から始めて 壁にぶつかったら都度必要な事を調べていけば上手くなると思っているのですが違うのでしょうか……? どうにか自力で一応の形にして目的を実現するところまではやって、 本当にそれが正しいのか調べて見つけることができなかったから質問させて頂いた状態なので 他にやる事と言われても何をすればいいのかわからないです、すみません……
323 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 08:44:51.07 ID:6aCB/3AZ.net] >>304 普通はこんなもんじゃないよ テキストボックスにデータを持たせるんじゃなくて別にプログラム内部にデータを持たせて それを表示に反映させる感じ
324 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 12:29:19.65 ID:iUPXUGud.net] >>309 それでいいんだよ、そうやって覚えていくのが一番いいと思う とにかく作ってみないとわからないからね 作る喜びを感じられれば伸びていく リファクタリングもバージョンアップもどんどん やってみるのがいいと思う
325 名前:デフォルトの名無しさん [2018/08/31(金) 13:51:05.81 ID:Sw5Wccxa.net] >>309 取説読まずにサポセン電話する迷惑なタイプ
326 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 15:13:11.36 ID:ogs0aMAV.net] >>310 な、なるほど! そうすれば一行毎に表示を弄ったりとかの細かい事もできそうですね! でもリアルタイムで打ち込んだデータを内部に移しながら表示領域に戻して……とやるのは結構 大変そうな気がします。世の高機能テキストエディタはそういった苦労の上に作られているのですね……。 >>311 ありがとうございます、頑張ります! 実際スレに貼って頂いたコードの正規表現命令が通らないことで Text.RegularExpressionsの存在を知ったりと無知ゆえの見落としも結構あるのですが、 自分の知識と思いつく検索ワードで詰めれるところまでは自分でやって成長していきたいです! >>312 可能な限り調べきってから問い合わせてはいるのですが なにぶん取説が広辞苑レベルなので……索引力不足、恐縮です どうにもならなくなったらまたご迷惑かけます
327 名前:263 [2018/08/31(金) 16:29:19.58 ID:vo9ITXw3.net] 先日デストラクタについて教えてもらった者ですが やはりメモリリークしてましたwww 起動時は6Mくらいだったのが終了時には10Mになってました 少しだったから大きな問題にならなかったってことですorz でも「実用上は問題無いけどゴミいっぱいまき散らしやがって!」 って怒られますよね・・・ でデストラクタを勉強し始めたのですがさっぱり分からん! マーシャリングして使ってるAPI関数が問題なんだろうとはわかるけど どのタイミグで何処でデストラクトするのかとか IDisposableイベントの発生のさせ方とか C++から勉強しないとダメかな? 先は長いなあ
328 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 16:33:50.31 ID:7EVWbyOU.net] いや6M→10Mはメモリリークしてなくても.NETならそんなもんだぞ 長いことモニタしてればわかるけど、フルGCが走れば減る
329 名前:デフォルトの名無しさん [2018/08/31(金) 16:48:31.15 ID:vo9ITXw3.net] >>315 え?そうなの? その程度じゃメモリリークしてるとは断定できない? もう一度検証してみますだ
330 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 17:39:33.85 ID:cQtmAsyE.net] >>314 つ https://docs.microsoft.com/ja-jp/dotnet/standard/design-guidelines/dispose-pattern ただし和訳は機械翻訳だから読めるなら英語版おすすめ WINAPIで取得したリソースはアンマネージリソースだから、上の記事のComplexResourceHolderのように Dispose(bool disposing)内で、disposingの真偽に関わらずアンマネージリソースを解放するのが正解 あとC++とC#ではどちらもデストラクタという用語はあるが C++のデストラクタはC#ではDisposeが対応する概念 C#のデストラクタはDisposeし忘れた場合の救済措置
331 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 17:43:15.60 ID:dU0KocTd.net] >>314 盛大に勘違いしてそうだけど、C#のデストラクタは そのクラスのインスタンスを利用するプログラマがDisposeを呼ぶコードを 書き忘れた(つまりバグ)場合のフェイルセーフ以上の意味は通常はないっすよ つまりIDisposableを実装しないなら普通はファイナライザも必要ない ファイナライザは何か不思議な力でリークを解決してくれるマジックじゃありませんw 初心者がごちゃごちゃ頭の中でくだらないこと考えても意味ないよ どうせそんなの盛大に間違ってるw そんな暇があったら理解できなくても少しでもドキュメントを読んだ方がいい
332 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 18:08:24.51 ID:eNdvG/21.net] SqlConnectionクラスでDB操作するのですが、ACID特性の担保は設計でやるのでしょうか?SqlConnectionとDBMSが隠蔽してくれるのでしょうか? 複数ユーザー利用時のトランザクションのロックとか自力実装する必要があるのかなと思い
333 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 20:55:02.11 ID:k+Te8Uzr.net] >>310 毎回テキストボックスをクリアして反映するの? それとも差分を抽出してその部文だけ表示を変更するの?
334 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:12:25.67 ID:ZwfzJAPn.net] >>316 CLRProfiler使ってちゃんとリークオブジェクトがないか確認してみるといいよ
335 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:47:14.81 ID:7EVWbyOU.net] >>319 ACIDはあくまで利用者から見たシステムの性質 一般的なRDBにはACIDを実現するために必要な機能が備わっているが、それを使ってACIDなシステムを作るのはお前自身だ アトミックなトランザクションを使ったからってお前のアプリのリクエスト処理が勝手にアトミックになる訳じゃないぞ
336 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 22:28:21.69 ID:Is8FvumJ.net] >>320 テキストボックスはでかい文字列扱うと遅いから 高性能なの作るなら独自コントロール
337 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 22:34:45.87 ID:Is8FvumJ.net] >>314 c#は空きメモリに余裕がある時は積極的にメモリの回収をしないから、一見リークしてるように見える。 IDisposeの使い方は単純で、使い終わったら自分でDispose()メソッドを呼ぶだけ。 Dispose()を呼び出し忘れた時のためにデストラクタからも呼ぶように書くけど。
338 名前:デフォルトの名無しさん [2018/08/31(金) 22:52:13.57 ID:iUPXUGud.net] >>323 本格的なテキストエディタを作るなら どうしても独自コントロールになるよな テキストボックスじゃデカいファイルだと無理がある
339 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 23:52:12.65 ID:ETlCxkfg.net] C#のデストラクタはおまじない程度の効果と聞いた
340 名前:デフォルトの名無しさん [2018/09/01(土) 01:29:15.12 ID:ZVoFY83K.net] デストラーデっていつ発動するんだっけ?
341 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 09:40:22.35 ID:PbkphExB.net] デストラクタはいつ動くかわからないから使い勝手がわるい
342 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 10:07:42.55 ID:aEdJ57k5.net] そもそも処理が重いので可能なら使わない方が良い
343 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:17:11.69 ID:1Fa0uhaD.net] >>323 横から失礼。まったくの素人質問で申し訳ないのですけど 独自コントロールのテキストボックスってKeyDown命令を検知したりして 必要な処理を一つ一つ作っていくんですか? 慣れてきたら挑んでみたいけれど何をどこから調べればいいのかわからないので そのあたりの仕組みやヒントが学べそうなサイトや教本ってあります……?
344 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:21:41.75 ID:+BAvd4bn.net] >>330 初心者の範疇じゃない さらに言えば中級者の範疇でもない c# avalon editorでググればいい 単体でエディタを自作するのは愚かなこと Visual Studio Codeなどの拡張機能を作るのが正しい
345 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:26:00.33 ID:HRxiLrgz.net] オープンソースのコードエディタのソースを見れば参考になるかもね 言語は違うけどVSCodeやEclipseなど
346 名前:デフォルトの名無しさん [2018/09/01(土) 12:28:04.00 ID:RGySrVo/.net] メモリ解放の部分だけC++で作成して呼び出せないの? どう呼び出してメモリのどの部分をどう開放させれるのかとか一切しらんけど
347 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:31:07.58 ID:nKX/MoF5.net] >>333 C++で.Netをオーバーライドとかなかなか無い発想だね
348 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:40:19.46 ID:HRxiLrgz.net] >>333 Roslynをフォークして自作してみてはどうだろう 未だにこうやって.NET(というかGC)のメモリ管理に不満を言う人が居なくならないということは 決定的なメモリ管理にはある程度の需要が確実にあるということ そういう人たちのヒーローになれるかもしれない それでパフォーマンスや生産性が上がると本当に実証されればMicrosoftからもアプローチがあるかも
349 名前:デフォルトの名無しさん [2018/09/01(土) 12:48:05.08 ID:c3Y0wsEI.net] >>330 超簡単に言うとWindowsならAPIのテキスト描画関係の 関数を使ってキーイベントを拾ってとかやっていく Win32APIでググれば参考になるサイトがいくつも出てくる 言うのは簡単だがやるのはもの凄く大変だけどね >>331 勉強にはなるけどね その通り中級者の範疇でもないから、かなり実力を付けとかないといけないな
350 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:06:24.02 ID:1Fa0uhaD.net] >>331 ありがとうございます! 初心者の範疇ではないとは薄々……! テキストエディタ特化のライブラリがあるんですね、先人は偉大だ…… 最終的には自分で使う用に物書き方面に特化した文章エディタを作りたいので先は長いです avalonエディタに触れてみながら参考になる部分はないか色々探ってみます! >>332 確かにC#で作られたものじゃなくても仕組みの理解に繋がりそうではありますね! 基礎の基礎は終えた今なら少しは中身を探れるかもしれないので 探して覗いてみます、ありがとう! >>336 なるほど、ググりながらよく分からないままに使っていた User32.Dllまわりの正
351 名前:フがそれなんですね……!? ありがとうございます、勉強になります! 探ってみます! 色々できるようになりたい! [] [ここ壊れてます]
352 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:14:14.49 ID:+st2vgph.net] gcがある言語ならgcにお任せするもんでは?
353 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:53:17.71 ID:c3Y0wsEI.net] >>337 Gdi32.dllもな
354 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 14:09:16.29 ID:P+AKCe3z.net] >>338 一応GCも自前管理もできる言語もあるらしいし 主流にはなってないみたいだから大多数は特に望んでないのだろうけど
355 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 14:32:33.00 ID:aEdJ57k5.net] ゲーム用途とかのリアルタイム処理向けGCに入れ替えできたら面白そう
356 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 14:39:09.32 ID:mjuKggTp.net] ゲームはそもそもリソース使用量決まってるんだからプレイ中にGC動いたりはしないよ シーン切り替えと一緒に動かす程度だよ
357 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 17:48:39.66 ID:CnyU+b4T.net] LinuxのMono Developの使い方のついて、ここで聞いてもいいかな?
358 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 17:57:37.75 ID:lAVUzhE8.net] >>343 時代遅れのものは使わずVScode使って該当スレへ行ってください
359 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 13:14:32.35 ID:oOf4f4g2.net] >>343 さすがに今時そんな廃棄物は使うなとしか言えない LinuxならRider買うかVSCodeで我慢しなさい
360 名前:デフォルトの名無しさん [2018/09/03(月) 17:03:56.62 ID:dGDVASpD.net] websoketで大量データ受信しながら他の処理を非同期で遅延なく処理するには、別プロジェクトで共有メモリアクセスがいいか、単純に別スレッドでInvokeするのはどちらがいいでしょうか? というより、王道な設計パティーンを教えて下さい。
361 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 17:27:25.38 ID:vcilZH89.net] >共有メモリアクセス こういう発想がどこから出てくるのか?
362 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 17:29:17.86 ID:QhFCG6IW.net] >>346 王道な形はwebブラウザ
363 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 17:41:54.34 ID:ttVcJTrG.net] VSCode でも使っている、Electron とか
364 名前:デフォルトの名無しさん [2018/09/03(月) 18:08:25.48 ID:dGDVASpD.net] >>347 だめですか?
365 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 18:13:45.54 ID:9RGmKGyN.net] >>350 だめとかの前に具体的な形考えたうえで書いている?
366 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 18:17:15.88 ID:oOf4f4g2.net] 受け取った大量データを他の処理で使いたいってことか? 使うのが受け取りが完了してからでいいんだったら普通にファイルに書けばいい
367 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 18:24:29.32 ID:vcilZH89.net] >>350 共有メモリを使うと言うことは別のプロセスと通信すると言うことだね わざわざリソースを食う共有メモリを使って処理速度を遅くして何がしたいんだ?
368 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 19:07:52.86 ID:EUoYWljm.net] 前スレでシリアルポートの使い方を聞いた質問者か? 相変わらずズレた考え方してんな
369 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 19:29:03.44 ID:vcilZH89.net] 普通はプロセスごとにメモリが分離しててどちらかがおかしくなっても他に影響しないように作られてる それを無理やりOSを使って通信してるのが共有メモリで実際は共有してない
370 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 19:33:07.93 ID:ACnp/Uoo.net] 別プロセスする必要なしと言えばいいのに なんてひねくれた奴らだ
371 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 19:42:32.34 ID:NR0nQ5XR.net] >>356 ファイル連携で済むくらいにすっぱりと綺麗に分けられるなら分けるべき 共有メモリが必要になるような密な連携が必要なら本末転倒
372 名前:デフォルトの名無しさん [2018/09/03(月) 19:49:50.99 ID:lS5Tq6xt.net] 何が本で何が末やら全くわからん件
373 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 19:54:16.82 ID:NR0nQ5XR.net] 本: 目的の達成 末: プロセスの分割 本末転倒: プロセスの分割により目的の達成が逆に遠のいている状況
374 名前:デフォルトの名無しさん [2018/09/03(月) 19:58:46.45 ID:lS5Tq6xt.net] >>359 共有メモリが必要なら必要な事をしとるだけで遠のいとらんやろ 何を言いたいんやおまえは? [] [ここ壊れてます]
376 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 20:06:23.97 ID:BfF9DJB1.net] 答える気がないことだけは分かった。 じゃーなゴミクズども。 家族や先生以外とコミュニケーション取ろうとしてんじゃねえよ池沼クサレガイジが。
377 名前:デフォルトの名無しさん [2018/09/03(月) 20:21:12.20 ID:lS5Tq6xt.net] 答える気がないのではなく答える能力がないのだという事だけは知っておいて欲しい 決して悪気があるのではない、むしろ彼らは答える気に満ち溢れているのだ
378 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 21:06:49.10 ID:ttVcJTrG.net] 普通は、共有メモリなんて考えない。 何が目的なのか、わからない A | B | C パイプなんて、これで処理完了する。 共有メモリもクソもない メモリなんて、OS が勝手に共有しているだろ
379 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 21:13:29.70 ID:vevNEWn4.net] 普通にやるならtaskでcontinuewithするとか?
380 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 21:16:04.89 ID:C1+EoShM.net] >>361 >>362 ファイルにしろとかみんな答えているだろ 処理内容もわからないし処理するもののフォーマットや大きさが決まっているのかもわからない そんな内容で細かく的確に導けって無理だから ここ質問者だけでなく回答者もみんな初心者が来るスレだよ
381 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 21:59:51.88 ID:YJr4EDHr.net] >>346 スレッドセーフなキュー(BlockingCollectionとか)を用意して、 受信してキューにデータを入れるタスクと、タスクからデータを取り出して処理するタスクに分ける。
382 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 22:12:38.21 ID:NrThtKWO.net] MQ使えよ。標準機能にあるぜよ
383 名前:デフォルトの名無しさん [2018/09/04(火) 05:57:09.73 ID:u5J3mHSN.net] 同期・非同期通信のサンプルを探しているのですが、知識がないので、サンプルの善し悪しが分かりません。 実際に動かしてみてこれは良さそうだと思ったんですが、もっといいサンプルはありますか? https://docs.microsoft.com/ja-jp/dotnet/framework/network-programming/socket-code-examples
384 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 13:00:56.54 ID:JkSql3w1.net] JavaScript, jQuery などの非同期処理は、Deferred、ES2015ではPromise 他に、ES2015のGenerator、Async/Await
385 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 17:47:51.73 ID:B4hp9gin.net] >>217 未確認飛行は自分は最初きつかった 本当に最初は1週間で学べるc#が助かった
386 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 18:23:01.71 ID:xdg0c65C.net] >>369 スレタイ読めないのかな
387 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 18:59:47.33 ID:2N5HXzo8.net] Rubyガイジだろ 優しくしなさい
388 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 20:02:49.34 ID:KXm2oNE8.net] >>368 昔ながらの非同期処理としては鉄板だけど、async/await使うならこことかかなあ https://qiita.com/tadokoro/items/76085061c38de3d021c0
389 名前:デフォルトの名無しさん mailto:sage [2018/09/04(火) 23:30:43.13 ID:MLAZDoHF.net] ライブラリ関係って聞いても大丈夫ですか? ウィンドウをタブ化したくてDockPanelSuiteを導入したのですけれど、 DockStyleをFloatとDocumentしか使わないのですが ウィンドウをFloatの状態からDockPanelのどこにドラッグアンドドロップしても DockPanelに収納できるような設定はありませんか? 今の状態だとタブ一覧の上に持って行かないと反応してくれなくて… スレチだったらすみません
390 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 07:03:56.71 ID:VaHR8CA9.net] >>273 ExcelDataReader ででエクセルを読み取るのをググって調べてるんですが、英語で書かれててよく分かりません。 シート1のセルA1の値を読み取るサンプルコードを教えて下さい。
391 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 0
] [ここ壊れてます]
392 名前:8:44:06.60 ID:faIDkIPM.net mailto: 英語で書かれててよくわかりませんって、パワーワードだよな。 よくいるけど。 [] [ここ壊れてます]
393 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 08:52:00.83 ID:Utg8HVgU.net] 今はMSも日本語翻訳に昔ほどのリソースを割かなくなっていて、英語が読めないとMSDNもまともに読めない時代になってる 英語読む気ないならやめた方がいい
394 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 08:54:04.24 ID:t8SDBZY6.net] docsじゃなくて?
395 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 09:04:06.00 ID:jUbmg1Bj.net] ExcelDataReaderで検索したら使ってみたってページすぐ見つかるじゃん
396 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 09:42:29.44 ID:ldiBrb1r.net] ChromeつーかGoogle翻訳が最近賢いから 英語読むこともかなり減ってきたわ
397 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 09:46:07.75 ID:QYx0ZVvn.net] >>380 ところがMSDNになると話は別 まったく逆の意味に翻訳されることもある というか多すぎる 英文見ると一発でおかしいとわかるけど
398 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 09:57:13.79 ID:6xDXCsXb.net] MSDNの機械翻訳ってなんであれほどまでにアレなのか 昔よりひどい気がする(気のせい)
399 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 10:25:50.71 ID:weayVUk8.net] 昨今のAIだかdeel learningだかのブーム。ハードウェアは何倍とか進んでるけど、ソフトウェア的には、全然、世の中便利になったと実感わかない。
400 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 11:29:06.83 ID:oU3nYC4L.net] >>382 機械翻訳の質は確実に向上している 向上した分だけ人力修正の工数を削減しているのだ
401 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 11:45:07.64 ID:ldiBrb1r.net] 逆の翻訳って この前の炎上してたやつとかな MSDNの機械翻訳は昔から酷いな
402 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 11:47:04.41 ID:SyDlVyYO.net] >>384 なわけないでしょw 人力使った修正なんか昔もやってないからww プログラマの端くれならAIブームなんてバズワードだって最初から分かれよ 機械翻訳の質なんか工場する訳がない 機会は文脈を理解できない、というのが問題の根本なんだが、それを解決する理論なんか何も見つかってないんだから
403 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 11:54:12.12 ID:NmNBYqq+.net] >>386 MSDNのドキュメントが機械翻訳ベースで人間が校正してたのは有名な話だぞ 今は「英語で読む」スイッチが付いて、英語に抵抗がない人にとっては使いやすくなったね
404 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 12:33:12.01 ID:8BhrS90z.net] 日本語だと漢字の熟語とかで書いてることが一目でなんとなくわかるけど英語でも慣れればそうなるの?
405 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 12:38:10.26 ID:mBdcezsc.net] まずスレタイ読めるようになろうな
406 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 12:38:46.31 ID:o1PiTYm1.net] google翻訳やMSの翻訳は複数の文がコンマでつながれてる文とか壊滅的に訳がおかしい 係り受けや接続もおかしい
407 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 12:39:54.11 ID:vNhhiwgZ.net] 自治厨クッサ w そういうのいいから
408 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 15:52:59.11 ID:p4jLi+A7.net] >>386 んー?でもよくある文章と似たようなワードが出てくるようなときは かなりの確率で概ね使う構文が一致すんじゃねーの?
409 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 17:37:26.80 ID:/mbhrlqw.net] まだ夏休み中の子供たちが書き込んでいるのか。いつ終わるのかな
410 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 20:45:00.94 ID:6xDXCsXb.net] お前の幸薄い人生の方が先に終わる
411 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 03:47:19.07 ID:zXYr6cPt.net] >>383 ムーアの法則がのびのびになっているのに今更何を言ってるの?
412 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 08:03:45.96 ID:8wNQzUcB.net] >>395 CPUはのびてないけどGPUのテンソルコアは何倍とか急激
413 名前:延びてるのも知らないの? [] [ここ壊れてます]
414 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 08:26:21.75 ID:8wNQzUcB.net] 汎用コアでやってたものを専用コア使い出したり、推論?は単精度じゃなくて半精度で十分だったりでここ数年どんどん最適化進んで急激に延びてんだよ だから余裕でムーアの法則以上に性能上がってるわ (たぶん)
415 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 10:11:31.20 ID:BzRDAIRM.net] 上がってないよ ムーアの法則が成立したのはもう10年以上前のPentiumIIIの頃まで GPUGPUなんてマルチコア化と同じ苦し紛れに過ぎず本質的なものじゃない
416 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 11:21:20.12 ID:hEScr/Qj.net] FPGAとかもあるぞ だがスレ違い
417 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 11:24:39.92 ID:7j2SToAT.net] マイニングだって汎用CPUで演算してたものを専用のFPGAとかASICにすりゃマイニング性能は爆上がりだろ。 ビデオエンコードだって専用HWで爆速(品質は知らね) 上がってない?って何が上がってないの? 単コア辺りに性能で比較してるんじゃねぇわ 文脈をちゃんと捉えたほうがいい。
418 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 11:43:27.49 ID:BzRDAIRM.net] 実にアホな議論だ 計算機は汎用であることに意味がある。 専用ハードなら〜なんて話は、たとえが古いが画像処理専用チップを持ってるファミコンの ゲームだけ見て、ファミコンの方がPCより高性能だというのと同じ倒錯
419 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 11:57:46.78 ID:7j2SToAT.net] もとから汎用演算の性能の話なんてしてねぇのに読解力ないやつが話に混じろうとして荒れるパターンってやつですね たかが数レスのやり取りを勘違いするなんて相当読解力ないんですね。
420 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 12:15:05.22 ID:Yg5/0qIe.net] 今さらwpfで作る理由ない? そもそもwpfで作られたアプリが見当たらないし
421 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 12:18:30.13 ID:81SkF9sN.net] 知らないだけ
422 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 12:18:36.33 ID:Mg/mQaA6.net] >>403 GUIにこだわりがあるとかUWPにいずれ移植したいとかなら 業務で使っているとかはあまり聞かないから趣味の世界っぽい
423 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 12:41:04.75 ID:2OVIK4Yi.net] >>403 知らないだけ
424 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 12:42:53.94 ID:FeLrEgsW.net] >>403 >>405 VisualStudioやNuGetPackageExplorer見たことない人たち?
425 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 13:08:44.64 ID:/FACCQq3.net] >>407 ところがVSのInstallerはWPFからElectronにリプレースされたんだよなあ MS的にはできるだけVSCodeとリソースを共有したいだろうから、次期バージョンではほぼ確実にVSのワークスペース内にElectron入れてくるよ
426 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 13:55:14.55 ID:DFj+i+04.net] >>408 そこに深い意味があるとは思えないw 昔のExpressのインストールディスクの起動画面もHTAだった気がしたけど、 あれだってHTAであることに特別意味があったわけじゃなかろう
427 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 16:14:10.25 ID:Yg5/0qIe.net] >>405 MSも捨ててるしねえ UWPも誰も使ってなくない? >>406 教えて
428 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 18:42:49.75 ID:vsw29ZWk.net] 有名どころだとSourceTreeだな、むしろこれはいまだにElectronとかにしない理由がわからん(GitHub for Windowsはそうなった) 他は知らん MSもVS,Blendは別とするとWinDbg Previewで使ってるくらいじゃね? 野良アプリはちょくちょく見るけどキリがないので割愛
429 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 20:12:45.37 ID:RXSnHqjc.net] WPFはWindows10のスケーリングに対応しているのかね? Winformで作ったらWin1
430 名前:0スケーリングな人からボロクソに叩かれたからリベンジしたい [] [ここ壊れてます]
431 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 20:14:49.96 ID:vwxBR5u1.net] Windows7で作っていたWinformのアプリがたくさんあったけどWin10にしてスケーリングで問題出たものは一つもないな
432 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 21:15:20.65 ID:vsw29ZWk.net] >>413 4.6.2以降ならmanifest宣言すればPer Monitor DPIもWPF内でやってくれる https://github.com/Microsoft/WPF-Samples/tree/master/PerMonitorDPI ここのDeveloper Guideを参照 WinformsはSystemAwareの範疇でも見ても中途半端に対応していたせいで Win32生でやるよりHiDPIで崩れてるアプリが多い気がするなw
433 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 23:08:09.49 ID:fUpyP9r6.net] >>412 WPFは仮想DPIなので元々何もしなくてもスケーリング対応(System DPI aware) ※Per Monitor DPIでは無い 4.6.2以降はmanifestで宣言すればPer Monitor DPIも対応 4.6.2未満もapp.configで宣言すればPer Monitor DPI対応するらしいけど、確認はしてない
434 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 23:14:44.26 ID:DFj+i+04.net] でもPer Monitor DPI自体がポンコツで使い物にならんからなあw 活用してる人がどれだけいるか
435 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 23:54:26.00 ID:ZAMf2Fva.net] 他のアプリケーションの持ってるDataGridViewをゴリゴリ弄りたいんだけど何かいい方法ないでしょうか。 持ってるプロパティやデータも読みたい。 しこしこSendMessageするのは現実的ではないと思いまして。
436 名前:デフォルトの名無しさん mailto:sage [2018/09/07(金) 00:07:44.07 ID:edPtcLES.net] 流行りのRPA使えば
437 名前:デフォルトの名無しさん mailto:sage [2018/09/07(金) 22:13:02.02 ID:UPnWNaJM.net] RPAは自動化処理としては不完全 SendMessageしこしこした方が確実なのは言うまでもない
438 名前:デフォルトの名無しさん mailto:sage [2018/09/07(金) 23:15:50.54 ID:JDDOE++X.net] ほとんどのプロセサに共通して言えるのは 整数演算性能はどうでもいい扱いになってることだな
439 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 18:37:21.78 ID:P2ummhES.net] エクセルを『ClosedXML』で読み込んで、A2からセルを順に下に見ていってセルが空まで繰り返すって、どの繰り返し文が理想ですか?
440 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 18:43:33.91 ID:FyKgo8MI.net] >>421 while(true){} 空行が100行続いたら抜ける的な
441 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 01:32:47.82 ID:Jsw/KSGz.net] private void AAA() { var list = new List<Myclass>(); var numberList = new List<int>() { 1, 2, 3, 4 }; Myclass mc = new Myclass() { Nunber = 0, }; int i = 0; foreach (var n in numberList) { if(n == 1){ mc.Nunber = 1; list.Add(mc); Console.WriteLine("1={0} ", list[i].Nunber); } else if (n == 2) { mc.Nunber = 2; list.Add(mc); Console.WriteLine("2={0} ", list[i].Nunber); } つづく
442 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 01:33:12.59 ID:Jsw/KSGz.net] else if (n == 3) { mc.Nunber = 3; list.Add(mc); Console.WriteLine("3={0} ", list[i].Nunber); i += 1; } } foreach (Myclass n in list) { Console.WriteLine("res= {0} ", n.Nunber); } } } public class Myclass { public int Nunber { get; set; } = 0; }
443 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 01:35:58.68 ID:Jsw/KSGz.net] 上記を実行すると 1=1 2=2 3=3 res= 3 res= 3 res= 3 となります list.Add(mc) でlisの要素の最後に追加しているのに res ではすべての要素が"3" になっています なぜなんでしょう?
444 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 01:41:58.64 ID:4pnQI32t.net] mc一個しか作ってないからだろ
445 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 01:58:50.78 ID:u3SYaGhq.net] list={ mc ,mc ,mc}になっているんだよな ループ中でインスタンス毎回作らないと
446 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 06:41:51.42 ID:k9vEXAki.net] c#と言うかプログラミングの勉強始めたばかりなのですが、例外とエラーコードの違いがよくわかりません
447 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 07:45:28.87 ID:ndgOlWH8.net] 使い分けるものではないから違いを気にする必要はない エラーコードはどうしても必要な特別な場合を除きC#では使わない 人によっては業務エラーは戻り値を使うべきだとか色々な主張があるが、今はまず標準的な方法を学ぶ段階であり、そのような意見は無視せよ
448 名前:デフォルトの名無しさん [2018/09/10(月) 09:34:21.75 ID:uDZUf97M.net] 全部Expect型で解決してるわ
449 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 10:07:06.77 ID:WqnqKse5.net] 期待すんな
450 名前:423 mailto:sage [2018/09/10(月) 11:43:05.11 ID:Jsw/KSGz.net] >>426-427 なるほど!よく考えればそうですね ありがとうございました
451 名前:デフォルトの名無しさん [2018/09/10(月) 13:13:32.38 ID:aMpMOsPb.net] コントロールの名前を小文字で始めると「名前指定の規則違反です」と出るけど デバッグは通ります 何か問題出ますかね? あとCamel形式になじめず変数の命名する時 単語の連結にアンダーバー入れたい衝動がハンパ無い 一人で完結するなら問題ないだろうけど チームでやるようになると嫌がられるのかなあ? まあ無いだろうけど
452 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 14:25:56.49 ID:j74hNM/I.net] >>433 デバッグ通るなら問題ないでしょ コーディングスタイルの設定を変えればそういう警告は出なくなるんじゃないかな チームでやるならチームのスタイルに合わせる、簡単なことじゃん チームのみんなを納得させられるほどの合理的な理屈があるなら説得してみればいい
453 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 16:32:06.78 ID:YgCo9XUL.net] 名付け方式がPascalだろうがCamelだろうが小文字アンダーバーだろうがぶっちゃけ通ればいいよ チームで嫌がられたらその時合わせ方を考えればいい
454 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 17:35:00.22 ID:ed5IUta3.net] >>433 その手の表記法は余程不合理な物でない限り慣れの問題 少なくとも俺は1週間で慣れる >単語の連結にアンダーバー入れたい衝動がハンパ無い これはむしろアンダーバーを入れる表記法の方が冗長で不合理なので、 一旦キャメルやパスカルに慣れた後では間違いなく逆の感覚を抱くようになるw 掛けてもいいよ
455 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 18:05:47.60 ID:JmcP0T+k.net] じゃあ俺のスーツを
456 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 18:07:33.75 ID:hb3Qyg+S.net] 俺は靴下
457 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 18:40:22.87 ID:lrNRw7rP.net] web屋、というかPHPerはsnake caseじゃなきゃヤダ!派がやっぱ多いよね
458 名前:デフォルトの名無しさん [2018/09/10(月) 18:55:37.19 ID:DjrEsgmz.net] そかあ・・慣れねぇ・・・ ところで「小文字で始めると規則違反って警告が出る」って話だけど よくよく観察したら VSがデフォで自動命名したのでも警告出るんだけど・・・・なんで? 例えば private void button1_Click() の button1_Clickとか・・・
459 名前:デフォルトの名無しさん [2018/09/10(月) 19:07:39.58 ID:okAQrHmq.net] 日本語メンバは邪道?
460 名前:デフォルトの名無しさん [2018/09/10(月) 19:16:20.74 ID:BcdHqxqC.net] アンダーバーを入れない理w バカ怖るべしwww
461 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 19:17:08.96 ID:7Twb5yy4.net] >>436 単語の間に空白を入れると視認性が高まるという研究結果があるらしい それを信じるなら、空白ではないがセパレーターが間に入るスネークケースとケバブケースは理にかなってるはずだ 何はともあれまずは実験してみるべきだろう
462 名前:デフォルトの名無しさん [2018/09/10(月) 20:53:55.15 ID:DjrEsgmz.net] >>440 自己レス オプションのコーディングスタイルの 「フィールド以外のメンバー」がパスカルになってたから これを削除したら出なくなったわ キャメルにしたかったけど選択肢に無かったから削除にした よく分からないけどこれで良いんだろうか?www
463 名前:428 mailto:sage [2018/09/10(月) 21:01:52.45 ID:ZrUglARC.net] わかりました。とりあえず例外の使い方を勉強します。
464 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 21:27:12.53 ID:j74hNM/I.net] キャメルでもパスカルでもスネークでもケバブでもどれでもいいと思うけどな コーディングスタイルにこだわる理由が分からん 見やすさならスネークとケバブだとは思う。理由は英語自体がスペースで区切る方式だから と言いながら個人開発では慣れたキャメルやパスカルだけどさ あ、個人サイトのURLはスネークケースだわ
465 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 21:29:11.62 ID:j74hNM/I.net] >>444 いいんです コーディングスタイル設定に基づいた単なる警告だから
466 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 21:47:33.87 ID:98dDshqq.net] コンボボックスやテキストボックスを引数にしたい場合って、object?control?
467 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 21:51:04.49 ID:BpMg5Aug.net] >>448 デザイナのソース見ればわかる。そのままComboBoxとTextBox それ以外なら何に使いたい引数なのか言わないと分からない
468 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 21:56:41.48 ID:98dDshqq.net] 入力のエラーチェックでカンマが入ってるかどうかチェックするのに引数で持ってきたい場合はどうすれば? まぁコンボボックスは入力するところではないんですけど...
469 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 21:59:41.61 ID:BpMg5Aug.net] >>450 それは入力したテキストだけを参照したらいいのでは?
470 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 23:13:48.33 ID:j74hNM/I.net] >>450 カンマが入ってるかどうかチェックする値を引数にすればいいのでは?
471 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 23:31:45.25 ID:JmcP0T+k.net] 普通コンボボックスごと渡したりしないよな
472 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 00:38:00.63 ID:fWYCS2WK.net] 見知らぬ人が作ったVBを勉強がてらC♯変換しててVBがそうなってたもので. .. テキストを渡してやることにします。
473 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 01:07:46.00 ID:R24CyBtF.net] 横槍だがそれにつけるメソッド名どんなのにすればいいの? 参考に教えて GetStringDeleteComma() とか?
474 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 01:09:08.78 ID:pVzZZpUQ.net] デリートコンマでよくね
475 名前:デフォルトの名無しさん [2018/09/11(火) 01:09:51.19 ID:HX9tNh9Z.net] >>450 カンマなど余計な文字数とってやるって手もある
476 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 09:24:30.87 ID:3oMSZQth.net] 見知らぬ奴のソースは踏襲しないほうがいい
477 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 12:37:34.88 ID:LDsiYPvK.net] >>453 例えば、エクセルを読み込んでその各列の値をそれぞれ複数のコンボボックスに入れる時はどうしたらいいですか? 追加部分を別クラスに書いて、引数はフォーム、列のカラム、コンボボックスなど渡してやったりするのは駄目な書き方?
478 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 13:17:21.96 ID:glgNbbLv.net] >>455 「カンマが入ってるかどうかチェックする」「テキストを渡してやることにします」だから bool CheckComma(string checkText) とかじゃね?
479 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 13:22:18.04 ID:ik07SMEJ.net] HasComma
480 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 13:27:52.11 ID:glgNbbLv.net] >>461 MSのコーディングスタイルに準拠するならそれだな
481 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 13:47:02.45 ID:OkaM0mAN.net] >>453 場合による
482 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 13:48:11.63 ID:SNgh1+C8.net] >>460 それだとカンマが含まれてる場合にtrueとfalseのどっちが返ってくるか判断できんやろ
483 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 14:33:59.50 ID:bYPr0L5F.net] ほんじゃカンマ以外が入っていたらどーすんのってなるから数値以外削除して返せばいい って思ったけどどういう関数名にするんだ?
484 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 14:36:57.03 ID:928ZQD1C.net] ?w
485 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 14:51:12.92 ID:glgNbbLv.net] >>464 そう言われればそうだな。そこら辺の配慮を忘れてたわ やっぱHasCommaが最適解か メソッド名だけで返り値が分かるしな
486 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 15:00:09.50 ID:Arul2OBN.net] hasも英語として不自然なのでcontainsを使ってw もっと言うなら、StringのメソッドにContainsが既にあるので わざわざカンマを含むかどうかを検査する専用メソッドに存在意義があるとは俺には思えん
487 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 16:42:24.04 ID:AGybRa2Z.net] データグリッドビューを別フォームに渡して コンストラクタで受け取ります このとき元のデータグリッドビューと切り離す琺瑯教えてください 複製したいです この時データセットやデータテーブルは駄目です
488 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 16:45:15.78 ID:AGybRa2Z.net] 琺瑯→方法
489 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 16:47:43.89 ID:ylc2S0TC.net] DataGridViewじゃなくてDataSource受け渡しでDataSourceをコピーじゃダメなの?
490 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 16:49:08.34 ID:GlOIz1sj.net] 同じRowとColumnの数の新しいDataGridViewを作り、それぞれのValueを書き込んでください
491 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 16:57:15.28 ID:TAVTHaAT.net] 新しくnewしたDataGridViewに手作業で必要なプロパティ設定していく ColumnsとRowsはforeachしてそれぞれCloneしたのをAddする イベント類はまあどうでもいいか
492 名前:デフォルトの名無しさん [2018/09/11(火) 17:00:09.28 ID:qpgjCo1u.net] 継承したフォームにデータセット渡す
493 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 17:27:08.25 ID:Arul2OBN.net] >>469 何言ってるのかさっぱり分からんけどこういうこと? 〜 Form1 〜 Controls.Remove(dataGridView1); var form2 = new Form2(dataGridView1); form2.Show(); 〜 Form2 〜 public Form2(DataGridView dgv) { InitializeComponent(); Controls.Add(dgv); }
494 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 17:33:47.77 ID:Arul2OBN.net] 移動元でControls.Remove不要みたいだね こんなの必要になったことがないからやったこともなかった
495 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 18:15:11.25 ID:K2tTWTaM.net] XMLに書き出して新しく作ったFormにロードするのが一番シンプル
496 名前:デフォルトの名無しさん [2018/09/11(火) 19:28:23.64 ID:FmRL3j/P.net] 俺も気になるわこれ DataGridViewでCloneできればいいのに 画面上のソート順を保つためDataGridViewごと他フォームに渡したりする でも元フォームでデータ変更されると渡したDataGridViewも変わるから それが嫌だったことある そん時は元フォームで1行ずつ先頭から呼んで別のDataSet作ったけど
497 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 02:22:23.95 ID:vTtqi/en.net] 素人だからデータの保持や別データとのやりとりはListでやっといて 更新される度に毎回DataBindings初期化していちいち読み込んでるわ 動くから……いいかなって……
498 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 13:02:32.22 ID:Jn68slr9.net] データグリッドビューでやるのは無理なんですね… 一行ずつ新しいデータテーブルに読み込んで複製します ありがとうございました
499 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 13:22:31.80 ID:Nj/C/MXJ.net] そうじゃなくて、だからそもそも何言ってるのか誰も理解できないんだってw まともな日本語書けと 他人に通じるまともな文章に書き直したら答えが返ってくる問題かもしれんよw
500 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 14:36:44.55 ID:Jn68slr9.net] フォームのデータグリッドビューを 別フォームのクラスに渡してコンストラクタで受け取るんです DataGridView dgv = srcDvg; そうすると元フォームのデータグリッドビューを変更すると譲渡先のdgvも変更されちゃうんです コレを止めたいです 元を変更してもdgvは渡されたときの状態を保つ方法が知りたいです なお、この時データセットやデータテーブルを使用せず データグリッドビューのままやる方法はありませんかと言う質問です 👀 Rock54: Caution(BBR-MD5:13
501 名前:41adc37120578f18dba9451e6c8c3b) [] [ここ壊れてます]
502 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 14:37:39.66 ID:Jn68slr9.net] なんでRocketや…
503 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 14:47:38.46 ID:SYobtT/Z.net] 参照元の状態を反映するのはC#の仕様なんだから新しいインスタンス作って 何らかの形で中身コピーする必要があるのはどのクラスでも一緒(Bitmapとかも)
504 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 16:52:38.09 ID:9GvVVUqs.net] 面倒くさいことはしたくないって思考だな
505 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 16:59:40.03 ID:fIpfvqUu.net] 面倒くさいことを楽にしようというのがソフトウェアだからな
506 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 17:04:10.32 ID:Jn68slr9.net] ありがとうございます 大人しく作り直します
507 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 17:25:49.83 ID:MyqFbSbG.net] 初心者用なのに初心者に厳しい自称プロさんたち
508 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 17:37:25.30 ID:JkfDtodY.net] >>488 ここに来るのはみんな初心者 スレタイ読めないのか?
509 名前:デフォルトの名無しさん [2018/09/12(水) 18:45:38.51 ID:6MfZXYju.net] >>478 継承しろや!
510 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 22:45:44.44 ID:JSQG/Jue.net] linq リンキューですか? ラインクですか?
511 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 22:59:50.57 ID:HCZYwh62.net] リンクじゃないのか? 俺はアクセントがわからない
512 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 01:12:43.13 ID:xXJqEk25.net] リンクだと思ってた
513 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 03:37:55.81 ID:4tq0ggVx.net] >>490 したない
514 名前:デフォルトの名無しさん [2018/09/13(木) 05:03:38.49 ID:wmIVPXZe.net] byte a; byte b; byte c = a + b; だと型が合わないとエラーが出る 左辺をint cにするか、右辺を(byte)(a + b)にする必要があるんだな なんで型が合わないのか分からず一日ドツボにはまった 入門レベルの参考書には載ってないし でもバイト型とバイト型を演算したら答えはイント型に変わるって 根本的におかしくね?
515 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 05:09:18.59 ID:1YFyErS3.net] why?
516 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 06:06:29.57 ID:4tq0ggVx.net] https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/byte#conversions
517 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 08:17:24.20 ID:IoXWiQ4j.net] >>491 リンクだとlinkって感じなので心の中ではリンクゥって言ってる
518 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 08:18:16.41 ID:Ts60fXh8.net] >>495 CPUはそういうもん 小さな型でもいったんCPUに応じた処理しやすい自然なサイズに変換してから演算する 32/64bit CPUと呼ばれる所以だ もちろんbyte同士なら演算後に勝手にbyteにキャストする仕様もありうるけど、 そんなことをしてもせっかく255を超えてもオーバーフローせずに表現できてるものを わざわざ余計な処理入れて切り捨てるなんて無駄でしかないからCPUの仕様に合わせている
519 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 08:44:11.24 ID:eHHJ6hTJ.net] >>491 https://www.microsoft.com/ja-jp/mic/seminar/programing_linq.aspx >統合的なデータの問い合わせを実現したテクノロジ LINQ (リンク)
520 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 10:09:10.44 ID:7r2vSdtk.net] LINQ職人の方に聞きたいのですが var 元 = new[] { new {Index = 0, Value = "あ"}, new {Index = 1, Value = "い"}, new {Index = 3, Value = "う"} }; みたいな羅列があって、こいつを平凡な string[] に変換したいです。 [0] → "あ" [1] → "い" [2] → null [3] → "う" LINQ 1発でバシって出来ませんか?
521 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 10:15:23.01 ID:vxp+pG1B.net] 普通にはできません
522 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 10:49:45.94 ID:uKwFSQ+m.net] LINQ 外部結合 ぐらいでググったらそれらしいのあるが、やめとけ。
523 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 10:
] [ここ壊れてます]
524 名前:55:31.20 ID:n/Ia9Ufb.net mailto: さくっとできる [] [ここ壊れてます]
525 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 10:59:56.20 ID:n/Ia9Ufb.net] rangeとzipな
526 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 12:50:08.04 ID:gBmhWXZp.net] >>495 今まで気づかなかったけど、C#もintに揃えるCの手抜き実装を踏襲してるんだなw これはシンプルに「大きい方の型に揃える」ルールにして欲しかったね
527 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 15:34:46.60 ID:B76L2xUy.net] >>501 var 元 = new[] { new {Index = 0, Value = "あ"}, new {Index = 1, Value = "い"}, new {Index = 3, Value = "う"} }; var array = Enumerable.Range(0, 4).Select(index => 元.Where(moto => moto.Index == index).FirstOrDefault()?.Value).ToArray();
528 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 15:38:33.86 ID:TO6ro8xf.net] ちなみにFirstOrDefaultはFunc<T, bool>を引数に取れるからWhereはなくていいよ
529 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 16:23:35.73 ID:B76L2xUy.net] >>508 の指摘にそって改良 var 元 = new[] { new {Index = 0, Value = "あ"}, new {Index = 1, Value = "い"}, new {Index = 3, Value = "う"} }; var array = Enumerable.Range(0, 4) .Select(index => 元.FirstOrDefault(moto => moto.Index == index)?.Value) .ToArray();
530 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 16:34:26.33 ID:n/Ia9Ufb.net] zipで一行
531 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 16:48:55.75 ID:Mtznb6SP.net] >>510 コードで示して
532 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 16:51:19.42 ID:n/Ia9Ufb.net] コードは甘え
533 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 16:52:36.00 ID:Mtznb6SP.net] >>512 じゃあ>>509 も1行で済んでるからそっちでいいや
534 名前:デフォルトの名無しさん [2018/09/13(木) 17:34:16.92 ID:fde6nCOF.net] cscやmscが吐き出す実行ファイルについて教えてほしいのですが、これはOSや実行環境に依存せず実行できるのですか? WindowsPC上で実行ファイルを作成し、それをRaspberry Pi等にコピーしてmono上で動くのかが知りたいです
535 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 17:40:54.40 ID:O9n8eAiW.net] >>514 依存する monoの方にどこまでサポートするか書いてないか
536 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 19:29:30.60 ID:nU06fVx/.net] Tostaring(); Set focus(); とかの()の意味を教えてください。
537 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 19:30:56.20 ID:84N5Yvll.net] >>516 引数が存在しないことを示す
538 名前:デフォルトの名無しさん [2018/09/13(木) 20:13:42.27 ID:tX4xVeil.net] 言葉も出ない、ということ
539 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 21:21:45.27 ID:RirS5RMp.net] >>516 演算子だって考えるのが素直でしょう https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/invocation-operator デリゲートの後ろに引数リストを囲った()を付けるとメソッドが呼び出される
540 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 21:24:09.90 ID:RirS5RMp.net] しかし、Tostaringてw ドラマか何かの主演俳優にするメソッドがw
541 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 21:25:43.52 ID:YrOTDcXS.net] スターリンがどうかしたって?
542 名前:デフォルトの名無しさん [2018/09/13(木) 21:26:14.24 ID:6Z3XXp4U.net] はからずもS式の合理性を再認識させられる初秋の夜であった
543 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 22:00:27.97 ID:tu9+IsVI.net] >>501 Enumerable.Range(0, 4) .GroupJoin(元, m => m, i => i.Index, (m, i) => i.FirstOrDefault()?.Value) .ToArray() 長いね…
544 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 22:14:47.62 ID:JHngkFny.net] 元.Aggregate(new string[4], (a, x) => { a[x.Index] = x.Value; return a;});
545 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 22:17:18.10 ID:z+6RPAPe.net] おお
546 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 22:21:08.27 ID:u61xW8CT.net] >>510 Zipじゃ i=2 : null は無理でしょ
547 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 22:31:31.75 ID:z+6RPAPe.net] 3項塩山市をつかう
548 名前:デフォルトの名無しさん [2018/09/14(金) 07:23:37.25 ID:dEKf7JQJ.net] >>1 のスレ趣旨にあるように、 超初心者でも、気軽に入り込めるスレに、して欲しいです。
549 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 07:53:12.59 ID:zwGydTBu.net] LINQのメソッドこねくり回しているのは超初心者には厳しいかな?
550 名前:デフォルトの名無しさん [2018/09/14(金) 08:02:41.43 ID:ixgSdYSb.net] おまえも超初心者やんw そうゆうとこやあかんのはw
551 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 09:26:00.50 ID:6Xa6OuyO.net] Aggregate優勝
552 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 09:48:38.96 ID:YVc6B226.net] Aggregateのパターンを実際使うとすると配列代入時のインデックス範囲チェックが必要で結局長くなるんだよな
553 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 10:20:53.65 ID:VsV8E9sx.net] 業務システム開発でLinqと三項演算子だけでほとんど処理を書いていたら 応用情報技術者試験のアルゴリズム問題でカウンタを持つようなfor文が全然読めなくなってしまいました やはり開発においてLinqは有害なのでしょうか?
554 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 10:40:20.21 ID:74Ijv3/g.net] >>533 貴方の脳の品質の問題をLINQの問題にしないでください
555 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 12:17:21.38 ID:uKNqObYo.net] まあ脳の病気だわな
556 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 10:29:16.94 ID:xmiaTl3L.net] C#7のローカル関数って、一つのメソッドからしか呼ばれないなら良いと思うんだが、ユニットテストはどうなるんだろ?
557 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 11:18:16.17 ID:luWyo1Kp.net] >>536 ユニットテストはやる人などによってやり方はそれぞれだろう
558 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 11:19:27.99 ID:PMHdQMes.net] privateメンバのユニットテストをしようとするのはそもそも誤り 壊れやすいテストは結果的にメンテされなくなり意味を為さなくなる
559 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 12:21:00.32 ID:hseJLl5H.net] >>538 これ publicなメンバーを通してテストすること
560 名前:デフォルトの名無しさん [2018/09/15(土) 20:38:11.28 ID:elLmwu/2.net] LinQの中身がfor文って本当ですか?
561 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:39:51.17 ID:xmiaTl3L.net] >>537-539 納得しました、サンクス
562 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 21:16:49.41 ID:vc2YYDHO.net] >>540 ソースを読めば分かる https://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs
563 名前:デフォルトの名無しさん [2018/09/15(土) 21:24:11.06 ID:8rxpHkWL.net] for文の中身がgotoて本当ですか?
564 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 21:29:31.15 ID:Fr67tYwB.net] コンパイル結果見ればわかる
565 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 21:48:21.87 ID:iPPDwx/Y.net] 列挙子とforeachの組み合わせってforよりおそい?
566 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 21:51:19.05 ID:VeSVHeu2.net] 数%の処理速度の違いを気にするくらいならその都度試してみればいいんじゃないかな
567 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 21:53:24.60 ID:iPPDwx/Y.net] いや、なんでLINQ遅いって言われてるのかなっておもって
568 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 21:56:28.37 ID:88GvsHdE.net] 遅いと言えば遅いよ 余計な手数が増えてるから 気になるなら後からでも書き換えればいいだけ
569 名前:デフォルトの名無しさん [2018/09/15(土) 21:57:40.02 ID:8rxpHkWL.net] >>547 それはリンキューさんの遅さとゆうより 有り合わせのアルゴリズムの組み合わせで勝負するか はたまた最適化したアルゴリズムをシコシコ組み立てるか の違いが大きいのや
570 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 21:58:32.54 ID:iPPDwx/Y.net] その程度の差なんですね よほど大きなオーバーヘッドでもあるのかと思ってた
571 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 22:09:29.85 ID:j1sHLBNC.net] MSIL勉強したいのですが、参考になるサイトを教えてもらいませんか?
572 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 22:14:24.26 ID:nm6j3SBT.net] MSDN
573 名前:デフォルトの名無しさん [2018/09/15(土) 23:09:21.09 ID:elLmwu/2.net] >>542 やべえ これを読む能力がない・・・
574 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 23:53:24.63 ID:iPPDwx/Y.net] linqの中身はforeachで列挙子を回してる それは while(次の要素を取得するメソッド){ 要素に対する処理のメソッド } に展開される 詳しくないから適当だけど
575 名前:デフォルトの名無しさん [2018/09/16(日) 01:03:15.10 ID:uYUceUNT.net] アセンブラでもやってろよ
576 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 01:04:46.36 ID:ANojdriP.net] がっつりパフォーマ
577 名前:ンスのチューニングしたことあるわけじゃないけど unityの毎フレーム行われるような処理で使わない限りlinqの速度が問題になることはないんじゃないか? [] [ここ壊れてます]
578 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 06:05:13.06 ID:75aeC/cD.net] プログラムによる プロファイラで分析しろ ボトルネックの分析前に100倍遅いのとか1000倍遅いとか言っても何の意味もねえから
579 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 08:07:06.87 ID:HxZqM27H.net] ゲームで描画以外の処理が問題になることは少ない
580 名前:デフォルトの名無しさん [2018/09/16(日) 08:29:55.59 ID:AZs5fz+o.net] アプリケーションのプロパティの中にある[設定]という項目で Properties.Settings.Default.xxxでint型配列の変数を保存したいのですが できませんでしょうか? 前回使ったパラメータ群を配列で保存して 次回に読み込んで再現したいのですが 別の方法でもいいのですが参考になる解説ページでもあれば教えてください
581 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 09:04:23.29 ID:psXGYTXF.net] >>559 「,」でjoinして文字列で保存、取り出すときに「,」でsplitとかどうだろ?
582 名前:デフォルトの名無しさん [2018/09/16(日) 09:25:05.54 ID:2ksH8VYk.net] >>560 まあこれが横道だよね てか、今ならjsonで保存か
583 名前:デフォルトの名無しさん [2018/09/16(日) 09:42:20.10 ID:AZs5fz+o.net] >>560 なるほど!配列を分解して文字列型にするのか! それなら私の低スキルでもなんとかできそうです ありがとうございました!
584 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 10:07:09.66 ID:aJAMOBK/.net] 例えばアプリケーション終了時に画面のサイズと位置を保存して 次回起動時に設定をロードするとしたら なにで保存しますか?XML?INI?JSON?
585 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 11:04:54.55 ID:rvnq8hQD.net] >>563 「どこに保存するか」を気にしないならすぐ上に出ているProperties.SettingsのSystem.Drawing.Pointで保存したら MSの推奨なんだから
586 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 11:12:58.81 ID:txQA20Wu.net] 昔からあるVSの定型Tipsだけど この上から目線な感じは もっと高度な議論を吹っ掛けてるんじゃね? くわばらくわばら
587 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 11:25:39.54 ID:gTaOdbFs.net] >>563 俺はXMLで実行ファイルと同じ場所に保存してる
588 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 12:37:43.94 ID:ksMt/4i/.net] >>566 実行ファイルと同じ場所は書き込み権限がなかったりするからMS的にはApplication.UserAppDataPathで得られる場所などを推奨
589 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 12:48:14.51 ID:LixUwGN0.net] >>559 IDEでプロパティの型を選ぶところの中には配列ってなかったっけ
590 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 13:06:53.35 ID:16Y59QgZ.net] 場所や形式はなんでもいいけど 読み書きクラスを上手くカプセル化しないと後で変更効かなくなって泣くのでそっちのほうが重要
591 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 13:19:04.65 ID:p+qyV3Lh.net] いや、場所や形式は重要だよ
592 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 13:23:10.99 ID:aJAMOBK/.net] >>564 へーありがとう御座います 調べてみます
593 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 13:32:26.33 ID:16Y59QgZ.net] >>570 重要になるのは後で 開発中はたいして重要じゃないし正解も定かではない
594 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 13:59:51.99 ID:hCxE0E+A.net] >>566 実行ファイルのパスってProgramFilesのとこかな? あのフォルダーって監視入ってるから、データアクセスでも色々遅くなるかも
595 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 14:01:52.05 ID:w97F4Kz1.net] どこに保存するかはかなり致命的な問題になるから 今から
596 名前:学んでおいて損はないよ [] [ここ壊れてます]
597 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 14:10:32.40 ID:uf7cGEex.net] >>573 ProgramFilesがなんで出てくるかもわからないし設定ファイルのデータアクセスのスピードが問題になるのはおかしい
598 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 14:17:56.47 ID:gTaOdbFs.net] >>567 知ってる。でも自作のポータブルアプリだからそうしてる インストールするようなもんはC#ではまだ作ったことないわ >>573 違う。ポータブルアプリだからユーザーが置いた場所 USBのフォルダとかマイドキュメントとか
599 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 14:41:31.05 ID:gTaOdbFs.net] >>569 同意。C#はXMLについては簡単にカプセル化できるのがいい JSONも簡単なんだっけか?、使ったことないから分からんわ
600 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 14:41:58.58 ID:ksMt/4i/.net] UACが出来てからディレクトリの書き込み制限が厳しくなってるから意識する事は大切ですね >>574
601 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 19:10:33.14 ID:PDDwZiUq.net] >>559 ここにかいてるやん https://stackoverflow.com/questions/1766610/how-to-store-int-array-in-application-settings
602 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 19:10:39.97 ID:8jdJAOdP.net] 書き込み制限するだけならまだマシなんだが 勝手にリダイレクトしやがったりするからなぁ それも同じOSでもUAC設定だけでしたりしなかったり
603 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 19:15:37.35 ID:SnNXv25N.net] >>578 違う どこにどんな形式で置くかを柔軟に変更できることが重要 これをおろそかにして最初から場所や形式を決めつけると後で致命的な問題が発生した時に困る
604 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 19:41:28.41 ID:5YLu0Ky3.net] いやいや保存場所は最初から重視しないとだめだよ あとで罠にはまるよ
605 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 19:50:02.93 ID:SnNXv25N.net] >>582 情報が出揃ってない序盤で決定するのはNG 根拠の薄い判断に盲目的に従って進めるよりはわからないものはわからないと認識した上で進めるほうが良い 最初は良いインターフェイスを決定することに注力する 開発が進むと徐々に客が(隠していた|失念していた)情報を出してくるのでそうなってから検討すればよい それまでは暫定で簡単な実装を置いておく
606 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 19:57:02.81 ID:AeuhPaJN.net] よくわからないけど設定ファイルを柔軟にする必要はないよ
607 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 19:59:35.75 ID:AeuhPaJN.net] 実装方法を知りたい人にインターフェイス云々から始める人は無視
608 名前:デフォルトの名無しさん [2018/09/16(日) 20:03:32.45 ID:oQtqL1qV.net] どの初心者スレでも明後日のレスしてドヤりたがっとるプロさんおるねw
609 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 20:14:16.80 ID:AeuhPaJN.net] いいや プロ的にもありえないだろ
610 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 20:31:15.27 ID:Ka1tFSGh.net] 具体例示さず「〜しなきゃいけない」とかいうのは「妄想お疲れ」って返しておけばいいよ
611 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 20:59:15.70 ID:AeuhPaJN.net] 今後は全部の質問にインターフェイスの決定に注力しろって答えたらいいんだな
612 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 21:19:05.23 ID:Ka1tFSGh.net] >>589 批判をずるずる引っ張るのはやめてくれ
613 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 21:46:31.24 ID:SnNXv25N.net] 雑魚しかおらんかったか 初心者スレだからしゃあないか
614 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 21:47:28.61 ID:PDDwZiUq.net] また余計なことを
615 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 23:49:26.08 ID:EHluPWph.net] Buggy C# Code: The 10 Most Common Mistakes in C# Programming https://www.toptal.com/c-sharp/top-10-mistakes-that-c-sharp-programmers-make 俺はあまり共感できないな…
616 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 00:28:42.00 ID:+YOQSfB9.net] >>593 何が?
617 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 00:43:15.18 ID:48O793oJ.net] 英語読める人ホント羨ましい リリース当日にリファレンス把握できちゃうわけでしょ
618 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 00:43:43.99 ID:tnCTTc8C.net] >>591 お前が一番の雑魚
619 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 05:59:26.92 ID:/N0hOtdj.net] >>593 1~2番目はまあそうだねと思ったけど 3番目がくだらなかったから読むのやめた
620 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 08:16:13.80 ID:bk1Atddi.net] >>595 今からでも遅くないぜ。
621 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 11:20:21.31 ID:SR+usNFF.net] 対象文字列 "<xx><yy><xx>111</xx></yy></xx><xx>222</xx><xx>333</xx>" があるとき、 xxの中を取り出す正規表現はどうしたらいいのでしょう? ただし、xxが閉じる前にyyがあるときはそのxxは無視という条件付きです 例えば正規表現を @"<xx>.*?[^(</yy>)]</xx>" にすると 実行結果 <xx><yy><xx>111</xx> ←</yy></xx>が欠ける <xx>222</xx> <xx>333</xx> 欲しい結果は <xx><yy><xx>111</xx></yy></xx> <xx>222</xx> <xx>333</xx>
622 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 11:25:17.63 ID:3TgxIbp4.net] 内容はみてないけど 正規表現では検出できないパターンがある それにあたるのかと
623 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 11:32:42.98 ID:rJA1qwMQ.net] XMLとして要素抜き出したほうが確実じゃね
624 名前:デフォルトの名無しさん [2018/09/17(月) 11:38:46.01 ID:dj7qSZnZ.net] オレだったらどうでもいいしょうもないこと考えたくないから 普通にxerces使う
625 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 11:40:49.96 ID:3TgxIbp4.net] 質問からはxmlなのhtmlなのかすら確定できない
626 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 11:42:17.99 ID:3TgxIbp4.net] 正規表現は括弧やタグの対応は苦手 中に再帰的構造があるものは苦手 その構造が特殊になるとさらに苦手
627 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 11:45:20.52 ID:SR+usNFF.net] xmlだけど同じデータ格納するのに色々なフォーマットがあるごちゃついたのだから 文字列として処理したいんです。正規表現使わずに力技で読むかなぁw すみません。>>599 の対象文字列がミス 対象文字列 "<xx><xx><yy>111</yy></xx></xx><xx>222</xx><xx>333</xx>"; 試した正規表現 @"<xx>.*?[^(</yy>)]</xx>" 結果 <xx><xx><yy>111</yy></xx></xx><xx>222</xx> <xx>333</xx> 欲しい結果 <xx><xx><yy>111</yy></xx></xx> <xx>222</xx> <xx>333</xx>
628 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 11:45:52.85 ID:SBpxj18K.net] とりあえずこっちへ行け Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net mevius.5ch.net/test/read.cgi/tech/1489511075/
629 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 12:02:14.11 ID:SR+usNFF.net] C#の正規表現だからこっちにしたんだけど、あっちに引っ越します
630 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 13:08:19.32 ID:x9rlqJR2.net] したんだけどぉ
631 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 14:34:45.72 ID:IzAnQMU8.net] XMLや正規表現を考えるよりもデータ構造がどうなっても対応できるようにインターフェイスを考えるべきだろ
632 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 16:03:32.30 ID:KWfY0Z4o.net] >>609 正解
633 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 01:24:04.08 ID:4ympWGJc.net] >>1 ぶっちゃけた話、C#って2030年まで生き残りますかね?
634 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 01:39:12.39 ID:eM+9yNEO.net] 生き残ってる定義による cobolなんてもう60歳だけど必要とされてる場面が無いわけじゃない
635 名前:デフォルトの名無しさん [2018/09/18(火) 02:11:14.63 ID:6Xg+Nv26.net] >>611 進化続けてるし、余裕であると思う。
636 名前:デフォルトの名無しさん [2018/09/18(火) 02:21:27.54 ID:Ito09mAU.net] そんでC++みたいにバージョンが制定年になると 正直機能的には3.0くらいであまり困らんのだけどね 簡潔に書けるとかはあるけど ライブラリだけ拡充してくれれば
637 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 05:59:52.79 ID:GWyG2DaA.net] await無しで非同期処理書きたくないな
638 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 08:10:13.67 ID:gblGntZ1.net] LINQがないと死ねる というかLINQがないとC#のアドバンテージを全く感じない言語になってしまう それとawaitもそうだけど、C#はJavaに対してコンカレントプログラミングの能力に まだまだ欠けていると思う Javaの強みはjava.util.concurrentにあると思う
639 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 08:19:55.28 ID:O8EaoTgS.net] java.util.concurrentってほとんど.NETにも同じのあるぞ Javaのあの〇〇Queueとかクッソ使いづらい並列フロー制御系に対応するのはTPL Dataflowがある
640 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 08:39:24.89 ID:PTaE8gsW.net] >>616 メソッドにした方が2回目同じ処理するときにいいよ
641 名前:デフォルトの名無しさん [2018/09/18(火) 09:03:15.68 ID:X6vi7zjN.net] python如きには負けんよ
642 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 10:06:07.53 ID:ml+9R6/h.net] 負けてるんだよなあ
643 名前:デフォルトの名無しさん [2018/09/18(火) 10:10:26.45 ID:JkFBL6IZ.net] 結局Windowsアプリケーションにしか使われてなくて VBの代わりくらいのポジションなんですかね・・・
644 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 10:24:42.25 ID:Z0oFh/rY.net] >>617 そんなんどこにあったっけ? 実際java.util.concurrentパッケージの充実度は凄いぞ
645 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 10:52:42.36 ID:9AO9WU5h.net] UnityとかTypeScriptとか、色々と使われているでしょ
646 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 10:58:02.59 ID:PTaE8gsW.net] >>620 連想配列分負けてる気がするね c#には付けないで欲しかったけど ちょっと前に付いた?
647 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 11:04:50.17 ID:9sIU0wgT.net] >>624 大昔(2.0)からある System.Collections.Generic.Dictionary<TKey,TValue> でなくて?
648 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 12:05:26.41 ID:ONx2VSk9.net] >>621 iOSやAndroidアプリにも使われてますよ
649 名前:デフォルトの名無しさん [2018/09/18(火) 12:54:57.79 ID:/G1owK98.net] C#でカードゲーム作るため テキストファイルに保存した 一行分をカードデータにしたいのですが 行指定はどうやるのでしょうか
650 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 12:59:13.48 ID:2NhqeWSI.net] 1行ごとにList<string>に入れる
651 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 13:34:02.44 ID:Z0oFh/rY.net] jsonか何かにしたほうが楽だと思うけど…
652 名前:デフォルトの名無しさん [2018/09/18(火) 13:39:50.95 ID:X6vi7zjN.net] .Net4.0までの環境で、Task.Runが使えないのですが Task.Factory.StartNewを使う場合、戻り値を処理するContinueWithに該当する書き方はあるのでしょうか?
653 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 14:06:00.86 ID:OtLk5TCg.net] >>622 System.Threading System.Threading.Tasks System.Threading.Tasks.Channels System.Threading.Tasks.DataFlow System.Collections.Concurrent ちゃんとこの辺りを見よう
654 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 14:25:25.74 ID:G1Vdk7ct.net] >>630 Task<T>を作るのが.Runだろうが.Factory.StartNewだろうが その後の記述は特に変わらないけど
655 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 14:29:51.48 ID:OtLk5TCg.net] 最近の.NETってMS製の公式な標準ライブラリですら平気でNuGetだけで提供されるようになったけど ビルドにインターネットからのダウンロードが必要なのはギョウムワールドだと問題になるところが多そう ジャパニーズドカタは氏ねってことかな
656 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 14:38:44.61 ID:XSFiXPPc.net] >>625 タプルと合わせないと似たような機能にならない気がする
657 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 14:50:46.95 ID:VPT0VaYi.net] ぎょうむわーるどなんてなおさら最近の開発環境とは縁がないのでへーきへーき
658 名前:デフォルトの名無しさん [2018/09/18(火) 15:15:36.23 ID:X6vi7zjN.net] async await使わせてくれー
659 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 15:31:00.86 ID:ml+9R6/h.net] >>633 世界平和に繋がって最高だね
660 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 15:39:57.73 ID:XSFiXPPc.net] >>636 気軽に使うと問答無用でバグ票切られる機能だろそれ まず待ちたいならタイムアウトを設定しないと そもそも何がどんな状態で終了することを想定している? リトライはいらない? お前は何もしなくてよかったの? 自分の次の動作は待ってるタスクの結果次第だから待ってたのに何も受け取ってるように見えないけど? ってぐらいは考慮してないとだいたいバグってる
661 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 20:45:48.05 ID:PujpLEtU.net] >>621 Google Cloud Platform Japan Blog ポノス株式会社の導入事例: eスポーツ対応の対戦型ゲームを Compute Engine ベースで構築、レイテンシーの比較で最大 2 倍の差が採用の決め手 https://cloudplatform-jp.googleblog.com/2018/08/ponos-esports-compute-engine.html > 特長的なのは、バトルサーバーで、アプリケーションが C# で書かれています。 >「Windows 上で C# を動かすのではなく、.NET Core を使って CentOS の上で C# を動かすという珍しい構成になっています。」
662 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 22:17:49.42 ID:xEaDxwfq.net] >>633 ローカルのリポジトリ立てればいいやん
663 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 22:40:10.00 ID:mQbB6K+e.net] Javaと比べるとビルドから実行時までサクサク動くから気持ちいい
664 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 01:24:11.00 ID:4W6jsUF3.net] uiスレッドって1個だけ? datagridviewのデータソースにdatatable突っ込んで何十万件も表示させてます 高速化する方法ないですか?
665 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 06:12:31.75 ID:JwM3WN1L.net] その設計が間違ってる 何十万件も一度に表示www
666 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 08:06:04.74 ID:4W6jsUF3.net] それが一億とかのときもあるんです
667 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 08:12:17.74 ID:SZbHS6KX.net] Form1.csに書くコードに対し、これは別クラスに書いとけってコードは例えばどんなものですか?
668 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 08:25:39.24 ID:eYANVd+E.net] 動作にフォームのインスタンスが要らないもの
669 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 08:26:54.31 ID:eYANVd+E.net] >>644 頭から改良した方がいい 皮肉じゃない 真面目に言ってるぞ
670 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 08:45:08.99 ID:KwEqagqF.net] そこまで行くと高速化よりも コルーチンで徐々に表示したりしてuiスレッドを止めないようにしたほうがいい どう考えても設計見直したほうがいいけど
671 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 09:10:17.79 ID:wQAi5nmu.net] >>644 1億を一度に欲しいの? 1億のレコードを画面に表示すんのか?
672 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 10:10:10.94 ID:CHaa5XJ7.net] >>644 日付の期間指定を無制限にしてるなら、最大90日にするとか
673 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 10:12:39.12 ID:buYyvBpb.net] DataGridViewってクッソ重いのと、DataTableとDataSetとDataViewもあるし、そもそもその先にはデータベースもあるわけで DataGridViewとデータベースだけでいいんじゃね?って思うことがよくある
674 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 10:18:16.90 ID:y7jhKYXL.net] webで作ったら普通に一億件表示しようなんて思わないよね どうしてdatagridviewだとそのまま突っ込むのか
675 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 11:04:13.47 ID:9VikJa+v.net] Webも最近はページングが廃れてきて遅延読み込みが増えてる ついに時代がVB厨に追いついた
676 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 11:22:39.36 ID:Ei/RIVZy.net] それも程度問題 数千件ならそれでいい(というかそうしなかったのはただの技術側の都合であって ユーザーの利便性を追求してたわけじゃない)けど、件数が千万のオーダーになれば 話は別に決まってるよ
677 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 13:53:52.66 ID:1pViUBUC.net] DataGridViewは面倒でも仮想モードでやらないとデータ増えると加速度的に遅くなる
678 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 15:20:13.47 ID:buYyvBpb.net] 仮想モードってなんだっけ? 単に列追加時は描画止めて、追加終わったら表示するやつ?
679 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 17:12:21.14 ID:ayfJChiE.net] 画面内にいないやつはそもそもUIに載せないやつじゃない?
680 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 19:06:07.56 ID:wQAi5nmu.net] スレが異なるかもしれんけど、SQLの結果を分割して取れなかったっけ?
681 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 23:52:56.59 ID:fl19i0BJ.net] SQLのページングやね
682 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 03:55:03.13 ID:v2140bTt.net] すいませんC#を始めてみようと思うんですが 基礎からしっかり学ぶC#の教科書か独習C# 新版どっち買うか迷ってます 全く0からの学習の場合どちらが適してると思いますか?又これよりいい本があれば是非教えてほしいです よろしくお願い致します。
683 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 03:57:43.51 ID:ZeDJ2vHp.net] 他の言語を少しでも知ってたら独習c#やね
684 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 04:16:44.52 ID:v2140bTt.net] >>661 ありがとうございます スッキリわかるjava入門と苦しんで覚えるC言語を読んだことがある程度です。ロベールのCきつくてクラスのとこ詰んだ状態です 少し知ってたら"に当てはまりそうですか?後C#独習って山田って人が書いた新版とハーバートって人が書いたやつの2つありますが どちらも一緒ですかね、
685 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 04:21:46.90 ID:ZeDJ2vHp.net] >>662 JavaとCに理解あれば余裕ですよ ハーバートの方が評価高いけど古いです c#は進化が目まぐるしく2年経つと大きく変わるので新版をオススメします
686 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 06:18:13.84 ID:v2140bTt.net] >>663 どっちも薄い入門書なので理解があるかはちょっと自信ないですが……大丈夫かなぁ C#は比較的新しい言語みたいですがそんなに内容に違いあるんですか 分かりました。新しい方取り敢えず買ってみます。ありがとうございます。
687 名前:デフォルトの名無しさん [2018/09/20(木) 07:16:44.73 ID:lp8Y5Sjf.net] >>664 独習を進める。新しい技は使われていないが、これだけ基礎を抑えた本は少ない。逆に独習にあるような基礎を抜かして最新技術だけ学ぶと高確率でコピペプログラマーになる。
688 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 08:28:38.09 ID:OZxd0eW0.net] 1. Ruby, Python, JavaScript などの動的言語 2. Java, Kotlin, C# などの静的言語 3. C/C++ などのポインタのある言語 この順番で、勉強する。 例えれば、123 は、小中高大学の順番 君は小学生だから「たのしいRuby 第5版、2016」始めた方がよい。 まず動的言語で、プログラミング・オブジェクト指向を、かなり固めた方がよい レベル1から、10, 20, 30と進める人は、考え方を自分のものにしていってる。 30から勉強を始めても、進歩しない。 だから、レベル20に落とす。 それでも難しかったら、10に落とす つまり、伸びる人は、自分のレベルを知っているから、それに勉強のレベルを合わせる。 逆に伸びない人は、自分のレベルに関係なく、C++ などにこだわる 自分を馬鹿だと認めた人の方が、プライド
689 名前:が低いから、 低いレベルから勉強するから、結局は伸びる! 一番ダメな人は、プライド・理想が高くて、方向転換せず、現実的に成果がない人! この手の人は、どこへ行っても嫌われる。 口では大きい事を言うけど、一定期間で、成果が出せない人 こだわりとかじゃなくて、勉強とは上達する道筋を探すもの! C++ 一つの勉強時間よりも、動的言語3つを軽くこなせる! しかも理解力が飛躍的に上がる これが上達する道筋。勉強のコツ [] [ここ壊れてます]
690 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 09:12:10.06 ID:4jxtU7uW.net] 入門ならideががっつりコード補完してくれる静的言語の方がよくない?
691 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 09:20:26.88 ID:5eDdLMhs.net] >>666 は書籍の宣伝のために開発されたAIボットだから相手にしちゃダメ
692 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 09:21:01.85 ID:OZxd0eW0.net] C# は、共変性・反変性とか、概念が難しい まだ、Ruby のダックタイピングとか、オープンクラスの方がマシ
693 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 09:30:56.78 ID:SE3y3kP3.net] ここにもRubyキチガイが
694 名前:デフォルトの名無しさん [2018/09/20(木) 09:36:06.18 ID:lp8Y5Sjf.net] >>666 C#もポインタ使えるよ
695 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 09:41:50.01 ID:kFoauySG.net] ガイジに触るなよお前素人か
696 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 09:51:05.51 ID:fnf4DFpj.net] たのしいRubyはもう古いし楽しくない パーフェクトRubyのほうがマシ
697 名前:デフォルトの名無しさん [2018/09/20(木) 12:27:04.89 ID:lp8Y5Sjf.net] >>672 すんません
698 名前:デフォルトの名無しさん [2018/09/20(木) 15:07:08.67 ID:7FqSQ4ZO.net] 次世代言語スレから追い出されてこんなところで自演してたのかアンチ君 Pythonのステマを封じられたぐらいで発狂しすぎだろ
699 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 16:29:05.65 ID:qiFS9yA6.net] そのスレ見てないからよくわからんけど他のスレにまできて粘着してるのかよ w ごちゃんこええ
700 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 16:54:21.75 ID:D2y+HKaB.net] >>660 C#に入門するだけなら高い本を買わなくてもWeb上の入門記事で十分。 (本には本でどこでも読めるメリットはあるけど、今時のプログラミングの本は だいたい分厚くてどこでも読みたいサイズじゃない) プログラミングに入門する言語としてC#が最適かどうかは微妙。 C#は上級者にはとっつきやすいよく出来た言語だけど、何せ覚えることが多過ぎる
701 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 17:53:22.89 ID:KIaLDywn.net] 代案ださんと
702 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 19:03:15.03 ID:fnf4DFpj.net] 図書館でc#の本を借りてこればいい で良さそうなのがあったら本屋で買う
703 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 19:26:38.71 ID:CgrjUHeB.net] 初めてのC#でいいだろ
704 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 19:28:26.04 ID:iJVr7ybn.net] ハーバート・シルト氏は独習C++でも名高い、これを超える書籍はまだ生まれていない
705 名前:デフォルトの名無しさん [2018/09/20(木) 19:34:07.37 ID:DBWB48iV.net] >>681 でもそれ読んだ結果のおまえな訳やろ? 信憑性ないわー
706 名前:デフォルトの名無しさん [2018/09/20(木) 20:26:13.94 ID:rVGxs5dI.net] 独習読むなら3版だよな!
707 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 20:31:13.21 ID:WCWCO/OJ.net] C#でDBプログラミングを勉強するのにおススメの資料を教えて下さい。 接続/切断/クエリ送信などの処理をする際に、鉄板といえる手続きがどんなものなのか分かりません。
708 名前:デフォルトの名無しさん [2018/09/20(木) 20:35:41.42 ID:WlS4D6o/.net] >>684 https://docs.microsoft.com/ja-jp/ef/core/index
709 名前:デフォルトの名無しさん [2018/09/20(木) 21:31:37.32 ID:IHzBiPD0.net] C#でDB扱うならネットで検索した方が早い
710 名前:デフォルトの名無しさん [2018/09/20(木) 21:35:22.37 ID:DBWB48iV.net] 嘘つくな絶対普通にDBつこた方が速いわ
711 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 21:37:16.90 ID:gGegNzBj.net] >>687 おまえは何を言っているんだ
712 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 21:38:48.49 ID:h4Dr8zIJ.net] ワロタ
713 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 21:52:09.03 ID:xtibJYVp.net] efはsql出来ない人が使うものってことですか?
714 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 22:04:35.37 ID:1gZefLOg.net] クラウドのdbにしてもgoogle関連の超速dbには勝てないんだよなぁ
715 名前:デフォルトの名無しさん [2018/09/20(木) 22:07:31.56 ID:8NN5YAN4.net] >>684 書籍でいうとまとめて書いてあるのは 10年前のこれくらいしかないが https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-MS-ADO-NET2-0-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E5%85%AC%E5%BC%8F%E8%A7%A3%E8%AA%AC%E6%9B%B8/dp/4891005491 詳しすぎるので「接続/切断/クエリ送信」くらいなら ネット検索で十分(基本変わってないので) 使えるならDapper使うのがおすすめ Entity Frameworkはもうちょっと理解が進んでからかな
716 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 23:46:48.16 ID:BBvoO4H7.net] >>690 efはsql知っている人が楽するためのものなので、 sqlやRDBを知らないと訳わからんと思う
717 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 01:51:23.59 ID:e4o674sK.net] ef知ったらもうsql書きたくなくなるぞ
718 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 05:22:27.48 ID:IsynsslI.net] そしてEFが発行するSQLみて手書きしたくなる
719 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 05:49:36.03 ID:ibfXzeqr.net] 速度的にはEFもSQLセルフ発行も同じ? SQLだと複雑な抽出も出来るし一長一短け?
720 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 07:30:51.31 ID:mrJQQAUt.net] 一長一短 efのSQLが嫌ならそこだけ直接発行にもできるから使い分けられる efの生産性はぱねぇけどね
721 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 13:30:57.74 ID:IsynsslI.net] SQLはサーバ側のオプティマイズがあるから、単純に発行した内容だけでは比べられんが 今のところまだEFよりちゃんとSQLできる人間が書いた方がマシなSQLになる印象 だからって、速度的には全て自分でSQL書けって言うほどひどくはない 簡単な選択程度なら誤差の範囲 普通はEF任せで、問題のあるとこだけ自分でSQLチューニングすれば良い
722 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 18:05:43.62 ID:xQShnEjp.net] EFはオブジェクト指向というかリポジトリパターンを前提にした設計なんだよな ドメイン側をキッチリ設計して複雑なSQLはそもそも必要ないってとこまで持っていけないとうまくハマらない
723 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 20:36:02.24 ID:ibfXzeqr.net] >>699 理解した noSQLみたいな設計が必要なのか
724 名前:デフォルトの名無しさん [2018/09/21(金) 20:46:33.71 ID:fCjKI+bL.net] すみません質問なんですが WPFってプログラム部分はC#で GUI部分がXAMLということらしいですが ということは アプリとしてC#でできることはWPFでも当然できて GUIはC#のフォームアプリより更に柔軟に凝ったことができる という認識でよいでしょうか? C#ではできてもWPFでは難しいってことはありますか? 漠然とした質問ですみません
725 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 20:56:54.12 ID:d21LRhSC.net] >>701 WindowsFormとWPFの比較なら例えばWPFにはNumericUpDownコントロールがないとか とりあえず「wpf windows フォーム 違い」で検索してみては もしくは具体的にやりたいことがあってどっちにしようかという話なら、やりたいことを書いて質問してもらうほうが早い
726 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 21:01:41.42 ID:YWBdXOYh.net] >>701 MSですら使ってないしもうとっくの昔にオワコンしてるから今さらやる必要ない あとクッソ重い
727 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 21:18:14.63 ID:2cEyH6cz.net] 俺は一つのプログラム内でのモジュールの使い回しは無駄だと確信した guiなんてアプリごと作り捨てろ gui以外を使いまわすなら検討の余地はある
728 名前:デフォルトの名無しさん [2018/09/21(金) 21:30:13.81 ID:MqKbhYRD.net] その前におまえが初心者やと確信してほしかったわ ええんやけどね別に
729 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 21:57:18.69 ID:qgyq16h9.net] >>701 WPFの基本の部分はc++あたりで作ったDLL
730 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 22:19:46.65 ID:buJTAf7s.net] >>703 嘘は良くない
731 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 22:22:15.09 ID:Q76cyRJI.net] クラス内の static メンバ変数の名称と値をすべて取得する方法はありますか? public な変数ならリフレクションを使うと取れるのだけど、 クラスの中から実行するのでもよいので private や protected な変数もやってみたい。 ただ気になっただけなので、理由は問わないでください。
732 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 22:40:23.53 ID:d21LRhSC.net] >>708 https://dobon.net/vb/dotnet/programing/typegetmembers.html 試してないけど、ここの改変で出来ない?
733 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 23:54:35.98 ID:OrlkLn9C.net] >>707 事実なんだよなあ 2012年の.NET4.5リリースを最後にほとんど機能追加されてないんだぞ MS自身新規プロダクトには全く使ってなくて完全にレガシー扱い
734 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:04:18.82 ID:RA1YahyE.net] 2年ぐらい前だったと思うけど、WPFに事実上の死亡宣告が出たってちょっと話題になったことがあったね もっとも5年前の時点ですでにこんな記事が書かれてる https://www.infoq.com/jp/articles/Win8-LOB-Options
735 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:04:20.13 ID:VyQ6q8Hr.net] >>710 あれ、使ってないんじゃなかったのかい?
736 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:11:06.31 ID:/LVptLz+.net] ただ単に客からの発注が無いだけであって 自作・社内ツールではかなり役に立つよ
737 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:11:11.20 ID:ZjQBvuSg.net] >>710 > 2012年の.NET4.5リリースを最後にほとんど機能追加されてないんだぞ Formsもどっこいか、むしろ少ない位だろ
738 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:18:36.91 ID:RA1YahyE.net] >>714 それどういうネトウヨ脳?w そういう敵味方二元論、頭悪いよ
739 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:22:45.51 ID:lvi4DOp5.net] WPF死んでUWPも上手くいってないけど次の手がうまく打ててない 昔はCEOが技術を重視してトップダウンでいろんなものが決まったけど今は上が無能で windowsに興味がないから放置されてる win10モバイルが死んだ今モバイル向けAPIの開発も滞るだろうしどこにむかってんのかね
740 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:28:42.18 ID:QAw1ia2N.net] >>709 ありがとう。 NonPublic に気がついてなかった。あとで試してみます。
741 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:28:50.97 ID:Ov13Y0lw.net] >>716 の言うとおり WPFは死んでるけど UWP次世代クライアントとして代替となつまていない win10対応では諦めてWPFで作るか、次のタイミング待ちな状況がこの数年続いてる
742 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:29:25.07 ID:Ov13Y0lw.net] 訂正:代替となっていない
743 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:39:15.23 ID:cNCOPpWD.net] デスクトップアプリは衰退する一方だからMSにとって投資する価値はない この期に及んでいまだにWinデスクトップアプリに固執してるような連中が、 自分達が最近のMSに軽視されているからといってMacやChromebookに乗り換えるだろうか? どう考えてもあり得ないだろ 唯一競合と言えるのはElectronくらいだけど、そこはMSの手ががっつり入って既にWindowsとの相性は完璧だ 今後の新規投資はAzureに全力投球だよ
744 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:42:43.93 ID:lvi4DOp5.net] Azureが全盛になったとしてもMSの技術者はどんどんやめていくだろう 優秀で新しい技術にかかわりたい人は我先にやめていく
745 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:44:05.19 ID:9fGOEyZF.net] またアンチMSの希望的観測が始まった
746 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:46:02.51 ID:QAw1ia2N.net] >>709 いま試してみたら普通に取れた。ありがとう。 protected でもクラスの外から参照できたんだな。。
747 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:47:36.81 ID:lvi4DOp5.net] 世界中の優秀な技術者が水道公社やガス会社に勤めたいとは思わないだろう そこがビルゲイツの始めた双六の上がりだったらまあ本当に魅力のない話だ 最低最悪のゴール
748 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:48:29.31 ID:afLe3oes.net] 新しい金の搾取方法が必要なんだよね windows自体は95でほとんど完成していたな
749 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:50:37.03 ID:RA1YahyE.net] アンチっていうより「俺スゲー」の一種だねw 俺スゲー⇒俺がやってることスゲー 「俺スゲー」は劣等感の裏返しなのでそれは必ず何かに対する否定を伴う まあ、こういう人に関しては川俣大先生の言う通り。 付け加えるとこれ、2chに多い「ネットde真実」の同類だと思って間違いないと思う
750 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 00:59:07.10 ID:lvi4DOp5.net] ビルゲイツが語っていた未来がAzureというインフラ屋(水道屋、ガス屋、電力会社)を作るという話なら 多くの夢を持った技術者は集まらなかった インフラ屋は最低限の教育水準があって賃金の安い国に移るだけだ 未来も最新技術も糞もない
751 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 01:00:21.74 ID:mc091pM3.net] >>724 MSが土管屋になろうとしているのかというと明らかにNoだろうけど、 Amazon、MS、Googleのクラウドベンダートップ3の中ではMSが最も「単なる土管屋」に近いのは確かだね AzureはWindowsサーバーのホスティングサービス以上の何者でもなく、それ以外の部分ははっきり言ってゴミ&クソ&カスである
752 名前:デフォルトの名無しさん [2018/09/22(土) 01:02:09.49 ID:gpkx9mPg.net] ゲイツはいま医療技術に夢中だ。 おまえらも人の役に立つことやれよな!
753 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 01:03:01.96 ID:Ov13Y0lw.net] おまえもな
754 名前:デフォルトの名無しさん [2018/09/22(土) 02:22:07.77 ID:MAFBmZ+e.net] ヒカキンの年収が10億超え!?明石家さんま・坂上忍も驚愕の総資産とは?? https://logtube.jp/variety/28439 HIKAKIN(ヒカキン)の年収が14億円!?トップYouTuberになるまでの道のりは? https://youtuberhyouron.com/hikakinnensyu/ なぜか観てしまう!!サバイバル系youtuberまとめ tokyohitori.hatenablog.com/entry/2016/10/01/102830 あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開! naototube.com/2017/08/14/for-new-youtubers/ 27歳で年収8億円 女性ユーチュー
755 名前:oー「リリー・シン」の生き方 https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all 1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10 https://gigazine.net/news/20151016-highest-paid-youtuber-2015/ おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子 https://www.businessinsider.jp/post-108355 彼女はいかにして750万人のファンがいるYouTubeスターとなったのか? https://www.businessinsider.jp/post-242 1億円稼ぐ9歳のYouTuberがすごすぎる……アメリカで話題のEvanTubeHD https://weekly.ascii.jp/elem/000/000/305/305548/ 専業YouTuberがYouTubeでの稼ぎ方具体的に教えます。ネタ切れしない方法は〇〇するだけ。 https://www.youtube.com/watch?v=Co9a9fHfReo YouTubeで稼げるジャンルは〇〇動画です。YouTube講座 https://www.youtube.com/watch?v=_Nps8xb5czQ [] [ここ壊れてます]
756 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 15:23:45.12 ID:VPVsRefo.net] なんでMSは莫大なリソースあるのにまともなwindows用のデスクトップMVCフレームワーク作らんの?
757 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 15:33:12.40 ID:BD/9qPVn.net] 金にならないから 今のMSの金蔓はOfficeとAzure
758 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 16:52:49.31 ID:KZSla2NN.net] >>732 MVVMならあるでしょ
759 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 18:09:02.28 ID:ZTe9HnQE.net] tabControlのページをクリック以外の方法で切り替えることはできますか? 変数を立ててswitch文でプロパティ替えればできると思ってたけど tabpageプロパティは読み取り専用で設定できないのね
760 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 18:12:36.64 ID:sUJsyE8y.net] WinFormの話ならSelectedIndexで変更する
761 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 18:42:13.59 ID:ZTe9HnQE.net] >>736 できました! プロパティウインドに表示されないプロパティもあるんですね インテリセンスの候補には出てくるけど見落としてました ありがとうございました
762 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 18:43:46.71 ID:Anxq9bjC.net] >>732 MVCとかしゃらくせえんだよ。 全部フォームモジュールに書けばいいの。
763 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 19:01:14.84 ID:kFAOP0FY.net] MVCでググって出てくる https://nekogata.hatenablog.com/entry/2013/11/11/075234 https://qiita.com/tshinsay/items/5b1724baf32b8b5113c2 この辺読んでもMVCの利点も必要性もさっぱり分からん、というのが正直な感想
764 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 19:08:01.99 ID:yVyqSbVQ.net] >>739 君の作ったAPに undo とredo の機能を追加してはくれまいか? 多分それが、Cの設計のきっかけになるかと
765 名前:デフォルトの名無しさん [2018/09/22(土) 19:29:21.32 ID:T1K71jdo.net] ならんわw
766 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 19:35:14.05 ID:7nPJqZuh.net] なるわw
767 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 19:42:15.62 ID:kFAOP0FY.net] undo、redoって普通にモデルの仕事でしょうw モデルのクラスのコードをいじれない、とかの事情で別のクラスを使って機能を拡張するとしても、 それをコントローラと呼ぶのは違うんじゃないの?
768 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 19:49:11.04 ID:dBgPOLrx.net] >>739 WebMVCじゃない本来のMVCにおけるCって、昔のSmallTalkのGUIフレームワークではWndProcみたいなことをする役割を担う層が必要で、それをコントローラと呼んでただけ 特定のフレームワークの技術的な制約のために必要だったもので、イベントハンドラでイベントを直接メソッドにディスパッチできるC#においては全く必要ないよ
769 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 20:08:0
] [ここ壊れてます]
770 名前:9.03 ID:/LVptLz+.net mailto: class MyForm : IMyView { private ISomeService ss; public MyForm(ISomeService ss) { this.ss = ss; } private async void OnXxx(...) { var p = GetSsParam(); var r = await ss.ExecAsync(p); HandleSsResult(r); } もしかしてssのことをコントローラーと言いたいのではないか? [] [ここ壊れてます]
771 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 20:27:21.25 ID:A7i/kFyi.net] >>739 mvcわからんくてもビューとロジックは分離しないとまずいってのはわかるでしょ そのやり方の一つがmvc
772 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 21:53:59.90 ID:BD/9qPVn.net] ジャパニーズドカタはテスト書かないから分からないよw
773 名前:デフォルトの名無しさん [2018/09/22(土) 22:03:55.13 ID:T1K71jdo.net] 初心者がゆうなw
774 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 22:42:44.85 ID:Dlzi4J2e.net] つーか、画面は作り捨て上等 一昔前に流行った画面構成なんて臭くって使えない
775 名前:デフォルトの名無しさん [2018/09/22(土) 22:47:11.36 ID:RLMh0rIO.net] テストとかまじ手間とるだけの時間稼ぎでしかない
776 名前:デフォルトの名無しさん [2018/09/23(日) 00:24:52.61 ID:cRG95Xcq.net] 歴史あるmfcのウンコドキュメントビューアーキテクチャと なにが違うの?
777 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 00:34:17.81 ID:y+eZw7HP.net] そもそもこれでもかってぐらいこびりついてるのになぜ切り離そうとするのか? 画面アプリとサーバー側で分けて画面アプリは作り直せよ
778 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 00:39:38.45 ID:sUwtRH+p.net] 初心者なんだから難しいこと考えるなよバカどもw
779 名前:デフォルトの名無しさん [2018/09/23(日) 00:47:36.99 ID:cRG95Xcq.net] 一時期strutsとかいうインチキくさいフレームワークがほんのりはやったが いまはもう見る影もない
780 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 01:21:59.82 ID:TQN/0jmK.net] どこの記事だか忘れたけどMVCに関して昔読んだので一つだけ説得力を感じたのは、 古いタイプのインストーラーみたいにウィザード形式のUIの画面遷移のためにはCが必要って内容 そこは確かに一理あると思った ウィザード形式なんてそうそうあるUIとも思えんが
781 名前:デフォルトの名無しさん [2018/09/23(日) 01:33:34.95 ID:0vXeudiz.net] いらんわw
782 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 02:07:34.36 ID:jzOYIT9S.net] MVVMは慣れてきたらものすごく開発が楽だけどな
783 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 02:35:37.21 ID:taBrfSf/.net] >>757 それも「行きはよいよい帰りは怖い」だけどね 書いてる時はいいんだよ。 問題は後で見た時に、あるいは他人のコード見た時に 何やってるのか理解するのに無茶苦茶時間が掛かること 支持する奴の気がしれん
784 名前:デフォルトの名無しさん [2018/09/23(日) 02:46:47.55 ID:Dc9ARAgR.net] MVCは近代的な開発環境を使っていれば自然と守られるから学習する必要ないよ CにMを書いちゃうとか変なことをしない限り大丈夫だよ 対するMVVMは難しいね、かなり練習しないとただ3層に分けただけの偽MVVMになってしまう
785 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 04:46:55.14 ID:cjexH34A.net] >>755 「司令」とかはデフォだよ
786 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 07:17:03.92 ID:J2MRrpUo.net] C#とあわせてDB勉強するならどれがいいですか? やっぱり同じMS製のSQL Serverですか?
787 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 08:01:38.54 ID:dcxIZpfd.net] >>761 どうせ Visual Studio 使うんだろ? ならSQL Server LocalDB使うのがインストールも簡単だしVisual Studioから基本的な操作ができるから楽だよ
788 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 08:45:18.24 ID:9e4CRvDY.net] >>758 実際にはめちゃくちゃわかりやすいけどな
789 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 09:48:29.79 ID:y+eZw7HP.net] >>763
790 名前:ィ前が資料に嘘書くから無理 [] [ここ壊れてます]
791 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 12:43:01.55 ID:/KN8+x6x.net] >>758 今時mvvmアンチとか新しいな 対案は?
792 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 12:47:19.91 ID:pXi93aAm.net] フォームベタ書きが一番
793 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 13:03:56.91 ID:w4aHsEmW.net] MVVM否定する奴とかネタだよな
794 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 13:17:56.73 ID:4UDG5/fM.net] フォームクラスに全てを書く。これ最強。
795 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:07:53.59 ID:jYUPCkq4.net] mvvmは状態がわからないと言うか再現できないことが多くて 従来型のmvvmはwebのあたりでは捨てられ始めてる
796 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:09:21.60 ID:y+eZw7HP.net] >>767 逆に明確なメリットが無いよね?
797 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:10:05.59 ID:MTMF1/K8.net] DIコンテナ使い出すとwpf+mvvmから抜け出せなくなるな もしかするとDIコンテナ知らずにmvvm批判しているんだろうか?
798 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:18:11.03 ID:9e4CRvDY.net] >>769 再現ってVMのプロパティセットするだけだが?
799 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:20:21.01 ID:jYUPCkq4.net] React & Fluxを使いだすとmvvmはもう戻れないと言ってるやつと同じレベルだな
800 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:21:04.98 ID:jYUPCkq4.net] >>772 そこがお前の限界
801 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:21:15.43 ID:9e4CRvDY.net] >>771 DIは関係なくね? DIは特定のアプリケーションフレームワークに依存したものじゃない コンソールでもFormsでも使えるよ
802 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:21:33.58 ID:9e4CRvDY.net] >>774 ブーメラン
803 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:23:04.60 ID:jYUPCkq4.net] アジャイルを知ったらもう他にはもどれない TDDじゃない開発はIT土方だ などとくだらないことをいうバカ信者は死ねばいい
804 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:26:57.57 ID:jYUPCkq4.net] FBは一時期mvvmに傾倒してたけど大規模になってくるとなぜだか思ったように動かないことが多くなって mvvm自体に弱点があることに気付いた そしてmvvmを捨てることにした 中小規模ならmvvmはまだ使えるが大規模になると使えない 状態を追いきれない
805 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:31:36.73 ID:jYUPCkq4.net] FBによるとmvvmでは大規模になると値が変わった場合どこでどうしたからその値が変わったのか説明できない 元をたどれないことが多くてバグをつぶしたと思ったら同じバグがまた出ることに悩まされていた 簡単にどこででも状態をいじれることが間違っていたと判断した
806 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 14:38:33.91 ID:q1Vd+N6m.net] 真っ赤なスレ違い
807 名前:デフォルトの名無しさん [2018/09/23(日) 15:30:30.23 ID:8zSZzIZI.net] MVVMってV-VM-Mなの?
808 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 16:33:57.42 ID:qwzkV0Ze.net] MVCを知りたいという初心者に MVVMの有能さを洗脳するスレなのか
809 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 16:45:09.37 ID:sUwtRH+p.net] デザパタ語りたがり初心者が湧いてるのか ママにでも教えてやれ
810 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 16:53:04.68 ID:9e4CRvDY.net] ViewをViewModelの影に徹させて管理すべき状態数を明確化、最小化しようってアイデアがMVVMの基本 なのでその明確化、最小化された状態数すら追いきれないというならMVVMをやめた途端に余計に追いきれなくなるだけだ
811 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 17:03:54.35 ID:jYUPCkq4.net] それがお前の限界だよ
812 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 17:45:23.67 ID:iWYV1BwG.net] ID:9e4CRvDY ID:jYUPCkq4 恥ずかしいやつら
813 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 18:12:28.13 ID:rcV006B3.net] >>761 MSに生涯の忠誠を誓うんならSQL Serverでいいけど、そうでないならPostgresかMySQLがいいよ SQL Serverって癖が強くて性能も低くてVSやWinとの相性を除けば正直ク○
814 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 18:15:05.38 ID:JZ2tjL8B.net] >>786 ガイジを列挙するな
815 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 18:58:36.13 ID:z3WNOmb5.net] >>783 デザパタじゃないからw
816 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 19:02:57.05 ID:qwzkV0Ze.net] 元質問は739じゃ
817 名前:無いのか? [] [ここ壊れてます]
818 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 19:24:28.10 ID:JZ2tjL8B.net] 人間初心者スレとはたまげたな
819 名前:デフォルトの名無しさん [2018/09/23(日) 19:31:52.04 ID:cRG95Xcq.net] いま、SQLiteのテーブルを編集するおもちゃを CLRのwindowsフォームでC#でなく、あえてC++で作って遊んでみてる 書いてることはC#と当然ほぼ同じになる SQLiteをODBC経由でアクセスするだけで DataGridViewで簡単にDBの編集ができることが分かった ただし、MSが提供してるコンポーネントを適切に使用する必要がある DataAdapterでDataSetとって DataSetからDataTableとって、そのDataTableをDataGridViewのDataSourceに設定する ※ どうやらSQLiteでは1つのテーブルのデータセットしかとれない模様 ※ DataSetという意味ではこのDataSetは超無意味 で、DBの種類とか関係なく C#で用意されてるコンポーネント経由でデータがとれるようにしないと 作るのが極端にめんどい なにがいいたいかといえば C#のおもちゃ部品使ってるくせに MSがどうこういってることが的外れ C#とMSのコンポーネント使ってる時点で、 どっぷりMSに浸かってる
820 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 19:46:25.43 ID:qwzkV0Ze.net] >>791 平伏せよ
821 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 20:18:59.85 ID:kzypxn8Z.net] >>784 正解 >>785 馬鹿乙
822 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 20:29:06.67 ID:eq3kKmf9.net] MVVMを現実のものに例えるとどうなりますか?
823 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 20:54:23.90 ID:z3WNOmb5.net] ないね 何でもそうだけどあるがまま理解するのが結局早い たとえ話は理解の助けにならん あえて言えばVMがMをVの都合に合わせる装置として機能する、って考えればトランスとか でもトランスは一方通行だし、そもそもトランスが何か分かる奴も少ないよなw
824 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 20:55:30.10 ID:z3WNOmb5.net] でも理解しなくていいと思うw 全然普及してないし、私見だけどMVVMなんて複雑な問題をより複雑な別の問題に置き換えるだけw
825 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 21:22:07.50 ID:H5quPExp.net] 話し変わるけどちょっと聞きたいのだが コミット前に全ソースコードをバッチ処理でフォーマットしたいのだが良いツール知らん? Visual Studioでフォーマットできるけど、修正したいファイルを1こ1こ開いてフォーマットを実行しなきゃならんから、ちょっとしんどい Visual Studioに依存せずにコマンドラインから使えることが必須条件
826 名前:デフォルトの名無しさん [2018/09/23(日) 21:40:31.39 ID:cRG95Xcq.net] MVVMとかぜんぜん知らんが DBMSでいえば、 ModelがテーブルでViewModelがビューテーブル程度のしょうもないもんにしか パッと見た感じで、見えんかったわ で、Viewがビューテーブルをひたすら参照
827 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 21:47:30.18 ID:qG17FGT6.net] >>799 全然あってなくて困るレベル
828 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 21:52:07.09 ID:qG17FGT6.net] >>794 それがお前の限界だ FBがMVCやMVVM捨てた理由とその後どうしたかを調べてから言え
829 名前:デフォルトの名無しさん [2018/09/23(日) 21:56:27.70 ID:cRG95Xcq.net] そうかそれは残念だ ViewModelのbindなんかすでに決まった手続きのパラメータマッピングしてるだけのように しかみえないしな この部分はDBMSでいえばプリペアドステートメントに パラメータをバインドする操作と似ているとは思った
830 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 21:59:51.53 ID:gaT7ABZW.net] >>801 今ここでおしえて
831 名前:デフォルトの名無しさん [2018/09/23(日) 22:08:25.29 ID:cRG95Xcq.net] MVC View ←(Update)← Controller ←(Notify)← Model View →(User action)→ Controller →(Update)→ Model カサカサ 三 三 /\彡⌒ ミ/\ 三 三 /\(´・ω・`)
832 名前:/\ View ← ViewModel ←(Notify)← Model View →(Bind)→ ViewModel →(Update)→ Model ViewModel から View に一切作用しようとしない ViewはViewModelにインターフェースの提供のみ 大雑把には ModelのデータをViewが参照できるデータになるように ViewModelがマッピングや加工して取ったり設定したりするインターフェースを Viewに提供してるだけのようにしかオレには見えんかったわ マジで [] [ここ壊れてます]
833 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 22:15:42.60 ID:bzyPZ4ls.net] >>798 整形できるツールはVisualstudioかVSCodeくらいしかないんだろう? UWSCのような自動化ツール使うこと考えるのが一番早いんじゃないの これ以上はVisualStudioかVSCodeのスレで聞いた方がいいかと
834 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 22:17:55.81 ID:H5quPExp.net] >>805 レスありがとう でも自己解決したからもういいや
835 名前:デフォルトの名無しさん [2018/09/23(日) 22:36:00.38 ID:cRG95Xcq.net] CLRのオブジェクトにPropertyGridというのがあるが いま丁度それでDBMSの値を更新するおもちゃ作ろうとしてる なんとなくコレに似てるのかなあとは思う 設定取得のプロパティーインターフェースをもったインスタンスを渡すだけで そのインスタンスのインターフェース使って プロパティー設定の画面インターフェースがPropertyGridに勝手にできあがってしまう すげえと思ったが、なんとなくうさんくさい どういう仕組みになってるのかはぜんぜん分からないが そのデータの設定取得の仕方は実装する側でなんとでもできるのは分かる
836 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 23:00:05.22 ID:5OkVsLkb.net] >>806 あのねえ どうやって解決したか書くのが礼儀ってもんだろ
837 名前:デフォルトの名無しさん [2018/09/23(日) 23:21:53.73 ID:cRG95Xcq.net] きっとなちょろっと試しに検索したら↓コレが一発であったとしか考えられない https://github.com/dotnet/codeformatter ホントな質問するヤツも回答するヤツも無能揃いといっていい 回答するヤツもググレカスとすらいわないからな 回答するヤツも最初から回答できるレベルじゃない むしろ回答しないほうがマシなレベルといっていい
838 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 00:01:35.94 ID:OxVBaH7R.net] >>809 ん〜それも検討したけどVS/VSCodeの手動フォーマッティングと設定共有できないっぽいから見送った >>808 とくにひねりもなくOmniSharpとビルドスクリプトを使うことにしたよ
839 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 09:28:32.62 ID:yFnU/yKn.net] リファクタリングってやってる? いつも気付くと似たような処理や非効率な処理が増えてて辛い…… 凄腕のマなら最初から効率的なコード書けるんだろうけどさ……
840 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 09:35:05.11 ID:/23hZmm4.net] 動いているコードに手をつけるリファクタリングは最悪。
841 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 09:38:03.20 ID:yFnU/yKn.net] でもでもっ! ちょっと弄るだけで処理が効率よくなり、コードがリーダブルになり、exe(dll)のサイズも小さくなりますよ? テスト前ならいいよね?
842 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 09:39:36.03 ID:sPlVwsRd.net] >>811 世界的に有名な凄腕ですら最初から完璧は無理だからリファクタリングしろと口を揃えて言っている 程度が低いプログラマほどリファクタリングをしない
843 名前:デフォルトの名無しさん [2018/09/24(月) 09:43:14.50 ID:UOx+eYoH.net] >>813 だめや、くだらん時間つこてないでテストせえ
844 名前:デフォルトの名無しさん [2018/09/24(月) 09:46:42.21 ID:ySiXDenR.net] >>814 実は有名な凄腕はリファクタリングなんかしていない。 あとから出てくる有能なやつをつぶす目的でリファクタリングなるものを生み出した。
845 名前:デフォルトの名無しさん [2018/09/24(月) 09:48:31.14 ID:osKypOlL.net] >>811 私は時々やりますけどね 新しいネタ仕入れたときとか試してみたり 普段あまり先を考えずに逐
846 名前:次的な処理を思いつきで描くので 冗長になりがちだし 数年自分で使ってみると不必要な機能や処理が見えてきて そいつをそぎ落としたりする [] [ここ壊れてます]
847 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 09:55:37.87 ID:OxVBaH7R.net] 業務系はメンテを他社がやることが多い なので競争相手の負担になるようにリファクタリングしていない汚いコードを納品したほうが資本主義的に正しい
848 名前:デフォルトの名無しさん [2018/09/24(月) 09:59:35.91 ID:KDQ780rJ.net] マ板でやれ
849 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 10:01:45.14 ID:KHvr4x1U.net] クローンコードは……無能の証…… 細かく……機能毎に……クラス化……メソッド化せよ…… 有能なマなら……30行程度までの……小さなメソッドが……いくつもできる…… 当然……役割で機能クラス化し……マジックナンバーも使わない…… 無能は……1クラスにメソッドを詰め込み……メソッドも100行を超えることがある…… クローンコードだらけで……おまけにマジックナンバーがあり……保守性が……非常に悪い……
850 名前:デフォルトの名無しさん [2018/09/24(月) 10:01:45.99 ID:osKypOlL.net] ここは初心者スレ
851 名前:デフォルトの名無しさん [2018/09/24(月) 10:03:47.23 ID:ySiXDenR.net] 初心者相手だからこそ善導せねばならない。 リファクタリングとやらにうつつを抜かす暇があるなら目前のコードを正しく読む力を会得するべきである。
852 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 10:04:15.61 ID:KHvr4x1U.net] >>818 競合他社「ぷげらっwwwあの会社のマはこんなコードしか書けねぇ無能っすよ?www」 お客人「マジかよwww次からお前んとこにするわwww」
853 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 10:09:35.45 ID:RUArc1Op.net] そもそも何を目的としてリファクタリングなんてするわけ? 次の開発は来ないかも知れないじゃない? また、次の開発を目的とするなら仕様がわかってから手を出せばいい 全てにおいてトンチンカン
854 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 10:20:00.26 ID:rB4zdy0A.net] 伸びてるときはガイジしかいないな
855 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 10:21:07.52 ID:iTzVBLdT.net] >>820 普通この辺りってネットで調べたら一番に出てくるのに、なんで糞コード量産されちゃうんだろう・・・
856 名前:デフォルトの名無しさん [2018/09/24(月) 10:26:35.15 ID:SrcYdwzB.net] >>826 調べないから。 基本他人のコードをコピーして今回の要件を満たすように 書き換える仕事。意味がわからないところとか 通らないロジックがあっても気にしない
857 名前:デフォルトの名無しさん [2018/09/24(月) 10:46:02.74 ID:ySiXDenR.net] >>825 リファクタリングなんての持ちだして初心者を混乱させるガイジが多くて困るよ
858 名前:デフォルトの名無しさん [2018/09/24(月) 10:49:53.69 ID:TmR9qzOH.net] そういや、VSCodeのswitch文の変な整形って何時になったら直るんかねえ?
859 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 11:10:08.31 ID:L/eVK/99.net] else句を多く使うのは三流PG 一流のPGは極力else句を避けるものだ else if なんてのは論外だ returnせよ!
860 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 11:21:43.89 ID:OxVBaH7R.net] >>823 競合他者「難しくメンテ出来ません(´;ω;`)納期間に合いません(´;ω;`)」 お客人「使えねえな。おまえんとこはもう二度と使わん(´;ω;`)」
861 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 11:23:43.58 ID:OxVBaH7R.net] >>824 開発、テスト、デバッグ、仕様変更対応をしやすくするためにやるんだとさ 確かに楽に安く高品質になるんだけど、ビジネス的にはコスト増やして請求も増やすほうが儲かるのにもったいないよね
862 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 11:33:19.66 ID:VSctwqS/.net] 「ガイジ」なんて汚い言葉を平気で使える奴って自分で自分がどんな人間か 語るに落ちてることも気づかないんだろうな
863 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 11:41:30.08 ID:VSctwqS/.net] >>832 こういう思考回
864 名前:Hの人がマ板とかでブラック企業とか人買いとか吠えてるんだろうな。 [] [ここ壊れてます]
865 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 11:42:43.02 ID:A8fPcUdc.net] キミたちc#で何作ってるの? 俺はFormアプリしか作ってない Webアプリはrubyかphpで構築 Formアプリなんかクッソ時代遅れ感あるけど
866 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 11:49:48.03 ID:zTc6LZBq.net] ガイジを連呼する差別主義者は自分が社会の最底辺だと気がついてないんだろうな リアルな社会でもガイジ連呼して白い目でみられればいい
867 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 11:53:59.68 ID:sWz4zxrJ.net] >>811 完成までの間にいつもやってる。 とりあえず適当に動くモノを作ってみる → 自分の担当部分を見直して整理する 最初に動くモノが出来るまでが貰った期間の 1/4 〜 1/3 くらいの時点、あとは時間が許す限り(組み直して遊んでる)。 やってるうちに最初から(自分なりに)組み直しする必要のないコードが書けるようになってく。 でもそのときは自分の技量が上がってるから別のやり方を試したくなるので堂々巡り。 受け入れる側とすればコードのわかりやすさとか以前に試験しろよと思う。 なんでこっちがバグ出ししてやらなきゃならねーんだよ、と。
868 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 13:46:58.45 ID:nocx8ro5.net] >>832 高品質って? 何を基準に? 同じ金使って次の改修が見えてから動いたほうが遥かに品質高くない?
869 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 13:57:10.32 ID:OxVBaH7R.net] >>838 メトリクス計測すればコードの品質は一目瞭然だけどそういうことじゃなくて? 何を言いたいの?
870 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 14:01:02.69 ID:OJN25ACF.net] いくら暇だからってこの流れはひどい
871 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 14:14:52.92 ID:Gw7mXU1y.net] c#スレだぞ
872 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 14:21:56.83 ID:UjLVuG2t.net] 偶然だぞ
873 名前:デフォルトの名無しさん [2018/09/24(月) 14:26:57.52 ID:7nAgeebM.net] 複数の戻り値ほしいとき、タプルを使うべきか、refつけてメソッド内で対応しちゃうか皆さんどうしてます?
874 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 14:28:50.76 ID:zTc6LZBq.net] 今はタプルで前はクラス作ってた
875 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 15:08:38.45 ID:oYzwCf5A.net] >>839 メトリクス計測と売上に相関でもあるの?
876 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 15:30:13.77 ID:DNs+Nta1.net] >>831 世知辛い世の中だな 俺なんてまとまった処理毎にコメントまで入れてんのに やむを得ずダラダラ書くことになる時はリージョンで畳んだりとかもしてるのに
877 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 15:34:39.00 ID:DNs+Nta1.net] >>843 タプルはイミュータブルなのがな・・・ クラス内ならプライベートクラスや無名クラスでやっちゃうかな
878 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 16:27:41.20 ID:EJ4GFkIW.net] イミュータブルのほうが良くない? なんでc#は引数をfinalできないのか不思議なんだけど理由あるの?
879 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 16:52:39.91 ID:5Y6v7jeg.net] >>848 in
880 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 19:10:00.11 ID:p57JLdmZ.net] クリックした点から点まで連続線を引いてダブルクリックで連続線を終える。 これって難しいですか?参考サイトとかありませんか?
881 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 19:21:40.73 ID:sZ9gwywh.net] >>850 ダブルクリックで最後の点+終了なら多分難しくない MouseDownのイベントのe.Locationでコントロール上の座標を変数に格納する 前回の格納された座標があればそこから2点間の直線を描く 画像、印刷(GDI+)編メニュー https://dobon.net/vb/dotnet/graphics/index.html 線を描く https://dobon.net/vb/dotnet/graphics/drawline.html
882 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 20:14:41.97 ID:zTc6LZBq.net] bool 編集モード =false; bool 線を引いてるか =false; Point 前のポイント =new Point(); こういうのを使っていけばいいんじゃないかな クリックしたら 編集モードで線を引いてない(最初の点)なら点を表示 編集モードで線を引いてるなら前のポイントから今のクリック場所まで線を引く ちゃんとやるならListに座標を記録
883 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 20:40:10.70 ID:sZ9gwywh.net] >>850 ヒマだったから書いてみた。ダブルクリックで画像初期化 //新しいWinフォームをDrawlinetestとして作ってForm1.csに以下の内容を差し替え using System.Drawing; using System.Windows.Forms; namespace Drawlinetest { public partial class Form1 : Form { PictureBox pbox = new PictureBox(); Point pt = new Point(-1, -1); public Form1() { InitializeComponent(); pbox.Location = new Point(0, 0); pbox.Size = new Size(500, 500); this.Controls.Add(pbox); this.ClientSize = pbox.Size; pbox.Image = new Bitmap(pbox.Width, pbox.Height); pbox.MouseDown += MD; } private void MD(object sender, MouseEventArgs e) { Point p = e.Location; if (e.Clicks > 1) { pbox.Image = new Bitmap(pbox.Width, pbox.Height); return; }//ダブルクリックで画像リセット int x = pbox.Width - 1, y = pbox.Height - 1; if (pt.X < 0 || pt.X > x || pt.Y < 0 || pt.Y > y) { pt = p; return; } Graphics g = Graphics.FromImage(pbox.Image); g.DrawLine(Pens.Black, pt.X, pt.Y, p.X, p.Y); pbox.Refresh(); g.Dispose(); pt = p; } } }
884 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 20:43:24.90 ID:2M6hZk6X.net] ideoneにはりゃいいのに
885 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 20:57:07.31 ID:E4VB1fuR.net] この程度ならいいんじゃね いちいちidone開くのもかったるいし
886 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 21:01:33.03 ID:VSctwqS/.net] 暇だから書いてみたけど何もおもろないなw public class PolygonalLineEditor { private List<Point> mPoints = new List<Point>(); public Pen Pen { get; set; } public bool Clolsed { get; private set; } public Control TargetControl { get; private set; } public PolygonalLineEditor(Control target) { TargetControl = target; Pen = new Pen(Brushes.Black); TargetControl.Paint += TargetControl_Paint; TargetControl.MouseClick += TargetControl_MouseClick; TargetControl.DoubleClick += TargetControl_DoubleClick; } private void TargetControl_MouseClick(object sender, MouseEventArgs e) { if (Clolsed) return; mPoints.Add(e.Location); TargetControl.Invalidate(); } private void TargetControl_DoubleClick(object sender, EventArgs e) { if (mPoints.Count < 2) return; Clolsed = true; }
887 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 21:02:30.35 ID:VSctwqS/.net] private void TargetControl_Paint(object sender, PaintEventArgs e) { if (mPoints.Count < 2) return; e.Graphics.DrawLines(Pen, mPoints.ToArray()); } } >>854 どうせこの手のコードはイデオンじゃ実行できないしねw
888 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 21:08:01.56 ID:VSctwqS/.net] スレと全然関係ないけど、今ふと思って検索してみたらIDEONEの読みがマジでイデオンだと 勘違いしてる人が結構おって笑ったw
889 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 21:23:12.15 ID:2M6hZk6X.net] シンタックスハイライトとかの問題でいったんだけどまあいいや
890 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 21:39:39.67 ID:zEHGGd29.net] >>858 読み方はしらないが笑われて腹立ったので全方位にミサイルぶちまけてやる。
891 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 21:41:12.17 ID:oYzwCf5A.net] ダッサ ズームもできない
892 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 22:00:47.20 ID:WUo/Kz5h.net] >>849 使ってるVSが古くてinが使えないの・・・orz
893 名前:デフォルトの名無しさん [2018/09/24(月) 22:48:46.86 ID:7nAgeebM.net] >>858 アイディーイーワン?
894 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 22:54:59.15 ID:oYzwCf5A.net] >>858 最後は全員死ぬんやで
895 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 23:06:45.85 ID:2M6hZk6X.net] >>858 IDE+ONEだとわかった上で読んでるに決まってるだろ
896 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 05:23:26.45 ID:FXqod28S.net] まあ>>858 がどんなところを検索して見て言ってるのかよくわからんけど、そう言う事をいちいち指摘して優越感に浸るちっちぇー奴だと言うことはわかった
897 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 06:10:41.82 ID:O9LsAU4v.net] IDEONEてイデオネじゃないの?
898 名前:428 mailto:sage [2018/09/25(火) 06:15:54.53 ID:FB7NCruc.net] イデワンだな
899 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 06:17:26.32 ID:2mkvFBxM.net] 井出ラッキョ
900 名前:デフォルトの名無しさん [2018/09/25(火) 06:47:16.83 ID:qhYBdzAc.net] K-1みたいなもんだな
901 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 12:38:40.86 ID:TdPE3gl/.net] >>858 何そのガンダムの武器みたいな読み方
902 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 17:17:17.11 ID:A3nOLsOi.net] >>852 >>853 >>856 ありがとうございます。明日書いてみます。
903 名前:デフォルトの名無しさん [2018/09/25(火) 19:18:27.96 ID:KdSwzQd3.net] 文字数を正確にカウントしたい場合、文字コードも意識しないとだめでしょうか? 今まで気にしてなかったのですが、どうするのがベストなのでしょうか?
904 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 19:28:47.41 ID:vBc9NGOH.net] 正確な文字数の定義によるのと違いますか? 何が正確な文字数なのかオープンにしたままどうするのがベストって言われても誰も答えられないと思う 「彳亍」とか「プ」とかを1とカウントしたいとか?
905 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 19:40:25.03 ID:3aZELiV7.net] >>873 目的次第 文字のレンダリングに使うのでない限り、多くの場合は普通にLengthを使ったほうがうまくいく
906 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 20:23:35.47 ID:rqJ67nwC.net] >>873 www.atmarkit.co.jp/fdotnet/dotnettips/726countchars/countchars.html
907 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 20:42:56.15 ID:TMsX+vFr.net] 他の言語に比べるとc#スレはいつも人いるな。おかしいな。android開発っつたらjava,kotlinだしiosはswiftだし、サーバーサイドでも.netの存在感そこまである訳じゃないし。 これからwpfやuwpでデスクトップアプリ作ってやろうというやつ多いのか?
908 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 20:47:31.66 ID:TMsX+vFr.net] それとも5chはおっさんが多いからおっさん世代ようはwindows パソコン世代が多くc#学んだ人多いからスレ賑わってるのか? 問題は新規ユーザーの質問する側が少なくて答える方が大量にいるというw
909 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 20:49:20.07 ID:xzq+iCgr.net] スマホアプリでC#はunityいるんだから多いでしょ
910 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 20:58:14.72 ID:TMsX+vFr.net] あっそうか。unityがあったね
911 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 20:59:01.93 ID:LOGsyFiL.net] そのわりにUnityの話題がでないな
912 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 21:03:56.27 ID:AGUJmjmE.net] じゃあなんでこんな栄えてるの?
913 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 21:04:54.46 ID:AGUJmjmE.net] 趣味ならC#? フォームアプリ簡単に作れるしIDEが最強だし
914 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 21:05:22.69 ID:bUhsTzCn.net] 長い間VB6で開発していた連中がやっとこさ移る先としてはVB.netかc#が多いんじゃないかなと思う。 なので底辺が多い。俺は底辺だ。
915 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 21:16:12.43 ID:1aVWaT8Y.net] Hello 底辺 World!
916 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 21:23:42.47 ID:LOkxuMnS.net] >>883 IDEのインストールが簡単ってのも大きいと思う
917 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 21:27:33.39 ID:vBc9NGOH.net] スレ違いだと釘を刺しつつ乗っかるけど、今この板で一番勢いがあるのは何とExcel VBAのスレ。 別に茶化すつもりでもなんでもなく、ちょっと前にそのスレで「驚いた」って素直な感想を書いたら 被害妄想全開で食って掛かってくる奴が大勢いて面食らったw
918 名前:デフォルトの名無しさん [2018/09/25(火) 21:47:14.55 ID:BRabQ1iT.net] RADによるformアプリケーション作成 これが便利すぎるからC#が使われているんだろ
919 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 22:02:33.05 ID:AGUJmjmE.net] RADってなんだよ おまえそれが言いたかっただけだろ
920 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 22:40:08.58 ID:LOGsyFiL.net] そもそもFormアプリケーションって需要あるの?
921 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 22:48:48.73 ID:AGUJmjmE.net] 趣味なら
922 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 22:50:32.00 ID:LOkxuMnS.net] 業務アプリでは結構需要あるぞ
923 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 22:53:12.33 ID:AGUJmjmE.net] オレのバイトしてる工場のタッチパネルの中のソフトのアイコンもフォームアプリのやつだな
924 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 22:57:33.24 ID:7b7yOD+1.net] >>889 Rapid Application Development
925 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 00:27:21.31 ID:I5Qjn6E/.net] 変数名やプロパティ名に日本語って使ってる?
926 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 00:54:12.10 ID:/SQHk11B.net] テストメソッドにはたまに使ったりするけど
927 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 01:52:56.92 ID:2U1C1lvF.net] 日本語めちゃ使ってる。 日本特有の物事を扱うにあたって無理に英訳しても幸せがない。
928 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 02:35:39.36 ID:Swk4SbL4.net] 変換キー押すのがめんどい
929 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 06:02:08.78 ID:ltim0pD2.net] ウォーターフォールって否定されるようになったよな 前は大正義くらいの勢いだったのに
930 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 07:18:55.79 ID:zkJaWWrb.net] 米国では内製が基本だから、見積り工数を大きくオーバーしても少々不具合出しても自己責任なので問題ない そのため厳格なウォーターフォールに拘る必要がなく、決まった枠で確実に作り上げるよりもデリバリーの早さを重視する開発プロセスに移行している 一方ジャップアイランドではいまだに受託開発が中心だからウォーターフォール脱却は不可能よ 「工数枠内でベストを尽くしますが、完成は保証しません」 君が客ならこんなこと抜かすベンダーに仕事任せられるかな?
931 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 08:31:58.81 ID:2U1C1lvF.net] ここC#スレ
932 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 08:32:36.88 ID:7p5c/cxx.net] >>895 そっか、使えるんだな でも怒られそう…
933 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 09:26:00.52 ID:/A0Do83h.net] お前が権力を握れば怒られない (ただし裏でクソクソ言われるだろうけど)
934 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 11:53:42.08 ID:CiEUu7ig.net] 全く不具合が発生せず、何かあっても全部自己解決出来るのなら怒られない
935 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 11:57:37.99 ID:5G9UpHy0.net] プロジェクトチームひとり 超少数精鋭部隊
936 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 13:06:57.76 ID:CT4RAtHl.net] 日本語識別子、自分が使って書くのは嫌だけど人が書いたのを読むのは全然問題ないよ。 入力しづらいだけで読みづらいわけじゃないから ただ英語でちゃんとした命名ができない人は日本語能力にもちょっと不安を感じるねw
937 名前:デフォルトの名無しさん [2018/09/26(水) 19:39:07.27 ID:bAgXFgQN.net] MVCがわかりません どのサイト見ても概念とか考え方しか書いてない 一般的なWEB構成でいう M=Webアプリ(サーバー) V=html+CSS(ブラウザ) C=Javascript(ブラウザ) 役割はこういうイメージであってますか?
938 名前:デフォルトの名無しさん [2018/09/26(水) 19:41:02.84 ID:+un+mAjX.net] もともとボヤっとしたもんやからなんでもええねんMVCて
939 名前:デフォルトの名無しさん [2018/09/26(水) 19:45:11.00 ID:bAgXFgQN.net] そうなんですか C#でフレームワークはMVCを使用するって言ってるとこあるけど これはASPのMVCを使うよって事なのかな
940 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 19:45:12.82 ID:aA/f+lgF.net] Mは処理 Vは見える化 Cは押したボタンからどんなMをするか振り分けること
941 名前:デフォルトの名無しさん [2018/09/26(水) 19:46:17.27 ID:bAgXFgQN.net] >>910 そうなると>>907 のイメージであってますよね?
942 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 19:48:10.38 ID:aA/f+lgF.net] cookieもCの一部と考えると誠に難しいです
943 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 20:52:17.09 ID:5G9UpHy0.net] >>907 仮にそうだったとしてそれに当てはめて何か使いたい式があるのかい?
944 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 21:08:00.87 ID:YfVqXzaT.net] 設計モデルのこと聞くのにこのスレで引っ張られてもgdgdにしかならないと思うな
945 名前:デフォルトの名無しさん [2018/09/26(水) 23:47:19.83 ID:6l6lrWJp.net] >>909 WPFを使うよって可能性もあるのでは?
946 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 00:47:29.61 ID:3iNJ0doV.net] MVC は、Rails が基本。 これをやっていないと、理解できないだろう 各フレームワークの本は、以下に書いてある Ruby 初心者スレッド Part 64 https://mevius.5ch.net/test/read.cgi/tech/1535797516/267
947 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 00:47:48.12 ID:4ugdlN24.net] はいキチガイ
948 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 02:06:09.29 ID:kGqzP/YO.net] そもそもMVCってのがかなり大きな概念だからな ただ、文脈によっては特定のフレームワーク指してたりすることもあるけど 発祥はSmalltalkだったと思うけど、Railsが基本とかやってないと理解できないとかもうね 最近はRubyも必死に普及活動しないとだめなのかね
949 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 03:25:59.55 ID:3iNJ0doV.net] フレームワークを流行らせたのは、Rails だから、それ以降のフレームワークは、すべて影響を受けている
950 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 03:51:46.60 ID:eHS6051w.net] >>918 いやもっと前だな。 WordStar とか WordMasterは既にその概念で実装されている
951 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 06:13:53.28 ID:Ft8D7cEG.net] Rubyガイジの相手をするな
952 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 08:37:22.20 ID:47BeUI0O.net] >>918 不況活動?
953 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 12:32:32.34 ID:dSQWakVE.net] ASP.NETのWebAPIでセッションって使えますか? 使えないとしたら、RESTfullで認証はどうやるのでしょうか?
954 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 12:39:51.19 ID:DMzEptXi.net] >>923 OIDC
955 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 14:21:18.81 ID:kGqzP/YO.net] >>923 そもそもセッションと認証は別の概念なんだが 認証はRESTったって単にHTTPなんだから、基本認証でも何でもいいだろ RESTfulでセッションってなら設計が間違ってる気がするけど、普通にASP.NETのセッション使えたはず
956 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 15:47:13.21 ID:Doi0uWJI.net] MVCの話ししていいですか?
957 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 16:23:04.87 ID:ejcWbOIW.net] >>923 ADFS
958 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 17:52:08.36 ID:YZshWEeB.net] MVC!
959 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 20:01:27.01 ID:ObHk0Vpa.net] ダメです
960 名前:デフォルトの名無しさん [2018/09/27(木) 23:24:05.14 ID:52bTlTE/.net] >>923 RESTのSはStatelessのSだぞ https://qiita.com/NagaokaKenichi/items/0647c30ef596cedf4bf2 まあアクセストークン発行が多いかな
961 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金
] [ここ壊れてます]
962 名前:) 18:46:05.98 ID:ET1lv+jR.net mailto: >>924 >>925 >>927 >>930 ありがとうございます それらのキーワードについて調べます [] [ここ壊れてます]
963 名前:デフォルトの名無しさん [2018/09/28(金) 18:46:53.05 ID:rNXHs4S4.net] MVCって知ってる?
964 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 20:10:07.21 ID:Gg718xcT.net] MostValuableComputer
965 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 20:11:31.18 ID:MONIOm5G.net] Mega Voice Command
966 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:06:51.38 ID:6t0MBxCA.net] >>876 横レスだけどこれ勉強になった。ありがとう ただそこの例だとConsole.WriteLineで"\uD842\uDF9F"が表示できないのと 「叱る」をそのままコピペして入力してしまうとサロゲートペア扱いにならずどちらも2文字になってしまう 他で見た「ほっけ」の漢字(魚偏に花。ここでは表示されない)を使ってフォームのTextboxで確認できた
967 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 13:52:59.64 ID:+Sz7jQ14.net] >>932 格ゲーでしょ知ってる知ってる
968 名前:デフォルトの名無しさん [2018/09/29(土) 17:00:15.70 ID:gjm+1/rI.net] 規制か
969 名前:デフォルトの名無しさん [2018/09/29(土) 17:02:29.51 ID:gjm+1/rI.net] あれ?書けるじゃん コード書いて質問しようとしたんだが サーバーが受け付けないとか?設定変わったとか?
970 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 17:56:26.04 ID:w5r/wsls.net] >>1 「コードを貼る場合は」参照 関係ないかもしれんが、前も何かの記号、確かバックスラッシュ(\)が書けなくなったことがあった
971 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 18:08:04.57 ID:S96Pj/Mu.net] コードを書くような真面目な内容ならteratailやstackoverflowでやる そうじゃないなら5ch
972 名前:デフォルトの名無しさん [2018/09/29(土) 18:27:15.47 ID:S+xjvJjq.net] 以前は書けたんだけどなあ? 言葉で説明するのが面倒だからコード書きたかったんだけど 書けないならまあいいや もう少し自力で調べる
973 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 18:34:36.64 ID:KFN0J1D4.net] >>1 にも書かれてるideone使えば良いじゃん
974 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 18:45:21.77 ID:SXeyKQEb.net] cdnの規制に引っ掛かってるのでは?
975 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 19:26:59.78 ID:rSQsiXYH.net] 5chに書くなら文字数が多すぎると書き込めないんじゃなかったか
976 名前:デフォルトの名無しさん [2018/09/29(土) 23:40:45.60 ID:tm+cu+QY.net] 出でよ、イデオン
977 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 21:21:37.68 ID:GAigBMDv.net] C#でshortの配列をushortの配列として扱うにはどうしたらいいのでしょう? ushortの配列を確保してそこにブロックコピーすればいいのですが、コピーせずに扱いたいです Cでの例 short data[1000]; data[0] = -3; ushort out = ((ushort*)data)[0]
978 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 21:29:45.12 ID:ySL85z/t.net] >>946 C#でも共用体は作れるので、それでやるのが正攻法だろうね
979 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 21:30:26.35 ID:lLn/Vvr8.net] >>946 ポインタ使うかSpan<>使う いずれにせよunsafeは避けられない
980 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 21:45:52.11 ID:GAigBMDv.net] ありがとう short[] data = new short[1000]; data[0] = -3; data[1] = -5; ushort out1; ushort out2; unsafe { fixed (short* p = data) { out1 = *(ushort*)&p[0]; out2 = *(ushort*)&p[1]; } }
981 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 22:03:04.13 ID:rOV5V8ry.net] >>949 fixedブロックの中は ushort* p2 = ( ushort * )p; out1 = p2[ 0 ]; out2 = p2[ 1 ]; の方が完結。 その使い方ならunsafe使わずキャストするだけで良い気がするけど ushort out1 = (ushort)data[0]; ushort out2 = (ushort)data[1];
982 名前:デフォルトの名無しさん [2018/10/02(火) 14:52:23.87 ID:
] [ここ壊れてます]
983 名前:lpR7dPFU.net mailto: 初心者な質問で申し訳ありませんが if 〜else if〜で50個くらい分岐作りたいんだけど これは上に書いたのから順に条件判別するんですかね? てことは出現確率の高い条件から順に上から書いていけば 全体に早いシステムができるってことですかね? それはswitch 〜case〜でも同じですか? [] [ここ壊れてます]
984 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 15:07:02.75 ID:ibUSG6OV.net] >>951 そうだけど、そんなので速度は稼げない 素直なメンテしやすいコードにしておかないと結局バグってて遅いゴミシステムが出来上がるぞ
985 名前:デフォルトの名無しさん [2018/10/02(火) 15:13:05.30 ID:lpR7dPFU.net] そうですか〜読みやすさ重視ですか〜
986 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 15:25:17.74 ID:giBEQZ0B.net] 読みやすさとかそういう問題ではない 断言するが、お前のプログラムのボトルネックはそんなところにはない そういうくだらないことに時間を無駄に使ってると、バグ潰しをしたり本当のボトルネックを見つけて改善したりする暇がなくなり、 結果的にバグだらけでゲロ遅く使い物にならない糞が出来上がる
987 名前:デフォルトの名無しさん [2018/10/02(火) 15:33:51.14 ID:77rOVAHm.net] >>951 もちろんそうだよ ついでに言えば、else ifは使わずifとreturnをうまく組み合わせて使うと更に早いんじゃないかな
988 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 15:40:49.43 ID:sf+Shg+9.net] >>951 判定する条件式の中にすごく重い関数の戻り値があるなら極力避けた方が速くはなるが。。。 ここの諸兄たちが言うようにあんまり気にしない方がよかとね
989 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 15:52:19.51 ID:xEUi7AEU.net] 50分岐なのか単に一か所に50ifが並ぶのか分からないけど、 どっちにしろまず設計がおかしいことを疑うレベルだねw それが必要になるケースは絶対にありえないとまでは断定できないけど、 普通に考えれば何か間違ってる
990 名前:デフォルトの名無しさん [2018/10/02(火) 19:15:29.75 ID:77rOVAHm.net] 文字の判定やらデコードやら色々あるから別におかしくはないんじゃない
991 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 20:19:02.96 ID:vJb5Fq5Q.net] >>951 switchでcaseがすべて数値か文字列の定数ならif〜else if相当ではなくてジャンプテーブルに変換されて最適化される
992 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 20:30:20.49 ID:bw+oM93m.net] >>958 そんなん一気にif文で判別するのおかしいよ 個々の判定を別メソッドに切り出すべき
993 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 20:34:18.50 ID:LVKvBfXE.net] >>960 んで呼んだら50行並ぶんですね わかります
994 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 20:35:28.70 ID:V4PRuizJ.net] >>957 コンパイラ作った時にあったよ 普通に素で解析するときはそうなる
995 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 20:38:43.68 ID:V4PRuizJ.net] リッチ―の作ったCコンパイラもずらっとswitchの下にcaseが並んでる しかもgotoだらけ
996 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 22:31:24.70 ID:71TIb3fi.net] ふと思ったが、ifやswitchよりデリゲートの配列で組んだ場合、可読性は別としてどんなもん?
997 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 22:33:29.94 ID:71TIb3fi.net] ん、951は通信電文の解析処理を組もうとしてるのかな?
998 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 22:51:46.79 ID:PHVx+viB.net] >>964 単純な数値による分岐なら50くらいだとif並べたほうが速いだろうな
999 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 23:53:56.61 ID:71TIb3fi.net] おお そっか
1000 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 03:19:05.44 ID:1BUWQtFr.net] いやいや、ビルドした時点で単なる条件分岐文の羅列に変換されるんだから 早いも遅いも無い
1001 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 06:32:57.32 ID:GxEu0OX8.net] ILではifの羅列に変換されてるね
1002 名前:デフォルトの名無しさん [2018/10/03(水) 10:25:12.89 ID:53fMVr1s.net] 今試してみたけど条件の羅列にはならなかったよ ただ実験は同じ関数を大量に登録するだけだけど、実際に使うにはデリゲート配列に関数を登録する所がめちゃくちゃになりそうだ
1003 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 19:45:09.01 ID:vaeuJqrS.net] ライブラリ制作でもなきゃ ILコードの速度より可読性優先でしょ 最近は性能がトレンドだけだも
1004 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 19:49:00.54 ID:WJ9CzqGu.net] だきゃだも
1005 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 10:27:45.19 ID:AqgyV2h4.net] ドラえもん
1006 名前:デフォルトの名無しさん [2018/10/04(木) 11:35:52.27 ID:z7XJZMIb.net] VisualStudio2017とC#でDLLとEXEのプロジェクトを含んだソリューションを構成しているのですが、 EXEのプロジェクトはブレイクポイントで止まるのにDLL側のプロジェクトはブレイクポイントを設定しても止まりません。 どうすれば止まるように設定することができるのでしょうか?
1007 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 11:42:31.93 ID:z7XJZMIb.net] >>974 事故解決。 DDLの参照設定に誤りがありました。 無事ブレイクポイントで止まりました。
1008 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 12:09:23.53 ID:HivlLKp0.net] >>975 質問したならせめてどう設定したのか書いてくれると助かる
1009 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 12:11:58.26 ID:LF7COV6m.net] プロジェクトじゃなくてアセンブリを直接参照したんだと思うよ
1010 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 17:53:02.89 ID:JnxMNCXd.net] 正規表現で、特定の変数に格納された文字列が行頭に含まれるときにマッチさせたいのですが 変数にメタ文字が含まれているとそのままメタ文字として機能してしまいます。 \Q〜\Eを使おうとすると認識されないエスケープシーケンスと出てしまうのですが 呼び出した変数をエスケープする方法はありませんか? string tag = "."; //この変数はユーザー入力により可変させたい Regex r = new Regex("^"+ tag, RegexOptions.Multiline); MatchCollection mc = r.Matches(text, 0);
1011 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 17:57:50.18 ID:+1iioCH6.net] 何を言ってるのjかさっぱりわからないけど \のエスケープは\\だよ
1012 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 18:03:01.48 ID:JnxMNCXd.net] >>979 「.」が代入された変数をマッチ条件として呼び出したときに 「\.」として読ませたいんです…… 説明下手ですみません
1013 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 18:06:55.71 ID:+1iioCH6.net] やっぱり意味がわからないよ string.Replace
1014 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 18:09:55.61 ID:+1iioCH6.net] 行頭マッチならstring.StartWith()
1015 名前:デフォルトの名無しさん [2018/10/04(木) 18:09:57.35 ID:58olDMZF.net] Regex.Escape
1016 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 18:14:09.25 ID:JnxMNCXd.net] >>983 これでした! ありがとうございます! Regex r = new Regex("^"+ Regex.Escape(tag), RegexOptions.Multiline); でいけました
1017 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 18:35:26.88 ID:A2T5Igf7.net] ID:+1iioCH6
1018 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 18:42:53.36 ID:+1iioCH6.net] スレ汚し失礼しましたとか書けばいいのか
1019 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 18:44:59.38 ID:hCvwn5pe.net] >>980 次スレ立てて 立てられないならそう書いて
1020 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 18:50:46.18 ID:JnxMNCXd.net] あっ980踏んだの気付いてませんでした 立ててきます
1021 名前:デフォルトの名無しさん [2018/10/04(木) 18:57:34.68 ID:JnxMNCXd.net] https://mevius.5ch.net/test/read.cgi/tech/1538646998/
1022 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 18:58:45.39 ID:iLCCeyjR.net] >>986 恥ずかしい奴ってことで晒されてるんだぞ
1023 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 18:59:38.71 ID:hCvwn5pe.net] >>989 スレたて乙
1024 名前:デフォルトの名無しさん [2018/10/04(木) 19:30:48.59 ID:NR8ALYp6.net] アプリで使用する最大スレッド数ってどう決めるのがいいですか?
1025 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 19:32:22.83 ID:hCvwn5pe.net] >>992 動作環境に配慮する 動作スレッド占有したら迷惑かもと思ったら少なくする
1026 名前:デフォルトの名無しさん [2018/10/04(木) 19:32:31.16 ID:NR8ALYp6.net] 単純にCPUのスレッド数を最大に設定しておけばいいですか? それともCPUのスレッド数-1とかの方がいいのでしょうか? なんか決め方に基準とか規則とかって考え方
1027 名前:ったら教えてください [] [ここ壊れてます]
1028 名前:デフォルトの名無しさん [2018/10/04(木) 19:33:24.53 ID:NR8ALYp6.net] >>993 そうそう今まではこのように 少し曖昧な形で決めてたのでなんか明確なやり方あったらなあと思って 書き込んでみました
1029 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 19:33:38.12 ID:hCvwn5pe.net] >>994 無いよそんなもの 仕事でやっているのなら会社の先輩なりクライアントに聞いて
1030 名前:デフォルトの名無しさん [2018/10/04(木) 19:36:48.58 ID:NR8ALYp6.net] >>996 無いっていうのはどんな設定しても 結局スレッドのコントロールはOSレベルでされるし アプリケーションの処理内容次第で占有率とかが違うからってことですか?
1031 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 19:49:35.37 ID:SzxHzs6N.net] tiffのヘッダ情報を参照する方法ってどのようにすれば良いのでしょうか 画像読み込みは見つかるのだけどヘッダ情報参照方法が見つからず
1032 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 20:53:42.03 ID:4K2yXx2T.net] >>992 case by case
1033 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 21:07:43.98 ID:hGGFGhl9.net] System.Drawing.Bitmapに読み込んでPropertyItemsから取得する 全部取れるわけではない System.Windows.Media.Imaging.BitmapMetadataを使う 大体取れるはず ヘッダだけ読んで画像データは読み込みたくない!ってなら標準ライブラリには存在しないな
1034 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 60日 1時間 12分 0秒
1035 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています