C#, C♯, C#相談室 Part67

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2011/09/21(水) 04:35:44.94
君は実にばかだな
953デフォルトの名無しさん:2011/09/21(水) 23:14:40.69
もうちょっとC#っぽく
954デフォルトの名無しさん:2011/09/21(水) 23:31:48.46
こういうソース見たんだけど、C#ではありなの?

private void hoge() {
ClassHoge hoge = new ClassHoge();
return hoge;
}

C的な考えだと、hogeはスタックに存在するからそれを返しても使えなさそう
なんだけど。
955デフォルトの名無しさん:2011/09/21(水) 23:33:29.43
ごめん関数の方がvoidじゃだめだね。

private ClassHoge hoge() {
ClassHoge hoge = new ClassHoge();
return hoge;
}
956デフォルトの名無しさん:2011/09/21(水) 23:36:35.89
>>954-955
大丈夫。
基本的にクラスの型で作ったものは宣言した瞬間にヒープに取られるので問題ない。
参照切れたらGCに回収されるからdisposeが必要なもの以外は後始末も特にない。
957デフォルトの名無しさん:2011/09/21(水) 23:45:22.26
なるほど、勉強になります。
958デフォルトの名無しさん:2011/09/21(水) 23:46:09.21
変数 ClassHoge hoge はスタックに作られるけど、
オブジェクト new ClassHoge() はヒープに作られて、
変数は ClassHoge hoge はヒープにあるオブジェクトの
実体を参照してるだけ、ってことでおk?
959デフォルトの名無しさん:2011/09/21(水) 23:54:08.71
>>958
大体そんな感じ。
960デフォルトの名無しさん:2011/09/21(水) 23:56:35.86
ClassHoge*の*が省略されてると思えばC++と一緒
961デフォルトの名無しさん:2011/09/22(木) 00:27:59.16
わかってないのに無理して物を言わない方が....
962デフォルトの名無しさん:2011/09/22(木) 02:56:51.78
参照型も値型もヒープに取られるんじゃないっけ?
ポインタだけスタックだとポインタのポインタを返したときに壊れるんじゃ
963デフォルトの名無しさん:2011/09/22(木) 02:57:38.56
基本的なことは本読んだっきり現象として観察できないから忘れる一方だな
964デフォルトの名無しさん:2011/09/22(木) 03:45:24.30
>>962
ちょっと何言ってるか分からないです
965デフォルトの名無しさん:2011/09/22(木) 08:29:33.36
>>962
値型はスタック。

参照型の中に入れ子になってる値型とかと勘違いしてない?
966デフォルトの名無しさん:2011/09/22(木) 09:54:07.99
返り値が参照返しが前提なのが間違ってる
c#に参照返しはない。参照型だろうと値型だろうと常に値返し。
参照型の場合は参照の値(ポインタのようなもの)がコピーされる。つまり>>960
ダメなのはスタックへの参照を返すことであって、>>955は仮にスタックに取られるとしても値返しならcでもc#でも問題ないぞ
967デフォルトの名無しさん:2011/09/22(木) 09:57:33.15
はぁ?
968デフォルトの名無しさん:2011/09/22(木) 09:57:54.21
参照返しとか値返しって新鮮な響きですね
969デフォルトの名無しさん:2011/09/22(木) 10:18:56.75
Hoge getHoge() { Hoge hoge; initHoge(&hoge); return hoge; }
これはCでも別に問題ないだろ? C#ではHogeが構造体の場合に相当。
ダメなのはこれ
Hoge* getHoge() { Hoge hoge; initHoge(&hoge); return &hoge; }
これを無理やりC#っぽく書けばこんなイメージ
ref Hoge getHoge() { Hoge hoge = new Hoge(); return ref hoge; }
970デフォルトの名無しさん:2011/09/22(木) 10:36:58.37
戻り値にref書けるのか?
971デフォルトの名無しさん:2011/09/22(木) 10:39:00.82
無知が無理に語らなくていいよ無駄だから
972デフォルトの名無しさん:2011/09/22(木) 13:07:04.14
973デフォルトの名無しさん:2011/09/22(木) 13:40:50.41
彼の言う参照返しが出来る言語って存在するのか?
974デフォルトの名無しさん:2011/09/22(木) 14:34:30.90
refとoutって違うのん?
975デフォルトの名無しさん:2011/09/22(木) 14:39:18.45
C++
976デフォルトの名無しさん:2011/09/22(木) 15:13:07.49
.NETでもC++/CLIはClassHoge^%(C#のref ClassHoge)とか返せるな
普通にある
977デフォルトの名無しさん:2011/09/22(木) 18:31:50.14
メキシコ紙「韓国人は共存できない民族」
http://japanese.chosun.com/site/data/html_dir/2001/02/12/20010212000005.html
米紙「ロスのコリアタウンは無法地帯」
http://japanese.chosun.com/site/data/html_dir/2004/08/09/20040809000064.html
米私立校「韓国留学生に問題児多い」
http://japanese.joins.com/article/article.php?aid=3982&servcode=400§code=400
中央アジアの韓国のイメージ・・・「浅薄な商業国家」、「人権が守られない国」
http://japanese.joins.com/article/article.php?aid=26625&servcode=100§code=100
ネパールのホテル従業員「韓国では反抗すれば手足を切られる」
http://japanese.chosun.com/site/data/html_dir/2001/10/17/20011017000037.html
ブラジルに不法滞在する韓国人がボリビア人を虐待
http://www.brazil.ne.jp/sociedade/news/076.html
「醜い韓国人」もうやめて〜独・日・中三カ国に駐在の総領事が苦言
http://news.stoo.com/news/html/000/676/946.html
978デフォルトの名無しさん:2011/09/22(木) 20:18:08.31
スタックかヒープかは言語仕様で決まってる?
それとも単なる今の実装の話?
979デフォルトの名無しさん:2011/09/22(木) 20:19:20.26
>>978
スコープの関係とかでどっちに置いてあるかという
傾向はあるよね
980デフォルトの名無しさん:2011/09/22(木) 20:44:26.71
ローカル変数はそれ自体は参照型だろうと値型だろうと全部スタック
参照型をnewしたら実体はヒープ
ただしyieldやクロージャ使うとローカル変数がヒープに作られる場合がある
それだけ。言語仕様。
981デフォルトの名無しさん:2011/09/22(木) 20:46:42.95
次スレよろ
982デフォルトの名無しさん:2011/09/22(木) 21:00:16.35
>>976
refって使うなら、呼び出し元が確保したエリアじゃないと意味変わってくるだろ
983980:2011/09/22(木) 21:02:06.25
すまん立てられなかった
>>985よろしく
984デフォルトの名無しさん:2011/09/22(木) 23:28:00.62
>>985よろ
985デフォルトの名無しさん:2011/09/22(木) 23:58:54.05
ほんなら立てるからテンプレよろしくな
986デフォルトの名無しさん:2011/09/23(金) 00:00:02.50
C#, C♯, C#相談室 Part68
http://hibari.2ch.net/test/read.cgi/tech/1316703574/

ほいあと頼んだ
987デフォルトの名無しさん:2011/09/23(金) 07:44:20.21
>>986
おつ
988デフォルトの名無しさん:2011/09/23(金) 12:34:21.15
>>986

989デフォルトの名無しさん:2011/09/23(金) 13:55:39.28
うめ
990デフォルトの名無しさん:2011/09/23(金) 15:15:11.50
まだ早い
991デフォルトの名無しさん:2011/09/23(金) 19:32:24.71
TCPListnerをつかってチャットアプリ作りたいんですが、
やっぱり同時に接続受け付けるのは難しいんですか?
Socketクラスを使って非同期通信をするのが定番みたいだけど、
難しいとかでちょっと手を付けにくい
992デフォルトの名無しさん:2011/09/23(金) 19:33:29.89
難しいの基準がどこにあるかわからないから答えようがない。
それをC++でやるとかよりははるかに簡単だけども。
993デフォルトの名無しさん:2011/09/23(金) 19:34:59.95
マルチスレッドのことを言っているなら、
クリティカルセクションと、
WindowsのUI要素はUIスレッドからしか使えないことだけ注意すればそれほど難しくない
994デフォルトの名無しさん:2011/09/23(金) 20:02:17.42
とりあえず難しいか難しくないかの話をしてる間は雲を掴むようなもんだ
995デフォルトの名無しさん:2011/09/23(金) 20:10:08.68
うめ
996デフォルトの名無しさん:2011/09/23(金) 21:01:40.49
     //   /: : : : : : : : : : : : : : : : \
    /  l  /: : : : : ∧: : : : : : : ∧: : : : : \
   /   | / : : ―|/- 、\ : : : /_,,.斗: : : : : : :.
  《__ |/: : : : : /,x:=ミ、 \/x=ミ、ハ: : : : : : :|
   ` ー. : : : : : : 〃んィi    んィi Y|: : : : ∧|
     ヽl: : : : : : 从弋:り    弋:り 从: : :/
     |:V{\;/:|       ,     ハ|V
     |: :\|: : | ""       ""}:|
/´ ̄`\ : |: :|: : |    ー〜   ノ: :|
       ヽ|: : ,: : :≧ .. __ .  イ|: : :.
       }: :∧: : :.     {: : /: : :| '、: : \
   キ   >_;∧: : :.   V____|_\: : :\
    ノ   !⌒ヾ|: : :|_ /::::::(__)::\\: : :ヽ
    コ    |ハ  :|: : :|/(__)::::::::::::::(_\: : : |
    !    | ||  |: :/::::::::::::::::::::::(__)::::::::/^ヽ: |
        ノ ||  |「{/⌒つ⌒ヽ:::::::::::::::::::{ /}:|
997デフォルトの名無しさん:2011/09/23(金) 21:19:29.14
産め
998デフォルトの名無しさん:2011/09/23(金) 21:43:18.06
うめ
999デフォルトの名無しさん:2011/09/23(金) 22:02:32.06
うめ
1000デフォルトの名無しさん:2011/09/23(金) 22:03:32.10
次スレ

C#, C♯, C#相談室 Part68
http://hibari.2ch.net/test/read.cgi/tech/1316703574/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。