- 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/
- 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 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|