[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/20 10:02 / Filesize : 242 KB / Number-of Response : 1042
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part115



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/

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/






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<242KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef