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/
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 ワロタ たしかにそうだな
963 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:43:40.63 ID:mX8fKKOT.net] VMの変更時にメッセンジャーとか使ってVに通知してScrollIntoViewすればいいんじゃない
964 名前:デフォルトの名無しさん [2015/07/03(金) 09:47:04.79 ID:aTUcbAAr.net] >>929 ありがとうございます、やってみます
965 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:55:39.32 ID:xTjRlvwx.net] >>930 ScrollIntoViewは仮想化切らないとマトモに動かないから中尉
966 名前:デフォルトの名無しさん [2015/07/03(金) 10:45:26.48 ID:JghQIuWO.net] asp.net mvc でdbにsqliteを使うことはできますか?
967 名前:デフォルトの名無しさん [2015/07/03(金) 10:54:35.26 ID:aTUcbAAr.net] >>931 ありがとうございます。 参考にさせて頂きます。
968 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 11:50:01.29 ID:7czX/gB0.net] >>932 使えるって実用に耐えるかってことなら無理だね。 素直にSQL Serverを使うべき。
969 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 12:11:33.74 ID:SPEM/1YO.net] >>920 インターフェイスは重い、仮想の方が速いってのが基本ではあるけど、最適化技術も進んでるので条件によってはほとんど変わらない。 まあでもやっぱり仮想の方が速いかな。
970 名前:デフォルトの名無しさん [2015/07/03(金) 12:23:00.35 ID:JghQIuWO.net] >>934 実用に耐えれなくても大丈夫です。 sql serverだと勝手に色々
971 名前:やってくれて便利すぎるのでsqliteとかで中身理解しながら勉強したいなと思って [] [ここ壊れてます]
972 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 14:23:52.58 ID:rDeS7aaJ.net] それはDBMSじゃなくてORMの問題かと SQLServerでいいからEF使わないで直接DbConnectionでSQL投げたらいい
973 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 15:42:42.38 ID:7czX/gB0.net] >>936 sqliteなんてサブセットだからちゃんとしたDBを学んだ人間が使うべきもの 勉強ならSQL ServerやPostgreSQLで学ぶべき
974 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 15:47:24.03 ID:uO8sjm4v.net] 別に何を使ったっていいだろ sqliteはスタンドアローンで動くしユーザーやら何やらDBサーバー側の設定を気にせず使えるからとっかかりは楽だと思う
975 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 15:48:54.97 ID:lmzcW47C.net] >>923 そうそうそうなんです、UIスレッドに戻ろうとして Task.Waitで止まってます わかりやすい、ありがとうございます ってことは@ITのコードはコンソールアプリじゃないと機能しないようなものなんですね
976 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 15:51:50.93 ID:7czX/gB0.net] >>939 じゃあそれでいいです。
977 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 16:06:51.66 ID:jZs8Gwbi.net] だよな!
978 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 16:07:54.64 ID:lmzcW47C.net] qwerty2501.hatenablog.com/entry/2014/04/24/235849 ここがすごくわかりやすく説明してた 上記サイトの一文 ・基本的にはライブラリ内でawaitする場合はConfigureAwait(false)すること 自分の問題はここだった WebPageをダウンロードするライブラリを利用するメインで 例外をキャッチしたかった
979 名前:デフォルトの名無しさん [2015/07/03(金) 19:24:19.48 ID:JghQIuWO.net] >>937 まだ勉強不足なんですけと、dbcontextを継承してそれをいじくるんですかね? 来週色々試してみます!
980 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 19:58:43.81 ID:uMdddorU.net] DBの勉強したいならEFの再発明を1回やっとけばおk
981 名前:デフォルトの名無しさん [2015/07/04(土) 02:55:41.29 ID:A6eGrjpU.net] >>945 メンバ名とカラム名を自動で紐付けるような感じですよね
982 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 12:41:38.87 ID:u/y4FI+O.net] それだけじゃないけどな クエリの動的生成やら更新の追跡やら自前でやると結構めんどくさいよ
983 名前:デフォルトの名無しさん [2015/07/04(土) 13:34:46.43 ID:YKtPOMLD.net] 更新の追跡ってなんですか??
984 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 15:34:35.19 ID:Yn2KkVMN.net] JavaのjBatchのようなバッチ処理のフレームワークありませんか?
985 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 16:55:53.12 ID:y9JP5enm.net] www40.atwiki.jp/spellbound/pages/1405.html ここを見てストップウォッチを作っているのですが、うまくいきません 基本的な事が出来たのでテストすると、1時間までは正常表示されるのですが 1時間以上経過すると「分」を表示する部分が「2時間235分」とか表示されてしまいます // start押したら計測開始 time_A += Time.deltaTime; // Textコンポに表示 timer_A.text = Mathf.Floor(time_A / 3600f).ToString() + "時間 " + Mathf.Floor(time_A / 60f).ToString() + "分 " + Mathf.Floor(time_A % 60f).ToString(); やってる事はunityですが質問はC#だと思うので、こちらで質問させて頂きました 何かアドヴァイスを頂きたいのですが、どうしたらいいでしょうか?
986 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 16:58:18.01 ID:YYyieqqT.net] 例えば2時間30分のときにtime_Aにはどんな値が入ってて、それを60で割って表示したらどんな値が出力される?
987 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 17:08:41.01 ID:y9JP5enm.net] >>951 time_Aには9000・・・? 60で割ると150ですかね あまり自信ないです・・・
988 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 17:12:12.71 ID:YYyieqqT.net] >>952 150になるなら、2時間150分って表示されることになるだろ?だから150になるような計算じゃなくて30になるようにしないと駄目
989 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 17:15:47.28 ID:Rsiji3ml.net] ヒントは秒の所に
990 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 17:17:33.59 ID:y9JP5enm.net] >>953 あー・・・なるほど たぶん分かったと思うので、試してみます ありがとうございました。
991 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 17:25:47.09 ID:yvuAj/xu.net] >>950 まんまstopwatchクラスとかあるんだが
992 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 21:42:25.14 ID:aXZfp9EM.net] ま、誰もが一度は通る細道よ もぞもぞっとしてああそうか、で終わりよ
993 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 08:30:09.15 ID:U6+aOXmn.net] C#もメソッドの複数戻り値欲しい 対応する他の言語も増えてるんだし あ、Tupleは論外です
994 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 08:41:53.84 ID:TS0XlDWE.net] 言語仕様にごちゃごちゃ言えるレベルかよ コード書いてろよタコ
995 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 08:46:01.63 ID:ZxkWSQzJ.net] その複数の戻り値を格納したクラスのオブジェクトを返せばいいだけでは
996 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 09:23:42.50 ID:pk39sm1t.net] dynamicでむちゃくちゃシンプルに複数戻り値のメソッド記述できるだろ
997 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 09:53:13.21 ID:PjK/lpsq.net] 連想配列を使うのが流行ってる
998 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 11:46:55.79 ID:kBfZhVx2.net] >>958 なぜ論外なのか教えてください
999 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:12:07.88 ID:qt5SIPya.net] メソッドから複数の戻り値返せるような言語の例をあげて欲しいんだが
1000 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:15:50.25 ID:EDjn9D6L.net] Go、Scala、python、perl、ruby
1001 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:17:20.40 ID:IXTBYhaq.net] tuple返したらだめなん?
1002 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:18:44.80 ID:mRhwc0pv.net] >>961 どうやるん?
1003 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:19:07.82 ID:sTXZljFQ.net] >>960 それだと最大でメソッドごとにクラスが必要でクラスごとにプロパティを持つことになりますね これが陳腐、非生産的なので複数戻り値をサポートする言語が増えています >>961 dynamicは実行速度が低速なので論外です
1004 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:28:03.41 ID:WTwMH7IK.net] C#にも匿名型があるじゃん
1005 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:30:19.81 ID:sTXZljFQ.net] ほぅ、では匿名型で書いてみましょうか どうなると思います?
1006 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:40:17.61 ID:qt5SIPya.net] >>965 Goは確かにできるみたいだな。これは面白そうではあるけど それ以外で直接、複数戻り値返せるのはなさそうだけど? あくまで戻してるのは配列やリストだろ。それを複数変数に一括代入できるだけで だったらC#でもオブジェクトの配列でも戻せば良いんじゃね オブジェクト指向としての設計方針がどうなのかはしらんが 匿名クラスが戻り値に指定出来れば面白いかもしれんのだがなぁ 出来ない事は無いような気がするんだが、やらない方針なのか
1007 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:43:35.50 ID:pk39sm1t.net] >>967 private void button1_Click(object sender, EventArgs e) { var packed = GetHoge (); if (packed.IsOK) { textBox1.Text = packed.Name; } } private dynamic GetHoge () { return new { Name = "ほげ", IsOK = true }; }
1008 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:48:04.38 ID:TS0XlDWE.net] うんこに触りまくりだなキミら
1009 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:49:18.70 ID:pk39sm1t.net] >>968 速度が必要なところではクラスを使って問題ないところでdynamic 使い分けがめんどくさいなら他の言語に行けば
1010 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:54:29.41 ID:EDjn9D6L.net] >>971 内部的にはどの言語も戻してるのは配列やリストだし、C#でも同じことはできるが 例えばperlなら下のように簡単にできるってのがメリットってだけだからな sub a { return (123, "abc"); } my ($aaa, $bbb) = a();
1011 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 13:00:51.91 ID:mRhwc0pv.net] >>972 ありがとー 名無しクラスで
1012 名前:返すのか [] [ここ壊れてます]
1013 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 13:15:07.21 ID:qt5SIPya.net] 匿名型は型もってるけど、ダイナミックは結局Object型だからなぁ 結局のとこタイプセーフどうすのって話になるかと なんか構想はあるみたいだな https://ufcpp.wordpress.com/2015/02/11/c-7%E3%81%AB%E5%90%91%E3%81%91%E3%81%A68-tuples/
1014 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 13:20:39.70 ID:pk39sm1t.net] >>977 >結局のとこタイプセーフどうすのって話になるかと そこがね、結構な弱点ではある
1015 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 13:30:42.49 ID:HWlVqIKe.net] >>966 というよりこの話題でタプルを別に考えなくていいやんと思う タプル返すならそれでいいやんって思う しかもrubyの場合は単にArrayなんじゃなかった?(あやふや) それだとしてもそれでいいやんって思う 用は単にx, y = fと書きたいだけじゃないのみんな
1016 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 13:46:51.67 ID:mRhwc0pv.net] >>979 publicなメソッドでitem1、item2、...はあかんわ
1017 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 14:48:50.22 ID:PIoug+Wj.net] >>980 ごめん、C#のSystem.Tupleについては存在すら知らなかった ocamlのタプルを勝手に想像してて (x, y)やカッコも省略できるんでx, yもタプル let a, b = (1, 2);; こういうのを勝手に想像してたすまそ
1018 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 16:52:35.77 ID:qt5SIPya.net] >>979 >用は単にx, y = fと書きたいだけじゃないのみんな 俺はこれは嫌だな。fにx,yが内包されている事がわからんから これだったらそれこそf.item1,f.item2で良いわけで、今のタプルで良いかと f.なになに で、名前と型が維持されてないとダメだ
1019 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 17:05:13.40 ID:qt5SIPya.net] そういえば上の方で、タプルは >言語レベルでのサポートがない言語で使うべきではない って力説してた人がいたなぁ dynamicは遅いから論外だって言ってるけど >>958 がタプルを論外だと言う理由は何だろ
1020 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 17:39:44.26 ID:gSeUuLQi.net] >>982 あぅ…つくづくスマン > x, y = f これは f() の意味ね あなたの論旨に対して瑣末なことではあるが一応訂正しとく
1021 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:16:16.46 ID:fVR/pyHV.net] ふらふらっと
1022 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:56:38.80 ID:n0YcJJeB.net] 次期バージョンで複数戻り値がサポートされそうってのがあったけどいつの間にかなくなったしな
1023 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:21:04.78 ID:pk39sm1t.net] >>983 きっとitem1、item2...ってなるのが気に入らないんだよ
1024 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:35:34.00 ID:LHx3NAum.net] まぁそれでもないよりはましなのかなC#にとって C++でもpairってやっぱ、要所要所で欲しいし 白状するとC#でもpair<T1,T2>みたいなん作って使っちゃってます first, secondってのも名前としてはまぁそうなるよねって感じ item1, item2...とそう変わるもんじゃあない
1025 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:41:44.85 ID:oR9xV2kd.net] >>983 あれはタプルって読むのか。 ずっとチュープルだと思っていた。 tupleなんて使わないよなあ。 必要なら構造体を定義する方が分かり易いし。
1026 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 00:23:28.32 ID:k/qBkFOv.net] しかも構造体なら値型だしね 多くの場合そっちのほうが望みどおりだろう
1027 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 00:49:17.62 ID:8+ik3mP9.net] 静的型付けとかJITとかのあたりの仕組みが全く理解できなくてワロタwww・・・ どうすればいいですか・・・?
1028 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 00:59:06.73 ID:drHIjVcg.net] >>989 >>990 数学の世界ですら 円の方程式ならy=±√(r^2-x^2)で解は2つ、三次方程式なら解は3つといった具合に、純粋関数が複数戻り値を返す タプルの概念自体を否定するのはおかしいし、それを構造体やクラス化するのもまたおかしな話し 数学というモデルが存在する以上、いずれC#も対応せざるを得ないんじゃないのかな
1029 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 01:07:25.57 ID:889KT988.net] √2などを表現できる数値型がないとおかしい まで読んだ
1030 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 01:22:35.57 ID:K3Unqfxi.net] あれば使うだろうが無けりゃ無いでどうでもいいわ 無いとプログラム書けない奴はコールドスリープにでも入って50年後に目覚めてろ
1031 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 01:54:58.88 ID:4m9Vq9W3.net] >>986 >977のissueはまだ続いてるみたいだし、なくなったって訳じゃないんじゃね? 割と大きな変更になりそうだから後に回されただけで。
1032 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 01:59:21.89 ID:PAkk6Hqa.net] >>992 数学とプログラミングを無理矢理に 関連付けてヘンテコな説を唱えて 一人悦に入って居ればいいよ。
1033 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 06:17:01.48 ID:7qvaXLbV.net] 数学に可読性や保守性なんていう概念はないだろう 数学だとほとんどの場合一文字変数しか使わないけど、 だからってC#でも常に一文字変数を使うべきだと?
1034 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 09:09:41.81 ID:wIKfbX0j.net] 皆の希望を全部いれた言語なんてろくなモンにならん
1035 名前:980 mailto:sage [2015/07/08(水) 16:34:36.23 ID:K7cQm9JH.net] 次スレってどうやって立てるんだ 新規スレッド作成画面から作成したはずなんだが
1036 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 16:46:33.07 ID:HMKJDSG5.net] >>999 したはず ってことは、もう勃ってるんだろ? リロードすればいいだろ。
1037 名前:980 mailto:sage [2015/07/08(水) 16:48:45.27 ID:K7cQm9JH.net] したはずなんだが出てこない 2回やっちまったけど、これで出来てなかったら誰か頼むわ
1038 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:42:08.39 ID:rwtUEn+Z.net] peace.2ch.net/test/read.cgi/tech/1436344868/ 立てたよー >>1001 なんか立てたはずなのに立ってないってのがちょくちょくあるっぽい
1039 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:11:25.27 ID:t2tbnUcj.net] せん
1040 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
1041 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています