- 1 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:44:27 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 ふらっとC#,C♯,C#(初心者用) Part23 pc11.2ch.net/test/read.cgi/tech/1200033660/
- 116 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:31:18 ]
- C#にクロージャってあるんですか?
匿名メソッドはクロージャではないと聞いたのですが どこが違うのでしょうか?
- 117 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:03:47 ]
- 匿名メソッドはクロージャ
- 118 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:13:38 ]
- >>116
クロージャで正解。 クロージャの考え方はいろいろあってとくに手続き型の言語ではバリエーションが広い。 自分の使ってる言語と動作が違うからC#のは真のクロージャではないという議論が、 しばらくなされたことがあって、そのときに >匿名メソッドはクロージャではない という話が出回ったことがある。
- 119 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:17:28 ]
- >>117
>>118 ありがとうございます メソッド内で匿名メソッドを宣言したときに、 親メソッドの変数を参照できないとクロージャではないみたいな話を聞いたもので クロージャ自体方言みたいなもので 明確な定義がないんですかね?
- 120 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:21:26 ]
- 逆にレキシカルクロージャ以外クロージャではないと言ってる過激派もいるけどね。
- 121 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:30:11 ]
- レキシカルクロージャってのも議論が混乱してて分からない俺涙目
どっかに分かりやすい解説ない?
- 122 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:52:26 ]
- 匿名メソッドは親メソッドのローカル変数を参照できる
- 123 名前:デフォルトの名無しさん [2008/02/05(火) 17:08:47 ]
- >>89 まさにこれ?
dobon.net/vb/dotnet/control/tstoolstrippanel.html
- 124 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:13:36 ]
- 静的スコープってのは、クロージャの中身がローカル変数になることをいうの?
動的スコープて何?
- 125 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:18:49 ]
- C#についてるのってレキシカルクロージャだっけ?
- 126 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 19:02:51 ]
- >>124
動的スコープのクロージャはマクロみたいなものでC#ではありえない。 コードにするとこんな感じ。 var f = DFUNC(a) { return a + b; } // この時点で b は存在しない。 void A() { var b = 2; f(3); // 6が戻る。 } void B() { f(3); // b がないので実行時エラー }
- 127 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 19:06:58 ]
- >>126
なるほどなー それはわかりやすい
- 128 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 19:07:36 ]
- スクリプト言語でありそうなコードだね
- 129 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:56:31 ]
- java屋の質問なんだけど、名前空間とディレクトリ階層が一致しなくてもいいみたいなんだが
みんなルール決めて変な事にならないようにしてるの? javaみたいに言語仕様で縛らないのは何か意味があるのかな。
- 130 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:58:45 ]
- むしろJavaが変
- 131 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:05:48 ]
- なんで言語仕様でディレクトリの構成が縛られないといけないんだ
- 132 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:10:56 ]
- 言語なんて複数やってるもんなのにjava屋とかいっておきながら井の中の蛙とは一体
- 133 名前:129 mailto:sage [2008/02/05(火) 21:12:36 ]
- >>130
んー、C#が変だとは思ってないんだが、クラス名の衝突を防いだりするためなんだから、ファイルもディレクトリ作ってぶつからないようにするんでないの?
- 134 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:17:57 ]
- >>129
今まで違和感無かったか?俺はあったぞ。
- 135 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:25:05 ]
- >>133
論理的な構成と物理的な構成が同じじゃなきゃいけないってのは原始的な感じがする
- 136 名前:129 mailto:sage [2008/02/05(火) 21:40:50 ]
- チームで開発するときとかは、○○系はこのディレクトリに入れてって会社や個人でルールを決めてるってことか。
javaだとパッケージのルールだけ決めるだけだったから、C#には暗黙のルールでもあるのかな?って思ったんだ。 C#を悪く言ってるつもりはないんだけど、そう聞こえてたらごめん。
- 137 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:43:06 ]
- いやいや別に無問題
- 138 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:43:15 ]
- ArrayListって2.0ではListにとってかわられたんじゃないの?
- 139 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:43:15 ]
- 悪く言ってるようには聞こえてないよ
- 140 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:43:55 ]
- たしかにもうListばかり使ってるな
- 141 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:44:30 ]
- >>138
非ジェネリックのクラスを使う事ってある? 俺にはあんまり目的が思いつかんなー
- 142 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:46:27 ]
- Silverlightでは非ジェネリックコレクションは削除されるって噂だよ
- 143 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:48:26 ]
- Silverlightみたいな環境だとジェネリックって重いような木がするんだけどどうなんだろ
- 144 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:51:26 ]
- ジェネリックって重いってどこから出てきた都市伝説だよ
- 145 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:52:17 ]
- 重いっつかコードが肥大化するでしょ?
Webにはどうなんかなーと
- 146 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:52:26 ]
- ArrayList使うくらいならList<object>使った方がなんぼかマシだ
- 147 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:53:27 ]
- ジェネリックが特殊化されるのは値型の場合のみでしかも実行時だよ
- 148 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:54:19 ]
- テンプレートじゃあるまいに
- 149 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:59:14 ]
- だいたいランタイムライブラリはクライアントにあるのに、
Webだからどうこうって意味不明だろ。
- 150 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:13:27 ]
- ArrayList使いまくってて
しかもジェネリックが搭載されたのを知らないやつは まだ余裕で使ってるぜ? 1.1縛りな開発とかだと知っててもジェネリック使えないしな List<T>に慣れるとArrayListには戻れんな
- 151 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:20:05 ]
- そもそもジェネリックって何の事かわかってない
C#はじめたばっかりの俺 ぐぐってみる
- 152 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:20:27 ]
- WPFはGDI+にとってかわるのかな?
- 153 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:24:21 ]
- WPFはノウハウが全く違うから普及するのに10年ぐらいかかりそうだな
- 154 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:26:21 ]
- Hashtableはよく使う。
- 155 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:37:17 ]
- >>152
WPFのソフトウェアレンダリングコードはGDI+からだいぶ流用したらしい。 社内的にはとってかわってるのかもね。
- 156 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:41:29 ]
- >>154
何か理由があって使ってるの?
- 157 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:43:29 ]
- 画像とハッシュテーブルがどうからむのかよくわからん(´・ω・`)
- 158 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:43:35 ]
- Hashtableは名前がダサい
HashTableならいいのに
- 159 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:45:03 ]
- C#で作ったプログラムは必ず使う側に.NETが入っている必要があるんでしょうか?
- 160 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:45:28 ]
- いいえ
- 161 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:47:13 ]
- .NETがいらないC#プログラムを作るにはどうしたらいいんでしょうか?
using System;とかありますがああゆうの全部.NETのクラスライブラリだとかなんですか? そこら辺のことが書いてあるサイトとかないでしょうか
- 162 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:49:27 ]
- >>161
無理 自分で1からコンパイラ作れば可能だけどさ
- 163 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:49:50 ]
- >>156
マルチスレッド絡み、やや微妙な制約はあるけどね。 ほんとはjavaのConcurrentHashMapだったかみたいな 専用のがあるといいんだけど。
- 164 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:50:17 ]
- >>161
mono
- 165 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:51:17 ]
- >>162
コンパイラ作るだけじゃダメ CLIを実装しないと Silverlightは.NETじゃないといえば.NETじゃないかも
- 166 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:53:24 ]
- >>165
C#をネイティブコードにするコンパイラがあればいいんだろ。 別にILしなければならない理由はない。
- 167 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:54:58 ]
- ライブラリどうすんのよ…
- 168 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:55:00 ]
- ネイティブにして、移植したライブラリを使用したとして、
その環境は .NET ではないと言えるのだろうか。
- 169 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:55:01 ]
- すまんCLIはいらないみたい
でも言語仕様に記載されてるBCL(標準クラスライブラリ)は全部実装する必要がある
- 170 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:55:37 ]
- c#暦1ヶ月です。
MSDNのページがさっぱり理解できないんですが、ある程度使えるようになったら読めてくるもんなのでしょうか?
- 171 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:58:43 ]
- 日本語版は理解できなくても無理はない
英語版読め
- 172 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:59:32 ]
- つーかどこが分からんの?
- 173 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:59:34 ]
- >>170
カンでさがしてサンプルコード張って動かしてみるのが正しい使いかた 理解するんじゃない感じるんだ
- 174 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:59:42 ]
- クラスの解説を読めるようになるのは初心者脱出の第一歩だな
C#の言語仕様についての説明のページはVB.NETと違って初心者向けに書かれてないから結構難しい
- 175 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:00:11 ]
- なんでC#ってネイティブコード吐けないんだろ
- 176 名前:161 mailto:sage [2008/02/05(火) 23:00:46 ]
- monoはうにx版.NETみたいな感覚でした、それは置いておいて無理ですか、把握しましたありがとう
- 177 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:01:40 ]
- 無理じゃないと言っているのだが。
- 178 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:01:44 ]
- >>175
.NETを使うために作られた言語だから
- 179 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:01:45 ]
- 一応マルチプラットフォームを考えてるんだろうが、
だったら MS が色んなプラットフォームで処理系作りやがれと。
- 180 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:02:45 ]
- 吐けないんじゃない。吐かないだけ。
- 181 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:03:27 ]
- 馬鹿でかいBCLが障害
- 182 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:03:51 ]
- >>175
フレームワーク使う言語としては正しいけどね・・・
- 183 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:04:12 ]
- >>177
馬鹿?
- 184 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:04:17 ]
- ネイティブコード吐ければもっと普及すると思う
- 185 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:04:54 ]
- 何でネイティブコードにこだわってるんだ?馬鹿なの?
- 186 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:05:26 ]
- >>185
そこは突っ込みどころと違う
- 187 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:06:24 ]
- >>185
バカはお前だろ
- 188 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:06:35 ]
- そもそも.NETを普及させるための言語なわけだから
ネイティブコードを吐けるようにして普及を図ったところで意味がない
- 189 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:07:04 ]
- CPU ごとに別のマシン語はかないといけないとなると
処理系作るの面倒だし・・・。
- 190 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:07:04 ]
- もう.NETとかいう思想自体が古いけどな
- 191 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:08:17 ]
- >>175
いきなりネイティブコード吐くとリフレクションやLCGと相性悪そうだがその辺考えてみた?
- 192 名前:170 mailto:sage [2008/02/05(火) 23:08:26 ]
- MSDNの読み方というか、歩き方みたいなのがいまいち分からんのです。
ググる時も、大抵先頭にくるMSDNはなるべく避けて、@ITとかのサイトに逃げてます・・・ 機械翻訳ぽいのがどうにも
- 193 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:08:32 ]
- >>190
何が古いんだ?具体的にどうぞ。
- 194 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:10:18 ]
- 新しいのが出てないのに古いとはなかなか言い辛いでしょう
>>192 俺がMSDN渡り歩けるようになったのはプログラミング歴5年目くらいです 非常に遅いな
- 195 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:10:32 ]
- というかネイティブコードじゃないこととフレームワークは関係ないだろ。
- 196 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:12:17 ]
- >>192
基本的にMSDNはリファレンス。辞書。 分からないときに引くものであって、教科書じゃない。 MSDN2になって翻訳は随分まともになったと思うが。
- 197 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:13:07 ]
- >>192
@ITは正しい選択
- 198 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:13:54 ]
- まあ変なVB系Tipsサイトよりは
- 199 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:14:04 ]
- そしてブーデー川俣の記事読むのか
- 200 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:17:31 ]
- .NET Tipsで十分場合が多い
- 201 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:18:13 ]
- 緑のバイク
- 202 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:19:46 ]
- C#、でぐぐってでた1ページ目が日本語C#情報の9割だと思う俺
- 203 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:20:18 ]
- むしろ9割9分くらいだろ
- 204 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:24:27 ]
- 何件表示するかの設定によるんじゃ
- 205 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:54:25 ]
- 多次元配列の初期化で、配列初期化子は変数かフィールド初期化子の中でのみ使用できます。新しい式を使用してください。
というエラーが取れなくて困っています。 int[ , ] hoge = new int[ , ] { { 1, 2 }, { 1, 2 } }; は問題ないのに、 int[][ , ] hoge = new int[][ , ] { { new int[]{ 1, 2 }, new int[]{ 1, 2 } }, // ★ { new int[]{ 1, 2 }, new int[]{ 1, 2 } }, // ★ }; とすると、★の行を指して上記のエラーがでます。 intからint[]に型を変えただけだと思っているのですが、何が違うのでしょうか。
- 206 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:58:49 ]
- >>205
int[]の[,]なんだから逆 int[,][]
- 207 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:00:10 ]
- 基本やり直し。
配列初期化子ってわかる?
- 208 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:01:33 ]
- >>207
お前は分かってるのかよ。わかってるなら書け。
- 209 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:01:51 ]
- >>207
そんな大げさな間違いじゃない
- 210 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:03:03 ]
- >>206
ほんとだ… ありがとうございます。
- 211 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:21:43 ]
- >>179
いろんなプラットフォームありますよ。 x86, x64, IA-64 .NET Compact Framewrok .NET Micro Framework どれもWindows上というのはご愛敬w。 後は申し訳程度にSSCLIがFreeBSD対応だった気がする。
- 212 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:23:00 ]
- Linuxはmonoがあるしなぁ
MSも支援してるし
- 213 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:25:52 ]
- 質問した当人ですがあらゆるWindows上で使えたらなぁとか思ってました
- 214 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:26:23 ]
- フィールドって言葉がイマイチなじめない
メンバ変数って言いたくなる
- 215 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:46:59 ]
- >>213
「あらゆるWindows」ってなにがあるの?
- 216 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:48:40 ]
- Windows1.0
|

|