C#, C♯, C#相談室 Part60at TECH
C#, C♯, C#相談室 Part60 - 暇つぶし2ch250:245
10/07/04 14:34:44
>>249
なはw
律儀にあんがとさんw

251:デフォルトの名無しさん
10/07/04 16:10:24
すまん。>>244 の"スレッドセーフ?"と言ったのを、 >>236 の最後を見落としてて
揶揄してるんだと誤解してた。スレッドセーフにしてくれてたのね。

252:デフォルトの名無しさん
10/07/04 16:19:27
いいよ気にしないで
慣れてるから

253:デフォルトの名無しさん
10/07/04 16:29:03
>>244
これってなんでスレッドセーフになるの?
解説を聞きたい!

254:デフォルトの名無しさん
10/07/04 16:29:43
>>248
public event EventHandler<EventArgs> Created = (_, __) => {}

これもなぜこれだけでスレッドセーフになるのかわからにぃ

255:デフォルトの名無しさん
10/07/04 16:32:20
>>253
null比較がスレッドセーフではないからローカル変数に一時待避でスレッドセーフ

>>254
null比較しなくていいように前もって空イベント挿入でスレッドセーフ

また、△ってしてもいいんだぜ!

256:デフォルトの名無しさん
10/07/04 16:36:57
>>253
if (Created!=null) {
/* この間に別のスレッドがイベントを-=してCreateをnullにする可能性がある */
Created(this, arg);

257:デフォルトの名無しさん
10/07/04 16:43:18
はあ・・・また自演っぽいな

258:fushianasan
10/07/04 16:46:58
別に自演じゃないよ。
ホントにわかんないだけ。

259:デフォルトの名無しさん
10/07/04 16:50:31
>>256
var created = Created;
Created-=********** --この時点でcreated -= *********
したのと同じことにはならないの?
参照型でしょイベントって。

260:デフォルトの名無しさん
10/07/04 16:58:33
add/removeしたら別オブジェクト
a += b;は
TDelegate c = (TDelegate)Delegate.Combine(a, b)
a = c;
の略で、このとき
Object.ReferenceEquals(a, c)もObject.ReferenceEquals(b, c)もfalse

261:デフォルトの名無しさん
10/07/04 16:59:26
君は
var objA = new object();
var objB = objA;

この時どうなると思ってんだ?
ちゃんとポインタ(厳密には違うけど)はコピーされてるんだぞ

262:デフォルトの名無しさん
10/07/04 16:59:42
ならないの。デリゲートはStringと似たつくりになっていて、一度作成したインスタンスは変更できない。
イベントの実装はこうなってる
private EventHandler _Created;
public event EventHandler Created {
[MethodImpl(MethodImplOptions.Synchronized)] add { _Created = (EventHandler)Delegate.Combine(_Created, value); }
[MethodImpl(MethodImplOptions.Synchronized)] remove { _Created = (EventHandler)Delegate.Remove(_Created, value); }
}

[MethodImpl(MethodImplOptions.Synchronized)]のおかげでaddアクセサとremoveアクセサの呼び出しもスレッドセーフ。

263:253,254,259(261は別人)
10/07/04 17:27:30
>>260,>>262
解説ありがとう。
参照型だけど毎回インスタンスが生成されるクラスなんですね。
理解しました。


264:デフォルトの名無しさん
10/07/04 17:39:38
何読んだらそう言うのがわかるようになるの?

265:デフォルトの名無しさん
10/07/04 18:47:37
>>255
> null比較がスレッドセーフではないから
そういう話じゃないような

266:デフォルトの名無しさん
10/07/04 19:01:53
>>265
うん、間違えたw

267:デフォルトの名無しさん
10/07/04 22:59:50
あほか。nullはスレッドセーフだわ、ボケ。

268:デフォルトの名無しさん
10/07/05 01:22:17
えっ?

269:デフォルトの名無しさん
10/07/05 01:44:53
>>244
実はECMAの仕様ではスレッドセーフではなかったり。


270:デフォルトの名無しさん
10/07/05 03:05:16
完全なスレッドセーフなど存在しない

271:デフォルトの名無しさん
10/07/05 03:07:36
しかしlockを何個も書くのはかっこ悪いしめんどいんだが
このオブジェクトは最初から排他仕様だからよろしくみたいなことは出来ないのか?

272:デフォルトの名無しさん
10/07/05 10:20:28
比較自体はスレッドセーフじゃないからあながち間違いではないけどな

273:デフォルトの名無しさん
10/07/05 13:46:46
は?

274:デフォルトの名無しさん
10/07/05 14:22:32
>>272
だよな 間違ってないよな
さすがだな

275:デフォルトの名無しさん
10/07/05 17:20:35
え?
obj = nullは常にスレッドセーフだよ?
あと
obj = 0とobj = falseもさ
大丈夫?あぁネタかw

276:デフォルトの名無しさん
10/07/05 17:24:40
ほ?

277:デフォルトの名無しさん
10/07/05 18:27:47
それがどうであるかと>>244がなぜスレッドセーフなのかはまるで関係ないよね。

278:デフォルトの名無しさん
10/07/05 18:57:15
>>275
obj = ""が抜けてるよ♪

279:デフォルトの名無しさん
10/07/05 22:54:43
>>277
>>244がスレッドセーフであることの前提条件ではあるだろ

280:デフォルトの名無しさん
10/07/06 00:39:11
C#でDllMainって使うにはどうしたらいいかわかるひといる?

281:デフォルトの名無しさん
10/07/06 00:45:48
うん

282:デフォルトの名無しさん
10/07/06 00:49:24
>>281
マジで知ってるなら教えて下さいm(_ _)m

283:デフォルトの名無しさん
10/07/06 01:45:26
>>282
COMコンポーネントあたりでぐぐってみるといいよ
サムネイル表示するのをWindows7に移植しようとC#で作ってみたが
その時にそんな感じのことをした気がする
結局動かなくてテストに毎回再起動するのがまんどいので放置してるが

284:デフォルトの名無しさん
10/07/06 02:58:32
>>279
いや、そんなことないが。落ち着け。

285:デフォルトの名無しさん
10/07/06 03:03:12
とまぁ、えらそうに申しておりますが、俺も>>248 >>262で初めて知り、
>>265のツッコミをした程度のへっぽこです。
知らなかったらlockステートメント使ってたと思う。

286:デフォルトの名無しさん
10/07/06 03:30:32
んなこたあどうでもいいから>>282に教えて上げなさい

287:デフォルトの名無しさん
10/07/06 03:39:33
質問が曖昧すぎて回答できません

288:デフォルトの名無しさん
10/07/06 03:43:35
とりあえずクラスライブラリとかDllImportとか曖昧回答して上げなさい

289:デフォルトの名無しさん
10/07/06 03:46:10
ぐぐったら少ないけど情報出てくるね。

290:デフォルトの名無しさん
10/07/06 10:41:53
デッドロックの恐れがあるからCLR2.0以降では禁止されているという話らしいよ

291:デフォルトの名無しさん
10/07/06 12:48:59
約束は破るためにあるっちゅうことやな

292:デフォルトの名無しさん
10/07/06 13:06:04
ところでこいつを見て欲しい。どう思う?
URLリンク(www.atmarkit.co.jp)
Observerの変形と言えなくもない気がするが、状態オブジェクトが焼け太りしそうな悪寒。
実際んとこ、コレどんな場面で有効だと思う?

293:デフォルトの名無しさん
10/07/06 13:31:43
Observerとかいう次元じゃなくてアプリケーション全体の構造の話でしょ
ステートが絶対に変化しないならいいんじゃないの
素直にやったら全部グローバル変数と変わらないから、テストのことを考えると
IProductsStateとかインターフェイスで小分けすることになるだろうけど
インターフェイス使っちゃうと後で変更がきかないよね

294:デフォルトの名無しさん
10/07/06 14:09:25
>「銀の弾丸」が存在しない以上、「ステート集約プログラミング」も銀の弾丸ではありえない。
>「ステート集約プログラミング」とは、あなたが“カオスの縁で踊る”ステップのバリエーションを増やすものであって、
>他のステップがなくてもよいと主張するものではない

これだけでなんかオタ臭さをすげぇ感じるわ。


295:デフォルトの名無しさん
10/07/06 14:45:39
オタですがなにか?(-_-メ)

296:デフォルトの名無しさん
10/07/06 14:57:12
状態オブジェクトの変更に弱い
に尽きるな
筆者もそれはわかっててわざと誤魔化した書き方をしてるように見える
結局グローバル変数と一緒だわね

297:デフォルトの名無しさん
10/07/06 15:07:06
>>294
実戦で役立つなら考案者が厨二でも邪気眼でも構わんが、これは正直微妙な感じ
他の人も指摘してる通り、ちょっとヲサレなグローバル変数以外の何者でもない罠

とは言え、相互作用する状態が大量発生するような手合いだと、Observerパターンでも苦しいのは事実
なんかうまい方法はないもんか

298:デフォルトの名無しさん
10/07/06 15:28:57
なんかレベル低いことをわざわざ敷居高くして難しく書いてるだけな気がする。

299:デフォルトの名無しさん
10/07/06 16:35:04
>>280
URLリンク(msdn.microsoft.com)
DllMainではマネージコードを実行してはいけないという制限があるので
「C#では不可能」というのが答えだな
C++/CLIでそこだけネイティブコードのみで実装する必要がある

300:デフォルトの名無しさん
10/07/06 17:19:05
>>292
一つ前の記事の日本語でテスト名は書けというのは共感出来た。
ビジネスロジックのテスト名はそっちの方がわかりやすいしね。

301:デフォルトの名無しさん
10/07/06 17:36:41
だね

302:292
10/07/06 17:58:00
皆THX.
アレは文中でもある通り、DBの簡易代替に過ぎないんだろうな。

>>300
まあテスト名くらいは許容できるが、変数名を日本語で書くのは俺はあかん。
インテリセンス使えねえじゃん。

303:デフォルトの名無しさん
10/07/06 18:51:18
あかんね

304:デフォルトの名無しさん
10/07/06 19:13:21
変数全部に/// <summary>と/// <remarks>を。

305:デフォルトの名無しさん
10/07/06 19:43:28
日本語使うとインテリセンス使えないんだっけ?
使えたように思ったけど気のせいか

306:デフォルトの名無しさん
10/07/06 19:58:50
変換して確定しないと候補が出てこないんだから、インテリセンスの意味なし。

307:デフォルトの名無しさん
10/07/06 20:01:19
候補が出てこない訳じゃないだろう
ピリオド打った後カーソルキー上下とかスクロールつまみ動かすとか
まあインテリセンスのメリット低下は確かだが

308:デフォルトの名無しさん
10/07/06 20:10:16
そうだね

309:デフォルトの名無しさん
10/07/06 20:35:39
>>292
もう中身以前にい近づきたくない感じ

310:デフォルトの名無しさん
10/07/06 20:41:00
>>306-307
そこでイニシャル付き変数ですよ。k金額とかn日数とか。
というか、日本語の変数名を簡単に検索できるアドインを作ったら結構受けるかもな。

311:デフォルトの名無しさん
10/07/06 21:20:13
migemoを組み込むってことか?

312:デフォルトの名無しさん
10/07/06 21:23:28
川俣に期待するなと・・・

313:デフォルトの名無しさん
10/07/06 21:36:21
なんで?

314:デフォルトの名無しさん
10/07/06 21:41:06
匿名掲示板のレスにいちいち理由なんて期待するなと・・・

315:デフォルトの名無しさん
10/07/06 21:53:36
>>313
やってることがいろいろと可笑しすぎる。


316:デフォルトの名無しさん
10/07/06 22:15:34
MVVMのView側って何書くの?
Command Binding出来ないDragDrop系とか?

317:デフォルトの名無しさん
10/07/06 22:23:00
Modelに依存しない処理。
Click系のコマンドでViewの操作のみならViewModelに書かずViewの中で完結する。
DragDropの事後処理等でModelに依存するコードがあるならその部分だけViewModelに書く。
無いならViewで完結。
間違ってもView内のハンドラでModelを触らない事。

318:デフォルトの名無しさん
10/07/06 22:23:18
某スレに載ってたんですけど、
Jane Style 3.4 を使って2chに書込みをすると
C:\\Document And Setting\【スズキ タロウ】
という部分の文字列までパケット送信してるらしいのですが、
誰か逆アセンブルして解析した方はいますか?


※前々から2ch専用ブラウザは怪しいと言われていたのですが・・・

場合によっては警視庁ハイテク化にアプリとソースを引き渡します。

319:デフォルトの名無しさん
10/07/06 22:24:22
>>299
マジレス感謝m(_ _)m
キーロガー作ってプロセスを隠蔽しようと思ったらやっぱC#じゃ無理か・・・
がんばってC++勉強します。。

320:デフォルトの名無しさん
10/07/06 22:25:11
>>317
MVPレベルキタコレ!
凄くわかりやすかったです
サンクス

321:デフォルトの名無しさん
10/07/06 22:30:01
またこいつか

322:デフォルトの名無しさん
10/07/06 22:41:03
MVPと言えばいつも見てる高スキルのブロガーが落ちてたな
かと思えば何もしてない人が選ばれたり…
あれの選別基準がいまいちわからん

323:デフォルトの名無しさん
10/07/06 22:43:58
あれは、コミュニティを運営してる人、もしくはライター。
Most Valuable Professionalとは名ばかり。

324:デフォルトの名無しさん
10/07/06 22:45:15
むむむ…
そう言う事か…

325:デフォルトの名無しさん
10/07/06 22:47:58
オレも以前受賞したことあるけど、雑誌に記事書いてたのが評価されたみたい。
他にはとくに活動してなかったし。

326:デフォルトの名無しさん
10/07/06 23:47:43
>>316
きっちりやれば、たいていの場合XAMLしか残らない。
C# 側は、テンプレ通りの InitializeComponent() のみに。

全く持ってその通りで、一部の Command Binding できないものとかのために
しょうがなく View の分離コードに何か書く。

327:デフォルトの名無しさん
10/07/06 23:52:33
MVP の評価基準が、やっぱ露出度で計られるんで。
(「MS に対する貢献」って言い方されるけども、結局それは好意的な記事の露出。)
コミュニティ運営と、編集の校正入るウェブ記事は評価高いっぽい。

ああ、あと、MS Connect へのフィードバック数とか、
フォーラムでの書き込みすうとか。

最終的に評価は米本社側でやるんで、
検索でどれくらいの位置、PV いくら、執筆本数いくら、会員数いくら
とか、客観的な数字がある方が受けるみたい。

328:デフォルトの名無しさん
10/07/06 23:56:09
>>318
の質問誰か答えてちょ

329:デフォルトの名無しさん
10/07/06 23:57:14
コピペ君って馬鹿だな、まで読んだ。

330:デフォルトの名無しさん
10/07/07 00:14:17
>>328
自分でパケットキャプチャしろ

331:デフォルトの名無しさん
10/07/07 00:18:09
>>328
応援してるよ頑張ってね

332:デフォルトの名無しさん
10/07/07 00:25:08
>>328


333:デフォルトの名無しさん
10/07/07 00:27:29
ここは328を応援するスレになりました

334:デフォルトの名無しさん
10/07/07 00:46:39
>>328
逆アセしなくてもwiresharkのようなソフトで通信をモニターすればいいんじゃね?
まあ個人名称をそのままユーザーにしてる人もいるだろうから気持ち悪いよね
Styleは使ってないのでアレだがその情報はどこへ送ってるの?

335:デフォルトの名無しさん
10/07/07 00:48:41
正直名前くらい漏れてもいい

336:デフォルトの名無しさん
10/07/07 00:52:30
>>334
各板の鯖
Reflectorでソース解析済み。

>>335
2chにはプロ固定がいるのをお忘れなく

337:デフォルトの名無しさん
10/07/07 00:52:50
コピペ君にマジレスって....
っていうか、「送信してるらしい」ってどこの誰にだよ。
2chのサーバー?w
仮にそうだとして、どこぞのPCのユーザー名なんか収集して何の役に立つんだ?
それはソフトの作者にとって、犯してるリスクに見合うものなのか?

なわけないだろw
被害妄想狂の想像とちがって、お前さんの個人情報(にすらならんがユーザ名なんか)
になんか1円の価値もないよ。

こんなの小6レベルの推理力でわかる話だと思うが。

338:デフォルトの名無しさん
10/07/07 00:56:18
>>336
> Reflectorでソース解析済み。
結論が出てるならそれでいいじゃん。

339:デフォルトの名無しさん
10/07/07 01:07:25
>>337
2ch プロ固定 でググレ

そしたらなぜ不味いかが分かるはず。

340:デフォルトの名無しさん
10/07/07 01:07:59
Jane Styleって.NET製じゃないよな

341:デフォルトの名無しさん
10/07/07 01:16:59
プロ固定…。
んーなんかデジャブ。
前に見たのはオカルト板だったはず。
だからその手の都市伝説はあっちの板でやれ。

342:デフォルトの名無しさん
10/07/07 01:30:14
>>340
Delphi

343:デフォルトの名無しさん
10/07/07 01:30:53
スクロールバーについて質問をしたいのですが、
スクロールバーで値を変更したときに、
フォーム内のすべてのコントロールの表示位置を変更する様な
プログラムを組むのでしょうか?
それとも、根本的になんか、勘違いしているでしょうか?


344:デフォルトの名無しさん
10/07/07 01:34:49
Jane StyleはDelphiのはずだが>>336はReflectorで何を見たんだ…?

これはマジでオカルト板の出番かもしれん

345:デフォルトの名無しさん
10/07/07 01:47:19
>>343
Panelとかの上に全てのコントロールを乗っけてPanelだけ動かす
まあ普通はAutoScroll使う

346:デフォルトの名無しさん
10/07/07 01:49:15
>>340
ReflectorはDelphi対応みたいね

Delphiって中間コード持つような言語だっけ?

347:デフォルトの名無しさん
10/07/07 01:50:33
>>336
気になるならスパイウェアのような挙動をするとしかるところへ報告しておけばいいんじゃね?
ローカルのアカウントに個人名使ってればIPとひも付きでデータが集まるしなあ
その程度だとそれほど価値はないがそういう兆候があるってことは
そのうち何かやりかねないので注意を促すと言う意味では動いた方がいいかもしれない
ソフトの監視という意味でね
利用者多いし

348:デフォルトの名無しさん
10/07/07 01:51:57
あふぉか


349:デフォルトの名無しさん
10/07/07 01:52:38
というのは>>346あて


350:デフォルトの名無しさん
10/07/07 02:01:16
Reflectorで見れるのはDelphi.NET。
(2003年に出たDelphi 8から.NET対応の製品がリリースされてる。)

ネイティブコンパイルされるDelphiは.NETと無関係なのでReflectorでは見れない。

Jane Styleは後者。

351:デフォルトの名無しさん
10/07/07 02:15:40
C#とは関係ないな。陰謀論は他でやれ

352:デフォルトの名無しさん
10/07/07 02:18:10
>>345
ありがとうございました。
オートスクロールってプロパティ、
2002年のバージョンのc#には無かったですよね?
確か、そんな気がしましたが。
最近乗り換えたもので。


353:デフォルトの名無しさん
10/07/07 02:49:29
Left,Top,Width,Heightと4つそろった構造体は標準で用意されてませんか?

Pointは二つ(X,Y)のみなので、これの4カ所バージョンを探しています。

354:デフォルトの名無しさん
10/07/07 02:52:33
RectangleとかRegionとか

355:デフォルトの名無しさん
10/07/07 02:55:10
Regionは気のせい

356:デフォルトの名無しさん
10/07/07 02:56:06
出来ればSharp系のクラスではなく構造体で・・・

357:デフォルトの名無しさん
10/07/07 03:00:53
これ構造体だったはず

>.NET Framework クラス ライブラリ
>Rectangle 構造体

>四角形の位置とサイズを表す 4 つの整数を格納します。より高度な領域関数を使用する場合は Region オブジェクトを使用します。

>名前空間: System.Drawing
>アセンブリ: System.Drawing (system.drawing.dll 内)
>構文
>[SerializableAttribute]
>[ComVisibleAttribute(true)]
>public struct Rectangle

URLリンク(msdn.microsoft.com)

358:デフォルトの名無しさん
10/07/07 03:02:08
>>357
そですた…。
WPFやってるとごっちゃになるから勘違いしてしまったorz
サンクス。

359:デフォルトの名無しさん
10/07/07 06:59:42
>>352
バージョン情報
.NET Framework
サポート対象 : 4、3.5、3.0、2.0、1.1、1.0

>>358
WPFにだってRect構造体があるし(こっちは各要素がdouble型だが)

360:デフォルトの名無しさん
10/07/07 07:30:45
>>359
みつけた。サンクス。

361:デフォルトの名無しさん
10/07/07 09:08:13
#include<stdio.h>
struct kou{
int ZAHYO data[4];
double data[3].x=(data[0].x+data[1].x+data[2].x)/3;
double data[3].y=(data[0].y+data[1].y+data[2].y)/3;
};

void main(void)
{
int data[4],i;
for(i=0;i<4;i++);
data[i]=(data[i].x,data[i].y);
printf("重心=(%f,%f)"data[3].x,data[3].y);

return 0;
}
これエラーが12個でるんだがそのエラーを消したい。手伝ってくれ
ちなみに問題は構造体を使って平面上の3点の座標を入力して三角形の重心を求める問題だ

362:デフォルトの名無しさん
10/07/07 09:09:52
お断りします

363:デフォルトの名無しさん
10/07/07 09:35:33
釣りだろw
スレタイ読めないバカがいるとは思えん

364:デフォルトの名無しさん
10/07/07 10:45:07
スレタイ読めるのか!すごいな!

365:デフォルトの名無しさん
10/07/07 11:13:51
学者さんだよ

366:デフォルトの名無しさん
10/07/07 14:16:15
しーしゃーぷ
しーしゃーぷ
しーなんばー
そうだんしつ
ぱーとろくじゅう

367:デフォルトの名無しさん
10/07/07 14:31:55
VIPPERはム板へ立ち入り禁止

368:デフォルトの名無しさん
10/07/07 14:32:08
泣いた

369:デフォルトの名無しさん
10/07/07 15:32:30
[]をオーバーライド?するにはどうすれば?
検索しても出てこないんですが
class AがあったらB=A[0];みたいなアクセスがしたいんです

370:デフォルトの名無しさん
10/07/07 15:36:26
>>369は解決しましたが
foreach inに対応する方法がわかりませぬ

371:デフォルトの名無しさん
10/07/07 15:36:42
できるよ、オーバーライドではない方法でだ。
プロパティ関連をしらべろ。

372:デフォルトの名無しさん
10/07/07 15:39:14
List<A>から派生されたら出来た

373:デフォルトの名無しさん
10/07/07 15:41:29
>>370
IEnumerable<T>インターフェースを実装すれば対応する

374:デフォルトの名無しさん
10/07/07 15:46:48
IList<T>じゃねーの

375:デフォルトの名無しさん
10/07/07 15:50:59
おいおい…

376:デフォルトの名無しさん
10/07/07 15:54:07
あーごめん最初の質問しか読んでなかった

377:デフォルトの名無しさん
10/07/07 17:02:36
URLリンク(homepage3.nifty.com)のDLL側の関数の作り方 を参考に
C#を使って秀丸エディタのマクロから呼び出すDLLを作ってます。
内容は秀丸マクロからDLLを呼び出して1234(数値)を返す動作です。
test.cs(以下の4行の内容)をコンパイルしてtest.dllを作成しました。
class Test{
static int Main(){return testNum();}
public static int testNum() {return 1234;}
}
これを秀丸マクロで以下のようにして呼び出してmessageで1234と表示させたいのですが「dllfunc関数で指定された呼び出し先が見つかりません」エラーが出ました。なお、秀丸マクロからDLLの読み込みは出来てました。
$dll = "test.dll";loaddll $dll;#a = dllfunc("Test");freedll;message str(#a); // 秀丸マクロ

test.csをどのように書き直すと良いでしょうか?どなたかご教示お願い致します。

378:デフォルトの名無しさん
10/07/07 17:03:47
ネイティブからマネージのDLLってよべるんだっけか?

379:デフォルトの名無しさん
10/07/07 17:06:59
COMにするかC++/CLIはさむかしないと

380:デフォルトの名無しさん
10/07/07 17:22:13
逆P/Invokeと言う手法もないわけではない

381:デフォルトの名無しさん
10/07/07 19:33:10
素人の集まりか
呼べないわけないだろ

382:デフォルトの名無しさん
10/07/07 20:05:01
そうやって煽っても無い袖は振れませんので^^;

383:デフォルトの名無しさん
10/07/07 20:05:05
.NETのアセンブリにネイティブのエントリポイントを作成して呼べるようにするのも
不可能じゃないんだけど、一筋縄じゃいかない。
秀丸のマクロから呼ぶのが目的ならCOMのサーバを作るのが手っ取り早いでしょ。

384:デフォルトの名無しさん
10/07/07 20:46:25
ホストAPIでCLRバージョン指定してアプリケーションドメイン作ってマネージランタイム読み込んで
実行。終わったらアプリケーションドメインは解放してやらんとDLLがアンロードされないので注意。
とかメンドイわ!やっぱ言うとおりCOMでやるのが一番だな。

385:デフォルトの名無しさん
10/07/07 23:47:09
うん

386:デフォルトの名無しさん
10/07/08 00:31:56
素直にC++でやった方が遥かに簡単で軽快なコーdうわやめなにを

387:デフォルトの名無しさん
10/07/08 01:44:34
まあな。処理内容にもよるけど。
まさか実際に定数を返すだけなんてこともあるまい。

388:デフォルトの名無しさん
10/07/08 04:05:23
NetWorkStreamクラスのReadメソッドの引数に byte[4096] の変数を指定したら応答なしになってしまいました。
散々動かないと悩んでbyte[1024]にしたら直ったんですが4096の配列というのは大きすぎるもんなんでしょうか?

389:デフォルトの名無しさん
10/07/08 05:58:34
リソースファイルで、テキストファイルがあるとします。
そのプログラムが実行中に、自分のリソースファイルの
テキストファイルを開いて書きこんで保存すると言う事が、
できるのでしょうか?
その他、画像リソースファイルなども。


390:デフォルトの名無しさん
10/07/08 06:06:48
リソースを書き換えはできない

391:デフォルトの名無しさん
10/07/08 06:16:17
ばぁぶぅ

392:デフォルトの名無しさん
10/07/08 14:01:16
すみません以下のコードで例外が発生するんですが、
何が悪いのかわからないのですが・・・

//確実に数値化する
private int SetNum(string str)
{
try
{
int num = int.Parse(str);
return num;
}
catch (System.FormatException)
{
return 0;
}
}
お願いします。

393:デフォルトの名無しさん
10/07/08 14:03:58
あ、上のコードなんですが
int num = int.Parse(str);
の部分でブレイクします。。。

394:デフォルトの名無しさん
10/07/08 14:05:00
TryParse使うべき

395:デフォルトの名無しさん
10/07/08 14:06:27
catchの()いらないんじゃね

396:デフォルトの名無しさん
10/07/08 14:07:08
普通に動くけどどういう状況でどうなるんだ?

397:デフォルトの名無しさん
10/07/08 14:07:27
>>394 >>395
なるほど迅速で正確なご回答ありがとうございました。

398:デフォルトの名無しさん
10/07/08 14:09:13
>>396
strに "" が入ってきた時ですね。
2008expでは動いてたんですけど
2010proに代えてから初回例外が発生するようになって
どうやらここがおかしいっぽいという感じですハイ。

399:デフォルトの名無しさん
10/07/08 14:09:16

private int SetNum(string str)
{

int res;

if(int.TryParse(str,out res) == false)
return 0;
else
return res;

}

こんなのとかかな?

そもそも例外発生するのは文字列が悪いと思うが、どんな文字列を渡してるんだ? 

400:デフォルトの名無しさん
10/07/08 14:09:30
少なくともSystem.OverflowExceptionとか

401:デフォルトの名無しさん
10/07/08 14:10:58
なんかJAVA的な書き方だな とオモタ

402:デフォルトの名無しさん
10/07/08 14:11:15
どうでもいいが、Setとかメソッド名に使っておいて実体は型変換とかどういうことなの…

403:デフォルトの名無しさん
10/07/08 14:13:29
>>402
シーッ
Getとか別の名前にする方がいいとかいっちゃダメッ 

404:デフォルトの名無しさん
10/07/08 14:21:30
>>402
あ、なるほど。
そうですね。

とりあえず
//確実に数値化する
private int SetNum(string str)
{
int num = 0;
int.TryParse(str,out num);
return num;
}

として問題は回避できたっぽいです。

でもまだイミディエイトウィンドウに
'System.FormatException' の初回例外が mscorlib.dll で発生しました。
っていう文言が正確に数えてないんで分からないですが
100行以上くらい出てるんですがこれなんなんでしょ・・・。
2008expで開発してた時は出なかったんですが。。。
しかもエラーではない様子でプログラムはまともに動いてるように見えるし
この例外がどこで発生しているのかもわからないんです・・・(;ω;)

405:デフォルトの名無しさん
10/07/08 14:26:56
2010はいいとしてターゲットのフレームワークはどれなんだろう。
4.0かしら?

406:デフォルトの名無しさん
10/07/08 14:27:34
>>405
その通りです

407:デフォルトの名無しさん
10/07/08 14:36:20
ちょっと俺も気になるから確かめてくる

408:デフォルトの名無しさん
10/07/08 14:44:09
それと不思議な事なんですが
イミディエイトウィンドウにもろに表示されてるワケじゃない気がするんですよね。
イミディエイトウィンドウは上から順にメッセージが表示されると思うんですが
プログラムの立ち上げが終わった時点でイミディエイトウィンドウには何も表示されていない
部分までカーソルが下がってきてるんですよ。
それで、そのカーソルを上に持っていくと前述の通り大量の
'System.FormatException' の初回例外が mscorlib.dll で発生しました。
が表示されているという・・・。

状況としては
URLリンク(questionbox.jp.msn.com)
この質問者の人に似ているかなあと。

加えて、すごく初歩的な質問でもうしわけないのですが
C#で開発者が設定できる1番最初のブレイクポイントってどこになるんでしょうか。
Program.csのMain()の
Application.EnableVisualStyles();
であってますかね?
というのもここでブレイクをかけて見ても既に上述の例外が発生していますもんで
URLリンク(gyazo.com)(こんな感じです)
例外の発生している部分を突き止める事ができないな・・・っていう感じなんです。。。

409:デフォルトの名無しさん
10/07/08 14:47:25
イミディエイトウィンドウではなくて出力ウィンドウではないんだろうか?
イミディエイトなら自分で出してるだけの気がする。

それはさておき、別にでないんだけどなぁ…
それって出力ウィンドウの右クリックで例外メッセージを表示しないようにしてただけとかそういう問題じゃなくて?

とりあえずソース

private void button1_Click(object sender, EventArgs e)
{ 
try
{
string text = "";
int res; 
if (!int.TryParse(text, out res)) res = -1;
System.Diagnostics.Debug.WriteLine(res);

}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message); 
}
 
}

410:デフォルトの名無しさん
10/07/08 14:52:06
うおあ!
VSを再起動したら表示されなくなりました・・・。
僕がみていたのは皆さんにアドバイスされる前のコードで生成された
メッセージの履歴だったんでしょうか・・・^ω^;



411:デフォルトの名無しさん
10/07/08 14:53:54
>>409さん
おそらく1番最初の int.Parse try{}catch{}で分けるという方法が
コンパイラの気に障っていた?ようですね・・・。

TryParseを使う事で例外の表示もなくなったようです。
どうも長々とスレ汚し、すみませんでした(^ω^;
ありがとうございましたー!

412:デフォルトの名無しさん
10/07/08 14:55:03
(#^ω^)ビキビキ

413:デフォルトの名無しさん
10/07/08 14:56:21
>>412
スマンお(^ω^;;

414:デフォルトの名無しさん
10/07/08 15:01:35
>おそらく1番最初の int.Parse try{}catch{}で分けるという方法がコンパイラの気に障っていた?

そうではなく、テスト動作させてるときに空文字渡したとか言ってたから
キャッチはしているけど例外が発生したから表示されてたんじゃないか?

例外はコンパイルレベルで発生する代物ではないと思うんだ


415:デフォルトの名無しさん
10/07/08 15:11:14
>>414
なるほどご明察です。

416:デフォルトの名無しさん
10/07/08 15:22:47
■Jane Style 3.4 はスパイウェア
スレリンク(poverty板)



417:デフォルトの名無しさん
10/07/08 16:30:03
>Reflectorでソース解析済み。
とか言って騒いでた馬鹿か。

418:デフォルトの名無しさん
10/07/08 16:33:53
janestyleてドトネト制だったん?
delphiかとおもてた

419:デフォルトの名無しさん
10/07/08 16:43:45
ヘルプにはDelphi 7.0 Professionalで開発したと書いてあるね


420:デフォルトの名無しさん
10/07/08 16:47:06
>>413
( ^ω^)ゆるすおっ

421:デフォルトの名無しさん
10/07/08 16:55:14
>>416
.netじゃねーよ……

422:たった
10/07/08 17:21:18
.netじゃねーけど
Reflectorはdelphiに
対応してるみてーだなwwwww
ということはdelphiも
中間コード系の
言語なのかよ!?
あ!?

423:デフォルトの名無しさん
10/07/08 17:39:55
>>422
8から

424:デフォルトの名無しさん
10/07/08 17:41:13
っと、8からなのは.net frameworkに載ったのが8からね。
もともとPascal系は中間コード使ってる

425:デフォルトの名無しさん
10/07/08 17:43:38
>>418>>419
無知

426:デフォルトの名無しさん
10/07/08 17:56:11
>>422
無知な馬鹿

427:デフォルトの名無しさん
10/07/08 18:17:39
オープンファイルダイアログと言うコントロールは、
前に使った時のフォルダのパスを覚えてて、
新しく開いたときに、前開いたときのフォルダを最初に見せてくれますが、
この情報は一体どこに覚えているのでしょうか?

普通にアプリケーション設定と同じ位置に覚えているのでしょうか?


428:デフォルトの名無しさん
10/07/08 18:19:39
os

429:デフォルトの名無しさん
10/07/08 18:37:21
URLリンク(www.atmarkit.co.jp)
例えばここにアプリケーション設定の記憶位置が書かれていますが、
そこと同じ様な場所なのだと考えても良いのでしょうか。


430:デフォルトの名無しさん
10/07/08 18:38:22
os

431:デフォルトの名無しさん
10/07/08 18:38:46
カレントドライブ、カレントディレクトリ

432:デフォルトの名無しさん
10/07/08 19:05:02
>>429
はい、PCの中に記憶されてますよ。

433:デフォルトの名無しさん
10/07/08 19:09:54
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32

434:デフォルトの名無しさん
10/07/08 19:18:14
>>430-433
なるほど!
ありがとうございました!

435:デフォルトの名無しさん
10/07/08 20:09:18
>>433
つまり、レジストリって事?

カレントなのかレジストリなのか、それとも、ユーザー設定なのか?
どこやねん。

お前らも本当は知らないんだろ。
別に知らないなら答えなくていいのに。

>>434
お前誰やねん。


436:デフォルトの名無しさん
10/07/08 20:11:42
いまいちよくわかりません。
説明されているサイトなどに、誘導していただけませんでしょうか。

>>434-435
真面目に質問しています。茶化さないでください。

437:デフォルトの名無しさん
10/07/08 20:15:07
とりあえず落ち着け

438:デフォルトの名無しさん
10/07/08 20:16:46
>>435
(-3-)<Boo ナリスマシやめれ

439:デフォルトの名無しさん
10/07/08 20:19:30
      / _ .::::ト、  ̄ ´ \  
     i \ ̄_ ̄_\   \
     l    )┼┼+(     |  あ゛あ゛っ!!
       /ヽ__ i\    i  ンダコラッ!!
       ヽ_     ̄__/   
         ̄''''‐'' ̄    

440:デフォルトの名無しさん
10/07/08 21:12:58
>>433でなんでわからんの??


441:デフォルトの名無しさん
10/07/08 21:15:07
イミディエイトウィンドウはデバッグ開始しても勝手にクリアされたりしないよ。
過去に出力された分はずっと残ったままになる。
イミディエイトに出力をリダイレクトする設定をしてなければデバッグ出力に出力される。
こっちはデバッグ開始するたびにクリアされる。

例外発生時にデバッガで停止するのは、まあわかってると思うけどデバッガの例外の設定。


442:デフォルトの名無しさん
10/07/08 21:16:02
寝て起きたら書いてたコードが微妙に書き換えられててうまく動かなくなった
夢だったんだろうか、それとも夢遊病だろうか
夜中ちょっと目が覚めた時にパソコンがついてておかしいなとは思ったんだけど
超怖い

443:デフォルトの名無しさん
10/07/08 21:20:21
>>442
ごめん。悪気はなかったんだ…

444:デフォルトの名無しさん
10/07/08 21:27:42
>>440
つまり、レジストリなのですね。
解りました。


445:デフォルトの名無しさん
10/07/08 21:42:37
コモンダイアログはコモンダイアログがやっていることだから基本的には考えなくていいと思う

446:デフォルトの名無しさん
10/07/08 21:54:41
でも、例えばさ、そう言うのって、結局はさ、
自分の作ったプログラムを配布した場合、
ユーザーのパソコンの記憶領域を勝手にいじっちゃうわけでしょ?
いつの間にか勝手にレジストリをいじって記憶領域を減らすってのは
あまり良い気分じゃないよね。
まあ、実際殆ど問題無いけどさ。

レジストリを散々いじった挙句、そのソフトをもういらないからって削除した場合とか、
無駄な記憶だけが残るだけの結果になったりするじゃない。
なんか、そう言うのって気分悪いのさ。


447:デフォルトの名無しさん
10/07/08 21:58:31
まあインストーラ付けないならアプリケーション設定は使うべきじゃないな

448:デフォルトの名無しさん
10/07/08 22:01:52
コモンダイアログから随分話が飛んでるな

449:デフォルトの名無しさん
10/07/08 22:02:19
わしのは、エクスプレス板だから、
ついて無いのじゃ。
確かにインストーラーがあるなら、
OSにアンインストールしてもらえば良いのだけど。


450:デフォルトの名無しさん
10/07/08 22:04:27
ほぼ確実に朝になるとノートのバッテリが上がってたんだけど、イベントログ見たら
真夜中にWindowsのCEIPがなんかどっかに通信しようとしてコケてた(そのときLAN
ケーブル外してたんでエラーになってた)。
そのサービス殺してからは朝になってもバッテリが上がってることはなくなった。
何か関係してるのか?

451:デフォルトの名無しさん
10/07/08 22:08:57
板違い。失せろカス。

452:デフォルトの名無しさん
10/07/08 22:18:03
>>446
"コモン"コントロールを一体なんだと思ってるんだおまいわ・・・

453:デフォルトの名無しさん
10/07/08 22:22:23
まあそんなのchmの設定保持とか他にもいくらでもあるわけで。
その程度のことを気にしてたら何もできない。
っていうか気にするだけ無駄。


454:デフォルトの名無しさん
10/07/08 22:23:23
>>446
それは永久に残るものじゃないから
おまえ馬鹿だろ?

455:デフォルトの名無しさん
10/07/08 22:27:21
記憶領域減らすw
ディスクの中にはいったいどの程度の無駄があるか知ってるか?


456:デフォルトの名無しさん
10/07/08 22:33:18
わかってない奴ほど
どうでもいい細かいこと気にするの典型

457:デフォルトの名無しさん
10/07/08 22:34:14
本当の「相談事」で申し訳ないが・・・。
O/Rマッパって何使ってる?

少し古めだけど一覧
URLリンク(d.hatena.ne.jp)
のリンクをざっと辿ってみた限りでは、S2Dao.NET + DBFluteがよさげ(特に定義ファイル書かなくていいのが楽そう)だと思ったんだけどね。
↑以外ではADO.NET Entity Framework が少し話題になってるみたいだけど、「これO/Rマッパぢゃねーし」とかゆー声もあるし・・・。
ってことで何かお勧めがあればプリーズ

458:デフォルトの名無しさん
10/07/08 22:39:18
今夜バカ王が決まりそうな勢いだなw

459:デフォルトの名無しさん
10/07/09 00:23:21
俺はエントリーするぜ!!

460:デフォルトの名無しさん
10/07/09 01:05:39
>>454
いや、残るだろ。
意図的に削除したりしない限りは。
>>459
あんた、男らしいよ。

461:デフォルトの名無しさん
10/07/09 01:16:18
OSが使うレジストリなんか気にしているお前は男らしくない。

462:デフォルトの名無しさん
10/07/09 01:26:23
ある処理をしている間だけ、
numericUpDown_ValueChanged
イベントを発生させないようにするとかできるのでしょうか?

463:デフォルトの名無しさん
10/07/09 01:30:43
>>462
フラグ用意してイベント内でスルー
とかにしとかないと後で見たとき
「イベントが発生しない!」とか
悩むかもよ


464:デフォルトの名無しさん
10/07/09 01:49:48
>>463
解りました。
自前で実装します。


465:デフォルトの名無しさん
10/07/09 02:27:02
イベントの発生の仕方について質問があります。

CPUがシングルか、マルチかで発生の仕方が変わったりするのでしょうか?

例えば、シングルだと、あるイベントが終わるまで他のイベントには移行しないが、
マルチだと、あるイベントが処理中に、もうひとつのイベントの処理が始まってしまうとか。

デバッガで追ってみると、値を変えた時に、バリューチェンジドイベントに
飛ぶときと飛ばない時があるのです。



466:デフォルトの名無しさん
10/07/09 02:30:45
EXEで正常ならば問題無い

467:デフォルトの名無しさん
10/07/09 05:06:37
わかりました。

468:デフォルトの名無しさん
10/07/09 09:16:52
久しぶりに覗いたがこんな香ばしいスレだっけ?

469:デフォルトの名無しさん
10/07/09 12:20:30
前から定期的に痛いの湧いてるじゃん
なりすましとか

470:デフォルトの名無しさん
10/07/09 15:02:05
継承クラスをつくって空白のメソッドでオーバーライドする方法以外で、
Control.OnPaintとControl.OnBackgroundPaintの処理を無効にすることは
できないでしょうか?

471:デフォルトの名無しさん
10/07/09 15:39:06
>>469
なりすまし乙

472:デフォルトの名無しさん
10/07/09 15:39:21
派生クラス作ってWndProcオーバーライドしてWM_PAINTを無視する

何が不都合なのか分からんと答えようもないな

473:デフォルトの名無しさん
10/07/09 15:42:40
わかる方だけ回答お願いします

474:デフォルトの名無しさん
10/07/09 15:56:59
お礼は三行で

475:デフォルトの名無しさん
10/07/09 16:08:22


がとう

476:デフォルトの名無しさん
10/07/09 19:40:35
C#2.0でちょっとご相談
一つのファイルを複数ビューで表示させて、一つのビューで編集したら他のビュー全てに反映させたいんだけども
この場合、どんなパターン使えばいいかな

477:デフォルトの名無しさん
10/07/09 19:43:27
3.5使えばWPFの標準的なパターンで実現できるのに。
とりあえず、変更の反映にはINotifyPropertyChanged。

478:デフォルトの名無しさん
10/07/09 20:01:49
INotifyPropertyChangedに一票

479:デフォルトの名無しさん
10/07/09 22:01:50
      _,, -- " ̄T ) ̄ ̄` --,,
      ,´      |く       `、
     ;       __,,=ミ" ̄ ̄ ̄``ヾj;
    .i      _,-"   `' - 、 ::::::::::::;;i
    .i    ,/  .,/; 三 ヾ ;;;\,  ::::::;;i
    .|   /   ソ;     '`、;  \、:::;;|
    .| ,/   ,=、       ,=、  ヽ、:;;|
    .トナ    i 0 i   ,;  ;i 0 i  .`ゝ:;;|
    .|1    .ゝイ   ,i、   ;ゝイ   :::;;|
    .i` - ____トi圭____ y"i
     ';                :::::;;'
      ` 、           :::::::_ ,´
        ` -- ,,____,, -- "
       /´`゛''''''ヾ、,;;- ‐'''' ""´``ヽ、
     ,i′,     ..:::;      、.  .::゙:、
     .,!、::i    ..::::::;   ....:::::::::i   ::::`:、
     ,i  ::| 。 .....:::::;;;;! ....:::::。::::;;;;!   :::::::i
.    ,! ;::::;、ー‐'''"´::`゛'''ー-‐'''":::、   ::::::|
.    / ,,,;;:::| |    :::.  ;;;:::::::::::::::;/`:、 , ;;::::l
   ,l′;:::::;! ;!-、_;-;__r-;_;-;、:::::::::;;i  !;;;' :゛i
.   l′;;:::::;! i!爻爻;Ov爻爻i!ー‐''::i  |` .:::|
   |  ;::::/ l!※《 WWE》※i!:::::::::::|  !、 :::;!
.  |___;::/  iヾ、゚・。⇔。・゚;;ノ;---‐'i.   i__.::;!
  i′`i′  ト、゛''ー-‐'''"::::::::::::;;;;;;!   ,!. ̄|
.  i´ ̄`i.  i′`:、:::::::::;;:::;;-‐''"::`i  ,;'"``'i
.  !、、;r; !.  l′  `ヽ;::::;;'"  .::::::::| l;ァ  .;!
  `゛''"′. |    ::`Y′  .:::::::::::i ゛''''"´
.       |    .:::::::i   :::::::::::::|

480:デフォルトの名無しさん
10/07/09 22:04:43
コピペ君って馬鹿だな、まで読んだ。

481:デフォルトの名無しさん
10/07/09 22:29:13
スパイウェアを仕込んでるJane Styleは危険です。

Google Adsense違反報告スレ Part10
スレリンク(affiliate板)

JaneStyleがスパイウェアみたいな動作するらしい件
スレリンク(poverty板)

【スパイウェア?】JaneStyleで書き込みしようとしたら、○○に情報が送信されていた件
スレリンク(news板)



482:デフォルトの名無しさん
10/07/09 22:38:07
板違い

483:デフォルトの名無しさん
10/07/09 22:42:18
>>477-478
INotifyPropertyChangedってWPFご用達じゃ?と思ってMSDN見たら2.0からだったw
サンクス

484:デフォルトの名無しさん
10/07/09 22:57:43
xmlファイルを読み込んで目的の要素を取得したいのですが、xmlファイルが

<hogehoge>
<pekepeke>
</pekepeke>
</hogehoge>
<hogehoge>
<pekepeke>
</pekepeke>
</hogehoge>

となっているとして、pekepekeの項目を上から順番に取得していくにはどうすればいいですか?
URLリンク(www.kisoplus.com)
を見てマネしたのですが、うまくいかなかったのです。


485:デフォルトの名無しさん
10/07/09 23:05:24
うまくいかなかったとだけ言われても困る
XMLのサイズがよほど大きくない限りはXDocumentにロードしてLINQ to XMLとかで検索だな

486:デフォルトの名無しさん
10/07/09 23:06:28
何がうまくいかなかったのかも書かないのか。誰も答えられないぞ。

487:デフォルトの名無しさん
10/07/09 23:23:19
>>484
そのままだとroot要素がないぞ。

<root>
 <hogehoge>
  <pekepeke>
  </pekepeke>
 </hogehoge>
 <hogehoge>
  <pekepeke>
  </pekepeke>
 </hogehoge>
</root>

の間違いじゃないのか?

488:デフォルトの名無しさん
10/07/09 23:27:36
XmlReaderを直接使うのは初心者にはかなり難しいし
慣れてても非常に面倒なのでLINQ to XMLかDOMを使いましょう

489:デフォルトの名無しさん
10/07/09 23:29:40
横レスだけど煩雑なXmlReaderから開放されるなら今まで避けていたLINQ勉強しますね

490:デフォルトの名無しさん
10/07/09 23:35:37
LINQ to XMLはあんまりLINQとは関係ない
LINQ to Objects向けに新しく作られた使いやすさ重視のシンプルなDOMライブラリ
もちろんLINQ使えば便利だけどLINQ使わなくても非常に扱いやすい

491:デフォルトの名無しさん
10/07/10 00:44:35
いやー、LINQ って言葉の指す範囲広いよ。
クエリ式のことでもあるし、
Where とかSelect とかの関数名規約でもあるし、
IEnumerable 返すように設計されたデータ読み書きライブラリのことでもあるし。


492:デフォルトの名無しさん
10/07/10 00:48:45
スパイウェアを仕込んでるJane Styleは危険です。

Google Adsense違反報告スレ Part10
スレリンク(affiliate板)

JaneStyleがスパイウェアみたいな動作するらしい件
スレリンク(poverty板)

【スパイウェア?】JaneStyleで書き込みしようとしたら、○○に情報が送信されていた件
スレリンク(news板)


■Google Adsense 違反通報URL
URLリンク(www.google.com)


※個人情報漏洩による被害者をこれ以上出さない為に、
 このコピペを見つけた方は一人5箇所以上にコピペをお願いします。


493:484
10/07/10 00:54:27
「ルート要素が2つあります。行5、位置2です。」

と出るのです。

494:デフォルトの名無しさん
10/07/10 00:56:40
アホかおまえ

495:デフォルトの名無しさん
10/07/10 01:03:01
>>493
>>487

496:デフォルトの名無しさん
10/07/10 01:16:21
>>493
htmlファイルにhtmlタグがないのと同じ失敗だよ

497:デフォルトの名無しさん
10/07/10 01:33:22
>>483にタイミング外した便乗質問
同じく2.0のListViewのLargeIconモードでデータバインド出来る?
ImageList側のやり方が分からない・・・

498:デフォルトの名無しさん
10/07/10 01:41:11
>>496
4.01 Strictでもhtmlタグは省略できるような…?

>>497
System.Windows.Forms.ListViewはデータバインディングをまともには使えないはず

499:デフォルトの名無しさん
10/07/10 02:06:14
>>498
あーやっぱ無理かー
ListViewでなくてもアイコン敷き詰めてスクロール&クリック出来るコンテナあればいいんだけど
2.0だと無いかねえ

500:名無しさん@そうだ選挙に行こう
10/07/10 09:03:18
>>49
無駄なんじゃない?

>(クレームをつけられたネタであったため、記事の内容を少し改変し、UPし直します。
>前の記事も間違ってないと思っていますが、他の方々への配慮だと思い、改変版をUPします。)
URLリンク(techbank.jp)

ああ、もう突撃とかすんなよ。
また消されたりしたらつまらんだけだ。

501:名無しさん@そうだ選挙に行こう
10/07/10 09:11:33
あからさまにおかしいと指摘された部分は、
指摘の方がおかしいことにしつつ、大人の態度でw配慮して
実は見れなくしてしまうという高度な逃げ技


502:名無しさん@そうだ選挙に行こう
10/07/10 16:05:32
コメント不可にすればいいだけなのに

503:名無しさん@そうだ選挙に行こう
10/07/10 16:14:15
本当に全く何の意味も無い比較
struct Array2 { public int Item1; public int Item2; }と配列を比べて
前者の方がnewが速いから前者を使いましょうと言っている
MSに報告するべきだな
それはともかく、BitArrayはわかるけどBitVectorって何のためにあるんだろう
インデクサがビットの位置じゃなくてマスクになってるけど
ビットマスクがわかるんだったらBitVectorなんか使わずにビット演算使うだろ普通

504:名無しさん@そうだ選挙に行こう
10/07/10 16:15:17
ネットwatch板でやれよ邪魔だから

505:名無しさん@そうだ選挙に行こう
10/07/10 16:21:11
ネットストーカー君にそんなこと言っても無駄だと思うけどねw

俺が炎上させているのではない。
炎上するようなことを書くあいつが悪いのだ、

ってな具合の超「前向キング」な思考をするのがネットストーカー諸氏だからw



506:名無しさん@そうだ選挙に行こう
10/07/10 16:42:22
前向キングってなに?

507:名無しさん@そうだ選挙に行こう
10/07/10 16:49:32
>>505
なに?

508:名無しさん@そうだ選挙に行こう
10/07/10 17:01:00
いまきた俺でもわかるように三行でまとめて

509:名無しさん@そうだ選挙に行こう
10/07/10 17:01:40
読むだけ
時間の
無駄

510:名無しさん@そうだ選挙に行こう
10/07/10 17:05:51




511:名無しさん@そうだ選挙に行こう
10/07/10 21:10:04
あるクラス内で記述する関数の宣言に、以下の規約を
設けようと思う。

このクラス内に記述する関数は、すべて、
string型の引数をもち、string型の値を返す。

C#の言語仕様上で、そういう規約を強制させるような
仕組みは設けられるだろうか?

512:名無しさん@そうだ選挙に行こう
10/07/10 21:14:45
むり

513:名無しさん@そうだ選挙に行こう
10/07/10 21:24:45
インターフェイスでやる(拡張された分についてはどうしようもない)か、
属性やらリフレクションやらで実行時に検査、かなぁ。

514:名無しさん@そうだ選挙に行こう
10/07/10 21:30:10
そもそも何故そんな規約を設けたいのか分からんけど
リフレクションでアセンブリ読み込んで規約違反がないかチェックするツールでも作ったらいいんじゃね。
ビルド後イベントで自動実行するようにしとけば完璧。

515:名無しさん@そうだ選挙に行こう
10/07/10 21:37:28
FxCopでカスタムルール作れば

516:名無しさん@そうだ選挙に行こう
10/07/10 23:12:50
ある晴れた昼下がり 市場へ続く道…(T_T)

517:名無しさん@そうだ選挙に行こう
10/07/11 01:58:54
これまでにYahoo等のアカウントに

HTMLDoc = objeBrowser.Document

を使用して自動ログインするツールを作っていたのですが、
ID・PASSの入力フォームをJavaScrioptでページロード時に
生成されているページの場合には自動でログインさせる事が出来ません。

どうすれば良いのでしょうか?

518:名無しさん@そうだ選挙に行こう
10/07/11 08:17:40
何かとコーディング規約を制定したがる人が多いが大抵は徒労に終わる。

519:名無しさん@そうだ選挙に行こう
10/07/11 08:27:20
POSTしてクッキー保存とかできないの?

520:名無しさん@そうだ選挙に行こう
10/07/11 15:20:06
ControlクラスのDoubleBufferedをtrueにし、
Paintイベントで同じ範囲をFillRect(赤)→FillRect(白)とした場合、一瞬赤色が見えるのは何故なのでしょうか。
Paintイベントで引数に渡ってくるGraphicsオブジェクトは2次バッファの物では無いの?

521:名無しさん@そうだ選挙に行こう
10/07/11 16:30:51
>>518
そして中途半端に守ってるのと守ってないのがでてくるせいで
StrHogehoge と Hogehoge と HogehogeString が混在する現場になるんだよな。

522:名無しさん@そうだ選挙に行こう
10/07/11 17:49:14
Dictionary<,>.GetValueOrDefaultがほしい
TryGetValueはなんか思考を中断される

523:名無しさん@そうだ選挙に行こう
10/07/11 18:00:18
>>522
拡張メソッドで作れないか?

524:名無しさん@そうだ選挙に行こう
10/07/11 18:44:13
>>522
レベルの低い質問者は初心者スレに行け!
マジウザイ

525:名無しさん@そうだ選挙に行こう
10/07/11 18:52:44
>>522
非ジェネリックのIDictionaryだとインデクサが例外投げずにnull返すけど、
それもなんだかなぁって感じだしな

>>523
その程度の汎用的でメジャーな機能くらいフレームワークで用意しろってことじゃないのか
似たようなものだと、ParseOrDefaultとかも用意して欲しいかな

526:名無しさん@そうだ選挙に行こう
10/07/11 19:20:28
ParseOrDefaultなんかいらないよ

527:名無しさん@そうだ選挙に行こう
10/07/11 20:17:14
自分で拡張メソッド書けば。標準では不要。

528:名無しさん@そうだ選挙に行こう
10/07/11 20:28:49
TryParse はいちいち out 用の変数用意しなきゃいけないのがめんどくせえ


529:名無しさん@そうだ選挙に行こう
10/07/11 20:35:11
Parseで例外が投げられるよりましだろ

530:名無しさん@そうだ選挙に行こう
10/07/11 20:38:53
確実に例外が投げられないことがわかっているならParse使えばいいよ

531:名無しさん@そうだ選挙に行こう
10/07/11 20:41:46
URLリンク(support.microsoft.com)

こんな話もあるけどな。

532:名無しさん@そうだ選挙に行こう
10/07/11 21:26:24
>>520
フォームの DoubleBuffered を true にして、
Paintイベントに以下を書いたら赤は見えなかったよ

private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.FillRectangle(Brushes.Red, e.ClipRectangle);
g.FillRectangle(Brushes.White, e.ClipRectangle);
}

533:名無しさん@そうだ選挙に行こう
10/07/11 21:35:43
引数にIDictionary渡す時は何が適切なの?
IList系だとparams 配列 みたいなのが定番だけどIDictionaryはそのまま参照型のまま渡すの?

534:名無しさん@そうだ選挙に行こう
10/07/11 21:38:44
普通IListはIListのまま渡す
IListとparamsがどう関係あるのか知らないけどparams引数はかなりレア
IDictionaryはあまり使わない

535:名無しさん@そうだ選挙に行こう
10/07/11 21:49:14
>>534
そなの?
前、MSの中の人にきいたらIList系は配列型で渡して、params可能ならつける方がいいと言われたよ。
.Netのクラスライブラリもそのポリシーで設計されてるみたい。

今はその人と連絡とれないからIDictionaryはどうなのかと思ったんだけど…。

536:名無しさん@そうだ選挙に行こう
10/07/11 21:50:24
>>531
日付のカルチャ情報は国が違うだけでなく、日付表示を和暦にしたとかだけで影響を受ける場合があるので常に明示的に指定したほうがいいよ。
数値も小数点がカンマという国が結構あるので気をつけたほうがいいし。

537:名無しさん@そうだ選挙に行こう
10/07/11 21:54:05
んなこたー知ってる。>>531の問題は、そういう話じゃない。

538:名無しさん@そうだ選挙に行こう
10/07/11 21:55:26
class myClass{
int a;
public myClass(int num){
a = num;
}
}

class myClass2{
[System.Xml.Serialization.XmlArrayItem(typeof(myClass))]
ArrayList array;
public myClass2(){
array = new ArrayList();
array.add(new myClass(0));
array.add(new myClass(1));
array.add(new myClass2));
}
public void saveXML(){
//XMLファイルに保存する
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeofmyClass2);
System.IO.FileStream fs = new System.IO.FileStream(@"c:\abc.xml", System.IO.FileMode.Create);
//エラーが発生する
serializer.Serialize(fs, this);
//閉じる
fs.Close();
}
}
といった感じにプログラムを書いたのですが
これを逆シリアル化するさいにクラス内にpublic void loadXML()という関数を作って
arrayの中にデータを入れたいのですがどうやってやればいいんでしょうか・・・。
myClass2としてロードすればできるんですがそうするとクラス内に作れないしで・・・。

539:名無しさん@そうだ選挙に行こう
10/07/11 21:56:17
>>534
IList は、メソッドの中で Add とか呼ばれちゃう可能性あるからなぁ。
それを意図しない場合は IEnumerable の方がいいかと。

>>535
今思えば、params は配列型じゃなくて IEnumerable<T> にしてた方がよかったと思うけどね。
まあ、1.0 の頃と今では IEnumerable の地位が大分変ってるんでしょうがないけど。

540:名無しさん@そうだ選挙に行こう
10/07/11 21:56:17
>>535
クラス作成して配列で渡すのが慣わし。
例としてEventArgs等がある。

541:名無しさん@そうだ選挙に行こう
10/07/11 22:00:44
>>539
なるへそ。
オライリーなんかの本だとそうしてるね。

>>540
ふむふむ、イミュータブルなクラスでやり取りする事になるのか。

542:名無しさん@そうだ選挙に行こう
10/07/11 22:02:38
UDPでTCPを模倣してみたがやっぱこういう処理はC#じゃ遅すぎるな

543:名無しさん@そうだ選挙に行こう
10/07/11 22:05:37
ネットワークの処理が遅いとか実装が糞なだけだろ。

544:名無しさん@そうだ選挙に行こう
10/07/11 22:06:15
>>538
staticにする

545:名無しさん@そうだ選挙に行こう
10/07/11 22:12:53
あ、普通にロードしたのをキャストした後にほしい部分だけとりだせばおkでしたね・・・。

546:名無しさん@そうだ選挙に行こう
10/07/11 22:14:49
params付けた方がいいというのは全ての要素をその場で手渡しするような使い方を意図している場合の話だろ。
例えばXElementのコンストラクタはparamだけどそれはコードに階層構造をベタ書きするため。
元からあるリストを渡すためのメソッドならparams付ける意味ないでしょ。

547:名無しさん@そうだ選挙に行こう
10/07/11 22:23:00
だからベタ書き出来るように出来る事ならparamsつけましょって事でしょ。
付けたところで困る事はないしさ。

548:名無しさん@そうだ選挙に行こう
10/07/11 22:39:51
C#が遅すぎるんならSilverlight動画アドインなんて出来るわけないよな。

549:名無しさん@そうだ選挙に行こう
10/07/11 23:01:59
string.Formatで「{0}以上{1}以下」みたいな文字を表示させるときに、
{0}や{1}を表示させない場合は「以上」「以下」も一緒に表示させなくしたい。

色々試してたら↓のコードが上手く行ったんだけど、
この方法ってアリ? たまたま上手く行ってるだけ?

public static void Main()
{
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", null, null));
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", 100, null));
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", 100, 200));
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", null, 200));
}

>100以上
>100以上200以下
>200以下

550:名無しさん@そうだ選挙に行こう
10/07/11 23:10:04
>>548
Silverlightプラグインはほとんどネイティブコードだ
.NETをスクリプティングに使ってるだけで下層のメディア処理はネイティブコードに丸投げ
>>549
そういう仕様じゃなかったっけ

551:名無しさん@そうだ選挙に行こう
10/07/11 23:18:06
そうなの?マルチプラットフォームって聞いてたから。

552:名無しさん@そうだ選挙に行こう
10/07/11 23:21:51
移植するときはネイティブコード部分を入れ替えるだけで済むから
その上で動くマネージコードはマルチプラットフォームだよという意味

553:デフォルトの名無しさん
10/07/11 23:40:26
>>550
ありがとう。見つけられた。

URLリンク(msdn.microsoft.com)
>その他
>上記以外のすべての文字
>文字が結果の文字列にそのままコピーされます。

色々鑑みて「 "{0:#,#'以上'}{1:#,#'以下'}" 」でイケそう。ありがとう!

554:デフォルトの名無しさん
10/07/12 00:43:01
すみません。自分で関数を作りました。もし、戻り値をint型とするとき
成功したら0を返すのか1を返すのかで迷っています。

if文の条件判定でその関数を使う場合1を返したほうがいいですし、
なんかC言語のmain関数なんかは、正常終了の場合、0を返します。

どっちがいいのでしょうか?bool型を使うと簡単なのはわかりますが、int型を戻り値とする場合は
どちらのほうが的確でしょうか?

555:デフォルトの名無しさん
10/07/12 00:49:42
どっちでもいいよ。

556:デフォルトの名無しさん
10/07/12 00:50:59
初期値に0を持たせるのが普通。
その関数で正常終了と判定した後にどうなるかで変わるんじゃないかな。
知らんけど。

557:デフォルトの名無しさん
10/07/12 00:52:54
成功失敗にint型とか仕事なら首に出来る仕様だな。

558:デフォルトの名無しさん
10/07/12 00:54:37
C# なら void にして、失敗なら、例外を投げる。

559:デフォルトの名無しさん
10/07/12 00:56:42
列挙型を返すのは?

560:デフォルトの名無しさん
10/07/12 01:02:32
さあ

561:デフォルトの名無しさん
10/07/12 01:06:42
もう S_OK でいいよ

562:デフォルトの名無しさん
10/07/12 01:17:58
成功か失敗理由かでいいよ

563:デフォルトの名無しさん
10/07/12 01:33:33
うん

564:554
10/07/12 01:37:57
みなさん、どうもありがとうございます。

C言語の文字列操作関係の関数は成功すると0を返すみたいなので、それにならいます(><;)

いろいろと私のせいで議論してくれたみたいで、ありがとうございました(><;)

565:デフォルトの名無しさん
10/07/12 01:42:36
うぜええええ(><;)

566:デフォルトの名無しさん
10/07/12 01:50:25
なんでこんなレベル低いやつがこっちで質問してんだ


567:デフォルトの名無しさん
10/07/12 01:51:51
>>554
C# で書くんなら絶対 bool にしろ。

C 言語とかとの相互運用目的なんだったら、非 0 が true。

main 関数とかの戻り値はあれ、エラーコードなのよ。
HasError == false だから 0。

568:554
10/07/12 02:10:52
>>567
そうなんですね。非0がtrueの方がいいんですね。じゃあ、書き直します。

基本はbool でプログラムしてるんですが、ちょっとしゃれでC言語風に書いてみたいなあと思いまして・・

みなさん、スレ汚しすみません。初心者スレで聞けばよかったです。

569:デフォルトの名無しさん
10/07/12 06:51:13
>>568
C言語は論理式で非0をtrueと扱う言語だから。
C#とかみたいにboolが用意されてる言語ならboolを使うべき。

570:デフォルトの名無しさん
10/07/12 07:12:22
>>565
おはようございます(><;)

571:デフォルトの名無しさん
10/07/12 07:25:28
おい馬鹿やめろ

572:デフォルトの名無しさん
10/07/12 07:28:10
うわなにをする(><;)

573:デフォルトの名無しさん
10/07/12 07:33:15
>if文の条件判定でその関数を使う場合1を返したほうがいいですし、
if(func()) return; /* エラー検出して強制終了とかの場合こうしねえか? */

574:デフォルトの名無しさん
10/07/12 08:45:46
フォームアプリケーションで、ボタンを配置して
そこにフォーカスをあてた状態でリターンキーを押すのですが、
ボタンをおせません。マウスでクリックしたときのような
アニメーションも発生しません。
ボタンを押せるようにするにはどうすればいいでしょうか?

575:デフォルトの名無しさん
10/07/12 09:30:34
そういう風に作ればいい

576:デフォルトの名無しさん
10/07/12 11:30:25
C#2010のコード自動調整(自動でタブを追加したり
switch文を改行したりする機能)って有効にしたまま使ってる?



577:デフォルトの名無しさん
10/07/12 16:48:58
オートフォーマット切るとか考えたこともないわ
コードのフォーマットにこだわって手修正したりする奴は迷惑なだけ

578:デフォルトの名無しさん
10/07/12 18:38:16
デフォの括弧の位置だけは気に入らないけど。。。デフォのままで使ってる。

579:デフォルトの名無しさん
10/07/12 18:48:22
そういや全てのソースを整形するにはどーすんの?

580:デフォルトの名無しさん
10/07/12 19:48:06
返り値をboolで返すのも、IsXXXみたいな十分に明示的なネーミングのメソッドの場合は除くとして、
一般にはうんこだとされてる手法だと思うけど....
そんな程度の人が偉そうに命令口調で講釈垂れてるんだから嫌になるな

581:デフォルトの名無しさん
10/07/12 19:50:15
> 一般にはうんこだとされてる手法だと思うけど....

思わない

582:デフォルトの名無しさん
10/07/12 19:53:10
まあ、馬鹿な君ならそうでしょうとも

583:デフォルトの名無しさん
10/07/12 19:54:38
一般に続く名詞はなんだろうな

584:デフォルトの名無しさん
10/07/12 19:56:00
たとえばTryParseは成功したらTrue、失敗したらFalseだけど
>>580の命名規則にしたがってないからうんこメソッドだな

585:デフォルトの名無しさん
10/07/12 20:07:19
Tell, Don't Ask原理主義者か?何事もほどほどに。

586:デフォルトの名無しさん
10/07/12 21:27:17
最近だとHashSet<T>.Addは要素が重複してても例外を投げずにfalseを返す

587:デフォルトの名無しさん
10/07/12 22:00:20
既にあるVC#プロジェクトでlinq-to-xmlを使いたく、まず最初に
  using System.Xml.Linq;
と宣言を追加しただけの状態でコンパイルしてみたのですが、
  型または名前空間名 'Linq' は名前空間 'System.Xml' に存在しません。アセンブリ参照が不足しています。
というエラーがでるのですが、どうすれば解決できるのですか?

588:デフォルトの名無しさん
10/07/12 22:04:43
System.Linq.Xml.Linq.dllを参照設定に追加する
ターゲットフレームワークは.NET3.5か.NET4に設定する必要がある

589:デフォルトの名無しさん
10/07/12 22:07:14
あきらめろ

590:デフォルトの名無しさん
10/07/12 22:13:00
>>588
ありがとうございます。
対象のフレームワークは、.NerFramework3.5でした。
System.Linq.Xml.Linq.dllの参照設定とはどのようにやるのですか?

591:デフォルトの名無しさん
10/07/12 22:15:29
ねーねー。なんで初心者スレ行かないの?

592:デフォルトの名無しさん
10/07/12 22:21:04
ソリューションエクスプローラで参照設定を右クリックして参照の追加を選ぶ
.NETタブのSystem.Linq.Xml.dllを選んでOK
LINQ to XMLってちょっと癖があって結構難しいよ?
ちゃんとわかってる人のための便利なオモチャって感じ

593:デフォルトの名無しさん
10/07/12 22:33:16
ちゃんとわかってる人のための便利なオモチャって感じだね

594:デフォルトの名無しさん
10/07/12 22:40:03
>>592
おお!できました!
ありがとうございました!

595:デフォルトの名無しさん
10/07/12 22:44:49
>>594
お役に立ててなによりです

596:デフォルトの名無しさん
10/07/12 22:51:40
いえいえどういたしまして

597:デフォルトの名無しさん
10/07/13 20:39:00
File.Replaceってsoruceとdestinationが同じドライブでないとダメなようだけど、
こんな使いにくい制限をわざわざ設けてる理由って何なんだろう。

ファイルを上書き保存する時なんかに、作業ディレクトリに一旦一時ファイルを
作ってから元のファイルを置き換える用途を当然想定してるんだと思ってたが、
こんな制限があったらこういう使い方できないよね。

598:デフォルトの名無しさん
10/07/13 20:47:07
その用途ならMoveでもCopyでもいいだろ

599:デフォルトの名無しさん
10/07/13 20:54:39
馬鹿っぽい(たぶん「ぽい」ではないんだろうが)物言い....

600:デフォルトの名無しさん
10/07/13 20:59:40
>>597
物理的にファイル動かさなくて済むからでしょ。

601:デフォルトの名無しさん
10/07/13 21:05:49
>>600
それは事実としては正しいけど、
それって>>597みたいな制限を正当化する理由になるかね?

602:598
10/07/13 21:16:23
ファイルシステム上のエントリの参照先を変更するだけなんだから
当然ファイルの実体は全部同じボリューム上にある必要があるだろ

603:デフォルトの名無しさん
10/07/13 21:18:39
>>602
言ってる意味分かってる?
だから、そういうシステムの都合があるにせよ、
そのシステムの都合をFile.Replaceに「押し付ける」理由をお聞きしてるわけですが。

604:デフォルトの名無しさん
10/07/13 21:29:48
>>603
MSに聞けとしか。

想像だけどアトミックな操作に使ってくれ(そしてそれは物理ボリュームが別だと無理)ってことなんじゃないの?
同じディレクトリ内の作業でバックアップファイル作るために使うとかさ。

それ以外は Move とか Copy とか使えってことなんじゃないのかね。



605:598
10/07/13 21:31:06
WIN32のReplaceFileをラップしただけだろっつうか
ファイルシステムに依存した機能だからこそアトミック性が保証できるんだろっつうか
逆にファイルシステムの都合に依らないファイル操作なんてありえんのかって話だが

606:デフォルトの名無しさん
10/07/13 21:35:25
なぁ、formの無いプログラムってどうやるん?

タスクトレイだけですませたいんだけど。
フォームがないとデザイン画面でnotifyiconとか作れないし。

607:デフォルトの名無しさん
10/07/13 21:42:00
態度がでかいな

608:デフォルトの名無しさん
10/07/13 21:44:36
あの、すみません。

Formの無いプログラムっていうのは、どうやってつくればよろしいんでしょうか?

タスクトレイだけですまたいんです。

フォームがないとVisualStudioのデザイン画面を使い
NotifyIconコントロールなどを貼り付けたりすることができません。

よろしければ、教えてもらいたいのですが。すみません。どうぞ、宜しくお願いします。


609:デフォルトの名無しさん
10/07/13 21:48:53
改行が多いな

610:デフォルトの名無しさん
10/07/13 21:51:48
あの、すみません。Formの無いプログラムっていうのは、どうやってつくればよろしいんでしょうか?タスクトレイだけですまたいんです。
フォームがないとVisualStudioのデザイン画面を使いNotifyIconコントロールなどを貼り付けたりすることができません。よろしければ、教えてもらいたいのですが。すみません。どうぞ、宜しくお願いします。

611:598
10/07/13 21:53:03
ノリがいいな

612:デフォルトの名無しさん
10/07/13 21:53:40
>>604
ただの愚痴だけど、>>597みたいな処理を安全に書くのって意外と手間だからさ。

安全っていうのは、例えば仮に何らかの理由でオリジナルのファイルを
作業ディレクトリに作った一時フォルダで置き換えられないとしても、
最低限オリジナルのファイルが失われないことを保証しようと思うと結構面倒。

こういうのこそライブラリで用意されるべきだと思うんだけどな。

613:デフォルトの名無しさん
10/07/13 21:54:42
すまたin!

614:デフォルトの名無しさん
10/07/13 21:57:20
今必要だけどないものをウダウダ言ってもムダ
その間にソース書いたほうがよっぽど生産的

615:デフォルトの名無しさん
10/07/13 21:59:14
>>608
notifyIcon.Visible = true;
しといて
Application.Run();
呼ぶだけ。
これでメッセージループが動く。
終わるときは、
Application.Exit();
を呼ぶ。

616:608
10/07/13 22:03:32
>>615
どうも、ありがとうございます。それだけでできるんですか?
とても助かりました。今からやってみます!
他の人もどうもありがとうございました!

617:デフォルトの名無しさん
10/07/13 22:29:35
C#の初心者向けで良い本何かありますか?
あと、C#のソースをJAVAに移植するとしたら、どんな事に気をつければよいですか?

618:デフォルトの名無しさん
10/07/13 22:35:52
@ITで十分
本なんていらん
どうしてもというなら@ITの本があるからそれ買え

619:デフォルトの名無しさん
10/07/13 22:42:28
>>616
最小構成サンプル
using System;
using System.Windows.Forms;
namespace nicon {
public class nicon {
System.Windows.Forms.NotifyIcon icon
= new System.Windows.Forms.NotifyIcon();
System.ComponentModel.ComponentResourceManager res
= new System.ComponentModel.ComponentResourceManager(typeof(nicon));
nicon() {
icon.Icon = (System.Drawing.Icon)res.GetObject("nicon");
icon.ContextMenu = new ContextMenu( new MenuItem[] {
new MenuItem("Exit", delegate { Application.Exit(); } )
});
}
[STAThread]
public static void Main(string[] args) {
nicon inst = new nicon();
inst.icon.Visible = true;
Application.Run();
inst.icon.Dispose();
}
}
}

620:デフォルトの名無しさん
10/07/13 23:42:52
StreamReaderってファイルが無かったりアクセス権がなかったりしたら
例外をスローもせずに完全に固まらないか?

621:デフォルトの名無しさん
10/07/13 23:48:01
んなこたーない。

622:デフォルトの名無しさん
10/07/13 23:56:27
おまえアク禁な

623:デフォルトの名無しさん
10/07/13 23:56:44
>>621
いやなる
Windows7 64bit C:\ルートに存在しないファイル名でStreamReaderやってみそ

624:デフォルトの名無しさん
10/07/13 23:58:00
StreamWriterの方もだわw

625:608
10/07/14 00:00:19
>>619さん。

ぬぁー!どうもありがとうございます。すごい参考になりました!
もう、あとは私の個人的な機能を付加するだけですね(;^_^

個人的な機能もたいしたことがないので、ちょっと追加するだけでよさそうです。
こんなものをパッと書けるなんてすごいですね。

ネットを今、あさってる最中でした。ありがとうございました。ComponentResourceManagerとかすごい参考になります。


626:デフォルトの名無しさん
10/07/14 00:03:04
>>623
いやだよ。

627:621
10/07/14 00:09:35
>>623
Windows7 Ultimate x64 + Visual Studio 2010 Professional

.NET2.0/4.0, x86/x64/AnyCPU, Debug/Release の12通りの組み合わせで試してみたけど、
どの組み合わせでもFileNotFoundExceptionが発生するな。とりあえずソース晒せ。
ちなみに俺はこう書いた。

using (var sr = new StreamReader(@"C:\a.txt"))
{
}


628:デフォルトの名無しさん
10/07/14 00:29:37
using (StreamReader sr = new StreamReader(@"c:\a.txt"))
{
   String data = sr.ReadToEnd();
}
MessageBox.Show("aaa");

複雑なんでFormLoadにこれを書いて試したがやっぱりメッセージが出てこない

629:デフォルトの名無しさん
10/07/14 00:31:21
ちなみにVisualStudio2008の.Net2.0 Windows7 64bit
Windows7はクリーンインストール後、特にフォルダの権限とかいじってない状態です

630:デフォルトの名無しさん
10/07/14 00:35:46
>>625
あのさあ・・・初心者スレに行ってくれないかな?

631:デフォルトの名無しさん
10/07/14 00:43:34
>>628
そりゃc:\a.txtが存在してないならMessageBox.Showが呼び出されることは決して無いだろうが

632:621
10/07/14 00:47:07
>>628
確かにVS2008でデバッグ実行すると、例外が捕捉されないな。

出力ウィンドウを見る限り例外自体は発生しているし、デバッグなしで実行(Ctrl+F5)すれば
ちゃんと例外ハンドラが働くから、VS2008のデバッガの問題っぽい。

メッセージボックスが表示されないこと自体は>>631の言うとおり正常な動作。

とりあえず StreamReader は避けて File.ReadAllLines とか File.ReadAllText を使ったら?

633:デフォルトの名無しさん
10/07/14 00:59:40
>>532
ああほんとだ、デバッグモードのしとけば何か原因が拾えるという思い込みが逆に命取りだった
普通に実行したら例外が出てるね
なんじゃこりゃ

634:デフォルトの名無しさん
10/07/14 01:05:41
100ずれてますよ

635:デフォルトの名無しさん
10/07/14 01:53:49
VS2008のデバッグ実行でも、出力窓には例外が出ているハズ
例外出ても止まったり止まらなかったりするのは割とよくある

636:デフォルトの名無しさん
10/07/14 09:38:11
P2PソフトをC#で作ってみた
DHTを実装して普通に車輪の再発明しても意味がないので
全文検索システムに改造してみた
といっても負荷の予想がつかないので小さいメモを放流して
内容から検索するみたいなそんなものを
理論上数百万件のデータが保持出来る
検索はたぶん1つにつき10分程度かもしれない
ただの実験ソフトなんだけど、実用的に動いたら応用範囲はかなりあると思うのだけど
誰かテストしませんか?

637:デフォルトの名無しさん
10/07/14 09:39:57
するする
面白そう

638:デフォルトの名無しさん
10/07/14 09:44:58
検索に10分?え?

639:デフォルトの名無しさん
10/07/14 11:15:26
>>637
アップロードとかいろいろしないといけないのでしばらくお待ちください

>>638
遅いかな?まあGoogleみたいなのに比べると遅いけど
ネットじゅうに分散したメモから10分で余すところ無く拾い集めてくるってことだよ
といっても予想だけど、シミュレーションではうまく動いてるけど
実際のネット環境では動くかどうか

640:デフォルトの名無しさん
10/07/14 11:34:49
目的のデータを保持してるマシンが24時間稼働とは限らないからね

641:デフォルトの名無しさん
10/07/14 11:38:37
>>577,578
そのまま使ってるのかー。
自分も一応そのまま使ってるけど、2010になってから
かなり補正するようになって使いにくくなった気がする。
;か}が入力されたときに調整してるから}を先に書くと
うまく補正されない。癖の問題ではあるけど。

ところで「基本設定」と「上級者設定」ってのがあるけど、
基本設定の場合、手動で追加しないとタブオーダーと
インデント操作はできないの?

642:デフォルトの名無しさん
10/07/14 11:41:14
P2Pってそれぞれのマシンが落ちててもいいように、自動でキャッシュ持つんじゃないの?

643:デフォルトの名無しさん
10/07/14 11:42:12
うまく補正されない。痔の問題ではあるけど。

に見えた。

644:598
10/07/14 11:43:04
>>641
;}が先に書いてあってもEnter押したらたいがい補正されるだろ?

645:デフォルトの名無しさん
10/07/14 11:45:36
おお、名前が残っていたがもう不要だな

646:デフォルトの名無しさん
10/07/14 11:49:56
641がどんなコードの書き方しててどんなオートフォーマットの動作を難儀に感じてるのか全く分からない

647:デフォルトの名無しさん
10/07/14 12:38:29
>>644
ある程度構文正しければ確かに補正されたと思う。
構文関係は慣れることにします。
>>646
 /*~*/の中に貼り付けすると勝手にインデントする
 (これを直すのにインデント操作ボタンが欲しかったけど基本設定では表示されてなかった)
 /*で改行すると次の行に*が入る
この辺が特に難儀に感じた。

648:デフォルトの名無しさん
10/07/14 12:45:34
まあね

649:デフォルトの名無しさん
10/07/14 14:04:14
すみません、すべてのテキストボックスでエンターが押された時に
フォーム内のボタンを押した事と同じイベントを発生させたいのですが
これはどうやって実現できますか?

また、テキストボックスが10個あるとして
そのすべてに同じKeyUpイベントと処理を記述するのは見通しが悪くなると思うのですが
これを一カ所にまとめる事はできますか?
VB の handle1,handle2 みたいな書き方がしたいのですが

ご教示お願いいたします。

650:デフォルトの名無しさん
10/07/14 14:11:19
>>649
> すみません、すべてのテキストボックスでエンターが押された時に
> フォーム内のボタンを押した事と同じイベントを発生させたいのですが
同じイベントを発生させるんじゃなくて、それぞれのイベントで同じメソッドを呼び出す方向で

> また、テキストボックスが10個あるとして
> そのすべてに同じKeyUpイベントと処理を記述するのは見通しが悪くなると思うのですが
> これを一カ所にまとめる事はできますか?
> VB の handle1,handle2 みたいな書き方がしたいのですが
デザイナでイベントハンドラを既存のに設定する

651:デフォルトの名無しさん
10/07/14 14:12:16
>>650さん
ありがとうございます。
さっそく調べてみます。

652:デフォルトの名無しさん
10/07/14 14:17:14
>>650さん
>デザイナでイベントハンドラを既存のに設定する
できました!ありがとうございます!

653:デフォルトの名無しさん
10/07/14 14:54:09
ListView を仮想モードにした場合、
項目の選択状態を未選択、または先頭の項目を選択状態にするには、
どうすれば良いでしょうか?
SelectedItemsプロパテイでできるかと思いましたが、
仮想モードではエラーとなりました。

654:デフォルトの名無しさん
10/07/14 15:02:49
ListView.VirtualModeの解説に書いてる

655:デフォルトの名無しさん
10/07/14 15:12:14
もう一つ質問なんですが^^;

C#のコードの記法が

if(state)
{
}
とかに自動的になるのが気に入らないんですが

デフォルトを
if(state){
}
にする方法はありますか?

656:653
10/07/14 15:13:54
>>654
SelectedIndices ですね。
大変失礼しました。ありがとうございます。

657:デフォルトの名無しさん
10/07/14 15:24:11
>>655
C#の相談というよりVSの使い方だが
[ツール]→[オプション] の中にテキストエディタの設定をするところがある

658:デフォルトの名無しさん
10/07/14 15:24:27
>>655
オプションのテキストエディタ - C# - 書式設定の中を好きにいじれ
あと初心者用スレもあるから内容に応じて選択しろ

659:デフォルトの名無しさん
10/07/14 15:45:00
\   / .::::::::::::::::::::::::;;:;;::,ッ、::::::   )  く   ホ  す
  \  l  ,ッィrj,rf'"'"'"    lミ::::::: く   れ  モ  ま
     Y           ,! ミ::::::: ヽ  な  以  な
`ヽ、  |           くミ:::::::: ノ   い  外  い
     |、__  ャー--_ニゞ `i::::,rく   か  は
``''ー- ゝ、'l   ゙̄´彑,ヾ   }::;! ,ヘ.)  !  帰
      ゙ソ   """"´`     〉 L_      っ
      /          i  ,  /|    て    r
≡=- 〈´ ,,.._        i  't-'゙ | ,へ     ,r┘
,、 yx=''" `ー{゙ _, -、    ;  l   レ'  ヽr、⌒ヽ'
        ゙、`--─゙      /!         `、
  _,,、-     ゙、 ー''    / ;           `、
-''"_,,、-''"    ゙、    /;;' ,'  /         、\
-''"    /   `ー─''ぐ;;;;' ,'  ノ      
   //    /     ヾ_、=ニ゙

660:デフォルトの名無しさん
10/07/14 15:46:09
うわ-!すみません誤爆です^^;
>>657 >>658さん ありがとうございました!解決しました!

661:デフォルトの名無しさん
10/07/14 15:53:53
>>660
しねよ

662:デフォルトの名無しさん
10/07/14 18:01:14
>>661
お前が市ね、ばか

663:デフォルトの名無しさん
10/07/14 18:03:58
^^; ←これむかつく

664:デフォルトの名無しさん
10/07/14 18:14:27
>>662
じゃあ俺が市ぬよ。

665:デフォルトの名無しさん
10/07/14 20:02:43
System.IO.Directory.GetDirectories("C:");
System.IO.Directory.GetDirectories("C:\\");
って、結果違うのね。。。
フォルダの時はちゃんと\付けて返してくれるのに、
なぜドライブの時は\を付けてくけないのだ。。。

666:デフォルトの名無しさん
10/07/14 20:13:00
それより、ドライブのルートと SearchOption.AllDirectories を指定して
GetFiles や GetDirectories を使うと落ちるのはどうにかならないものか。
SystemVolumeInformationにアクセスしようとして権限違反で落ちるようなんだけど。

667:デフォルトの名無しさん
10/07/14 20:35:01
リンクがループしてると無限ループするって書いてあるし、実用的なオプションとは思えない
TopDirectoryOnlyで例外ハンドルしながら自分で再帰処理するしかないんじゃ

668:デフォルトの名無しさん
10/07/14 21:02:22
いくつか教えてください。
・JapaneseCalendar.Eraから西暦の開始日付を取得したい
・JapaneseCalendar.Eraを"平成"等の文字に変換したい
完全にJapaneseCalendar依存にしたいのでEraをswitch分岐したり
定数で開始日付を固定したくはないのですが出来ますか?



669:デフォルトの名無しさん
10/07/14 21:24:02
前者はリフレクションでJapaneseCalenderのprivateフィールドを読めば可能。
後者はたぶん無理。

670:デフォルトの名無しさん
10/07/14 21:35:43
通常の使い方では無理ってことですね・・・。
Parseで変換できるんだから"平成"等の取得くらいは期待してました・・。
ありがとう。


671:デフォルトの名無しさん
10/07/14 21:41:21
年号の取得はもう一段階上のDateTimeFormatInfoの仕事らしい

672:デフォルトの名無しさん
10/07/14 22:06:49
あれは動けばいい

673:636
10/07/14 22:43:55
初期ノードキャッシュ用と本体配布が出来るCGIが使えるサーバが見つからない

674:デフォルトの名無しさん
10/07/14 22:48:37
GAEは?

675:デフォルトの名無しさん
10/07/14 23:07:44
GAEは?・・・

676:デフォルトの名無しさん
10/07/14 23:20:06
>>670
int era = 0;
var culture = new System.Globalization.CultureInfo("ja-JP", true);
culture.DateTimeFormat.Calendar = new System.Globalization.JapaneseCalendar();
var eraName = culture.DateTimeFormat.GetEraName(era);
で取得できるみたい

677:デフォルトの名無しさん
10/07/14 23:21:05
>>674
面白そうだけどPerl版で普通のhttpリクエストしか実装してないから
GAE専用のアクセスクラスを実装しないといけないので時間が掛かる

678:デフォルトの名無しさん
10/07/14 23:34:43
>>677
そうなのか、サンクス

679:669
10/07/14 23:56:43
>>676
そんな方法があったのか。無知を恥じる。

680:デフォルトの名無しさん
10/07/15 01:57:00
質問でっす
windowsフォームアプリケーションでinvokeを使う場合
this.Invoke(~~~
で使えますがフォームを持たないクラスでこうしたい場合はどのようにすればよいのでしょうか?
分かる方、お願いいたします

681:デフォルトの名無しさん
10/07/15 01:57:58
Invokeの意味わかってんのか?

682:デフォルトの名無しさん
10/07/15 02:07:38
そーーーゆのいいですから、即答お願いいたします~~~orz

683:デフォルトの名無しさん
10/07/15 02:16:44
諦める

コントロールへの参照がないならControl.Invokeする必要ないし
コントロールへの参照があるならそれ使ってInvokeするだけだし

684:デフォルトの名無しさん
10/07/15 02:20:06
出来ない
意味もわからない馬鹿は出直せ

685:デフォルトの名無しさん
10/07/15 02:24:14
InvokeA
Invoke9

686:デフォルトの名無しさん
10/07/15 02:56:44
>>681
そっちこそそういうのいいですからw偽物です

では別クラスのスレッドからフォームを操りたい場合はどうすればいいんでしょうか

687:デフォルトの名無しさん
10/07/15 03:29:10
どうすればも何もそのままだと思うが何が分からんのよ
フォームを操るんだからフォームの参照持ってるだろ?

688:デフォルトの名無しさん
10/07/15 03:42:59
別クラスが引数一つのget_chatというイベントを持っています。
別クラスでは新しいスレッドが作られていてそのスレッド内でイベントを発生させてフォーム側でそのイベントを処理するのですが
フォーム側のソースでイベントの引数を受け取ろうとしたら"有効でないスレッド間の操作"となってしまいます。

現在はフォーム側で
private void get_chat(string chat)
{

this.Invoke((MethodInvoker)delegate()

{
textBox1.Text += chat;
textBox1.Text += "\r\n";
});

}
として無事chatを受け取れているのですがライブラリとして作っているのでフォーム側でこのようにするのは避けたいわけです。

まだ始めたばかりで説明下手ですみません・・・


689:デフォルトの名無しさん
10/07/15 03:46:54
イベント駆動にしてその中でInvokeするだけだろ
何がわかんねぇんだ?

690:デフォルトの名無しさん
10/07/15 03:48:59
今度から初心者スレへ行けよ

691:デフォルトの名無しさん
10/07/15 04:05:11
この辺の話でしょ
URLリンク(cs2ch.blogspot.com)

692:デフォルトの名無しさん
10/07/15 04:07:22
ChatClass.OnGetChat += EventHander(OnGetChat)

private void OnGetChat(Object o, EventArgs e){
textBox1.text += e.chat;
}



ClatClass
{
private RecvThread (){
socket.recv(*****)
if(OnGetChat != null){
ここでinvokeしてOnGetChatを呼び出したい

}

という意味では?}

693:デフォルトの名無しさん
10/07/15 04:09:34
気持ち悪い実装だな
クラスからフォームのメソッド呼び出すとかどんな設計だよ

694:デフォルトの名無しさん
10/07/15 04:16:43
外部スレッドで発生したイベントは当然フォームではメインスレッドで動かさないといけないのに
イベント処理が別スレッドのまま渡されてすべてユーザーがフォームでInvokeしないといけない
なんて仕様の方が気持ち悪い、意味分からない、利点が思いつかない
自分も外部クラスでラップしたイベントがいちいちユーザーが使う時にInvokeしないと使えないなんて
無様すぎるから疑問に思ってたけど、これといった解決策が分からないままでいた

695:デフォルトの名無しさん
10/07/15 04:19:19
Javaを含むあらゆる言語を否定した出したよこいつ…

696:デフォルトの名無しさん
10/07/15 04:23:01
>>695
ジャバは知らないがMFCとかC++SDKとかイベントループは各フォームが1個づつ持ってて
外部から投げようがメインスレッドで確実に処理される
単に別スレッドのまま呼び出すのはただのコールバックだし
それだったらわざわざEventHandlerなんて意味深なものを用意する意味が分からないんだが

697:デフォルトの名無しさん
10/07/15 04:31:23
C#やめてC++使えば?

698:デフォルトの名無しさん
10/07/15 04:32:45
とにかくこいつを初心者スレへ連れて行け

699:デフォルトの名無しさん
10/07/15 04:35:28
basicはgotoを使うのが当たり前なのに
C#は何でgotoを使ったらいけないみたいな風潮なの?気持ち悪っ!
とか何とか言い出しそうだなw

700:デフォルトの名無しさん
10/07/15 04:42:42
多言語と比較は意味ないよねぇー
だって、仕様(しょう)がない。。。

701:デフォルトの名無しさん
10/07/15 04:53:18
ようするに
MFCは旧来のオブジェクト指向言語のイベントは
メインスレッド <- 外部スレッドがポストだったんだけど
JavaをベースにしたC#は
メインスレッド->外部スレッドに関数ポインタ(デリゲート)を渡して呼び出してもらう
にしたからクラスで完結したイベント処理が「不可能」なんだな
やりたくでも出来ないんだw
かっこ悪いのは分かってるけど出来ないんだw

もし無理やりやるとしたら
外部クラスでデリゲートをキューしておいて
メインスレッドのフォームからそれを一括呼び出しする関数を呼び出すみたいな
そういうことしか方法がないのかもしれない

>>698>>699はそこまで考える頭が無いのは分かってるが

702:デフォルトの名無しさん
10/07/15 04:55:15
せめてオブジェクトクラスにそういうことをあらかじめやってくれる
イベントキューみたいなのを包めて設計して欲しかったな

703:デフォルトの名無しさん
10/07/15 05:20:55
久しぶりに痛い奴に遭遇した

704:デフォルトの名無しさん
10/07/15 05:27:30
>>673
自分で用意すればいいじゃん

705:デフォルトの名無しさん
10/07/15 05:27:39

rem dirの出力をクリップボードに取り込む
dir | clip

rem クリップボードの内容を表示
clip

こういうコンソールアプリを実装したい場合、
上下の処理の分岐ってどう書けばいいんですか?

706:デフォルトの名無しさん
10/07/15 05:38:06
ComboBoxのテキストを編集できないようにする方法を教えてください。

707:デフォルトの名無しさん
10/07/15 06:19:00
>>688
ISynchronizeInvokeでググれ

708:デフォルトの名無しさん
10/07/15 06:28:20
>>707

rem dirの出力をクリップボードに取り込む
dir | clip

rem クリップボードの内容を表示
clip

こういうコンソールアプリを実装したい場合、
上下の処理の分岐ってどう書けばいいんですか?


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