1 名前:名無しぃ♯ [2008/06/21(土) 17:51:22 ] (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 c++厨の嵐はスルー汁。 前スレ C#, C♯, C#相談室 Part46 pc11.2ch.net/test/read.cgi/tech/1208791919/ その他テンプレ>>2-5 くらい
2 名前:名無しぃ♯ mailto:sage [2008/06/21(土) 17:52:16 ] Visual C# 2005 Express Edition 日本語版 www.microsoft.com/japan/msdn/vstudio/express/vcsharp/ ふらっとC#,C♯,C#(初心者用) Part28 pc11.2ch.net/test/read.cgi/tech/1211688164/ MSDN2 msdn2.microsoft.com/ja-jp/library/default.aspx pinvoke.net: the interop wiki! pinvoke.net/
3 名前:名無しぃ♯ mailto:sage [2008/06/21(土) 17:53:07 ] @IT Insider.NET ttp://www.atmarkit.co.jp/fdotnet/index.html Insider.NET 会議室 ディレクトリ ttp://www.atmarkit.co.jp/fdotnet/index/bbs/index.html 宇宙仮面の C# プログラミング / C# Programming ttp://ukamen.hp.infoseek.co.jp/ WisdomSoft C#入門 ttp://wisdom.sakura.ne.jp/programming/cs/index.html WisdomSoft Microsoft .NET入門 ttp://black.sakura.ne.jp/~third/system/msnet/msnet.html どっとねっとふぁん ttp://dotnetfan.org/ 緑のバイク 初めてのC# 〜 覚え書き 〜 ttp://homepage3.nifty.com/midori_no_bike/CS/ どぼん!の .NET Tips ttp://dobon.net/vb/dotnet/
4 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 17:54:26 ] 立てた……んだが致命的にスレタイトル間違った……orz スマンかった 次のスレはちゃんと頭のゴミ消しといてくれ
5 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 17:59:55 ] これはwwそれはともかく>>1 乙
6 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 18:33:49 ] >>1 おつ、マ板になってないからぜんぜんOK!
7 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 18:44:15 ] スレタイがうんこ…
8 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 20:28:04 ] >>4 これくらい致命的じゃ無いな 次立てる事があれば気をつけてくれ 乙
9 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 00:13:20 ] スレタイだけでどの板に立ってるか分かるぜ
10 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 00:19:04 ] 1000なら次はこれになる [プログラマー板] C#, C♯, C#相談室 Part48
11 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 07:31:06 ] スレタイ噴いたww 笑いをくれた>>1 乙www
12 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:39:41 ] VS C#でデバッグ終了時に20秒ほど待たされるのはなぜ?対処方法ありませんか?
13 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:43:13 ] 気になるほど待たされたことは無い。 PCのスペックの問題か、プログラムの内容の問題と思われ。
14 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:55:15 ] スタートページを開いているとデバッグ終了時に待たされるかな
15 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 13:01:38 ] >>14 それだ!まさにそれだった。天ぷら物だ
16 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 13:27:08 ] 参考になった
17 名前:デフォルトの名無しさん [2008/06/22(日) 22:29:30 ] RichTextBoxではなくTextBoxで 特定の文字に色もしくは特定の文字に背景色を設定することは 不可能ですか? 不可能な場合、自作コントロールだと思うのですが、 どのように作っていくのが良いですか?
18 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 23:16:43 ] なんでそんなにRichTextBoxがいやなんだよw
19 名前:デフォルトの名無しさん [2008/06/22(日) 23:33:25 ] はい。あの独特のスクロールが嫌なんです。 TextBoxだとホイールとかなり同期して動いてくれますが、 RichTextBoxのあの遅いスクロールが今回のモノによろしくなくて。。。 TextBoxばりのスクロールにする方法があれば、解決です。
20 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 01:47:31 ] いいとこどりすればいい
21 名前:デフォルトの名無しさん [2008/06/24(火) 00:28:08 ] いいとこどりとは?
22 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:16:23 ] 立地にしてスクロールだけなんとかすりゃいい
23 名前:デフォルトの名無しさん [2008/06/24(火) 22:47:16 ] nijibox.ohflip.com/futabafiles/001/src/sa26951.txt 3a-2b+ -1d= 7 2b+2c+ d= 5 a-2b-3c-2d=-1 b+2c+ d= 6 という行列を解くプログラムを作りたいのですがエラーが出てうまくいきません どなたか間違えの指摘などをお願いできないでしょうか? 解き方はピポット選択で前進消去法です、お願いします。
24 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:53:03 ] Cはスレ違い
25 名前:23 [2008/06/24(火) 22:53:54 ] ・・・(汗 指摘ありですノシ
26 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 09:58:48 ] すごくマニアックなDBMSを使ってるんだけど、ODBCとADO用のプロバイダしか用意してない。 これをOLEでつなぐことってできるの?ちなみにODBC-OLEブリッジは、使えなかった(例外が出る)。
27 名前:デフォルトの名無しさん [2008/06/26(木) 12:01:01 ] .NET + DirectXという構成を64bit環境で使いたいのですが、Managed DirectXは 32bitしか対応していないとのことで困っています。 下のサイトで対応方法のヒントらしき情報は見つけたのですが、 すでに出来上がってるラッパーライブラリ等はないでしょうか? d.hatena.ne.jp/NyaRuRu/20061130/p1
28 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 12:17:53 ] SlimDXを64bit用に再コンパイルしたらって意見が海外の掲示板にあるな
29 名前:デフォルトの名無しさん [2008/06/26(木) 15:12:42 ] C#から動的にCOMのVTable Orderを取得する方法を御教授ください。 IUnknownを例とすると、下記のように表示するプログラムを作りたい のですが、まったく方法がわかりません。 QueryInterface 0 AddRef 1 ・ ・
30 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 18:20:47 ] typelibがあるならそれから引っ張り出すしかない。 interface IWksImagingServer : IDispatch { [id(0x00000001), propget, helpstring("property ImagingServicesInterface")] HRESULT ImagingServicesInterface([out, retval] unsigned long* pVal); もしid(0x00000001)のことだったら、それはDispach IDだから動的に取れる。 IDispachを実装してないI/Fには当然そんなものはない。
31 名前:デフォルトの名無しさん [2008/06/27(金) 13:15:03 ] C#でNクィーンを作る方法を教えてください。 ぐぐってもほとんどjavaやCばかりで・・・・
32 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 13:15:26 ] 応用しろ
33 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 13:16:54 ] BOINCでもやれ
34 名前:デフォルトの名無しさん [2008/06/27(金) 15:57:29 ] いくら考えてもさっぱり分かりません。 どなたかNクィーンの勉強にいいサイトは知りませんでしょうか?
35 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 16:00:56 ] どうしたいのかまるで伝わらないのでエスパーでも呼べ
36 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 16:24:49 ] >>1 >Visual C# 2005 Express Edition 日本語版 >www.microsoft.com/japan/msdn/vstudio/express/vcsharp/ このスレでは2008でなく2005推奨なの?
37 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 16:42:06 ] >>34 まず、C#でNクイーンを解くプログラムを作りたいと => これはおk で、現状の理解度について ・アルゴリズム(解法)を理解していない => スレ違いだから理解してから出直せ ・アルゴリズムを理解したうえで、C#での記述の仕方が分からない => 分からない箇所を具体的に書け >>36 どれが推奨とかは多分ないはず ただ、環境を明示しない質問は自動的に最新版(VS2008、.NET3.5、C#3.0)とみなされるが
38 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 22:19:29 ] >>36 変更忘れてるだけでしょ Express入れるんだったら特に理由がなければ迷わず2008 C#な人って新しもの好きが多いし
39 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 22:26:40 ] リンク先はどうせ2008だしなー
40 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 22:52:58 ] すっかりラムダ中毒で () => がないと生きていけない体に
41 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 22:58:38 ] () => _| ̄|○ こうですか?わかりません(><)
42 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 23:07:36 ] ラムダなぁ・・・ エディットコンティニューと中からのyieldさえあれば神だったんだが。
43 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 10:57:14 ] yieldは大量のコードを生成するから手軽に使われたくないんだろうな
44 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 11:11:21 ] どこかの記事で中の人が クロージャ内で yield 書けるようにしとけばよかったって言ってた気が。
45 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 11:48:49 ] 今からでも変えてくれ
46 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 12:12:05 ] まだ C# 4.0 はプレビュー版すら出てないからなぁ。 今までの感じから言って、プレビュー版が出てからですら 正式版まで1・2年かかるから、 今、「次で対応します」と言っても、だいぶ先の話になる。
47 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 12:35:44 ] そこでC#3.5ですよっと C#4.0はどんなのになるんだろ
48 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 07:55:50 ] そこでF#ですよ
49 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 00:24:59 ] C#の次期バージョンの情報はないんけ?
50 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 01:04:10 ] >>49 C# "Future Focus" でググると多少出てくる。 まだMS社員が「こんなアイディア持ってるよ」ってレベルで、 仕様と呼べる段階じゃないけど。
51 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 08:36:11 ] 言語の仕様をコロコロかえんでください それより便利なライブラリ提供してくれたほうがうれしいです
52 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 09:23:37 ] obsoleteになった仕様って無いんだし変えたわけではないと思うが
53 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 10:56:32 ] C#は言語仕様を変えたことはないよね
54 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 12:17:06 ] 便利なライブラリってどんなの? 四次元ポケットとか?
55 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 21:34:50 ] 匿名型を入れるコレクションを作ろうと思うと ダミーの匿名型のオブジェクトをジェネリックメソッドの引数に渡すとか 変態的なことしないといけないのは何とかしてほしい
56 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 21:46:54 ] …? 無名型 Array か ToList でええやん
57 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 21:53:34 ] >>51 .NET 3.0, 3.5 はライブラリ追加がメインじゃん。 なんか、「Windowsプログラミングの極意」に書いてあった話思い出すな。 「見た目ばかり変えてないで中身改善しろよ」という人に限って、 「電卓、代り映えしないよね」という。 実際には電卓の中身ものすごい変わってるのに。
58 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 21:56:38 ] >>55 var list = Enumerable.Range(0, 0).Select(x => new { X = 0.0, Y = 0.0 }).ToList(); 我ながら変態的w
59 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 21:57:27 ] 足したり引いたりが簡単にできるVectorクラスとか? んあに含まれてるけど、これのためだけに使うのはどうかと思う ところでxnaってどう読めばいいの?エクセナ?クセナ?んあ?クロスナ?エックス菜?ペケナ?ゼーナ?
60 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 22:02:42 ] >>59 3.5 にあるよ、Vector クラス。 System.Windows.Vector と System.Windows.Media.Media3D.Vector3D。 XNA は普通にエックス・エヌ・エー。
61 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 22:13:35 ] WPFは3.0だぜ
62 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 22:17:56 ] XNA's Not Acronymed >>59 というか Linq みたいなんは基本的に副作用、状態を途中で変えるの 嫌って書いたほうがよい。足したいなら .Concat(...) で結合。
63 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 22:20:30 ] あごめん、足すって binary operator みたいなのか。
64 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 22:54:37 ] どう考えても数学でいうベクトルのこと
65 名前:デフォルトの名無しさん [2008/07/01(火) 22:57:13 ] XmlSerializerでシリアライズするとき、 要素にNamespaceを設定すると <element xmlns="namespace-test"> 〜〜〜 </element> ってなるけど <test:element xmlns:test="namespace-test"> 〜〜〜 </test:element> ってできない?
66 名前:65 mailto:sage [2008/07/01(火) 23:24:33 ] 事故解決 シリアライズするクラスのメンバにXmlSerializerNamespaces入れたらできた
67 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 17:36:23 ] 質問です>< Microsoft.DirectX.AudioVideoPlayback.Videoでビデオを開放するにはどうしたらいいですか? Openすると前のファイルを開いたまま開いちゃうしDispose()しても開放してくれないです><
68 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 01:59:39 ] 指定フォルダ中の Word Excell PowerPoint ファイルに 指定したパスワードを掛ける/外す処理を行うにはどうすればよいのでしょうか? (C# や .NET で MS OFFICE ファイルを操作できると思っているのですが、無理でしょうか?)
69 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 03:27:02 ] ttp://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_04/csharp30_04_01.html 最近とみに無理やり感が強くなってる気がする…
70 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 04:34:04 ] >>69 VBの場合見かけ上プロパティの参照が渡せるように書けるから話がややこしい
71 名前:デフォルトの名無しさん [2008/07/05(土) 07:37:09 ] >>68 開くときはdocuments.openでPasswordDocumentかWritePasswordDocument あたりのパラメータに渡してやればいいと思うが。 保存時はdocument.passwordを設定して、document.saveでいけるんじゃね? >C# や .NET で MS OFFICE ファイルを操作できると思っているのですが、無理でしょうか? そもそもoffceのオブジェクトにc#からアクセスする方法がわからんというレベルなら、 MSDNで調べてくれ
72 名前:デフォルトの名無しさん [2008/07/05(土) 11:55:20 ] ManagementObjectCollectionのDispose呼ぶとコレクションの内容もDisposeされる? 列挙したそれぞれの要素もDisposeしなきゃだめ?
73 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 15:00:53 ] >>69 どうせ書くなら具体的に書けよ。 どうせ自分の感覚に自身がないから誰かが賛同してくれるの待ってるんだろ?w 実に女々しいというか悲しい奴だなあんた。
74 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:17:45 ] >>69 ネタがないんだろうな。
75 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:23:16 ] なんで川俣の記事に何かいったらやたら突っかかる奴がでるの?
76 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:25:11 ] そりゃ川俣の記事に何かいうやつが阿呆ばかりだからだろう。
77 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:27:15 ] そうなの?
78 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:29:55 ] getter setter渡すように書き換えるくらいなら変数ひとつ使えばいいのに…
79 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 20:11:20 ] 小ネタを大げさに記事にするのって川俣の昔からの芸風ですから。
80 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 20:29:09 ] そういう奴はたまには技術書や教科書以外の本も読んでその偏向した感覚を 矯正した方がいいんじゃないの?w 別にああいう文体って結構ありがちだと思うぞ。 プログラミングとか工学系の本じゃ珍しいのは確かだが。 っていうかプログラミング系の日本人ライターにありがちなヲタ臭い文体の奴よりずっとましだと思うが。 「幸せになれる」だの意味なく文頭に#付けたりだの、ヲタ系のプログラマ以外一般に誰も使わない 表現や言い回しを好む奴ね。
81 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 21:04:09 ] ありがちだけどみんなキモク感じるだけ。 まあ別にそういうもんだと思って読むだけだが。
82 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 21:43:33 ] 「幸せになれる」系と比べても、「マシ」だとは思えないけどな。 「人類の発展に貢献する」系に比べたら、マシには見えるけど。
83 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 22:45:02 ] 「みんなキモく」って何を根拠に? こういう小ネタ面白いと思うけど。 「幸せになれる」って聞くとなんとなく幸せなんだけどw 人の文体がいちいち気になるものなの? #はメリハリついて分かり易いと思うんだけど。
84 名前:68 mailto:sage [2008/07/06(日) 00:24:24 ] >>71 やってみます。ありがとう!
85 名前:デフォルトの名無しさん [2008/07/06(日) 20:31:48 ] C++のDLL(非COM)の関数(WINAPI型)から、 C#のWindowsアプリケーションに C#からみてobject型の配列(2次元)を渡すとき、 何かいい方法はありませんか? 現状は、C++側の関数のout引数に *variant型を設定し、C#側からobject型と してみせて取得しようと思っています。 ・・・他にいい方法があれば教えて下さい。 お願いします。
86 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 20:33:05 ] GCHandleまわせばいいだろ
87 名前:デフォルトの名無しさん [2008/07/06(日) 21:23:47 ] >>90 「幸せになれる」ってたとえば 「hogeをプロパティにしておけば幸せになれるかもしれない」って奴のことか? むしろ、自分以外に使う人がいたのがびっくりだが、ヲタとか関係ないだろ?(そもそも自分はヲタじゃないしな) #を付けるのは確かに一部の人間だろうね。 でも#でコメントアウトするスクリプトや設定ファイルは結構多いから、誰にでも通じるとは思うけどね。
88 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 21:47:34 ] 統合失調の人? 「自分以外に使う人がいたのがびっくりだが」ってw 「幸せになれる」だの「ごにょごにょする」だの、 ヲタ系プログラマ(ただし本人たちにその自覚は乏しい)しか使わない 独特の言い回しを使う奴っていっぱいいるでしょ。
89 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 21:49:57 ] 一時期はやったような気がするけど、最近はみないような気もする > 幸せになれる
90 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 21:51:52 ] 端的に気持ち悪いし、PGのマンガ的なステロタイプを作ってるのはこいつらなわけで、 正直消えてなくなてほしいよこういう連中は。
91 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 21:58:26 ] PGって略がなんか気になるんだよな。
92 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 21:58:34 ] 川俣とかある種のオタの典型みたいなもんだしな。
93 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:20:44 ] 特定の職業の連中が変わった言葉遣いをすることなんて世の中いくらでもあるだろ。 土方には土方の方言があるし、医者は医者の言葉を使うだろ。
94 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:29:13 ] だいじょうぶその読解力? 特定の職業(プログラマ)の言葉遣いを槍玉に挙げているのではない。 ヲタ系の気色の悪い連中の言葉遣いにケチをつけてるんだよ。
95 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:34:12 ] オタPGの言葉遣いが、世間のPG像のステレオタイプになってるってるから迷惑ってのはいいがかりもいいとこだろ。 メジャーなメディアで「幸せになります」とかいってるPGなんて見たことない。
96 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:37:44 ] ちゃんと小学校でてるか? どんな読解力だよ。 >端的に気持ち悪いし、PGのマンガ的なステロタイプを作ってるのはこいつらなわけで、 >正直消えてなくなてほしいよこういう連中は どこにも >オタPGの言葉遣いが、世間のPG像のステレオタイプになってるってる などという趣旨のことは書いてない。
97 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:39:20 ] じゃあ、あんたが個人的にキモがってるってだけの話か。 どうでもいい話だね。
98 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:49:16 ] >>端的に気持ち悪いし、PGのマンガ的なステロタイプを作ってるのはこいつらなわけで、 世間じゃなかったら、だれに、漫画的なイメージを持たれて「消えてほしい」と思うくらい不愉快に思ってるんだろう。
99 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 12:21:28 ] その実装の方が幸せになれる、って頻繁に使わないか?
100 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 12:25:30 ] 使わないね
101 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 12:28:10 ] 板違い
102 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 13:22:48 ] そっか、俺よく使うわ
103 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 20:06:34 ] すみません、質問です。 Visual C# 2005 Express Edition と Visual C# 2008 Express Edition にはどのような違いがあるのでしょうか。 現在のPCのOSが2000でありまして、VC# 2008をインストールすることができないと言われます。 もし両者にそれほどの差異がないのであれば2005を使おうかと思うわけなんですが。 codezine.jp/a/article/aid/2184.aspx?p=1 は目を通してみました。 C#のバージョンが3.0になっているようなんですが、 ufcpp.net/study/csharp/ のサイトで見る限り、初心者の私がすぐに不便さを感じるようなものでもない気はしました。 後日PCを新しくしたときにXPにする予定なので、その際にVC# 2008を入れたとしても、特に問題はなさそうでしょうか? それとも、2008で増えた機能というのは初心者でも必須ないし、あった方がよさそうなものですかね。
104 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 20:10:48 ] 割と前に見たのだが、C#で回転するメニューが実装できるコンポーネントみたいなのがあったはずなのだが 名前が思い出せね 誰か教えてくれ
105 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 20:13:50 ] 初心者なら2005EEでも使いこなせない程十分な機能があるよ
106 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 20:15:31 ] >>103 WPFやLinqが使いたいなら2008かな?あとラムダ式も使えるようになってる。 (ラムダ式ってのはデリゲートを簡単に書くための構文だな。記述法というだけだから必須ではない) >>104 コントロールを回転・縮小・拡大したいならWPFで出来るよ。
107 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 20:40:14 ] >>105-106 どもども、ありがとうございます。 PC買い換えまでは2005でやってみます。
108 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 21:12:38 ] >>104 標準ではなくてフリーライブラリだけど、カルーセル?
109 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 21:23:02 ] >>106 WPF使うってのもありか >>108 いや横に回転するのではなくて円形に回転するやつ www.forest.impress.co.jp/article/2004/09/30/sklaunch.html みたいなのに近い どこかの会社が無料で出してた気がするのだが
110 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 21:44:40 ] 前にスラッシュドットで取り上げられてた気がする WPFでの実装だったと思うけど
111 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 21:51:13 ] >>110 あったありがとう slashdot.jp/developers/article.pl?sid=08/03/18/0948257&threshold=-1 これで安心して眠れる
112 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 21:54:21 ] 回転するメニューってものの操作性がピンとこないのは 俺の想像力が欠如してるせい? っていうかうっとうしくないのかなそれw
113 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 22:58:24 ] >>112 回転メニューの有用性はスターオーシャンと聖剣伝説で実証済み テイルズシリーズでも採用されてたっけ?(テイルズはやらないので知らない)
114 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 23:07:13 ] リングコマンドはスケーラビリティや情報量が低いため使える範囲はかなり狭い
115 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 23:26:47 ] >>113 なんか視野狭窄というか、オレサマ=世界のいわゆる「セカイ系」の人? 君が思ってるほどゲームをやる人種ってのは多くないんだよ。 少なくとも俺はゲームなんてまったくやらない。 そんな一方的にそのスターなんたらを知ってる前提の話をされてもね。
116 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 23:32:24 ] 無知な上ググる事もできない奴が偉そうに言ったところで
117 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 23:57:32 ] リボンとかドッキングとかってSP1で追加されるんだっけ? いつでるんだっけ?
118 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:07:04 ] しらないけど来るならWPFじゃね
119 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:14:49 ] >>117 SP1 で追加されるのは MFC 版。 MFC Feature Pack っていうんだけど、英語版はすでに正式版が出てる。 日本語は VS 2008 SP1 に同梱。 WPF のリボンは年末くらいを目標に作ってるらしい。 ドッキングは不明。
120 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:38:41 ] >>115 ググれば直ぐ見つかるような有名なゲームだし、最悪分かる人に分かれば良い内容です。 (さすがにSO2とか略したら二酸化硫黄と区別つかないけどなw) そもそも、「俺の分かる話しかするな」って言われたら… 本「期待値とは物理で言うところの重心です。(期待値も重心も相加平均です)」 A「ああ、なるほど。」 B「物理なんて知るか。この本、腐ってやがる。出版社に文句言おう!」 …なんて事になるからそんな事言う人はいないよね?
121 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:45:15 ] 馬鹿はしょうがないな。 その物理学(学問の最高峰)とゲーム(たかだか「お前」が知ってるだけ)を 並列することになんの疑問も抱かないようなメンタルを「セカイ系」と呼ぶんだよ。
122 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:50:38 ] ↑マジ脳みそ腐ってんじゃね?
123 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:56:08 ] そんなだからセカイ系とか言われるんだよ
124 名前:デフォルトの名無しさん [2008/07/08(火) 00:56:58 ] >>121 ( ゚д゚ ) セカイ系 の検索結果 約 456,000 件中 1 - 10 件目 (0.24 秒) StarOcean の検索結果 約 3,360,000 件中 1 - 10 件目 (0.28 秒) ( ゚д゚ ) ( ゚ д ゚ ) さすがに物理で検索したら136,000,000越えるけど、君の言うセカイ系って何?スイーツ(笑)みたいなやつ?
125 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:57:47 ] 糞スレ
126 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 01:01:27 ] 釣りだろ じゃなかったら馬鹿過ぎる
127 名前:113=120=124 mailto:sage [2008/07/08(火) 01:07:22 ] sage忘れスマソ で結局、RingMenuって便利なの? RingMenuForOSは起動しないし、SDKは相変わらず登録が必要だし…だれか感想求む
128 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 01:47:32 ] 家庭用ゲーム機のような入力装置に制限のある場合は有効だろうけど、 PCではどうだか。
129 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 03:43:50 ] というよりマウスではどうだかだけど、キーボードからなら割合ありな 気がする。使ってないけど聖剣あたりの記憶をたどってみると。 Alt(Win) + Tab みたいなかんじでくるくるみたいな。
130 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 03:53:14 ] リングメニューは一番裏まで回すのが面倒くさすぎ。 ポインティングデバイスもアルファベットの刻印されたキーもない環境専用だろ。
131 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 10:07:02 ] アイコンの方がダイヤルみたいに回るだけ? 例えば12時にカーソルがあって6時を選択したい時は左右キーでアイコンを回すって感じ? カーソルの方が動くんだったら下キーで一発だけど。
132 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 17:21:18 ] リングメニューってこれ? ttp://www.ringmenu.jp/demonstration.aspx
133 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 22:44:36 ] Compact frameworkで.net Remotingが使えないのですが、RPCをやる方法って他にないですかね? とりあえず、XML-RPC.netが使えそうなんですが、他に何かいい案は、ないでしょうか。
134 名前:デフォルトの名無しさん [2008/07/08(火) 23:25:43 ] 圧縮しなくてもいいので、ファイルをひとつにまとめたい時ってどうすればいいんでしょうか。 Jpegファイルを集めて、先頭に取り出すための情報を詰めて、後でまた戻すといったやり方がしたいんです。
135 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:28:09 ] >>134 * tar * 非圧縮zip
136 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:46:34 ] そもそも書庫ファイルというのはだな、
137 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 01:40:32 ] >>134 それをC#で書きたいのか?、ツール使いたいのかハッキリしろ。 もしツールなら、スレチだボケ!
138 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 12:22:53 ] C#2008 Express WPFアプリケーション UserControlから派生した独自コントロールを作ってます。 Disposeが必要なリソースを扱ってるため、Unloadedイベントで後始末を行ってるのですが 明示的に親要素から削除すれば呼ばれるのですが、ウィンドウを閉じた場合には呼ばれませんでした。 ウィンドウを閉じた時にコントロールに通知されるイベントはありませんか?
139 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 13:00:36 ] VC#2005Expressを使って下記プログラムを作成しています。 ・IMEに文字情報を与えて変換候補の一覧を取得 Imm32.dllをインポートする部分はわかったのですが ImmGetCandidateList関数に渡す変換候補一覧を格納するバッファの構造体 の定義の仕方などがよくわかりません。 またImmGetCandidateList関数はいきなり使って大丈夫なのでしょうか? ハンドルとかいろいろ渡すようなのですが・・・
140 名前:139 mailto:sage [2008/07/10(木) 13:11:45 ] 宿題のほうへいきます。 こちらは無しでお願いします。
141 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 13:21:48 ] 昔ターミナル作った時にやったな
142 名前:139 mailto:sage [2008/07/10(木) 13:23:12 ] C#以前のサンプルは見かけるんですが、C#にどのようにもってくればいいのかわからずorz
143 名前:デフォルトの名無しさん [2008/07/10(木) 14:55:21 ] public class Hhoge<A,B> where A:new(){} は当然いけるのだけど public class Hhoge<A,B> where A:new(B){} ができない(Aの型を、Bが引き数のコンストラクタを持つクラスだけにしたい) こういう制限ってかけることできないのかな
144 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 15:03:46 ] できない
145 名前:143 [2008/07/10(木) 15:06:43 ] >>144 ありがとうございます できない理由とか解説してるページって知りませんか?
146 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 15:08:45 ] >>145 理由も何もコンストラクタ制約はnew()以外にないから
147 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 22:45:42 ] URLに全角文字を指定する際によく使われる%xx%xx%xxといった形式に 変換する関数とかありますでしょうか?
148 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 22:47:01 ] >>147 つwww.atmarkit.co.jp/fdotnet/dotnettips/212urlencode/urlencode.html
149 名前:147 mailto:sage [2008/07/10(木) 23:00:21 ] >>148 ありがとうございます。
150 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 02:03:35 ] label1.Textからlabel2と代入していく場合、 forループ内ではどうやって記述したらいいのでしょうか? やっぱり事前に配列を作る等の下準備が無いと駄目ですか?
151 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 03:27:51 ] あなたの望む仕様がわかりませんがエスパーで答えてみます。 何度も呼ぶ場合は配列を作った方がいいと思います。 foreach (Control c in this.Controls) { Label l = c as Label; if (c == null) continue; if (l.Name.StartsWith("label") & int.Parse(l.Name.Substring(5)) > 1) l.Text = Label1.Text; }
152 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 03:32:28 ] 上のはcのnullチェックしてもしょうがないな。 てかfor文で書くのか。 for (int i=2; i<=5; i++) { Label l = this.Controls.Find("label" + i.ToString(), false)[0] as Label; l.Text = Label1.Text; }
153 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 09:35:33 ] >>143 コンストラクタでAを作るためのデリゲート(Func<B, A>とか)を受けたらいいんじゃね
154 名前:デフォルトの名無しさん [2008/07/11(金) 09:51:10 ] ASP.NET(C#) でWEBカスタムコントロールを作ろうとしています。 Tableクラスを継承して機能を上乗せして作ろうとしているのですが カスタムコントロールタグの中にTableRowを入れその中にTableCellをタグで指定することができません。 なんとなくParsistsChild 辺りなのかなと思うのですがいかんせんMSDNの記述が読み取りにくくて・・・・ 実現したいのは以下のような記述をデザイン時にタグで入力して 実行時にテーブルとして吐き出す事です。 <CustomTable id="hoge" runat="server"> <TableRow> <TableCell> 1行1列 </TableCell> </TableRow> < /CustomTable> なにかサンプルとかサイトでも構いませんので情報いただけませんか? よろしくお願いいたします。
155 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 11:10:52 ] あぁぁーハングアップするぅーー マルチスレッドうまく出来ないーヽ(`Д´)ノウワァァン
156 名前:デフォルトの名無しさん [2008/07/11(金) 11:12:21 ] >>155 つBackGroundControl
157 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 11:15:45 ] >>155 デッドロック?
158 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 11:16:29 ] BackGroundWorker?
159 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 11:16:53 ] >>158 ですよね〜
160 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 11:32:53 ] BackGroundWorker!
161 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 11:46:19 ] BackgroundWorker!
162 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 11:47:16 ] BackgroundFucker!
163 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 11:49:13 ] BlackGroundWorker!
164 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 14:04:13 ] 背景労働者(T_T)
165 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 15:20:43 ] 最初にButtonClickイベントでRunWorkerAsync()をする。 次にDoWorkで通信待ちをしていて、通信を受け取ったらそのイベントでFormのプロパティ書換えを連続でしたいんだ。 それで、そこからButtonClickイベントでRunWorkerCompletedに移動したいんだ。 それでもって同じButtonClickイベント内でRunWorkerAsync()をしたいんだけど、どうしたらいいのかわからない・・・ buttonClick(){ RunWorkerAsync(); } DoWork(){ 通信メソッド(); } ChangeValue(){//通信メソッドの受け取ったよevent } RunWorkerCompleted(){ }
166 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 15:28:23 ] 全体に何を言いたいのか何が分からないのか良く分からん 連続でってどういう連続? 移動って何? RunWorkeAsyncが二回出てきてるの?
167 名前:デフォルトの名無しさん [2008/07/11(金) 15:35:46 ] なんだ? ・ボタン押す ・通信データを受け取ることができたら非同期通信完了 ・別のボタンで通信完了後の処理を行う こういうことなんか・・・・?
168 名前:デフォルトの名無しさん [2008/07/11(金) 15:48:13 ] ProcessStartInfoでコンソールがチラッと開くんですが、 これは開いたままにできないんでしょうか。
169 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 15:54:19 ] 実行するプロセスはcmd.exeにして/kつきで実行すれば?
170 名前:デフォルトの名無しさん [2008/07/11(金) 16:11:15 ] VS2005で任意の型(ただしdoubleに変換可能、実際の想定はfloatとdouble)の配列における最大値を求めたくて こんな関数を作りました。 public double Max<T>(T[] src, int offset, int length) { double ret = double.MinValue; int end = offset + length; for(int i = offset ; i < end; i++) { double val = System.Convert.ToDouble(src[i]); if(val > ret) ret = val; } return ret; } で、かなり大きなfloat配列(要素数10万オーダー)をこの関数にかけたら、 この関数が実行される前後でこの関数を動かしているプロセスのLOHが数十MB単位で増殖してしまいます。(perfmonで確認) forループが怪しそうなんですが、どこでLOHをつかまれるのか見当がつきません。 調べ方が甘いのかもしれませんが、お分かりの方いらっしゃいますか?
171 名前:デフォルトの名無しさん [2008/07/11(金) 16:11:44 ] ありがとうございます。 コンソールはでてるんですが、Argumentsが渡らないんですが、これはどうしたらいいんでしょう。
172 名前:デフォルトの名無しさん [2008/07/11(金) 16:16:03 ] >>170 何で必ずDoubleに変換を・・・・・
173 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:17:05 ] >>172 関数を使う側でそういう要求があるということで…。
174 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:18:40 ] >>166-167 ごめんね、よくわからんアマチュアでごめんね 1.ボタン押す 2.任意で終了させるまで同期通信でデータを受け取る 3.最初のボタンで通信完了の処理をして、新しい同期通信を始める 同期通信がいつ終わるかわからんので、 RunWorkerCompleted()を開始できないのです。
175 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:20:27 ] >>165 別のスレッドでフォームを書き換えるの?それは無理 [STAThread] <- static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); }
176 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:21:05 ] >>170 LOHに何があるか、専用のデバッガやプロファイラで調べられなかったっけ? CLRProfilerやsos.dllを使えばできそうな気がするよ。
177 名前:143 [2008/07/11(金) 16:24:22 ] >>153 できたっ ありがとうありがとう
178 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:27:06 ] >>176 ちょっとそのあたりのツールを調べてみます。ありがとうございました。
179 名前:デフォルトの名無しさん [2008/07/11(金) 16:28:15 ] >>174 それって最初のボタンのクリックイベントの最初に 非同期通信中だったら非同期通信キャンセルなり終了させるような処理書けばいいのでは? その完了を待って再度非同期通信を開始すればよいのでは
180 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:30:31 ] >>175 >別のスレッドでフォームを書き換える スレッドからフォームのプロパティを書き換えるのではなく、 同期通信のメソッドが通信を受けた時のイベントがあるんです。 そのイベントの中でフォームを弄るので、簡単に言えば、 ButtonClickイベントが起きたら通信メソッドをDispose()出来れば良いんです。 ですが、DoWork()内にButtonClickをどう通知したら良いのかわかりません。
181 名前:デフォルトの名無しさん [2008/07/11(金) 16:33:08 ] >>180 IsBusy CancelAsync こんな感じのメソッドとプロパティなかったか?wwww
182 名前:168 [2008/07/11(金) 16:34:11 ] FileNameに"/c"パラメータとかつける方法ありませんか。
183 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:40:19 ] >>179 >>181 ButtonClickイベントの中で BackgroundWorker.IsBusyでスレッドの使用を確認して、 動いていたらCancelAsyncを呼び出せばRunWorkerCompletedイベントが発生する訳ですね。 よくわかりました、ありがとうございます
184 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:51:07 ] 一応いっとくけどCancelAsync呼んだだけじゃRunWorkerCompletedは発生しないぞ CancelAsyncの解説読めば分かることだけど
185 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 17:12:52 ] object result = type.InvokeMember("test", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static, null, null, new string[1] { "sample" }); ってDLLを動的に呼び出して MyClass1 ってのを返すんだけど object型のresultをMyClass1にキャストする方法がわからないのだが誰かヒントでも良いから助けて
186 名前:デフォルトの名無しさん [2008/07/11(金) 17:17:16 ] >>185 動的にDLL呼び出しができてキャストできないとか・・・・・ (T)
187 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 17:23:16 ] きっと「動的にキャスト」みたいなこと考えてるんだろう
188 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 18:00:26 ] MyClass1返すならなんで動的に呼ぶ必要があるんだよ まあこれはMyClass1が対象のアセンブリに含まれてると仮定した場合だが MyClass1を静的に参照してるんじゃなきゃキャストなんてできるわけがないぞ
189 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 18:03:13 ] 解決しました 第三のDLLかましてあげればよかったんですね
190 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 18:07:32 ] >>170 >任意の型(ただしdoubleに変換可能、実際の想定はfloatとdouble) ならdouble決め打ちでいいんじゃね? って思うんだが駄目ですか
191 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 18:15:15 ] double[]引数にはfloat[]を与えられない
192 名前:デフォルトの名無しさん [2008/07/11(金) 18:25:51 ] つうかキャスト動作が食ってるとかありえないのかな? 何万も回せばコストはでかいと思うんだが 外からは意識しないように内部で分岐させて処理してみればよくねぇか? この分だとキャストは一回だけで終わりそうな感じがするんだが・・・
193 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 18:34:48 ] >>189 第3のDLLのはインターフェイスにしておくと融通が利く。
194 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 18:44:04 ] >>170 <T>[]で受けると型が特定されなくてそのままSystem.Convert.ToDoubleが呼ばれる 結果的にもう1つ<T>[]を作っている感じな予感。 float[],double[]で受けると最適化されてSystem.Convert.ToDoubleは呼ばれない。
195 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 18:48:26 ] IConvertibleで制約してhoge[i].ToDouble(null)とか
196 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 18:55:15 ] >>173 return直前にdoubleにすればいいだろ。
197 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 18:57:26 ] Tのままじゃ比較できないじゃん
198 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 19:00:52 ] 比較はCompareToかな。それよりT.MinValueって使えるのかな
199 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 19:18:12 ] lengthがゼロならMinValueを返すのが仕様なら仕方ないが 普通初期値は配列の最初の要素だろ。 T ret = src[offset];
200 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 19:36:11 ] 総称型の場合Convert.ToDouble(Object)でボクシングが 大量発生してヒープを使いすぎるのはわかるがLOHが使われるのは解せんね。
201 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 19:55:28 ] >>170 じつはToArrayでラージオブジェクトヒープを使っているとか言うオチだったり List<int> arr = .. double ans = Max(arr.ToArray(), 0, ar.Count);
202 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 19:58:18 ] >>199 そうなんだけどT.MinValueが使えるのかが気になった。 Length==0なら例外投げるのが妥当だよね。
203 名前:デフォルトの名無しさん [2008/07/11(金) 21:42:05 ] 相談です。 C#3.0(2.0でも可)にて PDFからオブジェクトの取得をしたいと思っています。 PDFはベクトルデータであることが前提で、ラスタデータは考慮しません。 ●抽出 テキストデータは テキスト、フォント、サイズ、座標を取得 画像データは 画像、座標を取得 各データにジャンルを割り当てDBに保存 ●復元 テキスト、フォント、サイズ、座標からPDFに復元する。 その座標に画像も存在していれば画像も復元する。 何か良い方法はご存知でしょうか?
204 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 21:45:08 ] >>203 本屋でPDFの仕様書を見たことがあるから、amazonで探せばあるんじゃね? 英語なら買うまでもなく、ネットでもありそうだけど。
205 名前:203 [2008/07/11(金) 23:43:25 ] >>204 PDF仕様書の英語版はWebで公開されてます。 日本語版の仕様書は本で出てます。 PDFの使用がわかってもC#でPDFを扱う術(COMやSDKなど)がわからないのです。 iText,PDF4NET, PDFLib など様々なものを試していますが、これというものがありません。 画像抽出に関しても、抽出するだけならできるが、座標の取得などは不明だったりします。
206 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:15:58 ] つかライブラリ使うつもりなら、仕様書まで読む必要ないよ。
207 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 03:14:35 ] >>205 そこに挙げてる既存のライブラリで満足できないなら、新しいのを書くしかないだろ。
208 名前:170 mailto:sage [2008/07/13(日) 08:05:41 ] 170ですが、遅くなって申し訳ありません。まだ解決したとはいえないのですが、>>194 っぽい気がしています。 なお、最初に書いた文章が改行大杉と言われたので改行減らしています。読みにくいかもしれません。すみません。 とりあえず public double Max<T>(T[] src, int offset, int length) { double ret; if(src is float[]) { float[] srcFloat = src as float[]; int end = offset + length; for(int i = offset ; i < end; i++) { double val = (double)srcFloat[i] if(val > ret) ret = val; } } else if(src is double[]) { (略。明示的キャストをしないこと以外はfloatと同じ) } return ret; } というようにfloat[]、double[]の型に変換してからキャストするようにするとLOHを食う現象は見られなくなりました。 ただ、今でもキツネにつままれたような気分は抜けないので、もう少し元のコードだと何をやっているか調べてみようと思っています。 >>200 で指摘があるように、キャストでヒープを消費するのはわかるんですが、Gen0やGen1ならともかくLOHを食うのは相変わらず解せないので…。 また何かわかったら報告します。ありがとうございました。
209 名前:170 mailto:sage [2008/07/13(日) 08:07:17 ] あと、>>208 のコードでは対応していませんが、 ・キャストは最後に1回やればいい(float、doubleに決め打ちできれば可能) ・Tで受けずに最初からfloat[]、double[]で受けるほうがいい というのも納得しています。追って対応しようと思います。 ありがとうございました。
210 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 08:29:38 ] そうまで限定するならoverloadしたほうが早いような。
211 名前:170 mailto:sage [2008/07/13(日) 09:29:10 ] >>210 「Tで受けずに最初からfloat[]、double[]で受けるほうがいい」 はoverloadにすることを考えて書いてました。
212 名前:170 mailto:sage [2008/07/13(日) 09:31:16 ] 細切れですみません。いずれにしても >>170 のコードだとなぜLOHを侵食する? という大本の疑問はまだ謎のままなので、 追い追いプロファイラとかで調べてみようと思っています。
213 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 13:11:43 ] 何かよくわかりませんが、これ↓ やねう企画代表者やねうらお(本名・磯崎元洋)が ・ソフトウェアの不正コピーを行っていた ・労働契約上の違反をしていた ・他は不正コピーしていないことを証明しようとしてエロゲーのパッケージを発見し、 写真に撮ってアップロードしようとした。 d.hatena.ne.jp/pmoky/19000106 やねう企画の裏側(競馬の詐欺ソフトの製作現場) d.hatena.ne.jp/pmoky/20060510 d.hatena.ne.jp/pmoky/20060511 d.hatena.ne.jp/pmoky/20060512 有限会社やねう企画(所在地・大阪府八尾市末広町2−1−2)が計画倒産 www.sia.go.jp/~osaka/zenso/19.09.pdf やねうらおプロフィール 性格:友達から「チンピラ」「ヤクザ」と呼ばれている。前世で殺人鬼だった宿業を背負っているという妄想(自覚)あり。 最終学歴:専門学校卒 主な職歴:有限会社センキ(凌辱系アダルトゲームの製作会社)を経て独立、有限会社やねう企画を設立、2006年に計画倒産 代表作:『夜這いマニア』『盗撮マニア』『お楽しみCDシリーズ』『競馬詐欺ソフト』『BM98』 やねうらお語録 >「ワシのほうが潔癖やと思うんやけどな。 >絶対に違法コピーのソフトしか使わんし。 >たとえば強盗に入ったときに、ちょっとかわいそうになって >十万円だけ残してったら、おかしいやろ? >自分の『強盗する』という意思に対して矛盾やろ? >だからワシは、一個も買ったソフトを使ったことがない!!」
214 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 13:15:09 ] コピペ君って馬鹿だな、まで読んだ。
215 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 13:21:57 ] 最近、やねうらおは弓月(>>213 )とか言う真性のキチガイに絡まれている 【自作自演】弓月城太郎氏に関するまとめ【神秘体験】 d.hatena.ne.jp/yaneurao/20080619
216 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 13:57:02 ] コピペ君って馬鹿だな、まで読んだ。
217 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 14:00:45 ] こっちにまではってやがるw
218 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:54:07 ] ここまでコピペ
219 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 11:21:45 ] 何度かここで質問しようとした事があるんだけど、なんでだろう。 書き込みボタン押す直前に閃いて解決してしまう。
220 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 16:34:41 ] 日記はチラシの裏に
221 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 16:44:41 ] やだね
222 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 17:44:05 ] じゃあチラシの表でいいや
223 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 17:45:26 ] やだね
224 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 18:46:51 ] 今作ってるプログラムが500行超えた こんなに長いコード書くの初めて・・・ フォームアプリケーションってめんどいね
225 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 18:57:13 ] むしろそんなに大きくないファイルがたくさんできないか? と思ったら500行か、、、、そりゃテストコード書くんでもなけりゃ あっというまだべ。
226 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:24:44 ] データバインドとか使わずに愚直コピーしてるとか? それでも500ぐらいあっと言う間だろうけど
227 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 22:48:06 ] UI絡みは長くなるの仕方なかろう
228 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 17:14:27 ] チラシって普通両面に印刷されてるよね。 そういえば昔は片面印刷だったっけ。
229 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 17:15:27 ] どことまちがえてるんですか?w
230 名前:デフォルトの名無しさん [2008/07/16(水) 22:07:19 ] マーシャリングについて教えてくれ。 C#からCで書いたDLLのGetImageを呼び、ImageProcデリゲートで画像のデータを受け取りたいんだが、 ImageProcデリゲートの第一引数を何と書いていいか分からない… 【C側】 typedef void (*ImageProc)(unsigned char* pImageBuffer, unsigned int imageSize); __declspec(dllexport) void GetImage(char* pFileName, ImageProc pImageProc) { unsigned char* pImageBuffer = 0; //画像バッファ unsigned int imageSize = 0; //画像サイズ //中略:pFileNameの画像を開き、pImageBufferを動的確保し、 //pImageBufferに画像のデータを、imageBufferSizeに画像のサイズを入れる。 pImageProc(pImageBuffer, imageSize); } 【C#側】 ↓???を何と書いていいか分からない… public delegate void ImageProc(???, UInt32 imageSize);
231 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:16:41 ] IntPtr
232 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:28:42 ] string
233 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 08:51:39 ] byte[]でいいんじゃね? 推奨できないけどどうしてもというならunsafeつけてbyte*とか
234 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 11:07:03 ] 正直受け側の実装次第
235 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 09:35:50 ] 脱線するけどBitmap.LockBitsじゃダメなのか
236 名前:230 mailto:sage [2008/07/18(金) 11:15:25 ] >>231 で行けました。THX! 【c】 #include <windows.h> typedef void (CALLBACK* ImageCallBack)(VOID* pImageBuffer, UINT32 imageSize); 【c#】 public delegate void ImageCallBack(IntPtr pImageBuffer, UInt32 imageSize); public static void ImageCallBackHandler(IntPtr pImageBuffer, UInt32 imageSize) { byte[] imageData = new byte[imageSize]; imageData.Initialize(); Marshal.Copy(pImageBuffer, imageData, 0, imageData.Length); }
237 名前:デフォルトの名無しさん [2008/07/18(金) 22:27:57 ] VisualStdio2005なんですが、使用する.netFrameworkを1.1にして開発に使用する事って可能ですか?
238 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 22:30:37 ] いいえ
239 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 01:03:13 ] 実はできなくもなかったりするんだが、いろいろと面倒なんでお勧めしない。
240 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 14:35:26 ] ListViewの詳細表示モードで、ダウンロードの進歩状況を表示するような・・・ 例えば、WinnyなどのP2Pソフトによくある横棒グラフに % 表示があるような ものを表示したいんですが、どのように実装したらいいでしょうか? とりあえずオーナードローでサブ項目にRectangleで描画したりしてみましたが あまりにも遅くて実用的ではありません。 もっと効率的な方法があるのでしょうか?
241 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 14:36:40 ] それはおそらく実装の方法に問題がある。 そんなに遅くなるはずがない。
242 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 14:46:42 ] >>241 いや、それが試しにRectangleの描画処理だけを入れただけのものなんで ほとんどこれが最少の処理なんですよ 確か、Winnyを作っていた47氏も描画の遅さに悩んでいた記憶があるので もともとどうやってもある程度の遅さはしょうがないのかもしれませんが オーナードロー以外にもっと上手い方法があれば教えて頂きたいのですが
243 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 14:57:24 ] その部分のコード晒せば今日暇だから改良してみようか 晒せないならしょうがないけど
244 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 15:13:27 ] ListViewのDetailモードはバギーだからさもありなん、という気もする。
245 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 15:21:43 ] >>243 上記した通り、四角の描画しかしていないんですが 具体的に書きますと if (e.ColumnIndex == 3) { e.Graphics.FillRectangle(Brushes.Red, e.Bounds.Left, e.Bounds.Top, percent, e.Bounds.Height); } の処理を入れてあるだけの、最小限の物です。 他の余計な処理は一切していません。
246 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 15:23:38 ] 描画処理が何回呼ばれてるかとか描画に何ms掛かってるかとか調べてみたら
247 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 16:37:44 ] >>245 そんなんじゃわからん 普通に軽いのができてしまったぞ
248 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 17:34:04 ] ほかの部分が重いんじゃないか? 追加部分をコメントアウトして確認
249 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 18:43:16 ] 俺のもめちゃ軽い。ちらつきはDoubleBufferedで抑えてみた。
250 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 19:06:50 ] 追加するときに重いとかいうオチだったり?
251 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 19:09:28 ] どうせListViewだし、 0u2007 FIGURE SPACE 0u2588 FULL BLOCK 0u258C LEFT HALF BLOCK 0u2590 RIGHT HALF BLOCK の手抜きでいいじゃんとか思ってしまう 虫食いなしなら、1/8のまで使えるし 一応こんな感じに ttp://www.imgup.org/iup649405.png
252 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 19:09:34 ] 実は実行環境が驚くほどプア
253 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 19:31:09 ] >>244 ListViewといえばDetailなのにバグ多いよね。 そして改善されない。
254 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 19:40:35 ] うわ、疲れて寝てしまった。 >>247 でも、これしか書いてないから他の部分無いんですよ、全く。 >>248 上にも散々書きましたが、他の処理は無いのです。 ListView検証の為にTestListViewというプロジェクトを作って フォームにListViewを貼り付けただけのプロジェクトなので 描画処理部分以外も、余計な処理が全く無いんですよ。 >>249 やっぱり軽いですか。何で重くなってしまうのか・・・ >>250 動的にデータを追加することは無いです。 >>251 うわ、昔を思い出す処理ですね(w MSX の SCREEN 1/2 でやっていた時に そんな感じでゲームのパラメータそんな感じでやってたなぁ >>252 Pentium-M 1.6GHz なので、それほどプアでも無いと思うのですが。
255 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 20:46:38 ] Debugつうオチではない?
256 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 22:32:15 ] そんだけのプログラムならうpすればいいのに
257 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 22:38:16 ] サブ項目は、一つ一つがリソースを消費するから 数によってはかなり重くなってメモリを消費すると思うが それとは違う?
258 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:06:06 ] 自分のは10万個とか追加したらスクロールバーでのスクロールははっきり重くなった マウスホイールでのスクトールは軽いままだけど
259 名前:デフォルトの名無しさん [2008/07/19(土) 23:22:24 ] 配列かリストのスライスとかないんでしょうか。
260 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:22:53 ] 自分で作ってください…
261 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:24:17 ] ちゅうかまず描画の頻度がどの程度なのよ
262 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:28:01 ] そりゃWM_PAINTとんでくる度だろ
263 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:36:49 ] オーナードローって言ってるのにねぇ
264 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:41:58 ] >>254 プロジェクド丸ごとうpしろよ 原因見つけてやるから
265 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:52:00 ] 馬鹿はレスしなくて良いと思うんだ
266 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 00:02:49 ] じゃあお前レスすんな
267 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 00:07:23 ] オーナニードローのパフォーマンスが悪いのは仕様だと思う。
268 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 00:10:48 ] >>267 言いたかっただけだろw
269 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 00:20:08 ] 俺もやってみたが軽かった どんな糞コード書けば重くなるんだ?
270 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 01:09:26 ] バーの長さをe.SubItem.Textでパーミル指定とかしてみたけど、 10万個の項目でもスムーズに動く。スクロールも無問題 因みに、環境はPemM 1.7GHz/mem 1GB
271 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 01:16:30 ] そういえば、カスペが入ったPCでデバッグビルドを動かした時に、 異様に遅くなったことがあったな。 コンボボックスを開くのに数秒かかったり。 VSを信頼するアプリに設定してプロセス動作の監視対象から外したら 普通に動くようになった。
272 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 12:40:04 ] こんな親切なレスの流れはひさしぶり
273 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 13:12:32 ] 火スペって何? まさか名取裕子とか出てくるドラマ枠のことじゃないだろうし
274 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 13:28:30 ] ググれば一発で出てくるのに しかも、一番上に
275 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 13:33:21 ] 質問者の反応が悪いな 諦めたんかね
276 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 15:41:54 ] カスペ、監視からjustの扱ってるアンチウィルスソフトだとわかると思うんだがなぁ。 これくらいは許されてもいいような省略系じゃないのか?
277 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 15:45:09 ] よくない
278 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 15:45:43 ] はじめて聞いた 俺は気付いたけど
279 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 16:19:19 ] すまん。セキュリティ板なんかではよく見かける略称だったもんで。
280 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 23:35:58 ] C++のboostみたいなC#の定番ライブラリってないですかね
281 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 23:46:18 ] 標準で機能かなりそろってるからなぁ。 patterns & practices とか EntLib とか、MS が提供してる標準外コードも多いし。
282 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 14:23:54 ] entlibなんかきらいだ
283 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 18:08:55 ] 最近C#に乗り換えたんだが 初心者はSDKから入ったほうがいいよな?
284 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 18:15:47 ] 日本語でおk
285 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 19:24:45 ] >>283 初心者はIDEから入るべき 自分でことを難しくすることはない
286 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 21:43:08 ] VC# Express Edition 1択。
287 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 22:14:16 ] ム自体初心者なら SDK というかそのレベルのことからはじめるのは ありだと思うが C# の言語的な思想ってのは IDE が存在する世界だ から IDE で触れないとなんつーか色々わかりゃしない。結果遠回り
288 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 22:17:11 ] 別にそんなこと無い
289 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 22:38:55 ] 別にそんなこと無い インテリセンスとGUI作成以外は、 SDKから構築した自作コンパイル環境の方が早かったりする でも初心者はVC#EE使うべきだよ 楽だもん
290 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 22:39:49 ] 初心者はCASLからだろJK
291 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 23:22:09 ] >>289 コーディングの速さなんか問題にしていないしそれぐらい慣れたら できる人間(他から移行中とか)で C# 初心者の場合に言ってる IDE からみないと C#(.NET) 的なコンポーネントとかメタデータやらで 宣言的にとかそういう発想が分かりにくいよという話
292 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 23:32:43 ] > IDE からみないと C#(.NET) 的なコンポーネントとかメタデータやらで > 宣言的にとかそういう発想が分かりにくいよという話 もっと具体的に言ってくれないとわかんない
293 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 23:40:15 ] IntelliSense は楽をさせてくれると同時に、 初心者にとっては学習ツールでもあると思う。
294 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 00:41:02 ] 通ぶってるのか何か知らないけど、今時SDKだの素のエディタ使うだのって そういう背伸びは中学生までにしとけって言いたくなるよな。 傍から見てても恥ずかしくなるよ。
295 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 00:45:17 ] SDK→IDE ・・・ 時代に取り残されたおっさんの発想
296 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 00:45:55 ] C#でIDE使わないならJAVAでいいじゃん
297 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 01:06:37 ] 俺はVSのエディタとVIMを併用してるが、 2003→2008にしたら比重が1:9→8:2くらいになったな LINQ、ラムダ式、拡張メソッドを使うときとか、 コンパイラ並みの構文解析してくれないエディタだと面倒くさい
298 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 01:18:22 ] >>294 ム板だし、人に強要しなきゃいいんじゃね? マなら仕事できない奴確定だがな
299 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 01:25:47 ] VC#使うのは当然としてもコンソールアプリから始めてみるのはいいんじゃないの 基本的なところの勉強で小さいコード動かすために わざわざVBみたいにボタン一つだけ載せたフォーム作るのは格好悪すぎ
300 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 01:31:42 ] 誰もコンソールアプリから始める事には反対してないような…
301 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 01:33:55 ] >>291
302 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 01:43:38 ] 俺も反対してないけど始めるのはGUIからでもCUIからでもいいと思うよ
303 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 02:38:56 ] 夏か!
304 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 02:47:40 ] どうでもいいけど、cscやmsbuildは.NET Frameworkに付属しててSDKなしでも たいていのコンパイルはできる。
305 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 04:22:22 ] DLLからクラスやメソッドを詳細検索してくれるようなツールない? protected で A から始まるメソッドをクラス 'Tool' から全部表示する みたいな
306 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 04:59:02 ] Reflectorでも使うか、リフレクション使って自作したら?
307 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 05:26:40 ] Assembly.LoadFrom("Hoge.dll").GetType("Hoge.Tool").GetMethods() .Where(m => (!m.IsPublic && !m.IsPrivate && m.Name[0] == 'A')) .ToList().ForEach(Console.WriteLine); とか
308 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 06:23:03 ] 'A')) やっぱり顔文字に見えるな
309 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 06:24:08 ] >>306 Reflectorは修飾子まで考慮してくれないんだよなぁ 自作してみるわ >>307 3.5ってそんなキモイことできるんかwwすげーなwSTLみたいだw
310 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 06:57:53 ] >>308 ワロスw
311 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 10:56:44 ] 繋げて書けるのはいいけどぬるぽが怖い
312 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 13:33:57 ] ブレークポイント置いてデバッグする時は複数行に分けるよね
313 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 18:36:29 ] ToList().ForEach()はムダだろ IEnumerableに対するForEach拡張メソッドを自分で書くか素直にforeach使うべき
314 名前:デフォルトの名無しさん [2008/07/23(水) 18:58:33 ] 米国時間22日、マイクロソフトは「Xbox LIVE Community Games」を北米で今年後半から 開始すると発表した。その他の地域については2009年から逐次開始する予定。 Xbox LIVE Community Gamesは、XNA Game Studioで開発されたXbox360用ソフトを Xbox Liveを通じ一般利用者へ販売することを可能とするサービス。 Xbox LIVE Community Gamesでの販売は、XNA開発者コミュニティ「XNA Creators Club」の 有料会員(年額9,800円)であれば誰でも行うことが可能となる。 販売価格については200〜800マイクロソフトポイントの間で自由に設定することができ、 手数料として売上の30%が引かれることとなる。 XNA Game Studioは、マイクロソフトが無償で公開しているVisual Studioをベースとした ゲーム特化型の統合開発環境。.NET Framework及びDirectXをベースとしたライブラリ 「XNA Framework」を使用し、基本的には設定ひとつでXbox360及びWindowsへの両対応が 可能となる。 XNAについては、RPGツクールが次期バージョンでの対応を表明しており、日本での 普及にも期待がかかる。また、教育機関による学習教材としての採用も増加しており、 月刊ベーシックマガジンの休刊以降問題視されていた日本人ゲーム開発者の急激な 減少に歯止めをかける期待も持たれている。 news4xbox.blogspot.com/2008/07/xbox360.html
315 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 19:00:00 ] XNAとC#関連のスレみてると何回もこれ読まされるんだが
316 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 19:01:42 ] そういう気分の時は「コピペ君て馬鹿だな、まで読んだ」と書くんだ
317 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 19:41:15 ] 「コピペ君て馬鹿だな、まで読んだ」 ってことはさ、そのコピペの中に「コピペ君て馬鹿だな」って文言が含まれているって事だよね? だとしたらそこそこまともな事言ってるって事になっちゃうよ。
318 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 20:02:51 ] >>315 巡回してるとこ見てきたら、6箇所で貼ってあった・・ コピペ君て馬鹿だな
319 名前:デフォルトの名無しさん [2008/07/23(水) 21:38:55 ] どうせ数独とかマインスイーパーみたいなのが氾濫して おわるんじゃねーの
320 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:58:03 ] ボンバーマンの超ぱちもんなら既にある
321 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:09:13 ] 1時間もあれば作れるようなくそげーが氾濫することは目に見えてるけど www.nicovideo.jp/watch/sm3657573 を見る限り期待できるかも X 期待できるかも O 期待したい
322 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 01:05:08 ] 文章の最後に「コピペ君て馬鹿だな」って書いておくと、 「コピペ君て馬鹿だな、まで読んだ」ってレスされても 即座に「最後まで読んだんかい!!」ってレスできる。 これ豆知識な。 コピペ君て馬鹿だな
323 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 01:16:40 ] 僕は馬鹿なコピペ君です、まで読んだ。
324 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 01:20:46 ] >>323 なんということでしょう・・・orz
325 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 15:35:07 ] swichとforとifの組み合わせって速度にどれくらい差があるんでしょうか?
326 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 15:36:56 ] 調べてみたら?
327 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 15:54:20 ] switch と if に for が絡むのがわからん
328 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 16:06:37 ] 複数のコンポーネントがある時に、 label[i]みたいにインデクサを使いたいんですが、 コンパイラにlabelなんてねーよバーヤヽ(`Д´)ノ って言われてしまいます。 やっぱり一行づつ書いていくしかないのですか?
329 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 16:08:15 ] もうちょっと具体例を
330 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 16:10:37 ] >>328 自分でコレクションに入れろよ。
331 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 16:31:29 ] >>329-330 しょうがないからLabel配列型の変数にいれてやりました。 コンパイラが面倒みてくれたらいいのに・・・
332 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 16:40:28 ] そんなキモいことされてたまるか
333 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 16:56:37 ] どう考えてもコンパイラじゃなくて、せいぜいライブラリのありがた迷惑だろ。
334 名前:デフォルトの名無しさん [2008/07/24(木) 17:27:25 ] MenuItems.Addでメニュー項目を追加するときにイベントハンドラを指定しますが、 項目の数だけメソッドを用意するのが個人的に好きじゃありません。 各項目に共通のイベントハンドラを指定し、 その中でどの項目が選択されたのかを確認したいのですが、 このようなことは可能でしょうか。
335 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 17:28:10 ] sender
336 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 17:33:09 ] public void menuItem_Click(object sender, EventArgs e) { if (object.ReferenceEquals(sender, menuItem1)) { ... } else if (object.ReferenceEquals(sender, menuItem2)) { ... } }
337 名前:デフォルトの名無しさん [2008/07/24(木) 17:50:18 ] >>335 >>336 サンクス!
338 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 18:04:23 ] Tag使えよ
339 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 18:10:25 ] うむ
340 名前:デフォルトの名無しさん [2008/07/25(金) 01:38:05 ] プログラミングの初心者で恐縮ですが、質問です。 オセロゲームを練習として作ってみたいと考えています。 そこで、Panelを継承したクラスを作ってOseroPanelという名前にしました。 このOseroPanelを this.Controls.Add(p); とフォームに貼り付けました。 次にパネル側の描画処理を書きました。 一つはOnPaintをオーバーライドして描画しました。 protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); e.Graphics.DrawLine(new Pen(Color.Red), 10, 100, 200, 100); } こちらはうまく動いています。
341 名前:デフォルトの名無しさん [2008/07/25(金) 01:39:03 ] もう一つはイベントを使ってみたのですが、問題が発生しました。 VSを使って、イベントを自動作成し、 private void InitializeComponent() { this.SuspendLayout(); // // OseroPanel // this.Paint += new System.Windows.Forms.PaintEventHandler(this.OseroPanel_Paint); this.ResumeLayout(false); } private void OseroPanel_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawLine(new Pen(Color.Blue), 100, 10, 100, 200); } というコードを書きました。 どうやら OseroPanel_Paint()メソッドが呼ばれていないようです。 原因がわかる人がいましたら教えてもらえるとありがたいです。
342 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 01:51:20 ] this.Paint += new System.Windows.Forms.PaintEventHandler(this.OseroPanel_Paint); ↓ this.OseroPanel.Paint += new System.Windows.Forms.PaintEventHandler(this.OseroPanel_Paint);
343 名前:デフォルトの名無しさん [2008/07/25(金) 09:40:22 ] >>342 OseroPanelクラスのなかでやっているので thisはOseroPanelを指しています。
344 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 11:09:12 ] ×Osero ○Othello
345 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 11:18:37 ] 取りあえずその記述だけでは原因不明なので まずデバッガでInitializeComponent通ってるかどうかから確認
346 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 14:13:04 ] オセロは(TM)だから注意ね
347 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 14:16:22 ] TMならセーフじゃん
348 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 14:43:35 ] 暑さでボケてたw (R) だよ
349 名前:デフォルトの名無しさん [2008/07/25(金) 15:43:20 ] >>345 orz まさにそれでした。 InitializeComponent()の呼び出しは自分で書かないといけないんですね。 Oseroクラスのコンストラクタに書いてみたところ、 すべてうまくいきました。 どうもありでしたm(_ _)m
350 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 16:30:44 ] フォームアプリのForm1とかのように使い捨てのクラスはともかく、 継承クラスではイベントハンドラではなくOn〜メソッドのオーバーライドが推奨のはず 探したけどソースが見つからんorz >>346-348 オセロ(玩具)とソフトウェアじゃあ区分が違うんじゃないか?
351 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 17:48:32 ] >>350 たしかにOnPaintをオーバーライドした方が、 コードがすっきりしますね。
352 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 17:57:31 ] >>340-351 ふらっと行け
353 名前:デフォルトの名無しさん [2008/07/25(金) 18:42:36 ] 一様乱数を生成する関数のソースについて質問があります。y=1/sqrt(2)*exp(-1/2*x*x)の計算で In function `GaussRandom':: undefined reference to 'sqrt’と In function `GaussRandom': : undefined reference to `exp' というエラーがでて実行できません。もちろん<math.h>は定義しました。 レポート課題なのでマジで困ってます。是非教えてください。ソースを下に載せておきます。 ちなみにxが一様乱数で、yが正規乱数です。 double GaussRandom() { double x; double y; x=UniformRandom(); y=1/sqrt(2)*exp(-1/2*x*x); return y; } double UniformRandom() { double x; int r=1; r=1229*r+351750; x=r/1664501; return x; }
354 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 18:44:02 ] >>353 スレタイをよめ
355 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 18:57:48 ] >>353 >In function `GaussRandom':: undefined reference to 'sqrt’と In function `GaussRandom': >: undefined reference to `exp' 翻訳するとだな 「型または名前空間名 'sqrt' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 型または名前空間名 'exp' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」 だな。何に翻訳したかは秘密だ。 さらに言うとusing System.Math;が足りないなw
356 名前:デフォルトの名無しさん [2008/07/25(金) 18:59:27 ] >>354 すいません。
357 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 19:09:17 ] >>353 マルチすんなゴミ
358 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 19:12:00 ] ReflectorでSystem.Randomクラスのコードをパクる奴とかいそうだな
359 名前:デフォルトの名無しさん [2008/07/25(金) 19:23:59 ] >>355 ありがとうございます。 >>357 期限が迫ってたので色んな場所で聞こうと思っただけです。気を悪くしてすいません。
360 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 19:32:50 ] ほんとにKYですね^^ 死んでください
361 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 19:35:51 ] 気を悪くしてすいませんだと? 気を悪くしたのはこっちだ!クソが!
362 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 20:43:39 ] 期限が迫ってたので色んな場所で聞こうと思っただけです
363 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 20:47:26 ] こういうゴミに教えてあげるような偽善者も死ねよ
364 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 21:43:47 ] 自己中乙
365 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 22:26:13 ] レポートの最後に「参考:2ch プログラム板」って書いておけよ
366 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 22:36:26 ] >>361 気を悪くさせての間違いです^^ >>365 課題落とされるかもしれないので書けません 教えてくれた人ありがとうございました^^
367 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 22:36:57 ] 今プログラミングスレがいっぱい上がってるがどゆこと?
368 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 22:45:14 ] >>367 なに言ってんだお前
369 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 22:46:18 ] しまった板違いwwwAA板じゃねえwwwww
370 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 23:00:15 ] >>369 斬新な板違いだなおい しかもよりによってスレタイに[プログラム板]って付いてるこのスレで
371 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 01:30:27 ] なんでこんな荒れてんの?
372 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 01:35:00 ] 荒れてないよ
373 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 12:06:15 ] 突然すみません。 C/C++のように構造体配列の定数データを持ちたいんですが、 C#ではどうすればよいのでしょう?
374 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 12:21:19 ] 無理
375 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 12:23:06 ] static readonlyな配列で良いんじゃね
376 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 12:30:22 ] static readonly な ReadOnlyCollection<T>
377 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 17:04:31 ] GDI+でICONへは変換不可ですか?
378 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 17:27:39 ] >>377 可能 Dim bmp As New Bitmap("hoge.bmp") Dim ico As Icon = Icon.FromHandle(Bitmap.GetHicon()) Dim fs As New FileStream("hoge.ico", FileMode.Create) ico.save(fs) fs.Close() ico.Dispose() bmp.Dispose()
379 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 17:40:09 ] ども、やってみます!
380 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 18:15:04 ] ただし制限きついけどなー
381 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 19:11:37 ] >>378 意味不明な質問には「日本語で書け」と叱責してやるのが本人のためだと思うけど。 ああちゃんと嫌味の意味でVBで答えてるわけかw
382 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 19:33:38 ] >>381 そういうことwww お前は、エスパーかw
383 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:03:26 ] Using使えよって思った。
384 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:04:52 ] キモすぎ
385 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:12:36 ] >>381 意味不明な質問には「日本語でおk」だろ?
386 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:15:29 ] 意味不明な質問にわざわざ絡む奴ってなんなの? いじめられっこ?
387 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:19:19 ] >>382 自作自演乙
388 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 04:59:50 ] >>381 二行目で気づいたならその時点で書き直せよ気持ち悪い
389 名前:デフォルトの名無しさん [2008/07/27(日) 15:52:58 ] GraphicsクラスのDrawImageメソッドで 画像の表示位置や高さ幅は通常intで指定すると思います。 ところが、実はfloatで指定する方法も用意されています。 public void DrawImage( Image image, float x, float y, float width, float height ) floatで指定すると何かよいことがあるのでしょうか? 基本的には四捨五入でintに繰り上げていると思うのですが、 そのような理解で正しいでしょうか?
390 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:07:44 ] >>389 WMFとかベクター画用じゃね?
391 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:10:09 ] Graphicsの描画単位はPixelだけじゃないぜ?
392 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:14:24 ] DirectXで使うためでしょ
393 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:15:14 ] ピクセル単位が整数だとしても 縮小拡大の原点が0,0で固定されないで 指定点から始まると困ることが多数あるのです。
394 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:47:49 ] いやそういうことじゃないでしょw >>391 が言ってることが全てだよ。 よく言われることだが、そもそもピクセルなんていうのは デバイス側の勝手な都合に過ぎん。
395 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 17:48:10 ] VB6時代にもTwipsとかあったな。 GraphicsUnit列挙体がGDI+で扱える単位すべてじゃね?
396 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:50:20 ] 画像表示するアプリ作ったときWin32APIのStretchBlt使ってたら スクロールの更新部分だけ描画させるたら非更新部分と結果がずれて困ったことあったな。 無効領域だけしか処理しないから全体を更新すればいいんだけど 大きい比率で拡大したときに表示してくれないから結局自前で処理するしかなかった。 GDI+が出たときに少数単位で渡したらずれなかった。
397 名前:デフォルトの名無しさん [2008/07/27(日) 19:01:47 ] 画像を反転させるには RotateFlip(RotateFlipType.Rotate180FlipXY); というメソッドを使えばいいことがわかりました。 画像Aと反転後の画像Bを作りたいのですが、 Cloneメソッドを使うと両方反転してしまいます。 Imageオブジェクトをコピーする良い方法はありますか?
398 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:09:50 ] RotateFlipしたあとにCloneしてるってオチじゃないだろうな
399 名前:デフォルトの名無しさん [2008/07/27(日) 22:51:02 ] ものすごくヘビーな処理をしています 計算途中でスリープやサスペンドに入られるとちょっと困るので、計算中は一時防止したいのですが 何か良い方法はないでしょうか?
400 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:56:56 ] 何か処理してれば普通サスペンドしないだろ
401 名前:デフォルトの名無しさん [2008/07/27(日) 23:01:32 ] いや、寝る前に仕掛けて朝起きたらサスペンドしていてちっとも処理が進んでなかったです。
402 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 23:18:35 ] >>399 処理と重力定数は関係ない・・・
403 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 23:21:21 ] 電源の設定でサスペンドしないように出来ない?
404 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 23:44:05 ] >>399 WM_POWERBROADCASTのPBT_APMQUERYSUSPENDの応答でサスペンド入りを拒否できるらしい。
405 名前:397 [2008/07/28(月) 02:27:50 ] >>398 違うようです。 シャローコピーのようで、 Imageクラスの中ではイメージ実態への参照(ポインタ) を持っているようです。 一方、回転するのはイメージ自体です。
406 名前:397 [2008/07/28(月) 02:48:15 ] 大ボケかましました。 RotateFlip(RotateFlipType.Rotate180FlipXY); だと画像が回転せず 正しくは RotateFlip(RotateFlipType.Rotate180FlipNone); でした。 頭悪すぎてすみません。 暑さでやられましたorz
407 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 11:10:24 ] rubyにおけるmechanize的なクラスとか無いんですか?
408 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 11:40:56 ] よほど自明でない限りrubyのmechanizeを説明するのが先だろ
409 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 12:05:25 ] C#にはスクレイピング用の定番ライブラリはないんじゃないかな。
410 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 12:15:43 ] 逆行列、最小二乗法のフリーのライブラリないでしょうか?
411 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 12:31:34 ] ライブラリっつーか、ソース探してきては
412 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:17:38 ] CLapackなんかの必要な関数だけC++/CLIでラップして使うのが楽
413 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:41:02 ] string に格納されたデータが整数に変換可能な形なら int に 浮動小数点形式なら float に変換する方法教えてください。
414 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:44:33 ] TryParse
415 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:44:49 ] TryParse
416 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 20:24:51 ] プロパティというのは、クラスのフィールドを外部に公開する時に、柔軟性や冗長性を持たせるために、 必要ならば何らかのラップ処理を行うためのものだと、今まで思っていました。 つまり、プロパティは必ずpublicなものしか存在しないのかと。 ところが、最近、外人さんのソースを読んでいると、すべてのフィールドに対してプロパティを用意して、 クラス内部のアクセスに対しても、privateのプロパティを経由して行っているプロジェクトが多いです。 個人的には、フィールドは小文字で、publicなプロパティは大文字の命名規則(Pascal)だったのですが、 外人さんの流れでは、privateなプロパティもPascal記法になっていて、 クラス内部のすべての操作が大文字から始まるメンバを操作しています。 皆さんはどうされてます?もしかして、外人さん流儀の方が主流なんでしょうか? C#以外の言語も含めて、そっちの方が主流になるんでしょうかねぇ。 個人的には、ローカルなnullチェックなどはプロパティの中ではなく、メソッドの中で操作する前に 行うほうが行儀が良いんじゃないかと思ったりもするのですが‥‥。
417 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 20:42:03 ] >>416 質問の意図がクリアーじゃない気がするよ。 も一度他人の目線で自分の文章読みなおしてみ?
418 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 20:53:45 ] >>417 単に話題提起してるだけなので、こんなもんじゃないでしょうか。解析的に解ける問題でも無いし。 興味を持たない人には、一生縁のない内容でもあると言えるし。 おそらく、LL言語的にはプロパティはあって当然の記述なので、おそらく外人さんが正しいのでしょうが。
419 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:36:43 ] サンプル見ると、MS 自身も private なプロパティ使ってるね。 クラス内部であっても、プロパティの実装変えたときのこと想定しとけよってことだと思う。
420 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:41:28 ] >>418 だから何を問題提起してるのか読み取れない、と言ってるんだよ。 質問内容にケチをつけているのではない。 ナニが言いたいのか分からないといってるの。
421 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:44:35 ] >>416 Delphi(Win32,.netじゃないやつ)のVCLをみると private/protectedのレベルではpropertyは使われてない。 (protectedまで使ってるものもあるがTCustom〜と直接使わないクラス。ここから継承してほかのコンポネを作る) でも内部ではプロパティを使ってアクセスしてる。(Get/SetとCreateをのぞく)
422 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:47:38 ] 外人さんの手法はクラスが大きくなると有効じゃね
423 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:52:49 ] >>420 読解能力がないか、話に興味が持てないならスルーすればいいんじゃね? 話からずれるが C#じゃ配列のプロパティはインデクサとして1つしか使えないと思ってたけど 配列型をプロパティの型にしてしまえば一応いくらでも使えるのだな。今初めて気がついた public Boolean[] Hoge { get;set;} でも、配列としてデータを持ってるんでなくてその場で計算して値を出したり入れたりしてたり、 内部では別の型のデータとして扱ってて、便利のためにほかの型でのアクセスさせるためにほかの配列使ったりってことはどうやったらいいの? int[,] でかると = int[100,100]; public int 極座標[int R,double Rad] { (ry とか しかもこういうのがほかの変数にも必要だったりする場合にはどうやって対処すればいいの?
424 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:57:52 ] メソッドを使いなさい
425 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:00:32 ] >>423 妄想力と読解力は違うよ。 ま、区別がつかない人間に縷々説明して分かることとは思わないけど。
426 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:06:20 ] >>423 VBからだと引数付きのプロパティは作れるのだけどこれをC#から使う場合がヒントになるかな。 Public Property NameProp(ByVal index As Integer) As String Get Return array(index) End Get Set (ByVal Value As String) array(index) = Value End Set // C#から使う o.set_NameProp(1, "nnnnn"); o.get_NameProp(1); 変なのが沸いてるけど無視していこう。
427 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:20:48 ] そこまでして[]を使いたい意味がわからん
428 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:21:12 ] だから言わんこっちゃない。 説明能力がない奴がろくに推敲もせずに書いた文章を エスパーしてやることが親切だと勘違いしている馬鹿が多くて困るが、 意味不明な文章(例えば>>423 )にははっきり「意味不明だ」と言ってやるのが 結局は一番親切な事だとなぜ分からないのだろう。
429 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:35:17 ] インデクサほとんど使わないんだよなぁ
430 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:54:54 ] だから423はスルーしたのか
431 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:56:45 ] >>423 配列を返すプロパティは実装変えられなくなるからダメ
432 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:59:12 ] インデクサと GetEnumerator を持つコレクションクラスを返すプロパティを作るの推奨。
433 名前:デフォルトの名無しさん [2008/07/28(月) 23:00:51 ] 晒しage
434 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:04:13 ] 配列使うってまだ.netに慣れてない人に多い気がする。
435 名前:423==421 (IDが出ない板は面倒くさい) mailto:sage [2008/07/28(月) 23:16:40 ] >>431 確かにそうだけど ListBoxはObjectCollection返してるけど、こうするとどう変わってくるの? 暇なときに調べるか…
436 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:18:19 ] ここっていつも空気悪いよね
437 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:23:41 ] そりゃいつも低脳がでしゃばるからな
438 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:30:24 ] >>435 挙動変えたいときに、ObjectCollection継承したクラス作って インデクサとかGetEnumeratorをoverrideしてしまえば 利用側に迷惑かけずに挙動変えれるでしょ。
439 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:32:48 ] IList<>かICollection<>でいいだろ。
440 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:43:33 ] IEnumerator<>という手も
441 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:02:38 ] >>439-440 多分、今作るならそういう実装になってると思う。
442 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:29:07 ] >>441 ちゃんと理解できてない&元使用言語によっては配列使いまくりになるよ。 VB厨が使うVB.netなんていい例
443 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:43:42 ] ちゃんと理解できてない? それはたぶんお前さんのことでもあるんじゃないの? 別に配列を返すプロパティやメソッドが一義的に悪いとも思えないけどね。 もちろん配列を返した場合の弊害を知らないのは愚かだと思うが、 村の掟でもあるまいし、無条件に否定するのも同様に愚かだろう。
444 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:53:05 ] 配列を返すプロパティがガイドライン違反であることには留意すべきじゃないか
445 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 02:42:46 ] >>443 まぁ、探してみてみろよ、わかるから。 お前の想定レベルみたいな生半可なもんじゃねーぞ、VB厨は・・・ そのうち.netの仕事が増えれば嫌でも見る事になると思うよ。
446 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 07:06:09 ] もし配列を返すことが目的ならばindexerを使うのはおかしい。 逆にindexer代わりに配列を使うのも変だな。 配列だけでなく変更可能なクラスをプロパティにするならある種の副作用は覚悟しなければならない。 getで予防的コピー、setで妥当性の検査や値のコピーといった措置は必要になるだろう。
447 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 07:42:27 ] メンバのコレクションの中身だけを渡したいときは配列使うようにしてるかも。 実測してないが早いと聞いたので。
448 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 08:29:40 ] 速くはあるだろうが安全じゃない。ケースによってはここまでやらないと。 int [] _hoge = new int [5]; int [] Hoge { get { return (int []) _hoge.Clone(); } set { if (value == null) throw new NullReferenceException(); if (value.Length > _hoge.Length) throw new ArgumentOutOfRangeException(); value.CopyTo(_hoge, 0); } }
449 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 09:01:18 ] >>428 君のプロパティに関する意見はどうなの? 他の人がここまで書いているんだから、何か無いの? 無いのなら、無い奴に限って枝葉末節にこだわる黄金則が‥‥。
450 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 09:45:33 ] >>448 getで返す配列への変更が元のインスタンスに反映されないので、 プロパティじゃなくてメソッドにすべき
451 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:05:59 ] ケースごとに分けて考えようぜ。 配列の参照自身が書き換わってよい場合。また内容も外部から任意に書き換えることが出来る。 フィールドをpublicにする。 単純に配列の参照そのもをプロパティにする。 配列内容が任意のタイミングで書き換わってよい場合。ただし配列の参照自体やサイズが変わることは禁止。 配列の参照をgetだけするプロパティまたは取得だけの関数を使用する。 >>449 はこれ 配列の内容が書き換わるタイミングを管理したい場合。配列の参照やサイズが変わることは禁止。 インデックサかそれに準じる添え字を引数にした読み書き用の関数を使用する。 get setのプロパティで予防的コピーを行う。 >>448 はこれ
452 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:06:58 ] >>451 >>>449 はこれ は >>450 の間違い、訂正します。
453 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 12:27:22 ] 今北産業
454 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 12:28:20 ] インデクサ使ったほうがかっこよくね vs ハァ?メソッドでいいだろ
455 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 12:39:08 ] x.Foo[128] = 123; // 配列プロパティでインデックサみたいなことができるよ〜 int [] f = x.Foo; f[3] = 123; // こんなことや x.Foo = null; // あんなことされて平気? ・・・産業
456 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 12:47:21 ] >>455 や、それが平気じゃないならgetのみにするんではないか?
457 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 12:58:00 ] 配列じゃないがこういうケース、書き換わらないと思ったら値型かよ! hoge.Point.X = 100; 正解はこちら、めんどくせ〜 hoge.Point = new Point(100, hoge.Point.Y); >>456 3番目のケースはそれでカバーできるが、2番目のは割り切りが必要かな。
458 名前:450 mailto:sage [2008/07/29(火) 13:04:39 ] >>451 まず、誤解の無いように言っておくと、 >>451 の各ケースの意義は理解してるし、それについてどうこう言うつもりはない で、>>450 で言いたかったのは、例えば obj.Hoge[2] = 10; と書けるにもかかわらず、この操作が(直感に反して)意味を成さないのが問題だということ プロパティの型が値型でなければ、そのプロパティで取得したインスタンスへの変更は 元のオブジェクトに何らかのフィードバックがあることが期待され、それを裏切る実装は避けるべき ついでに、コピーを返すプロパティと配列を返すプロパティがガイドラインで禁止されているのも それなりの理由があるからなので、それに違反する必然性がないのであれば従っておくべき
459 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 13:09:07 ] Image.Paletteを考えればコピーを返すプロパティはやっぱ直感的じゃないよな
460 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 14:43:39 ] インデクサだって・・・ダサッ
461 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 16:19:22 ] IComparerを継承したクラスでComparerメソッドの実装を しようとしてるんだけど、浮動小数点数の比較が上手くいかない 誰かスマートな実装方法教えてください
462 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 16:20:51 ] 上手くいかないならどう上手くいかないのか書けよ
463 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 16:37:10 ] スマートも糞もないだろそれぐらい あとIComparer<T>使わんの?
464 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 16:44:56 ] あまりに低レベルな質問する奴はふらっと行けよ
465 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:04:44 ] >>462 int ret; float x; float y; ret = (int)(x-y) みたいにやってるけど、差が0.・・・だと、丸まってしまって 0になってしまうから、駄目だと思うんだが、どうやったら 上手く比較できるのかさっぱりわからない 整数ならこれで上手くいくんだが >>463 IComparer<T>は知らなかったので、今から調べてみます それくらいって程簡単なの? とりあえず簡単なら教えて欲しい、これでずっと悩んでる ウェブでいくら探しても、整数と文字列の比較のサンプルしか無いんだ
466 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:07:15 ] >>465 x==y/x<y/otherwise でいいだろ。
467 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:07:53 ] ふらっとだな。 if (x > y) return 1; とか思いつかない?
468 名前:oth mailto:sage [2008/07/29(火) 17:27:22 ] otherWiseがコンパイル通りません
469 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:31:43 ] >>466 すいませんが、まるでその式の意味が理解できないんですが どのように理解したら良いんですか? >>467 int にキャストしないで if (ret >0) return 1; のようなものは考えていたけれど、もっとスマートな処理が あるんじゃないかと思って聞いてみたのです Comparerの戻り値の正数ってのは、0か負の数じゃなきゃ なんでもいいんですかね?差の値を入れなくても
470 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:36:39 ] MSDNの解説ぐらい読めよ……
471 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:38:01 ] ふらっと池よクズ
472 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:39:50 ] >>469 スマートと行数が少ないは違うだろ。 比較関数で差を返すのは大昔からよく見るコードだが、 通常、整数型は正負で扱える数の範囲が違うから、何も考えずに符号を反転させるとオーバーフローする。 ちょっと考えればわかることで、まともなプログラマはそんなコードを書かない。
473 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:42:13 ] >>469 IComparer.Compare(double x, double y) { return x - y; }
474 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:44:57 ] >>473 馬鹿はすっこんでろ。
475 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:46:08 ] 振り出しに戻る、だなw
476 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:47:20 ] >>469 MSDN読んでこいよ バカ丸出し
477 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:52:12 ] return (x - y).CompareTo(0.0);
478 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:53:28 ] >>472 そういえば、そうですね。 単純に降順の場合、ret = -ret で返してました。 っていうか、ウェブにあるサンプルってどれも この返し方してたんで、疑問にも思いませんでした 定数を返した方が安全なんですね >>473 え、いやそこの所を実装したいのですが 後々も拡張したいので
479 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:53:58 ] >>477 バカ丸出しだなww そのCompareTo()の中身が欲しいんだろwww
480 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:55:32 ] 俺が正解書いてやったのにまだやってんの?
481 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:56:07 ] このスレ昔からそうだけど答えも知らないくせに 文句だけは言う馬鹿ばかりだなw
482 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:56:21 ] int Compare(double a, double b) { if (a - b < 0d) return -1; else if (a - b > 0d) return 1; else return 0; }
483 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:56:56 ] >>481 お前もそうだろww
484 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:59:00 ] >>483 お前もそうだろwww
485 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:59:32 ] >>484 お前もそうだろwwww
486 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:59:53 ] >>486 お前もそうだろwwwww
487 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 17:59:57 ] ふらっとのがまともだな
488 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:00:06 ] 何がおもしろいのやら… くだらない奴しかいなくなってしまったな…
489 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:00:40 ] >>490 お前もそうだろwwwww
490 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:01:10 ] public int CompareTo(Double value) { if (m_value < value) return -1; if (m_value > value) return 1; if (m_value == value) return 0; // At least one of the values is NaN. if (IsNaN(m_value)) return (IsNaN(value) ? 0 : -1); else return 1; }
491 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:02:10 ] >>488 前からずっとこうだろw 少し上のレスもそうじゃねえか 馬鹿のくせにプライドだけは高いから すぐに荒れるw
492 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:02:53 ] 普通の比較をしたいなら int Compare(double a, double b) { return a.ComaperTo(b); } 独自の比較基準を追求したいなら int Compare(double a, double b) { if ( よくわからない基準で同じならば(x, y) return 0; if ( よくわからない基準で大ならば(x, y) ) return 1; else return 0; } ってことじゃないの?
493 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:04:50 ] ああ、荒れてしまってすいません >>482 のようなシンプルな実装で行こうとも思います もっと式一つで済むようなかっこ良い実装があると思ったんです すいませんでした ありがとうございました
494 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:07:37 ] わざわざ引き算してるのは何で?
495 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:08:03 ] >>416 からの流れほどは荒れなかったなw
496 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:12:07 ] >>493 君は悪くない 実力の伴わない自尊心の持ち主が多いスレなんだ NaNの処理が必要だから>>490 の実装が正解に近いよ Reflectorを使って、System.Double.CompareTo(object value)の中身を見てみることをお薦めする
497 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:15:26 ] >>496 正解に近いんじゃなくて正解だよ
498 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:16:22 ] >System.Double.CompareTo(object value) だからさ、それをそのまま使わないか不思議なんだけど
499 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:18:02 ] >>498 拡張したいんだろ 初心者は変なことやりたがるんだからほっとけ
500 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:18:16 ] 正解に近いという言い回しは、Cカップ好きのあれ思い出すな
501 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:21:27 ] 一つの質問が投下されるたびに内容に関係無く 一悶着あるのがこのスレの掟w
502 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:23:52 ] >>498 特別なソートしたい場合なんていくらでもあるだろ 色々やってりゃ既製の比較関数じゃ追いつかない 場面は多々出てくる
503 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:35:21 ] >>496 自己紹介乙
504 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:40:46 ] >>496 ソースコードを直接見ろでいいじゃない。 質問者がExpress使いという可能性はあるけどさ。
505 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 18:58:58 ] >>490 遅レスだが、IsNaNの処理おかしくね? 非数じゃなかった場合、何でreturn 1に決め打ちしてんの?
506 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:06:06 ] >>505 ソースコード見てこいよ
507 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:25:39 ] >>505 何を決めうち? // ここに到達したら少なくともどちらかは非数なので m_valueが非数でvalueも非数ならば0 m_valueだけが非数ならば-1 m_valueが非数でないならvalueが非数なので1
508 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 22:05:31 ] 個人的には if (!IsNaN(m_value)) return 1; if (!IsNaN(value)) return -1; return 0; の方が、分岐が浅くなって好み
509 名前:デフォルトの名無しさん [2008/07/29(火) 22:42:53 ] 連想配列、HashMapにあたるコレクションの説明がC#の入門書では異常なほど排除されてますよね。 自分はDictionaryを見つけて使ってますが、みなさんはもしかしてインデクサをMapのように実装して使ってるんでしょうか? まさかとは思うんですが、独学の人間にアドバイスをよろしくお願いします。
510 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 22:46:51 ] いいえ
511 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 23:12:45 ] 普通にDictionaryだろどう考えても。 場合によってはHashtable使うこともあるが。
512 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 23:26:30 ] >>509 Dictionary はまさに連想配列よ。 赤黒木で実装されてる。 STL の map と一緒。
513 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 23:30:36 ] >>512 MSのサイトにはハッシュテーブルで実装されてるって書いてあるよ。
514 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 23:39:50 ] Dictionary - ハッシュ SortedDictionary - 赤黒木 ListとDictionaryぐらいは大抵の入門書で解説してあると思ってたわ。
515 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 23:39:50 ] Dictionary<,>はただのHashtableのラッパ。
516 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 23:41:21 ] Dictionary ハッシュ辞書 SortedDictionary 赤黒木 SortedList 索引をもつリスト Hashtable Dictionaryの非ジェネリック版
517 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 23:42:57 ] >>515 はデタラメ
518 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 23:45:56 ] SortedListは説明しづらいから逃げてることが多いかな。 わからなければSortedDictionaryを使うのが無難。
519 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 00:48:17 ] MSDNライブラリとか規格書とかSSCLIのコードとか読む人あんまり居ないの?
520 名前:デフォルトの名無しさん [2008/07/30(水) 00:50:37 ] 509です。カキコして下さった皆さんに感謝しています。 インデクサが定義可能と知り、まさかなと思いまして。でもやっぱりそうでしょうね。 >>514 ListとDictionaryぐらいは大抵の入門書で解説してあると思ってたわ。 まあ、いっぺん見てやってください。Listの解説があるならずいぶん良心的なほうです。。。 >>518 SortedDictionaryは推測するにJavaのTreeMapですね。新知識でした、ありがとうございます。
521 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 03:07:07 ] @ITってそこらの入門書より使えると思う俺
522 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 18:46:12 ] >>517 ソース読めよ馬鹿
523 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 19:00:13 ] >>522 reflectorで確認した限りでは使ってないな。どのあたりで使ってるの?
524 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 19:18:38 ] DictionaryBaseと混同してるんだろう せっかくジェネリックになったのにHashTableなんか使ってたら値型のときに速くならないじゃん
525 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 20:05:13 ] www.itmedia.co.jp/enterprise/articles/0807/30/news076.html .NET大勝利ですか?
526 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 20:09:49 ] 日本語がコードネーム? Vistaは見送ったけどこれは買おうかな
527 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 20:12:12 ] どうせ10年後くらいだろ
528 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 20:18:43 ] 横浜市緑区? めっちゃ近所なんだが
529 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 20:23:06 ] 俺んとこの市にも緑町があるぜ、隣の市とかその向こうにも。
530 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 20:35:07 ] >>525 大勝利って言われてもな。とりあえずWPFの普及率もっとあげてくれ。
531 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 20:59:47 ] Singularity ベースってだけで 9 割方ネタだろとしか正直
532 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 21:54:51 ] >>522 ソース読めよゴミ
533 名前:デフォルトの名無しさん [2008/07/30(水) 22:01:12 ] C#によるプログラミングWindows 上/下 (マイクロソフト公式解説書) はC#2.0でもかなり役に立つ? C#2.0版まだ、でなさそうだし・・・・ #オライリーのC#本、手打ちしてる位のレベルなんだけど
534 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 22:18:29 ] >>533 1.0の頃からあまり変化がない部分が中心の本だから「時代遅れ」の 心配はあまりいらないかもしれない。 ただ俺はあの人の本って一般に評価されてるほど評価する気になれんな。 網羅的なのはいいけどコード変だし。
535 名前:533 [2008/07/30(水) 22:28:27 ] >>534 なるほど。ありがとう 明日、本屋によって現物確認してから考えるよ(確かあったはず) とりあえず行数打って慣れるってレベルだから、いいかなと #オライリーのも うーん と思わなくもない #javaからshiftしきれてないからかな
536 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 23:57:26 ] ポインタ、クラス、ジェネリックを効率的に習得するには C -> C# -> C++ という順番がいいような気がする今日この頃。
537 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 00:04:01 ] お前の意見なんて求めていない 消えろ
538 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 01:43:13 ] Java、C、C#の順でやってきた C++は危ないコード書き放題の怖い何かって認識しかない
539 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 02:39:47 ] C++は言語仕様以外にも安全な書き方、 定番な書き方、インクルードファイルのインクルード順序とか、 まともに使えるようになるまでのインフラ整備にものすごく時間がかかるよ C++の複雑さと心中する覚悟のある人しか使えないんじゃないかなぁ
540 名前:デフォルトの名無しさん [2008/07/31(木) 11:25:26 ] レジストリのフルパスを表す文字列からRegistryKeyを取得する簡単な方法は 無いでしょうか? \\HKEY_LOCAL_MACHINE\Software\hoge というキーを取得するには Registry.LocalMachine.OpenSubKey("Software\\hoge") で取ることは可能ですが、 OpenSubKeyメソッドがRegistryKeyのインスタンス のサブノードしか取得できないため、まずルートキーを最低指定する必要があり 非常に面倒に感じます。 フルパスの文字列を解析して それがHKLMなのかHKCUなのか等をいちいち 判定して場合分けして、ルートキーを取得し、さらにそのサブキーを取得というのは 結構あほらしい気がするんですが…。 RegistryKey regKey = Registry.GetKeyFromPath("\\HK_LOCAL_MACHINE\\Software\\Hoge"); のように一気に取りに行く方法はFWに用意されていないんでしょうか?
541 名前:ノムヒョン [2008/07/31(木) 11:26:38 ] using System; using System.Collections.Generic; using System.Text; namespace VirtualMethods { class Control { protected int top; protected int left; /* 画面上でのウィンドウの位置を決めるための式 javaが懐かしい * */ public Control(int top,int left) { this.top = top; this.left = left; } // ウィンドウズへの描画をシミュレートします public virtual void DrawWindow() { Console.WriteLine("Program;プログラムを描画します。座標:{0}, {1}", top, left); } }
542 名前:ノムヒョン [2008/07/31(木) 11:27:50 ] public class Listbox : Control { private string listBoxContents; // 基本クラスのコンストラクタより引数が1つ増えています。 public Listbox(int top, int left, string contents) : base(top, left) // 基本クラスのコンストラクタを呼び出します { ListBoxContens = contents; } // 派生メソッドでふるまいを変えるための上書きバージョン(キーワード)overrideに注意) public override void DrawWindow() { base.DrawWindow(); // 基本クラスのメソッドを呼び出します Console.WriteLine("ListBoxへ文字列を書き込みます:{0}", listBoxContents); } } public class Button : Control { public Button(int top, int left) : base(top, left) { } // 派生メソッドでふるまいを変えるためのの上書きバージョン(キーワードoverrideに注意)
543 名前:ノムヒョン [2008/07/31(木) 11:28:46 ] public override void DrawWindow() { Console.WriteLine("Buttonを描画します。座標:{0}, {1}\n", top, left); } } public class Tester { static void Main() { Console win = new Control(1, 2); ListBox lb = new ListBox(3, 4, "単独のListBox"); Button b = new Button(5, 6); win.DrawWindow(); lb.DrawWindow(); b.DrawWindow();
544 名前:ノムヒョン [2008/07/31(木) 11:30:09 ] Control[] winArray = new Control[3]; winArray[0] = new Control(1, 2); winArray[1] = new ListBox(3, 4, "配列中のListBox"); winArray[2] = new Button(5, 6); for(int i=0; i<3; i++) { winArray[i].DrawWindow(); } } } } でアクセシビリティに一貫性がありません。基本クラス 'VirtualMethods.Control' のアクセシビリティはクラス 'VirtualMethods.Listbox' よりも低く設定されています。 とでて解決ができません。いろいろ調べてみたのですがもうどうすればいいのかと^^;
545 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 11:33:20 ] >>540 そういうメソッド一つ作っとけばあとは使いまわすだけじゃん
546 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 11:39:05 ] >>544 エラーメッセージのまんまだよ。 Controlクラスのアクセスレベルがpublicになってない。
547 名前:ノムヒョン [2008/07/31(木) 11:40:38 ] <<546 ありがとうございます
548 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 12:03:00 ] ム板ってなんで安価も付けられない糞コテばっかりなん?
549 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 13:44:27 ] >>540 元のWin32 APIからそういう風になっているから仕方ないな。 そこもなんとかしろよ.NETとは思うけど。 単発での読み書きなら、Registory.GetValue/SetValueが使えるんだけどね。
550 名前:デフォルトの名無しさん [2008/07/31(木) 13:44:34 ] >>545 まあ、そうなんですが。 ただあんまりあほらしいんで、車輪の再発明のような気がして なんかライブラリに用意されているのを見落としているのかなと 思ったんですが。
551 名前:デフォルトの名無しさん [2008/07/31(木) 13:46:32 ] >>549 WIN32からしてそうなんですか。 それじゃ無理そうですね…。
552 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 14:13:07 ] もともとHKEY_CURRENT_USERとかはパスではなく、 Registory.CurrentUserなんかに相当するWin32の定数だった。
553 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:26:49 ] デフォルトメーラーの起動で質問が有ります。 デフォルトメーラーの新規メール画面を添付ファイル付きで起動させたく、 現在MAPISendDocumentsで実装しています。 しかし、Outlook、Thunderbird、Eudra、Beckyなどは問題無いのですが LotusNotesだとNOT_SUPPORTED=26が返されます。 エクスプローラから「送る」→「メール受信者」や、 Excelの「ファイル」→「送信」→「メールの宛先(添付ファイル)」 などはちゃんと動いており、この機能はMAPIを使っているものだと思っていますが、 (これ自体間違っているかもしれませんが・・・) MAPIを使って他に添付ファイル付きで起動させる方法をご存じの方おりませんでしょうか? MAPIを使わなくても別の方法でも問題有りません。 いろいろウェブで探してみましたが結論には至りませんでした・・・
554 名前:デフォルトの名無しさん [2008/07/31(木) 22:53:14 ] Formの移動時やリサイズ時に枠線だけ動いたり変形している のと同じ描画を行いたいのですが、別のダミーのフォームを Style.Noneで実現しているのでしょうか。その場合はWinProcなどを 用いてWindowMessageを処理して実現可能でしょうか? その場合はMouseをCursorオブジェクトなどを使って操作して、 OnResizeメソッドなどをプログラム側から発生させてダミーのForm側 にMouseを乗り移らせるようなことが可能なのでしょうか・・・ この辺ご存知の方、できましたらアドバイス等頂きたく(それとも、 あれはデスクトップに直接描画とかしているのでしょうか?)
555 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 23:15:37 ] デスクトップにControlPaint.DrawReversibleFrameする簡単な実装は お気に召さないの?
556 名前:デフォルトの名無しさん [2008/08/01(金) 00:59:41 ] >>555 おお、そのような便利なモノがあったのですか!! 調べてみます!ありがとうございました!
557 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 11:46:10 ] すいません、質問です。 C#をベースにしたらしい言語を使ってます。 #includeを使いたいですが、これ自体はないようなので、 どういった手法をとればよいのでしょうか? importだかusingだかで、他から引っ張って来るような記述はあったんですが、 目的の機能ではないみたいで…。 目的としては、mainを含む上位部分を使いまわししたいんです。 で、下位部分を手動で大量に作って、共通部分の上位部と組み合わせてそれぞれコンパイルするような。 何かありますでしょうか?(´・ω・`)
558 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 11:47:18 ] C#をベースにした言語って?
559 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 11:53:29 ] Cω
560 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 11:53:57 ] シーチンコ?
561 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:01:40 ] 特に名称はないみたいです。 ツール内のみのスクリプト扱いなので。
562 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:02:55 ] ふうやれやれ
563 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:07:01 ] >>561 どんなツールだか知らんけど、そのツールのベンダーフォーラムなり ユーザーフォーラムなりそういうものはないのか? 構文だけC#に似せているのか、実際に.NET Frameworkを利用している のかもわからんし、アドバイスのしようがない。
564 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:30:11 ] >>563 確かにそうっすね。(´Д`; フォーラム系はないっす。マニュアルもろくに整備されてなくて。 サポセンもアウアウです、はい。orz ただ、基本的にはC#を汲んでるらしいので、 ひょっとしたらC#の手法が通るのでは? と思って質問しました。
565 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:44:12 ] C#ではCみたいなソースの使い回しはできないんじゃね?
566 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 13:00:15 ] ソースを分割するといってもせいぜい、partial classぐらいだろうな しかもあれはフォームデザイナーのための苦し紛れの構文だし。 むしろC#ライクな言語ってすごく不思議だな。C#をスクリプトとして使いたいならCodeDOMでコンパイルすればいいし blogs.sqlpassj.org/yoneda/archive/2004/10/07/4724.aspx みたいなやつか?使い方は知らないがw
567 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 13:34:35 ] >>564 そのツールって何?
568 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 13:39:18 ] >>564 言語の出所をはっきりさせない 理由も言わない サンプルコードも示さない お前何しに来たの?
569 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 13:50:08 ] >>564 ツール・・・ここらへんっすね。 ttp://www.accuratetechnologies.com/jp/products/canlab-software-179-175.html ttp://www.necel.com/micro/ja/partner/vendor/ATI/CANLab.html >お前何しに来たの? C#で#includeをする方法を聞きにきました。
570 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 13:59:42 ] その言語は知らないけどとにかくC#に#includeは無い 設計するときに無いほうがいいだろうと判断されたから無い
571 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 14:08:01 ] DLLにしてしまうのがいいかもね
572 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 14:19:08 ] きっとCでもこういうのincludeして悦に浸ってる人なんだよ #define program int main() { #define begin { #define end return 0; }
573 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 14:30:19 ] >>569 金払って買ったもののサポセンがないってどういうことよ 1ライセンス100万とかそういうソフトだろ とりあえず#includeに相当するC#のキーワードは#usingだが 使い方はC++でいうところの namespace std; だからまるで別物 とりあえずサンプルコードでもなけりゃ助言しようもないし 上司に相談したほうがはやいと思うぞ
574 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 14:31:49 ] ×namespace std; ○using namespace std;
575 名前:554 [2008/08/01(金) 15:06:49 ] 「ドラッグ中にウインドウの内容を表示するかどうか」をWindowsの オプション設定で決めることができますが、 ドラッグ中にウインドウの内容を - Google 検索 www.google.co.jp/search?hl=ja&lr=&q= ドラッグ中にウインドウの内容を&start=10&sa=N この設定がされているか、されていないかを、プログラム側から 知る方法を知りたいのですが、参考になる情報をご存知でしたら アドバイスをお願いします!
576 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 15:09:31 ] >>572 ワロタwでも一部分だけpascalでも意味内から無駄だな。
577 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 15:10:13 ] >575 www.google.co.jp/search?hl=ja&q=%E3%83%89%E3%83%A9%E3%83%83%E3%82%B0%E4%B8%AD%E3%81%AB%E3%82%A6%E3%82%A4%E3%83%B3%E3%83%89%E3%82%A6%E3%81%AE%E5%86%85%E5%AE%B9%E3%80%80%E3%83%AC%E3%82%B8%E3%82%B9%E3%83%88%E3%83%AA
578 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 17:21:50 ] >>571 DLLっすか。それで引っ張ってこれるなら・・・。 中々情報がないですが、漁って見ます。 >>573 サポセンあるにはあるんですが、質問したら 激しく役に立たないサンプルソースがヤル気なく返ってきました。('A` 相談したいんですが、社内での導入が実質初なので。 まともに使ったこと有る人、他にいないんです。 サンプルコード・・・一部抜粋して書いてみました。 役に立たなそうですが。(´Д`; MessageItem frm_ENG; public override void OnStart() { frm_ENG = GetMessage("ENG"); StartTimer("ENG",200); Start_test(); } [Timer("ENG",200, false , false)] public void OnTimer_t_ENG() { StartTimer("ENG",200); SendMessage(frm_ENG); } public void Start_test(){ WriteLine("start"); } 共通的に記述が2500行位で、それを百前後作るんで、 できれば引っ張ってきたいんですよね。
579 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 17:22:32 ] >>577 情報、どうもありがとうございました。 助かりました、すぐ調べてみます!
580 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:55:51 ] >>578 C#つかOO言語触ったことなくね?
581 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 21:24:42 ] >>578 が2chでヤル気なく質問してきた理由がわかった('A` 気の毒すぎるw C#とWindowsAPIが混ざってるよね… Timerを属性指定にして メソッドに依存させてしまっているあたりセンスのなさが感じられるww とりあえず>>578 が何をやりたいかということと サンプルソース全部と あともう微妙にスレ違いなんで、 どっかの放棄されたスレに移るかして、 腰を据えて分析するよりないんじゃないかなw パズル感覚で協力してくれる人いると思うよww
582 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 22:08:48 ] codedom使ってコンパイルしてるだけでC#なんだと思うよ つか常識的に考えて#includeで展開とか不要でそ… どんな状況なら必要なんだよ…
583 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 22:45:15 ] よくわからんけどincludeなんて前世代的だとおもう
584 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:01:12 ] なんという蘭学事始。
585 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:27:49 ] >>583 そうかもしれんが、かといってグローバルな(つまりファイルスコープじゃない) コンパイル定数を定義しようと思ったらプロジェクトのプロパティに ちまちま書かなければならん不便さを進歩と言ってよいのか疑問でもある。
586 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:32:02 ] >>585 定数も、const じゃなくて、static readonly なプロパティ使うことが推奨されてるしなぁ。 private/internal な場合か、円周率みたいに絶対変わらない値だけ const。
587 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:33:43 ] 定数だったら、たとえばColor.Redみたいに、クラスのpublicな要素でぜんぜん不便を感じてないけど。 そういうことじゃなくて?
588 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 00:03:34 ] お前は黙ってろ
589 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 00:05:26 ] お前がだまれ。
590 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 02:37:56 ] >>587 プリプロセッサシンボルを使いたいんだろうね >>585 はプロジェクトのプロパティでしか設定できないと思い込んでいるらしいが
591 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 05:28:26 ] >>583 クラス定義とか、テキストエディタさえあればヘッダ除けばすぐに判る点とか、 C/C++やってきた自分としては好きですけどね
592 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 08:38:54 ] クラス定義は嬉しいけど、インクルードする順番によってコンパイルが通らなくなったりするのは最悪だった
593 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 08:56:42 ] >>591 俺は C++ やってるからこそ、 あのヘッダシステムのせいで クラスの依存性切るのに pimpl みたいなおまじないが必要だし、 コンパイル速度が低下するし、 インテリセンスの効きが時々おかしくなるし、 include が大嫌いなんだが。
594 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 09:58:15 ] C、C++のincludeが遅いのはマクロのせいでしょう
595 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:01:48 ] C++の の間違いじゃない? Cはよほど下手な組み方でもしなければそうそう遅くならないでしょ
596 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:01:52 ] #includeが欲しいだけならプリプロセッサでもかませばいいじゃん。
597 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:22:18 ] 目立つのはC++になるね。 でもCも速度としては遅いし、ヘッダーを1バイトでも書き換えたら includeしてる全てのソースファイルを再コンパイルになるのはかわらない。 そういう意味でも遅いよ。 もしマクロがなくて、クラスや関数の定義のみであるなら リアルタイムコンパイルも可能だよ。
598 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:22:40 ] C みたいな関数宣言と #define だけのためにあるシステムを、 C++ でクラス定義でも使いまわしたのがそもそもの失敗じゃないか。 private な変数1個追加しただけで、#include してるファイル全部再コンパイルとか 狂ってるとしか言いようがない。
599 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:26:47 ] そこでpimplイデオムですよってスレ違いじゃねぇかよ
600 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:41:17 ] >>590 すまんその「思い込んでる」のは俺だけど、 俺の「思い込み」だというならもったいぶらずに君のいう別の方法を教えてくれよ。 分かってると思うけど議論の流れからいってIDEでプロジェクトの設定いじるより 不便な方法だったなんの意味もないわけだが、そこは踏まえて頼むよ本当。
601 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:11:56 ] >>600 普通に教えてくれでいいんじゃね? 頼みかた感じ悪いと思う いつもそうなん?
602 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:35:10 ] VSのマクロでCSharpProjectConfigurationProperties3.DefineConstants触るとか
603 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:39:48 ] >>599 既出 >>593 >>600 定数定義用の static なクラス作って、 絶対に変わらないと言い切れる定数は public const フィールド、 そうでなければ public static readonly なプロパティ。
604 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:41:14 ] あと、#if SYMBOL 用のシンボル定義は、 むしろヘッダファイルでできるべきではなく、プロジェクトのプロパティですべき というのが MS の判断。
605 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:54:44 ] >>604 なんだよやっぱりプロジェクトのプロパティでしか出来ないんじゃないかw だから「べき」って、確かにそうかもしれんがその不便さを進歩って言えるんかい、 つってんだよ。
606 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:55:40 ] 設定ファイルを直にいじれよ
607 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:06:03 ] 多重継承禁止とかもべき論で導入されたわけで
608 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:10:29 ] DebugやReleaseの他にもプロジェクト構成を作って切り替えるのが正攻法 逆にいえばそれで足りる用途にしか使ってほしくないんだろう
609 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:12:34 ] C++はtemplateを導入した時点で、#includeでマクロがどうこうといった次元からすでに超越してる。 技術的には可能でもC++のtemplateを模倣する言語は現れないだろう。
610 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:14:17 ] C++はあと文字列mixinみたいな機能が入れば完全にプリプロセッサと縁が切れるな
611 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:17:23 ] >>605 これのことでしょ ttp://msdn.microsoft.com/ja-jp/library/yt3yck0x.aspx 暑いんだからあんまりぎゃーぎゃー喚くなよ
612 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:25:45 ] >>609 Dとかどうよ
613 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:30:47 ] >>608 それが正攻法だというのは否定してないよ。 構成の切替方法はあれで便利だし。 ただIDEのあのたった一行の入力欄に「全部の定数を定義する必要がある」のは 不便で使いにくいって言ってるだけ。 しかも(当たり前だが)作った構成の数だけ同じことをする必要がある。 そこにミスが入った場合、非常に発見しにくいとも思うんだが。。
614 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:38:02 ] あっちこっちのファイルに飛び散るより遥かにましだと思うが
615 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:36:11 ] >>605 「できる」みたいに言ってるやつと >>604 は別人だろ。 できる風に書いてるやつは多分よく読んでないだけ。 要するに、お前の書き込みによく読む価値はないと判断されてる。
616 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:50:34 ] 実に自分を世界の中心に置く「セカイ系」的発想だね。 俺やアイツの誤読はお前の文章に読む価値がないからだ、ってかw まあ、自分を世界の中心に「俺様中華思想」もいいかもしれんが、 だったら自分の言葉を自分に適用したらどうだろう。 つまりもう少し他人にとって有益な情報を書けよって意味だが。
617 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:51:54 ] 黙ってスルーする能力もないのかよ
618 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:54:44 ] 能力というのは目的合理的に物事を推進する力のことを言う。 では「スルーする能力」という時の「スルーする」ことの目的ってなんだ? 少なくとも俺にとってはそんなものはない。 むしろ馬鹿は叩いておいた方が場のため本人のため、そして自分自身の精神衛生のため、 と思っての行動なんだけどね。
619 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:59:03 ] というか .csproj はただの MSBuild の XML ファイルなんで テキストエディタで開いてゴリゴリ編集できるんだがそういう 基本的な話は知らんのか? VS からならプロジェクトのアンロード → **.csproj の編集。 …ついでに言うと、VS 側の CSharpPackage が変な proj ファ イルでも普通に動くので VsPackage めんどいとき(ビルドとIDE から適当にファイルが見えて編集できればいい)は .csproj 流用 するといいみたいな。
620 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 15:27:10 ] csprojのほうはいいんだが、slnのほうは変なGUIDが付いてるので手でいじれん・・・ どっかに何入れればいいか公開されてるのかな?
621 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 15:36:53 ] 適当でいい
622 名前:デフォルトの名無しさん [2008/08/02(土) 15:58:49 ] ソリューション周りの情報なら VSSDK の msdn.microsoft.com/it-it/library/bb165922.aspx この辺しか知らん。 ・・・が、俺は基本的にいじるのは IDE 上からだなぁ。依存関係とか。
623 名前:デフォルトの名無しさん [2008/08/03(日) 10:39:27 ] XmlSerializerでstaticなクラスをXMLに保存できないですよね? アプリ設定情報をstaticにしてどのクラスからもすぐに楽に参照したいんですけど、 staticクラスにするとXmlSerializerは使えないですよね?
624 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 10:41:21 ] シングルトン
625 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 10:49:08 ] >>623 ・MySettingクラス(仮称)をstaticクラスじゃなくてsingletonにする。 または ・MySettingクラスはstaticのまま、内部の実装としては別のHogeSettingクラスの インスタンスをもちこいつをXMLシルアル化するようにして、外部にはSaveSetting/LoadSetting メソッドを公開する。
626 名前:デフォルトの名無しさん [2008/08/03(日) 11:20:33 ] シングルトンでいきます ありがとうございました!
627 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 11:32:44 ] stringの配列を指定した列挙型の組み合わせに変換したいのですが、 @のところでコンパイルエラーになってしまいます。 どのように実装したらいいんでしょうか・・・ public class ConvertToEnum<T> where T : Enum ←@ { private T _value; public class ConvertToEnum(string[] texts) { foreach (string s in texts) { _value |= Enum.Parse(typeof(T), text, true); } } public T Value { get { return _value; } } } [Flags] public enum TestEnum { AAA = 001, BBB=002, CCC=004 } string[] texts = { "AAA", "BBB", "CCC" }; TestEnum value = ConvertToEnum<TestEnum>(texts).Value; value : 007
628 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 11:45:19 ] コンパイルエラーの内容読むこともできないの? enumとかdelegateとかで制約は無理
629 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 15:00:54 ] staticコンストラクタでif (!typeof(T).IsAssignableFrom(typeof(Enum))) throw new Exception(); でおk でもその例でクラスにする意味がわからない ConvertToEnum<T>(string[] text)でいいよね
630 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 17:51:29 ] >>629 クラスにしたのは元のソースがクラスだからです 必要な部分だけ残したら上の形になりました えーと、Generic制約でEnumを指定できないと、 Aの部分の | 演算子が使えません… foreach (string s in texts) { _value |= Enum.Parse(typeof(T), text, true); ←A } _valueをint型にしてもBの部分でコンパイルエラーです… public T Value { get { return (T)_value; } ←B } 上手な実装の仕方はないでしょうか…
631 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:02:54 ] リフレクション
632 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:24:52 ] where T : struct, IConvertible としておいて value = default(T); foreach (string s in texts) { value = (T)Enum.ToObject(typeof(T), value.ToInt32(null) | ((T)Enum.Parse(typeof(T), s, true)).ToInt32(null)); }
633 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:45:43 ] List<List<int>>型変数に入ってるすべてのintを返すIEnumerable<int>がほしいんだけど、 Linqとか使うと1行で可能?
634 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:59:33 ] listlist.SelectMany(list => list);
635 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 19:08:50 ] >>634 ありがd。
636 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 19:30:09 ] |=を使わんでも、文字列をカンマ区切りにして、 Keys k = (Keys)Enum.Parse(typeof(Keys), "Control, Alt, T", true); みたいにすればいい。
637 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 20:49:00 ] >>634 おおそんなのが・・・
638 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:19:43 ] >>634 こういうのが頭の中にすんなり入ってこないorz
639 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:32:35 ] var array = new[] { new {A="あ", B="いう"}, new { A="え",B="お" } }; var flat = array.SelectMany(x => new[] { x.A, x.B }); Console.WriteLine(string.Concat(flat.ToArray())); こういう例のほうがわかりやすいかな
640 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:35:33 ] ラムダ式を華麗に扱えるようになりたい
641 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:40:18 ] C#3.0でRayToracingとかのArticleあったけれど、あのソースがラムダ使いこなしたサンプルの一つとみていいもんかね。
642 名前:デフォルトの名無しさん [2008/08/04(月) 21:46:35 ] バイト配列の変換について教えてください。 バイナリファイルよりReadAllBytesでデータをバイト配列に格納後、指定の バイト数分のデータを2進数の文字列に変換するメソッドを作成しています。 8バイトまではBitConverterメソッドで数値変換し、Convert.ToStringで 2進数の文字列に変換できるのですが、9バイト以上はBitConverterメソッドが 対応していません。この場合、何か良い方法があるのでしょうか? よろしくお願いします。
643 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:48:22 ] 手抜きするならBitConverter.ToStringとString.Replace
644 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:49:07 ] どうでもいいが数値変換したらリトルエンディアンになっちゃうぜ
645 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 22:09:26 ] クリスタルレポートとMicrosoft.Reportingのどっちを使おうか悩む。 普通なら昔からあるものは情報も豊富でバグも枯れてて使いやすい はずだが、クリレポは悪評ばかり・・・
646 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:09:18 ] >>638 このケースではクエリ式の方がとっつきやすいかな。 from list in listlist from x in list select x; 慣れてくればSelectManyを思い出せるようになる。かも。 ILではどっちでも同じことなんだけど。
647 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:24:50 ] >>638 SelectMany は正直無理だと思う。 そのために、 from listist in listlist from x in list select x みたいな記法がある。 これで listlist.SelectMany(list => list) と同義のはず。
648 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:26:01 ] >>641 あれは結構邪道だけどな。 クエリ式が関数型言語っぽい記述できるのをいいことに、 C# 内で関数型言語プログラミングしてるっていう。 クエリ式の目指すところではなくて、副産物的なものだと思う。
649 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:56:31 ] Validatorクラスでの正規表現チェックって クラサバでもwebでも使えますか?
650 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 02:19:49 ] >>633 >>634 に便乗して、 List<List<List<int>>> listlistlist; から IEnumerable<int> を得るには、 listlistlist.SelectMany(listlist => listlist).SelectMany(list => list); か、 listlistlist.SelectMany(listlist => listlist.SelectMany(list => list)); みたいな感じでOK? もっと良い書き方があったりするのかな?
651 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 05:45:41 ] >>650 それでOK。
652 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 08:49:25 ] >>650 それでもいいけど、それは関数化すべき気がする。 static IEnumerable<T> Concat<T>(IEnumerable<IEnumerable<T>> listlist) { return listlist.SelectMany(list => list); } を作って、Concat(Concat(listlistlist));
653 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 08:55:21 ] メソッドと関数って何が違うの?
654 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 08:56:39 ] メソッドはクラスの一部だけど関数はそうじゃなかったような・・・ というか関数はそもそもC時代の名残だし
655 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 09:03:34 ] >>653 昔の名残。 OOP 用語的にはメソッド、昔の名残的にはメンバ関数。 単に関数っていうと、グローバル関数(C# では定義できない)のことだけど、 非 OOP 言語ではグローバル関数として定義するような static メソッドのことを関数って呼んだりする。 関数化ってのも、メソッドとして独立させろって意味。 サブルーチン化って言った方がいいかも。
656 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 09:08:55 ] サブルーチンって更に化石用語な気が。
657 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 09:29:32 ] Procedure / Function、Sub / Function のように 関数とサブルーティンを分ける言語も多いね。 サブルーティンを戻り値のない関数としたのはCあたりからだったかな。
658 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 10:25:21 ] BackGroundWorkerとThreadってどっちがパフォーマンスいいの?
659 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 10:38:04 ] 気にするほどのもんでもない
660 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 11:21:39 ] >>307 .Where 以降の構文は、3.5から追加されたものだと 思うのですけれども、なんと呼称されているでしょうか? オブジェクト内のメソッド呼び出しのようですし Linq とはまた別の新しい技法のような気がします。 てか、Where, ToList, ForEach が一般的過ぎて検索しにくい・・・
661 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 11:22:42 ] 拡張メソッド 実態は静的メソッドの呼び出し
662 名前:660 mailto:sage [2008/08/05(火) 11:39:51 ] 72.14.235.104/search?q=cache:XjAX73gxeIgJ:msdn.microsoft.com/ja-jp/library/bb342261.aspx+Where,+ToList,+ForEach+3.5+C%23&hl=ja&ct=clnk&cd=1&gl=jp&lr=lang_ja というかドキュメント嫁、じぶん 基本型のbuiltin関数を暗黙的にオーバーロードしてる いうのが何か引っかかる・・・Where, ToList, ForEachは どこに所属してるメソッドなのかという、Linq難しいな…orz
663 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 11:53:22 ] for m in Assembly.LoadFrom("Hoge.dll").GetType("Hoge.Tool").GetMethods(): where(m => (!m.IsPublic && !m.IsPrivate && m.Name[0] == 'A')): for elm in m.ToList(): Console.WriteLine(elm) .Where(m => (!m.IsPublic && !m.IsPrivate && m.Name[0] == 'A')) .ToList().ForEach(Console.WriteLine); sql みたいな書き方をしてる事例ちょくちょく見かける あれはシンタックスシュガーみたいなもんかしらん 209.85.175.104/search?q=cache:M90LdfsXoOYJ:msdn.microsoft.com/ja-jp/library/system.reflection.fieldinfo.ispublic (VS.80).aspx+IsPublic+IsPrivate&hl=ja&ct=clnk&cd=3&gl=jp&lr=lang_ja IsPublicは fieldinfo のメソッドか・・・ C#だとメソッドもフィールドの一種なのかな、C++と違うとか
664 名前:660 mailto:sage [2008/08/05(火) 12:01:18 ] 209.85.175.104/search?q=cache:90Q7i7GDavEJ:msdn.microsoft.com/ja-jp/library/system.reflection.methodbase.isspecialname.aspx+IsPublic+IsPrivate+methodinfo&hl=ja&ct=clnk&cd=2&gl=jp&lr=lang_ja ドよめ 滝に打たれてチネ…orz
665 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 22:50:40 ] >>660 それもLINQ。 from x in list where x > 10 select x; みたいなのはLINQクエリ式。 list.Where(x => x > 10); みたいなのはメソッド形式のLINQ。 >>663 そう、構文糖衣。 from x in listX from y in listY select x * y; みたいな構文が、メソッド形式ではどうやってもスマートな書き方できなかったから導入されたらしい。
666 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:37:27 ] >>665 その例だと listX.SelectMany(x => listY, (x y) => x * y) こうなるけど、例としては不十分な気がする これくらいにしないと from x in listX from y in listY where x > y select x * y; listX.SelectMany(x => listY, (x, y) => new { x, y }) .Where(z => z.x > z.y) .Select(z => z.x * z.y); あと、let入るとさらに面倒になるな
667 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:45:10 ] user32.dllのAnimateWindow()を呼び出しているのですが、 CPU負荷が大きくてガクガクします。 負荷を下げる方法ってありませんか?
668 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 00:03:44 ] AddRange()に二次元配列を渡す方法はないですか?
669 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 00:13:20 ] >>668 直接は無理。 LINQ 使って軽い変換かければ可能。 例えば、int[ , ] array なら l.AddRange(array..OfType<int>()); int[][] なら l.AddRange(array2.SelectMany(x => x));
670 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 00:57:12 ] 乙です。
671 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 02:23:30 ] >>666 外部結合になるとクエリ式でももうわけわからん var r2 = from x in "abcdefghijklmn" join y in "ABCDEFGHIZ" on x equals Char.ToLower(y) into yex from y in yex.DefaultIfEmpty('.') select new string(new char[] {x, y});
672 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 05:36:57 ] VS2008EEを使用中です。 C#でDBを使うデスクトップアプリを作る場合、 DBは何を使うのがベストなのでしょうか? とりあえずSQL compact3.5ってのを弄ってみましたが、 DBファイルが独立して作られてて、なんか妙な気分です。 ビルドしたらアプリに含まれるようになるんでしょうか? ほかにXMLを使うやり方もあるそうですが、難易度高すぎる気がします。 なにか他にお勧めあったら、教えてくだちい。
673 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 08:23:08 ] DBをアプリに含めるってのの方が変じゃね? LINQ使えばXMLもSQL Server Compactも大差ないと思うが。
674 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 08:27:51 ] >ビルドしたらアプリに含まれるようになるんでしょうか? そんなん聞いたこともないわ。 Accessのイメージで言ってるのか?
675 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 09:10:50 ] Firebird使えばできなくもないがXMLで難易度高すぎなら無理だろうな
676 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 09:32:53 ] >>673 ,674 別になってるのが普通なんですね(汗 おっしゃるとおり、Accessのようなものをイメージしてましたorz 言われてみれば、Web系でもDBと処理は別になりますよね・・・ >>675 一応、ちょっとだけ弄ってみたんですが、 木構造が複雑になってしまい、これだったら慣れてるRDBのほうが楽かなと。 恥ずかしながらFirebirdは初耳でした。ちょっと調べてみます。
677 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 18:39:17 ] >676 何がしたいのか分からないけどXmlSerializerあたり調べてみたら?
678 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:15:20 ] 「DBファイルが独立して〜」の意味が把握できないけど、アプリにDBを組み込ん じゃいたいってことなら SQLite とかの組み込みDBって手があるよね。
679 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:34:28 ] >678 俺も>672を読んでそう思ったので組み込みDBにできるFirebirdの名前出した。 けど>676読んだら「RDBが使いたい」ってわけじゃ無い感じがしたんでXmlSerializer言ってみた。
680 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:23:58 ] コントロールのバインドはDBじゃなくてたんなる int[]とかからも情報を取り込めるですか?
681 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:54:29 ] foreach (var msg in FizzBuzz(100)) { Console.WriteLine(msg); } ということができるように、 public static IEnumerable<bool> Fizz() { while (true) { yield return false; yield return false; yield return true; } } public static IEnumerable<bool> Buzz() { while (true) { yield return false; yield return false; yield return false; yield return false; yield return true; } }
682 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:56:28 ] public static IEnumerable<string> FizzBuzz(int max) { var fizz = Fizz(); var buzz = Buzz(); foreach (var i in Enumerable.Range(1, max)) { bool isFizz = fizz.First(); bool isBuzz = buzz.First(); fizz = fizz.Skip(1); buzz = buzz.Skip(1); if (isFizz && isBuzz) { yield return "FizzBuzz"; } else if (isFizz && !isBuzz) { yield return "Fizz"; } else if (!isFizz && isBuzz) { yield return "Buzz"; } else { yield return i.ToString(); } } } こんな感じのメソッドを作ってみたのですが、複数のIEnumerableを並行して進めながら処理するforeachみたいなのってないのでしょうか? 自前でFizzとBuzzを1つずつ進めてるのがいまいちスマートじゃない気がして、複数のIEnumerableを並行して進める手軽な方法ってないでしょうか? foreach (var i, isFizz, isBuzz in Enumerable.Range(1, max), Fizz(), Buzz()) { とかみたいな雰囲気でまとめて書く方法ってないですか?
683 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 21:12:29 ] >>682 ZipWithみたいなのが欲しいということかな? だったら、デフォルトでは存在しない。自作している人ならちらほら居る。
684 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 21:13:24 ] うん? EXEとDBファイルが同じファイルになるのを期待してると思ったんだが。 Accessのイメージって言ってるし。 SQLiteもFirebirdもんなこたないんじゃないの? SQL compact3.5だっておんなじようなもんでそ?
685 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:10:49 ] サーセン676です。 684さんのおっしゃる「EXEとDBファイルが同じファイル」を期待してました。 DBもMS謹製しか使えないかと思ってましたが、 他のも結構使えるようなので、改めて調べてみます。
686 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:36:50 ] C#プログラムでで正規表現を使っているのですが、 正規表現中にPerlのように ttp://8-p.info/perl-interpolation/ string hoge = "hogehoge"; Regex r = new Regex(@".*hoge"); //hogehogeが展開される のようにして変数を展開することはできるでしょうか?
687 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:46:55 ] 普通に ".*" + hoge では駄目な理由は何?
688 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:46:56 ] 変数を展開って何?
689 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:48:21 ] ああ、そういうことか。 string.Format かなにかで文字列化してから Regex に食わせればOK。 文字列中に ".*$hoge" みたいに変数入れたければ PowerShell 使えばいいと思う。
690 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 01:35:37 ] 685です。ありがとうございます。 変数を展開したい理由は何かと問われれば 変数hogeの文字列も外部の関数から取得してくるからです。
691 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 02:56:21 ] >>685 ?ん? 色々カオスってるぞ。 >>686 のリンクも行けないぞ。
692 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 03:10:51 ] AllowsTransparencyをtrueにするとウインドウフレームが表示できなくなってしまうのですが、 System.Windows.Windowで下のSS最前面のウインドウのようにOpacityを使用するにはどうしたらいいのでしょうか? 最前面のウインドウはSystem.Windows.Formsです。 ttp://www.imgup.org/iup662583.png
693 名前:デフォルトの名無しさん [2008/08/07(木) 10:52:52 ] 質問です。 環境:C#2.0です。 あるファイルパスがあるとして、 同じディレクトリに別のファイルを作りたいとき、 どのようにファイルパスを作ればよいでしょうか。 (パスそのものを作らなくても書き込みできればよいので FileInfoとかでもよいのですが) string path1 = @"C:\xx\yy\aa.txt"; FileInfo file1 = new FileInfo(path1); string path2 = file1.FullName.Replace(file1.Name, "bb.txt"); なんてもの考えましたが完全じゃないですし。 どうやるのが真っ当なやり方でしょうか。 いろいろ調べてみましたがわかりませんでした。 よろしくお願いします。 // javaで言うところの new File(directoryName, filename) なんてのが // あればと思ったんですけど少なくともFileInfoにはなかったので
694 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 10:59:02 ] Path.GetDirectoryNameとかPath.Combineとか
695 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 11:33:51 ] ありがとうございます。調べてみます。
696 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:20:06 ] objectを引数に取る関数とかobjectのプロパティとかってクラスライブラリを見ただけじゃ 何をセットすればいいのか分からない場合が多いんですがどうやって調べればいいんでしょうか? ググって事例を探してるんですが、事例が無いと完全にお手上げです。
697 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:23:07 ] 千里の道も一歩から始まることを信じよう それ、わんつーわんつー
698 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:26:37 ] 確かに.netはobject型を引数に取るとか多いな。JavaでObject型を引数に取るのはあんまり見ないのに。 この辺って何か思想の違いみたいなのがあるん?
699 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:32:04 ] >>698 Javaはプリミティブ型がObjectを継承してないからじゃないの
700 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:36:16 ] いざとなったらReflectorで中追っかけてみる
701 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:37:41 ] >>698 そんなに多いか? 非ジェネリックなコレクション以外あまり思いつかないが…
702 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:40:11 ] 非ジェネリックコレクションとIComaprableあたりは当然として、 WriteLineやString.Format系、Thread関係のデリゲート、 EventHandlerのsender、ほかなんだっけ。
703 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:43:01 ] ICloneable.Cloneがそう。共変性がないからobjectを返さないわけには行かない。
704 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:45:26 ] データソース関係とかobjectに何渡すのかわかりにくくないですか? 標準じゃないけど、nplotってライブラリも何を渡すのか分からなくてちょっと困った。
705 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:47:03 ] JavaとC#とでそういう差が出そうなGenerics関連の違いって思い浮かばないけどな。
706 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:51:09 ] データバインディングはそうですね。あれはリフレクション使いまくってるから。
707 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:15:33 ] C#とCだったらC#のほうが入門には適しているでしょうか?
708 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:18:56 ] うん
709 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:20:44 ] >>708 ありがとうございます。 それと、勉強するための本を買おうと思っているのですが 有名な物・お勧めの物はあるでしょうか?
710 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:56:16 ] >>709 ネットで十分
711 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:58:55 ] >>709 マジレスすると ufcpp.net/study/csharp/index.html がおすすめ
712 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 01:02:11 ] >>711 ああ、それは俺もお勧め。
713 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 02:15:19 ] >>711 読ませていただきます。 ちなみにVC#というソフトでみなさんはプログラムを書かれているんですか?
714 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 02:16:28 ] うん
715 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:05:21 ] むしろテキストエディタとWindowsSDKでやってる人がいたら尊敬する
716 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:14:34 ] 単なるバカだから尊敬できないな
717 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:16:32 ] .Netが出始めてたころはそれでやってた人もいたようだがな 無料版のIDEも無かったし
718 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:21:40 ] きちんと楽出来る環境が簡単に整えられるのに わざわざ意味が無い苦労をする人がいたらそれは馬鹿だけど そう言う環境が簡単には揃わない時代なら仕方ないじゃない
719 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 09:17:43 ] 今のVC#はテキストエディタとしても異常に快適だからな
720 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 09:56:00 ] プライベートで他のクラスからアクセスする必要のないフィールドって内部クラス化した方が良い? 外部クラス?それとももっとスマートな方法ってある?
721 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:06:09 ] >>720 そのままプライベートのフィールドで持ってたらあかんの?
722 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:13:20 ] フィールド==インスタンスの話が何故かクラスの話になるから意味が分からなくなる
723 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:44:48 ] >>721 それじゃインスタンス1つ分にしかならなくね?
724 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:51:40 ] 行数多くなるとVisualStudioのロードが遅くなるから分けようかと思ったんだけど、 実行時に無駄にオーバーヘッド生むよね、本末転倒だったね・・・
725 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:59:51 ] partialだかそんなのなかったっけ?
726 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 11:59:03 ] VSに負担掛けるほどたくさんの行にフィールドが宣言されてるの? ロードの時間とか細かいパフォーマンス気にする以前の問題だろそれ さすがに分けるべき
727 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 12:07:16 ] 時代はパーシャル!
728 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 18:59:02 ] トラックで全国回ってた人だねw
729 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 22:45:56 ] >724 JITコンパイラの最適化を少しくらい頼ってみたら? 時々例外が起きたときのスタックトレースが妙に抜けてることがあって インライン展開されてる様子がわかるとちょっと嬉しくなるよ。
730 名前:デフォルトの名無しさん [2008/08/09(土) 18:42:15 ] 簡単なエディタを作っているんですが、 RichTextBoxを使ってて、描画領域を少し右にずらして、その空いた領域に 行番号を描画しています。Graphics.DrawStringです。 当然スクロールされたら行番号を変えなくちゃいけないですが、このとき 再描画する前に前回描画した行番号を消すには、 どんな方法が一番最適なのでしょうか。
731 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 18:56:44 ] 背景色で塗りつぶす
732 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:22:56 ] 趣味でやるぶんにはExpress Editionで十分ですか?
733 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:25:03 ] 趣味の内容によるかな。いわゆるベータ版マニアだとインストールできないアドインが 多いから十分じゃないかもしれない。
734 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:25:51 ] >>732 十分。
735 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:27:40 ] パッケージフェチとしてはやっぱり製品版じゃないと
736 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:32:03 ] ドMな俺はSDKとメモ帳が最高。
737 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:35:41 ] 俺なんか仕事で評価版つかってるから大丈夫
738 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:36:52 ] >>733 何か使えない機能があるということですか >>734 そうですか >>736 頑張ってください
739 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:38:12 ] >>737 不具合はないですか?
740 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:40:25 ] silverlight2やSQLServer2008用のアドインはSTD版以上だったかな。
741 名前:デフォルトの名無しさん [2008/08/09(土) 20:43:02 ] TextBox.Text = str; とやっているのですが、strが大きいと処理時間遅くなるものなのですか? str.Lengthが4320162だったのですが、10secくらいかかります。 中身のイメージではポインタのコピーとかではなく、実データを コピーしているから遅いのでしょうか? これを早くする方法はないのでしょうか?
742 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 20:44:08 ] TextBox使うのやめて、オーナードローにする
743 名前:デフォルトの名無しさん [2008/08/09(土) 21:18:00 ] 文字列代入の時だけ別スレッドで動かせばいいんですかね?
744 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:22:01 ] コントロールにはそれを所有しているスレッドからしかアクセスできん
745 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:26:41 ] >>742 の言ってる事は、 遅いのは文字列のコピーじゃなくて、その文字列の描画に時間が掛かってるんだよ という事
746 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:33:15 ] 4320162ってヘタしたらXPのソースコードよりデカい気がするんだけど そんなものTextBoxに表示してどうしろとw ちなみに、RichTextBoxで代替したらあんがいあっさり解決しない?
747 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:39:23 ] > XPのソースコードよりデカい またまたご冗談を
748 名前:デフォルトの名無しさん [2008/08/10(日) 00:08:05 ] >746 RichTextBoxだと7秒くらいでTextBoxで17秒くらいかかります。 バイナリをヘキサで表示してるんですが、大きいものだとこの7秒とかの間 かたまってしまって・・・ >745 TextBox.Text = str; の前と後にStopWatchクラスで処理時間を出してるんですが、 この代入には描画処理も含まれているということでしょうか? RichTextBoxはコントロールで表示されているところの描画のみ してくれるわけではないのでしょうか? >744 コントロールに別スレッドからでもアクセスする方法ってありません でしたっけ?Invokeとか? RichTextBoxには表示したいところだけバイナリを情報を代入してけば いいんですかね?スクロールするたびに出したり消したりするとか?
749 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 00:11:16 ] >>748 InvokeはUIスレッドが今やってる仕事を中断させて別の仕事をやらせる関数。 そんなでかいデータ扱うなら横着しないでユーザコントロール書けばいいだろ。
750 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 00:47:50 ] >>749 しつこいね君も。 簡単に言うけどかなり面倒だしそれなりに難しいと思うよ。 表示することだけ考えてない?
751 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 00:56:37 ] >>750 それならもう勝手にしろよw ヘキサエディタでできあいのコモンコントロール使ってるのあったら教えてね
752 名前:デフォルトの名無しさん [2008/08/10(日) 01:03:48 ] すいません横着させてくださいっす。新しくユーザーコントロールはきついっす。 RichTextBoxがそういう仕様ならやはりちょびちょび表示ですかねぇ。。。
753 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 01:11:16 ] 仮想モードでListViewでもつかえば
754 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 01:30:38 ] プログラム板ってさ、低脳ばっかだよね。 OpenGLスレくらいだなマシなのは。
755 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 01:31:29 ] OpenGLスレ見てみたがアホばっかりなんだが…
756 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 01:50:58 ] >>755 どんなスレ見てるの?
757 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 06:43:35 ] >>748 TextBox.AppendText()は使ってみた? InvokeRequiredとInvoke, BeginInvokeはUIスレッドにマーシャリングしてくれるメソッド
758 名前:デフォルトの名無しさん [2008/08/10(日) 07:23:19 ] >757 TextBox.AppendText(str)も同じくらい時間かかりました。 >753 >仮想モードでListView kwsk
759 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 08:24:17 ] zip内のファイルを実行したい(wav鳴らすとか)のですが、そのためには一時フォルダ等に ファイルを展開しなければならないのでしょうか? zip内に格納したままあれこれやるってのは不可能なのでしょうか?
760 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 08:28:07 ] うん
761 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 10:40:14 ] SharpZipLibでメモリに展開し、Win32APIのwaveOutWriteやDirectSoundに流せばできるんじゃね?
762 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 10:41:55 ] Streamに展開すればいいんじゃね?
763 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 13:56:58 ] 質問です DBからデータを取得し、その構造体を返すクラスを作成しています。 私個人としては、datasetの形でかえしたいと思っています。 しかし、速度の問題から、 listを返すようになっています。 datasetで値のやりとりをするのと、<list>でやりとりをするので そこまで速度やパフォーマンス、メモリの負担などはかわるのでしょうか? ただのgetsetのプロパティのついたクラスのarraylistを、データとして使うほうが 早いのでしょうか? 僕としては、ここは.NETらしくdatasetを使いたいのですが。
764 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:03:31 ] とりあえず測ってみればいいんじゃないかな
765 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:06:39 ] 構造体返すんだったらデータセットよりも素直にコレクションで返してくれた方が 使う側としては便利だと思うけど
766 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:13:54 ] >>758 kwskじゃなくてまずググれよ
767 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:14:57 ] .NETの構造体の意味を誤解している可能性大
768 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:14:59 ] 代入では無くて文字列の描画に時間がかかってるなら、 ユーザードロウしない限り改善不可能じゃないか?
769 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 17:51:36 ] >>765 そうでしょうか。 たとえば、DataSet(型付Datasetという意味です)でデータを持つか 構造体でデータを持つか そのメリットデメリットってそもそもなんなんでしょうか datasetだと、複数テーブルをセットして、 リレーション張ったり、 うけとった側で、フィルターかけたり、nullチェック等のメソッドが用意されていたり デザイナでデザインできたりするところだと思うのですが 構造体にすると、なんか.NET的な組み方じゃなくなってるような気もしたりしなかったり 僕が間違っていますか。
770 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:05:43 ] 時と場合による
771 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:25:37 ] とりあえず「構造体」というものについて勘違いしてるのはよくわかった クラスじゃなくてほんとに構造体で返すようなデータならデータセットで返すなんてありえない
772 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 21:53:50 ] 構造体って値で返すのか
773 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 22:11:58 ] >>771 すいません、 えっとarrayistを返すか、datasetを返すかということでした。すいません。
774 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 01:12:06 ] 作り手はdatasetのほうがいいだろうさ 使う側はどういう用途なの? それがわからんと良いとも悪いともいえん
775 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 12:33:44 ] MSDNライブラリには SpinWait のコードの実行は、 複数のプロセッサが搭載されているコンピュータで発生する可能性のある問題を回避するように設計されています。 たとえば、Hyper-Threading技術を使用した複数の Intelプロセッサが搭載されているコンピュータで、 SpinWait は、特定の状況で、利用できるプロセッサ リソースがなくなることを回避します。 とあるんですが、マルチコアCPUではThread.SleepよりThread.SipnWaitを使った方が良いのでしょうか?
776 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 12:42:36 ] ケースバイケース
777 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 15:32:52 ] >>775 ていうかその説明は Sleep 関係ない。 Sleep と比較してどうこうじゃなくこのメソッドの実装は HT やマルチコア みたいな環境でも問題起こりませんよっつー意味 なんでそんな注意書きがあるのかはスピンウェイト、スピンロック あたりでググってまずそのメソッドが何するのか分かれ。 ついでに Sleep との違いも
778 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 16:12:16 ] マルチコアだけでなくハイパースレッディング環境でも 一応うまく動くようになってるよってことじゃないの?
779 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 16:16:00 ] マルチコアやハイパースレッディングみたいな環境でも問題起こらないって… 普通マルチコアやハイパースレッディング環境でしか使わないだろ でハイパースレッディングの場合も一応うまく動くようになってるよってことだろ? 実装によっちゃ無意味にCPU目一杯ぶん回すだけで意味ない可能性もあるから。
780 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 16:19:36 ] コードを見ようと思ったがネイティブに飛んでてわからなかった。 予想できることは一定時間ごとにスレッドを譲る仕掛けか、 一定時間でSleepに変更するかといったところだろう。 1CPUの場合はすぐさまスイッチしないと意味が無いし、 2CPU以上ならある程度スピンさせてても大丈夫だろう。 HTの場合はその中間くらいで手打ちしてるんじゃなかろうか。
781 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 17:44:20 ] スピンはスレッド中断には移行しない。 だから自分でバックオフを持たなきゃならない。 まあそもそも長時間かかる可能性がないとこだけにしとくのが無難だけど。 ついでに大抵シングルコア環境では使わない。 HTの場合は処理なし命令?でスピンして、有効な処理ではないことが CPUに分かるように実装されてるはず。
782 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 18:42:10 ] いやシングルコアでは使わないって言うか使うよ。高精度な というかスイッチしない待ちのとき使うものでコア数関係ない あえて言えば Win 上で動くからか ちなみに HT の場合の話だがシェアするからビジーさせると それが埋め尽くしちゃってパフォーマンスが極端に低下する。 だから PAUSE 命令が追加されててスピンにそれを使う必要が あるんだがそれ使ってますよみたいな意
783 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:38:13 ] シングルコアでスイッチしない待ちをやること自体が少ないんじゃないの?
784 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:40:27 ] あ、ここでのシングルコアはHTは含んでない。
785 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 21:13:56 ] >>783 内部的でいいんなら Moniter やらの同期機構が内部で使ってる。 アプリレベルだと例えば単純にスイッチは精度が悪い(Sleep は「最低」 指定時間待つ API)ので timeBeginPeriod(or MMCSS)でスケジューラ いじって Sleep とスピンウェイトのあわせ技がいい。 機会や直で使うジャンルが少ないのは同意。コア周り、メディア、ゲーム 系しか知らん。 というか一定時間(クロック)待つようなメソッドの使い方(ぶっちゃけタイマ みたいなもんだ)がマルチコアしか使わないになんでなるんだよという話。 ぜんぜん別やん。 もしかしてマルチコアじゃなくマルチスレッドっていう話か? …それはそれとして思い出したんだが iterations を現実時間から計算する 方法知っている人いたりしない?
786 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 21:55:36 ] いや、一般にメディア、ゲーム系なんていう特殊な用途以外じゃ まず使う機会がないって感覚だった。 Winで一定時間(クロック)待つような使い方自体が特殊用途なイメージだったわ。 ところでMonitorやらってシングル環境でもSpinWaitしとんのかね??
787 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:15:43 ] >>786 モニタの場合は基本的に他のスレッドからの開放待ちだから1CPUではスレッドを譲らないと意味が無い。 マルチCPUの場合は最初はスピンで待って、一定時間越えたらSleep系のWaitに変える。 1CPUでスピンをやるとしたら、微妙なタイミングのIO制御や 他のディバイスからの割り込み待ちといったところで普通はディバイスドライバの仕事。 ゲームとかビデオとかそういうのが絡まない限り1CPUでビジーループはありえない。
788 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:28:21 ] だよねってことが聞きたかった。 単にシングル環境での >内部的でいいんなら Moniter やらの同期機構が内部で使ってる。 について疑問だっただけ。
789 名前:デフォルトの名無しさん [2008/08/12(火) 14:28:25 ] C#のおもしろい、本・ホームページ教えてけれ。 今、GUIをソースコードからうってcscでコンパイルしてるんだけど、おもしろい。 なんでもいいから、教えてけれ。
790 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:19:44 ] ちょっとGUIでアプリ(簡単な物)を作ろうと思ったのですが C+APIはもう嫌になったので(殴 新たに何か言語を勉強すべくC#に目をつけたのですが、 ・GUIアプリ製作のためにC#を学ぶ この考えはまずいでしょうか?(もしくは他にもっと良いものがある?) (プログラミングのスキルはCをそこそこ,JAVAは超初心者 です。)
791 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:25:51 ] いいと思うよ
792 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:30:00 ] >>789 猫でもわかるは知ってるよね? ttp://www.kumei.ne.jp/
793 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:07:25 ] >>790 全然良い。 逆に言うと画像処理とか線形代数計算ならわざわざC#を選ぶ必要性がないしね。 イベントと継承が分かってくれば単純なGUIアプリならすぐ作れるようになるよ。 頑張れ。
794 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:24:17 ] JavaだろうがC#だろうがマルチスレッドになってからが本番だと思う
795 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:44:19 ] >>789 Google 先生の評価に従ってみるのもいいと思う。
796 名前:789 mailto:sage [2008/08/12(火) 18:44:30 ] >>792 猫はC#編もあるんだ。昔、WinAPIのときちょっと参考にしていたよ。 やってみるよ。さんくす! >>795 Google先生でググってみます。色々あってどれがいいか見定めなきゃいかんけど、 がんばるよ。ありがとう。
797 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 20:56:08 ] MicrosoftPressのプログラミング.NET Frameworkが良かった デリゲートやガベージコレクション、非同期処理などについてとても詳しい解説があるよ
798 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 09:50:20 ] DataGridViewを利用した自作カレンダーを作ったんだが、 これを複数のフォームで使いたいのね。 そういう時、クラスライブラリを作るのか、プロジェクトにクラス追加するのか、 どっちがいいの? てか、プロジェクトに追加するクラスって、どういう時に使うの?