C#, C♯, C#相談室 Part51at TECH
C#, C♯, C#相談室 Part51 - 暇つぶし2ch175:デフォルトの名無しさん
09/02/13 08:50:09
別にintと、あとdoubleがあれば十分じゃないかと思うけど

176:デフォルトの名無しさん
09/02/13 08:51:09
>>175
あとは BigInteger とか、実装してる人がいるなら Rational とかかな。

177:デフォルトの名無しさん
09/02/13 09:09:42
それこそ遅くて使いものにならないだろうけど
C#4.0ならdynamic使えばそのままleft + rightと書けるな

178:デフォルトの名無しさん
09/02/13 10:47:41
Nyaruruって大学生だっけ?

ガキに「さん」付けか・・・

179:デフォルトの名無しさん
09/02/13 11:12:29
能力も無いのに自分の方が年上ってだけで
見下した態度をとるのはみっともないぞ

180:デフォルトの名無しさん
09/02/13 12:58:20
Nyaruruって大学生だったのか

181:デフォルトの名無しさん
09/02/13 13:24:55
Nyaruruが大学生だったら俺プログラマやめるわ

182:デフォルトの名無しさん
09/02/13 14:26:16
なさけねー。

183:デフォルトの名無しさん
09/02/13 14:34:24
昔はC++を使っていて色々研究とかしてたけど・・・
いろんな言語使っている間に言語の濃い部分を積極的に学ばなくなってしまったな。

これは退化してるのかね・・・

184:デフォルトの名無しさん
09/02/13 14:38:49
羽根が短くなったのを退化ということもあれば進化ということもある。

185:デフォルトの名無しさん
09/02/13 15:26:43
低水準な所を濃いと言ってるならアセンブラかマシン語でもやれば?

186:デフォルトの名無しさん
09/02/13 15:47:23
誰もそんなこと言ってないと思うが
できるだけ楽に扱えるものを使って生産的なことをする人と楽に扱えるようにするために深い部分まで追及する人とどっちが優れてるとかないだろう
前者のが需要あるし

187:デフォルトの名無しさん
09/02/13 16:42:20
>>185
すでにアセンブラは68系と86系をあわせて6年くらいはやってましたよ。

188:デフォルトの名無しさん
09/02/13 16:46:24
ひよっこだな

189:デフォルトの名無しさん
09/02/13 16:49:26
甘い、甘すぎるよ。

俺なんて、C# を15年以上やってるけど、まだまだ力不足を感じてる・・・

190:デフォルトの名無しさん
09/02/13 16:52:11
俺なんてもう100年になるかな

191:デフォルトの名無しさん
09/02/13 17:38:48
紀元前からD言語を触ってるが、まだ完成しない

192:デフォルトの名無しさん
09/02/13 17:41:40
みんなたくましいなw

193:デフォルトの名無しさん
09/02/13 20:59:47
生まれて間もない猛者が、ここに質問してきた事もあったしw

194:デフォルトの名無しさん
09/02/13 21:35:55
>>177
ジェネリクスと同時に使うなら、dynamic よりも式木使い方がお勧め。

>>178
院生だろ。
あと、歳の上下で態度変えてたら見ず知らずの人と付き合いづらいよ。

195:デフォルトの名無しさん
09/02/13 22:23:41
ネット上で「君」とかつけて呼ぶの?

196:デフォルトの名無しさん
09/02/13 22:34:35
厳密にはC#の問題ではないかもしれないけど、ちょっとお助け願います。
Genericコレクション型のインスタンスをリモート処理時に参照渡しにするにはどうすれば良いでしょうか。

例えば、

class OtherSample : MarshalByRefObject {
  List<int> intList;
}

というコードでは、OtherSampleは参照渡しですがintListは自動的にシリアル化され値渡しマーシャリングされてしまいます。
なので、アクセッサを付けてintListを取得しても、リモート化されたインスタンスの値を変更できません。
適宜 intList に対するメソッドをOtherSampleに追加するしかないのでしょうか。


197:デフォルトの名無しさん
09/02/13 23:55:43
メソッド作ってなんか変わる?

198:デフォルトの名無しさん
09/02/14 00:38:48
メソッド作ってから彼女もできるし、ギャンブルでも大当たりだしいいことづくしだよ

199:デフォルトの名無しさん
09/02/14 00:46:04
class OtherSample : MarshalByRefObject {
  List<int> intList;
  public void AddInt( int n ) {
   intList.Add( n );
  }
}

で AddInt を使えばプロキシを介して参照渡しの OtherSample のメソッドが実行される。
そうすっと、OtherSampleの参照 の intList に値が追加される。

200:デフォルトの名無しさん
09/02/14 10:13:33
株価ボード的なアプリを作ろうと思っているのですが質問させてください

FormLoad時に動的にLabelを3000個ぐらい生成してるのですが
起動に1~2分ぐらいかかってしまいます。

何か良い方法はないでしょうか?

201:デフォルトの名無しさん
09/02/14 10:17:09
自分で描画しろよ(´・ω・`)

202:デフォルトの名無しさん
09/02/14 10:52:05
XNA使ってスプライトテキストで描画でもいいかも。
その場合はフォームとか使えないけどね。

203:デフォルトの名無しさん
09/02/14 11:01:13
GDIで十分じゃね

204:デフォルトの名無しさん
09/02/14 12:37:57
確かにGDIだけでも十分かな、ダブルバッファを有効にすればアニメーションもある程度滑らかだしね。

205:デフォルトの名無しさん
09/02/14 12:50:24
>200
Windows.Formsでコントロールを大量に作るとどうやってもそうなるよ。
そういう使い方ならWPFで同じことやれば結構スムーズに動きそうな気がする。

206:200
09/02/14 12:59:12
>>201-205
皆さん、どうもです。

VC++(MFC)で過去に作ったときは
CStatic の派生クラスを何個も作ってやってたので
Labelの派生クラスで何とかなるかと思ったら起動が遅くて・・・

ありがとうございました

207:デフォルトの名無しさん
09/02/14 13:03:09
そもそも3000個も表示するスペースがあるのか
一文字一個なのか

208:デフォルトの名無しさん
09/02/14 13:14:08
そりゃスクロールするんだろ…

209:デフォルトの名無しさん
09/02/14 13:23:13
ばらけた文字が集まったりとか盛大にアニメーションしたりして。

画面に表示される分だけプールから取得して再利用するようにすれば、
new()のコストかからないし、3000個も作らなくてすむんじゃない?

WPFでも詳しくはしらないけれど、スクロール可能な場合に画面に表示される部分だけ
子コントロールを生成するような仕組みがあったはず。ListViewとかだっけ?

210:デフォルトの名無しさん
09/02/14 13:28:06
それもバーチャンリストの場合だな

211:デフォルトの名無しさん
09/02/14 13:41:02
ウィンドウハンドルの上限って10000くらいじゃなかったっけ
そんな使い方してたらすぐ足りなく

212:デフォルトの名無しさん
09/02/14 13:43:02
.NET のラベルって、ウィンドウもってんだよな。
デスクトップヒープの関係もあるし、3000は多すぎだろ。

213:デフォルトの名無しさん
09/02/14 13:53:05
WPF なら確かにそういう問題ないけども読み込みに時間は
かかるわなぁ

214:デフォルトの名無しさん
09/02/14 13:53:50
いうほどかかんねえよ

215:200
09/02/14 14:29:58
>207
一画面だけで300銘柄(1銘柄辺り10要素)あるので
3000個必要なんですよね
画面サイズ的にはUXGAで余裕ありです。

データ更新時にデータを適当な形に処理して
Redrawする感じでVC++ではやってました。

216:デフォルトの名無しさん
09/02/14 14:51:40
URLリンク(www.woodensoldier.info)

これをReflector使ってソース出して動かせるようにしたいんですが
できる人いませんか?

217:デフォルトの名無しさん
09/02/14 14:53:43
何が知りたいの?

218:デフォルトの名無しさん
09/02/14 14:55:22
>>216
別に難読化されてるわけでもなく、逆アセできたけど?
何が問題なの?

219:デフォルトの名無しさん
09/02/14 14:58:07
フォームの形つくって、ソースをコピペして貼り付けてっても
エラーで出てしまうんです

220:デフォルトの名無しさん
09/02/14 15:00:00
エラーが出るとこ直していけばいいじゃん・・・

221:デフォルトの名無しさん
09/02/14 15:00:13
そうですか。あなたには無理ですね

222:デフォルトの名無しさん
09/02/14 15:00:23
まんま使えるとは限らんよ
ゴミ君

223:デフォルトの名無しさん
09/02/14 15:00:56
Reflector のプラグインで、.cs を吐いてくれるやつがあったな・・・
それ使えばいいんじゃね?

224:デフォルトの名無しさん
09/02/14 15:01:18
その上でソース作ってくれる人いませんか

225:デフォルトの名無しさん
09/02/14 15:02:55
いません。

226:デフォルトの名無しさん
09/02/14 15:03:24
>>223
kwsk!

227:デフォルトの名無しさん
09/02/14 15:06:15
ぐぐれ

228:デフォルトの名無しさん
09/02/14 15:07:37
なにが「kwsk!」だよw
それ質問する態度じゃねえじゃん
エロマンガの作者名じゃねえんだから、もうちょっと考えろよ

229:赤西仁
09/02/14 15:32:19
1年間悩んでます。お力をお貸しください。

アークザラッドⅡというタイトルのゲームの、ゲーム画像(歩行画像など)を抽出したいのですが、
かれこれ1年ほど経ちますが、なかなかうまくいきません。
*もちろん抽出した画像は個人範囲内で利用するつもりです。

◆試してダメだったこと

 ネット上からダウンロードできる、ありとあらゆる抽出系ツールを試した。
 (ちなみに他のゲームはほとんど抽出可能)

◆教わったこと

 ・アークザラッドⅡは独自の画像形式を使っているから抽出できない。
 ・PS上で表示されてるということは絶対に摘出はできるはず。

◆抽出は不可能ではないということを知ったとき

 2ちゃんねるで質問したところ、
 ある方が実際にキャラクターの歩行画像を抽出して
 私が立てたスレにアップしてくださいました。

スクリーンショットじゃ嫌なんです。どうか皆さん、お力をお貸しください。

230:デフォルトの名無しさん
09/02/14 15:35:43
アークザラッドII って、C# で作られてるの?
そうでなきゃ、スレ違い、ってことで。

231:デフォルトの名無しさん
09/02/14 17:18:47
>>223
ずっと探してるけど見つかりません
お願いします・・・

232:デフォルトの名無しさん
09/02/14 17:21:33
>>231
Reflector のプラグインなんてあまり数ないのに探して見つからないとかありえない。

233:デフォルトの名無しさん
09/02/14 17:22:50
>>231
URLリンク(www.codeplex.com)

234:デフォルトの名無しさん
09/02/14 17:34:22
使い方教えてください
童貞なんでう

235:デフォルトの名無しさん
09/02/14 17:51:58
チョコ食って寝ろ

236:デフォルトの名無しさん
09/02/14 19:36:20
>215
DataGridとかListViewを使った方がいいんじゃない?

237:デフォルトの名無しさん
09/02/14 19:44:37
>>233
はやくこれの使い方教えろよグズども

238:デフォルトの名無しさん
09/02/14 19:59:52
まずパンツを被ります

239:デフォルトの名無しさん
09/02/14 20:06:34
次にズボンを脱ぎます

240:デフォルトの名無しさん
09/02/14 20:24:54
おまえら親切すぐる

241:デフォルトの名無しさん
09/02/14 20:26:52
姉ちゃんのパンツを被ってズボンを脱いだので教えてください

242:デフォルトの名無しさん
09/02/14 20:30:13
ケツをバンバン両手で叩きながら白目をむきます。

243:デフォルトの名無しさん
09/02/14 20:47:51
切れて本当にすみませんでした、教えてくださいお願いします

244:デフォルトの名無しさん
09/02/14 22:14:58
まずは>>241の写真をうpしよう。

245:デフォルトの名無しさん
09/02/14 22:27:33
             __
            /-、r-ヽ
            |K>|K7|
          , へ 人ー^ー人 , へ
        / リノノ||  ̄ 7/巛 _ \
   ,.-― '" ゝー、) ||   .// (/ `  ` ー-、
  /    /_    ||  //    _ \   )
 (__/ ̄   |    ',Y/    /    ̄`ー '
  __     \   ||   /    __
 /XXXX<>x,..、_  l  ハ  | _,... rxXXXXXA
 |XXXX|XXX|::::l` ´ Y   ! '´  l::::|XXX|XXXX|
 |XXXX|XXX|::::|   |  |   |::::|XXX|XXXX|
 XXXX/\Xソ::ノ   ゝ-く     ゝ::ゝ/ lXXXX|

246:デフォルトの名無しさん
09/02/14 23:19:10
コピペ君って馬鹿だな、まで読んだ。

247:デフォルトの名無しさん
09/02/15 00:31:01
>>243
[View]-[Add-Ins]

248:デフォルトの名無しさん
09/02/15 02:29:54
>>241
うpまだ~?

249:デフォルトの名無しさん
09/02/15 04:04:57
       j//      /\ヽ∨//∠ヽ.    \\. \
      _/      ∠≠ニ二ニ≧=<´  ヘ.     ', ヘ\ヽ.      /
 _ -‐ ´/  ,   -‐´、_, '⌒`^  、 \::\ } l     ヽヘ ヽ}     /         _|_ \
   ̄ フ´,  /             丶\::V| |      Vl       ,'             |____
.  //./                   `Vヽl |      ヽ ' .     |         /|    ヽ
  / ,イ/                    Ⅵ/,       ヽ.\   |.   l       (_ノ  _ノ
  |/ /       |               ∨ヘ.      ト、 \_ |.   |
.  /     /  /  l:     /  l           ∨i    、   |  ̄   !  l       lヽ│/ /
  l│  /  イ  ,イ.    l  ト、ヽ     / | :l :|   |  l      |   ヽ_ノ   !ー┼‐ |‐┬
  | |   l_メ、」_,;./l     L  l V   ∧ /  :|/   ハ.  ト、   |          |./│ヽ l  |
  | ト.  |.____ ヽ    l´ヽ{ _⊥イ イ /   /    / l/⌒ヽ   .|  ー┼─ └─ l  |
  | | ヽ | 、i┘::::i  \  | r┬┬‐┬ァ V  ,∧.   ,'  ´       |   ー┼-
  レ   ヽ!  ゝ- '   \l  i,.┘:::::iノ / ,/〉│ :| {         |    _⊥_     l   |
.      7/l/l/   、     `'ー‐ ' ∠≠r'ノ:jノ :| |         |   (__丿 ヽ    レ  |
     λ    `i`ァー-- 、  /l/l/l ∧‐'.:|:::|  ハ ',        |              l
      `、     レ'    ',     ,/| ::| :|:::| ./ ヽ_>      _|   __|_       _ノ
        ` = 、 '、    ノ  ,.イ∧'|:l.:/l:::|´            \    ._|
              `>-r  =ニi´、.,_`::: |:| { |:::l             |  .(_|
          _,.イ´ヽ.7   /  /:\;八:V:ノ                 |    ノ
       /7:::::!  ○O'´  /::::::::/ヽ.  

250:デフォルトの名無しさん
09/02/15 11:57:16
>>247
なぜかできないので、替わりにgenerateしてもらえませんか


251:デフォルトの名無しさん
09/02/15 13:48:11
>>247
それやってexe選んでも何も起こらないんですけど

252:デフォルトの名無しさん
09/02/15 13:52:24
つか、俺の環境だと、アセンブリ右クリックして、Export でいけるな・・・

253:デフォルトの名無しさん
09/02/15 13:59:54
うpお願いします><

254:デフォルトの名無しさん
09/02/15 14:00:57
      ハ,,ハ
     ( ゚ω゚ )  お断りします
    /    \
  ((⊂  )   ノ\つ))
     (_⌒ヽ
      ヽ ヘ }
 ε≡Ξ ノノ `J


255:デフォルトの名無しさん
09/02/15 14:05:10
AlarmTimer\Property.cs
AlarmTimer\FormMain.cs
AlarmTimer\FormOption.cs
AlarmTimer\Properties\Settings.cs
AlarmTimer\Properties\Resources.cs
AlarmTimer.Properties.Resources.resources
AlarmTimer.FormMain.resources
AlarmTimer.FormOption.resources
AlarmTimer.AlarmTimer16Mono.ico
AlarmTimer.AlarmTimer16.ico
AlarmTimer.csproj
0 error(s).
Done.


こう出たんですがどこにエキスポートされてるんですか

256:デフォルトの名無しさん
09/02/15 14:06:57
んで、警告が一個でるけど、exe の方はビルドもOK。
->VS2008 へアップグレード後

・ライブラリは nunit が必要らしいので、逆アセせずに参照設定を変更して利用

簡単にできるじゃん・・・

257:200
09/02/15 14:08:28
DrawString で右寄せとか出来ますか?
株価が左寄せじゃ見にくい・・・

258:デフォルトの名無しさん
09/02/15 14:12:01
>>257
StringAlignment

259:デフォルトの名無しさん
09/02/15 14:16:19
Far

260:デフォルトの名無しさん
09/02/15 14:59:57
>>256
エクスポートできましたが1エラー2警告出てデバック開始してもだめでした・・・

261:デフォルトの名無しさん
09/02/15 15:01:11
>>260
じゃあ、エラーを修正しろよ。つーか、初心者スレ行けハゲ

262:200
09/02/15 22:21:05
>258-259
本当にありがとう、そこがよくわからなくて困ってました
おかげで外観は完成しました。 URLリンク(www.uploda.org)



263:デフォルトの名無しさん
09/02/15 22:23:37
なんとなくすごそう。これ、コントロールはいくつ使ってるの? 全部 DrawString() で描画?

264:デフォルトの名無しさん
09/02/15 22:37:30
WPF使いたくなるな

265:デフォルトの名無しさん
09/02/15 22:43:43
>>262
DataGridView はなんで使わないんだ?

266:デフォルトの名無しさん
09/02/15 22:48:44
でも個人的に好みだな、この外観はw

267:デフォルトの名無しさん
09/02/15 23:36:52
目に優しいな

268:デフォルトの名無しさん
09/02/16 00:51:39
再うっぷ汁(´・ω・`)


269:262
09/02/16 01:46:53
>>263-265
前の方にアドバイス頂いたので全部
DrawStringとFillRectangleとDrawLinesで書きました。
他のはややこしそうだったので・・・

まあ、こっちは意図通りに動いてくれれば
最新技術だろうと枯れた技術だろうと関係ないので
これで満足しています。

>>267
かなり目に・・・ですw
しかし、この色合いがお金を産み出してくれるんで仕方なしです。

270:デフォルトの名無しさん
09/02/16 22:43:08
動画をタグで管理するソフトを作りたいのですが、
タグ情報はどうやって保存するべきでしょうか?
xml?SQLで?その他?

イメージ的にはiTunesみたいな感じです

271:デフォルトの名無しさん
09/02/16 22:45:43
好きにしろよ

272:デフォルトの名無しさん
09/02/16 22:56:43
…検索速度とかバランス考えると組み込み DB がいいんでない。
エクスポートインポート機能ありな前提で。


273:デフォルトの名無しさん
09/02/16 22:58:48
AdobeReaderのdllを使わない、
C#から操作できるロイヤリティフリーな
PDFビューアコントロールでお勧めありませんか?

274:デフォルトの名無しさん
09/02/16 23:04:28
>>262
再ウプして欲しい。


275:デフォルトの名無しさん
09/02/16 23:13:24
何をだよw

276:デフォルトの名無しさん
09/02/16 23:14:10
SSでしょ。俺も404で見れなかった。

277:デフォルトの名無しさん
09/02/16 23:19:51
>>274
ほれ
URLリンク(www.dotup.org)

278:デフォルトの名無しさん
09/02/17 00:52:51
まともにできてるじゃないか。色遣いは別としてw

279:デフォルトの名無しさん
09/02/17 01:16:55
この色遣いはないわ-

280:デフォルトの名無しさん
09/02/17 01:39:04
せめて赤青黄の三色に統一するくらいの気概がないと。

281:デフォルトの名無しさん
09/02/17 01:43:16
創価乙

282:デフォルトの名無しさん
09/02/17 01:44:01
そうか?

283:デフォルトの名無しさん
09/02/17 02:13:40
じゃあ赤黄緑で。

284:デフォルトの名無しさん
09/02/17 02:13:48
大作だな

285:デフォルトの名無しさん
09/02/17 06:46:12
期待してたけどこの色遣いは・・・

286:デフォルトの名無しさん
09/02/17 09:01:41
この色に意味があるんだろう。なれた色で変えたくないとか。

287:デフォルトの名無しさん
09/02/17 09:04:35
あの色は夢で見た神様のお告げらしいよ

288:200
09/02/17 13:44:31
URLリンク(uproda.2ch-library.com)
金融系は ↑=赤、↓=緑 って決まってるからね・・・

ところで、小数2桁まで表示させたい(2 も 2.00 みたいに)とき
そうすればいいのかな? ToString("0.##") じゃだめみたいね。

289:デフォルトの名無しさん
09/02/17 13:46:07
>>288
別に「決まって」はいない
証券会社のツールいろいろ使ってればデフォルトが逆のやつもある
だから色はカスタマイズできるものが多い

290:デフォルトの名無しさん
09/02/17 13:55:24
>>288
"F2"
URLリンク(msdn.microsoft.com)

291:デフォルトの名無しさん
09/02/17 14:30:11
>>288
"0.##"って書いていて、どうして'0'の意味と'#'の意味を知らないのか謎だ。

292:デフォルトの名無しさん
09/02/17 17:32:39
自作クラスにBeginReceiveやBeginReadのような非同期動作のメソッドを加えたいのですが、どのように実装するものでしょう?

293:デフォルトの名無しさん
09/02/17 17:38:14
>>292
TCPの非同期通信したいの?
だったらググレばいっぱい出てくるよ
一言でレスできる内容じゃないし。
ESPして余計なこというとゲームで使うなら
非同期するよりポーリングしたほうがスマート。

294:デフォルトの名無しさん
09/02/17 17:47:06
>>292
非同期メソッド、非同期デリゲートで検索汁

295:デフォルトの名無しさん
09/02/17 17:55:04
>>293.294さん
レスありです

>>293さん、聞き方がまずくてすいません、通信ではなくて非同期に処理させたいんです
いちいちスレッドつくるのもめんどいなあと思って、そういやBeginなんたらとかはどうやって実装してるんだろ?聞いちゃえ、と

>>294さん、あなたがエスパーでよかった、ありがとうございます

296:デフォルトの名無しさん
09/02/17 22:51:10
>>288
URLリンク(uproda.2ch-library.com)

色盲の人が見ると・・・
URLリンク(ranobe.com)
URLリンク(ranobe.com)

297:デフォルトの名無しさん
09/02/17 23:01:12
ウ、ウンコ色!!

298:デフォルトの名無しさん
09/02/17 23:13:33
赤と緑は色盲的に最悪な色使い。全く区別がつかない。
色盲であると告白している小堺一機の
「紅葉が分からない」という言葉によく現れている。
その代わり赤紫と紫の区別はよくつくんだがね。

緑と紫なら色盲の人でもそうでない人でも区別しやすい。

299:デフォルトの名無しさん
09/02/17 23:14:41
赤と緑がわからない って言うけど、その2色は何色に見えるんだろうと思ったことがある

しかし色盲の人のことまで考えるかどうかはさすがに作る人の自由かと

300:デフォルトの名無しさん
09/02/17 23:15:35
>しかし、この色合いがお金を産み出してくれるんで仕方なしです。
から、この色合いが要求仕様なんだろ。
これに文句を言っても仕方がないよ

301:デフォルトの名無しさん
09/02/17 23:16:32
まあ単に個人で作るソフトならそうだわな。
オプションで色盲者のための色使いに切り替えられるようにしておくと優しさを感じるが。

302:デフォルトの名無しさん
09/02/17 23:19:09
>>299
色盲って黄色人種男性の5%、白人男性の8%、黒人男性の4%もいるんだぜ。
日本人男女40人のクラスの1人くらいは色盲ってくらい結構な割合だ。
黒板に赤いチョークで書かれると見辛いって言ってた人はいなかった?
多分その人は色弱か色盲だよ。

303:デフォルトの名無しさん
09/02/17 23:19:41
StreamReader使った後に元のStreamを閉じたくないときは
StreamReaderはDisposeせずに放置していいの?

304:デフォルトの名無しさん
09/02/17 23:21:48
うんそう

305:デフォルトの名無しさん
09/02/17 23:25:49
>>302
で、色盲専用に作り直せっていいたいわけ?

306:デフォルトの名無しさん
09/02/17 23:26:02
そういうとき、Disposeしないことが心配なので、Flushすることにしている。

307:デフォルトの名無しさん
09/02/17 23:26:41
>>305
なんで専用なんだ?

308:デフォルトの名無しさん
09/02/17 23:26:46
StreamReaderそのものはDisposeしちゃってもいいんじゃないの

309:デフォルトの名無しさん
09/02/17 23:28:15
>>307
言い方が悪かったな 訂正する

色盲がわかりやすい色を表示できるように作り直せっていいたいわけ?

310:デフォルトの名無しさん
09/02/17 23:30:08
色盲ネタはいい加減スレ違いだろ・・・

311:デフォルトの名無しさん
09/02/17 23:30:26
>>309
その方が望ましい。
わざわざユーザの幅を狭める利点は無い。

312:デフォルトの名無しさん
09/02/17 23:31:37
>>308
StreamReaderをDisposeしたら元のストリームも一緒に閉じられる

313:デフォルトの名無しさん
09/02/17 23:36:23
>>311
望ましいが、現実には難しいだろうな。
むしろ、OSのユーザ補助機能のレベルで実装すべき

314:デフォルトの名無しさん
09/02/17 23:37:02
>>302
けっこうみんな「みづらい」とは言ってたけどなあw
いつも後ろの席だったからかも知れないけど

315:デフォルトの名無しさん
09/02/17 23:39:15
>>311
お前が作ったいままでのソフトは、全部色盲対応なの?

316:デフォルトの名無しさん
09/02/17 23:41:13
自由に色設定できれば問題ないでしょ。
でも自分専用なら無理にやる必要もないと思うが。

317:デフォルトの名無しさん
09/02/17 23:42:35
なにも色設定しないのが一番

318:デフォルトの名無しさん
09/02/17 23:44:14
見にくいと見えにくいは違うからなぁ
色が見えていて派手で目が疲れるということと、
色そのものが見えなくて困るということは別個

319:デフォルトの名無しさん
09/02/17 23:45:13
いっその事文字も背景も黒でよくね?

320:デフォルトの名無しさん
09/02/17 23:47:01
ソフト自体によって色盲対応の個別の色を設定できるのも問題なんだろうな
だからOSの機能として、既存の色を問題がなく表示する機能を設定すべきなんだよ
ソフトによって赤を青に表示したり、緑に表示したりしちゃったら、利用者に影響が出るだろ?

321:デフォルトの名無しさん
09/02/17 23:49:26
おまいらの理想はよくわかった
だが全部スレ違いだ

322:デフォルトの名無しさん
09/02/17 23:55:20
理想ぐらいかたらせてやれよ

323:デフォルトの名無しさん
09/02/18 00:16:57
>>302
>色盲って黄色人種男性の5%
>日本人男女40人のクラスの1人くらいは色盲
ってことは女性に色盲はいないの?

324:デフォルトの名無しさん
09/02/18 00:19:19
>>323
男性に比べて非常に稀なだけでいることはいる

325:デフォルトの名無しさん
09/02/18 00:30:31
>>323
色盲と色弱がいるからな
完全な色盲だともっと低い

そんなの考えなくていいレベル
もちろんあれば便利だが

326:200
09/02/18 00:38:43
>>289
素人用のツールはそうかもね
>>290
ありがとう、マジ助かりました

327:デフォルトの名無しさん
09/02/18 00:44:11
URLリンク(www.microsoft.com)

このリンクのMSDN Library for Visual Studio 2005がダウンロードできなくなってるんだけど、
どこに引っ越したか知ってる人いる?
Windwos2000の再インストール後に見つからなくて困ってるのでよろしくお願いします

328:デフォルトの名無しさん
09/02/18 00:48:38
お前ら何で大騒ぎしてんの?

>>323
色覚異常はX染色体で遺伝する。
だからX染色体を1つしか持たない男性(XY)に多く、2つ持ってる女性(XX)に少ない。
500人に1人ぐらいの割合

329:323
09/02/18 01:01:01
>>324-325、>>328
そうなんだ。知らなかった。

  ┏┳┳┓   ハイ      ┏┳┳┓
┏┫┃┃┃   スレ違いは  ┃┃┃┣┓
┃┃┃┃┣┓  ここまで ┏┫┃┃┃┃
┃      ┃┃┏━━┓┃┃      ┃
┃スレ違い ┣┫*・∀・*┣┫. STOP!┃
┗━━┛┗┳━┳┛┗━━┛
            ┏┻┓┃
        ┏━┛  ┣┻┓
        ┗━━┫  ┗━┓
                ┗━━┛

330:デフォルトの名無しさん
09/02/18 01:03:58
素人用のツール(笑)

331:デフォルトの名無しさん
09/02/18 01:04:22
>>327
Visual Studio 2005 は既に販売が終了している製品なので
それに連動して公開停止になったのかも

今は以下が最新版
MSDN Library for Visual Studio 2008 SP1 (2008年12月更新版)

あと、MSDN Subscription に加入すれば過去のバージョンは
一通り入手できるハズ

332:デフォルトの名無しさん
09/02/18 01:05:39
>>328
劣性遺伝なの?

333:デフォルトの名無しさん
09/02/18 01:07:04
伴性劣性遺伝ってやつだな

334:デフォルトの名無しさん
09/02/18 01:08:26
なんで色盲・色弱にそんなにこだわるんだ?

普通に考えて、カスタマイズの余地皆無だったら
誰にとっても使いにくくなる可能性はあるだろ。
ユーザ=制作者のみってのでも無い限り

335:デフォルトの名無しさん
09/02/18 01:17:24
>普通に考えて、カスタマイズの余地皆無だったら
>誰にとっても使いにくくなる可能性はあるだろ。
んなこといったら、あらゆるすべての設定値を備えなければならないじゃん。
毎晩24時にbeep音を鳴らして寝ることを促す設定がないと、
それを必要とする人には使いにくいってーことになる。

そもそも万人向けにオプションの設定項目を多くするということは、
設定項目が多すぎて煩雑になるという点において万人向けでなくなる。

336:デフォルトの名無しさん
09/02/18 01:22:11
>>335
どうせ分かってて言ってんだろ?
アホか

337:デフォルトの名無しさん
09/02/18 01:38:18
韓国語表示がないのはウリナラへの差別ニダ!

338:デフォルトの名無しさん
09/02/18 02:05:00
設定なんて無くても
赤と緑じゃなく赤紫と緑にするだけで解決する問題なのに
なんでそんなに抵抗あるのかね?

339:デフォルトの名無しさん
09/02/18 02:05:54
サイケデリックはプロ用ツールの証ですw

340:デフォルトの名無しさん
09/02/18 02:35:21
>>338
それをする必要があるのかっていう問題じゃないの?

341:デフォルトの名無しさん
09/02/18 02:43:41
もともとの指摘も、色盲の人にとって、ではなくセンスがない色遣いだという点が主だったはず。
おそらく、赤紫と緑にしても、センスのなさそうなデザインであることは変わらないだろうから、
変えるのは無意味だと思う。

342:デフォルトの名無しさん
09/02/18 02:57:51
お前らが超ハイセンスなのは分かったからそろそろ黙って下さいませんかねこのやろう

343:デフォルトの名無しさん
09/02/18 03:00:36
センスとか以前に株とかで儲けやすいようなプログラムを作ってる奴に嫉妬してるだけじゃねえの
うひょひょ

344:デフォルトの名無しさん
09/02/18 03:06:45
おおかた343で図星ってところだろう

345:デフォルトの名無しさん
09/02/18 04:33:34
>>627
このあたりかな
URLリンク(support.microsoft.com)

ファイル以外のストリームには言及がないのでなんともいえないけど
少なくともファイルは特別に意識していて、ファイルから生成した
ストリームについてはそれを破棄するとイメージにアクセスできなくなるのが
仕様みたい

346:345
09/02/18 04:34:50
すみません
>>345は誤爆です

347:デフォルトの名無しさん
09/02/18 07:12:31
>>340
お前が思っているより色盲の人は遥かに多いから必要だ。

348:デフォルトの名無しさん
09/02/18 07:18:48
あほみたいに、いつまで青い議論を続けてるんだ。
単なる証券屋店頭の電光掲示板へのオマージュだろあれは。
俺的には文字の真ん中に切れ目のあるパネルがパタパタ音を立てて
回転するタイプのコントロールが欲しいな。

349:デフォルトの名無しさん
09/02/18 07:26:44
WPFのViewport3Dとストーリーボードアニメーションの出番だな。さあリッチインタフェースを
追求するんだ。

350:デフォルトの名無しさん
09/02/18 07:39:43
注文すると、発注内容書いた手紙が取引所まで3Dで飛んでいって届いたら実際に発注されるってどうよ。

351:デフォルトの名無しさん
09/02/18 10:58:31
>>348
俺も欲しい・・・


352:デフォルトの名無しさん
09/02/18 13:30:06
>>350
間違えて疑似嫁のデータを送ってしまうわけですね、わかります。

353:デフォルトの名無しさん
09/02/18 13:33:01
デシリアライズされるときコンストラク呼び出されないけれど同じようにユーザーコードからコンストラク呼び出しなしで生成すること可能?

354:デフォルトの名無しさん
09/02/18 13:35:43
>>353
エスパーしてみるけど
デシリアライズされた時点でオブジェクトのインスタンスは生成されてるんじゃないのか?

355:デフォルトの名無しさん
09/02/18 15:29:45
すまん、説明が悪かった。インスタンスは生成されるんだがコンストラクタは呼び出されないてない。
同じようにコンストラクタ通さずインスタンスだけ生成したいんです。

356:デフォルトの名無しさん
09/02/18 15:36:28
シリアライズされたオブジェクトファイルを自分で記述してデシリアライズすればいいんじゃね?

357:デフォルトの名無しさん
09/02/18 15:40:43
コンストラクタのオーバーロードでも作ってみるとか?
こんなん逃げじゃアカンかな・・・?(;´∀`)

public AAA()
{
 初期化();
}

public AAA(bool isIniti)
{
 if(isIniti == true)
  {
   初期化();
  }
}

private void 初期化()
{ほげ}

というか、コンストラクタに何も書かずに
コンストラクタみたいな感じの処理が
必要な時にSetInitializeみたいな関数作って呼ぶようにしたらダメなんだろうか…

358:デフォルトの名無しさん
09/02/18 15:41:46
いや、すでに独自のシリアライズのような仕組みがを実装していて、コンストラクタを呼ばないですむならそうしたいなと。

359:デフォルトの名無しさん
09/02/18 16:12:59
コピーコンストラクタの一種と思えば

360:デフォルトの名無しさん
09/02/18 17:05:59
>>347
なんで個人用ソフトでそんな対策する必要あるの?

361:デフォルトの名無しさん
09/02/18 18:38:57
あちらの素人馴れ合いスレで聞いても誰も答えてくれなかったのでこちらで質問させていただきます。

Microsoft.Samles名前空間以下のモジュールって自作アプリに組み込んで配布してもライセンス違反にならないでしょうか?

362:デフォルトの名無しさん
09/02/18 18:46:54
>>348
たまに裏返ったら擬似嫁が出てきて、
あわてるアニメーション後、また裏返って正しい表示に変わるやつが欲しいぜ!

363:デフォルトの名無しさん
09/02/18 19:09:26
>>362
自分で作れ

364:デフォルトの名無しさん
09/02/18 19:47:00
>>361
なりま

365:デフォルトの名無しさん
09/02/18 20:35:06
>>364

ありがとう。知らんなら黙っててください。

366:デフォルトの名無しさん
09/02/18 20:37:36
>>361
あー大丈夫だいじょーぶホント―にだいじょーぶw

367:デフォルトの名無しさん
09/02/18 20:43:44
>>361 こんなところに聞きにくるくらいなら自分で調べろ

368:デフォルトの名無しさん
09/02/18 20:54:53
>>365
黙りま

369:デフォルトの名無しさん
09/02/18 21:33:36
ここも素人ばかりですね
無駄口きいてないで少しは勉強したらどうですか?

370:デフォルトの名無しさん
09/02/18 21:37:21
匿名性の弊害

371:デフォルトの名無しさん
09/02/18 21:42:49
そもそもそんな大事なことをここで聞くな。
嘘だったらどうするんだ。
本家本元マイクロソフトさんに聞けばいいだろうに。

372:マイクロソフト
09/02/18 21:48:31
漏れも(゚⊿゚)ワカンネ

373:デフォルトの名無しさん
09/02/18 21:51:34
Microsoft.Samples 名前空間すべてを対象にした EULA、なんてものはない。
ということで、各サンプルの EULA に従う必要がある。

374:デフォルトの名無しさん
09/02/18 23:36:34
ぶつからないようにわざわざ名前付けてるのに
同じ名前付けてどうすんだよ

375:デフォルトの名無しさん
09/02/18 23:41:30
>>367
それ言い出したらム板の存在価値が・・

376:デフォルトの名無しさん
09/02/18 23:47:59
まぁでも、ライセンス関係は配布元に直接聞くほうが確実だしな。

377:デフォルトの名無しさん
09/02/18 23:54:43
訴えられた後だと遅いしね

378:デフォルトの名無しさん
09/02/19 00:11:45
すいません、ジェネリックに関しての質問です。

    public struct V2<T>{
        public T x;
        public T y;

        public V2( T x_, T y_ ){
            x = x_;
            y = y_;
        }

        public void Add( V2<T> v_){
            x += v_.x;
            y += v_.y;
        }
    }

このような構造体を作りたいのですが、Addメソッド内の
x、yそれぞれ加算しているところでコンパイルエラーとなってしまいます。

エラーの文言としては下記のものが出力されました。
「演算子 '+=' を 'T' と 'T' 型のオペランドに適用することはできません。」

これはTにどのようなものが指定されるか不明なので、
+=演算子が必ずしも使えない、よってこれをエラーとする。

このような理由でエラーが出ているのでしょうか?

また、宜しければ解決方法がございましたらお教えいただけたらうれしいです。

379:デフォルトの名無しさん
09/02/19 00:13:58
現スレの過去レスくらいは読め
>>145-177あたり参照


380:378
09/02/19 00:19:42
すいませんでした、早速読んできます。

381:デフォルトの名無しさん
09/02/19 00:27:14
その辺F#は華麗に実現できるのでまじお勧め

382:デフォルトの名無しさん
09/02/19 00:34:10
F#知らないんだけどどうやって実現してるの?
結局のところ,CLRで動かす以上は
・DynamicMethodを使ったコード動的生成やリフレクションなどによって動的に
・C++みたいにテキスト的に
の二つしか方法はないはずだけどどちらも華麗とは思えない

383:デフォルトの名無しさん
09/02/19 00:42:26
動的言語向けにCLRを拡張するんだよ。

384:デフォルトの名無しさん
09/02/19 00:47:14
DLRのことを言ってるなら,あれはCLRを拡張してるんじゃなくて
CLRの既存の機能を使用した単なるクラスライブラリにすぎないよ
>>382の上の方法に帰着する

385:デフォルトの名無しさん
09/02/19 08:05:50
今、F# をちょっと試してみたけど、型推論してるだけだな。

コマンドラインの方は触ってないけど、Visual F# で試したら、
全然動的なことしてなかった。


386:デフォルトの名無しさん
09/02/19 08:08:14
F#はちゃんとTに足し算させられるの?

387:デフォルトの名無しさん
09/02/19 08:15:32
手元にある F# の本の、ContentsとIndexをざっと眺めてみたけど、
ジェネリックス自体どこにもない。

>>381 に詳細聞きたい。

388:デフォルトの名無しさん
09/02/19 10:51:25
基本的にはOCamlだから文法上の静的型付けで解決するのでって話だと思ってたけど
それともF#はILのジェネリクスを使うように拡張されてる?
だとしたら同じくエラーになる気がする

389:デフォルトの名無しさん
09/02/19 14:23:06
System.Windows.Controls.TextBoxを160個並べて0.2秒に一回、Textに文字列を入れてるんですが
ときどきアプリ全体が劇重になってしまいます
Textに文字列を入れる部分だけコメントアウトすると重くなりません
これを回避する方法はあるでしょうか?
TextBoxを使ってると諦めるしかないのでしょうか?

390:デフォルトの名無しさん
09/02/19 14:32:53
非同期でぐぐれ

391:デフォルトの名無しさん
09/02/19 14:36:50
非同期処理してます

392:デフォルトの名無しさん
09/02/19 14:46:11
GCの影響?

393:デフォルトの名無しさん
09/02/19 16:00:15
InvokeではなくBeginInvoke使ってみるといいんじゃね?


394:デフォルトの名無しさん
09/02/19 16:29:43
TextBoxは重量級のコントロールだから160も並べたらそういうこともあるだろうな。
Labelじゃだめなん?

395:デフォルトの名無しさん
09/02/19 16:59:09
上のほうでも出てるけど、文字の出力だけでいいなら
LabelかGDIでいんじゃない?

396:デフォルトの名無しさん
09/02/19 17:28:35
Labelに変えたらスムースに動作するようになりました
ありがとうございました

でも右寄せ表示する方法が分からない
困った

397:デフォルトの名無しさん
09/02/19 17:41:09
AutoSizeをfalseにしてTextAlignでいけない?

398:デフォルトの名無しさん
09/02/19 17:47:12
右寄せの方法みつかった
Style style = new Style(typeof(ListBoxItem));
style.Setters.Add(new Setter(ListBoxItem.HorizontalContentAlignmentProperty,
HorizontalAlignment.Stretch));

ほんとWPFわけわからん
みなさん、ありがとうございました~

399:デフォルトの名無しさん
09/02/19 17:56:58
WPFかよ
プロパティでデザイン時にも指定できるからそこからわかるべ。

400:デフォルトの名無しさん
09/02/19 18:13:17
そもそもItemsControlとか使ってバインディング
コードからコントロール生成しない
データソースを変更すれば勝手に表示が変わる

ってのがWPFの方向性

401:デフォルトの名無しさん
09/02/19 19:58:01
ADOとベタベタ

402:デフォルトの名無しさん
09/02/19 22:30:16
WPFで文字表示するだけならLabelよりもTextBlockのほうが軽いよ

403:デフォルトの名無しさん
09/02/19 23:06:40
ありがとうございます
さっそく修正しました

404:デフォルトの名無しさん
09/02/20 08:59:24
結構みんなWPF使ってるものなの?

405:デフォルトの名無しさん
09/02/20 09:10:51
使われてないよ

406:デフォルトの名無しさん
09/02/20 09:39:04
デフォルトのスタックサイズを変更するにはどうすればいいですか?

407:デフォルトの名無しさん
09/02/20 09:58:52
変更しなくていいよ

408:デフォルトの名無しさん
09/02/20 12:08:48
わろたww

409:デフォルトの名無しさん
09/02/20 12:15:21
わらわなくていいよ

410:デフォルトの名無しさん
09/02/20 12:25:07
吹いたw

411:デフォルトの名無しさん
09/02/20 13:06:39
汚いから拭いとけよ

412:デフォルトの名無しさん
09/02/20 13:08:07
いっぱい釣れたぜ
ショボン

413:デフォルトの名無しさん
09/02/20 16:35:13
キャッチしたらリリースしとけよ

414:デフォルトの名無しさん
09/02/20 20:20:11
海外の掲示板で質問したらすぐに答えがもらえました
ここの馬鹿な人たちとは大違いですね^^;
もう2度と来ません
ノシ

415:デフォルトの名無しさん
09/02/20 20:21:40
おまえだれ?

416:デフォルトの名無しさん
09/02/20 20:45:20
おれおれ

417:デフォルトの名無しさん
09/02/20 20:46:23
>>406
とりあえず、リンカで。

418:デフォルトの名無しさん
09/02/20 21:57:44
シェイラのそっくりさん?

419:デフォルトの名無しさん
09/02/20 22:09:09
>>417
根中 千恵子?

420:デフォルトの名無しさん
09/02/20 22:54:17
海外の掲示板に質問書き込むスキルはあるのにググるスキルはなかったのか・・・

421:デフォルトの名無しさん
09/02/21 00:52:53
この国の人ではないのかもしれん罠

422:デフォルトの名無しさん
09/02/21 01:30:42
つまり海外って日本のことか

423:デフォルトの名無しさん
09/02/21 01:32:33
2chを一つの国と考えてるかも試練

424:デフォルトの名無しさん
09/02/21 18:22:55
C#で省略可能引数の既定値を指定する方法はありますか?
[opt]属性はOptionalAttributeを付けることで付けられるようですが

425:デフォルトの名無しさん
09/02/21 18:27:51
引数のないメソッドでオーバーロードすればいいんでないの?

426:デフォルトの名無しさん
09/02/21 18:29:44
>>424
(1) 素直にオーバーロードを使う
(2) 引数をNullableにする

427:デフォルトの名無しさん
09/02/21 18:35:19
C#4.0をじっと待つ

428:424
09/02/21 18:43:53
省略可能引数をC#で使いたいわけではなくて,
VBで省略可能引数にしたときの既定値のメタデータを付けたいだけなんです
リフレクションで既定値の取得もできるみたいですがやっぱり設定するのは無理なんですかね

429:デフォルトの名無しさん
09/02/21 18:53:19
いや言ってる意味が。。

430:423
09/02/21 18:58:41
ごめんなさい
VBで省略可能引数の既定値を設定した場合,
既定値の情報はメタデータとしてメソッドに付加されます。
それと同じ形式のメタデータをC#で付けたいということです。
具体的にはこういうILです
.param [1] = "既定値"

431:デフォルトの名無しさん
09/02/21 19:08:08
リフレクタで言語をC#にして見てみたらどんな属性を付与しているのか分かるのでは?

432:デフォルトの名無しさん
09/02/21 19:12:59
URLリンク(msdn.microsoft.com)
これとか違うの?

433:424
09/02/21 19:18:01
>>432
[Optional, DefaultParameterValue("既定値")]でうまくいきました
ありがとうございます

434:432
09/02/21 19:19:19
URLリンク(stackoverflow.com)
正解っぽい。

435:デフォルトの名無しさん
09/02/21 19:21:30
あ、解決済みか。
これやってもC#で省略可能引数が使えるわけじゃないみたいね。
でも、アセンブリをVBから呼び出す時には省略可能になる引数を持つメソッドを
C#で定義できるのは興味深い。

436:デフォルトの名無しさん
09/02/21 23:35:48
逆の例もあるよ。
outはVBにないけど、Out属性付きのByRef引数はC#からout引数として扱われるというもの。

437:435
09/02/21 23:40:52
あーなるほど、ByRefだけだとref引数扱いになるのか。

438:デフォルトの名無しさん
09/02/22 01:49:55
4.0の動的型付け変数と、3.0の暗黙的型付けって、どういうときべんりなの?
大幅に労力が削減されるような利用法が思い浮かばないんだけど。

439:デフォルトの名無しさん
09/02/22 02:02:04
>>438
リフレクションやComInterop、やDLR対応の動的言語と相互運用する場合かな。
いろいろdymamicに期待してる人が要るけど、
dynamic型同士で + - * / などの演算はサポートされていないから、
プリミティブ型をdynamicにするのはナンセンス。


440:デフォルトの名無しさん
09/02/22 02:12:30
>>439
多言語との相互運用という趣旨ならわかるけど、
静的言語として、こういうのを許容しちゃうのって、どうなんだろう
コンパイル時にはエラーにならなくて、実行時にしかエラーにならないんでしょ?

暗黙型付けも、自分で型をしっかり宣言して、それで使うということで、
ユーザの思い込みの余地を減らすことが大事ということで
静的言語のメリットがあると思ってたんだけど、
なんか曖昧的なものを受け入れるような気がしていやな感じがする。

441:デフォルトの名無しさん
09/02/22 02:18:27
いやなのは使わなきゃいいだけ。


442:デフォルトの名無しさん
09/02/22 02:23:28
使わなきゃいいって言われても、
自分だけで成り立つ世界じゃないからなぁ
嫌でも他人のソースを見ることになるわけで

443:デフォルトの名無しさん
09/02/22 02:32:26
ヘジの言葉送ってやるよ。
「静的な型として動的な型を導入するんだ」

機能的には相互運用、さらに相互運用。プレゼンも基本それしか
出てこない。動的型前提な言語との相互運用、ライブラリを使う
ときに死ぬるんだよ現状。
しかも JavaScript だの IronPython だの DLR だの利用ケースが
増えていってやがる。

そういや雑談な話になるんだが、コンポーネントモデル周りは
ほとんど動的な要素で構成されてるよな。
なんでいまさら動的だからどうこうとかなるんだろうな

444:デフォルトの名無しさん
09/02/22 02:34:54
今までだって動的なことできたわけでそれが楽になるだけ
C#はそんなに強い静的型付け言語じゃない

445:デフォルトの名無しさん
09/02/22 02:49:43
そもそも相互運用するのが間違ってないか?
他方の言語は相互運用のために拡張して、他方の制限はない?
C#のいいところが失われているような気がするよ。

446:デフォルトの名無しさん
09/02/22 02:58:36
糊言語に何をいまさら。
あとせっかく DLR で「汎用的な」動的型システムつくってくれる
んだから乗らん手はないし


447:デフォルトの名無しさん
09/02/22 03:02:18
.NET使っておきながら動的はよくないやら相互運用が間違ってるやら

448:デフォルトの名無しさん
09/02/22 03:08:32
それ結果論でしょ
動的言語をnetで使うためのものがDLRなんだから

449:デフォルトの名無しさん
09/02/22 03:17:38
C#やjavaが複雑になって、新しい言語のダージリンdarjeelingができるわけですね
んで、それに対抗してC♭が開発されるわけです

それらの言語は多言語(特にC#)との相互運用性のために、
動的型型付けが導入されていきました。

そしてその間、ロシアはc++を使い続けました。

450:デフォルトの名無しさん
09/02/22 03:27:31
var i = Class;
とかユーザ定義変換とかどうなるんだろ
あと、var j 、Class.Method(out j);とかあったらjは何型?

451:デフォルトの名無しさん
09/02/22 03:38:28
>>450
コンパイルエラー

452:デフォルトの名無しさん
09/02/22 03:40:34
>>449
個人的にヘジの言語設計者としてのすごいところは
ゴチャゴチャ要素を詰め込みまくって許容範囲内に
纏め上げる才能だと思う。

>>450
型システムとしては大きく変わらん。だからそれらはどれも
今までと同じように通らない。
簡単に言うと新しい dynamic 型という「静的型」が導入される
感じ。こいつはディスパッチ周りが特殊に扱われる。

453:デフォルトの名無しさん
09/02/22 03:48:47
んで、後世に残るのは彼の手を離れたObjectPascalなんだろうな

454:デフォルトの名無しさん
09/02/22 03:53:19
Option Explicit OFF Strict OFF/Infer OFFモードのVBも
dynamic対応してくれるのだろうか。
今は毎回律儀にリフレクション使ってるから遅くて遅くて。


455:デフォルトの名無しさん
09/02/22 03:57:59
vbならどうだっていいでしょ なにやったって


456:デフォルトの名無しさん
09/02/22 04:05:00
>>452
ごちゃごちゃ要素を詰めまくって、
複雑になった分の学習に必要な非生産性と、
複雑になった分の楽できるコーディングや設計による生産性の向上を比較したら、
どっちがどうなんだろう

学習はともかく、通常と比較したら生産性はどんだけあがんだろ

457:デフォルトの名無しさん
09/02/22 04:34:42
心配は分かるがvarにしろdynamicにしろ絶妙にコントロールされてて、
想定以外の使い方をされないような工夫はしっかり施されている。
もしdynamicで四則演算の演算子が使えたり、
varがメンバやプロパティで使えたらそういう心配するような状態になるだろう。

458:デフォルトの名無しさん
09/02/22 04:41:15
演算子のオーバーロードで崩壊してるじゃん
足し算なのに引き算とか可能だし (;゚д゚)ァ....

459:デフォルトの名無しさん
09/02/22 04:44:40
gotoと同じく演算子のオーバーロードの乱用などは文法的に抑制しなくても、
常識的なプログラマーなら分かってるよね?といった風に信用してくれてる部分もある。
実際乱用されてるかい?
そういった部分も含めて絶妙と評価している。

460:デフォルトの名無しさん
09/02/22 04:46:51
gotoはifだったりでけっこうできるけど
演算子は無いと面倒くさいJavaやってたからかな~

461:デフォルトの名無しさん
09/02/22 04:53:45
信用、常識をプログラマーの運用に求めるなら、そもそも静的型付けである必要がないだろ
なにいってんだ?

462:デフォルトの名無しさん
09/02/22 04:59:06
何が常識かは人によって違うからな
そのための強制約と考えるのは普通たよな

463:デフォルトの名無しさん
09/02/22 05:06:19
だからさじ加減が絶妙といってるのさ

464:デフォルトの名無しさん
09/02/22 05:09:16
>>459
つかまぁ、3.0 の丁寧な仕事といい社内で使いまくって叩いた上
出てくるんだろうなって感じがするよな


465:デフォルトの名無しさん
09/02/22 05:33:38
そしてmultiple宣言をしたclassには多重継承が許可されます
c++との相互運用のために

その中では、ポインタの使用も可能です
c++との相互運用のために

代入演算子のオーバーロードも可能にし、
いまではc++と同じ実装になっていますが、問題は発生していません
なぜならみんなが常識的なプログラマなので乱用されてはいないからです。

めでたしめでたし

466:デフォルトの名無しさん
09/02/22 05:37:12
名文なので、さらしあげ

467:デフォルトの名無しさん
09/02/22 05:45:48
代入演算子はキャストで良いだろ

468:デフォルトの名無しさん
09/02/22 11:11:03
>>457
dynamicはインデクサも演算子もinvoke式もなんでもアリだよ

469:デフォルトの名無しさん
09/02/22 11:26:43
ソースきぼう

470:デフォルトの名無しさん
09/02/22 11:29:54
URLリンク(code.msdn.microsoft.com)
ここでダウンロードできるNew Features in C# 4.0

471:デフォルトの名無しさん
09/02/22 11:33:57
とりあえずC#にほしいもの。
・多重継承orMixin
・friend
・C++ばりの変態テンプレート
・Lispばりのマクロ

472:デフォルトの名無しさん
09/02/22 11:35:02
ありがとん、読んでみる


473:デフォルトの名無しさん
09/02/22 11:38:14
dynamic<IHoge> hoge =
 IHogeを実装してないけどHogeという名前のメソッドを実装してる型のオブジェクト;
hoge.Hoge();
どうせならこんな感じでダックタイピングできるようにしちゃえばよかったのに

474:デフォルトの名無しさん
09/02/22 11:52:17
>>468
これのことですな。
>dynamic d = GetDynamicObject(…);
>int i = d + 3; // calling operators

出来ないといったのは正確ではなかったので訂正する。
OKのパターン
dynamic d = "abc"; string i = d + "xxx"; // "xxx"のstringが+オペレータを持っている。

NGのパターン
dynamic d = 10; int i = d + 3; // integerはプリミティブなので+オペレータを持ってない
dynamic d = "abc"; dynamic d2 = "XYZ"; string i = d + d2; // dynamic同士の演算



475:デフォルトの名無しさん
09/02/22 11:59:20
>dynamic d = 10; int i = d + 3;
これがなんでNGなのかわからない
>>470のドキュメントによると,コンパイルは通るはずだよね
実行時にエラーになるってこと?
試せないけど,今のExpression Treeの仕様から類推すると大丈夫そうな気がするんだが
あとStringの+は演算子オーバーロードじゃなくて言語組み込みだよ

476:デフォルトの名無しさん
09/02/22 12:00:56
>>474
ちと保留、これだと下の説明が付かないですね。
>dynamic d = GetDynamicObject(…); 
>int i = d + 3; // calling operators 

DynamicObjectが+オペレータをサポートしていれば大丈夫なのか。
それともCTPではまだ未実装の機能なのか。
うむむ・・

477:デフォルトの名無しさん
09/02/22 12:03:32
スレチ

478:デフォルトの名無しさん
09/02/22 13:54:58
なんか、「善意の人間がミスを犯しにくいようなしくみを工夫すること」と、
「悪意の人間の犯罪行為を防止すること」の区別がつかない人が2人ぐらいいるなw

479:デフォルトの名無しさん
09/02/22 14:01:52
この辺は難しいよね。
馬鹿基準に合わせると天才の要求仕様に満たなくなる。自分としては自由度を高めて使う側のスキルアップを要求する方がいい時も多々あるけれど

480:デフォルトの名無しさん
09/02/22 16:24:50
そこで複雑になったC#に変わり、Darjeelingの登場ですよ
Sun様おながいします

481:デフォルトの名無しさん
09/02/22 16:38:39
javaはjava teaではなくてjava coffeeが由来とされてるから、名前を付けるならTorajaがいいと思う。

482:デフォルトの名無しさん
09/02/22 16:44:42
javaの場合はscalaがはっちゃけてるからそっち行く可能性はあるかも。
.NETはC#自身がはっちゃけてるからな。他の言語はニッチ狙いなのがおおいな。booとかF#とか。

483:デフォルトの名無しさん
09/02/22 19:26:02
>>475-476
その話、英語のフィードバックサイトで出てたけど、
現CTP版では “まだ” できないって話だったと思う。

484:デフォルトの名無しさん
09/02/23 01:41:29
>>482
まぁScalaは使ってみると「うーん」という感じが否めないけどな。
JavaやC#に比べると、細かい部分で文法に無理が出まくってる。

やっぱりなんだかんだ言っても言語設計者のセンスって大事だなと思う。

スレチすまん

485:デフォルトの名無しさん
09/02/23 16:22:55
ウイルスバスターみたいに1PC1ライセンスみたいな感じの
個別認証をやりたいんですけど、どんなふうに実装するのが
いいんでしょ…?


486:デフォルトの名無しさん
09/02/23 16:52:17
ネット使ってサーバにアクティベーションするしかないんじゃないの?

487:デフォルトの名無しさん
09/02/23 16:54:34
>>485
「みたい」の指すところが全然分からん。
まずは要件定義とは何かを知ることから始めよう。

488:デフォルトの名無しさん
09/02/23 23:05:45
MACアドレスに対して認証キーを発行とかすればいいんじゃない。

489:デフォルトの名無しさん
09/02/23 23:36:40
簡単なファイラーを作っていて
Windows Vistaなどの検索ボックスのように、
スペースで区切ったキーワードにヒットするファイルの一覧を取得したいのですが、
何かスマート(簡単な)方法はないでしょうか?

今のところ、ファイル名に対して、
スペースで区切られたキーワードの数だけstring.containsを行うくらいしか思いつかないんですが、
この方法だと大量のファイルがあった場合に処理が遅くなってしまうと思うので。
# どんな方法でもファイル数が多ければ多いほど時間は掛かると思いますが、もう少し高速に行える方法があればと考えています。

490:デフォルトの名無しさん
09/02/23 23:49:07
>>489
正規表現をコンパイルしたら速いんじゃないか?知らんけどな
Regex.Match(input, "AAA|BBB|CCC", RegexOptions.IgnoreCase | RegexOptions.Compiled);

491:デフォルトの名無しさん
09/02/23 23:52:32
入力内容は毎回変わるのにその正規表現をコンパイルしたら
検索のたびにメモリを食って解放されなくなるぞ

492:デフォルトの名無しさん
09/02/24 00:01:52
ファイル数なんてどんなに多めに見積もっても百万のオーダーとかじゃないのかな?
だとしたらベタにやっても抽出する処理そのものには1秒掛からないんじゃないか。
むしろボトルネックは言うまでもないんだろうけどディスクアクセスって気がする。

493:デフォルトの名無しさん
09/02/24 00:11:15
index seviceを使う。

494:デフォルトの名無しさん
09/02/24 00:23:49
>>490-493
皆様ありがとうございます。

>>492
なるほど。
一度試してみてパフォーマンスをみることにします。

>>493
そんな方法があったとは思いつきませんでした。
軽くググってみると
URLリンク(209.85.175.132)
確かに…、少し調べてみようと思います。

495:デフォルトの名無しさん
09/02/24 00:37:43
インデックスサービスってWindowsにある程度詳しいユーザはたいがい止めてるよ

496:デフォルトの名無しさん
09/02/24 00:51:30
api公開されてアプリケーションから使えるあまり素性が怪しくない無料のエンジンって言うと選択肢それぐらいしかないんじゃない?

497:デフォルトの名無しさん
09/02/24 07:31:14
ジェネリックコレクションの保存ってどうしたらいいんですか?

public class MyList<T> : List<T>
{
 public void Load(string fileName)
 {
  using (Stream stream = new FileStream(fileName, FileMode.Create))
  {
   using (BinaryWriter writer = new BinaryWriter(stream))
   {
    foreach (T item in this)
    {
     writer.Write(item);//コンパイルエラー
    }
   }
  }
 }
}

498:デフォルトの名無しさん
09/02/24 07:34:50
シリアライザ

499:デフォルトの名無しさん
09/02/24 07:34:52
>>497の補足
使いたいTはintやlongやdoubleなどの値型だけです。

500:デフォルトの名無しさん
09/02/24 07:40:15
typeidでわけるしかない。

501:デフォルトの名無しさん
09/02/24 07:56:44
おかげで道がひらけました
ありがとうございます

502:デフォルトの名無しさん
09/02/24 08:14:30
>>497
無理やりだけど、

var write = typeof(BinaryWriter).GetMethod("Write", new[] { typeof(T) });
write.Invoke(writer, new object[] { value });


503:デフォルトの名無しさん
09/02/24 08:24:47
LoadでWrite

504:デフォルトの名無しさん
09/02/24 11:45:19
XmlSerializer使えよ

public void Save<T>(List<T> list)
{
byte[] bytes;
using (MemoryStream ms = new MemoryStream(0x10000))
{
new XmlSerializer(typeof(List<T).Serialize(ms, list);
bytes = ms.ToArray();
}

using (Stream stream = new FileStream(fileName, FileMode.Create))
using (BinaryWriter writer = new BinaryWriter(stream))
{
writer.Write(bytes);
}
}

505:デフォルトの名無しさん
09/02/24 17:24:53
>>497
Loadで保存w

506:デフォルトの名無しさん
09/02/24 18:45:49
>>502が簡単でよさそうだがBinaryReaderでもやろうとすると面倒だな
なんでreadとwriteでこんなにも非対称なコードになるんだ

507:デフォルトの名無しさん
09/02/24 18:49:31
objectで返したらボックス化が発生するからな
標準のライブラリでRead<T>//(注)プリミティブ型のみ
なんて素人臭いことするわけにもいかないし

508:デフォルトの名無しさん
09/02/24 18:56:57
プリミティブ型じゃなくても、そんな大げさにならずに簡単にできるの?

509:デフォルトの名無しさん
09/02/24 19:11:28
参照型のフィールドを含まない構造体限定なら
Marshal.StructureToPtrみたいな外道な方法を用いれば簡単にできる

510:デフォルトの名無しさん
09/02/24 19:13:19
ふんじゃあ、素人臭くてもいいじゃんw


511:デフォルトの名無しさん
09/02/24 21:21:41
他のアプリケーションのアイコン上に、あるテキストファイルをドラッグする処理(と同じ事)を
自作アプリケーション内で行いたいのですが、どのような方法があるのでしょうか・・・?
ドラッグ対象となるアプリケーションはコンソールアプリケーションです。
てぃんこでかい人よろしくおねがいします。


512:デフォルトの名無しさん
09/02/24 21:23:31
Main() の String[] args から取れなかったっけ?

513:デフォルトの名無しさん
09/02/24 21:28:21
その「他のアプリケーション」をプログラムから起動したいってことなら
System.DiagnosticsのProcess
エクスプローラで実行ファイルに何かのファイルをドロップするのは
その何かのファイルを引数に実行ファイルを起動するのと同じ

514:デフォルトの名無しさん
09/02/24 21:32:53
>>513
とても有益なヒントありがとうございました。
ちんこもでかくてありがとうございました。
試行錯誤してみます。


515:デフォルトの名無しさん
09/02/24 21:42:24
ちんこ小さいから回答できなかった

516:511
09/02/24 21:49:03
うーーん。以下のようにしても
ファイルを指定せずに実行ファイルを起動したような動作になっちゃう・・・

proc.StartInfo.Arguments ="あるテキストファイルのパス";
proc.StartInfo.FileName ="受け取り側の実行ファイルのパス";
proc.Start();

517:デフォルトの名無しさん
09/02/24 21:51:11
ちんこついてないから答えられない

518:デフォルトの名無しさん
09/02/24 21:51:29
>>516
「あるテキストファイルのパス」に空白が含まれるなら、""で囲まないとダメ。
具体的には、
proc.StartInfo.Arguments = "\"あるテキストファイルのパス\"";

519:511
09/02/24 21:54:34
こんな感じでしょうか?
""ではかこんでいます。

proc.StartInfo.Arguments = @"C:\sample.xml";
proc.StartInfo.FileName = @"C:\Document and setting\APPLE.exe";
proc.Start();

520:511
09/02/24 22:05:58
>>518
あああいけました
いけました。ありがとうございました。
ちんこにもよろしくお伝えください。

521:sage
09/02/24 23:19:27
RichTextBoxのスクロールバーをつまみで移動させると
ピクセル単位で動くのですが、TextBoxのように行単位で動かせるような方法ないですか?

URLリンク(wawatete.ddo.jp)
にあるような別途スクロールバーを作りたくなくて
RichTextBox備え付けのスクロールバーで実現したいのですが。。。

RichTextBoxのWndProcでつまみスクロールのイベントが来たら
SendMessage(rich1.Handle, EM_SCROLL, SB_LINEDOWN, 0)
で独自で1行スクロールとか試みたんですが、微妙にずれてしまって。。。

ちなみに上記URLと同じ目的ですが、RichTextBoxの左に
行番号を作りたいのですが、テキストが中途半端な表示されると
困るために、行単位でスクロールさせたい次第です。

教えてエライ人!

522:デフォルトの名無しさん
09/02/24 23:37:28
>>521
ボクはGDI+を使って書いた

523:デフォルトの名無しさん
09/02/24 23:38:33
さすがに行番行表示までやるならはじめから自前で作るべきだな

524:521
09/02/24 23:48:13
>>522
kwsk・・・、じゃなくておさわりだけでもいいんで
どんな流れか教えてください。

因みに自分は、クライアント領域が表示されてる分だけ左側に
Labelを配置して、スクロールされたら配置されてる全Labelに
メッセージなげて、Label.Textを変えて行番号を表示する方式を
考えてました。

525:デフォルトの名無しさん
09/02/24 23:50:13
>>506
Reader 側はもっと無理やりだけど、↓でできる。

var read = typeof(BinaryReader).GetMethod("Read" + typeof(T).Name, new Type[0]);
return (T)read.Invoke(reader, new object[0]);


526:デフォルトの名無しさん
09/02/24 23:53:45
ググれ若人

527:デフォルトの名無しさん
09/02/25 00:49:32
VS2008EEのC#でwebBrowser使ってpdfを表示したまま終了すると必ずエラー出すんだけど、これってどうにかできないの?
AdobeReader8ならエラー出なくて9だと出るって事はしばらくしたら改善される?

Delphi2006なら大丈夫だけどあっちはunicodeのテキスト読むのめんどいし、いい方法はないものかね?

528:デフォルトの名無しさん
09/02/25 01:10:55
>527
別のページを表示してから終了とか頑張ってみたけどどうしようもなくて
終了時だけなのでエラーを握り潰して無視したよ。

529:デフォルトの名無しさん
09/02/25 10:04:22
>>497
こんなのはどうかね
public abstract class ReaderWriter<T> : IDisposable
{
protected FileStream stream;
protected BinaryWriter writer;
protected BinaryReader reader;
public abstract void Write(T item);
public abstract T Read();
public virtual void Seek(long offset, SeekOrigin origin) { this.stream.Seek(offset, origin); }
public void Dispose()
{
if (this.reader != null) this.reader.Close();
if (this.writer != null) this.writer.Close();
if (this.stream != null) this.stream.Close();
}
}
public class IntReaderWriter : ReaderWriter<int>
{
public IntReaderWriter(string fileName)
{
this.stream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
this.reader = new BinaryReader(this.stream);
this.writer = new BinaryWriter(this.stream);
}
public override void Write(int item) { this.writer.Write(item); }
public override int Read() { return this.reader.ReadInt32(); }
}

530:デフォルトの名無しさん
09/02/25 10:05:22
>>529の続き
public class MyList<T> : List<T>
{
public void Save(ReaderWriter<T> writer)
{
if (writer == null) return;
foreach (T item in this) writer.Write(item);
}
public void Load(ReaderWriter<T> reader, int count)
{
if (reader == null) return;
for (int i = 0; i < count; i++) this.Add(reader.Read());
}
}

static void Main(string[] args)
{
MyList<int> list = new MyList<int>();
using (IntReaderWriter writer = new IntReaderWriter("test.bin"))
list.Save(writer);
using (IntReaderWriter reader = new IntReaderWriter("test.bin"))
list.Load(reader, 100);
}
終わり

531:デフォルトの名無しさん
09/02/25 12:51:34
型ごとにReaderWriter<T>実装しないといけないなら全く意味ないなそれ
普通にSaveInt32とか型ごとに保存・読み込みメソッドを定義するのと変わらん

532:デフォルトの名無しさん
09/02/25 13:53:57
generic<typename TSrc, typename TDst>
where TSrc : value class where TDst : value class
void BlockCopy(
 array<TSrc>^ src, int srcOffset, array<TDst>^ dst, int dstOffset, int count) {
 using namespace System;
 pin_ptr<TSrc> pSrc = &src[0];
 Byte* pSrcByte = reinterpret_cast<Byte*>(pSrc);
 pin_ptr<TDst> pDst = &dst[0];
 Byte* pDstByte = reinterpret_cast<Byte*>(pDst);
 for (int i = 0; i < count; i++) pDstByte[srcOffset + i] = pSrcByte[dstOffset + i];
}
こういうのをC++/CLIで用意しておけば解決w

533:デフォルトの名無しさん
09/02/25 14:35:22
Application.DoEvents();
と等価の処理を別コードで書きたいんだけど
なにかいい方法はないかなぁ…
PeekMessageとかコレ系つかうとたまに応答なし
になってしまう。

timerとかBackGroundworkerだとプログラムが
みにくくなってしまうし悩んでます。


534:デフォルトの名無しさん
09/02/25 14:42:03
AというクラスにAクラスを返す
例えば
public virtual A CreateA(){ return new A(); }
があります。
このAを継承した
BというクラスはこのCreateAをオーバーライドしてBを返すようにしたいのですが
こういう事はできますか?
CreateBを新たに作らないと駄目ですか?

535:デフォルトの名無しさん
09/02/25 14:46:45
>>533
timerやbackgroundworkerで見にくくなる理由も不明だが、
Application.DoEvents()ではだめな理由も謎だな。

536:デフォルトの名無しさん
09/02/25 14:48:25
>>534
class B : A {} だったら
public override A CreateA(){ return new B(); } でいいじゃね。
戻り値の型をBにしたいなら、CreateBを作ることになるだろうけど。

537:デフォルトの名無しさん
09/02/25 14:52:55
そうですか…有り難うございます

538:533
09/02/25 14:58:27
>>535
URLリンク(d.hatena.ne.jp)
DoEventsを使うとたまに応答なしになったりひどい挙動を起こすことが
あるんですよ。
これを完全に回避したいんです。


539:デフォルトの名無しさん
09/02/25 15:00:24
class Base{
  public virtual Base Create();
}
class Base<T>:Base where T:Base<T>, new(){
  public override Base Create(){
    return (Base)(new T());
  }
  public T Create(){return new T();}
}
こんな方法もあるかも。未テストかつ変態的なので動くか不明。

なお、使う時は
class B:Base<B>{
 ...
}
class C:Base<B>{
 ...
}
みたいにする。

540:デフォルトの名無しさん
09/02/25 15:00:40
もう一つ良いですか?
同じクラスAに
class A
{
public const int i = 100;
public void D()
{
Console.Write(i);
}
}

とこれを継承したクラスB,に
public const int i=10;
としてBからDを呼び出すとiは10として処理されますか?
100として処理されますか。

541:デフォルトの名無しさん
09/02/25 15:03:18
あ、間違った。
class Base{
  public virtual Base CreateBase();
}
class Base<T>:Base where T:Base<T>, new(){
  public override Base CreateBase(){
    return (Base)(new T());
  }
  public T Create(){return new T();}
}
みたいにメソッド名は変えなきゃ駄目だ。
後、使い方の方も(まあ気が付くと思うけど)
class B:Base<B>{
 ...
}
class C:Base<C>{
 ...
}
ね。

542:デフォルトの名無しさん
09/02/25 15:05:09
>>540
それくらいなら、やってみりゃいいじゃん。

543:デフォルトの名無しさん
09/02/25 15:09:50
>>538
等価のコードを書いたら結局Application.DoEventsと同じ作用をもたらすだろ
素直にイベント駆動の脳になれ

544:デフォルトの名無しさん
09/02/25 15:10:27
>>540
やってみました
継承元の100が入ってきますね

どうにかして10にすることは出来ませんか?
>>539
やってみます

545:デフォルトの名無しさん
09/02/25 15:11:18
virtualなプロパティにすればよろし

546:デフォルトの名無しさん
09/02/25 15:15:34
>>545
できました有り難うございます。

547:539,541
09/02/25 15:44:40
>>544
共通の基底クラスが必要なければ、

class Base<T> where T : Base<T>, new()
{
  public static T Create() { return new T(); }
}
class A : Base<A> { }
class B : Base<B> { }

でも可だと思う。A:Base<foo>と書く時のfooはAのみに制約されて、それ以外を書くとコンパイル
エラーではねられる。継承先のクラスのインスタンスをプロパティの設定などの処理とともに生成
するメソッドを持つクラスを作る(変態的だけど)わりと一般的なテクニック。

548:デフォルトの名無しさん
09/02/25 15:48:35
>>547
成る程
よく分かりました
ついでにやっと何となくwhereが分かりました

549:デフォルトの名無しさん
09/02/25 15:49:24
>>548
class B:Base<B>{}があると、class A:Base<B>はコンパイルエラーにならないので注意してね。

550:デフォルトの名無しさん
09/02/25 22:09:43
>538
タイマーにしておけ。
見やすくなるように整理して書くだけだろ。

551:デフォルトの名無しさん
09/02/25 22:32:27
処理内容にもよると思いますが、

void BigMethod()
{
...
    if (~) { ...//百行くらい }
    else { ...//百行くらい }
...
}

よりも、

void BigMethod()
{
...
    if (~) { Method1(...); }
    else { Method2(...); }
...
}

Method1(...);//百行くらい
Method2(...);//百行くらい
...

の方が大抵の場合で速くなるのはなぜでしょう?

552:デフォルトの名無しさん
09/02/25 22:38:57
>>551
気のせいじゃね?

553:デフォルトの名無しさん
09/02/25 22:40:53
↓のようなリストを作成しており、条件としてKeyだけを
用いてそれと一致するbdListのindexを取得したいのですが
foreachなどで一つ一つチェックするしかないのでしょうか。

BindingList<Data> bdList;

public class Data
    {
        private string _Key;
        private string _Value;
        private int _Count;
        public string Key
        {
            set { this._Key = value; }
            get { return this._Key; }
        }
        public string Value
        {
            set { this._Value = value; }
            get { return this._Value; }
        }
        public int Count
        {
            set { this._Count = value; }
            get { return this._Count; }
        }
    }

554:デフォルトの名無しさん
09/02/25 22:47:54
>>553
リスト構造なら辿るしかないだろ

そういう意味じゃないならlinqとか

555:デフォルトの名無しさん
09/02/25 23:08:17
>551
実行時に最適化されてるんだよ。
呼び出しの初回にメソッド全体がJITコンパイルされるか小さなメソッド単位でJITコンパイルされるかだよ。
細かなプロパティやメソッドの呼び出しなんか結構インライン展開されてるしある程度分割した方がいいと思うよ。

試しにBigMethod内で呼び出しているけど条件に合わなくて呼び出されない箇所で
参照してるアセンブリのメソッドを削除してdllを差し替えてそのまま実行すると
上はBigMethodメソッド呼び出しで実行される前のタイミングで落ちるけど、
下はMethod1かMethod2が不完全でも呼ばれなければ動いたりする。

>553
.Select((data, index) => new {Data=data, Index=index}).ToLookup(i => i.Data.Key).ToDictionary(i => i.Key, i.First().Index)["探したいキー"]
とでもすればいいんじゃないかな。
素直にforで辿った方がいいよ。

556:553
09/02/25 23:13:06
>>554
有り難う御座いました。2005環境なのでLinqは使えません…。
.Containsや.IndexOfが内部的にforeachで回しているのであれば
諦めつくのですが、件数が増えてきたときに効率が悪いかと思いまして。
データ構造を見直した方がいいんですかね…。

557:デフォルトの名無しさん
09/02/25 23:13:35
LINQ使う場合、
bdList.OfType<Data>.Where(d=>条件).Select(d=>bdList.IndexOf(d));
が書き方的には自然だけど、IndexOfのコストが絶対に問題になる。
Enumerable.Range(0,bdList.Count).Where(i=>bdList[i].Key==ほにゃらら);
とかすべき。

558:デフォルトの名無しさん
09/02/25 23:15:52
そりゃ普通のリストならO(n)掛かるのはどうにもならんだろ。

559:デフォルトの名無しさん
09/02/25 23:17:52
>>556
LINQ使えないのなら、
Enumerable.Range(0,bdList.Count).Where(i=>bdList[i].Key==ほにゃらら);
と同等の処理をforで書けば良いと思う。.Containsや.IndexOfがO(N)で嫌だという
感覚は正解で、インデックスによる参照がO(1)だから、そっちを使うべき。

560:デフォルトの名無しさん
09/02/25 23:31:07
内部にDictionary<string, Data>持っとくとか

561:553
09/02/25 23:42:04
親切に有り難う御座いました。
Dictionaryでもう少し効率良く出来るのであればそれも
視野に入れて色々試してみます。

562:デフォルトの名無しさん
09/02/25 23:43:42
>>560
Dictionaryって、重複を許すモノホンのハッシュじゃないよね?

563:デフォルトの名無しさん
09/02/25 23:50:29
ごめん、>>562はハッシュについて勘違いしていた。
それと、そもそも異なるValueに同じKeyが対応する事がないのなら、確かにDictionary一択だね。

564:デフォルトの名無しさん
09/02/26 02:16:03
>>555
1回のみしか呼ばれないならJITコンパイル時の時間分だけ短縮しているというのは理解できるのですが、
BigMethod自体が複数回呼ばれる場合でも下の方が速いというのがちょっとわからないのですが…
呼び出し回数は、で、BigMethod1回につきMethod1またはMethod2が1回なのですが、
複数回呼ばれる間にどちらも呼ばれます。回数自体はそこまで多くなく、メソッド呼び出しのオーバーヘッド
は大きくないはずですが、なぜ分割した方が速くなるのでしょうか?
処理をメソッドに分割した方がうまく最適化されやすいのでしょうか?

565:デフォルトの名無しさん
09/02/26 03:28:31
レジスタ変数をうまいこと選択できるとか?
いや知らんけど。

566:デフォルトの名無しさん
09/02/26 03:28:38
>>564
基本的なことだけど速度計測の時に最適化が有効になってるか確かめた?

デバッグビルドは最適化が働かないよ。
リリースビルドでもF5実行の場合は最適化が抑止されるよ。

567:デフォルトの名無しさん
09/02/26 10:20:45
初歩的な質問で恐縮ですが
C++のSTLとかアルゴリズムを利用したコードってC#でも使用できますか?

568:デフォルトの名無しさん
09/02/26 10:28:12
コードってC++のソースコードなのかコンパイル済みのコードなのかどっちなんだ

569:デフォルトの名無しさん
09/02/26 10:28:33
>>565
一応BigMethodをビルドしてからReflectorでILを見てみると、.maxstackの値が22から10に減っていました。

>>566
Debug、Releaseビルドどちらの場合でも分割している方が速かったです。
一応実行時はリビルドを実行してからVS上ではなく直接exeを起動して計測しています。

570:デフォルトの名無しさん
09/02/26 10:46:38
>>568
どちらでも可能であればかまいません
C#でSTLを使いたいのです

571:デフォルトの名無しさん
09/02/26 10:47:56
無理 テンプレートが使えないからな
C++/CLIでSTL/CLRでも使えば?

572:デフォルトの名無しさん
09/02/26 10:53:58
C#使う以上は問答無用でSystem.Collections.Generic使え

573:デフォルトの名無しさん
09/02/26 11:16:30
拝承

574:デフォルトの名無しさん
09/02/26 11:21:53
調べてないのだけど、C++/CLIってunsafeキーワード書かなくても、
ポインター使ったプログラムを掛けるのかな?

575:デフォルトの名無しさん
09/02/26 11:24:05
書けるよ。
manageとunmanageの区別は自分で意識してやらないとならんが。

576:デフォルトの名無しさん
09/02/26 11:31:35
コンパイルオプションでポインタを使えなくすることもできるけどな

577:デフォルトの名無しさん
09/02/26 11:32:18
pinできなくなるってこと?

578:デフォルトの名無しさん
09/02/26 12:05:27
pin_ptrはできる。GCHandleType.Pinned使ったGCHandle.Allocと意味的に同じだし。
でもT*にキャストはできない。
pin_ptrからIntPtr作ることはできてMarshalでアクセスはできる。
つまりは/unsafe使わないC#とほぼ同じ。

579:デフォルトの名無しさん
09/02/26 12:52:53
あくまで相互運用のためにあるので全部がC++/CLIのアプリケーションは作るな莫迦者って誰かが言ってたな

580:デフォルトの名無しさん
09/02/26 13:03:47
MS自身そういうスタンスだからな
STL/CLRとかいう迷惑なものはなかったことにするべき
こんなもんがはびこったりしたら何のための.NETかわからなくなる

581:デフォルトの名無しさん
09/02/26 13:26:44
いや、.NETのジェネリックは糞過ぎるから、
テンプレートとして使えるコレクションライブラリは欲しい。

582:デフォルトの名無しさん
09/02/26 13:40:18
C++コードとの互換性を含めるべきだったんだよ、MSは!

583:デフォルトの名無しさん
09/02/26 15:01:34
プリプロセッサで変態マクロが定義できる言語には二度と触りたくない。マクロのすごい版として
テンプレートを導入したC++は何をかいわんや。オブジェクト指向的な構造さえしっかりしていれば
むやみやたらな自由度なんていらない。.NETのジェネリックはコードが変態にならない点で優れて
いると思う。その分できない事が多すぎるというのは理解するが。

584:デフォルトの名無しさん
09/02/26 15:07:25
そしてやっぱりダージリンの新開発待望論が高まる

585:デフォルトの名無しさん
09/02/26 22:47:21
自分が書いたものですら、昔のものはまるで読めないような変態言語は勘弁して。

586:デフォルトの名無しさん
09/02/26 23:05:07
今の仕事が左から流れてきたデータをより分けたり下から流れてきたデータと組み合わせたりして
右に流すようなやつなんだがLINQ使い倒せて実に気分がいい
趣味でいじる分にはピンと来ないgroup byとか爽快だ
だが後でメンテする人は果たして読めるんだろうかアレ
いやまあできる限り読みやすく書いてるつもりだが

でも最大の責任は同じ名前のクラス3つも4つも作った奴だから文句はそいつに言ってくれ
なんで一つのメソッド内に別々のInformationクラスが3つも出てくるんだ畜生

587:デフォルトの名無しさん
09/02/26 23:30:55
ネームスペース別でも、機能が似たようなInformationが、
3つ同じ名前で実装されてるってか?w


588:デフォルトの名無しさん
09/02/26 23:46:17
それは酷いww

589:デフォルトの名無しさん
09/02/27 00:09:44
まさか担当者ごとにネームスペースを分けちゃいないだろうな。
Kaishamei.Suzuki.Information, Kaishamei.Sato.Information みたいな……

590:デフォルトの名無しさん
09/02/27 00:52:18
苗字だけじゃなくちゃんと名前でわけてるわ!

591:デフォルトの名無しさん
09/02/27 07:51:01
ならおk

592:デフォルトの名無しさん
09/02/27 09:05:09
でも将来的に似てても一部違う機能を実装するならそれもありとかでは?
と素人が申しております

593:デフォルトの名無しさん
09/02/27 20:03:12
便乗質問。

2chにはあまりこういう仕事してる人いないかもしれないけど、
例えばFooTech社のBAR1234というインターフェイスカード(DIOとか
モーションコントローラとかいろいろ)を操作するためのクラスライブラリを
作るときって、名前空間名はどうしてる?

FooTech.BAR1234 ?
MyCompany.BAR1234 ?
MyCompany.FooTech.BAR1234 ?

594:デフォルトの名無しさん
09/02/27 20:26:33
三番目以外にする理由がわからない

595:デフォルトの名無しさん
09/02/27 20:41:43
発注元にもよるんじゃ

596:デフォルトの名無しさん
09/02/28 01:49:05
>593
3番目でやってるよ。
結局名前空間だけじゃなくアセンブリも分けてあって
プラグインのように呼び出せるようにしてある。

597:デフォルトの名無しさん
09/02/28 05:22:52
仮面さんとこから転記

名前空間のネーミング方法
CompanyName.TechnologyName[.Feature][.Design] というパターン。

例: Uchukamen.MultiMedia.Movie.Viewer
.NET Framework 名前空間で使用されている名前は使わない。
Class Console →だめ。
意味的に適切な場合は、複数形の名前空間名を使用する。
例: Collections
例外: 省略形 System.IOs 誤 → System.IO 正。
名前空間とクラスに同じ名前を使用しない。

namespace MySystem;

class MySystem; // 誤り。名前空間とクラスに同じ名前を使用しない。


598:デフォルトの名無しさん
09/02/28 07:02:32
趣味で作ってる場合CompanyNameはどうすればいいんだ・・・
本名使うには抵抗が・・・

599:デフォルトの名無しさん
09/02/28 07:11:28
趣味ならウェブサイト名とか。公開しないなら個人名でもいいだろう。

600:デフォルトの名無しさん
09/02/28 08:09:42
600

601:デフォルトの名無しさん
09/02/28 10:23:05
趣味やオープンソースならプロジェクト名だけでいいと思う

602:デフォルトの名無しさん
09/02/28 11:56:24
メッセンジャーを作ろうと思うのですが、
どうやったらインターネット越しの相手と通信できますか?

603:デフォルトの名無しさん
09/02/28 12:22:53
キミニハムリダ

604:デフォルトの名無しさん
09/02/28 14:00:03
カムサハムニダ

605:デフォルトの名無しさん
09/02/28 14:03:22
ヨンドンサリの

606:デフォルトの名無しさん
09/02/28 14:18:49
UPnPでポートをあけてpushできるようにして、
マイクから音声を取得するようにして、
その音声を圧縮して、tcpかudpで送って、それを受信側で元に戻して再生するお

UPnPつかわないで擬似的にpushしてるソフトあるけど
どうやってんだろ

607:デフォルトの名無しさん
09/02/28 14:23:27
擬似的なpushって受信側からのポーリングじゃね

608:デフォルトの名無しさん
09/02/28 14:28:51
>>599
ニックネーム

609:デフォルトの名無しさん
09/02/28 18:26:02
>>608
じゃおれの場合はHannsamubo-iにすればいいのか

610:デフォルトの名無しさん
09/02/28 22:06:48
おまえ、ハンサムボーイって呼ばれてるのか
イジメじゃないか

611:デフォルトの名無しさん
09/02/28 22:17:46
>>610
ごめんごめんhandsomeboyの間違いだった

612:デフォルトの名無しさん
09/02/28 23:21:45
>>598
GUID

613:デフォルトの名無しさん
09/03/01 01:43:04
>>612
おまえとは仕事したくないなwwwww

614:デフォルトの名無しさん
09/03/01 01:56:29
むしろうちに欲しい

615:デフォルトの名無しさん
09/03/01 01:57:34
仕事欲しい

616:デフォルトの名無しさん
09/03/01 01:58:37
彼女欲しい

617:デフォルトの名無しさん
09/03/01 02:04:12
仕事さえあれば彼女ができる自信はある

618:デフォルトの名無しさん
09/03/01 02:35:51
いたって簡単なことだが、ずっと家に居たって何も始まらない。
2chなんてすぐに断って家を発って職安に行くんだ。

619:デフォルトの名無しさん
09/03/01 02:38:30
いやーん

620:デフォルトの名無しさん
09/03/01 03:52:57
>>618
じゃあ一緒に行こうか

621:デフォルトの名無しさん
09/03/01 15:47:48
現地集合な

622:デフォルトの名無しさん
09/03/01 16:54:25
NEETでなぜ悪いっ

623:デフォルトの名無しさん
09/03/01 18:03:45
悪いに決まってるだろJK
親や周りの人に負担ばかりかけて
無駄に消費するだけして
周囲や社会には何も貢献してないんだから

624:デフォルトの名無しさん
09/03/01 18:34:33
>親や周りの人に負担ばかりかけて
>無駄に消費するだけして
>周囲や社会には何も貢献してないんだから
まさに2ちゃんねるにレスすることとまったく同じだな

625:デフォルトの名無しさん
09/03/01 19:13:01
ばーか
上の世代が貯金ばかりして経済が停滞してるというのに
ニートはそれを消費に回して経済活性化に寄与してるんだよ


626:デフォルトの名無しさん
09/03/01 19:19:21
>>622
.NETでなぜ悪いっ

に見えた

627:デフォルトの名無しさん
09/03/01 19:36:07
悪いに決まってるだろJK
メモリやディスクに負担ばかりかけて
無駄にリソースを消費して
周囲や社会には何も貢献してないんだから

628:デフォルトの名無しさん
09/03/01 20:45:01
>メモリやディスクに負担ばかりかけて
>無駄にリソースを消費して
>周囲や社会には何も貢献してないんだから
まさに2ちゃんねるにレスすることとまったく同じだな

629:デフォルトの名無しさん
09/03/01 20:51:56
NEET、NEETを語る

630:デフォルトの名無しさん
09/03/02 10:40:11
NEETな午後3時

631:デフォルトの名無しさん
09/03/02 21:04:39
TCPListenerを使って接続を受け付けるために、
BeginAcceptTcpClientで接続を受け付けています。

while (isAlive == true)
{
tcpListener.BeginAcceptTcpClient(new AsyncCallback(TCPListenAcceptCallback), tcpListener);

autoResetEventTCPReceive.WaitOne();
}

ここで、プログラムを終了させるためにisAliveをfalseにしているのですが、
BeginAcceptTcpClientでブロックされてしまい、プログラムがいつまでも終了
しない状態になってしまいます。

そもそもプログラムの終了方法が悪いのかもしれませんが、
何か良い方法があれば教えてください。

よろしくお願いいたします。

632:デフォルトの名無しさん
09/03/02 21:30:17
せっかくBegin使ってるのにその直後に無限待機しちゃ意味無いじゃん
適当にWaitOneにタイムアウト秒数与えなよ

633:631
09/03/02 22:02:43
>>632
ありがとうございます。
WaitOneにタイムアウトを持たせることで解決しました。
# 若干プログラムの終了まで時間が掛かりますが、問題になる範囲ではないですよね?

634:デフォルトの名無しさん
09/03/02 23:29:23
CLR ProfilerでFormアプリケーションのメモリ生成を見ようとしいます。CLRプロファイラのメインフォームからアプリケーションをスタートするとアプリケーションはスタートするんですが、
"Waiting for application to start common language runtime" とでたままプロファイラがアプリケーションにアタッチできません。
デバッガーで見るとCLRProFiler.MainForm.WaitForProcessToConnectの中のpipe.Readで毎回IO.Exceptionが発生しています。
例外内容は"プロセスがパイプの他端を開くのを待っています。"とのこと。
ぐぐってみると同じような現象が出ているのはあったんですが、サービスで発生した場合でアイデンテイティをシステムで立ち上げるとかうんたら。
URLリンク(forums.asp.net)
アプリケーションの場合にどうするのかわかりません・・・
securityがらみぽいのですが、これは環境がVistaだからでしょうか。

635:634
09/03/03 12:30:25
事故解決。
CLRProfiler.exeをエクスプローラから右クリで管理者として実行でいけました(=゚ω゚)ノ
でもタスクマネージャーでワーキングセットが500Mぐらい食って減らないもののプロファイルしたかったんだがProfilerでみても、10Mぐらいしかアロケートしてないといわれる・・・
見方が悪いんだかよくわからん。逝ってくるノシ

636:デフォルトの名無しさん
09/03/05 14:39:07
出来上がったexeをバイナリエディタで覗くとプロジェクトのフルパスが埋め込まれちゃってるんだけど、消す方法ある?


637:デフォルトの名無しさん
09/03/05 14:53:06
バイナリエディタがあるなら消せるだろ。

638:デフォルトの名無しさん
09/03/05 14:53:12
プロジェクトのじゃなくてpdbファイルのじゃね?
pdbファイルの出力ならプロジェクトのプロパティでビルドの詳細設定>デバッグ情報あたりで制御できる

639:デフォルトの名無しさん
09/03/05 17:05:04
>>637
消して動作に影響あるかもしれんのじゃないか?


640:デフォルトの名無しさん
09/03/05 21:28:21
ハッシュで弾かれないか?

641:デフォルトの名無しさん
09/03/05 21:58:53
pdbはデバッグ用だろ

642:デフォルトの名無しさん
09/03/06 00:52:45
>636
デバッグビルドしてない?と思ったけど
VS2005かVS2008からReleaseビルドでもpdbを作るのがデフォルトになってるんだった。
ビルドの詳細設定から出力のデバッグ情報をnoneに変更する。

643:デフォルトの名無しさん
09/03/06 07:37:47
おお本当だ
Release設定のデバッグ情報noneで埋め込まれなくなった
みんなありがとう

しかしこれ気付かずにそのままリリースしたら、プロジェクトのフォルダに個人名使ってたら色々と問題になりそうじゃない?


644:デフォルトの名無しさん
09/03/06 07:45:30
普通の観察力があれば気づく

645:デフォルトの名無しさん
09/03/06 07:48:19
dotfucator使ってればその辺の情報は消えてるだろ

646:デフォルトの名無しさん
09/03/06 08:57:50
"要.NET Framework3"でググって出てきたのをいくつか見てみたけど消してる人は少ないな


647:デフォルトの名無しさん
09/03/06 09:13:34
普通はexe(dll)と設定ファイル以外出さないでしょ

648:デフォルトの名無しさん
09/03/06 10:47:53
pdbファイルがどうこうの話じゃなくて、本名バレしてる人いるんじゃね?って話
本名でユーザー作っててマイドキュメントの下にプロジェクト置いてたらアウアウ


649:デフォルトの名無しさん
09/03/06 11:07:34
そういう事故がままあるからうちではユーザー名に本名を使わなくなった

650:デフォルトの名無しさん
09/03/06 11:20:06
タスマネのユーザー名を消さずにスクショうpしてあうあうとかリアルにあるからな

651:デフォルトの名無しさん
09/03/06 14:12:41
ユーザ名は嫁の名前使ってます。

脳内嫁ですが。

652:デフォルトの名無しさん
09/03/06 14:44:15
>>646
蛇足だが、100%アンマネージドなVC++アプリでも
デフォルトのリリースビルドの設定だとPDBのパスが埋め込まれるのは同じ。

653:デフォルトの名無しさん
09/03/06 15:27:08
リリースするときって、msbuildとか使ってバッチビルドするもんでしょ

654:デフォルトの名無しさん
09/03/06 16:27:40
高度な話題禁止!

655:デフォルトの名無しさん
09/03/06 22:05:03
高度な話はしてないので続けてOK

656:デフォルトの名無しさん
09/03/06 22:43:50
>>653
おれはいまだにGNUのmake

657:デフォルトの名無しさん
09/03/07 03:35:05
俺は何も考えずにReleaseに切り替えてリビルドして出来上がったexeを配布してるな

658:デフォルトの名無しさん
09/03/07 12:01:20
うちは専用のビルド用PCでやってるんで個人名とか入らない。

659:デフォルトの名無しさん
09/03/07 12:13:36
レポジトリにコミットしたらHudsonが自動ビルドしてくれる

660:デフォルトの名無しさん
09/03/08 19:33:22
VS2008のC#でプログラムを組んでいます。

たくさんの線や長方形、円をアルファ値30%ぐらいで重ね合わせて描画しています。
これを印刷しようとして躓いてしまいました。
プリンタへは、きれいに印刷できました。でも、プリンタドライバ型のPDF出力を行うと、
不完全なディザみたいになってしまいます。どうも、PDF自体が半透明な描画ができないようです。

それで、いったんBitmapに描画してから、プリンタに転送しようとしました。
サイズが小さいときにはこれでPDF出力もうまくいったのですが、A3サイズになると、プリンタの
解像度と用紙サイズでBitmapを作成しようとした時点でエラーになってしまいました。
縦横のピクセルサイズが大きすぎるのだと思います。

こんなときはどうすればいいのでしょうか。やっぱりバンディングみたいにすこしずつ処理でしょうか。



661:デフォルトの名無しさん
09/03/08 20:08:52
>>660
大きすぎるならそのBitmapを縮小すれば良いんじゃね?

662:デフォルトの名無しさん
09/03/08 20:36:47
A3が11.7" x 16.5"で、300dpiだと3500px x 5000pxあたりか。

そのくらいでエラーになるのはおかしい。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch