[プログラム板] C#, C♯, C#相談室 Part47
レス数が1000を超えています。これ以上書き込みはできません。
0001名無しぃ♯
2008/06/21(土) 17:51:22c++厨の嵐はスルー汁。
前スレ
C#, C♯, C#相談室 Part46
http://pc11.2ch.net/test/read.cgi/tech/1208791919/
その他テンプレ>>2-5くらい
0002名無しぃ♯
2008/06/21(土) 17:52:16http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
ふらっとC#,C♯,C#(初心者用) Part28
http://pc11.2ch.net/test/read.cgi/tech/1211688164/
MSDN2
http://msdn2.microsoft.com/ja-jp/library/default.aspx
pinvoke.net: the interop wiki!
http://pinvoke.net/
0003名無しぃ♯
2008/06/21(土) 17:53:07ttp://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/
0004デフォルトの名無しさん
2008/06/21(土) 17:54:26スマンかった 次のスレはちゃんと頭のゴミ消しといてくれ
0005デフォルトの名無しさん
2008/06/21(土) 17:59:550006デフォルトの名無しさん
2008/06/21(土) 18:33:490007デフォルトの名無しさん
2008/06/21(土) 18:44:150008デフォルトの名無しさん
2008/06/21(土) 20:28:04これくらい致命的じゃ無いな
次立てる事があれば気をつけてくれ
乙
0009デフォルトの名無しさん
2008/06/22(日) 00:13:200010デフォルトの名無しさん
2008/06/22(日) 00:19:04[プログラマー板] C#, C♯, C#相談室 Part48
0011デフォルトの名無しさん
2008/06/22(日) 07:31:06笑いをくれた>>1乙www
0012デフォルトの名無しさん
2008/06/22(日) 12:39:410013デフォルトの名無しさん
2008/06/22(日) 12:43:13PCのスペックの問題か、プログラムの内容の問題と思われ。
0014デフォルトの名無しさん
2008/06/22(日) 12:55:150015デフォルトの名無しさん
2008/06/22(日) 13:01:38それだ!まさにそれだった。天ぷら物だ
0016デフォルトの名無しさん
2008/06/22(日) 13:27:080017デフォルトの名無しさん
2008/06/22(日) 22:29:30特定の文字に色もしくは特定の文字に背景色を設定することは
不可能ですか?
不可能な場合、自作コントロールだと思うのですが、
どのように作っていくのが良いですか?
0018デフォルトの名無しさん
2008/06/22(日) 23:16:430019デフォルトの名無しさん
2008/06/22(日) 23:33:25TextBoxだとホイールとかなり同期して動いてくれますが、
RichTextBoxのあの遅いスクロールが今回のモノによろしくなくて。。。
TextBoxばりのスクロールにする方法があれば、解決です。
0020デフォルトの名無しさん
2008/06/23(月) 01:47:310021デフォルトの名無しさん
2008/06/24(火) 00:28:080022デフォルトの名無しさん
2008/06/24(火) 21:16:230023デフォルトの名無しさん
2008/06/24(火) 22:47:163a-2b+ -1d= 7
2b+2c+ d= 5
a-2b-3c-2d=-1
b+2c+ d= 6
という行列を解くプログラムを作りたいのですがエラーが出てうまくいきません
どなたか間違えの指摘などをお願いできないでしょうか?
解き方はピポット選択で前進消去法です、お願いします。
0024デフォルトの名無しさん
2008/06/24(火) 22:53:03002523
2008/06/24(火) 22:53:54指摘ありですノシ
0026デフォルトの名無しさん
2008/06/26(木) 09:58:48これをOLEでつなぐことってできるの?ちなみにODBC-OLEブリッジは、使えなかった(例外が出る)。
0027デフォルトの名無しさん
2008/06/26(木) 12:01:0132bitしか対応していないとのことで困っています。
下のサイトで対応方法のヒントらしき情報は見つけたのですが、
すでに出来上がってるラッパーライブラリ等はないでしょうか?
http://d.hatena.ne.jp/NyaRuRu/20061130/p1
0028デフォルトの名無しさん
2008/06/26(木) 12:17:530029デフォルトの名無しさん
2008/06/26(木) 15:12:42IUnknownを例とすると、下記のように表示するプログラムを作りたい
のですが、まったく方法がわかりません。
QueryInterface 0
AddRef 1
・
・
0030デフォルトの名無しさん
2008/06/26(木) 18:20:47interface IWksImagingServer : IDispatch {
[id(0x00000001), propget, helpstring("property ImagingServicesInterface")]
HRESULT ImagingServicesInterface([out, retval] unsigned long* pVal);
もしid(0x00000001)のことだったら、それはDispach IDだから動的に取れる。
IDispachを実装してないI/Fには当然そんなものはない。
0031デフォルトの名無しさん
2008/06/27(金) 13:15:03ぐぐってもほとんどjavaやCばかりで・・・・
0032デフォルトの名無しさん
2008/06/27(金) 13:15:260033デフォルトの名無しさん
2008/06/27(金) 13:16:540034デフォルトの名無しさん
2008/06/27(金) 15:57:29どなたかNクィーンの勉強にいいサイトは知りませんでしょうか?
0035デフォルトの名無しさん
2008/06/27(金) 16:00:560036デフォルトの名無しさん
2008/06/27(金) 16:24:49>Visual C# 2005 Express Edition 日本語版
>http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
このスレでは2008でなく2005推奨なの?
0037デフォルトの名無しさん
2008/06/27(金) 16:42:06まず、C#でNクイーンを解くプログラムを作りたいと => これはおk
で、現状の理解度について
・アルゴリズム(解法)を理解していない
=> スレ違いだから理解してから出直せ
・アルゴリズムを理解したうえで、C#での記述の仕方が分からない
=> 分からない箇所を具体的に書け
>>36
どれが推奨とかは多分ないはず
ただ、環境を明示しない質問は自動的に最新版(VS2008、.NET3.5、C#3.0)とみなされるが
0038デフォルトの名無しさん
2008/06/27(金) 22:19:29変更忘れてるだけでしょ
Express入れるんだったら特に理由がなければ迷わず2008
C#な人って新しもの好きが多いし
0039デフォルトの名無しさん
2008/06/27(金) 22:26:400040デフォルトの名無しさん
2008/06/27(金) 22:52:580041デフォルトの名無しさん
2008/06/27(金) 22:58:38こうですか?わかりません(><)
0042デフォルトの名無しさん
2008/06/27(金) 23:07:36エディットコンティニューと中からのyieldさえあれば神だったんだが。
0043デフォルトの名無しさん
2008/06/28(土) 10:57:140044デフォルトの名無しさん
2008/06/28(土) 11:11:21クロージャ内で yield 書けるようにしとけばよかったって言ってた気が。
0045デフォルトの名無しさん
2008/06/28(土) 11:48:490046デフォルトの名無しさん
2008/06/28(土) 12:12:05今までの感じから言って、プレビュー版が出てからですら
正式版まで1・2年かかるから、
今、「次で対応します」と言っても、だいぶ先の話になる。
0047デフォルトの名無しさん
2008/06/28(土) 12:35:44C#4.0はどんなのになるんだろ
0048デフォルトの名無しさん
2008/06/29(日) 07:55:500049デフォルトの名無しさん
2008/06/30(月) 00:24:590050デフォルトの名無しさん
2008/06/30(月) 01:04:10C# "Future Focus" でググると多少出てくる。
まだMS社員が「こんなアイディア持ってるよ」ってレベルで、
仕様と呼べる段階じゃないけど。
0051デフォルトの名無しさん
2008/06/30(月) 08:36:11それより便利なライブラリ提供してくれたほうがうれしいです
0052デフォルトの名無しさん
2008/06/30(月) 09:23:370053デフォルトの名無しさん
2008/06/30(月) 10:56:320054デフォルトの名無しさん
2008/06/30(月) 12:17:06四次元ポケットとか?
0055デフォルトの名無しさん
2008/06/30(月) 21:34:50ダミーの匿名型のオブジェクトをジェネリックメソッドの引数に渡すとか
変態的なことしないといけないのは何とかしてほしい
0056デフォルトの名無しさん
2008/06/30(月) 21:46:540057デフォルトの名無しさん
2008/06/30(月) 21:53:34.NET 3.0, 3.5 はライブラリ追加がメインじゃん。
なんか、「Windowsプログラミングの極意」に書いてあった話思い出すな。
「見た目ばかり変えてないで中身改善しろよ」という人に限って、
「電卓、代り映えしないよね」という。
実際には電卓の中身ものすごい変わってるのに。
0058デフォルトの名無しさん
2008/06/30(月) 21:56:38var list = Enumerable.Range(0, 0).Select(x => new { X = 0.0, Y = 0.0 }).ToList();
我ながら変態的w
0059デフォルトの名無しさん
2008/06/30(月) 21:57:27んあに含まれてるけど、これのためだけに使うのはどうかと思う
ところでxnaってどう読めばいいの?エクセナ?クセナ?んあ?クロスナ?エックス菜?ペケナ?ゼーナ?
0060デフォルトの名無しさん
2008/06/30(月) 22:02:423.5 にあるよ、Vector クラス。
System.Windows.Vector と System.Windows.Media.Media3D.Vector3D。
XNA は普通にエックス・エヌ・エー。
0061デフォルトの名無しさん
2008/06/30(月) 22:13:350062デフォルトの名無しさん
2008/06/30(月) 22:17:56>>59
というか Linq みたいなんは基本的に副作用、状態を途中で変えるの
嫌って書いたほうがよい。足したいなら .Concat(...) で結合。
0063デフォルトの名無しさん
2008/06/30(月) 22:20:300064デフォルトの名無しさん
2008/06/30(月) 22:54:370065デフォルトの名無しさん
2008/07/01(火) 22:57:13要素にNamespaceを設定すると
<element xmlns="namespace-test">
〜〜〜
</element>
ってなるけど
<test:element xmlns:test="namespace-test">
〜〜〜
</test:element>
ってできない?
006665
2008/07/01(火) 23:24:33シリアライズするクラスのメンバにXmlSerializerNamespaces入れたらできた
0067デフォルトの名無しさん
2008/07/03(木) 17:36:23Microsoft.DirectX.AudioVideoPlayback.Videoでビデオを開放するにはどうしたらいいですか?
Openすると前のファイルを開いたまま開いちゃうしDispose()しても開放してくれないです><
0068デフォルトの名無しさん
2008/07/04(金) 01:59:39指定したパスワードを掛ける/外す処理を行うにはどうすればよいのでしょうか?
(C# や .NET で MS OFFICE ファイルを操作できると思っているのですが、無理でしょうか?)
0069デフォルトの名無しさん
2008/07/05(土) 03:27:02最近とみに無理やり感が強くなってる気がする…
0070デフォルトの名無しさん
2008/07/05(土) 04:34:04VBの場合見かけ上プロパティの参照が渡せるように書けるから話がややこしい
0071デフォルトの名無しさん
2008/07/05(土) 07:37:09開くときはdocuments.openでPasswordDocumentかWritePasswordDocument
あたりのパラメータに渡してやればいいと思うが。
保存時はdocument.passwordを設定して、document.saveでいけるんじゃね?
>C# や .NET で MS OFFICE ファイルを操作できると思っているのですが、無理でしょうか?
そもそもoffceのオブジェクトにc#からアクセスする方法がわからんというレベルなら、
MSDNで調べてくれ
0072デフォルトの名無しさん
2008/07/05(土) 11:55:20列挙したそれぞれの要素もDisposeしなきゃだめ?
0073デフォルトの名無しさん
2008/07/05(土) 15:00:53どうせ書くなら具体的に書けよ。
どうせ自分の感覚に自身がないから誰かが賛同してくれるの待ってるんだろ?w
実に女々しいというか悲しい奴だなあんた。
0074デフォルトの名無しさん
2008/07/05(土) 16:17:45ネタがないんだろうな。
0075デフォルトの名無しさん
2008/07/05(土) 16:23:160076デフォルトの名無しさん
2008/07/05(土) 16:25:110077デフォルトの名無しさん
2008/07/05(土) 16:27:150078デフォルトの名無しさん
2008/07/05(土) 16:29:550079デフォルトの名無しさん
2008/07/05(土) 20:11:200080デフォルトの名無しさん
2008/07/05(土) 20:29:09矯正した方がいいんじゃないの?w
別にああいう文体って結構ありがちだと思うぞ。
プログラミングとか工学系の本じゃ珍しいのは確かだが。
っていうかプログラミング系の日本人ライターにありがちなヲタ臭い文体の奴よりずっとましだと思うが。
「幸せになれる」だの意味なく文頭に#付けたりだの、ヲタ系のプログラマ以外一般に誰も使わない
表現や言い回しを好む奴ね。
0081デフォルトの名無しさん
2008/07/05(土) 21:04:09まあ別にそういうもんだと思って読むだけだが。
0082デフォルトの名無しさん
2008/07/05(土) 21:43:33「人類の発展に貢献する」系に比べたら、マシには見えるけど。
0083デフォルトの名無しさん
2008/07/05(土) 22:45:02こういう小ネタ面白いと思うけど。
「幸せになれる」って聞くとなんとなく幸せなんだけどw
人の文体がいちいち気になるものなの?
#はメリハリついて分かり易いと思うんだけど。
0085デフォルトの名無しさん
2008/07/06(日) 20:31:48C#のWindowsアプリケーションに
C#からみてobject型の配列(2次元)を渡すとき、
何かいい方法はありませんか?
現状は、C++側の関数のout引数に
*variant型を設定し、C#側からobject型と
してみせて取得しようと思っています。
・・・他にいい方法があれば教えて下さい。
お願いします。
0086デフォルトの名無しさん
2008/07/06(日) 20:33:050087デフォルトの名無しさん
2008/07/06(日) 21:23:47「幸せになれる」ってたとえば
「hogeをプロパティにしておけば幸せになれるかもしれない」って奴のことか?
むしろ、自分以外に使う人がいたのがびっくりだが、ヲタとか関係ないだろ?(そもそも自分はヲタじゃないしな)
#を付けるのは確かに一部の人間だろうね。
でも#でコメントアウトするスクリプトや設定ファイルは結構多いから、誰にでも通じるとは思うけどね。
0088デフォルトの名無しさん
2008/07/06(日) 21:47:34「自分以外に使う人がいたのがびっくりだが」ってw
「幸せになれる」だの「ごにょごにょする」だの、
ヲタ系プログラマ(ただし本人たちにその自覚は乏しい)しか使わない
独特の言い回しを使う奴っていっぱいいるでしょ。
0089デフォルトの名無しさん
2008/07/06(日) 21:49:570090デフォルトの名無しさん
2008/07/06(日) 21:51:52正直消えてなくなてほしいよこういう連中は。
0091デフォルトの名無しさん
2008/07/06(日) 21:58:260092デフォルトの名無しさん
2008/07/06(日) 21:58:340093デフォルトの名無しさん
2008/07/06(日) 22:20:44土方には土方の方言があるし、医者は医者の言葉を使うだろ。
0094デフォルトの名無しさん
2008/07/06(日) 22:29:13特定の職業(プログラマ)の言葉遣いを槍玉に挙げているのではない。
ヲタ系の気色の悪い連中の言葉遣いにケチをつけてるんだよ。
0095デフォルトの名無しさん
2008/07/06(日) 22:34:12メジャーなメディアで「幸せになります」とかいってるPGなんて見たことない。
0096デフォルトの名無しさん
2008/07/06(日) 22:37:44どんな読解力だよ。
>端的に気持ち悪いし、PGのマンガ的なステロタイプを作ってるのはこいつらなわけで、
>正直消えてなくなてほしいよこういう連中は
どこにも
>オタPGの言葉遣いが、世間のPG像のステレオタイプになってるってる
などという趣旨のことは書いてない。
0097デフォルトの名無しさん
2008/07/06(日) 22:39:20どうでもいい話だね。
0098デフォルトの名無しさん
2008/07/06(日) 22:49:16世間じゃなかったら、だれに、漫画的なイメージを持たれて「消えてほしい」と思うくらい不愉快に思ってるんだろう。
0099デフォルトの名無しさん
2008/07/07(月) 12:21:280100デフォルトの名無しさん
2008/07/07(月) 12:25:300101デフォルトの名無しさん
2008/07/07(月) 12:28:100102デフォルトの名無しさん
2008/07/07(月) 13:22:480103デフォルトの名無しさん
2008/07/07(月) 20:06:34Visual C# 2005 Express Edition と Visual C# 2008 Express Edition にはどのような違いがあるのでしょうか。
現在のPCのOSが2000でありまして、VC# 2008をインストールすることができないと言われます。
もし両者にそれほどの差異がないのであれば2005を使おうかと思うわけなんですが。
http://codezine.jp/a/article/aid/2184.aspx?p=1
は目を通してみました。
C#のバージョンが3.0になっているようなんですが、
http://ufcpp.net/study/csharp/
のサイトで見る限り、初心者の私がすぐに不便さを感じるようなものでもない気はしました。
後日PCを新しくしたときにXPにする予定なので、その際にVC# 2008を入れたとしても、特に問題はなさそうでしょうか?
それとも、2008で増えた機能というのは初心者でも必須ないし、あった方がよさそうなものですかね。
0104デフォルトの名無しさん
2008/07/07(月) 20:10:48名前が思い出せね 誰か教えてくれ
0105デフォルトの名無しさん
2008/07/07(月) 20:13:500106デフォルトの名無しさん
2008/07/07(月) 20:15:31WPFやLinqが使いたいなら2008かな?あとラムダ式も使えるようになってる。
(ラムダ式ってのはデリゲートを簡単に書くための構文だな。記述法というだけだから必須ではない)
>>104
コントロールを回転・縮小・拡大したいならWPFで出来るよ。
0107デフォルトの名無しさん
2008/07/07(月) 20:40:14どもども、ありがとうございます。
PC買い換えまでは2005でやってみます。
0108デフォルトの名無しさん
2008/07/07(月) 21:12:38標準ではなくてフリーライブラリだけど、カルーセル?
0109デフォルトの名無しさん
2008/07/07(月) 21:23:02WPF使うってのもありか
>>108
いや横に回転するのではなくて円形に回転するやつ
http://www.forest.impress.co.jp/article/2004/09/30/sklaunch.html
みたいなのに近い
どこかの会社が無料で出してた気がするのだが
0110デフォルトの名無しさん
2008/07/07(月) 21:44:40WPFでの実装だったと思うけど
0111デフォルトの名無しさん
2008/07/07(月) 21:51:13あったありがとう
http://slashdot.jp/developers/article.pl?sid=08/03/18/0948257&threshold=-1
これで安心して眠れる
0112デフォルトの名無しさん
2008/07/07(月) 21:54:21俺の想像力が欠如してるせい?
っていうかうっとうしくないのかなそれw
0113デフォルトの名無しさん
2008/07/07(月) 22:58:24回転メニューの有用性はスターオーシャンと聖剣伝説で実証済み
テイルズシリーズでも採用されてたっけ?(テイルズはやらないので知らない)
0114デフォルトの名無しさん
2008/07/07(月) 23:07:130115デフォルトの名無しさん
2008/07/07(月) 23:26:47なんか視野狭窄というか、オレサマ=世界のいわゆる「セカイ系」の人?
君が思ってるほどゲームをやる人種ってのは多くないんだよ。
少なくとも俺はゲームなんてまったくやらない。
そんな一方的にそのスターなんたらを知ってる前提の話をされてもね。
0116デフォルトの名無しさん
2008/07/07(月) 23:32:240117デフォルトの名無しさん
2008/07/07(月) 23:57:32いつでるんだっけ?
0118デフォルトの名無しさん
2008/07/08(火) 00:07:040119デフォルトの名無しさん
2008/07/08(火) 00:14:49SP1 で追加されるのは MFC 版。
MFC Feature Pack っていうんだけど、英語版はすでに正式版が出てる。
日本語は VS 2008 SP1 に同梱。
WPF のリボンは年末くらいを目標に作ってるらしい。
ドッキングは不明。
0120デフォルトの名無しさん
2008/07/08(火) 00:38:41ググれば直ぐ見つかるような有名なゲームだし、最悪分かる人に分かれば良い内容です。
(さすがにSO2とか略したら二酸化硫黄と区別つかないけどなw)
そもそも、「俺の分かる話しかするな」って言われたら…
本「期待値とは物理で言うところの重心です。(期待値も重心も相加平均です)」
A「ああ、なるほど。」
B「物理なんて知るか。この本、腐ってやがる。出版社に文句言おう!」
…なんて事になるからそんな事言う人はいないよね?
0121デフォルトの名無しさん
2008/07/08(火) 00:45:15その物理学(学問の最高峰)とゲーム(たかだか「お前」が知ってるだけ)を
並列することになんの疑問も抱かないようなメンタルを「セカイ系」と呼ぶんだよ。
0122デフォルトの名無しさん
2008/07/08(火) 00:50:380123デフォルトの名無しさん
2008/07/08(火) 00:56:080124デフォルトの名無しさん
2008/07/08(火) 00:56:58( ゚д゚ ) セカイ系 の検索結果 約 456,000 件中 1 - 10 件目 (0.24 秒)
StarOcean の検索結果 約 3,360,000 件中 1 - 10 件目 (0.28 秒) ( ゚д゚ )
( ゚ д ゚ )
さすがに物理で検索したら136,000,000越えるけど、君の言うセカイ系って何?スイーツ(笑)みたいなやつ?
0125デフォルトの名無しさん
2008/07/08(火) 00:57:470126デフォルトの名無しさん
2008/07/08(火) 01:01:27じゃなかったら馬鹿過ぎる
0127113=120=124
2008/07/08(火) 01:07:22で結局、RingMenuって便利なの?
RingMenuForOSは起動しないし、SDKは相変わらず登録が必要だし…だれか感想求む
0128デフォルトの名無しさん
2008/07/08(火) 01:47:32PCではどうだか。
0129デフォルトの名無しさん
2008/07/08(火) 03:43:50気がする。使ってないけど聖剣あたりの記憶をたどってみると。
Alt(Win) + Tab みたいなかんじでくるくるみたいな。
0130デフォルトの名無しさん
2008/07/08(火) 03:53:14ポインティングデバイスもアルファベットの刻印されたキーもない環境専用だろ。
0131デフォルトの名無しさん
2008/07/08(火) 10:07:02例えば12時にカーソルがあって6時を選択したい時は左右キーでアイコンを回すって感じ?
カーソルの方が動くんだったら下キーで一発だけど。
0132デフォルトの名無しさん
2008/07/08(火) 17:21:18ttp://www.ringmenu.jp/demonstration.aspx
0133デフォルトの名無しさん
2008/07/08(火) 22:44:36とりあえず、XML-RPC.netが使えそうなんですが、他に何かいい案は、ないでしょうか。
0134デフォルトの名無しさん
2008/07/08(火) 23:25:43Jpegファイルを集めて、先頭に取り出すための情報を詰めて、後でまた戻すといったやり方がしたいんです。
0135デフォルトの名無しさん
2008/07/08(火) 23:28:09* tar
* 非圧縮zip
0136デフォルトの名無しさん
2008/07/08(火) 23:46:340137デフォルトの名無しさん
2008/07/09(水) 01:40:32それをC#で書きたいのか?、ツール使いたいのかハッキリしろ。
もしツールなら、スレチだボケ!
0138デフォルトの名無しさん
2008/07/09(水) 12:22:53UserControlから派生した独自コントロールを作ってます。
Disposeが必要なリソースを扱ってるため、Unloadedイベントで後始末を行ってるのですが
明示的に親要素から削除すれば呼ばれるのですが、ウィンドウを閉じた場合には呼ばれませんでした。
ウィンドウを閉じた時にコントロールに通知されるイベントはありませんか?
0139デフォルトの名無しさん
2008/07/10(木) 13:00:36・IMEに文字情報を与えて変換候補の一覧を取得
Imm32.dllをインポートする部分はわかったのですが
ImmGetCandidateList関数に渡す変換候補一覧を格納するバッファの構造体
の定義の仕方などがよくわかりません。
またImmGetCandidateList関数はいきなり使って大丈夫なのでしょうか?
ハンドルとかいろいろ渡すようなのですが・・・
0140139
2008/07/10(木) 13:11:45こちらは無しでお願いします。
0141デフォルトの名無しさん
2008/07/10(木) 13:21:480142139
2008/07/10(木) 13:23:120143デフォルトの名無しさん
2008/07/10(木) 14:55:21は当然いけるのだけど
public class Hhoge<A,B> where A:new(B){}
ができない(Aの型を、Bが引き数のコンストラクタを持つクラスだけにしたい)
こういう制限ってかけることできないのかな
0144デフォルトの名無しさん
2008/07/10(木) 15:03:460145143
2008/07/10(木) 15:06:43ありがとうございます
できない理由とか解説してるページって知りませんか?
0146デフォルトの名無しさん
2008/07/10(木) 15:08:45理由も何もコンストラクタ制約はnew()以外にないから
0147デフォルトの名無しさん
2008/07/10(木) 22:45:42変換する関数とかありますでしょうか?
0148デフォルトの名無しさん
2008/07/10(木) 22:47:01つhttp://www.atmarkit.co.jp/fdotnet/dotnettips/212urlencode/urlencode.html
0150デフォルトの名無しさん
2008/07/11(金) 02:03:35forループ内ではどうやって記述したらいいのでしょうか?
やっぱり事前に配列を作る等の下準備が無いと駄目ですか?
0151デフォルトの名無しさん
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;
}
0152デフォルトの名無しさん
2008/07/11(金) 03:32:28てかfor文で書くのか。
for (int i=2; i<=5; i++)
{
Label l = this.Controls.Find("label" + i.ToString(), false)[0] as Label;
l.Text = Label1.Text;
}
0153デフォルトの名無しさん
2008/07/11(金) 09:35:33コンストラクタでAを作るためのデリゲート(Func<B, A>とか)を受けたらいいんじゃね
0154デフォルトの名無しさん
2008/07/11(金) 09:51:10Tableクラスを継承して機能を上乗せして作ろうとしているのですが
カスタムコントロールタグの中にTableRowを入れその中にTableCellをタグで指定することができません。
なんとなくParsistsChild 辺りなのかなと思うのですがいかんせんMSDNの記述が読み取りにくくて・・・・
実現したいのは以下のような記述をデザイン時にタグで入力して
実行時にテーブルとして吐き出す事です。
<CustomTable id="hoge" runat="server">
<TableRow>
<TableCell>
1行1列
</TableCell>
</TableRow>
< /CustomTable>
なにかサンプルとかサイトでも構いませんので情報いただけませんか?
よろしくお願いいたします。
0155デフォルトの名無しさん
2008/07/11(金) 11:10:52マルチスレッドうまく出来ないーヽ(`Д´)ノウワァァン
0156デフォルトの名無しさん
2008/07/11(金) 11:12:21つBackGroundControl
0157デフォルトの名無しさん
2008/07/11(金) 11:15:45デッドロック?
0158デフォルトの名無しさん
2008/07/11(金) 11:16:290159デフォルトの名無しさん
2008/07/11(金) 11:16:53ですよね〜
0160デフォルトの名無しさん
2008/07/11(金) 11:32:530161デフォルトの名無しさん
2008/07/11(金) 11:46:190162デフォルトの名無しさん
2008/07/11(金) 11:47:160163デフォルトの名無しさん
2008/07/11(金) 11:49:130164デフォルトの名無しさん
2008/07/11(金) 14:04:130165デフォルトの名無しさん
2008/07/11(金) 15:20:43次にDoWorkで通信待ちをしていて、通信を受け取ったらそのイベントでFormのプロパティ書換えを連続でしたいんだ。
それで、そこからButtonClickイベントでRunWorkerCompletedに移動したいんだ。
それでもって同じButtonClickイベント内でRunWorkerAsync()をしたいんだけど、どうしたらいいのかわからない・・・
buttonClick(){
RunWorkerAsync();
}
DoWork(){
通信メソッド();
}
ChangeValue(){//通信メソッドの受け取ったよevent
}
RunWorkerCompleted(){
}
0166デフォルトの名無しさん
2008/07/11(金) 15:28:23連続でってどういう連続? 移動って何? RunWorkeAsyncが二回出てきてるの?
0167デフォルトの名無しさん
2008/07/11(金) 15:35:46・ボタン押す
・通信データを受け取ることができたら非同期通信完了
・別のボタンで通信完了後の処理を行う
こういうことなんか・・・・?
0168デフォルトの名無しさん
2008/07/11(金) 15:48:13これは開いたままにできないんでしょうか。
0169デフォルトの名無しさん
2008/07/11(金) 15:54:190170デフォルトの名無しさん
2008/07/11(金) 16:11:15こんな関数を作りました。
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をつかまれるのか見当がつきません。
調べ方が甘いのかもしれませんが、お分かりの方いらっしゃいますか?
0171デフォルトの名無しさん
2008/07/11(金) 16:11:44コンソールはでてるんですが、Argumentsが渡らないんですが、これはどうしたらいいんでしょう。
0172デフォルトの名無しさん
2008/07/11(金) 16:16:03何で必ずDoubleに変換を・・・・・
0173デフォルトの名無しさん
2008/07/11(金) 16:17:05関数を使う側でそういう要求があるということで…。
0174デフォルトの名無しさん
2008/07/11(金) 16:18:40ごめんね、よくわからんアマチュアでごめんね
1.ボタン押す
2.任意で終了させるまで同期通信でデータを受け取る
3.最初のボタンで通信完了の処理をして、新しい同期通信を始める
同期通信がいつ終わるかわからんので、
RunWorkerCompleted()を開始できないのです。
0175デフォルトの名無しさん
2008/07/11(金) 16:20:27別のスレッドでフォームを書き換えるの?それは無理
[STAThread] <-
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
0176デフォルトの名無しさん
2008/07/11(金) 16:21:05LOHに何があるか、専用のデバッガやプロファイラで調べられなかったっけ?
CLRProfilerやsos.dllを使えばできそうな気がするよ。
0177143
2008/07/11(金) 16:24:22できたっ
ありがとうありがとう
0178デフォルトの名無しさん
2008/07/11(金) 16:27:06ちょっとそのあたりのツールを調べてみます。ありがとうございました。
0179デフォルトの名無しさん
2008/07/11(金) 16:28:15それって最初のボタンのクリックイベントの最初に
非同期通信中だったら非同期通信キャンセルなり終了させるような処理書けばいいのでは?
その完了を待って再度非同期通信を開始すればよいのでは
0180デフォルトの名無しさん
2008/07/11(金) 16:30:31>別のスレッドでフォームを書き換える
スレッドからフォームのプロパティを書き換えるのではなく、
同期通信のメソッドが通信を受けた時のイベントがあるんです。
そのイベントの中でフォームを弄るので、簡単に言えば、
ButtonClickイベントが起きたら通信メソッドをDispose()出来れば良いんです。
ですが、DoWork()内にButtonClickをどう通知したら良いのかわかりません。
0181デフォルトの名無しさん
2008/07/11(金) 16:33:08IsBusy
CancelAsync
こんな感じのメソッドとプロパティなかったか?wwww
0182168
2008/07/11(金) 16:34:110183デフォルトの名無しさん
2008/07/11(金) 16:40:19ButtonClickイベントの中で
BackgroundWorker.IsBusyでスレッドの使用を確認して、
動いていたらCancelAsyncを呼び出せばRunWorkerCompletedイベントが発生する訳ですね。
よくわかりました、ありがとうございます
0184デフォルトの名無しさん
2008/07/11(金) 16:51:07CancelAsyncの解説読めば分かることだけど
0185デフォルトの名無しさん
2008/07/11(金) 17:12:52ってDLLを動的に呼び出して MyClass1 ってのを返すんだけど
object型のresultをMyClass1にキャストする方法がわからないのだが誰かヒントでも良いから助けて
0186デフォルトの名無しさん
2008/07/11(金) 17:17:16動的にDLL呼び出しができてキャストできないとか・・・・・
(T)
0187デフォルトの名無しさん
2008/07/11(金) 17:23:160188デフォルトの名無しさん
2008/07/11(金) 18:00:26まあこれはMyClass1が対象のアセンブリに含まれてると仮定した場合だが
MyClass1を静的に参照してるんじゃなきゃキャストなんてできるわけがないぞ
0189デフォルトの名無しさん
2008/07/11(金) 18:03:13第三のDLLかましてあげればよかったんですね
0190デフォルトの名無しさん
2008/07/11(金) 18:07:32>任意の型(ただしdoubleに変換可能、実際の想定はfloatとdouble)
ならdouble決め打ちでいいんじゃね?
って思うんだが駄目ですか
0191デフォルトの名無しさん
2008/07/11(金) 18:15:150192デフォルトの名無しさん
2008/07/11(金) 18:25:51何万も回せばコストはでかいと思うんだが
外からは意識しないように内部で分岐させて処理してみればよくねぇか?
この分だとキャストは一回だけで終わりそうな感じがするんだが・・・
0193デフォルトの名無しさん
2008/07/11(金) 18:34:48第3のDLLのはインターフェイスにしておくと融通が利く。
0194デフォルトの名無しさん
2008/07/11(金) 18:44:04<T>[]で受けると型が特定されなくてそのままSystem.Convert.ToDoubleが呼ばれる
結果的にもう1つ<T>[]を作っている感じな予感。
float[],double[]で受けると最適化されてSystem.Convert.ToDoubleは呼ばれない。
0195デフォルトの名無しさん
2008/07/11(金) 18:48:260196デフォルトの名無しさん
2008/07/11(金) 18:55:15return直前にdoubleにすればいいだろ。
0197デフォルトの名無しさん
2008/07/11(金) 18:57:260198デフォルトの名無しさん
2008/07/11(金) 19:00:520199デフォルトの名無しさん
2008/07/11(金) 19:18:12普通初期値は配列の最初の要素だろ。
T ret = src[offset];
0200デフォルトの名無しさん
2008/07/11(金) 19:36:11大量発生してヒープを使いすぎるのはわかるがLOHが使われるのは解せんね。
0201デフォルトの名無しさん
2008/07/11(金) 19:55:28じつはToArrayでラージオブジェクトヒープを使っているとか言うオチだったり
List<int> arr = ..
double ans = Max(arr.ToArray(), 0, ar.Count);
0202デフォルトの名無しさん
2008/07/11(金) 19:58:18そうなんだけどT.MinValueが使えるのかが気になった。
Length==0なら例外投げるのが妥当だよね。
0203デフォルトの名無しさん
2008/07/11(金) 21:42:05C#3.0(2.0でも可)にて
PDFからオブジェクトの取得をしたいと思っています。
PDFはベクトルデータであることが前提で、ラスタデータは考慮しません。
●抽出
テキストデータは テキスト、フォント、サイズ、座標を取得
画像データは 画像、座標を取得
各データにジャンルを割り当てDBに保存
●復元
テキスト、フォント、サイズ、座標からPDFに復元する。
その座標に画像も存在していれば画像も復元する。
何か良い方法はご存知でしょうか?
0204デフォルトの名無しさん
2008/07/11(金) 21:45:08本屋でPDFの仕様書を見たことがあるから、amazonで探せばあるんじゃね?
英語なら買うまでもなく、ネットでもありそうだけど。
0205203
2008/07/11(金) 23:43:25PDF仕様書の英語版はWebで公開されてます。
日本語版の仕様書は本で出てます。
PDFの使用がわかってもC#でPDFを扱う術(COMやSDKなど)がわからないのです。
iText,PDF4NET, PDFLib など様々なものを試していますが、これというものがありません。
画像抽出に関しても、抽出するだけならできるが、座標の取得などは不明だったりします。
0206デフォルトの名無しさん
2008/07/12(土) 00:15:580207デフォルトの名無しさん
2008/07/13(日) 03:14:35そこに挙げてる既存のライブラリで満足できないなら、新しいのを書くしかないだろ。
0208170
2008/07/13(日) 08:05:41なお、最初に書いた文章が改行大杉と言われたので改行減らしています。読みにくいかもしれません。すみません。
とりあえず
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を食うのは相変わらず解せないので…。
また何かわかったら報告します。ありがとうございました。
0209170
2008/07/13(日) 08:07:17・キャストは最後に1回やればいい(float、doubleに決め打ちできれば可能)
・Tで受けずに最初からfloat[]、double[]で受けるほうがいい
というのも納得しています。追って対応しようと思います。
ありがとうございました。
0210デフォルトの名無しさん
2008/07/13(日) 08:29:380212170
2008/07/13(日) 09:31:16>>170のコードだとなぜLOHを侵食する?
という大本の疑問はまだ謎のままなので、
追い追いプロファイラとかで調べてみようと思っています。
0213デフォルトの名無しさん
2008/07/13(日) 13:11:43やねう企画代表者やねうらお(本名・磯崎元洋)が
・ソフトウェアの不正コピーを行っていた
・労働契約上の違反をしていた
・他は不正コピーしていないことを証明しようとしてエロゲーのパッケージを発見し、
写真に撮ってアップロードしようとした。
http://d.hatena.ne.jp/pmoky/19000106
やねう企画の裏側(競馬の詐欺ソフトの製作現場)
http://d.hatena.ne.jp/pmoky/20060510
http://d.hatena.ne.jp/pmoky/20060511
http://d.hatena.ne.jp/pmoky/20060512
有限会社やねう企画(所在地・大阪府八尾市末広町2−1−2)が計画倒産
http://www.sia.go.jp/~osaka/zenso/19.09.pdf
やねうらおプロフィール
性格:友達から「チンピラ」「ヤクザ」と呼ばれている。前世で殺人鬼だった宿業を背負っているという妄想(自覚)あり。
最終学歴:専門学校卒
主な職歴:有限会社センキ(凌辱系アダルトゲームの製作会社)を経て独立、有限会社やねう企画を設立、2006年に計画倒産
代表作:『夜這いマニア』『盗撮マニア』『お楽しみCDシリーズ』『競馬詐欺ソフト』『BM98』
やねうらお語録
>「ワシのほうが潔癖やと思うんやけどな。
>絶対に違法コピーのソフトしか使わんし。
>たとえば強盗に入ったときに、ちょっとかわいそうになって
>十万円だけ残してったら、おかしいやろ?
>自分の『強盗する』という意思に対して矛盾やろ?
>だからワシは、一個も買ったソフトを使ったことがない!!」
0214デフォルトの名無しさん
2008/07/13(日) 13:15:090215デフォルトの名無しさん
2008/07/13(日) 13:21:57【自作自演】弓月城太郎氏に関するまとめ【神秘体験】
http://d.hatena.ne.jp/yaneurao/20080619
0216デフォルトの名無しさん
2008/07/13(日) 13:57:020217デフォルトの名無しさん
2008/07/13(日) 14:00:450218デフォルトの名無しさん
2008/07/13(日) 21:54:070219デフォルトの名無しさん
2008/07/14(月) 11:21:45書き込みボタン押す直前に閃いて解決してしまう。
0220デフォルトの名無しさん
2008/07/14(月) 16:34:410221デフォルトの名無しさん
2008/07/14(月) 16:44:410222デフォルトの名無しさん
2008/07/14(月) 17:44:050223デフォルトの名無しさん
2008/07/14(月) 17:45:260224デフォルトの名無しさん
2008/07/14(月) 18:46:51こんなに長いコード書くの初めて・・・
フォームアプリケーションってめんどいね
0225デフォルトの名無しさん
2008/07/14(月) 18:57:13と思ったら500行か、、、、そりゃテストコード書くんでもなけりゃ
あっというまだべ。
0226デフォルトの名無しさん
2008/07/15(火) 12:24:44それでも500ぐらいあっと言う間だろうけど
0227デフォルトの名無しさん
2008/07/15(火) 22:48:060228デフォルトの名無しさん
2008/07/16(水) 17:14:27そういえば昔は片面印刷だったっけ。
0229デフォルトの名無しさん
2008/07/16(水) 17:15:270230デフォルトの名無しさん
2008/07/16(水) 22:07:19C#から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);
0231デフォルトの名無しさん
2008/07/16(水) 22:16:410232デフォルトの名無しさん
2008/07/16(水) 22:28:420233デフォルトの名無しさん
2008/07/17(木) 08:51:39推奨できないけどどうしてもというならunsafeつけてbyte*とか
0234デフォルトの名無しさん
2008/07/17(木) 11:07:030235デフォルトの名無しさん
2008/07/18(金) 09:35:500236230
2008/07/18(金) 11:15:25【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);
}
0237デフォルトの名無しさん
2008/07/18(金) 22:27:570238デフォルトの名無しさん
2008/07/18(金) 22:30:370239デフォルトの名無しさん
2008/07/19(土) 01:03:130240デフォルトの名無しさん
2008/07/19(土) 14:35:26例えば、WinnyなどのP2Pソフトによくある横棒グラフに % 表示があるような
ものを表示したいんですが、どのように実装したらいいでしょうか?
とりあえずオーナードローでサブ項目にRectangleで描画したりしてみましたが
あまりにも遅くて実用的ではありません。
もっと効率的な方法があるのでしょうか?
0241デフォルトの名無しさん
2008/07/19(土) 14:36:40そんなに遅くなるはずがない。
0242デフォルトの名無しさん
2008/07/19(土) 14:46:42いや、それが試しにRectangleの描画処理だけを入れただけのものなんで
ほとんどこれが最少の処理なんですよ
確か、Winnyを作っていた47氏も描画の遅さに悩んでいた記憶があるので
もともとどうやってもある程度の遅さはしょうがないのかもしれませんが
オーナードロー以外にもっと上手い方法があれば教えて頂きたいのですが
0243デフォルトの名無しさん
2008/07/19(土) 14:57:24晒せないならしょうがないけど
0244デフォルトの名無しさん
2008/07/19(土) 15:13:270245デフォルトの名無しさん
2008/07/19(土) 15:21:43上記した通り、四角の描画しかしていないんですが
具体的に書きますと
if (e.ColumnIndex == 3) {
e.Graphics.FillRectangle(Brushes.Red, e.Bounds.Left, e.Bounds.Top, percent, e.Bounds.Height);
}
の処理を入れてあるだけの、最小限の物です。
他の余計な処理は一切していません。
0246デフォルトの名無しさん
2008/07/19(土) 15:23:380247デフォルトの名無しさん
2008/07/19(土) 16:37:44そんなんじゃわからん
普通に軽いのができてしまったぞ
0248デフォルトの名無しさん
2008/07/19(土) 17:34:04追加部分をコメントアウトして確認
0249デフォルトの名無しさん
2008/07/19(土) 18:43:160250デフォルトの名無しさん
2008/07/19(土) 19:06:500251デフォルトの名無しさん
2008/07/19(土) 19:09:280u2007 FIGURE SPACE
0u2588 FULL BLOCK
0u258C LEFT HALF BLOCK
0u2590 RIGHT HALF BLOCK
の手抜きでいいじゃんとか思ってしまう
虫食いなしなら、1/8のまで使えるし
一応こんな感じに
ttp://www.imgup.org/iup649405.png
0252デフォルトの名無しさん
2008/07/19(土) 19:09:340253デフォルトの名無しさん
2008/07/19(土) 19:31:09ListViewといえばDetailなのにバグ多いよね。
そして改善されない。
0254デフォルトの名無しさん
2008/07/19(土) 19:40:35>>247
でも、これしか書いてないから他の部分無いんですよ、全く。
>>248
上にも散々書きましたが、他の処理は無いのです。
ListView検証の為にTestListViewというプロジェクトを作って
フォームにListViewを貼り付けただけのプロジェクトなので
描画処理部分以外も、余計な処理が全く無いんですよ。
>>249
やっぱり軽いですか。何で重くなってしまうのか・・・
>>250
動的にデータを追加することは無いです。
>>251
うわ、昔を思い出す処理ですね(w
MSX の SCREEN 1/2 でやっていた時に
そんな感じでゲームのパラメータそんな感じでやってたなぁ
>>252
Pentium-M 1.6GHz なので、それほどプアでも無いと思うのですが。
0255デフォルトの名無しさん
2008/07/19(土) 20:46:380256デフォルトの名無しさん
2008/07/19(土) 22:32:150257デフォルトの名無しさん
2008/07/19(土) 22:38:16数によってはかなり重くなってメモリを消費すると思うが
それとは違う?
0258デフォルトの名無しさん
2008/07/19(土) 23:06:06マウスホイールでのスクトールは軽いままだけど
0259デフォルトの名無しさん
2008/07/19(土) 23:22:240260デフォルトの名無しさん
2008/07/19(土) 23:22:530261デフォルトの名無しさん
2008/07/19(土) 23:24:170262デフォルトの名無しさん
2008/07/19(土) 23:28:010263デフォルトの名無しさん
2008/07/19(土) 23:36:490264デフォルトの名無しさん
2008/07/19(土) 23:41:58プロジェクド丸ごとうpしろよ
原因見つけてやるから
0265デフォルトの名無しさん
2008/07/19(土) 23:52:000266デフォルトの名無しさん
2008/07/20(日) 00:02:490267デフォルトの名無しさん
2008/07/20(日) 00:07:230268デフォルトの名無しさん
2008/07/20(日) 00:10:48言いたかっただけだろw
0269デフォルトの名無しさん
2008/07/20(日) 00:20:08どんな糞コード書けば重くなるんだ?
0270デフォルトの名無しさん
2008/07/20(日) 01:09:2610万個の項目でもスムーズに動く。スクロールも無問題
因みに、環境はPemM 1.7GHz/mem 1GB
0271デフォルトの名無しさん
2008/07/20(日) 01:16:30異様に遅くなったことがあったな。
コンボボックスを開くのに数秒かかったり。
VSを信頼するアプリに設定してプロセス動作の監視対象から外したら
普通に動くようになった。
0272デフォルトの名無しさん
2008/07/20(日) 12:40:040273デフォルトの名無しさん
2008/07/20(日) 13:12:32まさか名取裕子とか出てくるドラマ枠のことじゃないだろうし
0274デフォルトの名無しさん
2008/07/20(日) 13:28:30しかも、一番上に
0275デフォルトの名無しさん
2008/07/20(日) 13:33:21諦めたんかね
0276デフォルトの名無しさん
2008/07/20(日) 15:41:54これくらいは許されてもいいような省略系じゃないのか?
0277デフォルトの名無しさん
2008/07/20(日) 15:45:090278デフォルトの名無しさん
2008/07/20(日) 15:45:43俺は気付いたけど
0279デフォルトの名無しさん
2008/07/20(日) 16:19:190280デフォルトの名無しさん
2008/07/21(月) 23:35:580281デフォルトの名無しさん
2008/07/21(月) 23:46:18patterns & practices とか EntLib とか、MS が提供してる標準外コードも多いし。
0282デフォルトの名無しさん
2008/07/22(火) 14:23:540283デフォルトの名無しさん
2008/07/22(火) 18:08:55初心者はSDKから入ったほうがいいよな?
0284デフォルトの名無しさん
2008/07/22(火) 18:15:470285デフォルトの名無しさん
2008/07/22(火) 19:24:45初心者はIDEから入るべき
自分でことを難しくすることはない
0286デフォルトの名無しさん
2008/07/22(火) 21:43:080287デフォルトの名無しさん
2008/07/22(火) 22:14:16ありだと思うが C# の言語的な思想ってのは IDE が存在する世界だ
から IDE で触れないとなんつーか色々わかりゃしない。結果遠回り
0288デフォルトの名無しさん
2008/07/22(火) 22:17:110289デフォルトの名無しさん
2008/07/22(火) 22:38:55インテリセンスとGUI作成以外は、
SDKから構築した自作コンパイル環境の方が早かったりする
でも初心者はVC#EE使うべきだよ
楽だもん
0290デフォルトの名無しさん
2008/07/22(火) 22:39:490291デフォルトの名無しさん
2008/07/22(火) 23:22:09コーディングの速さなんか問題にしていないしそれぐらい慣れたら
できる人間(他から移行中とか)で C# 初心者の場合に言ってる
IDE からみないと C#(.NET) 的なコンポーネントとかメタデータやらで
宣言的にとかそういう発想が分かりにくいよという話
0292デフォルトの名無しさん
2008/07/22(火) 23:32:43> 宣言的にとかそういう発想が分かりにくいよという話
もっと具体的に言ってくれないとわかんない
0293デフォルトの名無しさん
2008/07/22(火) 23:40:15初心者にとっては学習ツールでもあると思う。
0294デフォルトの名無しさん
2008/07/23(水) 00:41:02そういう背伸びは中学生までにしとけって言いたくなるよな。
傍から見てても恥ずかしくなるよ。
0295デフォルトの名無しさん
2008/07/23(水) 00:45:170296デフォルトの名無しさん
2008/07/23(水) 00:45:550297デフォルトの名無しさん
2008/07/23(水) 01:06:372003→2008にしたら比重が1:9→8:2くらいになったな
LINQ、ラムダ式、拡張メソッドを使うときとか、
コンパイラ並みの構文解析してくれないエディタだと面倒くさい
0298デフォルトの名無しさん
2008/07/23(水) 01:18:22ム板だし、人に強要しなきゃいいんじゃね?
マなら仕事できない奴確定だがな
0299デフォルトの名無しさん
2008/07/23(水) 01:25:47基本的なところの勉強で小さいコード動かすために
わざわざVBみたいにボタン一つだけ載せたフォーム作るのは格好悪すぎ
0300デフォルトの名無しさん
2008/07/23(水) 01:31:420301デフォルトの名無しさん
2008/07/23(水) 01:33:550302デフォルトの名無しさん
2008/07/23(水) 01:43:380303デフォルトの名無しさん
2008/07/23(水) 02:38:560304デフォルトの名無しさん
2008/07/23(水) 02:47:40たいていのコンパイルはできる。
0305デフォルトの名無しさん
2008/07/23(水) 04:22:22protected で A から始まるメソッドをクラス 'Tool' から全部表示する みたいな
0306デフォルトの名無しさん
2008/07/23(水) 04:59:020307デフォルトの名無しさん
2008/07/23(水) 05:26:40.Where(m => (!m.IsPublic && !m.IsPrivate && m.Name[0] == 'A'))
.ToList().ForEach(Console.WriteLine);
とか
0308デフォルトの名無しさん
2008/07/23(水) 06:23:03やっぱり顔文字に見えるな
0309デフォルトの名無しさん
2008/07/23(水) 06:24:08Reflectorは修飾子まで考慮してくれないんだよなぁ
自作してみるわ
>>307
3.5ってそんなキモイことできるんかwwすげーなwSTLみたいだw
0310デフォルトの名無しさん
2008/07/23(水) 06:57:53ワロスw
0311デフォルトの名無しさん
2008/07/23(水) 10:56:440312デフォルトの名無しさん
2008/07/23(水) 13:33:570313デフォルトの名無しさん
2008/07/23(水) 18:36:29IEnumerableに対するForEach拡張メソッドを自分で書くか素直にforeach使うべき
0314デフォルトの名無しさん
2008/07/23(水) 18:58:33開始すると発表した。その他の地域については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ツクールが次期バージョンでの対応を表明しており、日本での
普及にも期待がかかる。また、教育機関による学習教材としての採用も増加しており、
月刊ベーシックマガジンの休刊以降問題視されていた日本人ゲーム開発者の急激な
減少に歯止めをかける期待も持たれている。
http://news4xbox.blogspot.com/2008/07/xbox360.html
0315デフォルトの名無しさん
2008/07/23(水) 19:00:000316デフォルトの名無しさん
2008/07/23(水) 19:01:420317デフォルトの名無しさん
2008/07/23(水) 19:41:15ってことはさ、そのコピペの中に「コピペ君て馬鹿だな」って文言が含まれているって事だよね?
だとしたらそこそこまともな事言ってるって事になっちゃうよ。
0318デフォルトの名無しさん
2008/07/23(水) 20:02:51巡回してるとこ見てきたら、6箇所で貼ってあった・・
コピペ君て馬鹿だな
0319デフォルトの名無しさん
2008/07/23(水) 21:38:55おわるんじゃねーの
0320デフォルトの名無しさん
2008/07/23(水) 22:58:030321デフォルトの名無しさん
2008/07/23(水) 23:09:13http://www.nicovideo.jp/watch/sm3657573 を見る限り期待できるかも
X 期待できるかも
O 期待したい
0322デフォルトの名無しさん
2008/07/24(木) 01:05:08「コピペ君て馬鹿だな、まで読んだ」ってレスされても
即座に「最後まで読んだんかい!!」ってレスできる。
これ豆知識な。
コピペ君て馬鹿だな
0323デフォルトの名無しさん
2008/07/24(木) 01:16:400324デフォルトの名無しさん
2008/07/24(木) 01:20:46なんということでしょう・・・orz
0325デフォルトの名無しさん
2008/07/24(木) 15:35:070326デフォルトの名無しさん
2008/07/24(木) 15:36:560327デフォルトの名無しさん
2008/07/24(木) 15:54:200328デフォルトの名無しさん
2008/07/24(木) 16:06:37label[i]みたいにインデクサを使いたいんですが、
コンパイラにlabelなんてねーよバーヤヽ(`Д´)ノ
って言われてしまいます。
やっぱり一行づつ書いていくしかないのですか?
0329デフォルトの名無しさん
2008/07/24(木) 16:08:150330デフォルトの名無しさん
2008/07/24(木) 16:10:37自分でコレクションに入れろよ。
0331デフォルトの名無しさん
2008/07/24(木) 16:31:29しょうがないからLabel配列型の変数にいれてやりました。
コンパイラが面倒みてくれたらいいのに・・・
0332デフォルトの名無しさん
2008/07/24(木) 16:40:280333デフォルトの名無しさん
2008/07/24(木) 16:56:370334デフォルトの名無しさん
2008/07/24(木) 17:27:25項目の数だけメソッドを用意するのが個人的に好きじゃありません。
各項目に共通のイベントハンドラを指定し、
その中でどの項目が選択されたのかを確認したいのですが、
このようなことは可能でしょうか。
0335デフォルトの名無しさん
2008/07/24(木) 17:28:100336デフォルトの名無しさん
2008/07/24(木) 17:33:09{
if (object.ReferenceEquals(sender, menuItem1))
{ ... }
else if (object.ReferenceEquals(sender, menuItem2))
{ ... }
}
0338デフォルトの名無しさん
2008/07/24(木) 18:04:230339デフォルトの名無しさん
2008/07/24(木) 18:10:250340デフォルトの名無しさん
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);
}
こちらはうまく動いています。
0341デフォルトの名無しさん
2008/07/25(金) 01:39:03VSを使って、イベントを自動作成し、
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()メソッドが呼ばれていないようです。
原因がわかる人がいましたら教えてもらえるとありがたいです。
0342デフォルトの名無しさん
2008/07/25(金) 01:51:20↓
this.OseroPanel.Paint += new System.Windows.Forms.PaintEventHandler(this.OseroPanel_Paint);
0343デフォルトの名無しさん
2008/07/25(金) 09:40:22OseroPanelクラスのなかでやっているので
thisはOseroPanelを指しています。
0344デフォルトの名無しさん
2008/07/25(金) 11:09:12○Othello
0345デフォルトの名無しさん
2008/07/25(金) 11:18:37まずデバッガでInitializeComponent通ってるかどうかから確認
0346デフォルトの名無しさん
2008/07/25(金) 14:13:040347デフォルトの名無しさん
2008/07/25(金) 14:16:220348デフォルトの名無しさん
2008/07/25(金) 14:43:35(R) だよ
0349デフォルトの名無しさん
2008/07/25(金) 15:43:20orz
まさにそれでした。
InitializeComponent()の呼び出しは自分で書かないといけないんですね。
Oseroクラスのコンストラクタに書いてみたところ、
すべてうまくいきました。
どうもありでしたm(_ _)m
0350デフォルトの名無しさん
2008/07/25(金) 16:30:44継承クラスではイベントハンドラではなくOn〜メソッドのオーバーライドが推奨のはず
探したけどソースが見つからんorz
>>346-348
オセロ(玩具)とソフトウェアじゃあ区分が違うんじゃないか?
0351デフォルトの名無しさん
2008/07/25(金) 17:48:32たしかにOnPaintをオーバーライドした方が、
コードがすっきりしますね。
0352デフォルトの名無しさん
2008/07/25(金) 17:57:31ふらっと行け
0353デフォルトの名無しさん
2008/07/25(金) 18:42:36In 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;
}
0354デフォルトの名無しさん
2008/07/25(金) 18:44:02スレタイをよめ
0355デフォルトの名無しさん
2008/07/25(金) 18:57:48>In function `GaussRandom':: undefined reference to 'sqrt’と In function `GaussRandom':
>: undefined reference to `exp'
翻訳するとだな
「型または名前空間名 'sqrt' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
型または名前空間名 'exp' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」
だな。何に翻訳したかは秘密だ。
さらに言うとusing System.Math;が足りないなw
0356デフォルトの名無しさん
2008/07/25(金) 18:59:270357デフォルトの名無しさん
2008/07/25(金) 19:09:17マルチすんなゴミ
0358デフォルトの名無しさん
2008/07/25(金) 19:12:000359デフォルトの名無しさん
2008/07/25(金) 19:23:59>>357 期限が迫ってたので色んな場所で聞こうと思っただけです。気を悪くしてすいません。
0360デフォルトの名無しさん
2008/07/25(金) 19:32:50死んでください
0361デフォルトの名無しさん
2008/07/25(金) 19:35:51気を悪くしたのはこっちだ!クソが!
0362デフォルトの名無しさん
2008/07/25(金) 20:43:390363デフォルトの名無しさん
2008/07/25(金) 20:47:260364デフォルトの名無しさん
2008/07/25(金) 21:43:470365デフォルトの名無しさん
2008/07/25(金) 22:26:130366デフォルトの名無しさん
2008/07/25(金) 22:36:26>>365 課題落とされるかもしれないので書けません 教えてくれた人ありがとうございました^^
0367デフォルトの名無しさん
2008/07/25(金) 22:36:570368デフォルトの名無しさん
2008/07/25(金) 22:45:14なに言ってんだお前
0369デフォルトの名無しさん
2008/07/25(金) 22:46:180370デフォルトの名無しさん
2008/07/25(金) 23:00:15斬新な板違いだなおい
しかもよりによってスレタイに[プログラム板]って付いてるこのスレで
0371デフォルトの名無しさん
2008/07/26(土) 01:30:270372デフォルトの名無しさん
2008/07/26(土) 01:35:000373デフォルトの名無しさん
2008/07/26(土) 12:06:15C/C++のように構造体配列の定数データを持ちたいんですが、
C#ではどうすればよいのでしょう?
0374デフォルトの名無しさん
2008/07/26(土) 12:21:190375デフォルトの名無しさん
2008/07/26(土) 12:23:060376デフォルトの名無しさん
2008/07/26(土) 12:30:220377デフォルトの名無しさん
2008/07/26(土) 17:04:310378デフォルトの名無しさん
2008/07/26(土) 17:27:39可能
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()
0379デフォルトの名無しさん
2008/07/26(土) 17:40:090380デフォルトの名無しさん
2008/07/26(土) 18:15:040381デフォルトの名無しさん
2008/07/26(土) 19:11:37意味不明な質問には「日本語で書け」と叱責してやるのが本人のためだと思うけど。
ああちゃんと嫌味の意味でVBで答えてるわけかw
0382デフォルトの名無しさん
2008/07/26(土) 19:33:38そういうことwww
お前は、エスパーかw
0383デフォルトの名無しさん
2008/07/26(土) 22:03:260384デフォルトの名無しさん
2008/07/26(土) 22:04:520385デフォルトの名無しさん
2008/07/26(土) 22:12:36意味不明な質問には「日本語でおk」だろ?
0386デフォルトの名無しさん
2008/07/26(土) 22:15:29いじめられっこ?
0387デフォルトの名無しさん
2008/07/26(土) 22:19:19自作自演乙
0388デフォルトの名無しさん
2008/07/27(日) 04:59:50二行目で気づいたならその時点で書き直せよ気持ち悪い
0389デフォルトの名無しさん
2008/07/27(日) 15:52:58画像の表示位置や高さ幅は通常intで指定すると思います。
ところが、実はfloatで指定する方法も用意されています。
public void DrawImage(
Image image,
float x,
float y,
float width,
float height
)
floatで指定すると何かよいことがあるのでしょうか?
基本的には四捨五入でintに繰り上げていると思うのですが、
そのような理解で正しいでしょうか?
0390デフォルトの名無しさん
2008/07/27(日) 16:07:44WMFとかベクター画用じゃね?
0391デフォルトの名無しさん
2008/07/27(日) 16:10:090392デフォルトの名無しさん
2008/07/27(日) 16:14:240393デフォルトの名無しさん
2008/07/27(日) 16:15:14縮小拡大の原点が0,0で固定されないで
指定点から始まると困ることが多数あるのです。
0394デフォルトの名無しさん
2008/07/27(日) 16:47:49>>391が言ってることが全てだよ。
よく言われることだが、そもそもピクセルなんていうのは
デバイス側の勝手な都合に過ぎん。
0395デフォルトの名無しさん
2008/07/27(日) 17:48:10GraphicsUnit列挙体がGDI+で扱える単位すべてじゃね?
0396デフォルトの名無しさん
2008/07/27(日) 18:50:20スクロールの更新部分だけ描画させるたら非更新部分と結果がずれて困ったことあったな。
無効領域だけしか処理しないから全体を更新すればいいんだけど
大きい比率で拡大したときに表示してくれないから結局自前で処理するしかなかった。
GDI+が出たときに少数単位で渡したらずれなかった。
0397デフォルトの名無しさん
2008/07/27(日) 19:01:47RotateFlip(RotateFlipType.Rotate180FlipXY);
というメソッドを使えばいいことがわかりました。
画像Aと反転後の画像Bを作りたいのですが、
Cloneメソッドを使うと両方反転してしまいます。
Imageオブジェクトをコピーする良い方法はありますか?
0398デフォルトの名無しさん
2008/07/27(日) 19:09:500399デフォルトの名無しさん
2008/07/27(日) 22:51:02計算途中でスリープやサスペンドに入られるとちょっと困るので、計算中は一時防止したいのですが
何か良い方法はないでしょうか?
0400デフォルトの名無しさん
2008/07/27(日) 22:56:560401デフォルトの名無しさん
2008/07/27(日) 23:01:320402デフォルトの名無しさん
2008/07/27(日) 23:18:35処理と重力定数は関係ない・・・
0403デフォルトの名無しさん
2008/07/27(日) 23:21:210404デフォルトの名無しさん
2008/07/27(日) 23:44:05WM_POWERBROADCASTのPBT_APMQUERYSUSPENDの応答でサスペンド入りを拒否できるらしい。
0405397
2008/07/28(月) 02:27:50違うようです。
シャローコピーのようで、
Imageクラスの中ではイメージ実態への参照(ポインタ)
を持っているようです。
一方、回転するのはイメージ自体です。
0406397
2008/07/28(月) 02:48:15RotateFlip(RotateFlipType.Rotate180FlipXY);
だと画像が回転せず
正しくは
RotateFlip(RotateFlipType.Rotate180FlipNone);
でした。
頭悪すぎてすみません。
暑さでやられましたorz
0407デフォルトの名無しさん
2008/07/28(月) 11:10:240408デフォルトの名無しさん
2008/07/28(月) 11:40:560409デフォルトの名無しさん
2008/07/28(月) 12:05:250410デフォルトの名無しさん
2008/07/28(月) 12:15:430411デフォルトの名無しさん
2008/07/28(月) 12:31:340412デフォルトの名無しさん
2008/07/28(月) 19:17:380413デフォルトの名無しさん
2008/07/28(月) 19:41:02浮動小数点形式なら float に変換する方法教えてください。
0414デフォルトの名無しさん
2008/07/28(月) 19:44:330415デフォルトの名無しさん
2008/07/28(月) 19:44:490416デフォルトの名無しさん
2008/07/28(月) 20:24:51必要ならば何らかのラップ処理を行うためのものだと、今まで思っていました。
つまり、プロパティは必ずpublicなものしか存在しないのかと。
ところが、最近、外人さんのソースを読んでいると、すべてのフィールドに対してプロパティを用意して、
クラス内部のアクセスに対しても、privateのプロパティを経由して行っているプロジェクトが多いです。
個人的には、フィールドは小文字で、publicなプロパティは大文字の命名規則(Pascal)だったのですが、
外人さんの流れでは、privateなプロパティもPascal記法になっていて、
クラス内部のすべての操作が大文字から始まるメンバを操作しています。
皆さんはどうされてます?もしかして、外人さん流儀の方が主流なんでしょうか?
C#以外の言語も含めて、そっちの方が主流になるんでしょうかねぇ。
個人的には、ローカルなnullチェックなどはプロパティの中ではなく、メソッドの中で操作する前に
行うほうが行儀が良いんじゃないかと思ったりもするのですが‥‥。
0417デフォルトの名無しさん
2008/07/28(月) 20:42:03質問の意図がクリアーじゃない気がするよ。
も一度他人の目線で自分の文章読みなおしてみ?
0418デフォルトの名無しさん
2008/07/28(月) 20:53:45単に話題提起してるだけなので、こんなもんじゃないでしょうか。解析的に解ける問題でも無いし。
興味を持たない人には、一生縁のない内容でもあると言えるし。
おそらく、LL言語的にはプロパティはあって当然の記述なので、おそらく外人さんが正しいのでしょうが。
0419デフォルトの名無しさん
2008/07/28(月) 21:36:43クラス内部であっても、プロパティの実装変えたときのこと想定しとけよってことだと思う。
0420デフォルトの名無しさん
2008/07/28(月) 21:41:28だから何を問題提起してるのか読み取れない、と言ってるんだよ。
質問内容にケチをつけているのではない。
ナニが言いたいのか分からないといってるの。
0421デフォルトの名無しさん
2008/07/28(月) 21:44:35Delphi(Win32,.netじゃないやつ)のVCLをみると
private/protectedのレベルではpropertyは使われてない。
(protectedまで使ってるものもあるがTCustom〜と直接使わないクラス。ここから継承してほかのコンポネを作る)
でも内部ではプロパティを使ってアクセスしてる。(Get/SetとCreateをのぞく)
0422デフォルトの名無しさん
2008/07/28(月) 21:47:380423デフォルトの名無しさん
2008/07/28(月) 21:52:49話からずれるが
C#じゃ配列のプロパティはインデクサとして1つしか使えないと思ってたけど
配列型をプロパティの型にしてしまえば一応いくらでも使えるのだな。今初めて気がついた
public Boolean[] Hoge { get;set;}
でも、配列としてデータを持ってるんでなくてその場で計算して値を出したり入れたりしてたり、
内部では別の型のデータとして扱ってて、便利のためにほかの型でのアクセスさせるためにほかの配列使ったりってことはどうやったらいいの?
int[,] でかると = int[100,100];
public int 極座標[int R,double Rad] { (ry とか
しかもこういうのがほかの変数にも必要だったりする場合にはどうやって対処すればいいの?
0424デフォルトの名無しさん
2008/07/28(月) 21:57:520425デフォルトの名無しさん
2008/07/28(月) 22:00:32妄想力と読解力は違うよ。
ま、区別がつかない人間に縷々説明して分かることとは思わないけど。
0426デフォルトの名無しさん
2008/07/28(月) 22:06:20VBからだと引数付きのプロパティは作れるのだけどこれを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);
変なのが沸いてるけど無視していこう。
0427デフォルトの名無しさん
2008/07/28(月) 22:20:480428デフォルトの名無しさん
2008/07/28(月) 22:21:12説明能力がない奴がろくに推敲もせずに書いた文章を
エスパーしてやることが親切だと勘違いしている馬鹿が多くて困るが、
意味不明な文章(例えば>>423)にははっきり「意味不明だ」と言ってやるのが
結局は一番親切な事だとなぜ分からないのだろう。
0429デフォルトの名無しさん
2008/07/28(月) 22:35:170430デフォルトの名無しさん
2008/07/28(月) 22:54:540431デフォルトの名無しさん
2008/07/28(月) 22:56:45配列を返すプロパティは実装変えられなくなるからダメ
0432デフォルトの名無しさん
2008/07/28(月) 22:59:120433デフォルトの名無しさん
2008/07/28(月) 23:00:510434デフォルトの名無しさん
2008/07/28(月) 23:04:130435423==421 (IDが出ない板は面倒くさい)
2008/07/28(月) 23:16:40確かにそうだけど
ListBoxはObjectCollection返してるけど、こうするとどう変わってくるの?
暇なときに調べるか…
0436デフォルトの名無しさん
2008/07/28(月) 23:18:190437デフォルトの名無しさん
2008/07/28(月) 23:23:410438デフォルトの名無しさん
2008/07/28(月) 23:30:24挙動変えたいときに、ObjectCollection継承したクラス作って
インデクサとかGetEnumeratorをoverrideしてしまえば
利用側に迷惑かけずに挙動変えれるでしょ。
0439デフォルトの名無しさん
2008/07/28(月) 23:32:480440デフォルトの名無しさん
2008/07/28(月) 23:43:330441デフォルトの名無しさん
2008/07/29(火) 00:02:38多分、今作るならそういう実装になってると思う。
0442デフォルトの名無しさん
2008/07/29(火) 00:29:07ちゃんと理解できてない&元使用言語によっては配列使いまくりになるよ。
VB厨が使うVB.netなんていい例
0443デフォルトの名無しさん
2008/07/29(火) 00:43:42それはたぶんお前さんのことでもあるんじゃないの?
別に配列を返すプロパティやメソッドが一義的に悪いとも思えないけどね。
もちろん配列を返した場合の弊害を知らないのは愚かだと思うが、
村の掟でもあるまいし、無条件に否定するのも同様に愚かだろう。
0444デフォルトの名無しさん
2008/07/29(火) 00:53:050445デフォルトの名無しさん
2008/07/29(火) 02:42:46まぁ、探してみてみろよ、わかるから。
お前の想定レベルみたいな生半可なもんじゃねーぞ、VB厨は・・・
そのうち.netの仕事が増えれば嫌でも見る事になると思うよ。
0446デフォルトの名無しさん
2008/07/29(火) 07:06:09逆にindexer代わりに配列を使うのも変だな。
配列だけでなく変更可能なクラスをプロパティにするならある種の副作用は覚悟しなければならない。
getで予防的コピー、setで妥当性の検査や値のコピーといった措置は必要になるだろう。
0447デフォルトの名無しさん
2008/07/29(火) 07:42:27実測してないが早いと聞いたので。
0448デフォルトの名無しさん
2008/07/29(火) 08:29:40int [] _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);
}
}
0449デフォルトの名無しさん
2008/07/29(火) 09:01:18君のプロパティに関する意見はどうなの?
他の人がここまで書いているんだから、何か無いの?
無いのなら、無い奴に限って枝葉末節にこだわる黄金則が‥‥。
0450デフォルトの名無しさん
2008/07/29(火) 09:45:33getで返す配列への変更が元のインスタンスに反映されないので、
プロパティじゃなくてメソッドにすべき
0451デフォルトの名無しさん
2008/07/29(火) 11:05:59配列の参照自身が書き換わってよい場合。また内容も外部から任意に書き換えることが出来る。
フィールドをpublicにする。
単純に配列の参照そのもをプロパティにする。
配列内容が任意のタイミングで書き換わってよい場合。ただし配列の参照自体やサイズが変わることは禁止。
配列の参照をgetだけするプロパティまたは取得だけの関数を使用する。 >>449はこれ
配列の内容が書き換わるタイミングを管理したい場合。配列の参照やサイズが変わることは禁止。
インデックサかそれに準じる添え字を引数にした読み書き用の関数を使用する。
get setのプロパティで予防的コピーを行う。 >>448はこれ
0452デフォルトの名無しさん
2008/07/29(火) 11:06:58>>>449はこれ
は
>>450の間違い、訂正します。
0453デフォルトの名無しさん
2008/07/29(火) 12:27:220454デフォルトの名無しさん
2008/07/29(火) 12:28:20vs
ハァ?メソッドでいいだろ
0455デフォルトの名無しさん
2008/07/29(火) 12:39:08int [] f = x.Foo; f[3] = 123; // こんなことや
x.Foo = null; // あんなことされて平気? ・・・産業
0456デフォルトの名無しさん
2008/07/29(火) 12:47:21や、それが平気じゃないならgetのみにするんではないか?
0457デフォルトの名無しさん
2008/07/29(火) 12:58:00hoge.Point.X = 100;
正解はこちら、めんどくせ〜
hoge.Point = new Point(100, hoge.Point.Y);
>>456
3番目のケースはそれでカバーできるが、2番目のは割り切りが必要かな。
0458450
2008/07/29(火) 13:04:39まず、誤解の無いように言っておくと、
>>451の各ケースの意義は理解してるし、それについてどうこう言うつもりはない
で、>>450で言いたかったのは、例えば
obj.Hoge[2] = 10;
と書けるにもかかわらず、この操作が(直感に反して)意味を成さないのが問題だということ
プロパティの型が値型でなければ、そのプロパティで取得したインスタンスへの変更は
元のオブジェクトに何らかのフィードバックがあることが期待され、それを裏切る実装は避けるべき
ついでに、コピーを返すプロパティと配列を返すプロパティがガイドラインで禁止されているのも
それなりの理由があるからなので、それに違反する必然性がないのであれば従っておくべき
0459デフォルトの名無しさん
2008/07/29(火) 13:09:070460デフォルトの名無しさん
2008/07/29(火) 14:43:390461デフォルトの名無しさん
2008/07/29(火) 16:19:22しようとしてるんだけど、浮動小数点数の比較が上手くいかない
誰かスマートな実装方法教えてください
0462デフォルトの名無しさん
2008/07/29(火) 16:20:510463デフォルトの名無しさん
2008/07/29(火) 16:37:10あとIComparer<T>使わんの?
0464デフォルトの名無しさん
2008/07/29(火) 16:44:560465デフォルトの名無しさん
2008/07/29(火) 17:04:44int ret;
float x;
float y;
ret = (int)(x-y)
みたいにやってるけど、差が0.・・・だと、丸まってしまって
0になってしまうから、駄目だと思うんだが、どうやったら
上手く比較できるのかさっぱりわからない
整数ならこれで上手くいくんだが
>>463
IComparer<T>は知らなかったので、今から調べてみます
それくらいって程簡単なの?
とりあえず簡単なら教えて欲しい、これでずっと悩んでる
ウェブでいくら探しても、整数と文字列の比較のサンプルしか無いんだ
0466デフォルトの名無しさん
2008/07/29(火) 17:07:15x==y/x<y/otherwise
でいいだろ。
0467デフォルトの名無しさん
2008/07/29(火) 17:07:53if (x > y) return 1; とか思いつかない?
0468oth
2008/07/29(火) 17:27:220469デフォルトの名無しさん
2008/07/29(火) 17:31:43すいませんが、まるでその式の意味が理解できないんですが
どのように理解したら良いんですか?
>>467
int にキャストしないで
if (ret >0)
return 1;
のようなものは考えていたけれど、もっとスマートな処理が
あるんじゃないかと思って聞いてみたのです
Comparerの戻り値の正数ってのは、0か負の数じゃなきゃ
なんでもいいんですかね?差の値を入れなくても
0470デフォルトの名無しさん
2008/07/29(火) 17:36:390471デフォルトの名無しさん
2008/07/29(火) 17:38:010472デフォルトの名無しさん
2008/07/29(火) 17:39:50スマートと行数が少ないは違うだろ。
比較関数で差を返すのは大昔からよく見るコードだが、
通常、整数型は正負で扱える数の範囲が違うから、何も考えずに符号を反転させるとオーバーフローする。
ちょっと考えればわかることで、まともなプログラマはそんなコードを書かない。
0473デフォルトの名無しさん
2008/07/29(火) 17:42:13IComparer.Compare(double x, double y)
{
return x - y;
}
0474デフォルトの名無しさん
2008/07/29(火) 17:44:57馬鹿はすっこんでろ。
0475デフォルトの名無しさん
2008/07/29(火) 17:46:080476デフォルトの名無しさん
2008/07/29(火) 17:47:20MSDN読んでこいよ
バカ丸出し
0477デフォルトの名無しさん
2008/07/29(火) 17:52:120478デフォルトの名無しさん
2008/07/29(火) 17:53:28そういえば、そうですね。
単純に降順の場合、ret = -ret で返してました。
っていうか、ウェブにあるサンプルってどれも
この返し方してたんで、疑問にも思いませんでした
定数を返した方が安全なんですね
>>473
え、いやそこの所を実装したいのですが
後々も拡張したいので
0479デフォルトの名無しさん
2008/07/29(火) 17:53:58バカ丸出しだなww
そのCompareTo()の中身が欲しいんだろwww
0480デフォルトの名無しさん
2008/07/29(火) 17:55:320481デフォルトの名無しさん
2008/07/29(火) 17:56:07文句だけは言う馬鹿ばかりだなw
0482デフォルトの名無しさん
2008/07/29(火) 17:56:21{
if (a - b < 0d) return -1;
else if (a - b > 0d) return 1;
else return 0;
}
0483デフォルトの名無しさん
2008/07/29(火) 17:56:56お前もそうだろww
0484デフォルトの名無しさん
2008/07/29(火) 17:59:00お前もそうだろwww
0485デフォルトの名無しさん
2008/07/29(火) 17:59:32お前もそうだろwwww
0486デフォルトの名無しさん
2008/07/29(火) 17:59:53お前もそうだろwwwww
0487デフォルトの名無しさん
2008/07/29(火) 17:59:570488デフォルトの名無しさん
2008/07/29(火) 18:00:06くだらない奴しかいなくなってしまったな…
0489デフォルトの名無しさん
2008/07/29(火) 18:00:40お前もそうだろwwwww
0490デフォルトの名無しさん
2008/07/29(火) 18:01:10{
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;
}
0491デフォルトの名無しさん
2008/07/29(火) 18:02:10前からずっとこうだろw
少し上のレスもそうじゃねえか
馬鹿のくせにプライドだけは高いから
すぐに荒れるw
0492デフォルトの名無しさん
2008/07/29(火) 18:02:53int 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;
}
ってことじゃないの?
0493デフォルトの名無しさん
2008/07/29(火) 18:04:50>>482
のようなシンプルな実装で行こうとも思います
もっと式一つで済むようなかっこ良い実装があると思ったんです
すいませんでした
ありがとうございました
0494デフォルトの名無しさん
2008/07/29(火) 18:07:370495デフォルトの名無しさん
2008/07/29(火) 18:08:030496デフォルトの名無しさん
2008/07/29(火) 18:12:07君は悪くない
実力の伴わない自尊心の持ち主が多いスレなんだ
NaNの処理が必要だから>>490の実装が正解に近いよ
Reflectorを使って、System.Double.CompareTo(object value)の中身を見てみることをお薦めする
0497デフォルトの名無しさん
2008/07/29(火) 18:15:26正解に近いんじゃなくて正解だよ
0498デフォルトの名無しさん
2008/07/29(火) 18:16:22だからさ、それをそのまま使わないか不思議なんだけど
0499デフォルトの名無しさん
2008/07/29(火) 18:18:02拡張したいんだろ
初心者は変なことやりたがるんだからほっとけ
0500デフォルトの名無しさん
2008/07/29(火) 18:18:160501デフォルトの名無しさん
2008/07/29(火) 18:21:27一悶着あるのがこのスレの掟w
0502デフォルトの名無しさん
2008/07/29(火) 18:23:52特別なソートしたい場合なんていくらでもあるだろ
色々やってりゃ既製の比較関数じゃ追いつかない
場面は多々出てくる
0503デフォルトの名無しさん
2008/07/29(火) 18:35:21自己紹介乙
0504デフォルトの名無しさん
2008/07/29(火) 18:40:46ソースコードを直接見ろでいいじゃない。
質問者がExpress使いという可能性はあるけどさ。
0505デフォルトの名無しさん
2008/07/29(火) 18:58:58遅レスだが、IsNaNの処理おかしくね?
非数じゃなかった場合、何でreturn 1に決め打ちしてんの?
0506デフォルトの名無しさん
2008/07/29(火) 19:06:06ソースコード見てこいよ
0507デフォルトの名無しさん
2008/07/29(火) 19:25:39何を決めうち?
// ここに到達したら少なくともどちらかは非数なので
m_valueが非数でvalueも非数ならば0
m_valueだけが非数ならば-1
m_valueが非数でないならvalueが非数なので1
0508デフォルトの名無しさん
2008/07/29(火) 22:05:31if (!IsNaN(m_value)) return 1;
if (!IsNaN(value)) return -1;
return 0;
の方が、分岐が浅くなって好み
0509デフォルトの名無しさん
2008/07/29(火) 22:42:53自分はDictionaryを見つけて使ってますが、みなさんはもしかしてインデクサをMapのように実装して使ってるんでしょうか?
まさかとは思うんですが、独学の人間にアドバイスをよろしくお願いします。
0510デフォルトの名無しさん
2008/07/29(火) 22:46:510511デフォルトの名無しさん
2008/07/29(火) 23:12:45場合によってはHashtable使うこともあるが。
0512デフォルトの名無しさん
2008/07/29(火) 23:26:30Dictionary はまさに連想配列よ。
赤黒木で実装されてる。
STL の map と一緒。
0513デフォルトの名無しさん
2008/07/29(火) 23:30:36MSのサイトにはハッシュテーブルで実装されてるって書いてあるよ。
0514デフォルトの名無しさん
2008/07/29(火) 23:39:50SortedDictionary - 赤黒木
ListとDictionaryぐらいは大抵の入門書で解説してあると思ってたわ。
0515デフォルトの名無しさん
2008/07/29(火) 23:39:500516デフォルトの名無しさん
2008/07/29(火) 23:41:21SortedDictionary 赤黒木
SortedList 索引をもつリスト
Hashtable Dictionaryの非ジェネリック版
0517デフォルトの名無しさん
2008/07/29(火) 23:42:570518デフォルトの名無しさん
2008/07/29(火) 23:45:56わからなければSortedDictionaryを使うのが無難。
0519デフォルトの名無しさん
2008/07/30(水) 00:48:170520デフォルトの名無しさん
2008/07/30(水) 00:50:37インデクサが定義可能と知り、まさかなと思いまして。でもやっぱりそうでしょうね。
>>514 ListとDictionaryぐらいは大抵の入門書で解説してあると思ってたわ。
まあ、いっぺん見てやってください。Listの解説があるならずいぶん良心的なほうです。。。
>>518 SortedDictionaryは推測するにJavaのTreeMapですね。新知識でした、ありがとうございます。
0521デフォルトの名無しさん
2008/07/30(水) 03:07:070522デフォルトの名無しさん
2008/07/30(水) 18:46:12ソース読めよ馬鹿
0523デフォルトの名無しさん
2008/07/30(水) 19:00:13reflectorで確認した限りでは使ってないな。どのあたりで使ってるの?
0524デフォルトの名無しさん
2008/07/30(水) 19:18:38せっかくジェネリックになったのにHashTableなんか使ってたら値型のときに速くならないじゃん
0525デフォルトの名無しさん
2008/07/30(水) 20:05:13.NET大勝利ですか?
0526デフォルトの名無しさん
2008/07/30(水) 20:09:49Vistaは見送ったけどこれは買おうかな
0527デフォルトの名無しさん
2008/07/30(水) 20:12:120528デフォルトの名無しさん
2008/07/30(水) 20:18:43めっちゃ近所なんだが
0529デフォルトの名無しさん
2008/07/30(水) 20:23:060530デフォルトの名無しさん
2008/07/30(水) 20:35:07大勝利って言われてもな。とりあえずWPFの普及率もっとあげてくれ。
0531デフォルトの名無しさん
2008/07/30(水) 20:59:470532デフォルトの名無しさん
2008/07/30(水) 21:54:51ソース読めよゴミ
0533デフォルトの名無しさん
2008/07/30(水) 22:01:12はC#2.0でもかなり役に立つ?
C#2.0版まだ、でなさそうだし・・・・
#オライリーのC#本、手打ちしてる位のレベルなんだけど
0534デフォルトの名無しさん
2008/07/30(水) 22:18:291.0の頃からあまり変化がない部分が中心の本だから「時代遅れ」の
心配はあまりいらないかもしれない。
ただ俺はあの人の本って一般に評価されてるほど評価する気になれんな。
網羅的なのはいいけどコード変だし。
0535533
2008/07/30(水) 22:28:27なるほど。ありがとう
明日、本屋によって現物確認してから考えるよ(確かあったはず)
とりあえず行数打って慣れるってレベルだから、いいかなと
#オライリーのも うーん と思わなくもない
#javaからshiftしきれてないからかな
0536デフォルトの名無しさん
2008/07/30(水) 23:57:26C -> C# -> C++ という順番がいいような気がする今日この頃。
0537デフォルトの名無しさん
2008/07/31(木) 00:04:01消えろ
0538デフォルトの名無しさん
2008/07/31(木) 01:43:13C++は危ないコード書き放題の怖い何かって認識しかない
0539デフォルトの名無しさん
2008/07/31(木) 02:39:47定番な書き方、インクルードファイルのインクルード順序とか、
まともに使えるようになるまでのインフラ整備にものすごく時間がかかるよ
C++の複雑さと心中する覚悟のある人しか使えないんじゃないかなぁ
0540デフォルトの名無しさん
2008/07/31(木) 11:25:26無いでしょうか?
\\HKEY_LOCAL_MACHINE\Software\hoge というキーを取得するには
Registry.LocalMachine.OpenSubKey("Software\\hoge")
で取ることは可能ですが、 OpenSubKeyメソッドがRegistryKeyのインスタンス
のサブノードしか取得できないため、まずルートキーを最低指定する必要があり
非常に面倒に感じます。
フルパスの文字列を解析して それがHKLMなのかHKCUなのか等をいちいち
判定して場合分けして、ルートキーを取得し、さらにそのサブキーを取得というのは
結構あほらしい気がするんですが…。
RegistryKey regKey = Registry.GetKeyFromPath("\\HK_LOCAL_MACHINE\\Software\\Hoge");
のように一気に取りに行く方法はFWに用意されていないんでしょうか?
0541ノムヒョン
2008/07/31(木) 11:26:38using 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);
}
}
0542ノムヒョン
2008/07/31(木) 11:27:50{
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に注意)
0543ノムヒョン
2008/07/31(木) 11:28:46{
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();
0544ノムヒョン
2008/07/31(木) 11:30:09Control[] 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' よりも低く設定されています。
とでて解決ができません。いろいろ調べてみたのですがもうどうすればいいのかと^^;
0545デフォルトの名無しさん
2008/07/31(木) 11:33:20そういうメソッド一つ作っとけばあとは使いまわすだけじゃん
0546デフォルトの名無しさん
2008/07/31(木) 11:39:05エラーメッセージのまんまだよ。
Controlクラスのアクセスレベルがpublicになってない。
0547ノムヒョン
2008/07/31(木) 11:40:38ありがとうございます
0548デフォルトの名無しさん
2008/07/31(木) 12:03:000549デフォルトの名無しさん
2008/07/31(木) 13:44:27元のWin32 APIからそういう風になっているから仕方ないな。
そこもなんとかしろよ.NETとは思うけど。
単発での読み書きなら、Registory.GetValue/SetValueが使えるんだけどね。
0550デフォルトの名無しさん
2008/07/31(木) 13:44:34まあ、そうなんですが。
ただあんまりあほらしいんで、車輪の再発明のような気がして
なんかライブラリに用意されているのを見落としているのかなと
思ったんですが。
0551デフォルトの名無しさん
2008/07/31(木) 13:46:32WIN32からしてそうなんですか。
それじゃ無理そうですね…。
0552デフォルトの名無しさん
2008/07/31(木) 14:13:07Registory.CurrentUserなんかに相当するWin32の定数だった。
0553デフォルトの名無しさん
2008/07/31(木) 18:26:49デフォルトメーラーの新規メール画面を添付ファイル付きで起動させたく、
現在MAPISendDocumentsで実装しています。
しかし、Outlook、Thunderbird、Eudra、Beckyなどは問題無いのですが
LotusNotesだとNOT_SUPPORTED=26が返されます。
エクスプローラから「送る」→「メール受信者」や、
Excelの「ファイル」→「送信」→「メールの宛先(添付ファイル)」
などはちゃんと動いており、この機能はMAPIを使っているものだと思っていますが、
(これ自体間違っているかもしれませんが・・・)
MAPIを使って他に添付ファイル付きで起動させる方法をご存じの方おりませんでしょうか?
MAPIを使わなくても別の方法でも問題有りません。
いろいろウェブで探してみましたが結論には至りませんでした・・・
0554デフォルトの名無しさん
2008/07/31(木) 22:53:14のと同じ描画を行いたいのですが、別のダミーのフォームを
Style.Noneで実現しているのでしょうか。その場合はWinProcなどを
用いてWindowMessageを処理して実現可能でしょうか?
その場合はMouseをCursorオブジェクトなどを使って操作して、
OnResizeメソッドなどをプログラム側から発生させてダミーのForm側
にMouseを乗り移らせるようなことが可能なのでしょうか・・・
この辺ご存知の方、できましたらアドバイス等頂きたく(それとも、
あれはデスクトップに直接描画とかしているのでしょうか?)
0555デフォルトの名無しさん
2008/07/31(木) 23:15:37お気に召さないの?
0556デフォルトの名無しさん
2008/08/01(金) 00:59:41おお、そのような便利なモノがあったのですか!!
調べてみます!ありがとうございました!
0557デフォルトの名無しさん
2008/08/01(金) 11:46:10C#をベースにしたらしい言語を使ってます。
#includeを使いたいですが、これ自体はないようなので、
どういった手法をとればよいのでしょうか?
importだかusingだかで、他から引っ張って来るような記述はあったんですが、
目的の機能ではないみたいで…。
目的としては、mainを含む上位部分を使いまわししたいんです。
で、下位部分を手動で大量に作って、共通部分の上位部と組み合わせてそれぞれコンパイルするような。
何かありますでしょうか?(´・ω・`)
0558デフォルトの名無しさん
2008/08/01(金) 11:47:180559デフォルトの名無しさん
2008/08/01(金) 11:53:290560デフォルトの名無しさん
2008/08/01(金) 11:53:570561デフォルトの名無しさん
2008/08/01(金) 12:01:40ツール内のみのスクリプト扱いなので。
0562デフォルトの名無しさん
2008/08/01(金) 12:02:550563デフォルトの名無しさん
2008/08/01(金) 12:07:01どんなツールだか知らんけど、そのツールのベンダーフォーラムなり
ユーザーフォーラムなりそういうものはないのか?
構文だけC#に似せているのか、実際に.NET Frameworkを利用している
のかもわからんし、アドバイスのしようがない。
0564デフォルトの名無しさん
2008/08/01(金) 12:30:11確かにそうっすね。(´Д`;
フォーラム系はないっす。マニュアルもろくに整備されてなくて。
サポセンもアウアウです、はい。orz
ただ、基本的にはC#を汲んでるらしいので、
ひょっとしたらC#の手法が通るのでは?
と思って質問しました。
0565デフォルトの名無しさん
2008/08/01(金) 12:44:120566デフォルトの名無しさん
2008/08/01(金) 13:00:15しかもあれはフォームデザイナーのための苦し紛れの構文だし。
むしろC#ライクな言語ってすごく不思議だな。C#をスクリプトとして使いたいならCodeDOMでコンパイルすればいいし
http://blogs.sqlpassj.org/yoneda/archive/2004/10/07/4724.aspx みたいなやつか?使い方は知らないがw
0567デフォルトの名無しさん
2008/08/01(金) 13:34:35そのツールって何?
0568デフォルトの名無しさん
2008/08/01(金) 13:39:18言語の出所をはっきりさせない
理由も言わない
サンプルコードも示さない
お前何しに来たの?
0569デフォルトの名無しさん
2008/08/01(金) 13:50:08ツール・・・ここらへんっすね。
ttp://www.accuratetechnologies.com/jp/products/canlab-software-179-175.html
ttp://www.necel.com/micro/ja/partner/vendor/ATI/CANLab.html
>お前何しに来たの?
C#で#includeをする方法を聞きにきました。
0570デフォルトの名無しさん
2008/08/01(金) 13:59:42設計するときに無いほうがいいだろうと判断されたから無い
0571デフォルトの名無しさん
2008/08/01(金) 14:08:010572デフォルトの名無しさん
2008/08/01(金) 14:19:08#define program int main() {
#define begin {
#define end return 0; }
0573デフォルトの名無しさん
2008/08/01(金) 14:30:19金払って買ったもののサポセンがないってどういうことよ
1ライセンス100万とかそういうソフトだろ
とりあえず#includeに相当するC#のキーワードは#usingだが
使い方はC++でいうところの
namespace std;
だからまるで別物
とりあえずサンプルコードでもなけりゃ助言しようもないし
上司に相談したほうがはやいと思うぞ
0574デフォルトの名無しさん
2008/08/01(金) 14:31:49○using namespace std;
0575554
2008/08/01(金) 15:06:49オプション設定で決めることができますが、
ドラッグ中にウインドウの内容を - Google 検索
http://www.google.co.jp/search?hl=ja&lr=&q=ドラッグ中にウインドウの内容を&start=10&sa=N
この設定がされているか、されていないかを、プログラム側から
知る方法を知りたいのですが、参考になる情報をご存知でしたら
アドバイスをお願いします!
0576デフォルトの名無しさん
2008/08/01(金) 15:09:31ワロタwでも一部分だけpascalでも意味内から無駄だな。
0577デフォルトの名無しさん
2008/08/01(金) 15:10:13http://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
0578デフォルトの名無しさん
2008/08/01(金) 17:21:50DLLっすか。それで引っ張ってこれるなら・・・。
中々情報がないですが、漁って見ます。
>>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行位で、それを百前後作るんで、
できれば引っ張ってきたいんですよね。
0579デフォルトの名無しさん
2008/08/01(金) 17:22:32情報、どうもありがとうございました。
助かりました、すぐ調べてみます!
0580デフォルトの名無しさん
2008/08/01(金) 19:55:51C#つかOO言語触ったことなくね?
0581デフォルトの名無しさん
2008/08/01(金) 21:24:42気の毒すぎるw
C#とWindowsAPIが混ざってるよね…
Timerを属性指定にして
メソッドに依存させてしまっているあたりセンスのなさが感じられるww
とりあえず>>578が何をやりたいかということと
サンプルソース全部と
あともう微妙にスレ違いなんで、
どっかの放棄されたスレに移るかして、
腰を据えて分析するよりないんじゃないかなw
パズル感覚で協力してくれる人いると思うよww
0582デフォルトの名無しさん
2008/08/01(金) 22:08:48つか常識的に考えて#includeで展開とか不要でそ…
どんな状況なら必要なんだよ…
0583デフォルトの名無しさん
2008/08/01(金) 22:45:150584デフォルトの名無しさん
2008/08/01(金) 23:01:120585デフォルトの名無しさん
2008/08/01(金) 23:27:49そうかもしれんが、かといってグローバルな(つまりファイルスコープじゃない)
コンパイル定数を定義しようと思ったらプロジェクトのプロパティに
ちまちま書かなければならん不便さを進歩と言ってよいのか疑問でもある。
0586デフォルトの名無しさん
2008/08/01(金) 23:32:02定数も、const じゃなくて、static readonly なプロパティ使うことが推奨されてるしなぁ。
private/internal な場合か、円周率みたいに絶対変わらない値だけ const。
0587デフォルトの名無しさん
2008/08/01(金) 23:33:43そういうことじゃなくて?
0588デフォルトの名無しさん
2008/08/02(土) 00:03:340589デフォルトの名無しさん
2008/08/02(土) 00:05:260590デフォルトの名無しさん
2008/08/02(土) 02:37:56プリプロセッサシンボルを使いたいんだろうね
>>585はプロジェクトのプロパティでしか設定できないと思い込んでいるらしいが
0591デフォルトの名無しさん
2008/08/02(土) 05:28:26クラス定義とか、テキストエディタさえあればヘッダ除けばすぐに判る点とか、
C/C++やってきた自分としては好きですけどね
0592デフォルトの名無しさん
2008/08/02(土) 08:38:540593デフォルトの名無しさん
2008/08/02(土) 08:56:42俺は C++ やってるからこそ、
あのヘッダシステムのせいで
クラスの依存性切るのに pimpl みたいなおまじないが必要だし、
コンパイル速度が低下するし、
インテリセンスの効きが時々おかしくなるし、
include が大嫌いなんだが。
0594デフォルトの名無しさん
2008/08/02(土) 09:58:150595デフォルトの名無しさん
2008/08/02(土) 10:01:48の間違いじゃない?
Cはよほど下手な組み方でもしなければそうそう遅くならないでしょ
0596デフォルトの名無しさん
2008/08/02(土) 10:01:520597デフォルトの名無しさん
2008/08/02(土) 10:22:18でもCも速度としては遅いし、ヘッダーを1バイトでも書き換えたら
includeしてる全てのソースファイルを再コンパイルになるのはかわらない。
そういう意味でも遅いよ。
もしマクロがなくて、クラスや関数の定義のみであるなら
リアルタイムコンパイルも可能だよ。
0598デフォルトの名無しさん
2008/08/02(土) 10:22:40C++ でクラス定義でも使いまわしたのがそもそもの失敗じゃないか。
private な変数1個追加しただけで、#include してるファイル全部再コンパイルとか
狂ってるとしか言いようがない。
0599デフォルトの名無しさん
2008/08/02(土) 10:26:470600デフォルトの名無しさん
2008/08/02(土) 10:41:17すまんその「思い込んでる」のは俺だけど、
俺の「思い込み」だというならもったいぶらずに君のいう別の方法を教えてくれよ。
分かってると思うけど議論の流れからいってIDEでプロジェクトの設定いじるより
不便な方法だったなんの意味もないわけだが、そこは踏まえて頼むよ本当。
0601デフォルトの名無しさん
2008/08/02(土) 11:11:56普通に教えてくれでいいんじゃね?
頼みかた感じ悪いと思う
いつもそうなん?
0602デフォルトの名無しさん
2008/08/02(土) 11:35:100603デフォルトの名無しさん
2008/08/02(土) 11:39:48既出 >>593
>>600
定数定義用の static なクラス作って、
絶対に変わらないと言い切れる定数は public const フィールド、
そうでなければ public static readonly なプロパティ。
0604デフォルトの名無しさん
2008/08/02(土) 11:41:14むしろヘッダファイルでできるべきではなく、プロジェクトのプロパティですべき
というのが MS の判断。
0605デフォルトの名無しさん
2008/08/02(土) 11:54:44なんだよやっぱりプロジェクトのプロパティでしか出来ないんじゃないかw
だから「べき」って、確かにそうかもしれんがその不便さを進歩って言えるんかい、
つってんだよ。
0606デフォルトの名無しさん
2008/08/02(土) 11:55:400607デフォルトの名無しさん
2008/08/02(土) 12:06:030608デフォルトの名無しさん
2008/08/02(土) 12:10:29逆にいえばそれで足りる用途にしか使ってほしくないんだろう
0609デフォルトの名無しさん
2008/08/02(土) 12:12:34技術的には可能でもC++のtemplateを模倣する言語は現れないだろう。
0610デフォルトの名無しさん
2008/08/02(土) 12:14:170611デフォルトの名無しさん
2008/08/02(土) 12:17:23これのことでしょ
ttp://msdn.microsoft.com/ja-jp/library/yt3yck0x.aspx
暑いんだからあんまりぎゃーぎゃー喚くなよ
0612デフォルトの名無しさん
2008/08/02(土) 12:25:45Dとかどうよ
0613デフォルトの名無しさん
2008/08/02(土) 12:30:47それが正攻法だというのは否定してないよ。
構成の切替方法はあれで便利だし。
ただIDEのあのたった一行の入力欄に「全部の定数を定義する必要がある」のは
不便で使いにくいって言ってるだけ。
しかも(当たり前だが)作った構成の数だけ同じことをする必要がある。
そこにミスが入った場合、非常に発見しにくいとも思うんだが。。
0614デフォルトの名無しさん
2008/08/02(土) 12:38:020615デフォルトの名無しさん
2008/08/02(土) 14:36:11「できる」みたいに言ってるやつと >>604 は別人だろ。
できる風に書いてるやつは多分よく読んでないだけ。
要するに、お前の書き込みによく読む価値はないと判断されてる。
0616デフォルトの名無しさん
2008/08/02(土) 14:50:34俺やアイツの誤読はお前の文章に読む価値がないからだ、ってかw
まあ、自分を世界の中心に「俺様中華思想」もいいかもしれんが、
だったら自分の言葉を自分に適用したらどうだろう。
つまりもう少し他人にとって有益な情報を書けよって意味だが。
0617デフォルトの名無しさん
2008/08/02(土) 14:51:540618デフォルトの名無しさん
2008/08/02(土) 14:54:44では「スルーする能力」という時の「スルーする」ことの目的ってなんだ?
少なくとも俺にとってはそんなものはない。
むしろ馬鹿は叩いておいた方が場のため本人のため、そして自分自身の精神衛生のため、
と思っての行動なんだけどね。
0619デフォルトの名無しさん
2008/08/02(土) 14:59:03テキストエディタで開いてゴリゴリ編集できるんだがそういう
基本的な話は知らんのか?
VS からならプロジェクトのアンロード → **.csproj の編集。
…ついでに言うと、VS 側の CSharpPackage が変な proj ファ
イルでも普通に動くので VsPackage めんどいとき(ビルドとIDE
から適当にファイルが見えて編集できればいい)は .csproj 流用
するといいみたいな。
0620デフォルトの名無しさん
2008/08/02(土) 15:27:10どっかに何入れればいいか公開されてるのかな?
0621デフォルトの名無しさん
2008/08/02(土) 15:36:530622デフォルトの名無しさん
2008/08/02(土) 15:58:49http://msdn.microsoft.com/it-it/library/bb165922.aspx
この辺しか知らん。
・・・が、俺は基本的にいじるのは IDE 上からだなぁ。依存関係とか。
0623デフォルトの名無しさん
2008/08/03(日) 10:39:27アプリ設定情報をstaticにしてどのクラスからもすぐに楽に参照したいんですけど、
staticクラスにするとXmlSerializerは使えないですよね?
0624デフォルトの名無しさん
2008/08/03(日) 10:41:210625デフォルトの名無しさん
2008/08/03(日) 10:49:08・MySettingクラス(仮称)をstaticクラスじゃなくてsingletonにする。
または
・MySettingクラスはstaticのまま、内部の実装としては別のHogeSettingクラスの
インスタンスをもちこいつをXMLシルアル化するようにして、外部にはSaveSetting/LoadSetting
メソッドを公開する。
0626デフォルトの名無しさん
2008/08/03(日) 11:20:33ありがとうございました!
0627デフォルトの名無しさん
2008/08/04(月) 11:32:44�@のところでコンパイルエラーになってしまいます。
どのように実装したらいいんでしょうか・・・
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
0628デフォルトの名無しさん
2008/08/04(月) 11:45:19enumとかdelegateとかで制約は無理
0629デフォルトの名無しさん
2008/08/04(月) 15:00:54でおk
でもその例でクラスにする意味がわからない
ConvertToEnum<T>(string[] text)でいいよね
0630デフォルトの名無しさん
2008/08/04(月) 17:51:29クラスにしたのは元のソースがクラスだからです
必要な部分だけ残したら上の形になりました
えーと、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
}
上手な実装の仕方はないでしょうか…
0631デフォルトの名無しさん
2008/08/04(月) 18:02:540632デフォルトの名無しさん
2008/08/04(月) 18:24:52value = 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));
}
0633デフォルトの名無しさん
2008/08/04(月) 18:45:43Linqとか使うと1行で可能?
0634デフォルトの名無しさん
2008/08/04(月) 18:59:330635デフォルトの名無しさん
2008/08/04(月) 19:08:50ありが�d。
0636デフォルトの名無しさん
2008/08/04(月) 19:30:09Keys k = (Keys)Enum.Parse(typeof(Keys), "Control, Alt, T", true);
みたいにすればいい。
0637デフォルトの名無しさん
2008/08/04(月) 20:49:00おおそんなのが・・・
0638デフォルトの名無しさん
2008/08/04(月) 21:19:43こういうのが頭の中にすんなり入ってこないorz
0639デフォルトの名無しさん
2008/08/04(月) 21:32:35var flat = array.SelectMany(x => new[] { x.A, x.B });
Console.WriteLine(string.Concat(flat.ToArray()));
こういう例のほうがわかりやすいかな
0640デフォルトの名無しさん
2008/08/04(月) 21:35:330641デフォルトの名無しさん
2008/08/04(月) 21:40:180642デフォルトの名無しさん
2008/08/04(月) 21:46:35バイナリファイルよりReadAllBytesでデータをバイト配列に格納後、指定の
バイト数分のデータを2進数の文字列に変換するメソッドを作成しています。
8バイトまではBitConverterメソッドで数値変換し、Convert.ToStringで
2進数の文字列に変換できるのですが、9バイト以上はBitConverterメソッドが
対応していません。この場合、何か良い方法があるのでしょうか?
よろしくお願いします。
0643デフォルトの名無しさん
2008/08/04(月) 21:48:220644デフォルトの名無しさん
2008/08/04(月) 21:49:070645デフォルトの名無しさん
2008/08/04(月) 22:09:26普通なら昔からあるものは情報も豊富でバグも枯れてて使いやすい
はずだが、クリレポは悪評ばかり・・・
0646デフォルトの名無しさん
2008/08/04(月) 23:09:18このケースではクエリ式の方がとっつきやすいかな。
from list in listlist
from x in list
select x;
慣れてくればSelectManyを思い出せるようになる。かも。
ILではどっちでも同じことなんだけど。
0647デフォルトの名無しさん
2008/08/04(月) 23:24:50SelectMany は正直無理だと思う。
そのために、
from listist in listlist
from x in list
select x
みたいな記法がある。
これで listlist.SelectMany(list => list) と同義のはず。
0648デフォルトの名無しさん
2008/08/04(月) 23:26:01あれは結構邪道だけどな。
クエリ式が関数型言語っぽい記述できるのをいいことに、
C# 内で関数型言語プログラミングしてるっていう。
クエリ式の目指すところではなくて、副産物的なものだと思う。
0649デフォルトの名無しさん
2008/08/04(月) 23:56:31クラサバでもwebでも使えますか?
0650デフォルトの名無しさん
2008/08/05(火) 02:19:49List<List<List<int>>> listlistlist; から IEnumerable<int> を得るには、
listlistlist.SelectMany(listlist => listlist).SelectMany(list => list);
か、
listlistlist.SelectMany(listlist => listlist.SelectMany(list => list));
みたいな感じでOK?
もっと良い書き方があったりするのかな?
0651デフォルトの名無しさん
2008/08/05(火) 05:45:41それでOK。
0652デフォルトの名無しさん
2008/08/05(火) 08:49:25それでもいいけど、それは関数化すべき気がする。
static IEnumerable<T> Concat<T>(IEnumerable<IEnumerable<T>> listlist)
{
return listlist.SelectMany(list => list);
}
を作って、Concat(Concat(listlistlist));
0653デフォルトの名無しさん
2008/08/05(火) 08:55:210654デフォルトの名無しさん
2008/08/05(火) 08:56:39というか関数はそもそもC時代の名残だし
0655デフォルトの名無しさん
2008/08/05(火) 09:03:34昔の名残。
OOP 用語的にはメソッド、昔の名残的にはメンバ関数。
単に関数っていうと、グローバル関数(C# では定義できない)のことだけど、
非 OOP 言語ではグローバル関数として定義するような static メソッドのことを関数って呼んだりする。
関数化ってのも、メソッドとして独立させろって意味。
サブルーチン化って言った方がいいかも。
0656デフォルトの名無しさん
2008/08/05(火) 09:08:550657デフォルトの名無しさん
2008/08/05(火) 09:29:32関数とサブルーティンを分ける言語も多いね。
サブルーティンを戻り値のない関数としたのはCあたりからだったかな。
0658デフォルトの名無しさん
2008/08/05(火) 10:25:210659デフォルトの名無しさん
2008/08/05(火) 10:38:040660デフォルトの名無しさん
2008/08/05(火) 11:21:39.Where 以降の構文は、3.5から追加されたものだと
思うのですけれども、なんと呼称されているでしょうか?
オブジェクト内のメソッド呼び出しのようですし
Linq とはまた別の新しい技法のような気がします。
てか、Where, ToList, ForEach が一般的過ぎて検索しにくい・・・
0661デフォルトの名無しさん
2008/08/05(火) 11:22:42実態は静的メソッドの呼び出し
0662660
2008/08/05(火) 11:39:51というかドキュメント嫁、じぶん
基本型のbuiltin関数を暗黙的にオーバーロードしてる
いうのが何か引っかかる・・・Where, ToList, ForEachは
どこに所属してるメソッドなのかという、Linq難しいな…orz
0663デフォルトの名無しさん
2008/08/05(火) 11:53:22where(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 みたいな書き方をしてる事例ちょくちょく見かける
あれはシンタックスシュガーみたいなもんかしらん
http://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++と違うとか
0664660
2008/08/05(火) 12:01:18ドよめ
滝に打たれてチネ…orz
0665デフォルトの名無しさん
2008/08/05(火) 22:50:40それも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;
みたいな構文が、メソッド形式ではどうやってもスマートな書き方できなかったから導入されたらしい。
0666デフォルトの名無しさん
2008/08/05(火) 23:37:27その例だと
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入るとさらに面倒になるな
0667デフォルトの名無しさん
2008/08/05(火) 23:45:10CPU負荷が大きくてガクガクします。
負荷を下げる方法ってありませんか?
0668デフォルトの名無しさん
2008/08/06(水) 00:03:440669デフォルトの名無しさん
2008/08/06(水) 00:13:20直接は無理。
LINQ 使って軽い変換かければ可能。
例えば、int[ , ] array なら l.AddRange(array..OfType<int>());
int[][] なら l.AddRange(array2.SelectMany(x => x));
0670デフォルトの名無しさん
2008/08/06(水) 00:57:120671デフォルトの名無しさん
2008/08/06(水) 02:23:30外部結合になるとクエリ式でももうわけわからん
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});
0672デフォルトの名無しさん
2008/08/06(水) 05:36:57C#でDBを使うデスクトップアプリを作る場合、
DBは何を使うのがベストなのでしょうか?
とりあえずSQL compact3.5ってのを弄ってみましたが、
DBファイルが独立して作られてて、なんか妙な気分です。
ビルドしたらアプリに含まれるようになるんでしょうか?
ほかにXMLを使うやり方もあるそうですが、難易度高すぎる気がします。
なにか他にお勧めあったら、教えてくだちい。
0673デフォルトの名無しさん
2008/08/06(水) 08:23:08LINQ使えばXMLもSQL Server Compactも大差ないと思うが。
0674デフォルトの名無しさん
2008/08/06(水) 08:27:51そんなん聞いたこともないわ。
Accessのイメージで言ってるのか?
0675デフォルトの名無しさん
2008/08/06(水) 09:10:500676デフォルトの名無しさん
2008/08/06(水) 09:32:53別になってるのが普通なんですね(汗
おっしゃるとおり、Accessのようなものをイメージしてましたorz
言われてみれば、Web系でもDBと処理は別になりますよね・・・
>>675
一応、ちょっとだけ弄ってみたんですが、
木構造が複雑になってしまい、これだったら慣れてるRDBのほうが楽かなと。
恥ずかしながらFirebirdは初耳でした。ちょっと調べてみます。
0677デフォルトの名無しさん
2008/08/06(水) 18:39:17何がしたいのか分からないけどXmlSerializerあたり調べてみたら?
0678デフォルトの名無しさん
2008/08/06(水) 19:15:20じゃいたいってことなら SQLite とかの組み込みDBって手があるよね。
0679デフォルトの名無しさん
2008/08/06(水) 19:34:28俺も>672を読んでそう思ったので組み込みDBにできるFirebirdの名前出した。
けど>676読んだら「RDBが使いたい」ってわけじゃ無い感じがしたんでXmlSerializer言ってみた。
0680デフォルトの名無しさん
2008/08/06(水) 20:23:58int[]とかからも情報を取り込めるですか?
0681デフォルトの名無しさん
2008/08/06(水) 20:54:29Console.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;
}
}
0682デフォルトの名無しさん
2008/08/06(水) 20:56:28var 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()) {
とかみたいな雰囲気でまとめて書く方法ってないですか?
0683デフォルトの名無しさん
2008/08/06(水) 21:12:29ZipWithみたいなのが欲しいということかな?
だったら、デフォルトでは存在しない。自作している人ならちらほら居る。
0684デフォルトの名無しさん
2008/08/06(水) 21:13:24EXEとDBファイルが同じファイルになるのを期待してると思ったんだが。
Accessのイメージって言ってるし。
SQLiteもFirebirdもんなこたないんじゃないの?
SQL compact3.5だっておんなじようなもんでそ?
0685デフォルトの名無しさん
2008/08/07(木) 00:10:49684さんのおっしゃる「EXEとDBファイルが同じファイル」を期待してました。
DBもMS謹製しか使えないかと思ってましたが、
他のも結構使えるようなので、改めて調べてみます。
0686デフォルトの名無しさん
2008/08/07(木) 00:36:50正規表現中にPerlのように
ttp://8-p.info/perl-interpolation/
string hoge = "hogehoge";
Regex r = new Regex(@".*hoge"); //hogehogeが展開される
のようにして変数を展開することはできるでしょうか?
0687デフォルトの名無しさん
2008/08/07(木) 00:46:55".*" + hoge
では駄目な理由は何?
0688デフォルトの名無しさん
2008/08/07(木) 00:46:560689デフォルトの名無しさん
2008/08/07(木) 00:48:21string.Format かなにかで文字列化してから Regex に食わせればOK。
文字列中に ".*$hoge" みたいに変数入れたければ PowerShell 使えばいいと思う。
0690デフォルトの名無しさん
2008/08/07(木) 01:35:37変数を展開したい理由は何かと問われれば
変数hogeの文字列も外部の関数から取得してくるからです。
0691デフォルトの名無しさん
2008/08/07(木) 02:56:21色々カオスってるぞ。
>>686のリンクも行けないぞ。
0692デフォルトの名無しさん
2008/08/07(木) 03:10:51System.Windows.Windowで下のSS最前面のウインドウのようにOpacityを使用するにはどうしたらいいのでしょうか?
最前面のウインドウはSystem.Windows.Formsです。
ttp://www.imgup.org/iup662583.png
0693デフォルトの名無しさん
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にはなかったので
0694デフォルトの名無しさん
2008/08/07(木) 10:59:020695デフォルトの名無しさん
2008/08/07(木) 11:33:510696デフォルトの名無しさん
2008/08/07(木) 21:20:06何をセットすればいいのか分からない場合が多いんですがどうやって調べればいいんでしょうか?
ググって事例を探してるんですが、事例が無いと完全にお手上げです。
0697デフォルトの名無しさん
2008/08/07(木) 21:23:07それ、わんつーわんつー
0698デフォルトの名無しさん
2008/08/07(木) 21:26:37この辺って何か思想の違いみたいなのがあるん?
0699デフォルトの名無しさん
2008/08/07(木) 21:32:04Javaはプリミティブ型がObjectを継承してないからじゃないの
0700デフォルトの名無しさん
2008/08/07(木) 21:36:160701デフォルトの名無しさん
2008/08/07(木) 21:37:41そんなに多いか?
非ジェネリックなコレクション以外あまり思いつかないが…
0702デフォルトの名無しさん
2008/08/07(木) 21:40:11WriteLineやString.Format系、Thread関係のデリゲート、
EventHandlerのsender、ほかなんだっけ。
0703デフォルトの名無しさん
2008/08/07(木) 21:43:010704デフォルトの名無しさん
2008/08/07(木) 21:45:26標準じゃないけど、nplotってライブラリも何を渡すのか分からなくてちょっと困った。
0705デフォルトの名無しさん
2008/08/07(木) 21:47:030706デフォルトの名無しさん
2008/08/07(木) 21:51:090707デフォルトの名無しさん
2008/08/08(金) 00:15:330708デフォルトの名無しさん
2008/08/08(金) 00:18:560709デフォルトの名無しさん
2008/08/08(金) 00:20:44ありがとうございます。
それと、勉強するための本を買おうと思っているのですが
有名な物・お勧めの物はあるでしょうか?
0710デフォルトの名無しさん
2008/08/08(金) 00:56:16ネットで十分
0711デフォルトの名無しさん
2008/08/08(金) 00:58:55マジレスすると
http://ufcpp.net/study/csharp/index.html
がおすすめ
0712デフォルトの名無しさん
2008/08/08(金) 01:02:11ああ、それは俺もお勧め。
0713デフォルトの名無しさん
2008/08/08(金) 02:15:19読ませていただきます。
ちなみにVC#というソフトでみなさんはプログラムを書かれているんですか?
0714デフォルトの名無しさん
2008/08/08(金) 02:16:280715デフォルトの名無しさん
2008/08/08(金) 03:05:210716デフォルトの名無しさん
2008/08/08(金) 03:14:340717デフォルトの名無しさん
2008/08/08(金) 03:16:32無料版のIDEも無かったし
0718デフォルトの名無しさん
2008/08/08(金) 03:21:40わざわざ意味が無い苦労をする人がいたらそれは馬鹿だけど
そう言う環境が簡単には揃わない時代なら仕方ないじゃない
0719デフォルトの名無しさん
2008/08/08(金) 09:17:430720デフォルトの名無しさん
2008/08/08(金) 09:56:00外部クラス?それとももっとスマートな方法ってある?
0721デフォルトの名無しさん
2008/08/08(金) 10:06:09そのままプライベートのフィールドで持ってたらあかんの?
0722デフォルトの名無しさん
2008/08/08(金) 10:13:200723デフォルトの名無しさん
2008/08/08(金) 10:44:48それじゃインスタンス1つ分にしかならなくね?
0724デフォルトの名無しさん
2008/08/08(金) 10:51:40実行時に無駄にオーバーヘッド生むよね、本末転倒だったね・・・
0725デフォルトの名無しさん
2008/08/08(金) 10:59:510726デフォルトの名無しさん
2008/08/08(金) 11:59:03ロードの時間とか細かいパフォーマンス気にする以前の問題だろそれ
さすがに分けるべき
0727デフォルトの名無しさん
2008/08/08(金) 12:07:160728デフォルトの名無しさん
2008/08/08(金) 18:59:020729デフォルトの名無しさん
2008/08/08(金) 22:45:56JITコンパイラの最適化を少しくらい頼ってみたら?
時々例外が起きたときのスタックトレースが妙に抜けてることがあって
インライン展開されてる様子がわかるとちょっと嬉しくなるよ。
0730デフォルトの名無しさん
2008/08/09(土) 18:42:15RichTextBoxを使ってて、描画領域を少し右にずらして、その空いた領域に
行番号を描画しています。Graphics.DrawStringです。
当然スクロールされたら行番号を変えなくちゃいけないですが、このとき
再描画する前に前回描画した行番号を消すには、
どんな方法が一番最適なのでしょうか。
0731デフォルトの名無しさん
2008/08/09(土) 18:56:440732デフォルトの名無しさん
2008/08/09(土) 19:22:560733デフォルトの名無しさん
2008/08/09(土) 19:25:03多いから十分じゃないかもしれない。
0734デフォルトの名無しさん
2008/08/09(土) 19:25:51十分。
0735デフォルトの名無しさん
2008/08/09(土) 19:27:400736デフォルトの名無しさん
2008/08/09(土) 19:32:030737デフォルトの名無しさん
2008/08/09(土) 19:35:410738デフォルトの名無しさん
2008/08/09(土) 19:36:52何か使えない機能があるということですか
>>734
そうですか
>>736
頑張ってください
0739デフォルトの名無しさん
2008/08/09(土) 19:38:12不具合はないですか?
0740デフォルトの名無しさん
2008/08/09(土) 19:40:250741デフォルトの名無しさん
2008/08/09(土) 20:43:02とやっているのですが、strが大きいと処理時間遅くなるものなのですか?
str.Lengthが4320162だったのですが、10secくらいかかります。
中身のイメージではポインタのコピーとかではなく、実データを
コピーしているから遅いのでしょうか?
これを早くする方法はないのでしょうか?
0742デフォルトの名無しさん
2008/08/09(土) 20:44:080743デフォルトの名無しさん
2008/08/09(土) 21:18:000744デフォルトの名無しさん
2008/08/09(土) 21:22:010745デフォルトの名無しさん
2008/08/09(土) 21:26:41の言ってる事は、
遅いのは文字列のコピーじゃなくて、その文字列の描画に時間が掛かってるんだよ
という事
0746デフォルトの名無しさん
2008/08/09(土) 21:33:15そんなものTextBoxに表示してどうしろとw
ちなみに、RichTextBoxで代替したらあんがいあっさり解決しない?
0747デフォルトの名無しさん
2008/08/09(土) 21:39:23またまたご冗談を
0748デフォルトの名無しさん
2008/08/10(日) 00:08:05RichTextBoxだと7秒くらいでTextBoxで17秒くらいかかります。
バイナリをヘキサで表示してるんですが、大きいものだとこの7秒とかの間
かたまってしまって・・・
>745
TextBox.Text = str;
の前と後にStopWatchクラスで処理時間を出してるんですが、
この代入には描画処理も含まれているということでしょうか?
RichTextBoxはコントロールで表示されているところの描画のみ
してくれるわけではないのでしょうか?
>744
コントロールに別スレッドからでもアクセスする方法ってありません
でしたっけ?Invokeとか?
RichTextBoxには表示したいところだけバイナリを情報を代入してけば
いいんですかね?スクロールするたびに出したり消したりするとか?
0749デフォルトの名無しさん
2008/08/10(日) 00:11:16InvokeはUIスレッドが今やってる仕事を中断させて別の仕事をやらせる関数。
そんなでかいデータ扱うなら横着しないでユーザコントロール書けばいいだろ。
0750デフォルトの名無しさん
2008/08/10(日) 00:47:50しつこいね君も。
簡単に言うけどかなり面倒だしそれなりに難しいと思うよ。
表示することだけ考えてない?
0751デフォルトの名無しさん
2008/08/10(日) 00:56:37それならもう勝手にしろよw
ヘキサエディタでできあいのコモンコントロール使ってるのあったら教えてね
0752デフォルトの名無しさん
2008/08/10(日) 01:03:48RichTextBoxがそういう仕様ならやはりちょびちょび表示ですかねぇ。。。
0753デフォルトの名無しさん
2008/08/10(日) 01:11:160754デフォルトの名無しさん
2008/08/10(日) 01:30:38OpenGLスレくらいだなマシなのは。
0755デフォルトの名無しさん
2008/08/10(日) 01:31:290756デフォルトの名無しさん
2008/08/10(日) 01:50:58どんなスレ見てるの?
0757デフォルトの名無しさん
2008/08/10(日) 06:43:35TextBox.AppendText()は使ってみた?
InvokeRequiredとInvoke, BeginInvokeはUIスレッドにマーシャリングしてくれるメソッド
0758デフォルトの名無しさん
2008/08/10(日) 07:23:19TextBox.AppendText(str)も同じくらい時間かかりました。
>753
>仮想モードでListView
kwsk
0759デフォルトの名無しさん
2008/08/10(日) 08:24:17ファイルを展開しなければならないのでしょうか?
zip内に格納したままあれこれやるってのは不可能なのでしょうか?
0760デフォルトの名無しさん
2008/08/10(日) 08:28:070761デフォルトの名無しさん
2008/08/10(日) 10:40:140762デフォルトの名無しさん
2008/08/10(日) 10:41:550763デフォルトの名無しさん
2008/08/10(日) 13:56:58DBからデータを取得し、その構造体を返すクラスを作成しています。
私個人としては、datasetの形でかえしたいと思っています。
しかし、速度の問題から、
listを返すようになっています。
datasetで値のやりとりをするのと、<list>でやりとりをするので
そこまで速度やパフォーマンス、メモリの負担などはかわるのでしょうか?
ただのgetsetのプロパティのついたクラスのarraylistを、データとして使うほうが
早いのでしょうか?
僕としては、ここは.NETらしくdatasetを使いたいのですが。
0764デフォルトの名無しさん
2008/08/10(日) 14:03:310765デフォルトの名無しさん
2008/08/10(日) 14:06:39使う側としては便利だと思うけど
0766デフォルトの名無しさん
2008/08/10(日) 14:13:54kwskじゃなくてまずググれよ
0767デフォルトの名無しさん
2008/08/10(日) 14:14:570768デフォルトの名無しさん
2008/08/10(日) 15:14:59ユーザードロウしない限り改善不可能じゃないか?
0769デフォルトの名無しさん
2008/08/10(日) 17:51:36そうでしょうか。
たとえば、DataSet(型付Datasetという意味です)でデータを持つか
構造体でデータを持つか
そのメリットデメリットってそもそもなんなんでしょうか
datasetだと、複数テーブルをセットして、
リレーション張ったり、
うけとった側で、フィルターかけたり、nullチェック等のメソッドが用意されていたり
デザイナでデザインできたりするところだと思うのですが
構造体にすると、なんか.NET的な組み方じゃなくなってるような気もしたりしなかったり
僕が間違っていますか。
0770デフォルトの名無しさん
2008/08/10(日) 18:05:430771デフォルトの名無しさん
2008/08/10(日) 18:25:37クラスじゃなくてほんとに構造体で返すようなデータならデータセットで返すなんてありえない
0772デフォルトの名無しさん
2008/08/10(日) 21:53:500773デフォルトの名無しさん
2008/08/10(日) 22:11:58すいません、
えっとarrayistを返すか、datasetを返すかということでした。すいません。
0774デフォルトの名無しさん
2008/08/11(月) 01:12:06使う側はどういう用途なの?
それがわからんと良いとも悪いともいえん
0775デフォルトの名無しさん
2008/08/11(月) 12:33:44SpinWait のコードの実行は、
複数のプロセッサが搭載されているコンピュータで発生する可能性のある問題を回避するように設計されています。
たとえば、Hyper-Threading技術を使用した複数の Intelプロセッサが搭載されているコンピュータで、
SpinWait は、特定の状況で、利用できるプロセッサ リソースがなくなることを回避します。
とあるんですが、マルチコアCPUではThread.SleepよりThread.SipnWaitを使った方が良いのでしょうか?
0776デフォルトの名無しさん
2008/08/11(月) 12:42:360777デフォルトの名無しさん
2008/08/11(月) 15:32:52ていうかその説明は Sleep 関係ない。
Sleep と比較してどうこうじゃなくこのメソッドの実装は HT やマルチコア
みたいな環境でも問題起こりませんよっつー意味
なんでそんな注意書きがあるのかはスピンウェイト、スピンロック
あたりでググってまずそのメソッドが何するのか分かれ。
ついでに Sleep との違いも
0778デフォルトの名無しさん
2008/08/11(月) 16:12:16一応うまく動くようになってるよってことじゃないの?
0779デフォルトの名無しさん
2008/08/11(月) 16:16:00普通マルチコアやハイパースレッディング環境でしか使わないだろ
でハイパースレッディングの場合も一応うまく動くようになってるよってことだろ?
実装によっちゃ無意味にCPU目一杯ぶん回すだけで意味ない可能性もあるから。
0780デフォルトの名無しさん
2008/08/11(月) 16:19:36予想できることは一定時間ごとにスレッドを譲る仕掛けか、
一定時間でSleepに変更するかといったところだろう。
1CPUの場合はすぐさまスイッチしないと意味が無いし、
2CPU以上ならある程度スピンさせてても大丈夫だろう。
HTの場合はその中間くらいで手打ちしてるんじゃなかろうか。
0781デフォルトの名無しさん
2008/08/11(月) 17:44:20だから自分でバックオフを持たなきゃならない。
まあそもそも長時間かかる可能性がないとこだけにしとくのが無難だけど。
ついでに大抵シングルコア環境では使わない。
HTの場合は処理なし命令?でスピンして、有効な処理ではないことが
CPUに分かるように実装されてるはず。
0782デフォルトの名無しさん
2008/08/11(月) 18:42:10というかスイッチしない待ちのとき使うものでコア数関係ない
あえて言えば Win 上で動くからか
ちなみに HT の場合の話だがシェアするからビジーさせると
それが埋め尽くしちゃってパフォーマンスが極端に低下する。
だから PAUSE 命令が追加されててスピンにそれを使う必要が
あるんだがそれ使ってますよみたいな意
0783デフォルトの名無しさん
2008/08/11(月) 19:38:130784デフォルトの名無しさん
2008/08/11(月) 19:40:270785デフォルトの名無しさん
2008/08/11(月) 21:13:56内部的でいいんなら Moniter やらの同期機構が内部で使ってる。
アプリレベルだと例えば単純にスイッチは精度が悪い(Sleep は「最低」
指定時間待つ API)ので timeBeginPeriod(or MMCSS)でスケジューラ
いじって Sleep とスピンウェイトのあわせ技がいい。
機会や直で使うジャンルが少ないのは同意。コア周り、メディア、ゲーム
系しか知らん。
というか一定時間(クロック)待つようなメソッドの使い方(ぶっちゃけタイマ
みたいなもんだ)がマルチコアしか使わないになんでなるんだよという話。
ぜんぜん別やん。
もしかしてマルチコアじゃなくマルチスレッドっていう話か?
…それはそれとして思い出したんだが iterations を現実時間から計算する
方法知っている人いたりしない?
0786デフォルトの名無しさん
2008/08/11(月) 21:55:36まず使う機会がないって感覚だった。
Winで一定時間(クロック)待つような使い方自体が特殊用途なイメージだったわ。
ところでMonitorやらってシングル環境でもSpinWaitしとんのかね??
0787デフォルトの名無しさん
2008/08/11(月) 22:15:43モニタの場合は基本的に他のスレッドからの開放待ちだから1CPUではスレッドを譲らないと意味が無い。
マルチCPUの場合は最初はスピンで待って、一定時間越えたらSleep系のWaitに変える。
1CPUでスピンをやるとしたら、微妙なタイミングのIO制御や
他のディバイスからの割り込み待ちといったところで普通はディバイスドライバの仕事。
ゲームとかビデオとかそういうのが絡まない限り1CPUでビジーループはありえない。
0788デフォルトの名無しさん
2008/08/11(月) 22:28:21単にシングル環境での
>内部的でいいんなら Moniter やらの同期機構が内部で使ってる。
について疑問だっただけ。
0789デフォルトの名無しさん
2008/08/12(火) 14:28:25今、GUIをソースコードからうってcscでコンパイルしてるんだけど、おもしろい。
なんでもいいから、教えてけれ。
0790デフォルトの名無しさん
2008/08/12(火) 15:19:44C+APIはもう嫌になったので(殴
新たに何か言語を勉強すべくC#に目をつけたのですが、
・GUIアプリ製作のためにC#を学ぶ
この考えはまずいでしょうか?(もしくは他にもっと良いものがある?)
(プログラミングのスキルはCをそこそこ,JAVAは超初心者 です。)
0791デフォルトの名無しさん
2008/08/12(火) 15:25:510792デフォルトの名無しさん
2008/08/12(火) 15:30:00猫でもわかるは知ってるよね?
ttp://www.kumei.ne.jp/
0793デフォルトの名無しさん
2008/08/12(火) 16:07:25全然良い。
逆に言うと画像処理とか線形代数計算ならわざわざC#を選ぶ必要性がないしね。
イベントと継承が分かってくれば単純なGUIアプリならすぐ作れるようになるよ。
頑張れ。
0794デフォルトの名無しさん
2008/08/12(火) 16:24:170795デフォルトの名無しさん
2008/08/12(火) 16:44:19Google 先生の評価に従ってみるのもいいと思う。
0796789
2008/08/12(火) 18:44:30猫はC#編もあるんだ。昔、WinAPIのときちょっと参考にしていたよ。
やってみるよ。さんくす!
>>795
Google先生でググってみます。色々あってどれがいいか見定めなきゃいかんけど、
がんばるよ。ありがとう。
0797デフォルトの名無しさん
2008/08/12(火) 20:56:08デリゲートやガベージコレクション、非同期処理などについてとても詳しい解説があるよ
0798デフォルトの名無しさん
2008/08/13(水) 09:50:20これを複数のフォームで使いたいのね。
そういう時、クラスライブラリを作るのか、プロジェクトにクラス追加するのか、
どっちがいいの?
てか、プロジェクトに追加するクラスって、どういう時に使うの?
0799デフォルトの名無しさん
2008/08/13(水) 14:20:32どっちでもとりあえず目的は達成できる。
他のコードでも使いまわしたいのならクラスライブラリにした方がいいかも。
そういう用途ならDataGridViewから派生することになると思うんだけど、
そのあたりはちゃんと理解してるの?
>てか、プロジェクトに追加するクラスって、どういう時に使うの?
え?質問の意味が。。
0800デフォルトの名無しさん
2008/08/13(水) 15:04:10そのあたりは理解してない気がする・・・
とりあえずクラスライブラリとして作ったやつが、カレンダーの日付と曜日を取得するだけで、
DataGridViewはその都度フォームに手動で配置して、取得したデータを流し込んでる。
これは、派生してることにならないですよね?
DataGridViewも自動生成するようにしたら、「派生する」になる?
追加クラスは、クラスライブラリがあるのに、
わざわざ追加クラス使う意義って、何だろうなーと思いました。
0801デフォルトの名無しさん
2008/08/13(水) 20:00:36言語としてのC#を一度ちゃんと勉強した方がいいと思うぞ。
「猫でもわかる」や@ITの記事でも十分だから。
0802デフォルトの名無しさん
2008/08/13(水) 20:35:46@ITの改訂版 C#入門を、作りながら参照する感じで見てたんですが、
そういうのは良くないなと、自分でも思ってましたorz
改めて最初から最後までキチッと目を通して、出直してきます。
0803デフォルトの名無しさん
2008/08/13(水) 21:12:28@ITにも継承についての解説くらいはあるんじゃないの?
0804デフォルトの名無しさん
2008/08/13(水) 21:15:11今までちょいちょいつまんで見てたのを最初から通して読むことにしました
って書いてあるじゃんよ
0805デフォルトの名無しさん
2008/08/13(水) 22:00:160806デフォルトの名無しさん
2008/08/13(水) 22:07:15C# 2.0からC# 3.0になった。
型推論とか拡張メソッド、クエリ式とか。
0807デフォルトの名無しさん
2008/08/13(水) 22:24:58素早い回答、ありがとうございます。
.NET 2.0→ 3.0でC# 3.0が採用されたわけではなかったんですね。
根本的なところを勘違いしてました。 お恥ずかしい。
0808デフォルトの名無しさん
2008/08/13(水) 22:26:530809デフォルトの名無しさん
2008/08/13(水) 22:43:00> しかし、C# 2.0にどっぷり漬かったプログラマーに対して、これはあまりに難題だ。なぜかといえば、
> usingキーワードとはC# 1.0から存在する当たり前の機能であり、名前の短縮形を与えるために使
> われるだけだった。使用できる機能をオン/オフする役割など持っていなかったはずだ。それが「ス
> イッチ」としての機能を持つなど、容易には想像できないだろう。
なんか3.0からusingに新しい機能が追加されたような書き方だけど、
単に、using hoge; で、hogeの下の拡張メソッドが使えるようになるだけの話だよね。これ。
0810デフォルトの名無しさん
2008/08/13(水) 23:03:36むしろ君が何を言いたいんだ。
その文章特におかしいように感じないんだが。
0811デフォルトの名無しさん
2008/08/13(水) 23:25:220812デフォルトの名無しさん
2008/08/14(木) 00:00:45> 本題に入る前に、よくあるトラブルの事例を見てみよう。
いかにも頭の中で考えたような、なさそうな事例だな。
0813デフォルトの名無しさん
2008/08/14(木) 00:09:13わざわざ分かりにくく書いてるよな……
0814デフォルトの名無しさん
2008/08/14(木) 00:10:21「だって川俣だから」
0815デフォルトの名無しさん
2008/08/14(木) 01:08:25List<T>の解説を読むとインターフェイスを拡張してると書いてあるから使えるみたいだけど。
継承してもあくまで拡張メソッドだからオーバーライドもだめだよね?
0816デフォルトの名無しさん
2008/08/14(木) 01:16:310817デフォルトの名無しさん
2008/08/14(木) 09:26:08そう感じるのは、君たちが自分が理解してようがしまいが「動けばいいや」
的なコピペプログラマーだからなんじゃないのむしろ?w
そりゃそういう人間の視点からすれば、「一行で済むことをなにゴチャゴチャいってるんだ?」
としか思えないのは理解できる。
0818デフォルトの名無しさん
2008/08/14(木) 09:29:53言い訳は見苦しいぞ、川俣
0819デフォルトの名無しさん
2008/08/14(木) 09:30:170820デフォルトの名無しさん
2008/08/14(木) 09:30:570821デフォルトの名無しさん
2008/08/14(木) 09:45:00逆だろ。
理解できてるから、「なんでこんなに回りくどい説明するんだ?」と疑問に感じるんだよ。
連載の第6回に予定している内容を先に書けばいいのに、こういう書き方するのは
執筆ネタの水増し目的としか思えない。
0822デフォルトの名無しさん
2008/08/14(木) 10:10:13拡張メソッドって、拡張元クラスの静的メソッドに置き換えて考えれば終わりだと思ってたのだけど、
それ以上に新しい意味があるの?
そりゃ、名前が衝突したときの順位は問題になるだろうけど。
低レベルな質問で申し訳ないが、折角なのでこの機会に理解しておきたい。
0823デフォルトの名無しさん
2008/08/14(木) 10:31:03なんですと?
ttp://www.divakk.co.jp/aoyagi/csharp_tips_using.html
こういう機能もあるやん
0824デフォルトの名無しさん
2008/08/14(木) 10:47:12その理解でOK。
強いて言えば、拡張メソッド記法からデリゲートを作る時はちょっと特殊。
static string MyToString(this object o) { .... }
こういう拡張メソッドがあるときに、次のようなコードを書いたら何が起きるか、という話。
Func<string> func = obj.MyToString();
0825デフォルトの名無しさん
2008/08/14(木) 11:11:12詳しく解説をたのむ。
デリゲート作るならこんなんじゃない?
Func<string> func1 = () => obj.MyToString();
Func<string> func2 = () => xxxExtentions.MyToString(obj);
Func<object, string> func3 = xxxExtentions.MyToString;
Func<object, string> func4 = (o) => o.MyToString();
0826デフォルトの名無しさん
2008/08/14(木) 11:16:24Func<string> func5 = obj.MyToString;
0827デフォルトの名無しさん
2008/08/14(木) 11:29:36確かに、単純に静的メソッドに置き換えられない場合か……
色々試してくるわ。 ご指摘ありがとう。
0828デフォルトの名無しさん
2008/08/14(木) 13:00:29ごめん。 >>826 にあるように最後の () が不要だった。
詳しくはこことかをどうぞ。
"Extension methods and Curried Delegates"
ttp://blogs.msdn.com/sreekarc/archive/2007/05/01/extension-methods-and-delegates.aspx
0829デフォルトの名無しさん
2008/08/14(木) 15:37:23さすがにその感覚は理解できない。
0830デフォルトの名無しさん
2008/08/14(木) 16:41:44拡張メソッドは定義されてる名前空間をusingしないと使えないことに注意(通常とは異なり、名前空間をusingせずにフルで記述する方法は使えない)。
くらいの一文で十分だろう。
ぐだぐだ書く必要はない。
0831デフォルトの名無しさん
2008/08/14(木) 17:54:00「お前ら一緒にサイト作ろうぜwwwwwwwwww」
「2ちゃん越えるサイト作ろうぜwwww」
http://gacco.o0o0.jp/
http://yutori.2ch.net/test/read.cgi/news4vip/1218673130/
http://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
興味沸いたらきてください!
======================!! 人材募集中 !!======================
■プログラムを組んでくれる人
*サーバー側
言語はRubyかPerlの予定ですが、Perlが有力候補。
・チャット
定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。
通信するときのフォーマットは未定。
・ログイン・アカウント管理
ログイン認証、各アカウントの点数などの管理。データベースは未定。
・お絵描き
未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで
*クライアント側
はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。
■機能提案(正しくは人材ではなく、意見?)
「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。
挨拶とか気にせずスレにどんどん書き込んでくれればおk
■デザイン
サイトのデザインを考えてくれる人、作ってくれる人募集中。
できればphotoshop illustrator使える人(プロジェクト共有しやすいので)
0832デフォルトの名無しさん
2008/08/14(木) 19:12:580833デフォルトの名無しさん
2008/08/14(木) 19:54:410834デフォルトの名無しさん
2008/08/14(木) 20:24:030835デフォルトの名無しさん
2008/08/14(木) 20:24:510836デフォルトの名無しさん
2008/08/14(木) 20:32:28川俣信者って川俣と同じく、難癖のつけ方に無理がありすぎるな。
0837デフォルトの名無しさん
2008/08/14(木) 20:35:35っていうか、あのusingの解説って、絶対誤解を与えてるよ。
0838デフォルトの名無しさん
2008/08/14(木) 20:44:410839デフォルトの名無しさん
2008/08/15(金) 00:45:200840デフォルトの名無しさん
2008/08/15(金) 02:24:23System.Linqなんて使わんわと思って手動で消してたよ(´・ω・`)
俺みたいなアホには冗長的でも解説があるだけで有りがたいです・・・
0841デフォルトの名無しさん
2008/08/15(金) 07:34:160842デフォルトの名無しさん
2008/08/15(金) 11:26:03リアルでいるんだね。
幼稚なボクに理解できるかどうかわからないが、
そういうのは「信者」呼ばわりされれば腹が立つお前さん自身を他者一般に投射しているわけで、
要するに「思い入れ体質で、かつ打たれ弱い」お前さん自身を語ってることになると思うんだけど。
0843デフォルトの名無しさん
2008/08/15(金) 11:36:08信者乙ww
0844デフォルトの名無しさん
2008/08/15(金) 11:48:510845デフォルトの名無しさん
2008/08/15(金) 12:08:02VB使ってる奴らの方がそういう「叩きがいがある」のが多いよ。
少し奴らの言い分聞いてみたり覗いてみたら?
0846デフォルトの名無しさん
2008/08/15(金) 12:27:33MSDNでもバージョン毎に書いてることどんどん変わってるんだが、
結局ライタを同期すればスレッドセーフってことでいいのか?
それともそれだけじゃ駄目なのか?
最新の記述でも矛盾する事が同じとこに書いてある感じで、よく分からない。
0847デフォルトの名無しさん
2008/08/15(金) 20:52:22読み込みと書き込みは同時に行っちゃダメ
書き込みは複数スレッドから同時に行っちゃダメ
あとSynchronizedは忘れろほとんど意味ないから、同期するならlockかReaderWriterLock
0848デフォルトの名無しさん
2008/08/15(金) 21:59:26Hashtableだけその辺の動作条件が違うでしょ。
しかも同期ラッパー経由でもスレッドセーフじゃないとか。
出来ればロックしないマルチリーダと
書き込み同士のみロックするシングルライタ
っていう使い方がしたいのよ。
1.1の時はこれでスレッドセーフと書いてあって
2.0ではスレッドセーフじゃないに変わって
現在さらに複雑な記述になってる。
でも2.0みたいに頭から駄目にはなってない感じ。
0849デフォルトの名無しさん
2008/08/16(土) 08:24:170850デフォルトの名無しさん
2008/08/16(土) 09:04:440851デフォルトの名無しさん
2008/08/16(土) 09:44:13>現在さらに複雑な記述になってる
これ複雑で本当に分かり辛いよね。結局どういうことだったの?
0852デフォルトの名無しさん
2008/08/16(土) 10:25:140853デフォルトの名無しさん
2008/08/16(土) 14:09:38説明の前半だけ見れば、書き込み同士だけ同期取ればいいように見えるんだけど、
後半でそれを覆してくれてるっていうか前半と矛盾してるように見える。
前半のシングルライタの意味が本当にひとつのスレッドだけからじゃないと駄目ってことなら、
なぜマルチライタの時に同期とるだけではだめなのか分からない。
書き込みがシリアル化されてたらの意味にも矛盾する気がするし…
0854デフォルトの名無しさん
2008/08/16(土) 14:59:12オーバーヘッドが大きすぎて多分ほとんどの場合ただのlockのがまし。
SP1で追加された?ReaderWriterLockSlim?ならまた違うかもしれないが。
ReaderWriterLockとかはどっちかっていうと、物理的なリソースアクセスの同期なんかに使うもの。
0855デフォルトの名無しさん
2008/08/16(土) 16:30:27原文読んでもやっぱり難解というか意味不明だけど一応こう解釈して見た。
ライタがHashtableにシリアル化される場合というのはlock(hash.SyncRoot){}を使うということ。
読み取りはlockする必要はないが、書き込みはlockにより完全にシリアル化される。
Synchronizedラッパーはすべてのメソッドに単純にlockを仕込んでいるわけではなく、
書き込みの並列性を上げるためひと工夫している。
この副作用としてラップする前のオブジェクトに直接読み書きされた場合はスレッドセーフ性が保てない。
読み書きともSynchronizedラッパーを使えば大丈夫なはず。
0856デフォルトの名無しさん
2008/08/16(土) 16:50:050857デフォルトの名無しさん
2008/08/16(土) 17:03:440858デフォルトの名無しさん
2008/08/16(土) 17:39:48書き込み関係のメソッドをlockしてるだけのようだ
lock (this._table.SyncRoot){
this._table[key] = value;
}
「ライタがHashtableにシリアル化される」の解釈はConstrol.Invokeなどで
スレッドに同期させるの意味ではなかろうか
0859デフォルトの名無しさん
2008/08/16(土) 17:44:27ソースは見れるんでしょ?
0860デフォルトの名無しさん
2008/08/16(土) 18:59:34ParallelFXで
0861デフォルトの名無しさん
2008/08/16(土) 19:08:000862デフォルトの名無しさん
2008/08/16(土) 19:13:430863デフォルトの名無しさん
2008/08/16(土) 21:20:460864デフォルトの名無しさん
2008/08/16(土) 23:08:200865デフォルトの名無しさん
2008/08/17(日) 06:30:25本格的にc言語を勉強したいと思い下記のサイトをよんだりしていたのですが
やっぱり1から勉強するとしても情報が古すぎますか?
ttp://www9.plala.or.jp/sgwr-t/index.html
http://homepage3.nifty.com/mmgames/c_guide/
やっぱりテンプレのサイトに行って勉強した方がいいのかな?
今まで子供の頃から端々でプログラムを書いて利用する事はあったのですが
例題の文章を適宜加工して使っていた程度です。
本格的にc言語を学ぶにはどのサイトを参考にするのが現在お勧めなのでしょうか?
0866デフォルトの名無しさん
2008/08/17(日) 06:47:260867デフォルトの名無しさん
2008/08/18(月) 02:00:24猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
ここで少しずつ一通り演習すれば使えるようになるよ
0868デフォルトの名無しさん
2008/08/18(月) 14:54:32インストールされている.NETのバージョンを調べたいので方法を教えてください。
ネットで調べた限りmscorlib.dllのファイルバージョンを調べるとよいことはわかりました。
しかし.NET3.0, 3.5 のバージョンはこの方法だとわかりません。
3.5の場合csc.exeのバージョンを調べればわかると思うのですが、
Client Profileだとcsc.exeが無いという話も聞きますし、
3.0の場合はどうすればよいか見当が付きません。
0869デフォルトの名無しさん
2008/08/18(月) 15:10:39HKLM\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\v3.0
HKLM\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\v3.5
0870デフォルトの名無しさん
2008/08/18(月) 15:14:29HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP
0871870
2008/08/18(月) 15:20:19v1.1.4322、v2.0.50727、v3.0、v3.5の下の各InstallキーにDWORDの1が
格納されていれば、そのバージョンはインストール済みね。
0872868
2008/08/18(月) 15:30:530873デフォルトの名無しさん
2008/08/18(月) 18:26:39なんでみんなそうしないの?
0874デフォルトの名無しさん
2008/08/18(月) 19:08:560875oth
2008/08/18(月) 19:17:36win32見てもそれらしいのが見つからん・・・
0876デフォルトの名無しさん
2008/08/18(月) 19:20:230877デフォルトの名無しさん
2008/08/19(火) 00:34:380878デフォルトの名無しさん
2008/08/19(火) 01:33:11Win32APIでWindowFromPoint(POINT Point)という引数のPoint位置にあるウィンドウのハンドルを返すAPIがありますが、
これと似たような感じでPoint位置のWindowsFormsのコントロールのインスタンスを返すようなものはありますか?
(自分のプロセス内のもののみ対象でかまいません)
0879デフォルトの名無しさん
2008/08/19(火) 01:54:15日本語で書いてもみれるけど?
0880デフォルトの名無しさん
2008/08/19(火) 02:02:420881デフォルトの名無しさん
2008/08/19(火) 02:49:503ヶ国語を話せる人をトライリンガル
と言いますが、では1ヶ国語しか話せない人は何というでしょう?
答えを知りたい人は「一ヶ国語しか話せない人は、ジャパニーズ、又はアメリカン」で検索してね
0882デフォルトの名無しさん
2008/08/19(火) 03:01:450883デフォルトの名無しさん
2008/08/19(火) 09:41:31ttp://www.microsoft.com/japan/msdn/net/general/win32map.aspx
0884デフォルトの名無しさん
2008/08/19(火) 17:45:05ありがとうございます。無事に取得できました。
てゆうか、すごい役に立つページじゃないですか。いいページを教わりました。アザスです。
0885デフォルトの名無しさん
2008/08/19(火) 22:02:34を作成したとき、スレッドはいくつ動作するんですか?
ひとつだけですか?
複数フォームを出した場合はどうでしょうか?
教えてくださいませ。
0886デフォルトの名無しさん
2008/08/19(火) 22:06:120887デフォルトの名無しさん
2008/08/19(火) 22:40:35ユーザーは64bit化することによって動作が早くなることを期待しているようですが、
ただ単にインストーラを作成する場合に、TargetPlatformプロパティをx64、Itanium
とするだけでは駄目なんでしょうか?
やはり速度を早くするためにはコード自体を変える必要がありますか?
どなたか分かる方おられましたらお教えください。
よろしくお願いします。
0888デフォルトの名無しさん
2008/08/19(火) 22:45:27P/InvokeやCOM Interopを使ってるならその対応は必要。
0889デフォルトの名無しさん
2008/08/19(火) 22:47:30Win32API使ってる場合は、Win64APIとかがあってそれに変換するのでしょうか?
よろしく。
0890デフォルトの名無しさん
2008/08/19(火) 22:50:210891887
2008/08/19(火) 22:50:51返答ありがとうございます。
AnyCPUでビルドしたプログラムの64bitOS上での動作は確認できましたが、
プログラムの動作速度が32bitOS上での速度と変わらないくらいでした。
コードなども64bitで速度が出るように書き換える必要があるのでしょうか?
64bit上で動きさえすれば早くなると思っていましたが、
それがそもそも間違っていたのでしょうか?
0892デフォルトの名無しさん
2008/08/19(火) 22:54:470893デフォルトの名無しさん
2008/08/19(火) 22:57:030894デフォルトの名無しさん
2008/08/19(火) 22:59:23チューニング次第だし、君が勉強不足なだけw
0895デフォルトの名無しさん
2008/08/19(火) 22:59:26レジスタは増えたが命令長も増えたとか、性能向上と低下の両方の要素がいい塩梅に存在する。
今んとこ利点と言えるのは、アドレス空間が広がったってこと。
0896887
2008/08/19(火) 23:05:10そうなんですね。
・64bit対応しろと言われてもAnyCPUでビルドしている限り、基本何もしなくて良い。
・速度も大して速くなるわけではない。
と言うことでしょうか。
ありがとうございました。
>>894
すいません。認めます。
チューニングするにはどういったことに気をつけるべきなのでしょうか?
ヒントだけでもお願いします。
0897デフォルトの名無しさん
2008/08/19(火) 23:15:35C++で悪いがこの辺りかねえ
あまり性能は上がってないみたいだ
0898デフォルトの名無しさん
2008/08/19(火) 23:24:42ありがとうございます。
64bit化といっても64bitOSで動かせると言うだけで、
速度向上のためにできることは少なそうですね。
0899デフォルトの名無しさん
2008/08/19(火) 23:27:08気前よくCPUレジスタ256個とかでいいよ。
キャッシュもいいけど、レジスタ増やしとけば、あとはコンパイラが自動で手配してくれるから。
0900デフォルトの名無しさん
2008/08/19(火) 23:34:48そんなプログラム作ることはめったにないだろう?
0901デフォルトの名無しさん
2008/08/19(火) 23:36:17実質レジスターが減った形になってしまった。
あと命令長が長くなって命令キャッシュの使用効率が落ちたとかなんとか。
IntelとしてはやっぱりItaniumを押したかったんだろうなぁ(笑
0902デフォルトの名無しさん
2008/08/19(火) 23:37:350903デフォルトの名無しさん
2008/08/19(火) 23:38:20何種類あると思ってんだ?
0904デフォルトの名無しさん
2008/08/19(火) 23:39:14x64は64bitの整数命令だと32bit命令と比べて1バイト命令長が増える。
即値や即値アドレスを使ったときは当然さらに伸びる。
0905デフォルトの名無しさん
2008/08/19(火) 23:45:200906デフォルトの名無しさん
2008/08/20(水) 00:11:53昔の16ビットとか21ビットのマイコンとかの時代じゃないんだし、騙されるんな
0907デフォルトの名無しさん
2008/08/20(水) 00:17:160908デフォルトの名無しさん
2008/08/20(水) 00:21:39充実でほとんど問題にならなかったしな
0909デフォルトの名無しさん
2008/08/20(水) 00:22:350910デフォルトの名無しさん
2008/08/20(水) 00:25:53JavaのJITコンパイラだけど。なかなか面白いコードを吐いている
0911デフォルトの名無しさん
2008/08/20(水) 00:26:240912デフォルトの名無しさん
2008/08/20(水) 00:38:42もちろんクロック換算だが
0913デフォルトの名無しさん
2008/08/20(水) 08:25:05ありがとう!
0914デフォルトの名無しさん
2008/08/20(水) 15:53:52{
string hoge;
string foo { get; set; }
}
参照型のフィールドやプロパティの初期値はnullが入るそうですが
それに頼って書くべきか、明示的にnullに初期化すべきか
皆さんはどうしてます?
0915デフォルトの名無しさん
2008/08/20(水) 15:54:52規格で決まってるから。
0916デフォルトの名無しさん
2008/08/20(水) 15:55:450917デフォルトの名無しさん
2008/08/20(水) 17:10:03それに頼って書くべき
明示的に初期化されてたら何かあるのかと思ってしまう
0918デフォルトの名無しさん
2008/08/20(水) 19:25:43参照型のフィールドやプロパティなら 明示的にnewでインスタンス化
すべきじゃないのか?
じゃないとclass Aのインスタンスを使うたんびにフィールドやプロパティが
ヌルでないかどうかチェックしないといけなくなるような気がするんだが。
0919デフォルトの名無しさん
2008/08/20(水) 20:18:56初期値がnullである必要がある場合の話だろ
0920デフォルトの名無しさん
2008/08/20(水) 21:02:34class Hoge {
public Fuga Piyo = null;
public Hoge(){
if(何たらかんたら){
Piyo = new Fuga(なんとか);
}else{
Piyo = new Fuga(かんとか);
}
}
}
みたいなこともあると思うぬ。
0921デフォルトの名無しさん
2008/08/20(水) 21:48:00つまらない話題がいつまでも続いてうざい
0922デフォルトの名無しさん
2008/08/20(水) 21:58:25ローカルルールにもない
お前が消えろ>>921
0923デフォルトの名無しさん
2008/08/20(水) 22:02:580924デフォルトの名無しさん
2008/08/20(水) 22:06:350925デフォルトの名無しさん
2008/08/20(水) 22:12:150926デフォルトの名無しさん
2008/08/20(水) 22:24:56ローカルルールにもない
お前が消えろ>>925
0927デフォルトの名無しさん
2008/08/20(水) 22:26:36頭悪い>>926
0928デフォルトの名無しさん
2008/08/20(水) 22:28:46×悪魔の照明
○悪魔の証明
と突っ込まれると思ったがさすがにそこまで恥ずかしい事をする奴は
いないようだ
0929デフォルトの名無しさん
2008/08/20(水) 22:31:21悪魔の照明
厨設定ならありかも
0930デフォルトの名無しさん
2008/08/20(水) 23:37:110931デフォルトの名無しさん
2008/08/21(木) 00:54:16C#から下記の方法でエクセルファイルを指定し、起動しているのですが、
起動するたびに新規のプロセスEXCEL(excel.exe)として起動してしまいます。
C#実行時にEXCELが既に起動中であれば、同一プロセスとして起動したいのですが、
どのようにすればよいでしょうか?
Excel.Application app = new Excel.Application();
Excel.Workbooks books = (Excel.Workbooks)app.Workbooks;
//ブックにテンプレートを読み込む
Excel._Workbook book = books.Open("xxxx\yyyy\zzzz.xls",
Missing.Value,Missing.Value,Missing.Value,
Missing.Value,Missing.Value,Missing.Value,
Missing.Value,Missing.Value,Missing.Value,
Missing.Value,Missing.Value,Missing.Value);
以下略
よろしくお願いします。
0932デフォルトの名無しさん
2008/08/21(木) 08:27:46このスレもういらないんじゃね?
0933デフォルトの名無しさん
2008/08/21(木) 08:31:030934デフォルトの名無しさん
2008/08/21(木) 09:54:07オートメーションを使うことが前提なら、
app = new Excel.Application() のたびに新しいインスタンスが起動するのは仕様。
そのせいでインスタンスがいくつも残ることが問題なら、
同一プロセスから複数回起動するならappを使いまわす。
プロセス終了時にはClose / Quitしておく。
そうじゃなくて単純にExcelを立ち上げることが目的なら、
Process.Start("xxxx\yyyy\zzzz.xls") とすればよい。
0935デフォルトの名無しさん
2008/08/21(木) 11:09:37レジスタが多い、大きいとスレッドスイッチ時にレジスタを待避、復帰させる
コストが無視できなくなる。x64のパフォーマンスが上がらない原因の1つに
それがある。
0936デフォルトの名無しさん
2008/08/21(木) 11:40:21256もあるなら、スレッド1に半分を使って切り替え時に他方にスワッピングするもんだろ。
スレッド4つぐらいでも楽ちん。
その設計だと、当然ユーザには使えないレジスタ(CPU管理用)がいくつもあるから、実施的にキャッシュの亜種と同じになる。
INTELとかAMDのハード屋、メチャ頭いいやつらだから、そんなのも検証して今の姿になってんだろうけど。
0937デフォルトの名無しさん
2008/08/21(木) 16:16:24考えるだけで凄く無理臭いけど
0938デフォルトの名無しさん
2008/08/21(木) 16:40:56起動中のプロセスのオブジェクトを取得する手段はある。
0939デフォルトの名無しさん
2008/08/21(木) 17:27:550940デフォルトの名無しさん
2008/08/21(木) 18:09:320941デフォルトの名無しさん
2008/08/21(木) 18:14:250942デフォルトの名無しさん
2008/08/21(木) 18:48:46単にDirectXという意味だったとしても、大体この選択肢+XNAになるな。
0943デフォルトの名無しさん
2008/08/21(木) 21:18:10str(中身は) "abc" という文字列を変更する際に
文字列を変更する際に
str = "abcdefghijklmn";
としてもエラーが出ず普通に変更されるのですが、何も気にせずこのように書いてしまって
問題ないのでしょうか?
(正確には、VS2005のデザイン?で作ったテキストの書き換えを行っています。)
0944デフォルトの名無しさん
2008/08/21(木) 21:20:52おっしゃる意味が分かりません。
0945デフォルトの名無しさん
2008/08/21(木) 21:27:110946デフォルトの名無しさん
2008/08/21(木) 21:31:06すみません
すでに作ったString型の変数に
生成時に代入した文字列より多い文字を直接
変数名 = "新しい文字列";
で 入れても問題ないでしょうか? と言うことです。
(多分これもわかりにくいと 思いますがorz)
すみません 急きょC#を扱うもので おかしな事書いてる可能性が高いです。
0947デフォルトの名無しさん
2008/08/21(木) 21:32:22中身が"abc"のstringオブジェクトの代わりに新しい"abcdefghijklmn"オブジェクトが作成されて格納される
"abc"オブジェクトは他にどこも参照していなければガーベジコレクションの対象になる
0948デフォルトの名無しさん
2008/08/21(木) 21:36:35は
変数名 = new string("新しい文字列");
と同じ意味
一度作成したstringオブジェクトは変更できない
変更しようとすると新しいstringオブジェクトが作成される
stringオブジェクトの内部バッファをいじりたいときは
StringBuilderクラスを使う
0949デフォルトの名無しさん
2008/08/21(木) 21:53:01> 変数名 = "新しい文字列";
> は
> 変数名 = new string("新しい文字列");
> と同じ意味
また嘘を教える…
0950デフォルトの名無しさん
2008/08/21(木) 21:54:00>>944,945,947,948
皆様ありがとうございました。
0951デフォルトの名無しさん
2008/08/21(木) 22:03:26同じ意味だろ
コンパイルが通らないだけだ
0952デフォルトの名無しさん
2008/08/21(木) 22:09:12これから頭悪い奴はレス禁止でよろしく
0953デフォルトの名無しさん
2008/08/21(木) 22:26:21前者はintern化されるんだっけ?
あれそれはJavaだったか?
0954デフォルトの名無しさん
2008/08/21(木) 22:39:11ILではldstr という専用命令があったりする。
0955デフォルトの名無しさん
2008/08/21(木) 22:39:490956デフォルトの名無しさん
2008/08/21(木) 22:42:510957デフォルトの名無しさん
2008/08/21(木) 23:07:09string s = ""; // new string(new char [] {});
System.Console.WriteLine(string.ReferenceEquals(s,string.Empty));
0958デフォルトの名無しさん
2008/08/21(木) 23:13:01Empty = "";
で初期化されてるから
0959デフォルトの名無しさん
2008/08/21(木) 23:13:11http://jeanne.wankuma.com/tips/csharp/programming/releasecom.html
こんな感じでExcelファイル出力するとすごい時間掛かるんだよな。
至れり尽くせりの .NET だけど Excel との親和性はかなりショボい感じ。
結局COM経由だなんて。
もっと便利に、速くならないの?
0960デフォルトの名無しさん
2008/08/21(木) 23:55:163の特定行を抽出するのに何かよい方法とかあるでしょうか。
rowfilterとかで旨く取れるのでしょうか?
ちなみに環境は、C#.Net 2003でWindowsFormです。
1 DataViewに50行ほどの配列データを格納。
2 ソート実行。
3 20−30行目だけをDatagridに格納して表示。
0961デフォルトの名無しさん
2008/08/21(木) 23:55:40つーかいちいちReleaseComObject呼べってデマを最初に広げたの誰だろう。
普通は暗黙的な参照さえ作らないようにすれば必要十分なのに。
0962デフォルトの名無しさん
2008/08/21(木) 23:58:55是非kwsk。
確かにいちいちReleaseComObjectやってます。
すごいめんどくさいです。
一つでも忘れると確実にExcelタスク残ります。
0963デフォルトの名無しさん
2008/08/22(金) 00:03:120964デフォルトの名無しさん
2008/08/22(金) 00:04:470965デフォルトの名無しさん
2008/08/22(金) 00:06:16>>931-934
0966デフォルトの名無しさん
2008/08/22(金) 00:10:48一度にアクセスすれば速いんだけど、
データが多すぎるとExcel側がメモリ不足エラーを起こすんだよなぁ。
エラーを起こす明確な閾値があるわけでもないので、
1セルずつアクセスする事にすると、遅くなる。
0967デフォルトの名無しさん
2008/08/22(金) 00:16:25つーか俺もweb上の情報だけでやってたから触りだして2年ぐらい意味が分からなかったw
0968デフォルトの名無しさん
2008/08/22(金) 00:28:570969デフォルトの名無しさん
2008/08/22(金) 00:42:34Rangeオブジェクトの設計思想ってなんだろうな?
単に、Excelの範囲選択時の操作と同じ処理をするための物だと思ってたけど。
0970デフォルトの名無しさん
2008/08/22(金) 00:50:05string.Equalsはオーバーライドされてインスタンスの比較ではなく
文字列の比較をして返すから。
そうじゃなきゃ、if(s == "abc")なんてのもできなくて不便でしょうがないだろ。
0971デフォルトの名無しさん
2008/08/22(金) 00:53:370972デフォルトの名無しさん
2008/08/22(金) 07:44:370973デフォルトの名無しさん
2008/08/22(金) 08:38:46class hoge
{
public ArrayList list = new ArrayList();
public hoge hoge_1;
public hoge hoge_2;
public hoge hoge_3;
public hoge hoge_4;
public hoge(int num){
if (num > 1)
{
hoge_1 = new hoge(num/2);
hoge_2 = new hoge(num/2);
hoge_3 = new hoge(num/2);
hoge_4 = new hoge(num/2);
}
}
}
hoge hoge_top = new hoge(64);
0974デフォルトの名無しさん
2008/08/22(金) 09:03:16デコンパイルすれば秘密鍵なんてすぐバレると思うのですが。
0975デフォルトの名無しさん
2008/08/22(金) 09:03:29最初に広めたのはMSだよ
0976デフォルトの名無しさん
2008/08/22(金) 09:07:07要件によって様々だが、定石的にはソルト付きのハッシュを使う。
Rfc2898〜を使うのが簡単でかつ良い。
可逆の暗号化使って鍵をハードコーディングなをて普通はやらない。
0977デフォルトの名無しさん
2008/08/22(金) 09:09:020978デフォルトの名無しさん
2008/08/22(金) 09:11:08class Hoge
{
public Hoge hogeParent;
public Hoge hoge_1;
public Hoge(int num, Hoge parent)
{
hogeParent = parent;
if (num > 1)
{
hoge_1 = new Hoge(num / 2, this);
}
}
}
Hoge hoge_top = new Hoge(64, null);
0979デフォルトの名無しさん
2008/08/22(金) 09:41:09ありがとうございます。DPAPI使うのが一般的っぽいですね。
(P/Invoke叩かなくても
System.Security.Cryptography.ProtectedData使えばいいのかな?)
SSHAも面白そうだし知識の幅が増えて助かりました。感謝です。
0980デフォルトの名無しさん
2008/08/22(金) 18:17:39ありがとう
0981デフォルトの名無しさん
2008/08/23(土) 12:21:57App.Configを暗号化できる。
0982デフォルトの名無しさん
2008/08/23(土) 12:54:430983デフォルトの名無しさん
2008/08/23(土) 14:39:480984デフォルトの名無しさん
2008/08/23(土) 15:06:490985デフォルトの名無しさん
2008/08/23(土) 16:50:211.秘密鍵と公開鍵を作る。
2.秘密鍵を公開鍵で暗号化する
3.暗号化済み秘密鍵を仕込む
4.秘密鍵を手に入れるには、暗号化された秘密鍵を暗号化された秘密鍵を(ry)秘密鍵でデコードした秘密鍵でデコードした秘密鍵でデコードすれば手に入る
5.ウマー?
0986デフォルトの名無しさん
2008/08/23(土) 17:10:31ていうかまあ普通にやってたりすることだよね
0987デフォルトの名無しさん
2008/08/23(土) 17:13:15サーバなんかで複数マシンで共有したりするならconfigの暗号化かな
0988デフォルトの名無しさん
2008/08/23(土) 17:36:580989デフォルトの名無しさん
2008/08/23(土) 17:42:010990デフォルトの名無しさん
2008/08/23(土) 17:46:34C#, C♯, C#相談室 Part48
http://pc11.2ch.net/test/read.cgi/tech/1219481054/
0991デフォルトの名無しさん
2008/08/23(土) 18:24:10乙
おいらの痛恨のミスもあと数レスでおさらばだぜ
0992デフォルトの名無しさん
2008/08/23(土) 18:31:03てゆか、商用目的のアプリ(といってもソフト自体はフリーですが)
をデコンパイルして読んでたら秘密鍵が埋め込んであるのを見つけたんで、
疑問に思って>>974書きました。
0993デフォルトの名無しさん
2008/08/23(土) 18:41:35てめーがこのスレの>>1か
0994デフォルトの名無しさん
2008/08/23(土) 19:36:490995デフォルトの名無しさん
2008/08/23(土) 19:49:54鍵を入手することが可能なような気がする。
0996デフォルトの名無しさん
2008/08/23(土) 20:07:21なんで?コードの情報をもとに秘密鍵つくってOSに保持させるんだよな?
OSをクラックするスキルがなきゃとても無理じゃね。
0997デフォルトの名無しさん
2008/08/23(土) 20:10:22それってほんとにその鍵だけでパスワードとかが復元できるようなものなの?
ライセンスキーとかみたいにばれたらまあ仕方がないわってものとか、
あるいは追加のキー(それだけでは復号できないもの)とか、
そんなのじゃなくて?
0998デフォルトの名無しさん
2008/08/23(土) 20:11:53はい?
0999デフォルトの名無しさん
2008/08/23(土) 20:13:50要は何を目的にしてて、何から守るためのものか、って話になる。
1000デフォルトの名無しさん
2008/08/23(土) 20:25:1310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。