1 名前:デフォルトの名無しさん mailto:sageteoff [2015/03/18(水) 18:08:26.52 ID:irwZfv9C.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part114 peace.2ch.net/test/read.cgi/tech/1419512512/ ■関連スレ C#, C♯, C#相談室 Part86 peace.2ch.net/test/read.cgi/tech/1419608259/ ■コードを貼る場合は↓を使いましょう。 ideone.com/
862 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 07:46:08.06 ID:LhhNEn7L.net] >>832 JavaFXの現状見ればそれがよくわかる。 しょせんDB屋。アプリケーション類はゴミ。
863 名前:デフォルトの名無しさん [2015/06/23(火) 07:49:00.71 ID:U2+OnFmB.net] >>831 おめーが死ねってw 実際、c#移行したって使えねーんじゃ論外だろ。まず、現実見ろよ。
864 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 07:56:53.71 ID:LhhNEn7L.net] >>831 会社としてはおまえが氏ねって思ってるよ。 それと、お前のその行為、間違いなく査定に引っかかってるから覚悟して おけよ。 非常に身勝手な提案として認識されてるから。言語を変えるなんておまえ のような三下が提起することじゃねぇんだよ。三流プログラマー君。
865 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 07:58:12.61 ID:7ayUCnwb.net] マ板でやれ
866 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 08:06:23.29 ID:rzZlb/rV.net] 朝から元気だな
867 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 11:48:09.08 ID:9zw4MnHg.net] 会社選ぶときに主要言語を調べて入らないとこうなるんだな笑
868 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 13:23:49.18 ID:5RwnSh85.net] 社畜自慢はマ板でやれよ
869 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 15:31:00.12 ID:8ljnnXhY.net] 無職がマ板に行けるとでも?
870 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:14:19.04 ID:NJre/ebQ.net] C#が仕事でかける職場は少ないけどな。自社製品主力かつスクラップ&ビルドが主流で、社内ツール作るかwindowアプリケーション作らないとC#は選択肢にならない
871 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:20:07.95 ID:iTFSMqDv.net] ごめんね、それ以外でC# 仕事で使ってて
872 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:28:15.90 ID:26
] [ここ壊れてます]
873 名前:y4Wu4y.net mailto: >>842 今時社内でもウェブアプリが主流ですよ。 C#なんて要らんわ [] [ここ壊れてます]
874 名前:デフォルトの名無しさん [2015/06/23(火) 22:34:56.55 ID:tJjJE4PL.net] OS別 アプリ開発言語 iOS = objective-c おおー Android = JAVA いいねー Windows = VB.NET へこーーーーーーーー 斜陽のMSらしいヘボ言語だよね。 C#なら、こんな負い目感じなかっただろうに。。。
875 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:39:28.60 ID:0NuC1wwg.net] >>845 少なくともjavaよりvbの方がだいぶましw vbはコ冗長になるけど(特にラムダとか酷い)出来ることはC#とそう違わないし っていうか、10年前ならともかく今あえてC#じゃなくてVBを選択してる企業は なかなかないと思うが
876 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 01:42:38.39 ID:q52g9Sr7.net] ストラテジーパターンのメリットが分かりません
877 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 02:03:16.33 ID:x8P9P79s.net] https://github.com/TakahashiShuuhei/DesignPatternPractice/blob/master/Strategy.cpp#L42 こういうのどうよ これはC++だけど関数ポインタをdelegateで書いたりActionで書いたりする
878 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 15:02:35.40 ID:zRV+32S/.net] >>831 教育と移行にかかる工数とスケジュール表を稟議書にまとめて提出しろ ダメでも評価は上がるべ
879 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 15:59:30.08 ID:RTg8LFF8.net] 混ぜちゃえ
880 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 16:11:52.31 ID:NHniIMjV.net] 俺も混在でいいと思うけど そのうちVBしかダメなやつ以外はC#に移行するだろ
881 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 17:06:57.61 ID:vFKyrOSk.net] VB独自の機能使われるとC#のプロジェクトから参照した時に いろいろ困ったことが起こるんだったような
882 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 17:30:33.90 ID:NVaEfsnd.net] VB独自の機能…?あったっけ?.netになってから?
883 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:06:37.53 ID:no9AmW7J.net] それに関しては多分CLSCompliantAttribute付けとけば警告してくれるんだよね?
884 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:28:20.96 ID:sRqUdszq.net] >>853 引数付きプロパティとか。 名前付き引数もたぶんC#と微妙に違う。 場合によってはオーバーロードの解決法の違いも問題になるかも。 あとインターフェイス関係が結構違う。
885 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:44:50.16 ID:RTg8LFF8.net] VB.NETでインターフェースを使ってるの見たことがない
886 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 03:30:46.63 ID:pZAotZeg.net] 今はオプション引数も対応してるし 困る事といえばVB.NET側の修正やらされる時くらいかな C#に戻った時に、ついDimと書いてしまう
887 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 08:24:31.88 ID:XFqbgY05.net] VBからC#を参照すると、refまたはoutでオーバーロードしてるメソッドが困ったことになるのは知ってる
888 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:11:36.76 ID:TDcnlZ9r.net] そんなVB以下の糞を垂れ流す奴が悪い
889 名前:デフォルトの名無しさん [2015/06/25(木) 22:12:13.25 ID:RTWId8Mi.net] >そんなVB以下の糞を垂れ流す奴が悪い どういう理由でアンチパターンなのでしょうか? 後学のために教えてください。
890 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:37:06.83 ID:U7g+0mTH.net] >>857 俺もつい varって書いちまうわ
891 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 16:13:21.68 ID:U7E4+CJP.net] >>738 理由は分からんが、実際エラーになるね。
892 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 16:50:56.90 ID:Z3cTZ1J0.net] >>862 そんな演技してまで答えて欲しいのか?ゴミw
893 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 18:05:59.07 ID:l3ThfphX.net] これは酷いwww
894 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 22:21:39.88 ID:oMjJ
] [ここ壊れてます]
895 名前:ITJg.net mailto: 最初は煽ってたけど、居付かれて地縛霊になったら困るだろ…… Control[] objs; // ←Controlの配列にしておく。ButtonもTextBoxもControlを継承しているの if (mode == 1) { objs = new System.Windows.Forms.Button[len]; } else { objs = new System.Windows.Forms.TextBox[len]; } [] [ここ壊れてます]
896 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 22:24:28.29 ID:OIUfWa0r.net] スクリプト言語使いはスコープの概念を知らないか…
897 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 22:33:04.77 ID:jWa9J4oZ.net] 配列の共変性を使うのはお勧めしないな Javaの負の遺産みたいなもんだ >>865 だと結局後で型チェック&ダウンキャストをしない限りは わざわざ配列の型を作り分ける意味がないわけだし
898 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 04:21:47.51 ID:o3dT3qrp.net] ここまで丁寧に教えてもらったなら、もう大丈夫だろう
899 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 04:43:08.62 ID:6yK3ftLr.net] 元の質問者は、型のシステムが理解できてないのか、スコープが理解できてないのかわからん たぶん両方理解できてないんだろうけど
900 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 07:38:59.62 ID:iDD3CLpV.net] >>867 もともと同じ変数に入れようとしてるわけだし、それは込みじゃね? それになんかオブジェクト指向してる気がして楽しいだろ 初学者には楽しさも必要
901 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 07:39:37.05 ID:iDD3CLpV.net] あーそれともダックタイピングを無意識に要求していたのかな
902 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 17:08:22.40 ID:R5WbdKN1.net] int[] i = {1, 2} という配列があるとして、i[0]をa変数に、i[1]をb変数に入れるのをスマートに行う方法はないでしょうか? Pythonであれば a, b = i のようにできることをやりたいです。 今は int a = i[0] int b = i[1] としているのですが、もっとスマートにする方法はないかと考えています。
903 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 17:10:53.30 ID:xbG7ljXN.net] ない C#はスクリプト言語ではないので、そういうタプル的な値を扱うときは ちゃんとクラスを定義して使うのが普通
904 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 17:14:17.28 ID:xbG7ljXN.net] ちなみにクラスを定義する簡単な方法としては、 var i = new { a = 1, b = 2 }; (使うときは Console.WriteLine(i.a)のようにする) のように書ける匿名型という機能がある System.Tupleなんてのもあるが言語でサポートされてる訳じゃないのでお勧めしない
905 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 17:34:09.37 ID:R5WbdKN1.net] ありがとうございます。 そのiは実際にはReadLineで読み込んだ文字列をSplitしてintに変換したような配列になります。 なので、その配列に代入されているとインデクサでアクセスする必要が有るため、わかりやすい変数名をスマートに付けれる方法がないかと思っていました。 C#を勉強し始めたところでまだまだルールがわからず、スクリプト言語の考えを前提に持ってしまっているのかもしれません。 ありがとうございました。
906 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 21:23:40.36 ID:n+6r1LD8.net] >var i = new { a = 1, b = 2 }; 初心者ですがこれはじめて知った 無名関数は知ってたけど、これは便利だな
907 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 03:54:38.43 ID:w++X9/Nf.net] 2次元配列をforeachで回すのはどうすればよいのでしょう 以下はエラーが出てしまいます int[,] cards = new int[100,2]; foreach (int[,] card in cards)
908 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 04:10:59.08 ID:x/T4p/ZN.net] foreachを多次元配列に対して使うとSelectMany()メソッドみたいに平坦化してしまうから 気になるなら普通にfor文を使った方がいい int[,] cards = new int[100, 2]; foreach (var card2 in cards) { Console.Write(card2 + " "); } Console.WriteLine();
909 名前:デフォルトの名無しさん [2015/06/29(月) 23:24:49.10 ID:bidzkCNd.net] こんばんは。 教えてください VSでwebサイトを作っています。 SQLにある温度計データを引っ張ってきてグラフ
910 名前:化して 推移を見ています。 Chartとデータソースを使用していて問題なかったのですが、 過去分のデータが見たいなと思ったとき今のやり方では見れません。 (データソースの構成で最新100件でグラフにしています。) そこで、ドロップダウンリストから年月を指定して その中で100件のデータを引っ張りグラフ化したいです。 分からない点としては、正直、全部なのですが SQLサーバーにdate(例:2015/06/29/23:00:00)temp(例:20.2) とある場合はドロップダウンリストで年月を選択する方法がわかりません。 SQLサーバーに上のような形式で入っている時点で 年月のみ抽出というのは不可能なのでしょうか? SQL言語の質問かもしれませんが きっとクラスを作成するだろうと思い こちらに記入しました。 どなたか知恵をお貸しください。 よろしくお願いします。 [] [ここ壊れてます]
911 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 23:49:23.72 ID:lRRDyv15.net] 株価のチャートを自作したいす
912 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 00:05:34.96 ID:LiiqQaQT.net] >>879 SELECT date, temp FROM お前の表 WHERE ? <= date AND date <= ? LIMIT 100 ?にはそれぞれ開始日時と終了日時をバインドする
913 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 02:36:45.32 ID:RyZIYf8u.net] between、、、
914 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 02:49:11.94 ID:9tUPOc+y.net] null許容型(int?とか)ってあまり?使わない方が良いって聞いたんですが、なぜですか?
915 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 03:25:56.90 ID:AoMT9Nrc.net] データベース以外でってこと?
916 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 03:58:23.92 ID:9tUPOc+y.net] すみません、あやふやなんですが何かの掲示板(多分2ch)で 結構前に「null許容型はやめろ(クソ)」的なレスが結構続いてたので、聞いてみました 逆にデータベースでは、例えばBooleanならtrueとfalse以外「値が未設定」を表現するために nullを使うと思いますが、そういう用途ではOK(問題ない)という事ですか? また、逆に問題が出る使用例があれば教えて下さい。
917 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 04:24:21.76 ID:AoMT9Nrc.net] >>885 ここ読んでさらに疑問があれば質問すれば https://code.msdn.microsoft.com/windowsdesktop/7-null-null-null-48ae7f82 むやみに使うのではなく使うことで可読性が良くなりバグも減るなら使えばって感じのこと書いてある
918 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 04:35:41.24 ID:AoMT9Nrc.net] データベースでNULLを排除したコードを書くのは非現実的だとも書いてある
919 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 04:55:25.65 ID:9tUPOc+y.net] >>886 ありがとうございます
920 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 08:39:43.88 ID:6xoEPUUH.net] >>881 convertでyymmにして拾うのとどっちが早いんでしょう C#じゃないけど
921 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 15:26:37.90 ID:Sta9LMr5.net] WebでSQLを使うときはSQLインジェクションが起こらないように注意して作らんとな
922 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 13:39:30.86 ID:kfPim06m.net] WPFでボタンをクリックするとウェブページを非同期で取得するプログラムを 書いたのですが 自作ライブラリ内でこのように記述するとtask.Wait();でGUIが応答しなくなります var task=GetWebPageAsync(webUri); task.Wait(); string htmlText = task.Result ; 処理を追ってみるとGetWebPageAsyncメソッド内の下記の部分のあと GUIが表示され処理が中断されるみたいです HttpResponseMessage res = await client.GetAsync(uri);
923 名前:理由がよくわからないまま string htmlText= await GetWebPageAsync(webUri); と書き直すと処理が実行されました 何が問題なのでしょうか [] [ここ壊れてます]
924 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 13:55:31.70 ID:lMyegDBc.net] >task.Wait(); >string htmlText = task.Result ; ここでバリバリ終了を待ってるじゃん。バリバリ。
925 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 13:59:45.12 ID:kfPim06m.net] もう一つわからないのが>>891 で取得したデータを HogeItemsに設定してListBoxにバインドしているのですが ListBoxに表示されません ページの取得とプロパティの値に設定は出来ています MVVMフレームワークとしてPrismを使用してます <ListBox ItemsSource="{Binding HogeItems}" Height="500"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Title}"/> </DataTemplate> </ListBox.ItemTemplate> </ListBox> コンストラクタ内 SearchCommand = new DelegateCommand(() => {HogeSearch();}); private async void HogeSearch(){ var list = await Hoge.SearchAsync(); this.HogeItems = new ObservableCollection<HogeItem>(list);}
926 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 14:22:19.59 ID:kfPim06m.net] >>892 それが下記サイトを参考にコンソールアプリで作っていたときは 問題なくタスク完了したのですが WPFで利用するとGUIがフリーズしてタスクが完了しません フリーズするだけならわかりますが、タスクが完了しないのがなぜなのかわかりません .NET TIPS:Html Agility Packを使ってWebページをスクレイピングするには?[C#、VB] - @IT www.atmarkit.co.jp/ait/articles/1501/27/news140.html .NET TIPS:HttpClientクラスでWebページを取得するには?[C#、VB] - @IT www.atmarkit.co.jp/ait/articles/1501/06/news086.html 上のページから抜粋 webTask.Wait(); // Mainメソッドではawaitできないので、処理が完了するまで待機する
927 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 14:30:33.50 ID:LLinkmjy.net] HogeItemsプロパティの変更通知はちゃんとしてるのか?
928 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 15:38:30.48 ID:kfPim06m.net] HogeItemのプロパティに変更通知を設定しないとだめだったんですね ObservableCollectionに入れれば必要ないと思ってました
929 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 19:48:54.41 ID:DTddCrxB.net] >>891 コンソールアプリとwpfみたいなguiアプリではTaskの実行コンテキストが違うからってのがあるかな。 メインでResultを受け取るには、awaitの後にConfigureAwait(false)が必要。 var ret = await Abc().ConfigureAwait(false); 別のやり方としては、WaitとかResultで受け取らず、ContinueWithで以降の処理を囲むという手もある。 まあ、この方法はイベントハンドラの中の改変量が多くなるけど c# Task 実行コンテキスト 辺りの言葉で探してみるといいよ
930 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:12:55.47 ID:cqLm13Og.net] 知ってると思うけどasync/awaitを使う関数はTaskもしくはTask<T>を返さないといかんよ
931 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:52:29.17 ID:+trI441A.net] >メインでResultを受け取るには、awaitの後にConfigureAwait(false)が必要。 何言ってるんだこのばかは
932 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 21:47:59.99 ID:lMyegDBc.net] つまりスレの総意としては、「初心者にasync/awaitを触らすな」でおkだな
933 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 21:55:16.01 ID:TcFd+yBB.net] >>898 正確には「イベント処理だけはvoidでそれ以外はTask/Task<T>を返すべき」って事だな neue.cc/2013/10/10_429.html ここに async void がまずい理由がうまくまとめられてる あと stackoverflow.com/questions/14177891/can-somebody-please-explain-async-await こういう所を読めばasync/awaitの意味が直感的に理解できるだろ 最初からUIせずにまずコンソール画面
934 名前:で遊んでみるといいと思う [] [ここ壊れてます]
935 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:05:16.30 ID:8z426iG1.net] そもそも結果を返さない非同期処理は避けるべきだろ Taskで副作用やると簡単にスパゲッティの出来上がり
936 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:10:43.83 ID:TcFd+yBB.net] だな 永久ループのTaskとか誰得
937 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:20:52.29 ID:/J4bS24z.net] 今までWeb系とかやったことなくてASP.NET MVC5実践プログラミングっての買って触ってみてるんだけど、 新しいWebサイト追加したらファイルがものすごい数できてワロタ・・・みんなこれをすいすい使えるとかすげえな・・・
938 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:34:28.57 ID:XZhIE+dJ.net] 大丈夫 ほとんどのドカタは理解せずに使ってるだけ
939 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:37:28.27 ID:jqzDD9Cy.net] 拡張子aspxで(特に速度面で)まともなサービスを見たことがない 理解せずにドカタが使ってるという指摘は恐らく正しいのだろう
940 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:40:59.12 ID:/J4bS24z.net] まじか。まあ自分も触って2日目だから諦めずに進めるよ。がんばって一流の土方になるよ
941 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:41:40.43 ID:8z426iG1.net] Webなんか所詮来たリクエストに文字列返すだけやで
942 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:43:07.86 ID:G2Z5fyBt.net] ASP.NET MVCは.aspxより体感で10倍ぐらい遅い。 ログインページとかのチンケなビューを表示させるだけで 相当な処理時間を要する。
943 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:50:54.07 ID:/J4bS24z.net] aspxっていうのはweb Formsっていう認識であってます? ネットで調べたときはMVCが主流とあったので、先攻してMVCをやってるんだけど、 まだ結構業務とかでは使われてるものですかね? 一応赤間信幸さんのWebアプリケーション構築技法っていう本を 数百円でゲットしてあるので平行して進める予定です。
944 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:50:58.15 ID:fbUsRR4f.net] MVCってそんなに遅いの?
945 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:53:29.97 ID:8z426iG1.net] 使い方が間違ってるだけ
946 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 00:14:50.49 ID:6NbSjz3o.net] >>898 >>901 データバインディングと非同期 ? C# Advent Calendar 2014 | kekyoの丼 www.kekyo.net/2014/12/21/4638 ※一部抜粋 この例は本物(CLR)のイベントハンドラではありませんが、 ICommandによって間接的に呼び出されるコールバックとして、 広義において同じと見なしても良いと思います。 このように説明されていたのでasync voidを使用したのですが問題有りますか? そもそもAction型なので戻り値が設定できません コンストラクタ内 SearchCommand = new DelegateCommand(() => {HogeSearch();}); private async void HogeSearch(){ var list = await Hoge.SearchAsync(); this.HogeItems = new ObservableCollection<HogeItem>(list);}
947 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 00:59:43.49 ID:Eju8VvyX.net] >>913 そういうのは、イベントと同じで仕方なくasync voidを使うケースになるんじゃないかな。 それしか手段がないということで。
948 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 01:25:55.14 ID:izkJyB4/.net] 実行中の他のフォームに対してString^を渡したいんですけど、C#の超初心者なんで、 EnumWindowsでタイトルを探してHWND取得して、マーシャルした*TCHARでグローバルATOMを作成して SendMessageで渡すという方法くらいしか思いつきません なんかかっこいい方法ありませんか?
949 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 01:31:29.80 ID:tXGVZqg3.net] async/awaitの使い方に関してはこの辺り読んどけ <
950 名前:br> http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html https://msdn.microsoft.com/ja-jp/magazine/jj991977.aspx [] [ここ壊れてます]
951 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 01:47:17.82 ID:1taOWumU.net] >>913 値を返す必要がない非同期なんだからTask.Factory.CreateNewでWaitなしでも同じ事だね
952 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 01:52:04.59 ID:1taOWumU.net] おっと間違えてた メソッドのなかでさらにawaitやってるんだからメソッドの中でTask.Factory.CreateNewやればいいな asyncを使う必要性はむしろ例外が投げられた時に適切に対処出来るかどうかに関係する
953 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 08:03:29.48 ID:XweApYF/.net] >>915 プロセス跨ぐならIPC 跨がないなら普通にメソッド呼べ
954 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 22:51:37.10 ID:4BNFPd6R.net] ポリモーフィックな処理を書きたいときって インターフェースを使うのと仮想メソッドを使うので理論的にはどっちが速いの?
955 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 23:39:26.50 ID:AiijB2ck.net] 変わらないんじゃないの?実測するしかないけど abstructとvirtualの違いだよね?abstructは全てvirtualであるためなのか virtualを付けるとコンパイルエラーになる それからインターフェースのBaseを呼び出す事が出来ない インターフェースは多重継承みたいな事をしたい時に使ってるけど
956 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:06:24.07 ID:t3F14P3X.net] デフォルトのawaitの外側でWaitしたらあかんよ。
957 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:08:41.27 ID:t3F14P3X.net] デッドロックするからね。 awaitは処理完了後UIスレッドに続きを実行させようとするが、Waitで完了待ちしてるからUIスレッドはいつまで待っても空かない。 双方待ちあってデッドロック。
958 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:10:44.89 ID:t3F14P3X.net] それを防ぐにはawaitのときにConfigureAwait(false)するなりが必要。
959 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:13:12.96 ID:t3F14P3X.net] つまり>>897 は正しいわけだけどいきなりバカ言われて終わってるな。
960 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:17:28.88 ID:jZs8Gwbi.net] Twitterと勘違いして単文連投してんのか?ボケ 片山MZも似たような病気発症してるよな アスペに共通する病なのか?
961 名前:デフォルトの名無しさん [2015/07/03(金) 09:17:49.13 ID:aTUcbAAr.net] WPFでDataGridのItemSourceにObservableCollection<MyData>をBindingしているのですが、 ObservableCollection<MyData>の特定のデータを変更した際に、DataGridのスクロールを変更があったデータの位置(行)に移動したいです。 どのようにすればいいでしょうか?
962 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:42:07.68 ID:3rp9Mnby.net] >>925 ワロタ たしかにそうだな