1 名前:デフォルトの名無しさん (ワッチョイ f97b-lsIp) mailto:sage [2016/10/08(土) 21:33:26.22 ID:KfBpvv2w0.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part124 echo.2ch.net/test/read.cgi/tech/1471004887/ ■関連スレ C#, C♯, C#相談室 Part91 echo.2ch.net/test/read.cgi/tech/1467142749/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
274 名前:デフォルトの名無しさん (スップ Sd78-DGmA) mailto:sage [2016/11/04(金) 00:41:52.66 ID:j7dIV/6vd.net] 今時XMLやJSON使わないなんて変わった人だねえ
275 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/04(金) 01:07:31.20 ID:S7YCyC790.net] 部品Pを扱う建屋A,C,D,Eとか考えるともうツリーとか邪魔になる
276 名前:デフォルトの名無しさん (ワッチョイ 653c-DGmA) mailto:sage [2016/11/04(金) 01:18:45.12 ID:l35mknxG0.net] >>272 じゃあとりあえず、適当なcsprojをCSVで書いてごらん
277 名前:デフォルトの名無しさん (ワッチョイ 3ee1-umBA) mailto:sage [2016/11/04(金) 01:36:14.39 ID:9ZtkjL7R0.net] >>219 みんな頓珍漢なこと言ってるけど、nullを返さないことを保証するのは需要もあるし、すでに標準ライブラリには導入されてる。 もちろん、空文字を返すよりもnullを返すほうが合理的なこともあるから常にnullを返さないわけではないけど 契約プログラミング(Code Contract) https://msdn.microsoft.com/ja-jp/library/dd264808(v=vs.110).aspx 例えば、String.Concatのソースを見ると https://referencesource.microsoft.com/#mscorlib/system/string.cs,a17e32697e4baaf6 に以下のような契約が書いてある Contract.Ensures(Contract.Result<String>() != null); これは、戻り値がnullではないと保証する、ということ。 逆に、これがない場合はnullを返す可能性を考慮したほうがよい 現状言語仕様レベルでは契約プログラミングは組み込まれていないので、静的な処理をコンパイラの外で行う必要がある もちろん言語仕様に組み込む要望は出てるが、やることが多すぎて手が回ってないのでまだ入りそうにはない https://github.com/dotnet/roslyn/issues/119 Swiftみたいに新しい言語ではnullを許容しない型とかもあるんだけど、なんせC#は15年前の仕様を破壊するわけにいかないので
278 名前:デフォルトの名無しさん (ワッチョイ 3ee1-umBA) mailto:sage [2016/11/04(金) 01:43:43.03 ID:9ZtkjL7R0.net] あ、 >空文字を返すよりもnullを返すほうが合理的なこともあるから常にnullを返さないわけではないけど っていうのは、非null契約が無いメソッドではってことね 非null契約があれば絶対にnullは返さない 非null契約に違反してnullを返そうとすると、静的処理でエラーになるとか、実行時に例外や強制終了になるはず(自分の認識では)
279 名前:デフォルトの名無しさん (ワッチョイ 7213-DGmA) mailto:sage [2016/11/04(金) 01:44:56.97 ID:fGBbyDJX0.net] XMLやJSONを使わせないとか老害もいいとこだな
280 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/04(金) 08:12:03.85 ID:S7YCyC790.net] >>276 データをDBに移しますね の一言でend そしてそれはあるあるNo1
281 名前:デフォルトの名無しさん (スフッ Sd28-DGmA) mailto:sage [2016/11/04(金) 08:13:58.66 ID:eeRk3Y1vd.net] DBに入れるならDBnullなんでは?
282 名前:デフォルトの名無しさん (スフッ Sd28-DGmA) mailto:sage [2016/11/04(金) 08:15:29.14 ID:eeRk3Y1vd.net] あ、言葉足らずだったな。 DBnullに相当する値か状態を表現したクラスしかないのでは?って。 重いとは思うが、それをXMLにあてればいいと思うけど。
283 名前:デフォルトの名無しさん (ワッチョイ b0da-uTye) [2016/11/04(金) 08:19:28.81 ID:Oa4odGBb0.net] 複数の少数があります 1.5, 3.25, 6.75, 3.375 .... これら全てが整数になる共通の値を見つけたいのですが、何かいい方法はないでしょうか? 単純に小数点以下が一番長い物に合わせて、1000倍などにしてもいいのかもしれませんが、 できるだけ最小の値にしたいと考えています
284 名前:デフォルトの名無しさん (ワッチョイ b0da-uTye) [2016/11/04(金) 08:22:04.24 ID:Oa4odGBb0.net] あ、↑は小数を乗算して整数になる、共通で最小の値という意味です 乗算について抜けていましたすみません
285 名前:デフォルトの名無しさん (ワッチョイ 91dc-dKGq) mailto:sage [2016/11/04(金) 08:37:27.49 ID:Fu63hJgb0.net] 10^n倍して全部整数にしてから最大公約数で割れば
286 名前:デフォルトの名無しさん (ワッチョイ e63c-DGmA) mailto:sage [2016/11/04(金) 08:40:47.32 ID:sU8qFob40.net] >>268 リレーションがなんのためにあると思ってるんだ? w
287 名前:デフォルトの名無しさん (ワッチョイ 3223-8n5s) mailto:sage [2016/11/04(金) 08:41:56.32 ID:Nv4A79J/0.net] >>281 小数点以下を分数に変換して最小公約数を求めたら良いんじゃないの?
288 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/04(金) 08:53:29.87 ID:S7YCyC790.net] >>283 それでいいんだよ xmlで階層にすると悲劇が始まる idかkey置いて階層は作らないのが正解
289 名前:デフォルトの名無しさん (スップ Sd78-DGmA) mailto:sage [2016/11/04(金) 08:56:20.60 ID:jjNRFD+ud.net] >>285 >>273
290 名前:デフォルトの名無しさん (ササクッテロレ Spbd-m5qj) mailto:sage [2016/11/04(金) 08:59:28.30 ID:cFPdUXQMp.net] >>280 単純に10のn乗をかけると循環小数で詰むので分数化するに一票
291 名前:デフォルトの名無しさん (ワッチョイ 7213-DGmA) mailto:sage [2016/11/04(金) 09:01:06.22 ID:fGBbyDJX0.net] 環境設定ファイルとかクラスをシリアライズするだけで済むのにわざわざDB化するとか馬鹿馬鹿しいわ
292 名前:デフォルトの名無しさん (スフッ Sd28-DGmA) mailto:sage [2016/11/04(金) 10:48:32.91 ID:eeRk3Y1vd.net] 120120掛けて、それでもだめなら17掛けて、あとは2から割っていくと良いのでは? それで端数が出たら、素数で割ってけば良いよ。 だいたい23くらいまで持ってたらきれいな数字になる。 分数化は面倒だろ。
293 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/04(金) 12:29:37.50 ID:whUy0fqsa.net] >>280 宿題スレかお題スレの方がいいと思うけど、 a = 1.5, b = 3.25, c = 6.75, .... 与えられたすべての小数を整数にする最小の10の乗数をRとする 求める共通の値xが見つかったとき、a * x, b * x, c *x, ....は1以外の公約数を 持たないはずだから(ただしa, b, c, ....がすべて同じ値である場合を除く) a * R, b * R, c * R, ....の最大公約数をGとするとき、 x = R / G でいいような気がする。 厳密な証明は知らん
294 名前:デフォルトの名無しさん (ドコグロ MMde-DGmA) mailto:sage [2016/11/04(金) 14:08:33.75 ID:T6Zzc5iHM.net] >>285 お前は Excel 使っとけ w
295 名前:デフォルトの名無しさん (ドコグロ MMde-DGmA) mailto:sage [2016/11/04(金) 14:10:31.34 ID:T6Zzc5iHM.net] >>287 単純に分数にすると無理数で詰むので...
296 名前:デフォルトの名無しさん (ワッチョイ d30d-uTye) [2016/11/04(金) 14:56:57.15 ID:al1IuUx20.net] WPF、MVVMで ファイルやフォルダの一覧を階層構造のTreeViewで表示したいのですが EnumerateFileSystemEntries を使って実装する方法を教えてください 参考になるサイトやサンプルでも構いません 自分で探してみても単に取得する処理だけのもの(Viewへの適用などが無い)などしか見当たらず困っています
297 名前:デフォルトの名無しさん (アウアウカー Sab5-DGmA) mailto:sage [2016/11/04(金) 15:41:50.56 ID:zqM+jrKca.net] >>292 数学的に無理数の範囲でこの問題って解けるのか? 有理数じゃないと無理な気がするけど
298 名前:デフォルトの名無しさん (アウアウカー Sab5-DGmA) mailto:sage [2016/11/04(金) 15:47:46.77 ID:zqM+jrKca.net] 解けないっていうか、特殊な場合を除きほとんど場合解なしが解になると思う
299 名前:デフォルトの名無しさん (ワッチョイ bcdc-dKGq) mailto:sage [2016/11/04(金) 16:23:04.07 ID:V0keAHui0.net] >>293 オブジェクトツリーが作れたらItemsSourceに放り込んでHierarchicalDataTemplateを定義するだけ
300 名前:デフォルトの名無しさん (ワッチョイ 8a02-2mfK) mailto:sage [2016/11/04(金) 21:51:02.32 ID:tYyOp6nC0.net] >>294-295 そもそも求める数が整数とか有理数に限るとはどこにも書いてないがな
301 名前:デフォルトの名無しさん (ワッチョイ 3223-8n5s) mailto:sage [2016/11/04(金) 22:23:15.39 ID:Nv4A79J/0.net] 分数の上下桁数を2桁とか3桁程度の実用的な範囲にして、近似値で分数に変換すれば問題ないでしょ 求めたいものが何であるかによるけどね
302 名前:デフォルトの名無しさん (ワッチョイ bcdc-DGmA) mailto:sage [2016/11/05(土) 00:26:17.96 ID:u9ZZUUBm0.net] >>298 当てずっぽうでやるんならわざわざ分数化しなくても 最初から試しに乗算してみて整数っぽくなったらOKでいいだろw
303 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/05(土) 09:41:59.67 ID:OZKlek+X0.net] ストレージの評価のため、ファイルを同時書き込みするメソッドを asyncで書いてみたのですが、100回くらいfor文でコールすると logx.txtが12個とかしか作られません 処理時間で処理が打ち切られたりするのでしょうか? private static async void TestM(string i) { using (FileStream fs=new FileStream(@"F:\work\log" + i + ".txt", FileMode.Append, FileAccess.Write, FileShare.ReadWrite)) { StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8); TextWriter tw = TextWriter.Synchronized(sw); tw.WriteLine("test"); tw.Flush(); } } static void Main(string[] args) { for(int i = 0; i < 100; i++) TestM(i.ToString()); }
304 名前:デフォルトの名無しさん (ワッチョイ bcdc-dKGq) mailto:sage [2016/11/05(土) 09:56:26.86 ID:u9ZZUUBm0.net] async(というかTask)はデフォルトではスレッドプールを使うから 同時に使用されるスレッド数には限りがあり、残りのタスクはキューに溜まるだけ 普通にnew Threadしたら
305 名前:デフォルトの名無しさん (ワッチョイ e63c-DGmA) mailto:sage [2016/11/05(土) 10:06:58.71 ID:6wNzhQFs0.net] >>297 > そもそも求める数が整数とか有理数に限るとはどこにも書いてないがな えっ? >>280 > これら全てが整数になる共通の値を見つけたい
306 名前:301 (ワッチョイ bcdc-dKGq) mailto:sage [2016/11/05(土) 10:09:53.89 ID:u9ZZUUBm0.net] >>300 いやそもそもasyncの使い方がおかしいな
戻り値voidの場合、awaitが無いとasyncキーワードは全く何の意味も持たない ワーニング出てるだろ? (意図とは違うだろうけど)TestMは普通に同期で順番に実行されてるはずだから、 単にswやtwを閉じてないために出力されてないだけじゃないか? あとasync void使うな
307 名前:デフォルトの名無しさん (ワッチョイ 5194-rqdB) mailto:sage [2016/11/05(土) 10:38:43.04 ID:9mC8a8qM0.net] >>300 >>303 の言うとおり非同期実行ではなく順番に一個ずつ書き込んでいってるはずだから Mainのforループがエラーなく最後まで回っているかを確認してみたら
308 名前:300 (ワッチョイ 7220-8n5s) mailto:sage [2016/11/05(土) 19:19:50.22 ID:OZKlek+X0.net] 根本的に非同期処理のやり方が間違っていただけなんですね 精進します
309 名前:デフォルトの名無しさん (ワッチョイ 0117-7tG6) mailto:sage [2016/11/05(土) 20:30:25.56 ID:ds+C0ndM0.net] まあネットで調べただけだと勘違いしやすいよね。 そういう風にしか書かれてないとこ多いもん。
310 名前:デフォルトの名無しさん (ワッチョイ 1541-nJsM) [2016/11/05(土) 21:34:08.85 ID:q4/6QuN40.net] 書き散らしてるクソブログ多いもんなぁ 分かったフリして書く ↓ それを読んで分かった気になる 以下ループ
311 名前:デフォルトの名無しさん (ワッチョイ 9030-Tcji) mailto:sage [2016/11/05(土) 21:42:26.72 ID:BoxZvYjG0.net] 最近だとQiitaの「自分用メモ」がひでえ お前用のゴミを公開するな 非公開で保存できるんだから
312 名前:デフォルトの名無しさん (ワッチョイ 71cb-DGmA) mailto:sage [2016/11/05(土) 22:52:00.60 ID:iEc26fmZ0.net] 昔は公開しておくといちいち指摘してくれてそれで正しい情報になっていったが いまブログ書いてるやつがどういうつもりかわからんし触りにくいってのあるよなぁ お節介やいてストーキングまでされたらたまらんし 殴り合い上等でブログやってる人ならいいが 最近打た
313 名前:れ弱いくせに公開するアホ増えたからなぁ [] [ここ壊れてます]
314 名前:デフォルトの名無しさん (ワッチョイ 21c8-umBA) mailto:sage [2016/11/06(日) 17:53:34.18 ID:RAhQzM620.net] WPFでデータバインドする際の INotifyPropertyChanged の実装方針について教えてください。 GUIにバインドするクラスに以下のような2つのプロパティがあるとき int Value { set; get; } int Value2 { get { return this.Value * 2 } } Value の値が変わると自動的に Value2 の結果も変動するため、 Value の setter で、Value、Value2 の2つの PropertyChanged を投げる実装をしました。 しかし、Value が Value を利用してるプロパティの面倒まで見ることに違和感を覚えます。 これは INotifyPropertyChanged の仕様として仕方が無いのでしょうか。
315 名前:デフォルトの名無しさん (ワッチョイ 01d6-8n5s) mailto:sage [2016/11/06(日) 19:37:13.87 ID:jO0QNoEc0.net] 仕方ない 氏名と名字、名前でも同じだしね
316 名前:デフォルトの名無しさん (ワッチョイ 137b-A9qr) mailto:sage [2016/11/06(日) 20:19:58.80 ID:A8MT+yST0.net] どうしてもってなら自分自身のPropertyChangedにイベント引っかけて Valueが変更されてたらValue2のPropertyChanged起こすとかできるけど 同一クラス内でそんなの別に気にする必要もないんじゃね?
317 名前:310 (ワッチョイ 21c8-umBA) mailto:sage [2016/11/06(日) 20:34:01.49 ID:RAhQzM620.net] >>311 >>312 ありがとうございます。そのままの実装で作ってみます。
318 名前:デフォルトの名無しさん (オッペケ Srbd-X2H6) mailto:sage [2016/11/07(月) 16:48:49.99 ID:oxea6kUxr.net] >>252 コードレビューで散々ごねて書き直しさせた人がいましたww
319 名前:デフォルトの名無しさん (オッペケ Srbd-X2H6) mailto:sage [2016/11/07(月) 16:51:52.12 ID:oxea6kUxr.net] >>274 こんな事まで勉強してる人は滅多にいないかな。 それを言って理解出来る人も極めた少数派。
320 名前:デフォルトの名無しさん (オッペケ Srbd-X2H6) mailto:sage [2016/11/07(月) 16:55:30.10 ID:oxea6kUxr.net] >>307 あるあるww
321 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/07(月) 17:15:04.36 ID:RVVbQ4DBa.net] >>315 悪いけど、その程度のことは知ったうえでその質問者を批判してる人の方が多いと思うよw
322 名前:デフォルトの名無しさん (ワッチョイ 9823-KjJO) mailto:sage [2016/11/07(月) 19:06:22.15 ID:JC+EsK6v0.net] うん…言葉尻を捉えるようだがContractで極めたは言い過ぎだな 実装が気になればReferenceSourceを見るのは普通だし 解説としてメジャーなufcpp.netでも触れられている 言語の詳細に興味がない、学ぶ気概がない人はそもそも…
323 名前:デフォルトの名無しさん (オッペケ Srbd-DGmA) mailto:sage [2016/11/07(月) 19:10:13.37 ID:Msy9mjY5r.net] 変数名規則どうしてる? フィールド publicなのは大文字開始でいいけど privateなのをどうするか悩む m_Hogeまたはm_hoge f_Hogeまたはf_hoge _Hogeまたは_hoge
324 名前:デフォルトの名無しさん (ワッチョイ e9dc-DGmA) mailto:sage [2016/11/07(月) 19:52:43.99 ID:07KTk/ms0.net] 一番人気はJavaのスタイルに合わせてhoge 10馬身差で_hogeとm_hogeじゃないか
325 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/07(月) 19:53:21.45 ID:RVVbQ4DBa.net] バッキングフィールドは_hoge それ以外のフィールドはmHoge
326 名前:デフォルトの名無しさん (ワッチョイ 45bd-bOSl) [2016/11/07(月) 20:47:02.70 ID:PlwpY0UQ0.net] Qiitaですげえイラッとする内容で、 ライブラリやツールつかって、やたら「簡単にできる」みたいなことを押す論調で、 紹介している奴。 「簡単にできる」 = 「自分自身で何やってるか、何が変わったかよくわからなく なる」ということであって、 どうなるかの仕組みを考察したり解説したりするならいいが、 その盲点を無視して、 「ね?猿でもこんなこと簡単にできるでしょ?」 「使わなきゃ損でしょ?」とかはしゃいでいるガキには、物事を説明する 資格はない。そんな有害な記事はネットに上げるな。
327 名前:デフォルトの名無しさん (アウアウオー Sade-MAch) mailto:sage [2016/11/07(月) 21:36:50.71 ID:RVVbQ4DBa.net] 誰と戦ってるおつもりなのかねw ばっかじゃなかろうか
328 名前:デフォルトの名無しさん (オッペケ Srbd-X2H6) mailto:sage [2016/11/07(月) 22:21:11.52 ID:JoerH3dAr.net] >>318 ごめんなさい。 極めて少数派 の打ち間違いです。
329 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/07(月) 23:00:37.04 ID:geFZXkbd0.net] JSONで、”[[[1,2],[2,3]]]”のようなアウトプットがしたく いろいろ探して下記のようなコードで出力できることは 解ったのですが JavaScriptSerializer seri = new JavaScriptSerializer(); var list = new[] { new[] { new[] {1,2 }, new[] { 2, 3 } } }; string json = seri.Serialize(list); //出力結果:[[[1,2],[2,3]]] これを [[[1,2],[2,3],[3,4]...]] のように動的に追記していくには どのように書いたら良いのでしょうか? コレクションのように .Add() で次々書けたら良いなと思うのですが よろしくお願いします
330 名前:デフォルトの名無しさん (ワッチョイ e9dc-dKGq) mailto:sage [2016/11/07(月) 23:09:18.73 ID:07KTk/ms0.net] >>325 本題の前に、 https://msdn.microsoft.com/ja-jp/library/system.web.script.serialization.javascriptserializer(v=vs.110).aspx > Json.NET should be used serialization and deserialization. とMS様もぶっちゃけてる通り、.NETでJSONを使うならJavaScriptSerializerではなく デファクトスタンダードであるJson.NETを使いましょう でJson.NETについて言うと、普通にList<T>をシリアライズすればJSONの配列になる。 事前に配列にしたいならToArrayすればいい。
331 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/07(月) 23:15:49.87 ID:geFZXkbd0.net] 根本的にJavaScriptSerializerは推奨されない技術だったのですね Json.NETを検討してみます ありがとうございます
332 名前:デフォルトの名無しさん (ドコグロ MMde-DGmA) mailto:sage [2016/11/08(火) 07:59:18.34 ID:kkRkk3iCM.net] >>322 お前もQiitaとやらで 超難しい!超時間掛かる! 簡単とか言ってるやついるけどぶっちゃけ難解! 人類には早すぎた! って記事かけや
333 名前:デフォルトの名無しさん (ワッチョイ 7b49-XA/h) mailto:sage [2016/11/08(火) 21:00:12.94 ID:360M0HJP0.net] >>301 TaskCreationOptions.LongRunningオプション付けてTaskを生成すれば専用のThreadになるから、生のThreadを使う必要ないよ。 それかスレッドプールの同時実行数をチューニングする方法もある。
334 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/08(火) 21:46:12.39 ID:xSnQLWcm0.net] 昨日、jsonの質問をした者ですが json.netに変更した所で、やはり同じところで悩んでいます 下記コードで出力結果が"[[[1,2],[2,3]]]"となるのですが var list = new[] { new[] { new[] {1,2 }, new[] { 2, 3 } } }; string json = Newtonsoft.Json.JsonConvert.SerializeObject(list); これを [[[1,2],[2,3],[3,4]...]] のように動的に追記していくには どのように書いたら良いのでしょうか? 色々調べても、jsonはキーバリューの形が一般的で 配列でどう表現するのか解りませんでした よろしくお願いします
335 名前:デフォルトの名無しさん (ワッチョイ e9dc-dKGq) mailto:sage [2016/11/08(火) 22:10:11.42 ID:ic1oOtKi0.net] だからList<T>使えよ JSON云々以前の問題
336 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/08(火) 23:23:57.86 ID:xSnQLWcm0.net] List<T>のアドバイスをもとに 以下のようなコードで良い感じになってきたのですが もう一つ配列の外カッコを表現することができませんでした List<int[]> list = new List<int[]>(); list.Add(new[] { 1, 2 }); list.Add(new[] { 2, 3 }); list.Add(new[] { 3, 4 }); string json = Newtonsoft.Json.JsonConvert.SerializeObject(list); //[[1,2],[2,3],[3,4]] List<int[][]> list = new List<int[][]>();にすると [[[1,2]],[[2,3]]]となってしまい 詰まっております 根本的に考え方が間違っているのでしょうか?
337 名前:デフォルトの名無しさん (ワッチョイ 653c-m5qj) mailto:sage [2016/11/08(火) 23:35:34.26 ID:qV47zIVg0.net] だからなぜ配列使うのかと…
338 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/08(火) 23:55:21.12 ID:xSnQLWcm0.net] すみません 経験不足で、配列以外でやる方法が 想像つきません どういうイメージでやれば良いのか 教えて頂きたいです
339 名前:デフォルトの名無しさん (ワッチョイ 0117-7tG6) mailto:sage [2016/11/09(水) 00:02:28.77 ID:hsAPe+Q00.net] そこは置いとくとして。これで解決したりしてな。(試してない) 解決なら変数の内容というか意味を考えるべきだな。 var list2 = (new List<int[][]>()); list2.Add( list.ToArray() ); // list2 をシリアライズ
340 名前:デフォルトの名無しさん (ササクッテロレ Spbd-m5qj) mailto:sage [2016/11/09(水) 03:15:10.85 ID:qcMduGDNp.net] JSONの形だけでいいならこんなのでもいい List<int[]>[] list3= {list}; int[][][] list4= {list.ToArray()};
341 名前:デフォルトの名無しさん (ワッチョイ e93a-DGmA) mailto:sage [2016/11/09(水) 03:33:35.81 ID:KnEUpDo20.net] >>332 List<List<List<int>>>
342 名前:デフォルトの名無しさん (ワッチョイ 517b-8n5s) mailto:sage [2016/11/09(水) 05:25:22.53 ID:moqMbmIT0.net] >>332 とりあえずその部分に納得したいならこうやれば形になるよw var list = new[] { new List<int[]>() }; list[0].Add(new[] { 1, 2 }); list[0].Add(new[] { 2, 3 });
343 名前:デフォルトの名無しさん (ササクッテロレ Spbd-m5qj) mailto:sage [2016/11/09(水) 14:02:25.71 ID:qcMduGDNp.net] 多分これ>>332 は理解できないだろw 前提1: JSONはJavaScript Object Notationの略でjavascriptの文法をベースにした記法である 前提2: javascriptは動的型付け原語であり、C#は 静的型付け原語である 前述3: JSONにおける配列は[]で表され、C#のList<T>と配列はJSONの配列に変換される 前提1,2からC#で必要な型の情報はJSONには記述されないため、JSONをC#に変換する場合この型情報を補完しなければならない 前提3から動的な操作を行う個所はList<T>それ以外を配列で記述するといい 学習または理解のために C#でもコンパイラによる型推論によって型宣言を省略できるが、理解するまでは省略せずに型をきちんと書く方が理解しやすい よってvar禁止、初期化時の型宣言の省略禁止でそれぞれを書き換えてみると多少理解が進むんでないかな? 例として>>338 のlistと>>336 のlist3は省略せずに書くと以下のようになり同じものであるとわかる。 List<int[]>[] list = new List<int[]>[] { new List<int[]>() }; ※ List<int[]>[] は intの配列(int[]) の リスト(List<T>) の 配列(末尾の[]) という意味 ※ varは、右辺で型が明らかな場合コンパイラが型を推定して補完してくれる。コンパイル時に展開されるので省略せずに型を書くのと等価になる
344 名前:デフォルトの名無しさん (ワッチョイ 3e4c-DGmA) mailto:sage [2016/11/09(水) 14:19:57.52 ID:ESFv9usG0.net] >>339 優しいなおめぇ
345 名前:332 (ラクッペ MM2d-DGmA) mailto:sage [2016/11/09(水) 17:18:24.33 ID:ItbFMo65M.net] 試行錯誤の結果 教えて頂いたList<T>にて 希望のjsonを作れました 基礎的な理解もなく ネットで得る断片的なソースの コピペでは応用が効かないと痛感しています ありがとうございます
346 名前:デフォルトの名無しさん (オッペケ Srbd-X2H6) mailto:sage [2016/11/09(水) 19:36:58.06 ID:z4p8v0swr.net] コピペは止めとけ。 Ctrl-C,Vを禁止するだけでプログラミング能力が上がるとか何とか。
347 名前:デフォルトの名無しさん (ブーイモ MM31-m5qj) mailto:sage [2016/11/09(水) 20:18:59.79 ID:GH2RO7KKM.net] コピペした回数により残業代減額
348 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) [2016/11/09(水) 21:32:55.41 ID:xe8Gs44h0.net] LINQのSelectで、メンバ「txt」が"a"の場合、 メンバ「intdata」の符号を反転するということをしたいのですが、 どのように書けば良いのでしょうか? LINQで条件式が書けるとコードが随分小さくなるので 助かります!!! class testClass { public string txt { get; set; } public int intdata { get; set; } } static void Main(string[] args) { List<testClass> ts = new List<testClass>(); ts.Add(new testClass { txt = "a", intdata = 1 }); ts.Add(new testClass { txt = "b", intdata = 2 }); var tsFnc = ts.Select(e => e.txt == "a" ? e.intdata = e.intdata * -1); //←エラー }
349 名前:デフォルトの名無しさん (ブーイモ MM31-m5qj) mailto:sage [2016/11/09(水) 21:46:02.27 ID:GH2RO7KKM.net] e.txt == "a" ? new testClass() { txt = e.txt , intdata = -e.intdata } : e
350 名前:デフォルトの名無しさん (ワッチョイ e9dc-dKGq) mailto:sage [2016/11/09(水) 21:58:25.28 ID:EZkCstT40.net] それインラインのラムダで書いてしまうとコードの意図がわかりにくいから static testClass Hoge(testClass e) => (>>345 ); のようにメソッドとして外出しした上で ts.Select(Hoge) と書くのがいいんじゃないかな メソッド本体をラムダの形式でスマートに記述できるようになったことだし、 ちょっと複雑なラムダには積極的にメソッド名を付けることを心がけるといい
351 名前:デフォルトの名無しさん (ササクッテロレ Spbd-m5qj) mailto:sage [2016/11/09(水) 22:25:47.94 ID:qcMduGDNp.net] >>344 そりゃ値を返さなければエラーになるよな ts.Select( (e) =>{ if(e.txt=="a") e.intdata*=-1; return e; });
352 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) [2016/11/09(水) 22:41:05.99 ID:xe8Gs44h0.net] >>347 期待した結果が出ました。 ありがとうございます!!! 色んなサイトを回ったのですが、なかなか条件式を書いているサンプルが無かったもので、助かります!!!
353 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/09(水) 22:44:01.71 ID:xe8Gs44h0.net] >>346 従来のやり方を単純にラムダに変えるのではなく、 ラムダ的なスマートさも追及すべきということですね。 参考になります。
354 名前:デフォルトの名無しさん (ワッチョイ 7220-8n5s) mailto:sage [2016/11/09(水) 22:49:39.71 ID:xe8Gs44h0.net] ラムダというかLINQは凄い便利なんですけど、 なんか重いんですよね。 やぼったく書いていた処理をラムダにしたら 可読性が上がった反面、処理に倍の時間がかかるようになってしまい。。。 便利ゆえの宿命なのか、 使いこなせてないだけなのか、 その両方かって気がしています。
355 名前:デフォルトの名無しさん (ワッチョイ 5eed-DGmA) mailto:sage [2016/11/09(水) 22:52:28.34 ID:GViSYmlw0.net] 適宜ToArrayしろってResharperが言ってた
356 名前:デフォルトの名無しさん (ワッチョイ 8a02-2mfK) mailto:sage [2016/11/09(水) 23:09:04.87 ID:xK7OwzcU0.net] LINQにしたら倍ほど遅くなるコードって例えばどんなん?
357 名前:デフォルトの名無しさん (ワッチョイ e9dc-dKGq) mailto:sage [2016/11/09(水) 23:23:27.68 ID:EZkCstT40.net] >>347 はないわ インプレースで更新するんなら普通に foreach (var e in ts) if (e.txt == “a”) e.intdata *= 1; でいいだろ 副作用がないように見えてこっそり更新してるってのは罠に近い極めてタチの悪いコード
358 名前:デフォルトの名無しさん (ブーイモ MM31-m5qj) mailto:sage [2016/11/09(水) 23:31:35.24 ID:GH2RO7KKM.net] >>352 実処理がメソッド呼び出しオーバーヘッドより少ない時かな ボトルネックにはならないけど倍以上にはなる
359 名前:デフォルトの名無しさん (ワッチョイ f023-8n5s) mailto:sage [2016/11/09(水) 23:31:54.26 ID:0UIYYtz/0.net] もしLinqでやりたいのならForEachの拡張メソッドを書くか、IxをNuGetで入れるほうが健全だな
360 名前:デフォルトの名無しさん (ワッチョイ 9f02-u2pL) mailto:sage [2016/11/10(木) 01:11:52.00 ID:gZ1S6RPu0.net] >>354 サンプルコードある? その論理でいくと、実処理がゼロの時が最も顕著で 通常のループよりLINQでのループ(列挙)が倍以上遅いってことになるんだが 繰り返し判定が遅いのかループの準備が遅いのか知らんが LINQのほうが多少遅いとしても、どれだけ回したら有意な差がでるほどオーバーヘッドあるんだ
361 名前:デフォルトの名無しさん (ワッチョイ 8fe1-PwKp) mailto:sage [2016/11/10(木) 01:38:07.59 ID:zCCtWAZL0.net] 何万回も回すとか、コンパイラを作るとかじゃなければメソッド呼び出しのコストはほぼ無視できるはず たぶん、無駄のある書き方してるか、最適化を邪魔するような記述になってるんじゃないかな
362 名前:デフォルトの名無しさん (ブーイモ MM6f-9MLS) mailto:sage [2016/11/10(木) 01:48:41.09 ID:4pFcdHJlM.net] >>356 だからボトルネックにはならないって書いたじゃん 倍になろうが大したことない 遅い派の人は処理オーダー違うアルゴリズムと比較してるんだろ
363 名前:0-WVKM) mailto:sage [2016/11/10(木) 02:05:10.17 ID:wdbpo9Rt0.net] 倍遅いって記述がアレで単にループ倍増しているだけじゃね
364 名前:347 (ワッチョイ 033c-9MLS) mailto:sage [2016/11/10(木) 02:45:22.58 ID:BAuxaWeL0.net] >>353 いや俺に言われても>>344 が求めてるのは "LinqのSelectで〜メンバ「intdata」の符号を反転する" 方法だからな 要求仕様がLinqのSelectで行うことを明示していて、intdataの反転した別インスタンスを返すではなくメンバ変数を反転すると定義しているならそう書くだけだ こんな書き方するべきじゃないってのはその通りだがそれは>>344 に言ってくれ
365 名前:デフォルトの名無しさん (オッペケ Sr2f-WFrU) mailto:sage [2016/11/10(木) 03:27:07.24 ID:+tyQ2nEUr.net] 副作用は書かないのがコツ。 >>345 が考え方としてはよろしい。
366 名前:デフォルトの名無しさん (オイコラミネオ MMdf-h9op) mailto:sage [2016/11/10(木) 09:30:47.14 ID:SIcifk3eM.net] IxとRxってどう違うの
367 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/10(木) 10:49:41.41 ID:otGHoxmha.net] 普通に考えてそもそもSelectを使うのがおかしいw >>353 は途中まで普通のこと言ってるのに>>345 は否定しないのはおかしいw
368 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/10(木) 12:52:58.94 ID:+0vOVL7/0.net] >>347 は副作用ないしインスタンスの同一性に拘らないなら目的は果たせてるだろ 分かりにくい糞コードかもしれないが、コードの形をした糞である>>347 のように完全否定されるほどのものではないよ
369 名前:デフォルトの名無しさん (ワッチョイ 033c-9MLS) mailto:sage [2016/11/10(木) 13:14:42.66 ID:BAuxaWeL0.net] こういう議論が面倒だから>>344 の要求に忠実に書いた訳だが… そもそもSelectを使うのが間違いというのは議論の余地がないからいいとして、副作用を避けるなら>>345 はないわw 元のインスタンスと別インスタンスとを混在させて返すってのは罠じゃないのかと new testClass() { txt = e.txt , intdata = e.intdata*(e.txt=="a"?-1:1) }; 別インスタンスを返すなら符号の反転の有無に関わらず必ず別インスタンスで返すべき
370 名前:デフォルトの名無しさん (ワッチョイ a723-teht) mailto:sage [2016/11/10(木) 13:43:53.32 ID:o8sMendu0.net] つか、select使わずに拡張メソッド作ったほうがよくね 例えばこんなやつ ideone.com/YQ5uTI
371 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/10(木) 20:14:55.52 ID:jVtZ8e8U0.net] WPFでVisual StudioのようなタブやドッキングウィンドウがあるUIを作りたく思い そのようなテンプレートを探しています 「AvalonDock」というものは見つけましたが他にご存知なら教えてください
372 名前:デフォルトの名無しさん (ブーイモ MMef-9MLS) mailto:sage [2016/11/10(木) 20:37:33.96 ID:uFjDSD4sM.net] >>365 もう少し視野を広くした方がいい データ転送オブジェクトや値オブジェクトといったワードで検索してごらん そのあとはクエリ・コマンド分離の原則を調べよう
373 名前:デフォルトの名無しさん (オッペケ Sr2f-WFrU) mailto:sage [2016/11/10(木) 21:24:48.41 ID:+tyQ2nEUr.net] >>366 それの有り難みが理解出来る人は人類では、ほとんどいないw
374 名前:デフォルトの名無しさん (ワッチョイ 7f20-teht) mailto:sage [2016/11/10(木) 22:02:45.75 ID:INda+yqE0.net] 下のようなコードで動的な数のtaskを作ることは できるでしょうか? static async Task ts() { List<Task> tsLists = new List<Task>(); var task1 = Task.Run(() =>{/*処理*/}); var task2 = Task.Run(() => {/*処理*/}); tsLists.Add(task1); tsLists.Add(task2); await Task.WhenAll(tsLists); } Task.WhenAllに配列を含めることができるのなら taskもできるのではと思いまして よろしくお願いします
375 名前:デフォルトの名無しさん (ワッチョイ b77b-eMoa) mailto:sage [2016/11/10(木) 22:55:20.24 ID:pEVMYV3p0.net] var task1 は、オブジェクトだろ? 当然、コンテナにも入れられる
376 名前:デフォルトの名無しさん (ワッチョイ 4379-teht) mailto:sage [2016/11/10(木) 22:56:21.90 ID:ApowNrKS0.net] C#の基本を理解していない奴がスレッドに手出したら死ぬからやめておけ
377 名前:デフォルトの名無しさん (ワッチョイ 7f20-teht) mailto:sage [2016/11/10(木) 23
] [ここ壊れてます]
378 名前::58:51.41 ID:INda+yqE0.net mailto: >var task1 は、オブジェクトだろ? オブジェクトと聞いて、下のようなコードを書いたら 期待通りの結果が出ました ありがとうございます class Program { static async Task ts() { List<Task> tsLists = new List<Task>(); List<object> taskArry = new List<object>(); taskArry.Add(Task.Run(() => { Console.WriteLine("1"); })); taskArry.Add(Task.Run(() => { Console.WriteLine("2"); })); foreach (var tsk in taskArry) { var task = tsk; tsLists.Add((Task)task); } await Task.WhenAll(tsLists); } static void Main(string[] args) { var t = ts(); t.Wait(); for (;;) ; } } 思いつきで書いているので、アンチパターンをしているかも知れませんが。。。 [] [ここ壊れてます]
379 名前:デフォルトの名無しさん (ワッチョイ 8394-5NgJ) mailto:sage [2016/11/11(金) 02:00:56.00 ID:/+d8XFyb0.net] >>370 のコードの方は、まぁ、普通 (TaskふたつくらいならわざわざListは使わないけど) しかし、>>373 は……どうしてこうなった
380 名前:デフォルトの名無しさん (ササクッテロリ Sp2f-9MLS) mailto:sage [2016/11/11(金) 02:40:34.81 ID:6sQwg64Zp.net] ソフトの設定をシリアル化するために一つのクラスにまとめたのはいいけどどうアクセスするのが普通なのかよく分かりません 全部public staticにして直接さわってもいいのでしょうか
381 名前:デフォルトの名無しさん (ワッチョイ b37b-hNMU) mailto:sage [2016/11/11(金) 03:31:49.89 ID:by5SD+CT0.net] switch文で文字列による分岐をする場合 var hoge="hoge"; // パターン1 var firstChar=hoge.SubString(0,1); switch(firstChar){ case "a": switch(hoge){ case "akina": ・・・ case "akiko": ・・・ case "asaka":: ・・・ case "amika": ・・・他ずらっと続く } break; case "h": switch(hoge){ case "honoka": ・・・ case "hosaka": ・・・ case "hoge": ・・・他ずらっと続く } break; } // パターン2 switch(hoge){ case "akina": ・・・ case "akiko": ・・・ case "asaka":: ・・・ case "amika": ・・・ case "honoka": ・・・ case "hosaka": ・・・ case "hoge": ・・・ } パターン1、2でどちらが目的の文字列にたどり着く速度が早いのでしょうか
382 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/11(金) 04:06:38.01 ID:qvZdoaA90.net] ... DropShadowEffect.Color="{Binding RelativeSource={RelativeSource AncestorType={x:Type ContextMenu}},Path=(params:General.ShadowBrush).(SolidColorBrush.Color)}" /> この記述に間違いはありますでしょうか?
383 名前:デフォルトの名無しさん (ワッチョイ 937b-teht) mailto:sage [2016/11/11(金) 04:43:55.58 ID:MLb8BpI60.net] >>376 後者
384 名前:デフォルトの名無しさん (ワッチョイ 3319-7KSV) mailto:sage [2016/11/11(金) 08:50:36.60 ID:OnmZcNT90.net] >>377 Path中の括弧は基本的に添付プロパティの指定に使うもんだけど 型明示とかの意味で使おうとしてない?
385 名前:デフォルトの名無しさん (ワッチョイ b77b-eMoa) mailto:sage [2016/11/11(金) 10:27:04.66 ID:M2uBl8fv0.net] >>373 >List<Task> tsLists = new List<Task>(); >List<object> taskArry = new List<object>(); クラスの継承チェーンでは、Objectクラスがすべてのクラスの基本で、 Object以外のクラスは、すべてそこから派生している。 もちろん、Taskクラスも、Objectクラスの派生クラス Objectクラスは親クラスで、より抽象的なもの。 Taskクラスは派生クラスで、Objectクラスより具体的で、限定されているため安全だから、 Taskをそのまま使えばいい Taskクラスは、Objectクラスが持っている、属性・メソッドをすべて持っているから、 そのままObjectクラスとして使える。 (Task)task で、キャストする必要などない オブジェクト指向を、基本から勉強すべし
386 名前:デフォルトの名無しさん (ワッチョイ b77b-eMoa) mailto:sage [2016/11/11(金) 10:43:07.91 ID:M2uBl8fv0.net] >>376-378 漏れも、辞書データベースを作る際、 aで始まる単語の表・bで始まる単語の表・cで始まる単語の表、などのように表を分けるか、 すべてを1つの表にするかで迷う パターン1の方が、先に限定(枝刈り)されるから、速いような気がするけど、 caseが8つ以上あると、コンパイラが最適化して、 文字列をハッシュ化(整数化)するかも知れないので、パターン2の方が速いかも
387 名前:デフォルトの名無しさん (スッップ Sd1f-PwKp) mailto:sage [2016/11/11(金) 12:20:00.46 ID:B0EI7WuJd.net] トライ木って奴だな 実際Stringのハッシュにこれが使われてるかは知らんが
388 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/11(金) 12:26:36.61 ID:TqB+9XQ4a.net] >>376 実験して報告してw あと、Dictionary<String, Action>を使うケースも追加で でもまあ、人が手動でコーティングできる程度の分岐では直感的には 後者の方が速そうな気がする。
389 名前:デフォルトの名無しさん (ワッチョイ 4bda-teht) mailto:sage [2016/11/11(金) 12:31:45.60 ID:UQPlBidt0.net] DictionaryにFunc突っ込んだほうがスッキリしていいだろう
390 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/11(金) 17:11:54.51 ID:TqB+9XQ4a.net] >>376 あと細かいことだけど、「分類」に使うのが常に最初の1文字だけなら 素直にcharにした方が(つまりhoge[0])の方が速い気が
391 名前:デフォルトの名無しさん (ブーイモ MM1f-9MLS) mailto:sage [2016/11/11(金) 20:20:29.68 ID:Bi+hCNL7M.net] >>375 設定クラスとファイルは適度に分割する staticは使わない 設定読み取りインターフェースとクラスを作る 設定に依存するクラスにインジェクションする
392 名前:デフォルトの名無しさん (ワッチョイ 8fe1-PwKp) mailto:sage [2016/11/11(金) 22:27:34.93 ID:+gNs9Nbk0.net] >>376 多分後者は最適化でジャンプテーブルに変わるのでそっちのほうが早いかなぁ
393 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/12(土) 00:58:23.88 ID:e739leKk0.net] >>376 本気で最適化するならプロファイル取って出現頻度順にソート 一般的にそういうのは分布がかなり偏るので統計的に速くなる
394 名前:デフォルトの名無しさん (ワッチョイ 57ce-Cgco) mailto:sage [2016/11/12(土) 08:39:07.19 ID:rgkWnGP70.net] 内部で二分探索やジャンプテーブルに変わろうが、毎回文字列を比較してる時点で遅い 分量が不明ならDictionaryに変えるべき 自分でアルゴリズム実装する場合はC#ではunsafeにしない限り遅い
395 名前:デフォルトの名無しさん (ブーイモ MM6f-9MLS) mailto:sage [2016/11/12(土) 08:56:42.02 ID:NIqnWzQ8M.net] 仮に倍早くなっても辞書をハードコードされたswitchで実装はしたくないな
396 名前:デフォルトの名無しさん (ワッチョイ 57ce-Cgco) mailto:sage [2016/11/12(土) 09:36:17.93 ID:rgkWnGP70.net] 比較前に一意な文字列に変換して、文字列値としてではなくアドレスやハッシュ値を探索するのが一番速いんだけど そういうのって標準にないんだっけ
397 名前:デフォルトの名無しさん (ワッチョイ a723-teht) mailto:sage [2016/11/12(土) 09:47:10.83 ID:IKX2nQlp0.net] 昔見たLinuxのシェルのソースじゃ最初の方のスイッチ使ったロジックだったな C言語の文字列の扱いなら速度差もあるかもしれんね
398 名前:デフォルトの名無しさん (ブーイモ MM6f-9MLS) mailto:sage [2016/11/12(土) 10:14:16.67 ID:gzcT9VGJM.net] >>391 Internというのがある 同じ値の文字列を同じインスタンスの文字列にして返す
399 名前:デフォルトの名無しさん (ワッチョイ 9f02-u2pL) mailto:sage [2016/11/12(土) 15:14:10.12 ID:Ayj+NND50.net] caseずらずらと並べると、順次検索するのか? それだとAxxxは早いけどYxxxは遅いとかいうことになると思うんだが 単純にどっちが早いかなんて比較できんわな
400 名前:デフォルトの名無しさん (ワッチョイ 7f17-C1EH) mailto:sage [2016/11/12(土) 15:33:15.88 ID:duqbQJlR0.net] 質問です アプリにメインのフォームとモードレスなフォームの二つがあります モードレスなフォームを操作したあとに メインのフォームのボタンを押そうとすると メインのフォームへフォーカスをあてるためにワンクリック、 ボタンを押すためにもう一回ワンクリックという具合に 2回クリックしないといけないのですが、 これをワンクリックに縮める方法はなにかありますか? (一つのウィンドウにまとめる方法以外で)
401 名前:デフォルトの名無しさん (ワッチョイ 033c-9MLS) mailto:sage [2016/11/12(土) 15:42:42.07 ID:IIxQEFvy0.net] 世界一IQの低いソースコードはこれ。ってネタを思い出したわ >>394 switch はジャンプテーブルでの実装なので末尾のラベルであっても先頭のラベルと処理時間に差は出ない また同じ理由から選択肢の数が増えても処理時間は殆ど増えない
402 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:sage [2016/11/12(土) 15:47:36.63 ID:kNoTIrA70.net] >>396 おいおい,一度に全部を比較できないだろう? Axxx は最初の方に比較するし Yxxx は最後の方に比較するのだったら Yxxx が確定するまでの時間は Axxx よりも大きくなるのでは? ジャンプテーブルにしようが,個々の分岐によって時間差が出るのではないかね
403 名前:デフォルトの名無しさん (ワッチョイ b75e-FQoa) mailto:sage [2016/11/12(土) 15:58:38.99 ID:GAbwEXNG0.net] >>395 メインのフォームのボタンにMouseEnterでthis.Activate()とFocus()するようにしたら フォーカスをあてるための分は省略できる
404 名前:デフォルトの名無しさん (ワッチョイ 6bed-eZXk) mailto:sage [2016/11/12(土) 16:17:42.31 ID:VXYUWtaP0.net] >>395 WM_MOUSEACTIVATEでググるといい
405 名前:デフォルトの名無しさん (ワッチョイ 6f3c-PwKp) mailto:sage [2016/11/12(土) 16:30:32.34 ID:HzMgTMM90.net] >>397 ジャンプテーブル自体を知らないなら初心者スレだからまああるとは思うがジャンプテーブル知ってて > Axxx は最初の方に比較するし > Yxxx は最後の方に比較するのだったら > Yxxx が確定するまでの時間は Axxx よりも大きくなるのでは? はないわ 言葉だけ中途半端に覚えてる知ったかなんだろうな...
406 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:sage [2016/11/12(土) 16:34:08.09 ID:kNoTIrA70.net] >>400 お前,物事を本当に突き詰めて考えたことが無いんだろう? 今回の文字列比較では差が出て当然 ジャンプテーブルといっておれば,とか間抜けにもほどがある
407 名前:デフォルトの名無しさん (ワッチョイ c3a1-PwKp) mailto:sage [2016/11/12(土) 17:10:42.68 ID:x4E8HTQB0.net] 文字列比較でテーブル上の位置を特定するには結局ハッシュテーブルと同様の実装がされてるんじゃないの 低レベルな分僅かに高速に動くかも知らんが
408 名前:デフォルトの名無しさん (ワッチョイ 7f17-C1EH) mailto:sage [2016/11/12(土) 17:11:17.70 ID:duqbQJlR0.net] >>398-399 toolStripに対して、>>398 のMouseEnterでthis.Activate()とFocus()する方法でできました WM_MOUSEACTIVATEをハンドルする方法もあるのですね。勉強になります ありがとうございます
409 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:sage [2016/11/12(土) 17:21:06.75 ID:kNoTIrA70.net] >>402 お前すべての文字列についてハッシュ値が異なるように設計できるとでもいうのか? ハッシュ値をジャンプテーブルに使うとはそういうことだ,そんな無茶な主張をするのか?
410 名前:デフォルトの名無しさん (ワッチョイ a7da-teht) mailto:sage [2016/11/12(土) 17:24:24.15 ID:5Ttb/Uep0.net] ハッシュテーブルと言ってる人につっかかるなよ
411 名前:デフォルトの名無しさん (ワッチョイ 6f3c-PwKp) mailto:sage [2016/11/12(土) 19:31:45.56 ID:HzMgTMM90.net] >>404 知ったか君は完全ハッシュも知らないのになんでそんな偉そうなのか理解に苦しむ w
412 名前:デフォルトの名無しさん (ワッチョイ 8fe1-PwKp) mailto:sage [2016/11/12(土) 19:37:48.04 ID:SdQQy6fO0.net] 現在はもっと最適化が入るかもしれんが、やっぱりハッシュテーブルだね qiita.com/NetSeed/items/fd5cd2cdb2ba021518ca ハッシュが衝突するときだけ文字列比較に行くんじゃないかな まぁ、hashdosでもされない限りボトルネックにはなりにくいんじゃない?
413 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:sage [2016/11/12(土) 19:52:58.86 ID:kNoTIrA70.net] >>406 で,不特定な文字列に対して比較する場合に完全ハッシュを実現することはできるの? >>407 ハッシュが衝突するかどうかは,文字列比較までやってしまわないと判明しないのでは?
414 名前:デフォルトの名無しさん (ワッチョイ 8fe1-PwKp) mailto:sage [2016/11/12(土) 20:01:20.50 ID:SdQQy6fO0.net] >>408 聞く前に実装を確認したほうが早い https://referencesource.microsoft.com/#mscorlib/system/collections/generic/dictionary.cs,bcd13bb775d408f1
415 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:ちょっとすり替えたw [2016/11/12(土) 20:11:38.18 ID:kNoTIrA70.net] >>409 なるほどね,不特定な文字列のみ対象とする連想配列ならば,まずはハッシュで付き合わせるのは「あり」なんだね でも,特定文字列と不特定な文字列比較の case の実装について話しているのに,不特定な文字のみ対象の連想配列の例を出すのはどうかと思うよ
416 名前:デフォルトの名無しさん (ワッチョイ 6f3c-PwKp) mailto:sage [2016/11/12(土) 20:31:54.23 ID:HzMgTMM90.net] >>408 > で,不特定な文字列に対して比較する場合に完全ハッシュを実現することはできるの? コンパイル時に確定してるなら可能 完全ハッシュ アルゴリズム とかでググれ > ハッシュが衝突するかどうかは,文字列比較までやってしまわないと判明しないのでは? ハッシュの衝突の意味がわかってないのか? 異なる入力に対して同一のハッシュ値が生成されることで当然コンパイル時にわかるから衝突するハッシュ値が生成された時だけ文字比較すればいいだけ
417 名前:デフォルトの名無しさん (スフッ Sd1f-PwKp) mailto:sage [2016/11/12(土) 20:35:13.60 ID:nrwwVciNd.net] >>410 なんか違和感。 不特定の文字列の中に、特定の文字列は内包されるような気がする。概念的な話になるけど。
418 名前:デフォルトの名無しさん (ワッチョイ 7f13-ChQh) mailto:sage [2016/11/12(土) 20:41:39.03 ID:kNoTIrA70.net] >>411 >コンパイル時に確定してるなら というのは不特定の文字列とはいわないよ 何がくるか分からない文字列に対して完全ハッシュは無理 >>412 もう少しお話をおききしたいが
419 名前:デフォルトの名無しさん (ワッチョイ 6f3c-PwKp) mailto:sage [2016/11/12(土) 20:54:31.74 ID:HzMgTMM90.net] >>413 ああ、入力側の話か 分岐した後に一度だけ確認すればいいだけ 確認すべき文字列は確定してるから
420 名前:デフォルトの名無しさん (スフッ Sd1f-PwKp) mailto:sage [2016/11/12(土) 21:31:32.38 ID:nrwwVciNd.net] >>413 うーん、不特定な文字列に対して安全なら、それは特定の文字列に対しても安全では無いの? パフォーマンスは置いといて。 この包丁は誰にとっても安全です、なら、この俺にとっても安全だろうし、>>413 にとっても安全だと。 竹光でもさ。 ハッシュが衝突するならオープンアドレス法かなんかでシノニムうまく扱うしか無いけど。 現実問題、Knuthのあの関数でそうそう衝突はしないけど。
421 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/12(土) 21:48:02.84 ID:SCKfSUb2a.net] >>395 これ、せっかくVista以降改善された仕様を無にする行為だと思うんだけど
422 名前:デフォルトの名無しさん (ワッチョイ 57ce-Cgco) mailto:sage [2016/11/12(土) 21:53:54.19 ID:rgkWnGP70.net] ウィンドウのフォーカス周りって10で相当わけわかめな仕様になってない? ところでわけわかめって通じる?
423 名前:デフォルトの名無しさん (ワッチョイ 033c-Cgco) mailto:sage [2016/11/12(土) 21:56:33.32 ID:tSXTeFta0.net] 通じる(30代)
424 名前:デフォルトの名無しさん (ワッチョイ 57ce-Cgco) mailto:sage [2016/11/12(土) 21:58:32.19 ID:rgkWnGP70.net] 何時頃だったか裏にいたウィンドウがアクティブになろうとしてブリンクするいらん仕様を盛り込んでから俺の中で既におかしくなってるけど 10でさらにわけわかめになってる
425 名前:デフォルトの名無しさん (ワッチョイ 7f13-PwKp) mailto:sage [2016/11/12(土) 22:56:05.49 ID:TM8SsXVk0.net] >>417 「意味とろろ」まで付けないとだめ
426 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/13(日) 03:09:33.62 ID:sNDrzqcx0.net] ファイルをサーチしてそのFileInfo.FilenameをListBoxに表示したい。 あとでItemをクリックしたとき、FileInfoの別のプロパティも参照したいのでFileInfo 自体もListBoxに保存しておきたい。 1.ListBoxを継承したコントロールを作るのは手間がかかる。 2.ListBoxを継承したクラスを作って、Formにaddすることもできるが、これだと 位置とサイズを設定するのが面倒だ。 なにか良い方法はないか?
427 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/13(日) 03:28:05.31 ID:sNDrzqcx0.net] 自己解決した。
428 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/13(日) 03:33:14.17 ID:sNDrzqcx0.net] やっぱりだめやった。Objectは保存できるが、Stringも同時に保存したい。 二つ同時はむつかしいやろな。
429 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/13(日) 03:33:57.68 ID:sNDrzqcx0.net] やっぱり解決した。W thanks
430 名前:デフォルトの名無しさん (ブーイモ MM6f-9MLS) mailto:sage [2016/11/13(日) 11:41:32.61 ID:l4pNS+tdM.net] おめでとう
431 名前:デフォルトの名無しさん (ワッチョイ d317-eZXk) mailto:sage [2016/11/13(日) 11:48:17.12 ID:DlcyGqZP0.net] ワロタ
432 名前:デフォルトの名無しさん (ワッチョイ 9f02-EqbM) mailto:sage [2016/11/13(日) 15:32:47.36 ID:PMfnb6vA0.net] WPFのリストボックスとか任意の型のリストで持てるんじゃなかったっけ
433 名前:デフォルトの名無しさん (オッペケ Sr2f-PwKp) mailto:sage [2016/11/13(日) 15:35:53.81 ID:LTz5BAc9r.net] まじかよ糞フォームは独自リストをバインドすることもできないのか
434 名前:デフォルトの名無しさん (ワキゲー MMff-UXqH) mailto:sage [2016/11/13(日) 16:33:34.20 ID:bY6b9EITM.net] ListBoxはバインドできるよ ListViewは無理だけど
435 名前:デフォルトの名無しさん (オッペケ Sr2f-PwKp) mailto:sage [2016/11/13(日) 16:37:40.46 ID:uxmSSaQNr.net] WPFのメリットってなに?
436 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) mailto:sage [2016/11/13(日) 17:48:03.25 ID:sNDrzqcx0.net] public static int CountList<T>(List<T> list, Func<T, bool> predicate) { int count = 0; foreach (T element in list){ // predicateが参照するメソッドを、elementを引数に渡し呼び出している if(predicate(element)){ // 真ならカウンタをインクリメント count++; } } return count; } CountList<T> これはT型の変数を返すという意味なのにリターンはstatic int なのはなぜ?
437 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) mailto:sage [2016/11/13(日) 17:53:19.93 ID:sNDrzqcx0.net] public static T CountList<T>(List<T> list, Func<T, bool> predicate) これの間違いか?
438 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) mailto:sage [2016/11/13(日) 17:56:52.79 ID:sNDrzqcx0.net] >WPFのメリットってなに? UIをプログラムはできなくても絵の得意な人がやってモデルをプログラマーが専念 できるということかな。
439 名前:デフォルトの名無しさん (ワッチョイ 033c-Cgco) mailto:sage [2016/11/13(日) 18:01:22.99 ID:r+Z8oKZ70.net] WinFomsではやりにくいGUIも、WPFでなら作りやすいってケースはある
440 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/13(日) 18:05:48.45 ID:T5+9PjbV0.net] >>433 現実的にはデザイナーがBlendでXAML作るなんて不可能だけどね デザイナーに期待できるITスキルは唯一HTML/CSSだけだよ
441 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/13(日) 18:07:10.18 ID:sNDrzqcx0.net] これはどういう意味? 複雑すぎてわからん。 static String ToResult<TSource>(this IEnumerable<TSource> source) { return "{" + string.Join(", ", source) + "}"; } static String ToResult<TKey, TSource>(this IEnumerable<IGrouping<TKey, TSource>> source) { return source.Select(group => string.Format("Key={0}, Source={1}", group.Key, group.ToResult())).ToResult(); }
442 名前:デフォルトの名無しさん (ワッチョイ b7ba-teht) mailto:sage [2016/11/13(日) 18:12:30.43 ID:pC0Itdjh0.net] 我慢してコードビハインド使わない縛りでやったらUIテストが楽そうだと思った。
443 名前:デフォルトの名無しさん (オッペケ Sr2f-PwKp) mailto:sage [2016/11/13(日) 18:30:15.49 ID:uxmSSaQNr.net] >>433 そーなのか ずっとWinFormしか触ってないんだけど、WinFormのコントロールと同じような動作をWPFに求めてもそういうのは用意されてないの? たとえばWinFormのDataGridViewには自動的に絡む幅とか調整してくれるメソッドとかあるけどWPFには用意されてないとか? >>434 逆もある?
444 名前:デフォルトの名無しさん (アウアウイー Sa0f-PwKp) mailto:sage [2016/11/13(日) 18:45:13.54 ID:lfE9hohca.net] >>435 割と良いXAML来るけどな。うち。
445 名前:デフォルトの名無しさん (スププ Sd1f-PwKp) mailto:sage [2016/11/13(日) 19:32:10.60 ID:BXznGnDQd.net] >>434 その逆もあるよね
446 名前:デフォルトの名無しさん (ワッチョイ a723-teht) mailto:sage [2016/11/13(日) 20:47:49.40 ID:lO2MkZMm0.net] >>440 xamlは覚えるまでに苦労するけど、覚えちまったらFormsより遥かに素早く簡単に出来るんだけどな
447 名前:デフォルトの名無しさん (ワッチョイ b33a-teht) mailto:sage [2016/11/13(日) 21:29:38.43 ID:fclqIQTb0.net] >>431 > CountList<T> これはT型の変数を返すという意味なのに その T は型引数に T を取るという意味
448 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/13(日) 22:11:24.34 ID:e/ThXpat0.net] メニューのボタンを押したら異なるViewの特定の要素にアクセスしたいのですが、どうすればいいですか? ElementNameでは同じViewに記述していないと駄目?みたいで困っています RelativeSourceを使えば良いのでしょうか?でも記述方法がわかりません・・・。よろしくお願いします Menu.xaml <MenuItem Header="Test1表示" IsCheckable="True" IsChecked="{Binding IsVisible, ElementName=Test1}" /> ←ボタンを押したら Test.xaml <Grid x:Name="Test1"> ←これにあるIsVisibleが切り替わるようにしたい
449 名前:デフォルトの名無しさん (ワッチョイ 4b49-VsRF) mailto:sage [2016/11/14(月) 00:31:18.15 ID:HFnn5wUH0.net] >>440 Formの方がやりやすいGUIってどんなの?
450 名前:デフォルトの名無しさん (ワッチョイ 57ce-Cgco) mailto:sage [2016/11/14(月) 01:58:30.32 ID:ktK+BwK20.net] xaml←これなんて読むんですか!
451 名前:デフォルトの名無しさん (ワッチョイ 9fa6-teht) [2016/11/14(月) 02:01:05.98 ID:dUUXzUko0.net] ザームル
452 名前:デフォルトの名無しさん (ワッチョイ 377b-U3jc) [2016/11/14(月) 03:26:59.64 ID:OCTkBwGI0.net] static void Swap<T>(ref T lhs, ref T rhs){ T temp; temp = lhs; lhs = rhs; rhs = temp; } 呼び出しは Swap<int>(ref a, ref b); 省略して Swap(ref a, ref b); これはダメか? これでもいいよな。 Swap( a, b);
453 名前:376 (ワッチョイ b37b-hNMU) mailto:sage [2016/11/14(月) 04:35:40.38 ID:v43jjczV0.net] テストプログラムを作ってみました。 ideone.com/JtZ5ui 間違った評価していないか確認して頂きたく。 各テストを1000万回ずつ回した結果は TestPattern1 test1 elapsed:198msec hitCounter:10000000 test2 elapsed:197msec hitCounter:10000000 test3 elapsed:196msec hitCounter:10000000 TestPattern2 test1 elapsed:192msec hitCounter:10000000 test2 elapsed:183msec hitCounter:10000000 test3 elapsed:183msec hitCounter:10000000 TestPattern3 test1 elapsed:192msec hitCounter:10000000 test2 elapsed:191msec hitCounter:10000000 test3 elapsed:186msec hitCounter:10000000 TestPattern4 test1 elapsed:261msec hitCounter:10000000 test2 elapsed:261msec hitCounter:10000000 test3 elapsed:261msec hitCounter:10000000 firstCharで絞っても大した差は無し。 Dictionary<string,Action>は遅い。 でした。 core i7 6700k Releaseビルド Debugビルドにするとめちゃ遅い
454 名前:デフォルトの名無しさん (ワッチョイ ef9f-WrRy) mailto:sage [2016/11/14(月) 05:52:45.45 ID:/TJLzgQW0.net] それ最適化でswitchが丸ごと無くなるんじゃないの?
455 名前:デフォルトの名無しさん (ワッチョイ 4bc0-WVKM) mailto:sage [2016/11/14(月) 12:20:13.87 ID:SBSYakm50.net] どうせいつもの100万回で数百msの差だろと思ったら、試行回数も差も一桁違ってた・・・ 考えるだけ無駄だわな
456 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/14(月) 12:27:16.06 ID:QoZcYnGka.net] >>448 繰り返し回数よりcaseの数の方が肝だと思うけど
457 名前:デフォルトの名無しさん (ワッチョイ 6f7d-teht) mailto:sage [2016/11/14(月) 13:04:48.53 ID:BB8aMjT80.net] DebugだとDictionaryだけ速いんだな
458 名前:デフォルトの名無しさん (ワッチョイ b39f-cYps) mailto:sage [2016/11/14(月) 15:03:27.08 ID:+U0ySF0b0.net] VS2013 .Net4.5.1 文字列のswitchがDictionary<string, int>→switch(int)みたいなILになってるので test4がわずかに速いな TestPattern2もstringCaseTestPattern1呼んでるぞ
459 名前:デフォルトの名無しさん (ワッチョイ 5387-MJQ8) [2016/11/14(月) 17:41:26.21 ID:Qgf5Rn5/0.net] 話に割り込んでしまってすみません。 次のようなことをやりたいのですが、そもそも可能でしょうか。 メインフォームで時間のかかるループ処理をやっていて、 その進行状況を別フォームを表示して、 別フォーム上に配置したプログレスバーで表示したいと思っています。 以前、ループ処理自体を別フォームで行っいプログレスバー表示はさせたことはありますが、 今回は、ループ処理はメインフォームで行いたいと考えていますが、 そもそも可能なのでしょうか。
460 名前:デフォルトの名無しさん (オッペケ Sr2f-WFrU) mailto:sage [2016/11/14(月) 19:12:23.97 ID:xSfNgSMsr.net] >>454 今なら、async, await 一択。
461 名前:デフォルトの名無しさん (ワッチョイ 6f7d-teht) mailto:sage [2016/11/14(月) 19:32:29.47 ID:42tRiMkK0.net] >>448 public static readonly Action 〜 で Actionのenumっぽいクラス作ると速い
462 名前:デフォルトの名無しさん (ドコグロ MM5f-wOPQ) mailto:sage [2016/11/14(月) 19:51:26.73 ID:kXxSR+DwM.net] >>454 できるけどはたから見たらなんでそんな構成なの? って感じ
463 名前:デフォルトの名無しさん (ワッチョイ 5387-MJQ8) mailto:sage [2016/11/14(月) 20:15:42.84 ID:Qgf5Rn5/0.net] >>455 ありがとうございます。 async使った作り方を検討してみます。 >>457 本当はプログレスバーを表示しているフォームでループ処理を実行できればいいのですが、 引数が大量になったりしてしまうので、メインフォームで処理を行いたいのです。 プログレスバーを別フォームにするのは、まあ、見栄えの問題ですね。
464 名前:デフォルトの名無しさん (スップ Sd1f-wOPQ) mailto:sage [2016/11/14(月) 21:22:47.48 ID:xjbQt/rmd.net] >>453 なぜ今どき4.5.1?
465 名前:デフォルトの名無しさん (スププ Sd1f-PwKp) mailto:sage [2016/11/14(月) 21:33:34.62 ID:gWk7pXe+d.net] >>459 しょうもないことにつっかかるね
466 名前:デフォルトの名無しさん (ワッチョイ b3dc-dJcJ) mailto:sage [2016/11/14(月) 21:35:10.48 ID:aL/Lu1lD0.net] .NET4.6はAPIレベルではほとんど変わってないしどうせインプレース更新で互換性あるから わざわざターゲットバージョンを上げて動作環境を狭める意味はほぼ無いだろ
467 名前:デフォルトの名無しさん (ワッチョイ 6f3c-wOPQ) mailto:sage [2016/11/14(月) 21:46:05.31 ID:NhhLZ04e0.net] >>458 別にやりたいようにやればいいんだが > 引数が大量になったりしてしまうので って言う理由はちょっとどうかと思う...
468 名前:デフォルトの名無しさん (ワッチョイ 57cb-wOPQ) mailto:sage [2016/11/14(月) 22:34:09.85 ID:3a+GOjdi0.net] >>459 いやあああああああああああ! 2.0ででちゃううううううう! 2.0 のままリリースしちゃうのぉおおおおおお! 恥ずかしいいいいいいい!
469 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/14(月) 23:53:59.37 ID:OlP0vwcQ0.net] >>461 サポート切れのバージョンをなんでわざわざ使ってんのかって突っ込みだろカス
470 名前:デフォルトの名無しさん (ワッチョイ 57cb-wOPQ) mailto:sage [2016/11/15(火) 00:09:10.73 ID:vnzlS/G+0.net] なんでって だってバージョン上げたら テストし直しじゃんよ そんな金ないだろっていうか 客が金出さねぇって言ってる以上動けないだろ って人多いと思うぜ 共存できない.netのバージョンの製品が同梱されてるときとか最新で組んでドヤ顔しててもうまく行くんだろか? それとも全部最新の.netでコンパイルし直すんだろか?
471 名前:デフォルトの名無しさん (ワッチョイ 57cb-wOPQ) mailto:sage [2016/11/15(火) 00:11:49.01 ID:vnzlS/G+0.net] すまん知識0だけど 職場の人間も似たような感じだったので 結局よくわからず下位バージョンに合わせて出しちゃったぜ
472 名前:デフォルトの名無しさん (ブーイモ MM1f-9MLS) mailto:sage [2016/11/15(火) 01:15:16.80 ID:R9/5GWGeM.net] バージョン非互換なんて滅多に起こらんよ 仮に起こっても数個のコンポーネントを少し弄る程度で解決できる 無論アプリの作りがマトモならって前提だけどな
473 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/15(火) 01:16:44.44 ID:MJdWHDsF0.net] >>465 再コンパ
474 名前:Cルする必要はないって、アホの>>461 ですら言ってるじゃねーか [] [ここ壊れてます]
475 名前:デフォルトの名無しさん (スップ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 01:18:25.54 ID:5Vfxrfmvd.net] >>467 C#6の中点くらいかな、まああれはUnicodeのせいだけど
476 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 02:29:36.45 ID:7Oesxf9ud.net] >>467 それを「起こってない」と検証する金の出処の話じゃないの? よく分かるけど。 起こってないのと、めったに起こらないし多分大丈夫、は違う。 鍵は全部締まってるの確認したよ、と、鍵締めたかどうか定かじゃないけどこの辺は治安いいから大丈夫、は全然違う。
477 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/15(火) 02:53:21.41 ID:NoTRkZnD0.net] WPFアプリケーションで言語を動的に切り替え可能な多言語化をしたいのですが、 調べてみるとResource.resxを使ったりxamlのResourceDictionaryを使ったりと色々あって困惑しています。 どのようなやり方が最適解なのでしょうか?
478 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/15(火) 05:52:35.99 ID:MJdWHDsF0.net] >>470 サポート切れのバージョンを使い続けることによるリスクより、4.5.1から4.5.2へのインプレース更新の方がはるかに安全だろ
479 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/15(火) 05:53:50.91 ID:MJdWHDsF0.net] >>471 デフォルトのロケールは?
480 名前:デフォルトの名無しさん (ワッチョイ 377b-EKpQ) mailto:sage [2016/11/15(火) 08:10:51.58 ID:7W+Eb75M0.net] public class FI { FileInfo _ff; string _dispdata; public FI(FileInfo fi) { FI(fi, false); //★error になる。なんとかならないのか? } public FI(FileInfo fi, bool mode) { _ff = fi; if(mode) _dispdata = string .Format ("{0,20}:{1,-35} {2,-100}", _ff.CreationTime, _ff.Name, _ff.DirectoryName ); else _dispdata = string .Format ("{0,20}:{1,-35}", _ff.CreationTime, _ff.Name); } public FileInfo finfo{ //★FileInfoという名前にしたいのにできない。何とかならないか? get { return _ff; } } } } ★をみて感想をください。
481 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 08:37:11.25 ID:7Oesxf9ud.net] >>472 サポート切れも何も。。 リスクとコストを天秤にかけるのは必要なことだろ。 はるかに、とか美味しい言葉で修飾せんと。 その程度の意識でみんなバージョン上げてんだなって思うな。
482 名前:デフォルトの名無しさん (ワッチョイ 377b-EKpQ) [2016/11/15(火) 08:51:04.93 ID:7W+Eb75M0.net] 474解決しました。たんくす
483 名前:デフォルトの名無しさん (スッップ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:05:01.57 ID:Sy8HLWAKd.net] >>475 お前サポート切れの.NET保証できんの?すげえな尊敬するわ
484 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:14:17.64 ID:7Oesxf9ud.net] >>477 保証をどう定義するかでしょ。 このシステムは動きます、の保証はするよ。
485 名前:デフォルトの名無しさん (ワッチョイ 4bc0-WVKM) mailto:sage [2016/11/15(火) 12:24:10.02 ID:pMl4CMoG0.net] MSは保証してないけど動くから保証しますで通用するからまた困るんだよな
486 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/15(火) 12:32:14.65 ID:CGrdF/ira.net] サポートっていうのは単に何か不具合が見つかった時にMS様がそれを修正する努力はします、 って程度の意味だからさあ... ビジネストーク的には意味があると思うけど実質的な意味はあんまりないと思うけどね個人的には
487 名前:デフォルトの名無しさん (スッップ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:38:22.77 ID:Sy8HLWAKd.net] >>478 脆弱性が見つかった時は?
488 名前:デフォルトの名無しさん (スププ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:55:55.09 ID:Z3/Q/mWPd.net] 客の社内環境が最新の.NET Framework許可してない場合も珍しくないしな
489 名前:デフォルトの名無しさん (ササクッテロレ Sp2f-9MLS) mailto:sage [2016/11/15(火) 13:15:07.06 ID:mY0gDrgyp.net] >>481 保守で定期的に金取ってるなら契約次第 そうでないなら「フレームワーク更新作業するなら発注してね」でいいだろ
490 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 14:20:03.90 ID:7Oesxf9ud.net] >>481 その脆弱性がシステムにとって致命的かどうか、 システム全体の検証工数と回避修正+波及箇所検証工数でどちらが勝つか(大体はラッパー作って使ってるから、その修正と波及箇所の動作検証で済む) 客が金どれだけ持ってるか、 の折り合いついた所だと思うよ。
491 名前:デフォルトの名無しさん (ワッチョイ 6f7d-teht) mailto:sage [2016/11/15(火) 14:37:14.63 ID:0U4qoaFD0.net] XP対応の4を使い続ける
492 名前:デフォルトの名無しさん (スプッッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 15:43:51.26 ID:ODQ0lCKgd.net] >>482 誰も最新の話なんてしてないよ
493 名前:デフォルトの名無しさん (スプッッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 15:44:52.48 ID:ODQ0lCKgd.net] >>484 つまり、脆弱性が見つかってから検証を始めるってことね
494 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 17:05:58.01 ID:7Oesxf9ud.net] >>487 いや、改修したり、OSやミドルやライブラリやフレームワークを更新したら、その検証をするけど、 脆弱性が発見された箇所自体はKBやらで出た内容からソース中の出現箇所出して、依存ツリー出して把握するくらいだよ、その時点では。
495 名前:デフォルトの名無しさん (ワッチョイ 339a-zoBz) [2016/11/15(火) 17:08:40.62 ID:/cCbWJxV0.net] 既存のCで書かれたエミュレータをアンマネージドDLL化して、C#のGUIアプリから 呼び出して使えないかと思っています。 DLLの関数(1フレーム分進めるなど)を呼び出すことはできると思いますが、 その際にDLL内の特定の関数(ポートへの出力、画面更新など)
496 名前:ェ実行されたとき、 C#アプリ側でイベントとして捕捉する(C#側の関数が実行される)ようなことは できるんでしょうか。 [] [ここ壊れてます]
497 名前:デフォルトの名無しさん (ワッチョイ 8fe1-PwKp) mailto:sage [2016/11/15(火) 17:22:31.09 ID:PhOBmSZe0.net] >>489 コールバックとかを使えば多分行ける うまく行かないことがあればC++/CLIの出番かな
498 名前:デフォルトの名無しさん (ワッチョイ 3319-7KSV) mailto:sage [2016/11/15(火) 17:24:00.58 ID:weebeOlr0.net] そのDLLのソースを書き換えても良いのなら、 DLL側はコールバック登録関数を公開して必要なときに登録されてるコールバックを呼び出す って形は取れるけど。
499 名前:デフォルトの名無しさん (JP 0H6f-2n2A) mailto:sage [2016/11/15(火) 17:46:08.44 ID:4QSE1fRAH.net] オンメモリで改ざん
500 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/15(火) 17:50:32.92 ID:NoTRkZnD0.net] >>473 日本語です
501 名前:デフォルトの名無しさん (ワッチョイ 4b49-VsRF) mailto:sage [2016/11/15(火) 22:28:52.68 ID:YqUWOmsB0.net] >>471 Resource.resxを使うかResourceDictionaryを使うかは好み。 Resource.resxはGUIで設定できる。ロードする部分はシステムのロケール依存で良ければ自動。サテライトアセンブリが生成される ResourceDictionaryはxamlを自分で記述する。ロードする部分も自分で作成。サテライトアセンブリが生成されない 個人的にはResource.resxの方が好きかな。 で、動的に切り替えって、起動時に切り替えるだけじゃ足りない? 任意のタイミングで既存のGUIもぱっと切り替えるのが必要だとすると、上記だけじゃ駄目で、 ラッパー的なクラスを作成して、それに対してバインディングするようにする必要がある。
502 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/15(火) 23:15:19.81 ID:NoTRkZnD0.net] >>494 どちらとも動的に切り替えるところまでは作りました どっちにするかまだ迷っています どちらが世界的に主流でしょうか?
503 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/15(火) 23:23:38.02 ID:r0bdrrlQ0.net] >>495 WPF自体が主流には程遠いから好きにしろとしか
504 名前:デフォルトの名無しさん (ワッチョイ 3703-M1Ou) mailto:sage [2016/11/16(水) 14:46:22.40 ID:oJqix3AL0.net] ArrayListを使用した2次元配列を構築したいと考えております。 データは「実験項目」、「測定値」でファイルから読み出します。 一つの「実験項目」に対して任意数の「測定値」があり、任意数の「実験項目」があります。 ファイルを読み出さないとそれぞれの要素数がわからないため動的配列を使いたいと思っています。 「実験項目」、「測定値」共に1,000以内程度の予想です。 ArrayListは扱えていると思っているのですが2次元にする方法がよくわかりません。 ご教示いただけないでしょうか。よろしくお願いします。
505 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/16(水) 15:20:15.99 ID:Nmwy7smwa.net] >>497 ArrayListは10年以上前に役割を終えた旧式だからもう使っちゃだめ 代わりにList<T>でも使って List<T>も2次元にはできないが、そもそも2次元にする必要がない - TestItem(実験項目)にMeasured(測定値)のリストList<Measured>を持たせて、 - TestItemのリストList<TestItem>を作る これでOKでしょ 知らんけど
506 名前:デフォルトの名無しさん (ササクッテロレ Sp2f-9MLS) mailto:sage [2016/11/16(水) 15:31:15.35 ID:E4kD/LBwp.net] >>497 TestItem(実験項目)にMeasured(測定値)のリストを持たせたくない場合はDictionary<TestItem,List<Measured>>とか
507 名前:デフォルトの名無しさん (ワッチョイ 3703-M1Ou) mailto:sage [2016/11/16(水) 16:11:42.19 ID:oJqix3AL0.net] >>498-499 ご教示ありがとうございます。 やはりArrayListは非推奨なのですね。 List、Dictionaryを勉強してみます。
508 名前:デフォルトの名無しさん (オッペケ Sr2f-WFrU) mailto:sage [2016/11/16(水) 20:05:48.43 ID:qGX/+c5Jr.net] 何故に、そんなレガシーな亡霊がこの世に??
509 名前:デフォルトの名無しさん (ブーイモ MMef-9MLS) mailto:sage [2016/11/16(水) 20:19:51.08 ID:gtmrvLDzM.net] リファクタリングは悪 回帰テスト嫌だからコピペして新規追加しろ 日本はそういう文化だから理解しがたいレガシーコードで溢れかえる
510 名前:デフォルトの名無しさん (ワッチョイ 4bc0-WVKM) mailto:sage [2016/11/16(水) 20:38:27.57 ID:MMds4sI/0.net] >>501 キーワードでググったら上位にくるんじゃね あの手の骨董品コードが残り続けるのは本当害悪でしか無いわ
511 名前:デフォルトの名無しさん (ワッチョイ d3d6-teht) mailto:sage [2016/11/16(水) 20:49:59.04 ID:Ws6HNRv60.net] 文句はいつまでも互換性を持たせているマイクロソフトに言え
512 名前:デフォルトの名無しさん (ワッチョイ 273c-WVKM) mailto:sage [2016/11/16(水) 20:57:40.76 ID:MeLHc+gy0.net] 初心者です。 先日測定機のプログラムを作りました。 データ取得の処理中に進捗状況を表示させたくなりました。 フリーズしてるのと勘違いされないようにしたいわけです。 少し調べてみたら、どうやらマルチスレッドなるもの 使うようなんですが、これについて優しく書かれている サイトなどあればお教えいただければうれしいです。 よろしくおねがいします。
513 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/16(水) 21:08:39.93 ID:1s2sSz8X0.net] >>505 自分でThreadやTaskを明示的に作って使う必要があるケースは少ない 再現困難なバグを引き起こしやすいから、マルチスレッドを明示的に使うのは非同期プログラミングに慣れないうちはなるべく避けた方がいい シリアルか独自のSDKがあるのか知らないけど、何かの外部装置からデータ取ってるなら非同期で取るAPIは用意されてるだろ? もし同期APIしか用意されてない糞SDKなら仕方ないが、そうでない限りは用意された非同期APIを使うことを優先したらいい データをどうやって取ってるのかをお前が晒せばもっと具体的なアドバイスもできる
514 名前:デフォルトの名無しさん (ワッチョイ 37dc-WVKM) mailto:sage [2016/11/16(水) 21:10:52.22 ID:QT5715if0.net] >>505 時間のかかる処理をバックグラウンドで実行するには?[2.0のみ、C#、VB] − @IT www.atmarkit.co.jp/fdotnet/dotnettips/436bgworker/bgworker.html .NET開発における非同期処理の基礎と歴史 − @IT www.atmarkit.co.jp/fdotnet/chushin/masterasync_01/masterasync_01_01.html
515 名前:デフォルトの名無しさん (ワッチョイ cb94-5NgJ) mailto:sage [2016/11/16(水) 22:04:51.69 ID:PcfUB0DB0.net] 上のページはBackgroundWorkerの話で古すぎるし、 下のは歴史から説きおこしてるから最初から読むと長すぎる async awaitについて書いてあるここ↓くらいから読むのがいいかと www.atmarkit.co.jp/fdotnet/chushin/masterasync_02/masterasync_02_01.html 非同期API使うにしても、async await がわかってないと辛いだろうし
516 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/16(水) 22:20:31.36 ID:5Ihw572qa.net] そもそも非同期とは何かを理解せずにいきなりそんなの読んで理解できると思えませんがw
517 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/16(水) 23:41:29.23 ID:1s2sSz8X0.net] 初心者ならまずはEAPから入るのがいいんじゃないか awaitみたいな黒魔獣と違って仕組みが単純明快だし、使う側からすれば完全にシングルスレッドで非同期ができる 排他処理だのデッドロックだのいきなりマルチスレッド特有の問題を抱え込むより、 まずは純粋に非同期プログラミングのところだけを抽出して順番に理解していけばいいと思うよ
518 名前:デフォルトの名無しさん (ワッチョイ 2376-NcFo) mailto:sage [2016/11/16(水) 23:57:52.40 ID:cEthX6dM0.net] もっと単純に↓のworkメソッドの中で10%ごとぐらいにラベル表示とかするだけの話じゃないかな www.atmarkit.co.jp/ait/articles/0506/17/news111.html まずは目的達成を
519 名前:デフォルトの名無しさん (ワッチョイ 9c7b-XpIe) mailto:sage [2016/11/17(木) 00:43:08.63 ID:KQ/jS2NF0.net] ベジエ曲線の質問なんですが P1(10,10) P2(10,40) P3(40,10) P4(40,40) このような4点のベジエがあったとして、この放物線のP4の延長線を書きたい場合、 どのようにすればいいのでしょうか?
520 名前:デフォルトの名無しさん (ワッチョイ 3f49-YqEk) mailto:sage [2016/11/17(木) 00:56:22.10 ID:ViKAooID0.net] Invoke()も今は推奨されないんじゃないかなぁ
521 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/17(木) 01:43:36.99 ID:ypT0aoV/a.net] >>512 よく知らんけど、終了点の延長戦の方向は制御点から終了点向かう ベクトルに等しいはずだから、後は簡単な高校数学じゃないの?
522 名前:デフォルトの名無しさん (ワッチョイ 3faf-N7ik) mailto:sage [2016/11/17(木) 02:39:29.89 ID:Dxu6gLWd0.net] スレッド周りは古い情報が残りまくりでどうしたらいいのか難しすぎ 非同期処理とかで検索すると普通にasync awaitが見つかるけどプログレスバーとかで検索すると未だにBackgroundWorkerを使うとか書いてるから困る
523 名前:デフォルトの名無しさん (ワッチョイ 9c7b-XpIe) mailto:sage [2016/11/17(木) 03:14:03.30 ID:KQ/jS2NF0.net] >>514 自分の説明が下手でも仕分けないのですが、 要するに2次曲線をベジエ曲線を使って描画し、 曲線の終点の延長を追記で描画したいということなのですが
524 名前:デフォルトの名無しさん (ワッチョイ b5dc-2XGH) mailto:sage [2016/11/17(木) 07:07:26.21 ID:iGNJFpBr0.net] >>516 端点とそこでの一次の傾きさえ一致してれば滑らかに繋がってるように見える。で、それは514で答えが出てる。 二次の傾きには任意性があって、どう決めたら最も美しいかはあくまでお前の感性の問題だ。 その感性を数学的に定義するのはお前の仕事。それができたら答えは出たようなもんだろ。
525 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 07:33:08.85 ID:B+vLCAoF0.net] >516 俺もそれ興味あるな。でもペジェー曲線を描く関数は簡単にわかるだろ。 それをプログラム的にどう実現するかが知りたいってことだよね。 バーンスタイン基底関数のブレンディング関数ではN点の式になってるが、実際には n点でかいたベジェにn+1点を書く場合全部書き直すのは不経済だよな。 bz = new Bezier(p1,p2); bz = bz.add(p3); bz = bz.add(p4); bz = bz.add(p5); bz = bz.add(p6); foreach pp in bz{ bz.pset(whiteColor, pp.xl,pp.yl);//前のポイントを消す bz.pset(RedColor, pp.x,pp.y);//今回を書く } こんな感じじゃないか? グラフィックはやったことないから知らんけど。わからんな前のラインを消すのが 難しいな。
526 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 07:37:55.62 ID:B+vLCAoF0.net] まあpsetよりもplineだろうな。普通のCADはベクトルで管理していて、書き直しは やはり、前のラインを記憶していて、背景色で上書きして消すのだと思うよ。
527 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 07:46:11.48 ID:B+vLCAoF0.net] bz = new Bezier(p1,p2); bz = bz.add(p3); bz = bz.add(p4); bz = bz.add(p5); bz = bz.add(p6); bz.write(red, Style1); これでいいや、制御点はaddするときにわかってるからね。 書くときにベクトルは全部記憶してるからwriteするときに消して書けばいい。 しかし、背景色が違うところをまたがるときはどうすんの? って問題があるな。
528 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 08:20:53.64 ID:B+vLCAoF0.net] >516 ツールはなに? DirectXとか? どういう環境でかこうとしているんかで かなり違うと思う。 DirectXだったら関数についてるんじゃない? 環境が正確にわかればサンプルを 書いてあげるよ。もしわからなければ、、、
529 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/17(木) 08:43:40.73 ID:UCWuOxD40.net] c#でluaを使うためのパッケージは誰がよろしいでしょうか?
530 名前:デフォルトの名無しさん (スププ Sdb8-RUi6) mailto:sage [2016/11/17(木) 09:34:37.15 ID:Nr9kHWsUd.net] 背景の
531 名前:`画はXor Notの色じゃだめなぬ? [] [ここ壊れてます]
532 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 11:04:15.91 ID:B+vLCAoF0.net] >背景の描画はXor Notの色じゃだめなぬ? だめ。 psetなら隣の色を拾って背景代わりにするとできるが、、、lineだと背景の色を 覚えておかないとできないね。特に切り替わりのあるところ毎に背景を記憶して 覚えておかないとできないね。 BackColorXorline()なんて関数があって背景は別レイヤで記憶していてくれれば できるけど。そんなのがあるんだろうな。きっと。 グラフィックコントローラの機能として何枚かのレイヤがあるんだろうね。でないと 移動するごとに大量のベクトルの書き直しとか間抜けすぎるものね。 だからレイヤーを指定して書き込みできるんじゃなかろうか?
533 名前:デフォルトの名無しさん (オッペケ Sra9-2XGH) mailto:sage [2016/11/17(木) 13:02:06.96 ID:lS45HIXqr.net] LINQって使うとハマりそうなところって非同期だから返ってくる結果がよくからん順番になるところと可読性が悪いところ? メリットは少なめなメモリで動くってだけかな? Rxとかは便利そうって思えるけど
534 名前:デフォルトの名無しさん (アウアウカー Sa41-2XGH) mailto:sage [2016/11/17(木) 13:11:56.85 ID:3nQkkv32a.net] LINQって非同期実行じゃなくて遅延評価じゃないの? 当然順番は変わらないし 更に言うとLINQの最大の利点て可読性の向上だと思ってたんだが…
535 名前:デフォルトの名無しさん (ワッチョイ 9f94-Ctj4) mailto:sage [2016/11/17(木) 13:34:27.15 ID:JueYqnTL0.net] 返ってくる順番が不確定なのはPLINQだね (AsOrderd()を使えば順番を維持させることもできるけど) LINQで可読性が下がるというのは、もしかして、ラムダ式に慣れてないだけでは…
536 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 13:45:17.61 ID:B+vLCAoF0.net] >526 遅延って意味がおかしいんじゃない。クエリを書いただけでは実行しないってこと を遅延っていってるんだろうか? そんなの当たり前のように思えるが、、、
537 名前:デフォルトの名無しさん (ワッチョイ 40d9-k96Z) mailto:sage [2016/11/17(木) 14:11:29.10 ID:DsCEIrdz0.net] 「C#プログラム効率的な書き方」でも読めば? この本は嫌というほど詳細にLINQが解説してあるから
538 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 14:40:02.46 ID:B+vLCAoF0.net] >529 そうだね。それ読んでみる。
539 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 14:40:19.41 ID:B+vLCAoF0.net] var dtm = new DateTime(); var user = new MembershipUser("?????", "1", "obj", "3","4", "5", true, true, dtm, dtm, dtm, dtm, dtm); MembershipUserをテストしようとしてるんだが"?????"は何をいれたらいいの? 無効なプロバイダーでエラーになる。
540 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 14:41:28.03 ID:B+vLCAoF0.net] 正確には 追加情報:指定されたメンバーシップ プロバイダー名が無効です。 こんなメッセージ
541 名前:デフォルトの名無しさん (ワッチョイ 774f-oPeX) mailto:sage [2016/11/17(木) 14:41:41.50 ID:sJEahq+u0.net] また川俣本か・・・
542 名前:デフォルトの名無しさん (JP 0H0d-2BAc) mailto:sage [2016/11/17(木) 14:41:59.02 ID:9sPAmX71H.net] 実行順序は直感と違うと思うな 副作用がなければ気にならんけど
543 名前:デフォルトの名無しさん (ワッチョイ 40d9-k96Z) mailto:sage [2016/11/17(木) 14:49:43.65 ID:DsCEIrdz0.net] >>533 まあね この人はちょっとパラノイアじみるほどマニアックなところがあるけど、 全部読破すれば間違いなくLINQ to Objectsの力が付くと思う 「こんな使い方普通しないだろw」みたいなのも書いてある
544 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/17(木) 15:17:23.72 ID:UCWuOxD40.net] >>522 です 開発環境はvisualstdioです nugetで公開されているneolua moonsharp等のluaの拡張パッケージになにか違いがあるのでしょうか?
545 名前:497 (ワッチョイ 7c03-EDxK) mailto:sage [2016/11/17(木) 17:31:32.94 ID:K3Fbeu8d0.net] >>497 です。 せっかくレスいただいたのですが↓が理解できませんでした。申し訳ありません。 > - TestItem(実験項目)にMeasured(測定値)のリストList<Measured>を持たせて、 > - TestItemのリストList<TestItem>を作る List<double> lsMeasTest = new List<double>(); でListを生成して lsMeasTest.Add(dblData); で測定値を格納していくのはわかります。 実験項目が増えたときにListを生成するのですが List<double> 変数名 = new List<double>(); を必要数分実行する方法がわからないのです。
546 名前:デフォルトの名無しさん (ワッチョイ 9f94-Ctj4) mailto:sage [2016/11/17(木) 17:59:43.84 ID:JueYqnTL0.net] 項目リストとしてList<List<double>>(List<double>を入れるList)を作っておく 測定値を入れたList<double>を作ったら、項目リストにAddしていく ではだめなの
547 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 18:09:46.70 ID:B+vLCAoF0.net] >573 これでどう? var dict = new Dictionary<string, double>(); dict.Add("test1", 32.5); dict.Add("test2", 3002.5); dict.Add("test3", 199932.5);
548 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 18:15:42.30 ID:B+vLCAoF0.net] var dict0 = new Dictionary<string, double>(); dict0.Add("test1", 32.5); dict0.Add("test2", 3002.5); dict0.Add("test3", 199932.5); var dict1 = new Dictionary<string, double>(); dict1.Add("btest1", 32.5); dict1.Add("btest2", 3002.5); dict1.Add("btest3", 199932.5); var Jkken = new Dictionary<string, Dictionary<string,double >>(); Jkken.Add("実験項目1", dict0); Jkken.Add("実験項目2", dict1); こうかな?
549 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/17(木) 18:25:00.31 ID:hkg3+6Yaa.net] >>537 大サービスでサンプル書いてみた ideone.com/WjLe3C
550 名前:デフォルトの名無しさん (ワッチョイ 21bd-2Ppy) [2016/11/17(木) 18:51:38.13 ID:mx0eMjxm0.net] public private protected やstatic やプロパティって どうしても必要なの? 実際に不正アクセスが起たりするもんなの? 何のために、何を防御しているのか理解できない。
551 名前:デフォルトの名無しさん (ワッチョイ b179-XpIe) mailto:sage [2016/11/17(木) 18:53:40.36 ID:VcCKxuk30.net] 不正アクセスの為にアクセス制限している訳じゃないし、不正アクセスの防止は出来ない staticは別
552 名前:デフォルトの名無しさん (ワッチョイ 9cba-XpIe) mailto:sage [2016/11/17(木) 19:06:49.94 ID:uPELr+Dd0.net] 遂にGoogleさんも参加するって https://mspoweruser.com/google-joins-net-foundation/
553 名前:デフォルトの名無しさん (JP 0H0d-2BAc) mailto:sage [2016/11/17(木) 19:49:50.72 ID:9sPAmX71H.net] クラウド方面か
554 名前:デフォルトの名無しさん (ワッチョイ b5dc-2XGH) mailto:sage [2016/11/17(木) 20:22:33.07 ID:iGNJFpBr0.net] >>542 余計な情報を外に漏らすと、それを今後もそうだと期待して依存する奴が出てくる で、お前が後で変えたら何で勝手に変えたんやワシのコードが動かへんようになったわシバクぞボケと言われることになる 日常生活でも「言ってしまったから今更変えづらい」ってあるだろ? 確かに約束できること以外には外に余計な情報を漏らさないようにすることで、 中身を弄っても何勝手に変えとんねんと言われない変更に強いプログラ厶になるんだよ
555 名前:デフォルトの名無しさん (オッペケ Sra9-2XGH) mailto:sage [2016/11/17(木) 21:12:47.62 ID:lS45HIXqr.net] >>529 >C#が提供するLINQ to Objectsは、多大な効能と価値を併せ持つ重要な考え方ですが、Cのポインタ同様に抽象的でわかりりにくいものです。 ってその本の解説に書いてるよ やっぱわかりにくいんだね
556 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/17(木) 23:20:42.92 ID:iGNJFpBr0.net] それはSQLを知らないだけかと SQLは伝統的なドカタ道具の中ではズバ抜けてセンスのいい技術だから 食わず嫌いしないで一度ちゃんと学んだ方がいい
557 名前:デフォルトの名無しさん (ワッチョイ 9c42-XpIe) mailto:sage [2016/11/18(金) 00:06:56.41 ID:BJrPV4Dl0.net] なぜLambdaがあるのにLinqなんて異物をぶち込んだのか いまだにわからん 全部Lambdaでいいやん!
558 名前:デフォルトの名無しさん (ワッチョイ b97b-AAsj) [2016/11/18(金) 00:09:34.50 ID:ifsRvlL10.net] int i = 0; int j = 0; System.Console.WriteLine(i++); //0 System.Console.WriteLine(j+1); //1 この2つはなぜ結果が異なってしまうんでしょうか?
559 名前:デフォルトの名無しさん (オッペケ Sra9-2XGH) mailto:sage [2016/11/18(金) 00:16:31.04 ID:0j66y/nmr.net] >>548 SQLはMySQLを5年ほどやっとります
560 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/18(金) 00:30:20.75 ID:gT3Hev+M0.net] >>550 i++はインクリメントする前の値を返すから
561 名前:デフォルトの名無しさん (ワッチョイ 40d9-k96Z) mailto:sage [2016/11/18(金) 00:46:38.58 ID:iR5uoSVg0.net] >>547 最初にCのポインタをやった時を思い出すといい 初めは全然分からなかったろ?でも今は楽に分かるだろ? 要は慣れ
562 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/18(金) 00:55:03.81 ID:gT3Hev+M0.net] >>549 JoinとかGroupByとかSelectManyとかクエリ式無しだともはや暗号だろ
563 名前:デフォルトの名無しさん (ワッチョイ 9fd4-XpIe) mailto:sage [2016/11/18(金) 01:08:31.02 ID:Bd8bsuVC0.net] クエリ式なんか使ったことない
564 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 02:34:45.49 ID:ayjJho0i0.net] >554 それ以外ならラムダ式でできるんか? 例えば? Where、selectを ラムダ式で書いてみて。 ラムダ式の意味がわからんけど、まあ適当に「こんなんか」くらいで使ってる。
565 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 02:47:08.73 ID:ayjJho0i0.net] LINQは便利やけど、OrderByとか気持ち悪くて使う気しないな。 単純にSortするよな。 多用するとパーフォマンスが無茶苦茶落ちると思う。
566 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 02:54:33.31 ID:ayjJho0i0.net] public IEnumerable<string> Records { get { return doc.Element("root").Element("collections").Elements("own").Select(c => c.Descendants("ID").First().Value); } } LINQだめじゃん。 こっちのほうが簡単。 public IEnumerable<string> Records { get { return doc.XPathSelectElements("//root/collections/own/ID"); } } 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
567 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 02:57:24.22 ID:ayjJho0i0.net] XpathとLINQを組み合わせてつかえんのか?
568 名前:デフォルトの名無しさん (ワッチョイ 3a13-RUi6) mailto:sage [2016/11/18(金) 03:07:45.45 ID:qODTBmiq0.net] ごちゃごちゃうるせーよ
569 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 03:13:27.93 ID:ayjJho0i0.net] var elem = XElement.Parse(something); var maz = elem.Element("vehicle").Elements("car").Where(c => ((string)c.Attribute("maker")) == "mazda")); LINQはXMLみたいな階層構造を持ってるとダメじゃない? これじゃ最初のItemしかサーチできないよ。
570 名前:デフォルトの名無しさん (ブーイモ MM0d-N7ik) mailto:sage [2016/11/18(金) 08:03:56.85 ID:/xmrja5bM.net] Linqがボトルネックになったことって意外とないよな 大量データってわかってれば最初から速度最適化考えるし CLRはメモリ節約の効果がでかいんだね
571 名前:デフォルトの名無しさん (ワッチョイ b5dc-2XGH) mailto:sage [2016/11/18(金) 08:16:20.86 ID:gT3Hev+M0.net] それはLINQ使おうとする奴はだいたい一定のスキルがあるから無茶しないだけ LINQを使おうと思えば使えるシーンで大量データに対して O(N^2)とかの馬鹿みたいなループをやらかす奴はやっぱりいるわけだけど、 そういう奴は当然LINQなんか使わない(使えない)
572 名前:デフォルトの名無しさん (ワッチョイ ad5b-N7ik) mailto:sage [2016/11/18(金) 08:21:39.98 ID:O/884XX90.net] トグルスイッチのようなインターフェースってWindowsformのコントロールにあるっけ? ない場合どうやって作れる?
573 名前:デフォルトの名無しさん (ドコグロ MMff-RUi6) mailto:sage [2016/11/18(金) 08:26:54.53 ID:MmcaWbSXM.net] >>564 チェックボックスかラジオボタンで代用
574 名前:デフォルトの名無しさん (ワッチョイ 7c03-EDxK) mailto:sage [2016/11/18(金) 08:35:21.61 ID:nNUszv7+0.net] >>538-541 ありがとうございます!! B+vLCAoF0さんのDictionaryを使う方法、 サンプルコードを準備していただいたhkg3+6Yaaさんの方法 どちらも勉強させていただきます。 本当に感謝です、ありがとうございました!
575 名前:デフォルトの名無しさん (オッペケ Sra9-hkLf) mailto:sage [2016/11/18(金) 09:35:07.23 ID:+KSaSaaRr.net] LINQ-To-XMLの立場は。
576 名前:デフォルトの名無しさん (ワッチョイ b974-qiik) mailto:sage [2016/11/18(金) 09:39:13.30 ID:MjC3oXMe0.net] 知らない子ですねえ
577 名前:デフォルトの名無しさん (ワッチョイ 1519-/ySS) mailto:sage [2016/11/18(金) 10:51:06.70 ID:AfWqy2AK0.net] >>564 2値のTrackBarとか
578 名前:デフォルトの名無しさん (ワッチョイ 88d4-XpIe) mailto:sage [2016/11/18(金) 12:42:20.87 ID:qAuADTbv0.net] C++弄っていた人から見たら、C#もVBも大差ないよなぁ ちょっと方言が違うだけ、みたいな 値渡しなのか参照渡しなのか、パッと見で分からないし 使った変数の後始末はFramework任せとか
579 名前:デフォルトの名無しさん (ワッチョイ 1519-/ySS) mailto:sage [2016/11/18(金) 14:11:40.18 ID:AfWqy2AK0.net] 値渡しなのか参照渡しなのか分からないのはむしろC++とVBだと思うのだけど 呼び出される側だけ特別な記述&/ByRefして呼び出す側は変わらないって言う C#は両者共に特別な記述ref/outが必要で
580 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 14:27:23.42 ID:ayjJho0i0.net] C++とか触る気しないな。いらんことを書く量が多すぎて気が狂いそう。 その点F#をすこし触ってみたが、これは楽だな。C#からすると違和感があるが型推論が しっかりしているので慣れると楽だと思う。 そもそもループを書くためのforとかがない。もしLINQを知らなかったら、ループなしで どうやってプログラムを書くのか理解に苦しんだと思う。
581 名前:537 (ワッチョイ 7c03-EDxK) mailto:sage [2016/11/18(金) 15:03:02.85 ID:nNUszv7+0.net] >>537 です。 >>541 でサービスしていただきましたが現状とても難しいです。 =>ってなんでしょうか。ビルドできないです。。。 でも、もう少しがんばります。
582 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/18(金) 18:15:45.39 ID:fuS99ZTSa.net] >>573 使ってるC#のバージョンは? それはC#6で導入された読み出し専用プロパティの省略記法 public List<Measured> MeasuredList => _MeasuredList; は public List<Measured> MeasuredList { get {return _MeasuredList;} } と同じ。 www.atmarkit.co.jp/ait/articles/1606/01/news051.html
583 名前:デフォルトの名無しさん (ワッチョイ ad5b-N7ik) mailto:sage [2016/11/18(金) 20:21:01.12 ID:O/884XX90.net] >>565 そっかー残念 ありがとう
584 名前:デフォルトの名無しさん (ワッチョイ 9fd4-XpIe) mailto:sage [2016/11/18(金) 20:30:49.38 ID:P4KNWvky0.net] カスタムコントロールで適当なコントロールから継承して作ればいいだけ 簡単に作れるよ
585 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/18(金) 20:45:44.35 ID:ayjJho0i0.net] 適当では作れんだろ。w どのコントロールを継承してどのように作るのか。
586 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/18(金) 20:53:06.96 ID:cT5mFVkF0.net] keydownイベントをプログラムから発生させる方法はありますか?
587 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/18(金) 20:54:03.59 ID:fuS99ZTSa.net] まあ、Checkboxを継承するのが普通だろうねえ。 トグルスイッチっていうのはビジュアルをAndroidのUIにあるような奴にしたいってことかな。 ボタンの凹凸を切り替えるのでよければ何もしなくても標準でできるけど
588 名前:デフォルトの名無しさん (ワッチョイ 3f49-YqEk) mailto:sage [2016/11/18(金) 21:37:55.69 ID:8JkTMqoR0.net] 見た目を重視しないなら、ユーザーコントロールでトグルボタン2個乗っけるのが手っ取り早い。
589 名前:デフォルトの名無しさん (ワッチョイ 9fd4-XpIe) mailto:sage [2016/11/18(金) 21:51:48.89 ID:P4KNWvky0.net] Checkbox継承してOnPaintで描けばいいだけだから、やってみるば簡単 Checkedで描画する画像切替えるとかで簡単に実現できる サイズは画像のサイズに合わせてMaximumSizeとMinimumSizeを固定しちゃうとかかな
590 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/18(金) 22:02:56.90 ID:cT5mFVkF0.net] >>578 です 実装できました
591 名前:デフォルトの名無しさん (ワッチョイ 3f49-+6wY) [2016/11/18(金) 22:24:07.69 ID:8JkTMqoR0.net] 画像貼り付けて作ると高DPI対応は出来なくなるな
592 名前:デフォルトの名無しさん (ワッチョイ 34ce-ke/V) mailto:sage [2016/11/18(金) 22:47:36.55 ID:YsofO7c60.net] 画像を高画質で持っておいて伸縮サセルノデス
593 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/18(金) 22:49:04.17 ID:fuS99ZTSa.net] EMFを使えば出来るんじゃない? 十分でかいビットマップを使ってもいいと思うけど
594 名前:デフォルトの名無しさん (ワッチョイ 34ce-ke/V) mailto:sage [2016/11/18(金) 22:51:45.64 ID:YsofO7c60.net] ところでWindows10によくある横にスライドするスイッチ(● )←みたいなやつ あれの状態をプログラムから参照したいのですが、 ウィンドウハンドル的なものは取れますか?
595 名前:デフォルトの名無しさん (ワッチョイ 5e23-tQqt) mailto:sage [2016/11/18(金) 23:09:11.73 ID:RGR0MUcx0.net] >>585 つか、単純な図形だからGDI+で書いたほうが早いし、アニメーションさせたくなったら 画像はお払い箱です
596 名前:デフォルトの名無しさん (ワッチョイ 3f49-YqEk) mailto:sage [2016/11/18(金) 23:12:28.84 ID:8JkTMqoR0.net] EMFは存在をすっかり忘れていたな C#でも扱えるんだね デカいビットマップの縮小は、小さいパーツだとあまり綺麗に表示されないよ マルチアイコンみたいに複数の解像度の画像を用意すればましだけど
597 名前:デフォルトの名無しさん (ワッチョイ 3a13-8L7G) [2016/11/18(金) 23:29:21.49 ID:+XmNVsSt0.net] 自作のフォームアプリケーションを起動させて引数も渡したいのですがどうすればいいですか?
598 名前:デフォルトの名無しさん (ワッチョイ 3a13-8L7G) [2016/11/18(金) 23:40:26.29 ID:+XmNVsSt0.net] できました
599 名前:デフォルトの名無しさん (ワッチョイ 5e7d-XpIe) mailto:sage [2016/11/18(金) 23:55:36.52 ID:X3QgbGYl0.net] 画像の拡大縮小はモード選べるよ。十分綺麗にできるでしょ
600 名前:デフォルトの名無しさん (ワッチョイ 56e1-RUi6) mailto:sage [2016/11/19(土) 00:45:16.52 ID:1yryIr4y0.net] >>559 普通に出来るだろ
601 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/19(土) 02:06:11.41 ID:E+HZm7+A0.net] >Checkbox継承してOnPaintで描けばいいだけだから、やってみるば簡単 >Checkedで描画する画像切替えるとかで簡単に実現できる >サイズは画像のサイズに合わせてMaximumSizeとMinimumSizeを固定しちゃうとかかな こんなことやったことないわ。どういう意味だ? なんでChecboxを継承する必要があるんだ? つかトグルSWだよな。 ちょっとやってみるんで指導よろしく。 OnPaintで描くってどういう意味だ? 情報が欠落しすぎ。 まずプロジェクトに追加するのは何? ユーザーコントロール? クラス? コンポーネント? どれだ?
602 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/19(土) 02:08:07.35 ID:E+HZm7+A0.net] checkboxを継承するってのだから、どう考えてもクラスだよな。じゃあまあ 追加クラス。
603 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/19(土) 02:31:43.92 ID:E+HZm7+A0.net] public class clsToggleButton : CheckBox { Form _pform; public clsToggleButton(Form frm) { _pform = frm; } public void OnPaint (PaintEventArgs pevent) { //ここにトグルボタンを描く if( this.Checked == false ){ //どこに描くんだろ? }else{ } } }
604 名前:デフォルトの名無しさん (ワッチョイ 5e7d-XpIe) mailto:sage [2016/11/19(土) 02:41:43.15 ID:wlTmYqF50.net] 追加→新しい項目→カスタムコントロール で、追加されたコードのControlの部分をCheckBoxに。 OnPaintの所は、例えば↓みたいすれば、クリックするたびに赤と青が入れ替わる protected override void OnPaint(PaintEventArgs pe) { using (var brush = new SolidBrush(Checked? Color.Red : Color.Blue)) { pe.Graphics.FillRectangle(brush, ClientRectangle); } } 一度ビルドすると、ツールボックスに載るのでドラッグ&ドロップでフォームに配置できる
605 名前:デフォルトの名無しさん (スププ Sdb8-RUi6) mailto:sage [2016/11/19(土) 02:54:11.98 ID:aIswJeomd.net] >>593 一切欠落してなくない? Checkboxを継承したコントロールだから、クラスで、コンポーネントで、ユーザコントロールだけど、そんな瑣末な話は置いといて、 とりあえず、OnPaintをオーバーライドして、graphicsにthis.checked描画してみたら?
606 名前:デフォルトの名無しさん (ワッチョイ 5e41-mj3c) [2016/11/19(土) 04:05:39.65 ID:N2eyluxh0.net] どうしてもタメになる書籍はC++をサンプルに使われてることが 多いから調べてはいるけど C#に慣れちゃってるとまーキモチワルい 確かにこれが出来ればほとんど何でも出来るんだろうけど・・・ とりあえずC++最高ということで
607 名前:デフォルトの名無しさん (ワッチョイ 5e41-mj3c) [2016/11/19(土) 04:38:58.99 ID:N2eyluxh0.net] ちげぇ! C#最高!です なんとか基本的なことは出来るようになった希ガス 疲れたよ、もう
608 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/19(土) 06:23:34.01 ID:S6bRHJ270.net] 600げと
609 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/19(土) 06:31:51.33 ID:E+HZm7+A0.net] >Checkboxを継承したコントロールだから、クラスで、コンポーネントで、ユーザ >コントロールだけど、そんな瑣末な話は置いといて、 うろ覚えの初心者には全然些末じゃないy。 無茶苦茶大事!!! 「Checkboxを継承したコントロール」ここにたどり着くのに一晩かかる。 ユーザコントロール is a コンポーネント コンポーネント is a クラス こういう関係なの? おお、初めて知った。 トグルボタン は ユーザーコントロールとして作るってことだね。納得。 でも空クラスを配置してCheckboxを継承してもおんなじことだよね。 何が違うの?
610 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/19(土) 06:56:43.78 ID:E+HZm7+A0.net] >596 この説明は完璧って感じがする。 これからでかけるのでチェックできない残念。
611 名前:デフォルトの名無しさん (ワッチョイ 9c7b-wMId) mailto:sage [2016/11/19(土) 08:53:15.23 ID:gGKRRZRa0.net] >>601 各種コントロールの説明や、継承チェーンを見れば? 自分が作りたいコントロールに近いものを探して使うか、 そこから継承して派生したコントロールを作ればいい クラスを使う時は、継承チェーンをさかのぼりながら、 ベースクラスにどういう機能があるか調べる なぜなら派生クラスは、ベースクラスのすべての機能を持っているから
612 名前:デフォルトの名無しさん (ワッチョイ 3f49-YqEk) mailto:sage [2016/11/19(土) 12:30:26.20 ID:xW+PNGAl0.net] >>598 STLなんかは後付けで今風な機能を実装しようとしてて、無理やり感が半端ない。
613 名前:デフォルトの名無しさん (スププ Sdb8-RUi6) mailto:sage [2016/11/19(土) 13:12:50.96 ID:aIswJeomd.net] >>601 同じ事だよ。 ユーザコントロール一度画面から選ぶと、似たようなコード出て来るから、 そいつの継承元見てみ。 >>596 は親切だな。
614 名前:デフォルトの名無しさん (ワッチョイ 9c7b-wMId) mailto:sage [2016/11/19(土) 18:51:47.20 ID:gGKRRZRa0.net] よく知らんけど普通、IDEにはクラスウィザードが付いている 新しいクラスを作るときは、クラスウィザードの画面で作れば、自動的にクラスが作られる
615 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/19(土) 19:01:01.87 ID:VKIYWaqIa.net] そんな使ってる人ほとんどいないと思うよw ところで前から思うんだけどウィザードってのはポリコレ的にどうなのかね
616 名前:デフォルトの名無しさん (ワッチョイ 3a20-XpIe) [2016/11/20(日) 19:20:37.60 ID:DP6jtmXB0.net] ハードディスクのベンチマークを測る 簡易ツールを作りたくて ランダムリード・ライトのサンプルを見つけたのですが これでハードディスクへのランダムリード・ライトになるでしょうか? //ランダム書き込み using (System.IO.BinaryWriter rw = new System.IO.BinaryWriter( File.OpenWrite(@"C:\temp\test.txt"), System.Text.Encoding.UTF8)) rw.Write("0"); //ランダム読み込み using (System.IO.FileStream file = new FileStream(@"C:\temp\test.txt", System.IO.FileMode.Open, System.IO.FileAccess.Read)) { byte[] bs = new byte[file.Length]; file.Read(bs, 0, bs.Length); }
617 名前:デフォルトの名無しさん (ブーイモ MMb8-RUi6) mailto:sage [2016/11/20(日) 19:28:04.56 ID:aSeFXcOvM.net] ファイル名が違うな ¥¥.¥PhysicalDriveN だよ
618 名前:デフォルトの名無しさん (ワッチョイ 777b-w7k2) mailto:sage [2016/11/20(日) 20:25:05.70 ID:JNgwCyth0.net] ディスク書き込みは複数層でバッファリングがあるから .NETのライブラリだけじゃ割と無理じゃないかな
619 名前:デフォルトの名無しさん (ワッチョイ 3a20-XpIe) [2016/11/20(日) 20:32:04.76 ID:DP6jtmXB0.net] \\.\PhysicalDriveN なんてドライブの指定方法があるのですね ただ、MBRを迂闊に書き換えると クラッシュするとか 単純な読み書きは危険なようで だから、公開されてるベンチツールには シーケンシャルの読み書きしかないのかと思いました 情報ありがとうございます
620 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/20(日) 22:44:41.11 ID:ujJmR5b00.net] BindingSource のデータをLINQで扱いたいのですが ↓コードのbs に登録されているデータをLINQを使って ID=100とID=200 のKamokuの平均値をだしたいのですがどんな風にやればいいでしょうか? private List<Employee> emplist; BindingSource bs = new BindingSource(emplist, string.Empty); dataGridView1.DataSource = bs;
621 名前:デフォルトの名無しさん (ワッチョイ 777b-w7k2) mailto:sage [2016/11/20(日) 23:11:49.40 ID:JNgwCyth0.net] DataSourceがList<T>ならBindingSourceでフィルタできるわけでも無し emplistにWhereとAverageするだけじゃね Whereで要素数0になる可能性があるとちょっと面倒だけど
622 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/20(日) 23:36:14.07 ID:ujJmR5b00.net] >>613 DataTable でLINQ使うときは、↓のように var items = dt.AsEnumerable() でやれるのですが >>612 のようにやるときは、bs.AsEnumerable() みたいにはできないのですか? DataTable dt; var items = dt.AsEnumerable() .Where(x => x["id"] == "100") .Select(x => x["Koumoku"].ToString());
623 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/20(日) 23:45:11.80 ID:mNZMIvsS0.net] BindingSourceは一応IEnumerableを実装してるから bs.Cast<Employee>().Where(…とできるんじゃないの 試したことないしそんなことしようとも思わないけど
624 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/20(日) 23:51:53.85 ID:ujJmR5b00.net] >>615 ありがとう試してみます。
625 名前:デフォルトの名無しさん (ワッチョイ 3f49-YqEk) mailto:sage [2016/11/21(月) 02:19:09.69 ID:iKiRpZRf0.net] >>611 >>610 の言う通り、c#のStreamキャッシュとOSのファイルキャッシュがあるから、C#標準のライブラリだけじゃ実現できないよ。 P/InvokeでCreateFile()やWriteFile()/ReadFile()等のWIN32APIを呼び出す必要がある。 OSのファイルキャッシュは、CreateFile()でオープンする時にFILE_FLAG_NO_BUFFERINGを指定すれば無効にできる。 HDDに直接書き込みたいなら、ロックとアンマウントも必要になるんじゃないかな。 (DeviceIoControl()でFSCTL_LOCK_VOLUMEとFSCTL_DISMOUNT_VOLUME)
626 名前:デフォルトの名無しさん (ワッチョイ 159a-2Ppy) [2016/11/21(月) 05:14:56.16 ID:6eO9t+4E0.net] >>490-491 C#側でデリゲート型を定義して、起動時にコールバック関数のデリゲートをDLLに渡し、 DLL側では関数ポインタとして受け取ることで、C#側の関数をC側から適宜呼び出すことが できました。C#側はunsafeを使ってないマネージコードなのに、Cから関数ポインタの形で 呼び出すことができるんですね、ちょっと驚きました。有り難うございました。 そこでもう一つ疑問が出てきたんですが、DllImportしたDLLがprintfした内容(標準出力)を、 WPFアプリやFormアプリで受け取って特定のコントロールに出力したり、GUIとは別に コンソールウィンドウを出してそちらに表示するようなことはできるんでしょうか。
627 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/21(月) 07:15:54.06 ID:EumYM2T30.net] SetStdHandleとかでできるんじゃないの 素直に子プロセス作ってリダイレクトした方が簡単確実だけど
628 名前:デフォルトの名無しさん (ワッチョイ fa23-tQqt) mailto:sage [2016/11/21(月) 08:51:20.53 ID:hLpmxTjl0.net] int25とかint26思い出したわ
629 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/21(月) 20:26:47.04 ID:7M/YTSBB0.net] LINQで質問ですが class Person { public string id { get; set; } public DateTime Dateday{ get; set; } public int kamoku { get; set; } } var items = (from tesA in bs.Cast<Person>() where tesA.id == 100 select tesA.kamoku).avrage; ↑でID = 100 のkamoku の平均を求めていますが、 Datedayの最新10件で平均を求めるのはどんな書き方があるでしょうか? 後、IDの割合を求めるときに↑のwhere tesA.id == 100 を外したのをもう一回やって割り算しているのですが一括で書くときはどうすればいいでしょうか?
630 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/21(月) 22:40:08.70 ID:EumYM2T30.net] >>621 var av = ( from tesA in bs.Cast<Person>() where tesA.id == 100 order by tesA.Dateday descending select tesA.kamoku ).Take(10).Average(); IDの割合の方は質問の意味が分からない
631 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/21(月) 23:04:49.74 ID:7M/YTSBB0.net] >>622 ありがとうございます。参考になります。 IDの割合はAverageでなくてcountにしたほうがよかった。すみません 今は↓の結果 items100 / itemsALLで割合をだしています。これを1回で書きたいです。 var items100 = (from tesA in bs.Cast<Person>() where tesA.id == 100 select tesA.kamoku).count; var itemsALL = (from tesA in bs.Cast<Person>() select tesA.kamoku).count;
632 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/21(月) 23:08:48.37 ID:EumYM2T30.net] items100 / bs.Count でいいだろそれ
633 名前:デフォルトの名無しさん (ワッチョイ 5e41-mj3c) [2016/11/21(月) 23:14:12.37 ID:lc1W0DQ40.net] 一連のスイッチのオンオフを配列にいれて シーケンスな処理を
634 名前:するんですが そのままだと当然boolの配列です。 この場合、配列にする際にConvert.ToInt32を使い 0,1の配列にした方が処理速度が速くなる ということはあるでしょうか? 配列数は多くても64個です。 自分で確認はまだしてないですが 知見多き方お願いします。 [] [ここ壊れてます]
635 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/21(月) 23:22:00.28 ID:7M/YTSBB0.net] >>624 >>623 すみません items100 / bs.Count だと実際にやりたいので使えないので ↓ので items100 / itemsALL で書くときはどうしたらいいでしょうか? var items100 = (from tesA in bs.Cast<Person>() where tesA.id == 100 select tesA.kamoku).count; var itemsALL = (from tesA in bs.Cast<Person>() where tesA.id > 100 select tesA.kamoku).count;
636 名前:デフォルトの名無しさん (ワッチョイ 0448-dXbs) mailto:sage [2016/11/21(月) 23:30:37.04 ID:cS6E2DFI0.net] >>625 BitArrayを調べてみたらいい、非ジェネリックでは唯一つかえる存在かもな
637 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/21(月) 23:34:45.98 ID:4A1pLeCTa.net] >>625 bool使って遅くなる理由があると思えんなあw どっちにしろ要素数64じゃ差はでないでしょ。 「シーケンシャルな処理」とやらが単純な論理演算ならboolやboolの代用にintを使った配列ではなく、 intをビットワイズで使えば圧倒的に高速になるとは思う
638 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/21(月) 23:55:19.26 ID:EumYM2T30.net] >>626 短くしたいだけならこれでいいだろ var persons = bs.Cast<Person>(); var items100 = persons.Where(p => p.id == 100).Count(); var itemsALL = persons.Where(p => p.id > 100).Count(); 全件スキャンが2度走るのが気持ち悪いということなら、素直にループにするか、 もしくはこんなやり方もできないこともない var items = bs.Cast<Person>().ToLookup(p => p.CompareTo(100)); return items[0].Count() / items[1].Count();
639 名前:デフォルトの名無しさん (ワッチョイ fa73-XpIe) mailto:sage [2016/11/22(火) 00:12:53.34 ID:FPsVs5Xk0.net] >>629 最後のがまだよくわからないけど調べてみます。 ありがとうございました。
640 名前:デフォルトの名無しさん (ワッチョイ 7d7b-XpIe) mailto:sage [2016/11/22(火) 00:22:30.53 ID:a+0IO69G0.net] >>630 もしかしてArrayListつかってる?List使った方がいいよ bs = new List<Person>(); ・ ・ float result = (float) bs.Count(x => x.id == 100) / bs.Count(x => x.id > 100);
641 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/22(火) 07:30:50.02 ID:agBMDwRZ0.net] 関係ないけどfloatは誤差が簡単に表面化するから 初心者スレ的には「最終出力以外には使うな」でいいと思う
642 名前:デフォルトの名無しさん (ドコグロ MM74-EDxK) mailto:sage [2016/11/22(火) 09:09:41.67 ID:iOkC5GDaM.net] >>574 遅くなりすみません。 教えていただいたコードでうまくいきました。 ありがとうございました。 使っているのはVisual C# 2013です。
643 名前:デフォルトの名無しさん (ワッチョイ 40d9-k96Z) mailto:sage [2016/11/22(火) 13:19:07.30 ID:xeeHVDvp0.net] VS2013のC#って>>574 の書き方は出来なかったはずだが
644 名前:デフォルトの名無しさん (ワッチョイ 5e41-mj3c) [2016/11/22(火) 20:13:44.80 ID:ZJs8cfZ60.net] >>627 >>628 ありがとうございます!! そうですよね、このくらいの要素数なら どっちにしろ誤差レベルとは思いましたが かなり有益な情報得られたんでよかったです 調べてみます!
645 名前:デフォルトの名無しさん (ワッチョイ 800d-ke/V) [2016/11/22(火) 21:09:02.72 ID:0tp2RUgI0.net] MVVMで、AのViewにあるボタンを押したらBのViewにBindingされているViewModelの値を変更するにはどうすればいいですか?
646 名前:デフォルトの名無しさん (オッペケ Sra9-hkLf) mailto:sage [2016/11/22(火) 21:23:07.00 ID:vhsrXRxUr.net] >>636 AとBにモデルとして関連があるなら、それ同士で連係。 画面としてのみの関連なら、ViewModel同士で連係。
647 名前:デフォルトの名無しさん (ワッチョイ 800d-ke/V) [2016/11/22(火) 21:39:14.03 ID:0tp2RUgI0.net] >>637 返信ありがとうございます ViewModel同士の連係の方ですが、具体的にどのようにすればいいでしょうか? 例えばBのViewModelにあるIsEnabledというメンバー変数の値がある場合、StaticにしてAのViewModelでBのViewModelのインスタンスを作るのでしょうか?
648 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/22(火) 21:48:58.09 ID:agBMDwRZ0.net] >>638 AがBのインスタンスを作るんならStaticにする必要は全く無いだろ しかし、そもそもVMを設ける目的は単体テストであるということを考えると、 VMが別のVMに明示的に依存するのは好ましくない 理想を言えば、AからBを直接newしたりBのメンバに直接アクセスするのではなく、 インターフェース (例えばIB) を定義してAからはIBを通してアクセスすることにして AにBのインスタンスを外から渡してやるのがいい インスタンスを渡すのはViewでやるかDIコンテナ使う
649 名前:デフォルトの名無しさん (ワッチョイ 800d-ke/V) [2016/11/22(火) 21:58:02.53 ID:0tp2RUgI0.net] >>639 ご教授ありがとうございます! ただ、 >インターフェース (例えばIB) を定義してAからはIBを通してアクセスすることにして >AにBのインスタンスを外から渡してやるのがいい この部分がわからないので、コードで実例を教えてください
650 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/22(火) 22:11:27.86 ID:agBMDwRZ0.net] >>640 こんな感じ interface IEnableable { public bool IsEnabled { get; set; } } class AView { private AViewModel vm; public AView() { this.vm = new AViewModel(BViewModelのインスタンスを取得()); } } class AViewModel { private IEnableable b; public AViewModel(IEnableable b) { this.b = b; } void 連携する() { this.b.IsEnabled = true; } } class BViewModel : IEnableable { public bool IsEnabled { get { 略 } set { 略 } } } BViewModelのインスタンスを取得() のところはnew BViewModel()でもいいしシングルトンでも何でもいい MVVMでは依存関係はなるべくViewに押し付けるのが基本
651 名前:デフォルトの名無しさん (ワッチョイ 800d-ke/V) [2016/11/22(火) 22:21:59.10 ID:0tp2RUgI0.net] >>641 なるほど、このようにやるんですね Viewに押し付けるというのも勉強になりました 本当にありがとうございます!
652 名前:デフォルトの名無しさん (ワッチョイ 9cba-XpIe) mailto:sage [2016/11/22(火) 22:34:41.26 ID:BBlq8Dj70.net] アプリケーションの設定を保持するクラスを作ってこれをシリアライズできるようにしたのですが、 このシリアライズしたものをapp.configに含むことはできるでしょうか? ファイル名や場所をコードで指定するのが嫌だなぁという程度の理由ですが。
653 名前:デフォルトの名無しさん (ワッチョイ b5dc-Th+s) mailto:sage [2016/11/22(火) 22:42:45.68 ID:agBMDwRZ0.net] >>643 System.Configuration.ConfigurationSection でも普通にSettings使った方が簡単だと思うけど
654 名前:デフォルトの名無しさん (ワッチョイ 9cba-XpIe) mailto:sage [2016/11/22(火) 23:20:36.22 ID:BBlq8Dj70.net] そうですか、無いですか。ありがとうございました。
655 名前:デフォルトの名無しさん (ワッチョイ a030-qiik) mailto:sage [2016/11/23(水) 01:45:13.48 ID:MGsJz9yg0.net] 噛み合ってなさが絶妙
656 名前:573 (ドコグロ MM87-f5kA) mailto:sage [2016/11/24(木) 09:42:16.88 ID:EZR6VYZqM.net] >>573 です。 if(1 == args.Count()){ var t1 = new TestItem("デバイス1"); } if (2 == args.Count()){ t1.AddMeasured(new Measured("電圧", "V", 1)); t1.AddMeasured(new Measured("電流", "mA", 100)); testItems.Add(t1); } 上記のようにすると下IF文内のt1が”現在のコンテキスト内に存在しません”となってしまします。 IF分の条件式は例ですがt1の生成と値の格納が同条件でない場合は どのように処置するべきでしょうか。 やりたいことはテキストファイルから各語を読み出して格納して数値演算(平均値、最大、最小、標準偏差)したいのです。 テキストに格納してある情報は次の順になります。 ”項目名1” ”項目名1の測定値1” ”項目名2” ”項目名2の測定値1” ・・・ ”項目名10” ”項目名10の測定値1” ”項目名1” ”項目名1の測定値2” ・・・ 1回目の”項目名n”を取得したときに配列(List)を生成し その後は”項目名n”により選択した生成済みの配列に”測定値n”を格納したいです。 本業はHWよりのためC#基礎がわかって無く申し訳ありません。 でも何とかできることは自分で処理したいと思っています。 よろしくお願いします。
657 名前:デフォルトの名無しさん (ワッチョイ ab3a-/sNf) mailto:sage [2016/11/24(木) 10:18:45.81 ID:+mUg/yMV0.net] >>647 if文の外で変数定義する。 『スコープ』の概念を学ぶべし。 今のレベルの基本が分かってない内はvar使わない方が良いかも。 varは便利だし正しく使えば特に害のない機能だけど、意味が分からないうちはやめとこう。
658 名前:デフォルトの名無しさん (ドコグロ MM27-f5kA) mailto:sage [2016/11/24(木) 11:09:09.16 ID:IyDqbIdrM.net] >>648 ありがとうございます! チャレンジしてみます。
659 名前:デフォルトの名無しさん (ワッチョイ a77b-rApL) [2016/11/24(木) 12:28:53.06 ID:P/Ibr7r50.net] varは積極的に使うべきだよ。
660 名前:デフォルトの名無しさん (ワッチョイ c748-AQyI) mailto:sage [2016/11/24(木) 14:01:47.31 ID:4ySrR9x20.net] >>647 標準偏差は自前で計算してもいいけどMath.NET Numericsというのが既にある(nugetで入れる) ideone.com/kv7bLQ こういうのってRの方が手っ取り早い気がする CSVの読み込みからグラフ描画まで揃ってるしな
661 名前:デフォルトの名無しさん (ワッチョイ 5b3c-/sNf) mailto:sage [2016/11/24(木) 14:14:09.14 ID:G2Ig6Dqz0.net] >>648 var関係ないやろ
662 名前:648 (ブーイモ MMc7-/sNf) mailto:sage [2016/11/24(木) 15:37:41.35 ID:cupH4QVAM.net] >>650 それは同意する。積極的に使うべき。 ただ、スコープの理解がまだの方には少し毒と思っただけ。 >>649 異論も多いようなので、varに関しては先ほどの発言を気にせず自由にやって下さいな。頑張って!
663 名前:デフォルトの名無しさん (JP 0Hdf-sTmH) mailto:sage [2016/11/24(木) 17:51:15.84 ID:2Y5JG7GhH.net] 質問します。 ファイルの存在を確認する方法についての質問です。 if (System.IO.File.Exists(@"C:\tmp\sample.txt")) { MessageBox.Show("ファイルは存在します"); } else { MessageBox.Show("ファイルは存在しません"); } 上記例の場合、 「tempフォルダ内のsample.txtというファイル」 の存在を確認するようになっていますが、 同時に異なる2つのフォルダ内の2種類のファイルの存在を 確認するにはどうすればいいのでしょうか? C:\tmp1\sample1.txt C:\tmp2\sample2.txt が同時に(又は片方だけ)存在する場合の処理を行いたいと思っています。 File.Exists((@"C:\tmp1\sample1.txt")&&(@"C:\tmp2\sample2.txt")) みたいな書き方はできないんでしょうか? やってみたらNGになったんで質問した次第です。 よろしくお願いします。
664 名前:デフォルトの名無しさん (ワッチョイ c748-AQyI) mailto:sage [2016/11/24(木) 18:09:09.66 ID:4ySrR9x20.net] この場合は if (File.Exists(@"C:\tmp\sample.txt") && File.Exists(@"C:\tmp\sample2.txt")) {} if (File.Exists(@"C:\tmp\sample.txt") || File.Exists(@"C:\tmp\sample2.txt")) {} という風にFile.Existsが2回必要なわけだろ 可変で1個かもしれないし2個以上かもしれないというときは string[] list = { @"C:\tmp\sample.txt", @"C:\tmp\sample2.txt", }; に対してLINQが使える if (list.All(x => File.Exists(x))) {} if (list.Any(x => File.Exists(x))) {}
665 名前:デフォルトの名無しさん (スッップ Sdaf-/sNf) mailto:sage [2016/11/24(木) 18:11:35.21 ID:HdRBGkCMd.net] >>654 Exists(..)を&&で繋げば良いよ。
666 名前:デフォルトの名無しさん (ワッチョイ abdc-MM3T) mailto:sage [2016/11/25(金) 07:04:44.10 ID:9jtEtGtN0.net] >>655 その場合、 list.All(File.Exists) list.Any(File.Exists) の方がスマート
667 名前:デフォルトの名無しさん (JP 0Hdf-sTmH) mailto:sage [2016/11/25(金) 09:44:10.37 ID:55zEIhIxH.net] 654です。 ありがとうございました。 なるほど、パス名を&&でつなげてもだめですね。 File.Exists(・・・)&&File Exists(・・・)を にしなきゃダメですね。 やってみたらうまくいきました。 LINQはあまりわかってないんですが、 やっぱり使えれればかなりコードを書くのが楽になるんでしょうか? 時間ができればやってみてもいいかなぁと思っていますが・・・
668 名前:573 (ドコグロ MMcf-f5kA) mailto:sage [2016/11/25(金) 10:18:27.69 ID:cWogpahDM.net] >>651 >>653 レスありがとうございます。 勉強になります。 徐々に方向性が見えて来たような気がしています。 ありがとうございます。
669 名前:デフォルトの名無しさん (ワッチョイ 37d9-1MTn) mailto:sage [2016/11/25(金) 16:46:17.82 ID:3a2jMeJO0.net] >>655 を見て、RMAX未満のint乱数をN回発生させてori[]が含まれている回数を LINQで数えたいのですが、こんなのになってしまいました もっと簡単に書ける方法はないでしょうか const int N = 10000; const int RMAX = 10; Random r = new Random(); int c = 0; int[] ori = {1, 5}; Enumerable.Range(1, N).Select(i => new { j = r.Next(RMAX) }).Select(i => ori.Any(j => j == i.j)).Where(i => i).Select(i => { c++; return 0; }).ToArray(); // 0〜9の中にori[]が含まれているかどうか調べる Console.WriteLine($"{N}回の繰り返しで 0〜{RMAX - 1} の中にori[]が含まれていたのは {c} 回でした。");
670 名前:デフォルトの名無しさん (オッペケ Sre7-4iO2) mailto:sage [2016/11/25(金) 17:23:50.79 ID:vVyJsUPAr.net] Selectに副作用書くな
671 名前:デフォルトの名無しさん (ワッチョイ c748-AQyI) mailto:sage [2016/11/25(金) 17:46:39.77 ID:k5F1VYSo0.net] つか毎回乱数作ると検証しようがないよな int[] randoms = new int[N]; for (int i = 0; i < N; i++) randoms[i] = r.Next(RMAX); というのがあったと仮定して以下を実行する c = randoms.Where(ori.Contains).Count();
672 名前:デフォルトの名無しさん (ブーイモ MMc7-/sNf) mailto:sage [2016/11/25(金) 17:51:48.96 ID:yM8tzyplM.net] int count = Enumerable.Range(1, N) .Select(_ => r.Next(RMAX) ) .Count(ori.Contains);
673 名前:デフォルトの名無しさん (ワッチョイ 27ba-lM3r) mailto:sage [2016/11/25(金) 23:44:37.58 ID:8749fss/0.net] 検証は普通、同じシードの疑似乱数使うだろ。
674 名前:デフォルトの名無しさん (オッペケ Sre7-4iO2) mailto:sage [2016/11/26(土) 05:41:07.62 ID:BlR4fLnAr.net] そこで、Stateモナド登場。
675 名前:デフォルトの名無しさん (ワッチョイ 37d9-1MTn) mailto:sage [2016/11/26(土) 15:45:30.50 ID:q0gSFGbR0.net] >>661-663 ありがとうございます Select()に副作用書くのはListだとForEach()があるのですが、配列だと使えないので 無理矢理感がありますが許してください(汗
676 名前:デフォルトの名無しさん (オッペケ Sre7-4iO2) mailto:sage [2016/11/26(土) 15:59:56.88 ID:BlR4fLnAr.net] >>666 許せぬ。 普通に>>663 で良いんでないの?
677 名前:デフォルトの名無しさん (ワッチョイ 1349-lVzu) mailto:sage [2016/11/26(土) 16:01:54.05 ID:pkHe6RQg0.net] >>666 ゆるさん。 根本的にLINQの使い方が間違ってる。
678 名前:デフォルトの名無しさん (ワッチョイ 37d9-1MTn) mailto:sage [2016/11/26(土) 16:46:10.56 ID:q0gSFGbR0.net] >>667-668 駄目ですか 精進します >>664 こうやってみました DateTime dt = DateTime.Now; // 乱数のシード値に使う Random r = new Random((int)dt.Ticks); // 乱数測定1 Random r = new Random((int)dt.Ticks); // 乱数測定2 以下続く
679 名前:デフォルトの名無しさん (ワッチョイ 37d9-1MTn) mailto:sage [2016/11/26(土) 16:58:09.08 ID:q0gSFGbR0.net] あ、違った DateTime dt = DateTime.Now; // 乱数のシード値に使う Random r = new Random((int)dt.Ticks); // 乱数測定1 r = new Random((int)dt.Ticks); // 乱数測定2 以下続く
680 名前:デフォルトの名無しさん (ブーイモ MMaf-VGur) mailto:sage [2016/11/26(土) 17:05:31.40 ID:/HuSQ2djM.net] public static class EnumerableEx { public static IEnumerable<int> Randoms(int seed, int max, int count) { var r = new Random(seed); for(int i = 0; i < count; ++i) yield return r.Next(max); }} c = EnumerableEx.Randoms(seed, RMAX, N).Count(ori.Containts);
681 名前:デフォルトの名無しさん (ワッチョイ abdc-MM3T) mailto:sage [2016/11/26(土) 17:27:30.27 ID:UC4M2NKY0.net] >>671 引数のcountは無しで無限ストリームにした方が美しいと思う 有限にしたければTakeで切ればいい
682 名前:デフォルトの名無しさん (オッペケ Sre7-4iO2) mailto:sage [2016/11/26(土) 20:57:24.75 ID:BlR4fLnAr.net] >>670 続きは?
683 名前:デフォルトの名無しさん (オッペケ Sre7-4iO2) mailto:sage [2016/11/27(日) 02:43:47.55 ID:vLOqtuLor.net] public static IEnumrable<T> Randoms<T>(Func<T> next) { while(true) { yield return next(); } } 任意の乱数アルゴリズムを渡せるようにと考えたけど、もはやランダムとは無関係だよねww
684 名前:デフォルトの名無しさん (ワッチョイ abdc-MM3T) mailto:sage [2016/11/27(日) 07:11:41.91 ID:dEf188sX0.net] >>674 名前が既に機能を表してないのはともかく、これは副作用が前提になるからよくない設計 どこかで副作用を使ってない限りnext()は必ず毎回同じ値になるはず
685 名前:デフォルトの名無しさん (ワッチョイ 370b-PVnu) mailto:sage [2016/11/27(日) 13:07:28.68 ID:ZDMyX7Jh0.net] 普通に何がしたいのか分からない
686 名前:デフォルトの名無しさん (ワッチョイ 87ce-w12Y) mailto:sage [2016/11/28(月) 06:20:00.23 ID:d2SeRThv0.net]
687 名前:乱数列をインデックスで参照したいだけ なんでしょ? [] [ここ壊れてます]
688 名前:デフォルトの名無しさん (ワッチョイ 87d4-TEJY) [2016/11/28(月) 20:53:46.42 ID:jgfNB/jg0.net] 実際のプログラムでデリゲート/イベントをどう使うのが便利なのか、理解できる教材・WEBサイト等があれば教えてください
689 名前:デフォルトの名無しさん (ワッチョイ c748-AQyI) mailto:sage [2016/11/28(月) 21:37:11.66 ID:TQQs9y8p0.net] https://msdn.microsoft.com/ja-jp/library/ms173171.aspx
690 名前:デフォルトの名無しさん (ワッチョイ 4f4c-/sNf) mailto:sage [2016/11/29(火) 10:18:57.84 ID:PfRgidpN0.net] 関数ポインタなイメージだわ
691 名前:デフォルトの名無しさん (ワッチョイ 87ce-w12Y) mailto:sage [2016/11/30(水) 00:56:16.15 ID:H3buRLlE0.net] Win32APIのコールバックに渡せる時点で外部からの見え方は関数ポインタそのもの そこにどうやってインスタンもねじ込んでるのか正確には知らないけど 関数ポインタをユニークなヒープ領域に書いてそれを渡して呼び出させる みたいな気持ち悪いことを裏でやってるんだろう
692 名前:デフォルトの名無しさん (ワッチョイ 87ce-w12Y) mailto:sage [2016/11/30(水) 01:03:41.03 ID:H3buRLlE0.net] 少なくとも1度はヒープ上でコード実行してるはずなんだけど スパイウェア認定されたりしないのはなぜだろう
693 名前:デフォルトの名無しさん (ワッチョイ 279d-lM3r) mailto:sage [2016/11/30(水) 01:04:12.90 ID:w8bfAEOD0.net] 動けばいい
694 名前:デフォルトの名無しさん (ワッチョイ a77b-rApL) [2016/11/30(水) 02:53:33.77 ID:5s/CT6+70.net] >679 Msdnの説明なんて99%糞だよな。頭和杉、マクロバカって書いてある本を 見たことがある。 でもたまに凄くわかりやすいのがある。今日まさにそれに出会って 感想欄に MSDNにしては本質をついていてわかりやすい。こんなにわかりやすい せつめいは初めてだ。 これはMSDNの文章とは違う素晴らしい文章だ。たぶん外注のライターが 書いたものだと思うが、こういう外注さんは大事にしなさい。 ありえないとは思うが、もし万が一社員が書いたものならぜひともボーナス を弾んであげてほしい。 と書いておいた。
695 名前:デフォルトの名無しさん (ワッチョイ 5b3c-0AhV) mailto:sage [2016/11/30(水) 02:59:23.96 ID:PzfaC3Zi0.net] 精神を病んでいる様だからカウンセラーにでも相談したまえ
696 名前:デフォルトの名無しさん (ワッチョイ abdc-MM3T) mailto:sage [2016/11/30(水) 07:35:52.74 ID:TOIBVM0F0.net] >>681 マネージコードからの通常のInvokeや一般のクラスやインターフェースの仮想メソッド呼び出しでも JITのために
697 名前:ッ様の仕組みがあるらしい デリゲートが関数ポインタを持ってるんじゃなくて、呼び出し元(call siteという)ごとのキャッシュとして ネイティブ関数を生成するみたいだ [] [ここ壊れてます]
698 名前:デフォルトの名無しさん (ワッチョイ a77b-rApL) [2016/11/30(水) 10:16:51.02 ID:5s/CT6+70.net] Delegateはクラスを着ていない素っ裸の抽象メソッドだと思う。だから デレッってしてる。 クラスと同様にインスタンスを作成して使うけれども抽象メソッドだから 実態のメソッドを代入して使用する。 その時に実態のメッソッドから名前を剝ぎ取った素っ裸のメソッドが ラムダ式だ。 スッポンポンというところがデレゲートとラムダは似ている。
699 名前:デフォルトの名無しさん (ワッチョイ a77b-rApL) [2016/11/30(水) 10:35:50.72 ID:5s/CT6+70.net] delegate int delSm(int i); //型紙delSmを作成する。 void test() { delSm Sm; //型紙delSmから洋服Smを作成 Sm = (x => x * x); //素っ裸のメソッドにSmを着せる int j = Sm(16); //j = 256 }
700 名前:デフォルトの名無しさん (ワッチョイ 5c03-Z4eY) mailto:sage [2016/12/01(木) 16:54:34.62 ID:0Um+ha3M0.net] C#の質問で無く恐縮ですが VS2013でC#コード入力していますが 補完機能の振る舞いがよくわからないことがあります。 例えば"int"と入力する場合 i→n→tとキーインすると 補完候補は"int"の表示が選択されています。 ここでスペースをキーインすると エディタには"iint"と入力されてしまいます。 どういうことでしょうか? returnもrreturnとなってしまいます。
701 名前:689 (ワッチョイ 5c03-Z4eY) mailto:sage [2016/12/01(木) 16:55:46.18 ID:0Um+ha3M0.net] もしかしてATOKのせいでしょうか。
702 名前:デフォルトの名無しさん (ワッチョイ 6bc0-/mAi) mailto:sage [2016/12/01(木) 19:32:35.80 ID:Zf0m27Yo0.net] TABキーで補完すればいいんじゃね
703 名前:デフォルトの名無しさん (ワッチョイ d1d6-NTgB) mailto:sage [2016/12/01(木) 23:26:48.62 ID:iYDC/6Ae0.net] >>689 ATOK使ってるけど普通に使えてるな VSのサービスパックでも当てたら直るんじゃね?
704 名前:689 (ワッチョイ 5c03-Z4eY) mailto:sage [2016/12/02(金) 08:57:18.65 ID:31Pwg6Qz0.net] >>691 >>692 ありがとうございます。 TABにしても同じなんです。 SPためしてみます。 と、書いていましたが たった今VS2013起動して試してみたところ 問題有りませんでした。 原因はわかりませんが再起動すれば良いようですね。 お騒がせしました。ありがとうございました。
705 名前:初心者 (ワッチョイ 50cf-yaSi) [2016/12/02(金) 14:04:42.72 ID:mPN6uvNG0.net] C#の勉強したいんですけど visualstudioのどれをダウンロードすればいいですか?一番左ですか?
706 名前:デフォルトの名無しさん (アウアウオー Sabe-k+pW) mailto:sage [2016/12/02(金) 14:22:34.32 ID:KR/8JQ+qa.net] オッスオラ極右
707 名前:デフォルトの名無しさん (フォォーッ MM9b-NTgB) mailto:sage [2016/12/02(金) 14:24:44.13 ID:hCuw5ExfM.net] >>694 download.microsoft.com/download/8/0/3/8036DBC2-135E-431D-86FE-C2C53562C9F1/vs_community_JPN.exe
708 名前:デフォルトの名無しさん (ワッチョイ 98d4-NTgB) mailto:sage [2016/12/02(金) 14:44:59.65 ID:ulrrSATP0.net] いままでPro買ってたけどCommunityでいい気がしてきた
709 名前:デフォルトの名無しさん (オッペケ Sr8d-F2U0) mailto:sage [2016/12/02(金) 15:12:50.24 ID:B5+8wL6Vr.net] コミュニティ使っててアプリ作って条件以上の売上出たらどうすればいいの?
710 名前:デフォルトの名無しさん (ワッチョイ 2a02-0Nhh) mailto:sage [2016/12/02(金) 15:32:17.74 ID:mFAqdh2w0.net] 買えばいいんじゃね、そんなんに売れたんなら
711 名前:デフォルトの名無しさん (ワッチョイ 9220-NTgB) mailto:sage [2016/12/02(金) 22:45:54.98 ID:5RQuVDtH0.net] C#というわけではなく、初歩的なことかと思いますが テスト要領書って、本来コーディング前に作っておくものでしょうか? うちの会社じゃ いつもコーディングの後半に作ってるんですが 一般的には
712 名前:どうなんだろうと思いまして [] [ここ壊れてます]
713 名前:デフォルトの名無しさん (ワッチョイ 4dcb-g21N) mailto:sage [2016/12/02(金) 22:56:52.05 ID:2vcaPjiT0.net] マルチポストしてんじゃねえぞチンカス野郎
714 名前:デフォルトの名無しさん (ワッチョイ 115b-25R2) [2016/12/02(金) 23:15:26.91 ID:9K0+rqji0.net] データベース使ったサンプルアプリ作ってみたいのですが、データベースは何を使ったらいいですか?
715 名前:デフォルトの名無しさん (ワッチョイ f4cb-yaSi) mailto:sage [2016/12/02(金) 23:44:10.13 ID:UcIXa3VL0.net] >>702 モノによって癖があるよ インストール方法からして上手くいかないポイントが違う 業務でWindowsアプリ作るならSQLServerExpressがオススメ 絶対使うしね 趣味でレンタルサーバー使うならmysqlが多いかも
716 名前:デフォルトの名無しさん (ワッチョイ d1d6-NTgB) mailto:sage [2016/12/02(金) 23:48:17.42 ID:kbaBWwKx0.net] ファイルコピーだけで簡単に動かしたいのならSQLiteもいいぞ
717 名前:デフォルトの名無しさん (ワッチョイ f4ce-BRVC) mailto:sage [2016/12/02(金) 23:58:41.69 ID:P1j76Eyi0.net] Windows標準で入ってるJet DBが何も入れる必要ない点でオススメ
718 名前:デフォルトの名無しさん (ワッチョイ 2aaf-MLbx) mailto:sage [2016/12/03(土) 00:46:33.44 ID:6QJpBGmN0.net] SQLiteは便利で面白い Firefoxのクッキーの管理なんかにも使われてる
719 名前:デフォルトの名無しさん (ワッチョイ 115b-25R2) [2016/12/03(土) 09:19:05.56 ID:/EDU3A450.net] >>703-706 ありがとうございます! さっそく調べてみます!
720 名前:デフォルトの名無しさん (ワッチョイ 92e5-/mAi) mailto:sage [2016/12/03(土) 10:35:13.28 ID:OhSejOMk0.net] 普段threadを生成してやっていた非同期処理を バージョンアップに合わせてasync await使って実装してみようと思います。 非同期を意識しない場合の元ソースは以下のコード private void btn_click(省略) { var list = getList("なんたら"); } private List<string> getList(string target) { var list = hogehoge関数 return list ; } この中で呼び出し元の btn_click から getList関数を非同期で呼び出すことは可能でしょうか? 可能であればいずれ同期的に使う可能性も含めて getList関数には手を入れたくはないのですが、入れられないのであれば手を加えても問題ありません。 有識者の皆様、何かしらヒントでもご教示いただけれb幸いです。
721 名前:デフォルトの名無しさん (ワッチョイ 92e5-/mAi) mailto:sage [2016/12/03(土) 10:42:36.75 ID:OhSejOMk0.net] 連投失礼 記述ミス修正 getList関数には手を入れたくはないのですが、入れられないのであれば手を加えても問題ありません。 ↓ この中で呼び出し元の btn_click から getList関数を非同期で呼び出すことは可能でしょうか? 可能であればいずれ同期的に使う可能性も含めて getList関数には手を入れたくはないのですが、入れなければいけないのであれば手を加えても問題ありません。 Task<List<string>>にしないといけないんだろうなぁ…とは思いますが…。
722 名前:デフォルトの名無しさん (ワッチョイ 2a02-0Nhh) mailto:sage [2016/12/03(土) 10:56:58.35 ID:rfPwjFy00.net] 普通は同期版と非同期版と二つ定義するんじゃないのか getListは同期関数にしたいの?非同期関数にしたいの?
723 名前:デフォルトの名無しさん (ワッチョイ 39dc-Cf2b) mailto:sage [2016/12/03(土) 11:00:28.76 ID:x7z2pgeG0.net] なんか勘違いしてそう async使うなら最終的にIOやユーザー操作でブロックされるところまで全部非同期で繋がないと意味ないよ?
724 名前:デフォルトの名無しさん (ワッチョイ 839d-5gNI) mailto:sage [2016/12/03(土) 11:03:34.95 ID:n86jitUO0.net] var list = await Task.Run(() => getList("...")); こういうことじゃないの?
725 名前:デフォルトの名無しさん (ワッチョイ 39dc-yaSi) mailto:sage [2016/12/03(土) 13:23:04.99 ID:x7z2pgeG0.net] ところで、asyncを全面的に使ってるとストリームにたかが数バイトを書き込むだけみたいな 時間的粒度の小さいメソッドでもいちいちawaitせざるを得ないことがよくあると思うんだけど、非効率だからまとめて処理できないもんかな 個人的には、全ての書き込みがバッファリングされることが保証されてるAsyncStreamみたいなクラスがあって 後でにまとめてawait FlushAsyncするという考え方の方がWriteAsyncより使いやすいと思うんだけど
726 名前:デフォルトの名無しさん (ワッチョイ 92e5-/mAi) mailto:sage [2016/12/03(土) 13:33:41.53 ID:OhSejOMk0.net] >>710-712 イメージ的には getList←同期 getListAsync←非同期(内部でgetListを呼ぶ) のようになるのかなと。 もとのgetList自体は同期処理で動くようにしておきたかっただけという簡単なものでした。 >>712 さんの言うところで出来てしまいました…。 あっさり過ぎて…ありがとうございました。 これでUIが固まらない為だけの面倒な非同期を書かなくて済みそうです。
727 名前:デフォルトの名無しさん (スッップ Sda8-wK09) mailto:sage [2016/12/03(土) 17:28:43.65 ID:6dOdOU6od.net] 商用で使えるフリーの開発環境ってありますか?
728 名前:デフォルトの名無しさん (ワッチョイ 39dc-yaSi) mailto:sage [2016/12/03(土) 17:42:27.55 ID:x7z2pgeG0.net] >>715 小規模な企業までならVS Communityが商用利用可 Communityが使えない規模ならVS Express
729 名前:デフォルトの名無しさん (ワッチョイ 8d4a-JWTN) mailto:sage [2016/12/03(土) 21:57:51.27 ID:NEbgZC1U0.net] >List<T>も2次元にはできないが、そもそも2次元にする必要がない list<list<T>>で二次元じゃあないの?
730 名前:デフォルトの名無しさん (ワッチョイ 839d-5gNI) mailto:sage [2016/12/03(土) 22:06:20.99 ID:n86jitUO0.net] 広義の二次元だけど狭義の二次元ではない、かな 多次元配列とジャグ配列で呼び分けるから
731 名前:デフォルトの名無しさん (ワッチョイ 1ee1-yaSi) mailto:sage [2016/12/03(土) 22:51:22.62 ID:1XG4MZmv0.net] >>713 その程度なら自分で実装すればよくね?
732 名前:デフォルトの名無しさん (ワッチョイ 6b0d-BRVC) [2016/12/03(土) 23:02:24.03 ID:nNmCZ+K50.net] TreeViewでファイルエクスプローラーを作りましたが ファイルやフォルダの数が多すぎると必ずフリーズします 例えば肥大化した"C:\Windows\WinSxS"を表示するにはどうしたらいいですか?(私の環境ではサブフォルダ数が1万数千あります)
733 名前:デフォルトの名無しさん (ワッチョイ f4ce-BRVC) mailto:sage [2016/12/03(土) 23:27:08.60 ID:55Oi6B7P0.net] >>720 そもそも1万件とか画面に一度に表示できる数じゃないんだから 一部だけ出すとか表示方法を工夫する以外にないよ 既存のファイラーとかを参考にしてみたらどうかね
734 名前:デフォルトの名無しさん (ワッチョイ f4cb-yaSi) mailto:sage [2016/12/04(日) 00:29:04.69 ID:tP3D55j/0.net] >>720 開いたフォルダのみ中身を表示してはどうだろうか?
735 名前:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5) [2016/12/04(日) 20:20:27.84 ID:HFDVK7VF0.net] Rxをテストしようとおもうのだが、 using System.Reactive.Linq; これを追加しても エラー CS0234 型または名前空間の名前 'Reactive' が名前空間 'System' に存在しません (アセンブリ参照があることを確認してください)。 となる。参照を探してもmscore.libしかないがこれをチェックすると 「すでにビルドに組み込まれているのでエラー」になる。 どうしたらいいの?
736 名前:デフォルトの名無しさん (アウアウカー Sa05-F2U0) mailto:sage [2016/12/04(日) 20:35:11.66 ID:iX2mGjzba.net] Rxはインストールしたの? 標準ではないよ
737 名前:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5) [2016/12/05(月) 06:04:42.72 ID:kVcVuvgX0.net] VS Community 2015で Nuget パッケージマネージャー画面でSystem.Reactiveをインストールしようと する 設定は参照にして、パッケージソースは「すべて」 Nuget.org packagesource Microsoft and .NET Microsoft Visual Studio Offline Package にしている。 '.NETFramework,Version=v4.5.2' を対象とするプロジェクト 'WpfApp1' に関して、 パッケージ 'System.Reactive.3.1.1' の依存関係情報の収集を試行しています Unable to load the service index for source packagesource. この要求の送信中にエラーが発生しました。 リモート名を解決できませんでした。: 'packagesource' ========== 終了 ========== インストールできない。 packagesource. このエラーが出るのはパッケージマネージャの設定に 間違いがあるんだろうか?
738 名前:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5) [2016/12/05(月) 07:19:43.60 ID:kVcVuvgX0.net] PM> Install-Package System.Reactive Install-Package : ソース '' 内でパッケージ 'System.Reactive' が見つかりません。 つまりパスが違っている。DefaultPathはどこに設定するのだろうか?
739 名前:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5) [2016/12/05(月) 07:22:18.16 ID:kVcVuvgX0.net] あれっ、頭にきてボタンを押しまくっていたらインストールできた。 なぜだ? わからんが、とにかくインストールできた。手当たり次第に 出たらめにやるのがいいみたいだ。
740 名前:デフォルトの名無しさん (アウアウオー Sabe-wK09) mailto:sage [2016/12/05(月) 21:52:16.25 ID:7n2NXvP5a.net] 「n = n + 1」「n++」「n += 1」 の中で速度が速い、またはメモリの消費が少ない手段はどれですか? 今回の使用目的はループ内でのカウンタです また、それぞれの使い分けがわからないので適切な使用箇所があれば教えてください
741 名前:デフォルトの名無しさん (ワッチョイ 9213-ggLi) mailto:sage [2016/12/05(月) 21:55:01.48 ID:+86vS9TV0.net] >>728 差はないから好きにすればいい
742 名前:デフォルトの名無しさん (ワッチョイ 467d-NTgB) mailto:sage [2016/12/05(月) 22:28:32.97 ID:k7XpTrID0.net] ++はコピーが入る
743 名前:デフォルトの名無しさん (ワッチョイ 4d7b-1jzX) mailto:sage [2016/12/05(月) 22:44:22.01 ID:VOjnBi1e0.net] 出たな、半可通
744 名前:デフォルトの名無しさん (オッペケ Sr8d-E9Xg) mailto:sage [2016/12/06(火) 02:55:06.76 ID:4zSpj2YCr.net] >>727 VSのnugetのインストーラが古いので更新する必要がある場合がある。
745 名前:デフォルトの名無しさん (アウアウカー Sa67-OnqS) mailto:sage [2016/12/09(金) 10:45:19.60 ID:0JyYFlmma.net] >>728 cpy add 1 mov inc add 1
746 名前:デフォルトの名無しさん (JP 0H5f-l58V) mailto:sage [2016/12/09(金) 10:50:44.15 ID:u4ONmpntH.net] それだけで文にするならどうせ最適化されるでしょ 部分式として使ってるならしらんけど
747 名前:デフォルトの名無しさん (ワッチョイ 07ce-3ple) mailto:sage [2016/12/10(土) 21:08:20.94 ID:9pHrXFRT0.net] カウンタならどうでもいいけど インデックスとして使うならunsafe付けてポインタ扱った方がいい
748 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/10(土) 21:20:26.17 ID:THyFY8cN0.net] そんなのが必要になる場合は限られる。 初心者スレでunsafeを気軽に進めない方が良い。
749 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/10(土) 21:36:24.82 ID:MAlDTlrl0.net] fixedはpinのオーバーヘッドがあるから頻繁に使うとかえって遅くなるよ
750 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 06:33:33.19 ID:caNoEqSZ0.net] >TreeViewでファイルエクスプローラーを作りましたが >ファイルやフォルダの数が多すぎると必ずフリーズします >例えば肥大化した"C:\Windows\WinSxS"を表示するにはどうしたらいいですか? >(私の環>境ではサブフォルダ数が1万数千あります) 自分もこれで悩んでる。1分ごとに測定したデータが1ファイルごとに1年分ある。 60x20x360=43万ファイル これをGetFilesでファイル名を取り出して集計処理しようとするとファイル読み出しで ハングする。 やり方がよくわからないので先輩に聞いたら 「Application.EentDoを入れたらキーが効くのでハングしないよ」 というアドバイスをもらってやってみたが、ダメだった。 で自分で少し調べてみたんだが、 UIの同一スレッドでこれをやると原理的にだめ。処理が重すぎてかならずハングする。 スレッドを分ける方法として、タスクプールを使う方法とスレッド生成がある。 タスクプールを使うのがよい。Async/Await というところまでは分かったんだが、どうやって実現したらいいのかまだよくわからん。
751 名前:デフォルトの名無しさん (ワッチョイ 07d4-QGPA) [2016/12/11(日) 06:47:31.93 ID:fUQnV1N+0.net] 非スタティックなメソッドを呼び出したい場合に、 new クラス名.メソッド名(); とするのはなにか問題があるのでしょうか?
752 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 08:40:31.81 ID:caNoEqSZ0.net] >739 それはコンパイルエラーになるから問題ないと思うが、、、
753 名前:デフォルトの名無しさん (ワッチョイ ebdc-6LJV) mailto:sage [2016/12/11(日) 09:12:08.77 ID:xUW3RgdE0.net] >>739 new クラス名().メソッド名(); の間違いと仮定した上での回答だが、 毎回必ずそのパターンで使用されるのであれば実質staticメソッドと変わらないからstaticメソッドにすることも検討すべき パラメータが複雑な場合にBuilderパターンとFluentなスタイルを組み合わせて、 new Request().WithEncoding(UTF8).with…().Send(); みたいにするのは丁寧に作られてるライブラリだとよくあるけど
754 名前:デフォルトの名無しさん (ワッチョイ 07cb-1E9w) mailto:sage [2016/12/11(日) 09:24:54.90 ID:G916gL+V0.net] >>738 仕様が決まってない問題をAPIの問題にすり替えてる 超たくさんファイルがあるとき結局どうしたいの? 全部表示したいの?一部表示したいの? ユーザに指定させて表示したいの?
755 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 09:42:50.42 ID:caNoEqSZ0.net] 仕様は明白だとおもうが、、、 TreeView表示と同じだが、ファイルを読みだしてグラフ表示しながら同時にファイル 読み出しとその集計処理もやる必要がある。 100ポイントづつを読みだして処理して表示する。 続きを100ポイント読みだして処理して表示する。 このようにシングルスレッドのなかで実現できれば、それが最も良い。 しかし、処理を分割するのはGetFilesのようなライブラリを 使う場合は中断して途中から再開は不可能だ。 そこで、GetFilesは別タスクで動かして非同期処理をするパイプを作ればいい。 task1 thread data = getfiles(); FIFO.add(data); UI thread tree.add( FIFO.read()); というのが検討中の内容だ。
756 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/11(日) 09:42:54.26 ID:xUW3RgdE0.net] >>738 の場合は小手先のコーディングでどうするという問題じゃなくて SparkとかHiveとか使えばいいんじゃないか
757 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 09:51:31.24 ID:caNoEqSZ0.net] それちょっと調べてみるが、C#にキューってのがあるが、それじゃだめなの?
758 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/11(日) 09:54:31.80 ID:xUW3RgdE0.net] >>745 抽象度が全然違う ちゃんとしたビッグデータ処理基盤を使えば、 データを全部HDFSに放り込んでおきさえすれば簡単にデータセット全体にクエリがかけられる いちいち要件に応じて作り込まなくていい
759 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 09:55:28.07 ID:caNoEqSZ0.net] >744 そんな商用ツールは見掛け倒しと思って間違いない。第一広まらないy。
760 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/11(日) 09:58:51.14 ID:xUW3RgdE0.net] >>747 オープンソースだしデータ処理の世界じゃクソ有名だよ? 脊髄反射で拒否する前にちょっとは新しいことに興味持ってみてもいいんじゃないかな、 余計なお世話かもしれないけど
761 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 10:05:36.19 ID:caNoEqSZ0.net] えっ、オープンソースなのか。俄然興味がわいてきた。w
762 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 10:07:25.47 ID:caNoEqSZ0.net] 普通のDBに比べてSpark、Hiveは何がいいの?
763 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 10:12:32.86 ID:caNoEqSZ0.net] グラフ表示するような案件だとSpark SQLがいいみたいだね。 速い。
764 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/11(日) 10:16:20.28 ID:xUW3RgdE0.net] >>750 ざっくりいえば大量データのバッチ処理が速い レイテンシが大きいのでリクエストをリアルタイムに処理して結果を返すようなものには向いていない
765 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 10:33:30.52 ID:caNoEqSZ0.net] C#を最近勉強をはじめたばかりだが、これはすごい言語だな。まさにアルゴリズムの最高哲学 という印象を受けた。これは面白い。 しかし目移りしてどこから取り掛かったらいいのか困る。VBをチョロっとしか経験がないので C#には新しい概念がありすぎてミクロ的にもマクロ的にはほんとに目移りする。 LINQ、WPF、RX、ざっとみたところだ。 いままだ右も左もわからないので取り合えず。適当にReactive Extention からマスターして みようと思っているが、、、、
766 名前:デフォルトの名無しさん (ワッチョイ 0b7b-ymeu) mailto:sage [2016/12/11(日) 11:12:34.07 ID:n3GfLzAe0.net] >>739 newより.の方から優先順位が高いので その例ではクラス名.メソッド名 のスタティックメソッドを呼び出して、その戻り値をnewする事になる なので、newをカッコでくくる (new Date).toISOString();
767 名前:デフォルトの名無しさん (ワッチョイ 0b7b-ymeu) mailto:sage [2016/12/11(日) 11:13:40.49 ID:n3GfLzAe0.net] ああ、すまん、Javascriptスレと間違えてたわ
768 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/11(日) 11:16:14.04 ID:xUW3RgdE0.net] Rxはマイナーな技術だしasync/awaitがわかってれば十分カバーできるからスルーでOK WPFも終わった技術だから今更要らない 専業コーダーじゃないんなら小手先の技術に拘るのはほどほどにして マイクロサービス的な連携だとかクラウド活用だとかもっとマクロな領域へシフトしていった方がいいと思うよ
769 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 13:36:37.71 ID:caNoEqSZ0.net] >756 言わんとするところはよくわかる。考え方の本質は同じだとおもう。 できれば楽にプログラムをしたい。 WPFは終わったのだろうか? たしかに流行ってないよね。w でもMVVMの考え方は間違っていないと思う。 Rxはマイナーな技術なんだろうか? 応用できる範囲がどの程度あるのか はよくわからない。 LINQには少なからず衝撃を受けたので、Push型のRXはなにかとてつもない発見 がありそうな予感がする。 もっともLINQというよりはIEnubableとかデザインパターンの考え方に衝撃を受けた。 マクロ的な技術を使う上でもミクロをある程度は理解していないと、無駄な使い方 をしてしまう可能性があるように思う。その意味では細部まで100%理解しよう なんて思わないが、60%くらいは理解しておきたい。
770 名前:デフォルトの名無しさん (ブーイモ MM07-caEn) mailto:sage [2016/12/11(日) 13:48:02.76 ID:Z923MDQCM.net] ネタや実験以外でRxなんて使ってる現場存在するのか
771 名前:デフォルトの名無しさん (ワッチョイ 5b79-pq3j) mailto:sage [2016/12/11(日) 14:07:20.29 ID:bG1axWcs0.net] フロントならangularについてくるから使うけどC#では使ったことない
772 名前:デフォルトの名無しさん (ワッチョイ 5b79-pq3j) mailto:sage [2016/12/11(日) 14:12:00.35 ID:bG1axWcs0.net] angularでもRxはtoPromiseしか使わないから使ってないような物か
773 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/11(日) 14:12:51.19 ID:31wztqOV0.net] >>743 GetFiles()って、Directory.GetFiles()のこと? それだったら、代わりにDirectory.EnumerateFiles()を使えば逐次処理出来るよ。
774 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/11(日) 14:29:28.43 ID:31wztqOV0.net] >>739 恐らく、やりたいのは (new クラス名).メソッド名(); ってことだと思うけど、何度も使う場合は毎回newすることになるので非効率。 また、IDisposeなクラスの場合はDispose()を呼べない。 上記2つに問題ないなら使っても構わない。staticメソッドにすべきだけどね。
775 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 14:49:28.21 ID:caNoEqSZ0.net] >それだったら、代わりにDirectory.EnumerateFiles()を使えば逐次処理出来るよ。 それなかったな。 会社がVs2008なのでw Vs2008で.net Framework4.5とかつかえるんだろうか?
776 名前:デフォルトの名無しさん (ブーイモ MM07-caEn) mailto:sage [2016/12/11(日) 14:58:46.78 ID:Z923MDQCM.net] なきゃ実装すればいい
777 名前:デフォルトの名無しさん (ワッチョイ cb5b-w4ID) [2016/12/11(日) 14:59:38.20 ID:PxfwJXGz0.net] こんな感じで構造体配列の中身をIntPtrにコピーしたいんですが どういう方法がありますか? struct A{ int x=0,y=1,z=2; } A a = new A(); IntPtr ptr; Marshal.StructureToPtr(a, ptr, false);
778 名前:765 (ワッチョイ cb5b-w4ID) mailto:sage [2016/12/11(日) 15:00:53.89 ID:PxfwJXGz0.net] >>765 すいません。領域確保(AllocCoTaskMem)のところは省略してます。
779 名前:デフォルトの名無しさん (オッペケ Sr27-w4ID) [2016/12/11(日) 15:40:06.69 ID:pNKp5sE/r.net] List<string> list = new List<string>() {"hage", "namahage"}; List<string> list = new List<string> {"hage", "namahage"}; どっちもいけるんだけどどう違うの?
780 名前:デフォルトの名無しさん (ワッチョイ 07cb-1E9w) mailto:sage [2016/12/11(日) 15:41:48.31 ID:G916gL+V0.net] >>743 でも現実には処理が間に合わないわけじゃん それでも一気に表示する仕様は変えないのか? エクスプローラーではできてるのか?とか Windowsのコピーって動作だって早く終われば進捗ウィンドウなんて出さないけど 長くかかれば進捗ウィンドウが出てくるわけよ
781 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/11(日) 15:48:11.13 ID:31wztqOV0.net] >>763 肝心な条件を後だしとか酷いな。 Directory.EnumerateFiles()は.Net 4からだけど、VS2008は.Net3.5までだな。 .Net3.5じゃ、Async/AwaitどころかTaskも使えないぞ。 >>739 で用語が混じってるけど、スレッド/スレッドプール/タスクね。
782 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/11(日) 15:55:26.64 ID:31wztqOV0.net] Directory.GetFiles()は全てのファイルを取得するまで処理が戻ってこないから、バックグラウンド処理にした所で結局待たされる。 逐次処理がしたいなら、Win32API使ってDirectory.EnumerateFiles()のようなものを独自実装するしかないな。
783 名前:765 (ワッチョイ cb5b-w4ID) [2016/12/11(日) 17:07:16.26 ID:PxfwJXGz0.net] こんな風に構造体の配列の要素ひとつずつをIntPtrで確保した領域にコピーしようと したのですが、こういう方向性では無理ですか? IntPtr ptr = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(A))*a.Length); for(int i = 0; i < a.Length; ++i){ Marshal.StructureToPtr(a[i], ptr+i*size, false); }
784 名前:765 (ワッチョイ cb5b-w4ID) mailto:sage [2016/12/11(日) 17:20:36.88 ID:PxfwJXGz0.net] >>771 あーこれで問題なくいけてましたwお騒がせしました。
785 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 17:56:21.30 ID:caNoEqSZ0.net] >770 そういうことか。 それでDoEventが聞かなかったんだね。 >769 Net4をダウンロードして、参照すればいいだけかとおもっていたが むりか?
786 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 18:00:11.20 ID:caNoEqSZ0.net] >770 System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:\test"); System.IO.FileInfo[] files = di.GetFiles("*.txt", System.IO.SearchOption.AllDirectories); //ListBox1に結果を表示する foreach (System.IO.FileInfo f in files) { ListBox1.Items.Add(f.FullName); ここでキューにいれればいいやん。 }
787 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 18:06:46.94 ID:caNoEqSZ0.net] >でも現実には処理が間に合わないわけじゃん >それでも一気に表示する仕様は変えないのか? キューから取り出して表示するんなら、UIがわで順次表示できるよ。 問題はUIで超重たい処理がはいるのでハング状態になるということだけ でしょ。 UIが動けば、ブレーク中断したり任意にできる。
788 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/11(日) 20:18:29.55 ID:caNoEqSZ0.net] SparkはC#サポートしてないよ。C#からどうやってつかうの?
789 名前:デフォルトの名無しさん (ワッチョイ ebdc-6LJV) mailto:sage [2016/12/11(日) 22:29:10.18 ID:xUW3RgdE0.net] そんなもん別プロセスでやりゃいいでしょ パラメータや結果の受け渡しはRPC(IPC)使ってもいいけど、今回の要件ならファイルベースでもオーバーヘッドは全く無視できる
790 名前:デフォルトの名無しさん (ワッチョイ 07cb-1E9w) mailto:sage [2016/12/11(日) 22:30:49.68 ID:G916gL+V0.net] 一個一個入れて描画されてるから遅かったりして?
791 名前:デフォルトの名無しさん (ワッチョイ d723-xm+r) mailto:sage [2016/12/12(月) 01:48:31.95 ID:jfe+O/Es0.net] >>771 .NET 4.0以降ならこういうのもあるよ、Marshal.AlignedSizeOf<T>()でアライメントされるが https://msdn.microsoft.com/ja-jp/library/system.runtime.interopservices.safebuffer 派生クラスでhandleに確保済みポインタを設定し、Initialize<T>()等でポインタ領域も指定 StructureToPtrはジェネリックメソッドでさえも非ジェネリックのラッパーっぽいので パフォーマンスは期待できない、unsafeで良ければ構造体ポインタ使った方が良いかもね
792 名前:デフォルトの名無しさん (ワッチョイ cb5b-w4ID) mailto:sage [2016/12/12(月) 02:20:55.85 ID:JnfesTFd0.net] >>779 おぉ〜情報ありがとうございます! なるほどそういうのもあるんですね。 教えて頂いた事を参考にさせて頂いてどうやるかもうちょっと考えてみます。
793 名前:デフォルトの名無しさん (ワッチョイ ebdc-6LJV) mailto:sage [2016/12/12(月) 06:39:25.29 ID:w8oqDcFY0.net] bittableな構造体ならマネージ配列にGCHandleを割り当ててAddrOfPinnedObjectという手もあるよ unsafeならfixedステートメントがだいたい等価 いちいちアンマネージなバッファを割り当てたり更新内容をマネージコードに書き戻したりしなくていいから楽
794 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/12(月) 08:05:25.67 ID:Jwz8x4f60.net] >そんなもん別プロセスでやりゃいいでしょ >パラメータや結果の受け渡しはRPC(IPC)使ってもいいけど、今回の要件なら >ファイルベースでもオーバーヘッドは全く無視できる 全然意味がわからない。C#でCSVを作ったとして 1.C#からScalarにクエリを送信して、 2.Sparkの処理終了を待つ 3.結果を受信する。 これをC#でプログラムして、Scalarでもプログラムするってこと? 言うのは簡単だが、、、、例でもなきゃ調べてプログラムするのに1週間はかかりそう。w 本質的な情報が欠落しているとおもうよ。こんなのは初心者には全然意味がわからない。
795 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/12(月) 08:06:12.67 ID:Jwz8x4f60.net] >777 こういうのを使えってことだろうか? Mobius: C# API for Spark
796 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/12(月) 08:10:10.92 ID:Jwz8x4f60.net] var lines = sparkContext.TextFile(@"hdfs://path/to/input.txt"); var words = lines.FlatMap(s => s.Split(' ')); var wordCounts = words.Map(w => new KeyValuePair<string, int>(w.Trim(), 1)) .ReduceByKey((x, y) => x + y); var wordCountCollection = wordCounts.Collect(); wordCounts.SaveAsTextFile(@"hdfs://path/to/wordcount.txt"); こんな感じでC#からSparkをコントロールしたいのだが、もっとも一般的で初心者向け な簡単な方法はなにでしょうか?
797 名前:デフォルトの名無しさん (ブーイモ MM2f-6LJV) mailto:sage [2016/12/12(月) 08:30:36.13 ID:FdLiOBdBM.net] >>784 それを普通にScalaかPythonかJavaで書いてC#からProcess.Startで呼べばいい なんでもC#でやる必要ない
798 名前:デフォルトの名無しさん (オッペケ Sr27-l58V) mailto:sage [2016/12/12(月) 11:23:30.02 ID:FEnMQE8Ar.net] 誰も>>767 に答えられないの?
799 名前:デフォルトの名無しさん (ブーイモ MM2f-6LJV) mailto:sage [2016/12/12(月) 11:31:59.68 ID:FdLiOBdBM.net] >>786 違いはない
800 名前:デフォルトの名無しさん (アウアウオー Sa3f-ff1P) mailto:sage [2016/12/12(月) 11:55:48.82 ID:DdSBjDaJa.net] どうでもいいけどここにちゃんとした説明があるな https://msdn.microsoft.com/ja-jp/library/bb308966.aspx#topic12
801 名前:デフォルトの名無しさん (ワッチョイ 277b-gb6D) [2016/12/12(月) 14:45:07.46 ID:Jwz8x4f60.net] >785 なるほど。 傾向を掴むだけの場合にはいいけれども、アプトプットの表現を加工したいような 場合にはやはりC#でないと、、、となって結局はC#が必要になるような気がする。 JavaもC#も言語的にはそんなに変わらないが、インテリセンスのないようなIDE では作業できないと思わないか? Scalaとか触ってはみたがインテリセンスがないのでこれでは使えない。 インテリセンスがあればうろ覚え程度でもなんとかなる。
802 名前:デフォルトの名無しさん (ワッチョイ b741-mm6H) [2016/12/12(月) 15:32:39.38 ID:9sS+uj7w0.net] 未指定だと Javaはpublicに C#はprivateになるのは かなりデカイ違い
803 名前:デフォルトの名無しさん (ワッチョイ 5b79-pq3j) mailto:sage [2016/12/12(月) 15:56:55.39 ID:snQzvIqt0.net] >>790 javaはppだぞ
804 名前:デフォルトの名無しさん (ワントンキン MMef-g0tO) mailto:sage [2016/12/12(月) 16:46:36.53 ID:cpVlzpwxM.net] peek to peek ?
805 名前:デフォルトの名無しさん (ワッチョイ 5b79-pq3j) mailto:sage [2016/12/12(月) 17:00:27.95 ID:snQzvIqt0.net] package private
806 名前:デフォルトの名無しさん (ブーイモ MM47-caEn) mailto:sage [2016/12/12(月) 18:52:15.45 ID:VeOEVzI1M.net] えっJavaってIDEにインテリセンスもないのか
807 名前:デフォルトの名無しさん (ワッチョイ 5b79-pq3j) mailto:sage [2016/12/12(月) 19:44:00.02 ID:snQzvIqt0.net] >>794 Ctrl+spaceで出すか、設定からいつでも出るようにしないといけない
808 名前:デフォルトの名無しさん (ワッチョイ 5f73-drn7) mailto:sage [2016/12/12(月) 23:05:44.03 ID:dBjxs9jc0.net] Datatablのフィールドに氏名があったとして Linqで荒川のindex(rowの位置)を取得するにはどう書けばいいのですか?
809 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/12(月) 23:11:46.39 ID:w8oqDcFY0.net] >>796 そんなことはしない データソースに直接クエリするべき
810 名前:デフォルトの名無しさん (ワッチョイ 5f73-drn7) mailto:sage [2016/12/12(月) 23:30:47.31 ID:dBjxs9jc0.net] >>797 indexをforで探して別のフィールドの国語、数学の点を変えるでやっているんだけど forじゃなくてLinqで探せないかなと思って、forよりLinqのが早い?かなと
811 名前:デフォルトの名無しさん (ワッチョイ 6b23-WrC4) mailto:sage [2016/12/12(月) 23:34:13.53 ID:/DQxiOau0.net] >>798 行数が少ないだけでスピードは大して変わらんよ
812 名前:デフォルトの名無しさん (ワッチョイ b790-d424) mailto:sage [2016/12/13(火) 23:38:21.93 ID:3IrbMGrr0.net] カレンダーを作りたいのですがフォームに表示する場合どのコントロールアイテムを使えばいいのかわかりません 使えそうなコントロールアイテムってありますか?
813 名前:デフォルトの名無しさん (ブーイモ MM07-6LJV) mailto:sage [2016/12/13(火) 23:45:34.29 ID:D1DGYHRwM.net] WebBrowserでGoogleカレンダー表示しとけ
814 名前:デフォルトの名無しさん (ワッチョイ b790-d424) mailto:sage [2016/12/13(火) 23:45:54.00 ID:3IrbMGrr0.net] すいません、質問内容を変えます MonthCalenderアイテムのたとえば第1・3火曜日だけを色を変えたりとかってどうやるんでしょうか?
815 名前:デフォルトの名無しさん (ワッチョイ ebdc-Ts63) mailto:sage [2016/12/14(水) 01:12:4
] [ここ壊れてます]
816 名前:7.69 ID:dZsAFSxQ0.net mailto: 簡単な方法はない 出来合いのカレンダーコンポーネントなんかHTMLなら腐るほどあるから 今時WinFormsなんかやめてASP.NET MVCでWebアプリとして作ることをお勧めする [] [ここ壊れてます]
817 名前:デフォルトの名無しさん (ワッチョイ d349-mlnL) mailto:sage [2016/12/14(水) 01:25:03.42 ID:ymoBJubC0.net] 何だろね、この強引なWEB推し。 初心者がいきなりASP.NET MVCとか無理だろ。
818 名前:デフォルトの名無しさん (ワッチョイ 3f19-i2Au) mailto:sage [2016/12/14(水) 01:50:56.59 ID:WNb69LWH0.net] webアプリってあんまり好きじゃない
819 名前:デフォルトの名無しさん (スププ Sd2f-8RvK) mailto:sage [2016/12/14(水) 02:05:02.38 ID:0k2o8obnd.net] デスクトップアプリ作りたい人にWebアプリ薦めるとか頭おかしいだろ
820 名前:デフォルトの名無しさん (ワッチョイ 07cb-1E9w) mailto:sage [2016/12/14(水) 22:24:55.46 ID:AUUgXdZT0.net] あー、どうだろ? 今時、DBにも繋がらないゴミになんか価値あるの? って思う メモ帳ですらgoogleでクラウド化してくれたことでやばいぐらい利便性が上がってる
821 名前:デフォルトの名無しさん (スププ Sd2f-8RvK) mailto:sage [2016/12/14(水) 22:39:26.79 ID:0k2o8obnd.net] >>807 デスクトップアプリがDBに繋がらないって意味分からん
822 名前:デフォルトの名無しさん (ワッチョイ 3faf-i2Au) mailto:sage [2016/12/14(水) 22:46:30.91 ID:iFO9XKWI0.net] デスクトップアプリでDBならSQLiteとかでもOnedriveみたいにファイルを置くだけで同期できるやつを使えば鯖なくても簡単にクラウド化できるし ローカルのファイル書き込みと同じように使えるから初心者でも楽でいいよ
823 名前:デフォルトの名無しさん (ワッチョイ 6b23-WrC4) mailto:sage [2016/12/14(水) 23:01:05.01 ID:4HnH0eA/0.net] >>809 SQLiteは、同時書き込みサポートしていないから、当該アプリケーション専用かつ、二重起動不可にしないと何かと問題起こるでしょ
824 名前:デフォルトの名無しさん (スププ Sd2f-8RvK) mailto:sage [2016/12/14(水) 23:06:38.72 ID:0k2o8obnd.net] >>810 用途に合わせてDB選択すればいいじゃないですか
825 名前:デフォルトの名無しさん (ワッチョイ 34cb-Wqrw) mailto:sage [2016/12/15(木) 00:01:01.86 ID:I51Ec/8p0.net] >>808 クラウド的な意味で なんでもネットに繋げて見るべきだと思うな俺は
826 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/15(木) 00:37:49.10 ID:R3vgAk4Qd.net] >>812 ?
827 名前:デフォルトの名無しさん (ブーイモ MMb8-JvIx) mailto:sage [2016/12/15(木) 00:50:31.08 ID:ArFpv1XpM.net] いまやC#も舞台は完全にWebに移ったからなあ .NET Coreも正式リリースされ、C#はクラウド開発の主要技術として本格的に覇権を取りにいく時代に入った デスクトップアプリなどという終わった技術に固執している場合ではないよ
828 名前:デフォルトの名無しさん (ワッチョイ 9c9d-0G5/) mailto:sage [2016/12/15(木) 01:56:47.57 ID:UyqFS3sy0.net] ※個人の感想です
829 名前:デフォルトの名無しさん (ワッチョイ 350c-8I6M) mailto:sage [2016/12/15(木) 01:58:26.76 ID:roF9qDxe0.net] >>814 仕事でデスクトップアプリ作ることないの? いままでデスクトップアプリだったけど、Webに移行できたアプリって例えばどういうのがあるの?
830 名前:デフォルトの名無しさん (ワッチョイ 413c-awGI) mailto:sage [2016/12/15(木) 03:06:24.93 ID:hXmFu1Hy0.net] >>816 業務アプリはWeb移行流行っただろ デスクトップアプリは、開発ツールとしてならちょくちょくつくるね
831 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/15(木) 04:10:25.23 ID:R3vgAk4Qd.net] .NET Coreって別にクラウド用じゃないんだけど
832 名前:デフォルトの名無しさん (ワントンキン MM40-Qnvt) mailto:sage [2016/12/15(木) 06:03:28.59 ID:4tPXC7shM.net] PAINT DOT NET がWebに移植されたの?
833 名前:デフォルトの名無しさん (JP 0H57-8I6M) mailto:sage [2016/12/15(木) 10:17:25.60 ID:AviUmHkiH.net] デスクトップアプリでもクラウド上のDBに接続できるし>>807 は意味わからんな MS的にAzure App ServiceとXamarinと.NET Core推しでUWP含めデスクトップアプリを捨てにかかってる感はある
834 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/15(木) 10:33:10.37 ID:QVvM9ANid.net] >>820 xamarinはUWPサポートしてるんですが
835 名前:デフォルトの名無しさん (ワッチョイ 8001-Vn9u) mailto:sage [2016/12/15(木) 10:42:37.80 ID:FQrvRs280.net] 会社で使う業務アプリなら、使い勝手がどうとかレスポンスがどうとか文句言っても しょうがないからWebアプリでも仕方なしに使うけど、個人で使うならよっぽど何か メリットがない限り、Webアプリを選ぶ事はないわな
836 名前:デフォルトの名無しさん (ドコグロ MM1c-Wqrw) mailto:sage [2016/12/15(木) 11:52:17.88 ID:JOHJeedcM.net] >>822 え? むしろスマホも枠に入れたらwebアプリのが多くならない?
837 名前:デフォルトの名無しさん (ドコグロ MM74-f0Z7) mailto:sage [2016/12/15(木) 12:11:23.13 ID:oGetrQbmM.net] スマホアプリ全部をWebアプリに含めるなよ
838 名前:デフォルトの名無しさん (ワッチョイ 8001-NX/j) mailto:sage [2016/12/15(木) 12:12:53.08 ID:FQrvRs280.net] スマホの話をしてるつもりはないんだけどなw
839 名前:デフォルトの名無しさん (ワンミングク MM40-BQpQ) mailto:sage [2016/12/15(木) 12:33:06.76 ID:7KRIzockM.net] https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
840 名前:デフォルトの名無しさん (ワッチョイ f2af-fzYk) mailto:sage [2016/12/15(木) 15:47:36.94 ID:cs8YXCvF0.net] スマホアプリもデスクトップと同じようなものだと思ってたけど違うの? ソシャゲー以外はゲームもそれ以外もネット無しでも動くのが多いけど
841 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/15(木) 16:19:58.27 ID:QVvM9ANid.net] >>827 同じに決まってますやん っていうかもしかして デスクトップアプリ=通信機能なしのアプリ Webアプリ=通信機能ありのアプリ と思ってる人いる?
842 名前:デフォルトの名無しさん (ワッチョイ 3976-ayWP) [2016/12/15(木) 20:22:44.73 ID:JHzpWXH70.net] ローカルファイルの存在がある限りはデスクトップアプリなくならんよなあ electronとかでテクノロジー的には統一されるのかもしれんが
843 名前:デフォルトの名無しさん (ワッチョイ 39d9-0Nmv) mailto:sage [2016/12/15(木) 20:50:15.58 ID:0F4R16IB0.net] アーキテクチャーの話になってきてるからスレタイ読んで方向修正しろ
844 名前:デフォルトの名無しさん (ワッチョイ 34cb-Wqrw) mailto:sage [2016/12/15(木) 22:01:11.28 ID:I51Ec/8p0.net] c#でスマフォアプリ作りたいよ!
845 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/15(木) 22:07:11.09 ID:QVvM9ANid.net] >>831 どうぞどうぞ
846 名前:デフォルトの名無しさん (ワッチョイ 3542-XOD+) mailto:sage [2016/12/15(木) 22:41:41.93 ID:Uw+BYsZj0.net] >>831 つunity
847 名前:デフォルトの名無しさん (オッペケ Sr29-I6+1) mailto:sage [2016/12/15(木) 23:42:14.65 ID:FEXhH1Xvr.net] >>833 なんでそこでUnity出てくるんだよ アプリ=2D/3Dゲームとは限らんだろ
848 名前:デフォルトの名無しさん (アウアウイー Sa87-WqSn) mailto:sage [2016/12/15(木) 23:52:53.04 ID:JZ4+gGwKa.net] >>834 つunity
849 名前:デフォルトの名無しさん (ワッチョイ 3542-XOD+) mailto:sage [2016/12/15(木) 23:53:04.54 ID:Uw+BYsZj0.net] >>834 ゲームエンジンだからってゲーム製作を強制されてるわけじゃないしマルチプラットフォーム楽だから提案しただけ 情報はそれなりに多いしC#でスマホアプリ開発したいなら余裕で候補に入ってくると思うけど
850 名前:デフォルトの名無しさん (ドコグロ MM74-f0Z7) mailto:sage [2016/12/15(木) 23:55:29.59 ID:oGetrQbmM.net] ゲームでもないのにUnityはありえないな
851 名前:デフォルトの名無しさん (ワッチョイ 35dc-JvIx) mailto:sage [2016/12/16(金) 00:09:14.95 ID:oD0nT6zl0.net] 今はXamarinもタダでVSに付いてくるからな
852 名前:デフォルトの名無しさん (ササクッテロル Sp29-DuXA) mailto:sage [2016/12/16(金) 14:15:42.62 ID:+kSjzPrMp.net] >>837 Unity使ってゲームじゃないもの複数リリースしてるわ俺
853 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/16(金) 14:58:58.27 ID:2fwYBe0Xd.net] 変わった人ですね
854 名前:デフォルトの名無しさん (JP 0Hf9-hLkw) mailto:sage [2016/12/16(金) 16:48:03.99 ID:q/3Oja+oH.net] Xamarinってスマホ用のちょっとしたアプリをC#でちょちょいと書くくらいの用途だったら 十分使えるのかね?
855 名前:デフォルトの名無しさん (ワッチョイ 794a-xySp) mailto:sage [2016/12/16(金) 17:30:52.01 ID:3vYA7mHR0.net] >>814 CoreってまだPreviewでしょ?
856 名前:デフォルトの名無しさん (ワッチョイ 3179-fmwP) mailto:sage [2016/12/16(金) 17:31:55.76 ID:OhRUtX+J0.net] ionic2でスマホアプリ作った方が楽じゃない?
857 名前:デフォルトの名無しさん (ワッチョイ 9523-8I6M) mailto:sage [2016/12/16(金) 18:33:01.02 ID:pxUpeQjw0.net] >>842 www.publickey1.jp/blog/16/net_core_10_redhat.html オープンソースの「.NET Core 1.0」、マイクロソフトが正式リリース。Windows/Linux/macOSに対応。 2016年6月28日
858 名前:デフォルトの名無しさん (スププ Sdb8-WTZK) mailto:sage [2016/12/16(金) 19:33:08.33 ID:2fwYBe0Xd.net] >>841 プログラマーのスキル次第だよ
859 名前:デフォルトの名無しさん (ワッチョイ 34cb-rqOZ) mailto:sage [2016/12/17(土) 20:24:02.58 ID:qwypf80K0.net] >>842 Cora!何ねぼけたこと言ってんだ!
860 名前:デフォルトの名無しさん (ワッチョイ a030-0Nmv) mailto:sage [2016/12/17(土) 21:23:42.16 ID:iwmBtcKB0.net] 審議拒否
861 名前:デフォルトの名無しさん (ワッチョイ bf0d-zrF5) [2016/12/19(月) 17:35:36.43 ID:alVbxlzl0.net] 無名関数をその場で実行したいのですがどうやればいいですか? public void Hoge() { int fuga = 0; //JSだと (function() { fuga++; })(fuga); みたいな書き方 () => { fuga++; } Console.Write(fuga.ToString()); // 1 }
862 名前:デフォルトの名無しさん (ワッチョイ b779-fmwP) mailto:sage [2016/12/19(月) 17:55:39.16 ID:C2gHCNQF0.net] jsと同じ仕方で出来ない? (()=>{})()
863 名前:デフォルトの名無しさん (ワッチョイ bf0d-zrF5) [2016/12/19(月) 18:00:28.82 ID:alVbxlzl0.net] >>849 「メソッド名が必要です」とエラーが出ます。何か間違っているのでしょうか・・・? i.imgur.com/xkxr4EQ.jpg
864 名前:デフォルトの名無しさん (ワッチョイ 9519-qvaQ) mailto:sage [2016/12/19(月) 18:07:22.05 ID:/uogIQCg0.net] 型が必要 new Action(() => fuga++)(); ((Action)(() => fuga++)))();
865 名前:デフォルトの名無しさん (ワッチョイ bf0d-zrF5) [2016/12/19(月) 18:22:45.50 ID:alVbxlzl0.net] >>851 できました! ありがとうございます!
866 名前:デフォルトの名無しさん (アウアウオー Sa36-yl9W) mailto:sage [2016/12/19(月) 18:43:30.73 ID:3c7S3m0Fa.net] 何の意味がw
867 名前:デフォルトの名無しさん (ワッチョイ b779-fmwP) mailto:sage [2016/12/19(月) 18:55:26.87 ID:C2gHCNQF0.net] あっそっか C#はscalaとかjsと違って名前で判別してるんだった
868 名前:デフォルトの名無しさん (ブーイモ MMe5-JvIx) mailto:sage [2016/12/19(月) 19:16:31.85 ID:U/zOmskaM.net] デリゲート型宣言は、イベントをオブジェクト指向に持ち込むためだけにデリゲートが存在していた時代の名残だね 今作り直したら確実に無くなるものの筆頭
869 名前:デフォルトの名無しさん (ワキゲー MMe6-qmcu) mailto:sage [2016/12/19(月) 19:24:00.11 ID:s6nMQ4X7M.net] 多値がまだない今だとref/outが
870 名前:デフォルトの名無しさん (アウアウオー Sa36-yl9W) mailto:sage [2016/12/19(月) 19:34:56.44 ID:3c7S3m0Fa.net] >>855 そんなわけないでしょw 勘違いはなはだしいな
871 名前:デフォルトの名無しさん (ブーイモ MMe5-JvIx) mailto:sage [2016/12/19(月) 20:16:21.66 ID:U/zOmskaM.net] >>857 昔はデリゲートなんかほんとにイベントの裏方のカスみたいな存在だったよ もはや死語となったマルチキャストデリゲートも今じゃありえない設計判断
872 名前:デフォルトの名無しさん (ブーイモ MM8d-Qnvt) mailto:sage [2016/12/19(月) 20:27:48.59 ID:Ph61c/PCM.net] そうなのか?Taskへの書き換えが楽だからマルチキャスト多用してるわ
873 名前:デフォルトの名無しさん (ワッチョイ 9d23-8I6M) mailto:sage [2016/12/19(月) 20:38:22.46 ID:OLcwTH7T0.net] prismのEventAggregatorでは、マルチキャストどころか多対多のイベントがサポートされている これとprism..Unitiy使い始めると設計が根本から変わわるよね
874 名前:デフォルトの名無しさん (ワッチョイ 35dc-JvIx) mailto:sage [2016/12/19(月) 20:43:17.00 ID:t+mkU7Kd0.net] TaskならContinueWithやWhenAll使いなよ マルチキャストだと戻り値取れないだろ? 後でTaskに乗り換えようとしてもコードが副作用だらけになってて排他処理が必要になるはずだから 置き換えはそう簡単にはいかないだろう
875 名前:デフォルトの名無しさん (ワンミングク MM40-Qnvt) mailto:sage [2016/12/19(月) 20:46:00.65 ID:cSqZiFK0M.net] いや呼び出し部はちゃんど自分でバラして戻り値取ってるよ
876 名前:デフォルトの名無しさん (ワッチョイ 35dc-JvIx) mailto:sage [2016/12/19(月) 20:50:55.64 ID:t+mkU7Kd0.net] >>862 それマルチキャスト使う意味ある? List<Func<>>でいいじゃん MulticastDelegateをバラすと型情報も無くなるしパフォーマンスも悪い 百害あって一理なし
877 名前:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh) [2016/12/19(月) 22:35:52.95 ID:SUXs8zgR0.net] スレチかもしれませがすみません C#の勉強の延長でASPでwebアプリ作ってみようかと思ってるんですがASP.NETでのwebアプリの開発って主流の一つに入るんでしょうか
878 名前:デフォルトの名無しさん (ワッチョイ 35dc-6+SE) mailto:sage [2016/12/19(月) 22:41:34.98 ID:t+mkU7Kd0.net] >>864 今から始めるならASP.NET MVCにしとけ 無印の方のASP.NET(WebForms)はドカタ技術
879 名前:デフォルトの名無しさん (ワッチョイ 413c-bVUl) mailto:sage [2016/12/19(月) 23:07:17.43 ID:MBhcE2/40.net] >>864 Webアプリで何がしたいの?
880 名前:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh) [2016/12/19(月) 23:08:48.47 ID:SUXs8zgR0.net] >>865 ありがとうございます ASP.NETの知識無しでMVCのほうから入っても問題ないのですか?
881 名前:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh) [2016/12/19(月) 23:13:07.51 ID:SUXs8zgR0.net] >>866 特に決めてはいないですが、在庫管理やらの業務系が出来ればと考えてます
882 名前:デフォルトの名無しさん (ワッチョイ 413c-bVUl) mailto:sage [2016/12/19(月) 23:20:50.16 ID:MBhcE2/40.net] >>868 それなら.NET CoreじゃなくてまだFullの.NET Frameworkでいいね
883 名前:デフォルトの名無しさん (ワッチョイ 35dc-6+SE) mailto:sage [2016/12/19(月) 23:53:29.04 ID:t+mkU7Kd0.net] >>867 別物だから問題ない .NET開発としてではなく一般的なWeb開発の技術として主流かどうかを気にしてるなら断然MVCの方がいい いわゆるWebMVCといってWeb開発においては非常に一般的なアーキテクチャを採用してるからな 無印の方はWinFormsのようなものを無理やりWeb上に再現した変態技術だが、 お前らの独自技術はもういいからWebらしいフレームワークが欲しいというニーズに応えて「普通な」MVCができた
884 名前:デフォルトの名無しさん (ワッチョイ 413c-bVUl) mailto:sage [2016/12/19(月) 23:54:58.14 ID:MBhcE2/40.net] >>870 今どき無印とは言わねーよ
885 名前:デフォルトの名無しさん (ワッチョイ bf49-TtuQ) mailto:sage [2016/12/19(月) 23:57:07.79 ID:yUAE2IHm0.net] >>867 問題ない。 >>869 いきなりそんなこと言っても何のことだか分からんと思うぞ。 そもそもCoreのこと聞いてないし。
886 名前:デフォルトの名無しさん (ワッチョイ 413c-bVUl) mailto:sage [2016/12/20(火) 00:19:37.86 ID:woy83GfY0.net] >>872 自分で調べるだろ わからなけりゃまた聞いてくるだろうし 今から始めるやつはそもそもWeb formsなんか対象にならないだろうから、Coreと比べるのは妥当
887 名前:デフォルトの名無しさん (ワッチョイ 3a13-WTZK) mailto:sage [2016/12/20(火) 01:09:58.52 ID:bQKX6Z8E0.net] 屁理屈言うなよ
888 名前:デフォルトの名無しさん (スプッッ Sdc8-bVUl) mailto:sage [2016/12/20(火) 02:18:50.01 ID:usQ/Ng63d.net] >>874 至極まともな考えだと思うが
889 名前:デフォルトの名無しさん (ワッチョイ 35dc-6+SE) mailto:sage [2016/12/20(火) 07:30:35.17 ID:wmh5vlKz0.net] 今はASP.NET自体も無印とCoreに分裂してるから紛らわしい このジャップ国でASP.NETに入門しようとしたら平気でWebFormsの情報ばかり出てくるから とりあえずはそこさえ間違えなきゃいいと思うけどね いきなりCoreは日本語の情報少なくて厳しいと思う
890 名前:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh) [2016/12/20(火) 07:55:39.72 ID:1rO91uPl0.net] >>864 です みなさんありがとうございます 大変参考になりました。聞いてよかったです 色々出して頂いたものは今から調べてみたいと思います
891 名前:デフォルトの名無しさん (ブーイモ MM8d-3Pgg) mailto:sage [2016/12/20(火) 19:05:30.30 ID:ZJa7dsMxM.net] web formsはあれはあれでよく出来てるよ 経験の浅い若手を使って業務用システムをサッと作りたいときとかね もちろん保守は他社がやると見込める時だけだが
892 名前:デフォルトの名無しさん (ワッチョイ 6751-g1cW) mailto:sage [2016/12/22(木) 23:43:30.19 ID:GClofaGB0.net] C#を三か月前から勉強し始めました。 家でも勉強したくてパソコンにVS入れたいのですが、2015をインストールしたら, Blend2015というのがインストールされました。 無料版ではComminityとExpressがあって、Comminityのほうがおすすめと聞いたのでそっちを入れたかったのですが・・・ Blendとはいったいどういう位置づけになるのですか? 会社ではVisualStudio2013Professionalを使っています。
893 名前:デフォルトの名無しさん (ワッチョイ b749-AD9A) mailto:sage [2016/12/22(木) 23:52:13.67 ID:x9LZEgeN0.net] >>879 VisualStudioに付いてくるおまけ。 WPFでGUIをデザインするためのツール。 Comminityを入れたんなら、Blendとは別にComminityの方も入ってるだろ。
894 名前:デフォルトの名無しさん (ワッチョイ b749-AD9A) mailto:sage [2016/12/22(木) 23:53:53.81 ID:x9LZEgeN0.net] あれ、community、だな。
895 名前:デフォルトの名無しさん (ワッチョイ 6751-g1cW) mailto:sage [2016/12/23(金) 00:07:02.38 ID:eKejh9BS0.net] >>880 communityをインストールしようとしたらなぜかBlendになってました・・・。 2015もcommunityありますよね? ありがとうございます。インストr−ルやりなおしてみます
896 名前:デフォルトの名無しさん (スフッ Sddf-Khx9) mailto:sage [2016/12/23(金) 00:13:03.88 ID:nw5SwlgYd.net] Visual Studio入れるとBlendが付いてくる アプリケーションの一覧にVisual Studioのフォルダが出来てないか?
897 名前:デフォルトの名無しさん (ワッチョイ 0379-d0Xh) mailto:sage [2016/12/23(金) 00:15:51.67 ID:P0PUtLY+0.net] Blend版が付いてくるのを知らなくて、普通のVS起動していたつもりがBlend起動してて、設定項目が見つからず6時間くらい無駄にした思い出
898 名前:デフォルトの名無しさん (ワッチョイ b749-AD9A) mailto:sage [2016/12/23(金) 00:19:34.19 ID:et7LM/Li0.net] >>882 Blendだけ入るって無いと思うけど。両方入っているはず。 落ち着いてメニューをよく見たら。
899 名前:デフォルトの名無しさん (ワッチョイ 73dc-PUH/) mailto:sage [2016/12/23(金) 00:19:39.42 ID:Boa5/2YS0.net] 仕事で使うための勉強ならBlendなんか用無しだろ ASP.NETとWinFormsだけやっとけばいい
900 名前:デフォルトの名無しさん (ワッチョイ e75e-g1cW) mailto:sage [2016/12/23(金) 00:24:53.07 ID:ydrXOK0X0.net] C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe >>882 必ず入っているはず。 むしろBlend版とか知らなくて、そのレス見てからサインインしたw
901 名前:デフォルトの名無しさん (アウアウカー Sa3f-fflT) [2016/12/23(金) 15:03:31.78 ID:8qbb8kwia.net] Coreの話
902 名前:が出てたけど、ラズパイにwebアプリをデプロイできるの? [] [ここ壊れてます]
903 名前:デフォルトの名無しさん (ワッチョイ 273c-GTRU) mailto:sage [2016/12/23(金) 15:17:21.07 ID:ThcKA0lt0.net] >>888 ロードマップでは、ARM対応はQ4 2016 / Q1 2017ってなってた。Samsungが確か頑張ってるはず。
904 名前:デフォルトの名無しさん (アウアウカー Sa3f-fflT) [2016/12/23(金) 17:23:34.06 ID:9xVG4ZuTa.net] >>889 そうなのね!ありがとう
905 名前:デフォルトの名無しさん (ワッチョイ 6751-g1cW) mailto:sage [2016/12/23(金) 18:46:44.52 ID:eKejh9BS0.net] >>883 ,884,885,886,887 返信ありがとうございます インストール一覧を調べてみたところcommunityも入っていました もっと確認すべきでした・・・ どうもありごうございました。
906 名前:デフォルトの名無しさん (ワッチョイ d7ce-agOw) mailto:sage [2016/12/23(金) 21:53:23.45 ID:Lyl7nXDN0.net] 余計な物も入れてくるから嫌いなんだよなあインストーラー IDE必要ないからexeビルド環境だけ入るようなオプションない?
907 名前:デフォルトの名無しさん (ワッチョイ efa1-YuIQ) mailto:sage [2016/12/23(金) 22:11:13.66 ID:wnG5DWev0.net] csc.exeなら.NET Frameworkに含まれてんじゃないっけ
908 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 22:39:52.11 ID:6njdFiip0.net] csc.exeはデフォで付いてくる IDE入れないとコンパイラ入れられない言語とかない
909 名前:デフォルトの名無しさん (ワッチョイ 0f7b-SerI) mailto:sage [2016/12/23(金) 22:43:28.69 ID:jiSEHcxr0.net] YouTube にある、T Umezawa の「メモ帳でC#超入門 #16」 ニコ生で放送しているのか? よく知らないけど、昨日、#16 がアップされた
910 名前:デフォルトの名無しさん (ワッチョイ e30d-agOw) mailto:sage [2016/12/23(金) 22:46:42.71 ID:8ECS/mff0.net] 自作自演の宣伝きめぇ
911 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 22:55:02.72 ID:6njdFiip0.net] メモ帳とかメリットなさすぎ VSが重くて嫌ならVSCodeおすすめ
912 名前:デフォルトの名無しさん (ブーイモ MM8f-ncxm) mailto:sage [2016/12/23(金) 23:04:29.79 ID:gDLxrLVpM.net] VSは機能の割には無茶苦茶軽いと思うけどな しかもゴッテゴテのWPFアプリなのに
913 名前:デフォルトの名無しさん (ブーイモ MM3f-lsSM) mailto:sage [2016/12/23(金) 23:05:50.84 ID:MNqe+TxRM.net] WPFが重いって無能が作り上げた先入観でしかないんだよね
914 名前:デフォルトの名無しさん (ワッチョイ f3d6-i5Qz) mailto:sage [2016/12/23(金) 23:09:15.19 ID:ejzKG2eK0.net] 超低スペックなパソコンを後生大事に使い続ける貧乏人が文句言ってるだけ
915 名前:デフォルトの名無しさん (ワッチョイ abc0-g1cW) mailto:sage [2016/12/23(金) 23:28:01.18 ID:c2xEt3tE0.net] 低スペPC使っているけど、VSは2010以前とそれ以降で重さが段違いだな
916 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 23:35:32.33 ID:6njdFiip0.net] >>898 Eclipseに比べたらかなり軽いよね JavaとかScalaもVSに対応してほしい
917 名前:デフォルトの名無しさん (ワッチョイ ab3c-g1cW) mailto:sage [2016/12/23(金) 23:36:01.09 ID:Fo6fBKop0.net] 2017は必要なものだけで立ち上げられるんだろ?
918 名前:デフォルトの名無しさん (ブーイモ MM3f-lsSM) mailto:sage [2016/12/23(金) 23:38:37.93 ID:MNqe+TxRM.net] 次はインストールも爆速になるらしいな 最近のMicrosoftさん頑張りすぎ ORACLEも少しはMicrosoftを見習ってほしい
919 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 23:42:33.40 ID:6njdFiip0.net] インストールは寝る前にするからあまり関係ないけどね
920 名前:デフォルトの名無しさん (ブーイモ MM8f-ncxm) mailto:sage [2016/12/23(金) 23:43:37.75 ID:gDLxrLVpM.net] >>899 VSの成功が証明してるようにスケーラビリティが高いのは確かだけど、 実際小さなアプリに使うには重いよ
921 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 23:45:24.81 ID:6njdFiip0.net] WPFはバインドがなー Angularとかの自動更新になれるとね
922 名前:デフォルトの名無しさん (ワッチョイ 273c-GTRU) mailto:sage [2016/12/24(土) 00:09:01.03 ID:LpJ8AJuF0.net] >>892 Cake使えば?
923 名前:デフォルトの名無しさん (ワッチョイ ef9f-h9rX) mailto:sage [2016/12/24(土) 01:10:24.95 ID:YCrD1JsG0.net] >>894 なんで自信ありそうに言いきってるの? IDE入れないといけない言語はあるよ
924 名前:デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z) mailto:sage [2016/12/24(土) 09:08:23.75 ID:dPbQS77J0.net] >>909 具体的に何よ?
925 名前:デフォルトの名無しさん (ワッチョイ 73dc-ncxm) mailto:sage [2016/12/24(土) 09:26:43.36 ID:3LTJc3r/0.net] Smalltalkとか昔のVBやDelphiとか
926 名前:デフォルトの名無しさん (ワッチョイ 8f42-3ZJ0) mailto:sage [2016/12/24(土) 10:07:04.78 ID:Uz+bz49d0.net] コンパイラ?
927 名前:デフォルトの名無しさん (アウアウカー Sa3f-a5Nx) mailto:sage [2016/12/24(土) 10:09:16.39 ID:VcKJc7+aa.net] powerbuilderもだった
928 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/24(土) 11:28:12.62 ID:prTI7XBj0.net] >>912 昔のVBもDelphiもコンパイラなんだけどw
929 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 13:38:48.90 ID:HbE0faQGr.net] ウインフォームアプリ作ったんだけどインストーラーとかアップデータとかも自分で作るの?
930 名前:デフォルトの名無しさん (ワッチョイ 273c-GTRU) mailto:sage [2016/12/24(土) 13:40:12.31 ID:LpJ8AJuF0.net] >>915 ClickOnce
931 名前:デフォルトの名無しさん (ワッチョイ ef9f-h9rX) mailto:sage [2016/12/24(土) 13:41:59.25 ID:yr6q9nVG0.net] VBAとかSmall BasicとかScratchとかもそうじゃね
932 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 13:56:05.59 ID:HbE0faQGr.net] >>916 それってオワコンなんじゃないの?
933 名前:デフォルトの名無しさん (ブーイモ MM5f-ncxm) mailto:sage [2016/12/24(土) 14:01:46.96 ID:1tLIoM8kM.net] >>918 それを言ったらWinFormsもオワコンだよ 今生きてるのはASP.NETとUWPだけ
934 名前:デフォルトの名無しさん (ワッチョイ abc0-g1cW) mailto:sage [2016/12/24(土) 14:03:16.98 ID:a9e/NRk30.net] オワコンだけど代替がないってのがね
935 名前:デフォルトの名無しさん (ワッチョイ 379d-i5Qz) mailto:sage [2016/12/24(土) 14:23:05.13 ID:2536g+Dg0.net] MSもWinFormsに回帰、注力すべき
936 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/24(土) 14:35:55.93 ID:prTI7XBj0.net] 拡張機能からNuGetでVisualStudioInstaller入れられるの知らないのカー
937 名前:デフォルトの名無しさん (ワッチョイ e33c-IeCC) [2016/12/24(土) 15:17:55.11 ID:hhClfuXq0.net] 並列処理を行いたいんですがどうすればいいでしょうか? しかも複数の並列処理で同一のコントロール(TextBox1.text) に同時に書き込めるようにしたいです(書き込む順番はきにしません) あとそれぞれの並列処理を無限ループで繰り返し処理を行いたいと 思っております。 どなたか教えてください。どうぞよろしくお願いします
938 名前:デフォルトの名無しさん (オッペケ Sref-AvAH) mailto:sage [2016/12/24(土) 15:19:37.36 ID:JBAVj1Vvr.net] >>899 無能と言うか変化について行けない頭固い人だね。 所謂老害かな。
939 名前:デフォルトの名無しさん (ワッチョイ 273c-GTRU) mailto:sage [2016/12/24(土) 15:20:33.37 ID:LpJ8AJuF0.net] >>918 その要件を簡単に実現できる方法が他にない。
940 名前:デフォルトの名無しさん (オッペケ Sref-AvAH) mailto:sage [2016/12/24(土) 15:21:12.81 ID:JBAVj1Vvr.net] >>923 async, await 一択。
941 名前:デフォルトの名無しさん (ワッチョイ 8f13-i5Qz) mailto:sage [2016/12/24(土) 15:21:23.94 ID:XrRMaYjq0.net] >>909 たとえば?
942 名前:デフォルトの名無しさん (ワッチョイ d7ce-agOw) mailto:sage [2016/12/24(土) 16:08:14.24 ID:yMvVW4sX0.net] >>923 System.Windows.Forms.Control.Invoke経由で書き込むだけ
943 名前:デフォルトの名無しさん (ブーイモ MM5f-ncxm) mailto:sage [2016/12/24(土) 16:10:19.44 ID:RJkhT4CTM.net] >>923 ワーカースレッドから好き勝手にGUI触るとカオスになるから、Producer-Consumerで分離すれば? 複雑なことをやるならGUIからではなくデザイン(見た目じゃないよ)から入る作り方も覚えていったほうがいい
944 名前:デフォルトの名無しさん (ワッチョイ 8f13-0LB+) mailto:sage [2016/12/24(土) 16:17:45.91 ID:cCwHGfM40.net] >>928 これだな
945 名前:デフォルトの名無しさん (ワッチョイ 73dc-ncxm) mailto:sage [2016/12/24(土) 16:27:12.97 ID:3LTJc3r/0.net] >>924 悪いけど、今時WPF推しとかそれこそ老害だと思うぞ 立ち止まって周りを見てみろ
946 名前:デフォルトの名無しさん (ワッチョイ b77b-g1cW) mailto:sage [2016/12/24(土) 16:28:09.91 ID:YD9ZIllA0.net] 話の流れが読めない人?
947 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 17:08:45.84 ID:hhClfuXq0.net] みなさんありがとうございます。 自分なりに調べて以下の通りつくってみました 「3秒まってコンソールに文字列を出力する」という処理を並列で動作させたかったのですが どうもそれぞれの処理が単体で実行されるだけで並列処理になっていないようです。 以下の処理を並列で実行できるようにするにはどうすればよろしいでしょうか? private async void button1_Click(object sender, EventArgs e) { while (true) { await Task.Run(() => Thread.Sleep(3000)); Console.WriteLine("タスク完了"); } }
948 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 17:10:58.57 ID:HbE0faQGr.net] >>919 >>925 >>920 そっかあ 面倒だけど自作するか… もうおっさんだからWinForm以外習得できん
949 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 17:12:35.93 ID:HbE0faQGr.net] >>922 あれ…記憶にないけどインストールしてあったw まあアップデータは自作になるか…
950 名前:デフォルトの名無しさん (ブーイモ MM3f-TACi) mailto:sage [2016/12/24(土) 17:21:30.45 ID:Jrqe8RRjM.net] >>933 その例は 「3秒まってコンソールに文字列を出力する」 ってタスクを無限個作りたいのん? 最初は2個にしておけば?
951 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 17:33:48.36 ID:hhClfuXq0.net] >>936 はいそうです 2個でも問題ありません。 簡単なサンプルとか頂ければ大変助かります 大変恐縮ですがどうぞよろしくお願い致します
952 名前:デフォルトの名無しさん (オッペケ Sref-AvAH) mailto:sage [2016/12/24(土) 17:39:03.48 ID:JBAVj1Vvr.net] >>933 > 以下の処理 これが意味不明だけど。 十分並列にはなってる。
953 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 17:52:32.66 ID:hhClfuXq0.net] >>938 そうなんですね。ご指摘ありがとうございます。 ただ私の想定としては、「3秒待って出力」という処理を 複数同時に開始したいと思っておりました ですがコンソールに出力されるタイミングは3秒おきに1処理分しか 出力されず、非同期処理と変わらない処理となっているような気がします 上で示したサンプルがわかりづらくて申し訳ありませんが タスクは2個でも3個でも同時並列で処理できれば問題ありません 大変恐縮ですがご教示頂ければと思います
954 名前:デフォルトの名無しさん (ワッチョイ 3b3a-a3YU) mailto:sage [2016/12/24(土) 18:00:04.01 ID:kAw8XX2k0.net] >>937 void TaskTest() { Task.Run(async () => { await Task.Delay(3000); Console.WriteLine(DateTime.Now); }); Task.Run(async () => { await Task.Delay(3000); Console.WriteLine(DateTime.Now); }); }
955 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 18:29:36.15 ID:hhClfuXq0.net] >>940 ありがとうございます! ちなみにテキストボックスなどに内容を出力することって出来ますでしょうか? これらの処理をりようして TextBox1.Textに内容を出力する処理をそれぞれのタスクに追加すると エラーになってしまうようです。 お手数おかけしますがよろしくおねがいします。
956 名前:デフォルトの名無しさん (ワッチョイ 8f13-0LB+) mailto:sage [2016/12/24(土) 18:40:47.89 ID:cCwHGfM40.net] >>941 >>928
957 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 18:41:21.02 ID:hhClfuXq0.net] これだとやっぱり3秒毎に1処理実行されるだけなんですね・・・ async Task<string> TaskTest() { await Task.Delay(3000); return "a"; } private async void button1_Click(object sender, EventArgs e) { while (true) { TextBox1.Text += await TaskTest(); Application.DoEvents(); } }
958 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 18:51:54.77 ID:hhClfuXq0.net] >>942 ありがとうございます。 ただやっぱり並列にはなりませんでした・・・ なにがまちがってるんでしょうか・・・? while (true) { await Task.Factory.StartNew(() => { Invoke((MethodInvoker)(() => { Thread.Sleep(3000); TextBox1.Text += "a"; })); }); }
959 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/24(土) 19:04:14.66 ID:iV5eYun00.net] while(true)で無限にTaskを作るとOutOfMemoryExceptionになるから Parallel使って10個ずつくらいに制限して、 TextBoxへの書き込みにはProgressを使うとこんな感じ private void button1_Click_1(object sender, EventArgs e) { IProgress<string> progress = new Progress<string>(text => { TextBox1.Text += text; }); Task.Run(() => { while (true) { Parallel.For(0, 10, i => { System.Threading.Thread.Sleep(3000); progress.Report("a"); }); } }); }
960 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 19:13:46.70 ID:hhClfuXq0.net] ありがとうございました!大変助かりました! お手数おかけして申し訳ありませんでした
961 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 20:17:57.50 ID:hhClfuXq0.net] >>945 おかげさまで仕事がはかどりました 改めてありがとうございました。 ただ、ソースをよく読んでみると Parallel.Forというのがあるので Task使わなくても問題なさそうですね (C#歴は1ヶ月程度なので違ってるかもしれませんが)
962 名前:デフォルトの名無しさん (ブーイモ MM3f-TACi) mailto:sage [2016/12/24(土) 20:23:51.87 ID:Jrqe8RRjM.net] >>945 Progressなんてクラスが居たのね。こいつは捗りそう。
963 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/24(土) 20:25:53.45 ID:iV5eYun00.net] >>947 Parallelは完了まで自スレッドをロックしてしまう (つまり、並列ではあるけど非同期ではない)ので UIスレッドをフリーズさせないためにはTaskとの併用が必要
964 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 20:51:06.97 ID:hhClfuXq0.net] なるほど。ありがとうございました!
965 名前:デフォルトの名無しさん (アウアウカー Sa3f-qibb) [2016/12/24(土) 21:56:05.36 ID:AwL0H4eka.net] おまえら割とマジですげぇわ
966 名前:デフォルトの名無しさん (ワッチョイ ab3c-g1cW) mailto:sage [2016/12/24(土) 22:01:11.57 ID:LTc/wMbf0.net] 俺は初心者だからかもしれんが ここに世界中の天才が集まってるのかとと思うわ
967 名前:デフォルトの名無しさん (ワッチョイ bfcb-oYiN) mailto:sage [2016/12/25(日) 19:11:38.15 ID:liHUAEex0.net] かわいい奴
968 名前:デフォルトの名無しさん (ワッチョイ e33c-IeCC) [2016/12/26(月) 00:25:16.13 ID:0WzKTwBd0.net] 時刻だけ比較したいんですがそんなことってできます? 例えば現在時刻が13:30以降の時のみtrueを返すような時ってどうすればいいですか?
969 名前:デフォルトの名無しさん (ワッチョイ 8f13-7bim) mailto:sage [2016/12/26(月) 00:35:44.64 ID:TE+B1lbE0.net] >>954 これでどう? var now = DateTime.Now; var time = new DateTime(now.Year, now.Month, now.Day, 13, 30, 0); return time <= now;
970 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/26(月) 00:46:35.20 ID:+7V9eNZX0.net] こんなのも TimeSpan referenceTime = new TimeSpan(13, 30, 0); return DateTime.Now.TimeOfDay >= referenceTime;
971 名前:デフォルトの名無しさん (ワッチョイ 3bc9-DLF2) mailto:sage [2016/12/26(月) 00:54:59.31 ID:AQNPYjTP0.net] 単に ((DateTime.Now.Hour == 13 && DateTime.Now.Minute >= 30) || DateTime.Now.Hour > 13) じゃいかんのか
972 名前:デフォルトの名無しさん (ワッチョイ e33c-IeCC) [2016/12/26(月) 01:08:14.89 ID:0WzKTwBd0.net] ありがとうございました!
973 名前:デフォルトの名無しさん (ワッチョイ 379d-i5Qz) mailto:sage [2016/12/26(月) 02:19:47.23 ID:CIVIxVtu0.net] 今回のケースに限ったことじゃないんだけど、 1回のif文でNowを複数回参照して、Nowが全部同じ値だという保証はあるのかな?
974 名前:デフォルトの名無しさん (ワッチョイ 8f13-0LB+) mailto:sage [2016/12/26(月) 02:47:24.74 ID:TE+B1lbE0.net] >>959 ないよ
975 名前:デフォルトの名無しさん (ブーイモ MM5f-TACi) mailto:sage [2016/12/26(月) 12:35:23.91 ID:cti1899cM.net] 13:59:59から14:00:00の変わり目だけに起こるバグとか、怖いっす
976 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/26(月) 13:03:53.01 ID:Bu04EBir0.net] どうしても気になるなら、先に分を比較すればバグることはない
977 名前:デフォルトの名無しさん (ワッチョイ 8f42-lvdU) mailto:sage [2016/12/26(月) 14:07:19.56 ID:UJaB3lV20.net] そんな対処せずに1回の比較で終わるようにしときゃいいやん
978 名前:デフォルトの名無しさん (スフッ Sddf-0LB+) mailto:sage [2016/12/26(月) 14:13:47.94 ID:qgo+g5wcd.net] だから>>955 みたいに先にNowを保存すればいいだろ ウダウダ悩んでるおまえ等が信じられんわw
979 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 14:18:36.34 ID:1bhMGPyja.net] どうでもいいけど、そもそも「現在時刻が13:30以降の時のみtrue」って要件はかなりあいまいだね。
980 名前:デフォルトの名無しさん (JP 0Hef-g1cW) mailto:sage [2016/12/26(月) 14:24:40.84 ID:E1wmt4rJH.net] 23:59:59までtrueでいいんかとか PCの内蔵タイマーの時刻でいいんかとか タイムゾーンはどうなんかとか
981 名前:デフォルトの名無しさん (ワッチョイ 837b-DNID) mailto:sage [2016/12/26(月) 14:38:43.61 ID:G2ewta8d0.net] 先生スレッドのカルチャー変えても比較出来るんですか
982 名前:デフォルトの名無しさん (ワッチョイ 63a4-zpPG) [2016/12/26(月) 17:15:25.72 ID:faSaUmiF0.net] TextBox1とTexBox2(非表示)があります。 TextBox1にフォーカスが移動したら、TextBox2を表示してそちらにフォーカスを移動します。 TextBox2から別のところにフォーカスが移動したらTextBox2を非表示にしたいです。 TextBox1のEnter時に TextBox2.Visible = true; TextBox2.Select(); と書き、TextBox2のLeave時に TextBox2.Visible = false; と書きました。実行してみるとTextBox2が点滅して消えてしまいます。 調べてみるとLeave時の処理が3回実行されているようで、さらに https://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.gotfocus(v=vs.110).aspx Doing so can cause your application or the operating system to stop responding. フォーカスの設定をするなと書いてあるようです。 最悪、透明なボタンでも設置して無理矢理実現するしかないのかなと考えていますが、 フォーカス取得時に別のテキストボックスに移動することはできませんか?
983 名前:デフォルトの名無しさん (ワッチョイ e30d-agOw) mailto:sage [2016/12/26(月) 17:20:02.90 ID:uTypYcaG0.net] WPFは駄目って言ってる奴いるけど、じゃあ何で作るんだ? まさか制限盛りだくさんのUWPとか言わないよな?
984 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 17:31:38.03 ID:1bhMGPyja.net] >>968 なぜそんなアホなことをしたいの? たぶん実現したい何らかの使用に対して君が思いついた方法がそれなんだどうけど どう考えてもその方法は間違ってるから最終的にどういう仕様を実現したいかを 書いた方がいいと思うよ
985 名前:デフォルトの名無しさん (ワッチョイ 0fba-i5Qz) mailto:sage [2016/12/26(月) 17:31:53.92 ID:ejLfwHLb0.net] そういう連中、WPFを知ってて言ってるわけじゃないもんな。 追及してやると主張が C#駄目 Windows駄目 デスクトップアプリ駄目 のどれかに変わる。
986 名前:デフォルトの名無しさん (ワッチョイ abc0-g1cW) mailto:sage [2016/12/26(月) 17:36:34.58 ID:BQIvjtl90.net] >>971 今その条件で作れと言われたら迷わずWPF選びたいけど、俺社環だとForm選ばざるを得ないのが辛い
987 名前:デフォルトの名無しさん (ワッチョイ c33c-v5hB) mailto:sage [2016/12/26(月) 17:44:50.42 ID:bXBxzWjM0.net] >俺社環だと あるある
988 名前:デフォルトの名無しさん (ワッチョイ 63a4-zpPG) [2016/12/26(月) 17:46:33.22 ID:faSaUmiF0.net] >>970 郵便番号を入力する部分のテキストボックスを7つに分けたのですが、 入力時には1つにしたほうが入力しやすいだろうと思いました。 LabelにするとTabでフォーカスを受け取れないので連続で入力しにくいかなと思ったり、 そもそも郵便番号をわざわざ分けているのは、入力フォームを画像にして裏に貼り、 入力イメージが掴めるようにしようかなと思った次第ですが、別のテキストボックスに 入力させてそれをプレビューしちゃだめというわけでもないので出来ないのであれば 入力とプレビューをわけようと思いますが、テキストボックスがフォーカスを受け取ったら バトンパスのように他のテキストボックスに移動するというのは出来ないのかなと思って質問しました。
989 名前:デフォルトの名無しさん (ワッチョイ c33c-v5hB) mailto:sage [2016/12/26(月) 17:56:43.50 ID:bXBxzWjM0.net] >郵便番号を入力する部分のテキストボックスを7つに分けたのですが この時点でおかしいだろ(困惑)
990 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/26(月) 18:15:12.11 ID:qJ+YWzR60.net] 入力しようとしてテキストボックスを選んだら勝手に次のテキストボックスに飛ぶって 嫌がらせにしかならない気が…(どうやって入力してもらうの…) 郵便番号の枠のイメージで1文字ずつの入力にしたいというのなら 1文字しか入力できないテキストボックスを7つ配置して、 入力されたら次に飛ぶ、文字が消されたら前に飛ぶ、みたいに作るのがいいのでは
991 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 18:28:31.17 ID:1bhMGPyja.net] >>974 ハガキや封書の〒記入欄の見た目に似せたいってことかもしれんけど、 そんなくだらない仕様を諦めるわけにいかないの? ありがた迷惑なだけでメリットないと思うけど 郵便番号を入力するUIなんて割と多いけどそんなヘンテコな仕様見たことないよw
992 名前:デフォルトの名無しさん (ワッチョイ d7ce-agOw) mailto:sage [2016/12/26(月) 19:05:18.45 ID:/iMD3zus0.net] 話を一般化すると、プロダクトID入力画面みたいに 指定桁だけ入力し終わったら次のテキストボックスに移動したいのかな TextChangedとSelectNextControlかな
993 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/26(月) 19:38:22.72 ID:Bu04EBir0.net] >>969 Cのライブラリ使ったりDataGridが何とかなりそうなら、UWPも悪くない選択肢だよ コントロールも標準で沢山ついてくるしtoolkitも充実している
994 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/26(月) 19:43:38.71 ID:Bu04EBir0.net] 郵便番号程度なら、パネルから派生させたフルスクラッチでコントロール作っても大したことない気がするな これからも使いそうなら作っちまえよ
995 名前:デフォルトの名無しさん (ワッチョイ 5394-4hBO) mailto:sage [2016/12/26(月) 19:52:33.70 ID:5v43Qgq70.net] >TextBox1にフォーカスが移動したら、TextBox2を表示してそちらにフォーカスを移動します。 >TextBox2から別のところにフォーカスが移動したらTextBox2を非表示にしたいです。 というのは、入力しようとすると別途用意された入力フォームが開く、みたいなUIを模したいのかなぁ とりあえず >>968 はこれで実現できる private void TextBox1_Enter(object sender, EventArgs e) { new Task(() => { TextBox2.Visible = true; TextBox2.Select(); }) .Start(TaskScheduler.FromCurrentSynchronizationContext()); } フォーカスイベントの連鎖から独立した別スレッドからUIスレッドに指示を出すので >set focus from within the Enter, GotFocus, Leave, LostFocus, Validating, or Validated event handlers には当たらないと思う
996 名前:デフォルトの名無しさん (JP 0Hcf-Qa15) mailto:sage [2016/12/26(月) 20:00:08.21 ID:K98gijPEH.net] 役所が1セルに1文字しか入力しちゃいけないExcelフォーマット量産してるって 話を思い出した
997 名前:デフォルトの名無しさん (ワッチョイ 0fba-i5Qz) mailto:sage [2016/12/26(月) 20:14:39.87 ID:ejLfwHLb0.net] UWPは配布が一番のネックだな。 プログラミング需要のある程度の割合を企業内ユースが占めていると思うけど、 そういう用途じゃわざわざUWPなんて使わんよな。せいぜいWinRT。 さらに、今の時点だとまだWindows7を無視できないから結局FormsかWPFってところじゃない?
998 名前:デフォルトの名無しさん (ワッチョイ 9faf-pRKv) mailto:sage [2016/12/26(月) 21:10:56.35 ID:yrQs6qFs0.net] ストア配布なら企業内以上に一般も難しそう 欲しいソフトがあるときはWindowsはストアで探すよりも検索してベクターなり窓の社なりから探してくる人が多いし
999 名前:デフォルトの名無しさん (ワッチョイ c33c-v5hB) mailto:sage [2016/12/26(月) 21:25:19.92 ID:bXBxzWjM0.net] Winはそうよね 海外はどうか知らんが
1000 名前:デフォルトの名無しさん (ワッチョイ e30d-agOw) mailto:sage [2016/12/26(月) 22:27:21.69 ID:uTypYcaG0.net] じゃあ、>>756 や>>931 は間違ってるということでいいんですね
1001 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 23:49:51.33 ID:nUdM+QKma.net] その手の問題は最終的には自分で答えを出すしかないでしょ。 個人的には2chくんだりで「いつも誰かと戦ってる」タイプの人のいうことは真に受けない方がいいと思うけどねw それは彼がそんなくだらないことをするのか、その動機を考えれば自明だよね 俺個人としてはこの記事(すでに古い記事だけど)のタイトルがすべてだと思う https://www.infoq.com/jp/articles/Win8-LOB-Options Windows Formが終わってるのと同程度にはWPFも終わってる かといってプランCも存在しない
1002 名前:968 (ワッチョイ 736e-gQz9) [2016/12/26(月) 23:57:39.10 ID:Z8alzA0s0.net] そこまでひどいUIとは思いませんでした。 おとなしく入力とプレビューを分けるようにします。 >>981 は明日にでも試してみようと思います。
1003 名前:デフォルトの名無しさん (ワッチョイ 8f7b-YyGO) mailto:sage [2016/12/27(火) 01:33:51.84 ID:SOm/Nt9E0.net] うめ
1004 名前:デフォルトの名無しさん (ワッチョイ 5394-4hBO) mailto:sage [2016/12/27(火) 02:10:31.58 ID:HrGPkQcW0.net] 次スレ ふらっと C#,C♯,C#(初心者用) Part126 echo.2ch.net/test/read.cgi/tech/1482772061/
1005 名前:デフォルトの名無しさん (ワッチョイ dfcb-vcjl) mailto:sage [2016/12/27(火) 02:44:38.87 ID:Ue0MWe8H0.net] twitterのタイムラインのようなものを作ろうと思っているのですがどのようなコントロールを使えばいいのかがわかりません どなたか私に教えていただけないでしょうか? よろしくお願いします
1006 名前:デフォルトの名無しさん (ワッチョイ 73dc-PUH/) mailto:sage [2016/12/27(火) 07:15:38.67 ID:CsLSwhzy0.net] WebBrowser
1007 名前:デフォルトの名無しさん (ワッチョイ 4791-t+3N) mailto:sage [2016/12/27(火) 14:02:51.16 ID:DjR8onEe0.net] datagridviewでセルに何か書き込まれたときにそこが真ん中になるよう自動でスクロールしたいのですが どうすればいいですか?
1008 名前:デフォルトの名無しさん (ワッチョイ dfcb-vcjl) mailto:sage [2016/12/27(火) 14:19:39.59 ID:Ue0MWe8H0.net] >>992 ご回答ありがとうございます 私の言葉が足らなかったようですみません twitterのタイムラインをwebbrowserで表示するのではなくtwitterのAPIを使いツイートの情報を受け取りそれらをtwitterのタイムライン風に表示したいと考えております
1009 名前:デフォルトの名無しさん (ワッチョイ 2b94-4hBO) mailto:sage [2016/12/27(火) 14:40:14.00 ID:+TUrL10Q0.net] >>993 CurrentCellDirtyStateChangedかCellValueChangedイベントハンドラで int offset = dataGridView.Rows.GetRowCount(DataGridViewElementStates.Displayed) / 2; int current = dataGridView.CurrentCell.RowIndex; dataGridView.FirstDisplayedScrollingRowIndex = Math.Max(0, current - offset); スクロール量はoffsetの値に+-して調整
1010 名前:デフォルトの名無しさん (ワッチョイ 4791-t+3N) mailto:sage [2016/12/27(火) 16:50:37.42 ID:DjR8onEe0.net] >>995 なるほどオフセットと現在の位置で動かすのですか 思い通りにできましたありがとうございます
1011 名前:デフォルトの名無しさん (ワッチョイ bf4c-hHku) mailto:sage [2016/12/27(火) 17:06:23.75 ID:8I0GRdm60.net] うめ
1012 名前:デフォルトの名無しさん (ワッチョイ 8f7b-YyGO) mailto:sage [2016/12/27(火) 23:13:31.51 ID:YmRmCI2N0.net] 梅
1013 名前:デフォルトの名無しさん (ワッチョイ 4f17-YQ1g) mailto:sage [2016/12/27(火) 23:58:49.99 ID:tR2ogx270.net] う
1014 名前:デフォルトの名無しさん (ワッチョイ 379d-i5Qz) mailto:sage [2016/12/28(水) 00:23:32.44 ID:gZZUj22C0.net] 1000ならWinForms大復活、2017以降は主力になる
1015 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています