C#, C♯, C#相談室 Part51
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/02/04(水) 23:26:55前スレ
C#, C♯, C#相談室 Part50
http://pc11.2ch.net/test/read.cgi/tech/1229661915/l50
Visual C# 2008 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
その他テンプレ>>2-5くらい
0002デフォルトの名無しさん
2009/02/04(水) 23:29:58ふらっとC#,C♯,C#(初心者用) Part36
http://pc11.2ch.net/test/read.cgi/tech/1232455653/l50
Visual Studio 2008 Part 14
http://pc11.2ch.net/test/read.cgi/tech/1230008197/l50
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
http://pc11.2ch.net/test/read.cgi/tech/1231506876/l50
【VB.NET】LINQ友の会【C#, C♯, C#】
http://pc11.2ch.net/test/read.cgi/tech/1202568694/
C#,C#の宿題片付けます。
http://pc11.2ch.net/test/read.cgi/tech/1197620454/l50
0003デフォルトの名無しさん
2009/02/04(水) 23:35:01MSDNライブラリ
http://msdn.microsoft.com/ja-jp/library/
@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/
MSDN フォーラム
http://forums.microsoft.com/MSDN-JA/default.aspx?SiteID=7
pinvoke.net: the interop wiki!
http://pinvoke.net/
宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/
WisdomSoft Microsoft .NET入門
http://wisdom.sakura.ne.jp/system/msnet/
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
0004デフォルトの名無しさん
2009/02/04(水) 23:53:210005デフォルトの名無しさん
2009/02/04(水) 23:57:37初歩的な質問はPC初心者板で・・・
http://pc11.2ch.net/pcqa/
参考リンク(よく出てくる情報リンク)
Windows Vista Wiki
http://windowsvista.ms/index.php
Windows VistaFAQ
http://vistafaq.stdo.net/index.html
インストールから設定・活用まで〜 すべてが分かるWindows Vista大百科
http://journal.mycom.co.jp/special/2007/windowsvista/menu.html
0006デフォルトの名無しさん
2009/02/05(木) 00:01:54本当ですか?
0007デフォルトの名無しさん
2009/02/05(木) 00:03:530008デフォルトの名無しさん
2009/02/05(木) 00:27:120009デフォルトの名無しさん
2009/02/05(木) 00:35:510010デフォルトの名無しさん
2009/02/05(木) 00:37:49ちょっと流れてしまったので再度書き込みさせていただきます。
「Webページのビルド コメント」機能を使おうとしたのですが
うまく使えません。。
下記に手順として
ttp://www.atmarkit.co.jp/fdotnet/teamdev/teamdev01/teamdev01_02.html
VS.NETでC#のソリューション(プロジェクト)を開き、統合開発環境のメニューから、[ツール]−[Webページのビルド コメント]を実行する
とあるのですが、
[ツール]の中にWebページのビルド コメントがないです。
私が使ってるVS2005 Professionalでは使えない機能なのでしょうか?
0011デフォルトの名無しさん
2009/02/05(木) 00:43:560012デフォルトの名無しさん
2009/02/05(木) 01:48:57本当です
0013デフォルトの名無しさん
2009/02/05(木) 05:21:39一番簡単そうな前スレ>>988の方法でやってできました。
0014デフォルトの名無しさん
2009/02/05(木) 07:52:000015デフォルトの名無しさん
2009/02/05(木) 09:24:250016デフォルトの名無しさん
2009/02/05(木) 11:10:30本に検索したレコードをフォームに表示で、
iPos=dataView.Find("T0001");
dataGrid.CurrentRowIndex=iPos;
ってあったのでDataViewコンポーネントをフォームに貼ろうと思ったらなかった・・・
あるのはポインタ, DataSet, DataGridView, BindingSource, BindingNavigatorだけ。
これはExpress Editionだから?
それとも本がちょっと古いから今のと仕様が違うのかな?
本は平成14年12月25日初版ってなってる。
0017デフォルトの名無しさん
2009/02/05(木) 11:21:00// まあ旧来のDataGridも生のDataViewも使えるけども。
素直に2005以降対応の本で勉強することお勧め。
0018デフォルトの名無しさん
2009/02/05(木) 11:21:29宣言とかない?
0019デフォルトの名無しさん
2009/02/05(木) 12:11:30この板に専用スレがあるけど過疎
ゲ製作技術の姉妹スレの方も過疎だけど、あっちの方がまだマシか・・?
0020デフォルトの名無しさん
2009/02/05(木) 13:21:38やっぱ新しい本買ってきます。
>>18
本には「ツールボックス」の「データ」ってとこから貼り付けてるんだよね。
宣言ってのはまだ勉強始めたばっかりなので分かりません。すいません。
002110
2009/02/05(木) 23:54:03え、なくなったのですか!?
魅力的な機能に感じたのにもったいないです。
これで慣れた人は今どうしてるんでしょうかね。
他のいい代替ソフトでもあるのでしょうか。
0022デフォルトの名無しさん
2009/02/06(金) 00:01:33MFC も正直中身いまいち見えないと思うが…。
というか MFC と比較するんならたぶん WinForms だろうけど
実装正直かなり素直なので中身が見えない?とか思ったことナス
0023デフォルトの名無しさん
2009/02/06(金) 00:16:38落としてやり、Explorerに落としたときと同じようにメールのファイル化を
行いたい場合、DragDropイベントに自分で処理をいろいろ書いて実現する
ことをせずに、どこかにWebBrowserを貼っておいてC:\Tmpなどのフォルダ
にNavigateしておき、そこへプログラムでD&Dで落としてやることは可能で
しょうか。その場合はWebBrowserのDocumentオブジェクト上にD&Dする
ようなことを擬似的に処理するのでしょうか、ご指導の程よろしくです。
0024デフォルトの名無しさん
2009/02/06(金) 00:19:44ドンマイ
0025デフォルトの名無しさん
2009/02/06(金) 00:19:540026デフォルトの名無しさん
2009/02/06(金) 00:37:24IShellFolderからIDropTargetをGetUIObjectOfして
DropされたIDataObjectを渡しつつ DragEnter, DragOver, DragDropを
順に呼んでやればおk
なに言ってんだか理解できないなら諦める
002723
2009/02/06(金) 00:48:41おお、ご指導ありがとうございます。お答えの感じからは可能ということ
なのですね!おそらくですが、このIShellFolderが、WebBrowserのDocument部に
該当するオブジェクトの型でしょうか。そこにIDropTargetに割り当てられる
UIObejectがある、という感じなのですね。ありがとうございます、そこから
また調べてやってみます。感謝です。
0028デフォルトの名無しさん
2009/02/06(金) 01:47:12いくつかのサイトで調べたのですがいまいち・・・
VisualStudioで即、ビルドできるソース一式があればお教えください
0029デフォルトの名無しさん
2009/02/06(金) 01:49:280030デフォルトの名無しさん
2009/02/06(金) 01:51:03オススメあったら教えてください
0031デフォルトの名無しさん
2009/02/06(金) 08:21:26コンストラクタ→メソッド→プロパティの順とか、
アルファベット順に並べかえたりしてる?
こんど、sourceforge に登録しようと思ってるんで
その前にソースをきれいにしたい。
アルファベット順とかにならんでるときれいだけど
それを維持するのも面倒なんでどうしようかな・・・と思ってるんだが。
0032デフォルトの名無しさん
2009/02/06(金) 09:20:27public/protected/private順とか
いろいろありそうだがアルファベット順はないな
0033デフォルトの名無しさん
2009/02/06(金) 09:29:030034デフォルトの名無しさん
2009/02/07(土) 12:52:55中はpublic→protected→private
0035デフォルトの名無しさん
2009/02/07(土) 13:37:05俺はオブジェクトブラウザやヘルプに出てくる順番を参考にしてます。
0036デフォルトの名無しさん
2009/02/07(土) 16:24:47003731
2009/02/08(日) 02:13:55手動で並べ替えは面倒なんで、
FxCop と StyleCop で自動化できる範囲で
やることにしました。
今月中に世界を変えるアプリを公開する予定です。
0038デフォルトの名無しさん
2009/02/08(日) 04:35:110039デフォルトの名無しさん
2009/02/08(日) 05:25:050040デフォルトの名無しさん
2009/02/08(日) 10:05:57やたら厳しく文句付けてくるだけのツール
オープンソースにするならFxCop通すのは最低限のマナーだと思うけど結構面倒
0041デフォルトの名無しさん
2009/02/08(日) 11:22:490042デフォルトの名無しさん
2009/02/08(日) 17:36:55まぁ Framework/Style Police だからな。捕まえるまでが仕事。
0043デフォルトの名無しさん
2009/02/08(日) 18:58:34計算時間を気にしなければ既にあるんじゃね?
0044デフォルトの名無しさん
2009/02/08(日) 19:00:110045デフォルトの名無しさん
2009/02/08(日) 19:08:41残念ながら暗号強度と関数の公開性は関連がないよ。
0046デフォルトの名無しさん
2009/02/09(月) 09:21:130047デフォルトの名無しさん
2009/02/09(月) 10:08:07C# ファイルマッピングで検索してもWin32系の情報しか出てこないのですが、
C#にファイルマッピング系のクラスなどは存在しないのでしょうか?
0048デフォルトの名無しさん
2009/02/09(月) 10:16:170049デフォルトの名無しさん
2009/02/09(月) 10:31:38APIでゴリゴリ書きます^^;
ありがとうございました
0050デフォルトの名無しさん
2009/02/09(月) 14:33:03.NET Framework 4.0で追加予定
0051デフォルトの名無しさん
2009/02/09(月) 15:18:05enum XX : int { ...... }
と列挙した内容を、(int)などのキャストなしで値として得たいと思っています。
何か良い案などございますでしょうか?
0052デフォルトの名無しさん
2009/02/09(月) 16:32:02abstract class XX
{
public const int Hoge = 0;
public const int Hage = 1;
……
}
とか
0053デフォルトの名無しさん
2009/02/09(月) 16:36:25enumを列挙するときに数え上げてDictionaryにenumをKeyにして、
数値を格納使用とも思ったのですが、列挙の途中で値が代入され
連続性がないenumの場合は使えないナなど悩んでおりました。
0054デフォルトの名無しさん
2009/02/09(月) 19:28:47最適化してる訳じゃないし他のところだと普通に値が見れるし。
0055デフォルトの名無しさん
2009/02/09(月) 19:52:09VBならキャストなしでいけるw
しかし、そんなキャストを忌避しなきゃならん理由があると思えんけど。
0056デフォルトの名無しさん
2009/02/09(月) 20:44:31Enum.GetValues(typeof(XX)) でなくて?
0057デフォルトの名無しさん
2009/02/10(火) 03:21:24ググればいくつも見つかりますが、どれが高速かいちいち試すときりがないので。
0058デフォルトの名無しさん
2009/02/10(火) 03:51:05この場合どういうデータ構造をつかえばいいでしょうか?
0059デフォルトの名無しさん
2009/02/10(火) 03:53:42条件によるとしか
ライセンスの問題もあるし、unsafeが許可されるのかも知らんし
そもそもIOがボトルネックになるんじゃね?という気もする。
0060デフォルトの名無しさん
2009/02/10(火) 05:14:25USBアダプタでのマルチモニタ環境なんですけど再起動したりするとたまに取得順が変わるようで、出来ればモニタの型番かなにかで一意に対応取りたいんですが・・・。
0061デフォルトの名無しさん
2009/02/10(火) 07:55:56どれもたいして変わらん。
本当に速いのが必要なときはハードにやらせるし
0062デフォルトの名無しさん
2009/02/10(火) 07:57:51配列
0063デフォルトの名無しさん
2009/02/10(火) 10:01:09DeviceName とかじゃダメか?
0064デフォルトの名無しさん
2009/02/10(火) 10:09:08SSE4.2使え
0065デフォルトの名無しさん
2009/02/10(火) 10:11:080066デフォルトの名無しさん
2009/02/11(水) 08:37:13ApplicationSettingsを使ってRadioButtonのCheckedを覚えさせようとしたんですが、
例えば二つのRadioButtonがあった場合、二つともPropertyBindingとして設定すると
アプリを動かして、UIでチェックをつけたりはずしたりする時に、その二つの
RadioButtonのCheckedが一度外れた状態になります。何故でしょう。
そもそもRadioButtonはApplicationSettingsでCheckedの値を覚えさせる
ものではない?
0067デフォルトの名無しさん
2009/02/11(水) 09:14:39DeviceNameだと
"\\\\.\\DISPLAY1" string
っていう値が入ってるだけで、これってPC再起動時に名前が変化する可能性があるので使えないかなぁと
0068デフォルトの名無しさん
2009/02/11(水) 12:45:51趣味でプログラミングする身としては余り楽しくない。
MVPのブログはキモイので肌に合わない。
今、C#で継承や多態性を有効活用させる為に、Effective Javaを衝動買い
しようかと思ったのだけど、通販しか手が無い。
注文する前に、みんな何読んでるか聞かせて。
0069デフォルトの名無しさん
2009/02/11(水) 13:10:30イニシャライズはどこでやってる?
Formのコンストラクタじゃなく、Form_Loadでしてみては?
0070デフォルトの名無しさん
2009/02/11(水) 13:26:06これじゃだめなん?
private void Form1_Load(object sender, EventArgs e)
{
this.radioButton1.Checked = Properties.Settings.Default.radio;
this.radioButton2.Checked = !Properties.Settings.Default.radio;
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
Properties.Settings.Default.radio = this.radioButton1.Checked;
Properties.Settings.Default.Save();
}
0071デフォルトの名無しさん
2009/02/11(水) 13:58:35あるよ。
Effective C# http://my.safaribooksonline.com/0321245660
More Effective C# http://my.safaribooksonline.com/9780321580481
C# Primer Plus http://my.safaribooksonline.com/0672321521
More...は今読んでる。
Safari大量にC#本あるから、読む本は尽きないよ。
(ただし日本語訳はない)
0072デフォルトの名無しさん
2009/02/11(水) 15:20:30Win32APIを定義したのは見つかったのに、、、
不便でしょうがない
0073デフォルトの名無しさん
2009/02/11(水) 15:31:51C#は別になくてもどうとでもなるからなあ
0074デフォルトの名無しさん
2009/02/11(水) 18:26:46thx
和書を見限る線引きが出来た。
やっぱ本はあった方が良いよ。他人と話すときに妥協点としてお互い満足できる。
好きでやってて動けば良いじゃ、可哀想。
問題は俺が、洋書は厨二病時代にFIRST BLOOD1冊読んだだけということなのだがなw
0075デフォルトの名無しさん
2009/02/11(水) 19:47:04邦題のタイトルのせいでスルーされがちだけど。
0076デフォルトの名無しさん
2009/02/11(水) 19:58:46http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Microsoft-NET-Framework-%E7%AC%AC2%E7%89%88-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E5%85%AC%E5%BC%8F%E8%A7%A3%E8%AA%AC%E6%9B%B8/dp/4891005238/
ref=sr_1_1?ie=UTF8&s=books&qid=1234349867&sr=1-1
これ?
0077デフォルトの名無しさん
2009/02/11(水) 20:02:54http://www.amazon.com/CLR-via-Second-Pro-Developer/dp/0735621632
これに対応する物だろうけど、MS日本法人はもうちょっと考えたほうが
いいよな。Amazon自体のデザインは日米共通だが、笑っちゃうくらい
印象が違う。
0078デフォルトの名無しさん
2009/02/11(水) 20:05:51どれ?w
0079デフォルトの名無しさん
2009/02/11(水) 20:07:44それ
Amazonのリンク張る時は、この短いやつで十分
http://www.amazon.co.jp/dp/4891005238/
>>75
C#使いなら手元に置いて、しっかり読んでおきたい本だね。
0080デフォルトの名無しさん
2009/02/11(水) 20:13:21第2版なら持ってる。
そんなにバリバリプログラミングするぞって本とは思えないな。
要らない事書いて恥じ書く前の、転ばぬ先の杖ってヤツ?
…改めて見てみると、かなり付箋や自分のメモ書きが入ってたんだがw
0081デフォルトの名無しさん
2009/02/11(水) 20:17:39GJ
ん〜買おうかな
迷うぜ
0082デフォルトの名無しさん
2009/02/11(水) 20:20:11日本は所詮プログラミング後進国ということか・・・
0083デフォルトの名無しさん
2009/02/11(水) 20:30:55古いからジェネリックとか無いけど、
多分ジェネリックを含む新しい本が今後出ても、
その本にはこれと同じ内容の章を割くことになる。
(逆にその本がILコードの都合にまで言及してくれるかは解らん)
0084デフォルトの名無しさん
2009/02/11(水) 20:32:470085デフォルトの名無しさん
2009/02/11(水) 20:36:48古いから載ってなかった物がなんかあったような気がするが、覚えとらん。
言い訳にならんが、一昨年の2月に読んでたんで。
0086デフォルトの名無しさん
2009/02/11(水) 20:45:27うん。原書の第2版は2006年に出たらしいから、.
NET Framework 2.0 までの記述になっているので、それ以降のことは載ってない。
でもジェネリックは2.0では既に導入されているから載ってるよ。
はやく3版出ないかな
0087デフォルトの名無しさん
2009/02/11(水) 20:57:190088デフォルトの名無しさん
2009/02/11(水) 22:52:36それ日本語版ある?
CLR via C#は買いたいな
0089デフォルトの名無しさん
2009/02/11(水) 22:58:14.netそのものがどうなるか不安だし、言語としてもVBやC++/CLIと比較したらC#はマイナーだし、
なんか漠然とした不安を感じてしまう
だから、いつまでもC#の高い本が買えない 悪い循環になってるorz
0090デフォルトの名無しさん
2009/02/11(水) 23:02:220091デフォルトの名無しさん
2009/02/11(水) 23:05:48って感じだな。俺の周りでいうと。
0092デフォルトの名無しさん
2009/02/11(水) 23:06:30自分の住所の英語表記に自信がない(w)のと、送料が不明確なんでずっと買うの
躊躇してるんだよなあ。
実際米のamazon.comで買ってる人いたら送料どのぐらいか教えてくれない?
0093デフォルトの名無しさん
2009/02/11(水) 23:11:48ユーザ数はVB>C++>C#だし、消えるとしたらC#が真っ先に消えるんじゃないか?
0094デフォルトの名無しさん
2009/02/11(水) 23:12:58というか何年前から来た人ですか
0095デフォルトの名無しさん
2009/02/11(水) 23:15:16無くならないかもしれないが死に体であることには変わりがないな
少なくとも俺の周りでは
0096デフォルトの名無しさん
2009/02/11(水) 23:15:34そう思うなら、VBでもC++/CLIでも使えばいいじゃん。
0097デフォルトの名無しさん
2009/02/11(水) 23:17:50それだけは断言できる
0098デフォルトの名無しさん
2009/02/11(水) 23:20:58なんで?
0099デフォルトの名無しさん
2009/02/11(水) 23:23:00情報も少ないしね。
0100デフォルトの名無しさん
2009/02/11(水) 23:25:100101デフォルトの名無しさん
2009/02/11(水) 23:27:300102デフォルトの名無しさん
2009/02/11(水) 23:32:04だから間違ってもC++/CLIは主役にならない
0103デフォルトの名無しさん
2009/02/11(水) 23:34:51まさかVB6ってわけでもないだろうから、.netでVBで開発してるのかな?
0104デフォルトの名無しさん
2009/02/11(水) 23:35:12VC++と旧VBの間をカバーしてたDelphiやC++Builderといったあたりが弾き出された感じだな。
0105デフォルトの名無しさん
2009/02/11(水) 23:37:16一人で仕事して、言語の移り変わりを心配してる人がそんなに沢山いるのかな?
極個人的に、数年前に関数型言語への乗り換えに失敗したので、
Boostのlambda系をやろうと思ったら、
C#ってやつで似たような事をやってた。 現在に至る。
一万円で1日遊べればいいので、本代はペイできたと思う。
0106デフォルトの名無しさん
2009/02/11(水) 23:37:50ならC++を学んでC++でFrameworkを使うという選択肢は重要な選択肢
0107デフォルトの名無しさん
2009/02/11(水) 23:39:49VB6 まで、MS のファーストランゲージは VB だったけど、今は C# に変わったよ。
0108デフォルトの名無しさん
2009/02/11(水) 23:42:12だから奴らは、継承を見ると避難して、switchを沢山使うんだな!
0109デフォルトの名無しさん
2009/02/11(水) 23:43:50今もVBがメインストリームで、C#はマイナーだろ
0110デフォルトの名無しさん
2009/02/11(水) 23:46:13まぁそういう人らすら大抵既存資産流用とか以外で C++/CLI を
使いたがらないわけで押して知るべしっていうか
0111デフォルトの名無しさん
2009/02/11(水) 23:47:52使いこなすのに10の労力が必要だとして、
クラスライブラリの理解5、IDEの操作3、言語2くらいだからね。
どうでもいいよ。
0112デフォルトの名無しさん
2009/02/11(水) 23:51:021時間触れば使えるぞ
0113デフォルトの名無しさん
2009/02/11(水) 23:52:440114デフォルトの名無しさん
2009/02/12(木) 00:03:57構文とキーワード以外で。Variant型ってまだあるんだっけ?
0115デフォルトの名無しさん
2009/02/12(木) 00:05:17アレはガゼってこと?
C++: .NET Framework プログラミング最良の言語
http://msdn.microsoft.com/ja-jp/library/ms379617.aspx
いままたC++が熱い!「C++/CLI」として大進化したVisual C++ 2005
http://www.atmarkit.co.jp/fdotnet/special/cppcli/cppcli_01.html
C++/CLIはC#を凌駕するかも知れない…… usingステートメント不要のDisposeメソッド呼び出しの衝撃
http://mag.autumn.org/Content.modf?id=20050506023118
本当は凄いC++!? プログラム比較論 C++ vs C#, Java, Visual Basic
http://mag.autumn.org/Content.modf?id=20050504145851
0116デフォルトの名無しさん
2009/02/12(木) 00:08:42無知なので申し訳ないが、簡単な質問なので教えてくれ。
テンプレート有りのライブラリを使った後に、idasm使った事ある?
それとも、あの汚いコードはJITが消化してくれるのか?
0117デフォルトの名無しさん
2009/02/12(木) 00:08:47多くの記事がVS2005つまり.NET2.0リリース直後じゃないかな。
新製品のことは悪くは書かない。つまりそういうこと。
0118デフォルトの名無しさん
2009/02/12(木) 00:12:19いやあの人の記事嫌いじゃないというかむしろ好きだけどw
0119デフォルトの名無しさん
2009/02/12(木) 00:12:22それManaged拡張C++じゃね?
0120デフォルトの名無しさん
2009/02/12(木) 00:12:47VariantはObject型として実装されてる
メンバ呼び出しは全部リフレクションを使った遅延バインディング
>>115
出たばかりのころは騒がれてたね
C++/CLIとC#を両方ともちゃんと使った上でC++/CLIマンセーしてる奴なんて今時いないよ
0121デフォルトの名無しさん
2009/02/12(木) 00:13:45書き方以上の違いがあるのはインターフェイスの扱いと、
あとOption Strict Offができるぐらいかね。
たしかにC#でしかできないことの方が逆よりずっと多いから、その意味では
サブセット的存在かもしれん。
0122デフォルトの名無しさん
2009/02/12(木) 00:14:15クエリ式がC#より充実しているとか、VB6時代の暗黙のインスタンス化復活とかかな。
名前付き引数・デフォルト引数はC# 4.0で入るんだよね。
0123デフォルトの名無しさん
2009/02/12(木) 00:15:270124デフォルトの名無しさん
2009/02/12(木) 00:15:58Managed C++ → C++/CLI は大進化と言える。
Managed C++ はカオスだったなぁ・・。
0125デフォルトの名無しさん
2009/02/12(木) 00:17:540126デフォルトの名無しさん
2009/02/12(木) 00:19:04それこそ、昨日のintとuintの会話と同じ
0127デフォルトの名無しさん
2009/02/12(木) 00:26:03次のバージョンでC#でもVariantみたいなことができるようになるけど,
必要だから使うのと,わかってないのをごまかすために使うのは違う
0128デフォルトの名無しさん
2009/02/12(木) 00:29:26言語仕様そのものもVBユーザごのみに変わっていきそうだな
0129デフォルトの名無しさん
2009/02/12(木) 00:33:060130デフォルトの名無しさん
2009/02/12(木) 00:35:30C# 4.0 に関して、どうして必要か、どういう風に導入するかとい
われたら、ヘジのプレゼン見れば納得すると思うんだけど、
なんか伝聞でへんな風に伝わっていっている気がする・・・
0131デフォルトの名無しさん
2009/02/12(木) 00:38:34C#がVB化するという意味じゃなくて、造詣に深くなくても使えてしまうから、
結果的にVB化するということだよ
VBみたいな言語の仕様での曖昧化を許すということでなく、
結果的に機能について曖昧なままユーザが使用し続けるということさ。
でも本質的には言語のVB化には変わりがないと思うよ
0132デフォルトの名無しさん
2009/02/12(木) 00:39:31COM Interopの強化も合わせて,C#4.0になれば
今までVBのほうがやりやすいと言われていたようなことが無くなって
完全にVBと縁を切れるよ
0133デフォルトの名無しさん
2009/02/12(木) 00:45:10そうなんだ。
ついでにVBのWithEventsとメソッド内のフィールド(Staticで宣言された
ローカル変数)も欲しい。
0134デフォルトの名無しさん
2009/02/12(木) 00:54:240135デフォルトの名無しさん
2009/02/12(木) 13:59:21Javaの場合はget/setメソッドでメンバー変数の公開をしていましたが、
C#ではプロパティー機能が存在していますのでこちらを使用しております。
プロパティーを使用していますが使い方としてはget/setメソッドと同様の
使い方しかしてないので、なぜこの仕様が実装されたのか理解できていません。
もしよろしければ理由などについて解説していただけませんでしょうか。
面倒でしたら参考URLをいただければそちらで勉強したいと思います。
0136デフォルトの名無しさん
2009/02/12(木) 14:06:20参考URL
http://blog.inomata.lolipop.jp/?eid=192442
0137デフォルトの名無しさん
2009/02/12(木) 14:46:56http://www.atmarkit.co.jp/fdotnet/special/java2cs/java2cs_01.html
「あたかも公開しているかのように振舞う使い方」ができるからでは?
0138デフォルトの名無しさん
2009/02/12(木) 15:39:050139デフォルトの名無しさん
2009/02/12(木) 16:01:24>>137
・呼び出しコーディング非効率の改善
・リフレクションを使うにあたっての非効率の改善
この2点を解消しているってことなのでしょうか?
「あたかも公開しているかのように振舞う使い方」は、
呼び出しコーディング非効率の改善と捕らえてよいのかな・・・。
0140デフォルトの名無しさん
2009/02/12(木) 16:09:17メソッドとも区別されている。概念として言語レベルでサポートされている。それが
利点の全て。高級言語なのだから。
get_foo, set_fooだと、あるパラメタを取得、設定するメソッドである事をプログラマが
名前で示す単なる慣習に過ぎないけれど、C#ではプロパティという概念によって取得、
設定という行為を特別扱いしている。つまり、get, setメソッドという慣習の事をJAVA言語
は``知らない''けれど、JAVAプログラマは``知って''いた。つまりJAVAプログラマも無意識
にプロパティという概念を持っていたわけ。しかしその概念をJAVAは``知らなかった''。
一方でプロパティという概念をC#は``知っている''。たとえば、あるクラスが持っている
プロパティの一覧を取得するなんて事もリフレクションによって可能。プログラマが扱って
いる概念を言語がサポートしているのは、できる事が増えるわけじゃないけど、高級言語では
素直に喜ぶべき事。それだけ構造性が増すのだから。
まとめると、JAVAでも同じ事を``プログラマが''やっていたんだから、``言語が''同じ事を
やってくれるのを素直に喜べば良い。新しい事ができるわけではないから、使い方はJAVA
と同様で全然良い。ぶっちゃけ、get_foo, set_booとタイプミスしなくて済む機能くらいの
認識でも良い。
0141デフォルトの名無しさん
2009/02/12(木) 16:12:24ただし、C#というか.NETではむしろ逆にプロパティの設定に伴う副作用を積極的に活用する傾向
がある。時々UI関係で面白い事例に出くわす。たとえば、フォームのClientSizeを設定すると
フォームのサイズがClientSizeに合わせて調節されるので、一度、フォームのサイズがおかしく
なるバグを修正するためにthis.ClientSize=this.ClientSizeという字面上は超怪しいコードを書いた
事がある。(とあるツールのアドイン開発で、ロード側の問題なので対症療法するしかなかった)
でも、get, setの副作用は標準ライブラリ以外では濫用すべきではないと思う。そいういう意味
では、JAVAのget_foo, set_fooと本当に同じで良い。自動プロパティなんてのも実装されたし
活用してみたらどうだろう?
0143デフォルトの名無しさん
2009/02/12(木) 19:56:47以下は プログラミング.NET Framework (Jeffrey Richter著, Microsoft Press出版) から
あくまで参考程度に、こういう見解もあるということで。
9.1.1 プロパティを賢く設計する
個人的には、筆者はプロパティが好きではありません。Microsoft.NET Framework
やプログラミング言語でのサポートがなければよかったと思っています。理由は、
プロパティはメソッドであるのにフィールドのように見えるからです。この問題は
大きな混乱を招いてきています。プログラマがフィールドにアクセスしているコードを
見て仮定してしまうことが、プロパティにおいては誤っていることがあります。例えば、
次のようなことです。
・プロパティは読み取り専用または書き込み専用にできますが、
フィールドは常に読み書きできます。プロパティを定義するときはgetとset
のアクセサメソッドを両方提供するのが最善策です。
・プロパティのメソッドは例外をスローすることがあります。
フィールドは例外をスローしません。
・プロパティはメソッドのoutやrefの引数には渡せません。フィールドは渡せます。
・プロパティのメソッドは実行に長い時間がかかることがありますが、フィールドへの
アクセスはいつもすぐに実行が完了します。プロパティを利用する一般的な理由は、
スレッドの同期を取ることです。これはスレッドを永遠に止めてしまうかもしれない
ことを意味します。したがって、スレッドの同期が必要な時にプロパティを使うべきでは
ありません。このような状況ではメソッドを利用するほうが好ましいでしょう。また、
クラスがリモートからアクセスできる(たとえばクラスがSystem.MarshalByRefObjectから
派生している)場合、プロパティメソッドの呼び出しはとても遅くなることがあります。
したがって、プロパティよりメソッドの方が好ましいでしょう。筆者の私見ですが、
MarshalByRefObjectから派生しているクラスではプロパティは使うべきではありません。
(続く)
0144デフォルトの名無しさん
2009/02/12(木) 19:57:31・続けて繰り返し呼び出された場合、プロパティは毎回異なる値を返す可能性がありますが、
フィールドは常に同じ値を返します。System.DateTimeクラスにはNowという読み取り専用の
クラスがあります。このプロパティは現在の日付と時間を返すため、呼び出されるたびに
異なる値を返します。この実装は誤りで、MicrosoftでもNowをプロパティではなくメソッドに
直せるものなら直したいと考えています。
・プロパティメソッドは副作用を持つ場合がありますが、フィールドへのアクセスには
そのようなことはありません。言い換えると、型のユーザーがさまざまなプロパティに
値を任意の順序で設定できて、型の動作に違いがでないようにすべきだということです。
・プロパティメソッドは追加のメモリを必要とするか、オブジェクトの状態の一部では
ない何かへの参照を返して、そのオブジェクトを操作しても元のオブジェクトには
何の影響もない場合があります。フィールドは常にオブジェクトの状態の一部であることが
保証されているオブジェクトへの参照を返します。コピーを返すようなプロパティを利用すると
開発者は混乱します。また、このような仕様がドキュメント化されていないこともあります。
プロパティは使われすぎているというのが筆者の懸念です。プロパティとフィールドの違いを
一覧すれば、プロパティを定義する方が使いやすく、かつ開発者の混乱を招かないパターンは
非常に少ないことに気づくでしょう。プロパティによって得られるのは、少々単純化された構文
だけです。パフォーマンスの向上もない上に、コードは読みづらくなります。もし筆者が、.NET
Frameworkとコンパイラの設計に関わっていたら、プロパティを提供することはなかったでしょう。
代わりに、開発者にGetXxxやSetXxxというメソッドを必要に応じて定義させるようにしていたこと
でしょう。コンパイラが何か特殊な、単純化された構文でこれらのメソッドを呼び出せるように
したいなら、そうすればよかったのです。ですが、フィールドアクセスとは異なる構文を使って
欲しいと思います。開発者が何をしているのか(つまりメソッドを呼び出しているということを)
しっかり認識できる構文ということです。
0145デフォルトの名無しさん
2009/02/12(木) 19:58:19T example(T a,T b){
return a * b;
}
}
operator*が使える型を取るときwhereにはなんと書けばいいのでしょう?
0146デフォルトの名無しさん
2009/02/12(木) 20:00:13今のところできません
0147145
2009/02/12(木) 20:08:290148デフォルトの名無しさん
2009/02/12(木) 20:41:14C#4.0でも解決されないみたいだね。
0149デフォルトの名無しさん
2009/02/12(木) 20:49:240150デフォルトの名無しさん
2009/02/12(木) 21:14:47つまりWPFのSetValue(オブジェクト、型.依存プロパティ)はグッドという事か。
これはこれで超冗長だけど、まあロジカルではある。しかも添付プロパティなんて
芸当も可。
0151デフォルトの名無しさん
2009/02/12(木) 21:39:27よく知らずに突っ込むけど、そんな議論あるの?
演算子って普通staticじゃないか
0152デフォルトの名無しさん
2009/02/12(木) 22:05:41いずれにせよ、目的は>>145をどうにかしたいということなんだけど。
0153デフォルトの名無しさん
2009/02/12(木) 22:12:27いやだから>>145みたいなケースで型制約を
where T: Imultiplicative
とか書ければ万事オッケー、みたいな。別に演算子の実装をインタフェースの実装でやりたい
わけじゃなくて、演算子の実装を表す型制約があって欲しいという事。だから
where T: multiplicative
って書けて欲しい、という話とも言える。
「C# 四則演算 ジェネリック」でググると、MSDNフォーラムとかわんくま同盟の人たち
とかの議論がわんさか出てきます。
>>149はどういう風にやるの?ExprssionTree詳しくないのでちょっとイメージできないんだけど。
0154デフォルトの名無しさん
2009/02/12(木) 22:34:10ここの過去スレでも出てきてるね
http://www.23ch.info/test/read.cgi/tech/1194956418/295-312
他にもあったような
0155デフォルトの名無しさん
2009/02/12(木) 22:38:44ここの過去スレでもやってた
http://www.23ch.info/test/read.cgi/tech/1194956418/295-312
0156デフォルトの名無しさん
2009/02/12(木) 22:40:03>>154-155は書き込み失敗したかと思った
0157デフォルトの名無しさん
2009/02/12(木) 22:53:25T example(T a, T b)
{
0158デフォルトの名無しさん
2009/02/12(木) 22:53:580159デフォルトの名無しさん
2009/02/12(木) 23:16:17普通に2chのURLはってくれお
http://pc11.2ch.net/test/read.cgi/tech/1194956418/295-312
0160デフォルトの名無しさん
2009/02/12(木) 23:40:37次からそうする
0161デフォルトの名無しさん
2009/02/13(金) 00:17:39プロパティ否定するのなんて、初期のJava信者だけだろ。
そのJavaにもプロパティ実装されて、否定してた連中涙目。
0162デフォルトの名無しさん
2009/02/13(金) 00:22:420163デフォルトの名無しさん
2009/02/13(金) 00:34:30string mText;
public bool IsEmpty
{ get { return this.GetIsEmpty(this.mText); } }
protected bool GetIsEmpty(string text)
{ return text == ""; }
みたいにGetIsEmptyを基底クラスにまとめて置けば、
継承先ではメンバ変数を渡すプロパティを書けばいいだけで楽。
0164デフォルトの名無しさん
2009/02/13(金) 01:08:42Expression Tree使うとこういうのが簡単に作れる
static class GenericCalculator<T> {
private static readonly Func<T, T, T> add;
static GenericCalculator() {
var left = Expression.Parameter(typeof(T), "left");
var right = Expression.Parameter(typeof(T), "left");
add = Expression.Lambda<Func<T, T, T>>(Expression.Add(left, right)).Compile();
}
public static T Add(T left, T right) { return add(left, right); }
//他の演算子も同様
}
0165デフォルトの名無しさん
2009/02/13(金) 03:22:34>>164
add=(Func<T,T,T>)((l,r)=>(l+r));って書くのと同じじゃん、と一瞬思ったけど、
Compile()は当然実行時評価なのかー!。
型制約が欲しい、というのとは話が違くて、足し算ができないと実行時に例外が投げられるのね。
勉強になった。
それなら、CodeDOMでも良いかな?
この手の議論って型制約の話とは別にダックタイピングができればなあ、って話にもなりやすい
けれど、それを無理やりやる方法があるって事だね。
0166デフォルトの名無しさん
2009/02/13(金) 04:34:58class Multiplier<T>
{
public T Mult(T l, T r)
{
string nameOfT = typeof(T).FullName;
string assemblyOfT = typeof(T).Assembly.ManifestModule.FullyQualifiedName;
CompilerResults cr = null;
0167デフォルトの名無しさん
2009/02/13(金) 04:35:44using (CodeDomProvider provider
= new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } })) {
CompilerParameters cp = new CompilerParameters() {
GenerateInMemory = true
};
cp.ReferencedAssemblies.AddRange(new string[] { "System.Core.dll", "mscorlib.dll", assemblyOfT });
string className = "Multiplier_" + nameOfT.Replace('.', '_');
string namespaceName="GenericTest";
string qualifiedClassName = namespaceName + "." + className;
string source = "namespace " +namespaceName+"{ public class " + className + "{public " + nameOfT + " Mult(" + nameOfT + " l, " + nameOfT + @" r){return l*r;}}}";
0168デフォルトの名無しさん
2009/02/13(金) 04:36:29cr = provider.CompileAssemblyFromSource(cp, source);
if (cr.Errors.HasErrors) {
throw new Exception(String.Join(Environment.NewLine, cr.Errors.OfType<CompilerError>().Select(e => e.ToString()).ToArray()));
}
Type typeOfMultiplier = cr.CompiledAssembly.GetType(qualifiedClassName);
Object multiplier = Activator.CreateInstance(typeOfMultiplier);
MethodInfo multiplierMethodMult = typeOfMultiplier.GetMethod("Mult");
return (T)multiplierMethodMult.Invoke(multiplier, new object[] { l, r });
}
}
}
0169デフォルトの名無しさん
2009/02/13(金) 06:08:29http://d.hatena.ne.jp/NyaRuRu/20060802/p1
で見つけたんだけど、ここに
------------------------------
.NET で動的に実行コードを生成する方法はいくつかあり,またその方法は増えつつあります.
* (.NET 1.0 以降)CodeDOM やコンパイラによる動的コンパイル
* (.NET 2.0 以降)Lightweight Code Generation (LCG)
* (.NET 3.5 以降?)Expression Tree による動的コンパイル
--------------------------------
とあるので、俺のCodeDOMの方法は一応.NET1.0でも使えるという利点はあるみたい。
あと、このサイトではExpression Treeはコードのセマンティクスをデータ構造として保持
するために用いる、という哲学が示されていて、著者的には直ちにExpression Treeをコンパイル
するような使い方はしっくりしないらしい。まあでも>>166-168を書くくらいなら>>164を
書くわな。
このサイトには>>164と同じ方針で作った演算子オーバロード付きの四則演算のジェネリック型
とそれを用いた複素数のジェネリック型のサンプルもある。この手の話って頻繁に繰り返されて
いるように見えるのでまとまった解決法はないと思っていたけれど、これはそのまま直ちに
利用可能だね。
夜中に目が覚めてしまったので色々書いてしまった。連投&長文すまない。
0170デフォルトの名無しさん
2009/02/13(金) 06:16:59現実的ではないでしょう
0171デフォルトの名無しさん
2009/02/13(金) 07:58:440172デフォルトの名無しさん
2009/02/13(金) 08:26:23パフォーマンス的に?
C++のテンプレートみたいな「超高機能なマクロ」にしないと決めてる以上、
それはしょうがない。
>>171
しかも、他のMVPが「いまさら」盛り上がってる中、
NyaRuRu さんだけは「そういえば昔書いたけど」だし。
0173デフォルトの名無しさん
2009/02/13(金) 08:42:40基本的な値型だけを対象にしたければ、素直に大量にオーバーロード書けば良いのでは?
まあその場合も型制約でOR論理を使いたい、ってな議論はできるけれど、興味深くはない。
0174デフォルトの名無しさん
2009/02/13(金) 08:50:03ソース冒頭に
using ValueType = System.Double;
とか書いておいて実装して、
このソースをコピって冒頭の1行書き換えるだけで可能だしね。
美しくはないけども、何とかならないレベルじゃない。
0175デフォルトの名無しさん
2009/02/13(金) 08:50:090176デフォルトの名無しさん
2009/02/13(金) 08:51:09あとは BigInteger とか、実装してる人がいるなら Rational とかかな。
0177デフォルトの名無しさん
2009/02/13(金) 09:09:42C#4.0ならdynamic使えばそのままleft + rightと書けるな
0178デフォルトの名無しさん
2009/02/13(金) 10:47:41ガキに「さん」付けか・・・
0179デフォルトの名無しさん
2009/02/13(金) 11:12:29見下した態度をとるのはみっともないぞ
0180デフォルトの名無しさん
2009/02/13(金) 12:58:200181デフォルトの名無しさん
2009/02/13(金) 13:24:550182デフォルトの名無しさん
2009/02/13(金) 14:26:160183デフォルトの名無しさん
2009/02/13(金) 14:34:24いろんな言語使っている間に言語の濃い部分を積極的に学ばなくなってしまったな。
これは退化してるのかね・・・
0184デフォルトの名無しさん
2009/02/13(金) 14:38:490185デフォルトの名無しさん
2009/02/13(金) 15:26:430186デフォルトの名無しさん
2009/02/13(金) 15:47:23できるだけ楽に扱えるものを使って生産的なことをする人と楽に扱えるようにするために深い部分まで追及する人とどっちが優れてるとかないだろう
前者のが需要あるし
0187デフォルトの名無しさん
2009/02/13(金) 16:42:20すでにアセンブラは68系と86系をあわせて6年くらいはやってましたよ。
0188デフォルトの名無しさん
2009/02/13(金) 16:46:240189デフォルトの名無しさん
2009/02/13(金) 16:49:26俺なんて、C# を15年以上やってるけど、まだまだ力不足を感じてる・・・
0190デフォルトの名無しさん
2009/02/13(金) 16:52:110191デフォルトの名無しさん
2009/02/13(金) 17:38:480192デフォルトの名無しさん
2009/02/13(金) 17:41:400193デフォルトの名無しさん
2009/02/13(金) 20:59:470194デフォルトの名無しさん
2009/02/13(金) 21:35:55ジェネリクスと同時に使うなら、dynamic よりも式木使い方がお勧め。
>>178
院生だろ。
あと、歳の上下で態度変えてたら見ず知らずの人と付き合いづらいよ。
0195デフォルトの名無しさん
2009/02/13(金) 22:23:410196デフォルトの名無しさん
2009/02/13(金) 22:34:35Genericコレクション型のインスタンスをリモート処理時に参照渡しにするにはどうすれば良いでしょうか。
例えば、
class OtherSample : MarshalByRefObject {
List<int> intList;
}
というコードでは、OtherSampleは参照渡しですがintListは自動的にシリアル化され値渡しマーシャリングされてしまいます。
なので、アクセッサを付けてintListを取得しても、リモート化されたインスタンスの値を変更できません。
適宜 intList に対するメソッドをOtherSampleに追加するしかないのでしょうか。
0197デフォルトの名無しさん
2009/02/13(金) 23:55:430198デフォルトの名無しさん
2009/02/14(土) 00:38:480199デフォルトの名無しさん
2009/02/14(土) 00:46:04List<int> intList;
public void AddInt( int n ) {
intList.Add( n );
}
}
で AddInt を使えばプロキシを介して参照渡しの OtherSample のメソッドが実行される。
そうすっと、OtherSampleの参照 の intList に値が追加される。
0200デフォルトの名無しさん
2009/02/14(土) 10:13:33FormLoad時に動的にLabelを3000個ぐらい生成してるのですが
起動に1〜2分ぐらいかかってしまいます。
何か良い方法はないでしょうか?
0201デフォルトの名無しさん
2009/02/14(土) 10:17:090202デフォルトの名無しさん
2009/02/14(土) 10:52:05その場合はフォームとか使えないけどね。
0203デフォルトの名無しさん
2009/02/14(土) 11:01:130204デフォルトの名無しさん
2009/02/14(土) 12:37:570205デフォルトの名無しさん
2009/02/14(土) 12:50:24Windows.Formsでコントロールを大量に作るとどうやってもそうなるよ。
そういう使い方ならWPFで同じことやれば結構スムーズに動きそうな気がする。
0206200
2009/02/14(土) 12:59:12皆さん、どうもです。
VC++(MFC)で過去に作ったときは
CStatic の派生クラスを何個も作ってやってたので
Labelの派生クラスで何とかなるかと思ったら起動が遅くて・・・
ありがとうございました
0207デフォルトの名無しさん
2009/02/14(土) 13:03:09一文字一個なのか
0208デフォルトの名無しさん
2009/02/14(土) 13:14:080209デフォルトの名無しさん
2009/02/14(土) 13:23:13画面に表示される分だけプールから取得して再利用するようにすれば、
new()のコストかからないし、3000個も作らなくてすむんじゃない?
WPFでも詳しくはしらないけれど、スクロール可能な場合に画面に表示される部分だけ
子コントロールを生成するような仕組みがあったはず。ListViewとかだっけ?
0210デフォルトの名無しさん
2009/02/14(土) 13:28:060211デフォルトの名無しさん
2009/02/14(土) 13:41:02そんな使い方してたらすぐ足りなく
0212デフォルトの名無しさん
2009/02/14(土) 13:43:02デスクトップヒープの関係もあるし、3000は多すぎだろ。
0213デフォルトの名無しさん
2009/02/14(土) 13:53:05かかるわなぁ
0214デフォルトの名無しさん
2009/02/14(土) 13:53:500215200
2009/02/14(土) 14:29:58一画面だけで300銘柄(1銘柄辺り10要素)あるので
3000個必要なんですよね
画面サイズ的にはUXGAで余裕ありです。
データ更新時にデータを適当な形に処理して
Redrawする感じでVC++ではやってました。
0216デフォルトの名無しさん
2009/02/14(土) 14:51:40これをReflector使ってソース出して動かせるようにしたいんですが
できる人いませんか?
0217デフォルトの名無しさん
2009/02/14(土) 14:53:430218デフォルトの名無しさん
2009/02/14(土) 14:55:22別に難読化されてるわけでもなく、逆アセできたけど?
何が問題なの?
0219デフォルトの名無しさん
2009/02/14(土) 14:58:07エラーで出てしまうんです
0220デフォルトの名無しさん
2009/02/14(土) 15:00:000221デフォルトの名無しさん
2009/02/14(土) 15:00:130222デフォルトの名無しさん
2009/02/14(土) 15:00:23ゴミ君
0223デフォルトの名無しさん
2009/02/14(土) 15:00:56それ使えばいいんじゃね?
0224デフォルトの名無しさん
2009/02/14(土) 15:01:180225デフォルトの名無しさん
2009/02/14(土) 15:02:550226デフォルトの名無しさん
2009/02/14(土) 15:03:24kwsk!
0227デフォルトの名無しさん
2009/02/14(土) 15:06:150228デフォルトの名無しさん
2009/02/14(土) 15:07:37それ質問する態度じゃねえじゃん
エロマンガの作者名じゃねえんだから、もうちょっと考えろよ
0229赤西仁
2009/02/14(土) 15:32:19アークザラッド�Uというタイトルのゲームの、ゲーム画像(歩行画像など)を抽出したいのですが、
かれこれ1年ほど経ちますが、なかなかうまくいきません。
*もちろん抽出した画像は個人範囲内で利用するつもりです。
◆試してダメだったこと
ネット上からダウンロードできる、ありとあらゆる抽出系ツールを試した。
(ちなみに他のゲームはほとんど抽出可能)
◆教わったこと
・アークザラッド�Uは独自の画像形式を使っているから抽出できない。
・PS上で表示されてるということは絶対に摘出はできるはず。
◆抽出は不可能ではないということを知ったとき
2ちゃんねるで質問したところ、
ある方が実際にキャラクターの歩行画像を抽出して
私が立てたスレにアップしてくださいました。
スクリーンショットじゃ嫌なんです。どうか皆さん、お力をお貸しください。
0230デフォルトの名無しさん
2009/02/14(土) 15:35:43そうでなきゃ、スレ違い、ってことで。
0231デフォルトの名無しさん
2009/02/14(土) 17:18:47ずっと探してるけど見つかりません
お願いします・・・
0232デフォルトの名無しさん
2009/02/14(土) 17:21:33Reflector のプラグインなんてあまり数ないのに探して見つからないとかありえない。
0233デフォルトの名無しさん
2009/02/14(土) 17:22:50http://www.codeplex.com/FileGenReflector
0234デフォルトの名無しさん
2009/02/14(土) 17:34:22童貞なんでう
0235デフォルトの名無しさん
2009/02/14(土) 17:51:580236デフォルトの名無しさん
2009/02/14(土) 19:36:20DataGridとかListViewを使った方がいいんじゃない?
0237デフォルトの名無しさん
2009/02/14(土) 19:44:37はやくこれの使い方教えろよグズども
0238デフォルトの名無しさん
2009/02/14(土) 19:59:520239デフォルトの名無しさん
2009/02/14(土) 20:06:340240デフォルトの名無しさん
2009/02/14(土) 20:24:540241デフォルトの名無しさん
2009/02/14(土) 20:26:520242デフォルトの名無しさん
2009/02/14(土) 20:30:130243デフォルトの名無しさん
2009/02/14(土) 20:47:510244デフォルトの名無しさん
2009/02/14(土) 22:14:580245デフォルトの名無しさん
2009/02/14(土) 22:27:33/-、r-ヽ
|K>|K7|
, へ 人ー^ー人 , へ
/ リノノ||  ̄ 7/巛 _ \
,.-― '" ゝー、) || .// (/ ` ` ー-、
/ /_ || // _ \ )
(__/ ̄ | ',Y/ /  ̄`ー '
__ \ || / __
/XXXX<>x,..、_ l ハ | _,... rxXXXXXA
|XXXX|XXX|::::l` ´ Y ! '´ l::::|XXX|XXXX|
|XXXX|XXX|::::| | | |::::|XXX|XXXX|
XXXX/\Xソ::ノ ゝ-く ゝ::ゝ/ lXXXX|
0246デフォルトの名無しさん
2009/02/14(土) 23:19:100247デフォルトの名無しさん
2009/02/15(日) 00:31:01[View]-[Add-Ins]
0248デフォルトの名無しさん
2009/02/15(日) 02:29:54うpまだ〜?
0249デフォルトの名無しさん
2009/02/15(日) 04:04:57_/ ∠≠ニ二ニ≧=<´ ヘ. ', ヘ\ヽ. /
_ -‐ ´/ , -‐´、_, '⌒`^ 、 \::\ } l ヽヘ ヽ} / _|_ \
 ̄ フ´, / 丶\::V| | Vl ,' |____
. //./ `Vヽl | ヽ ' . | /| ヽ
/ ,イ/ �Y/, ヽ.\ |. l (_ノ _ノ
|/ / | ∨ヘ. ト、 \_ |. |
. / / / l: / l ∨i 、 |  ̄ ! l lヽ│/ /
l│ / イ ,イ. l ト、ヽ / | :l :| | l | ヽ_ノ !ー┼‐ |‐┬
| | l_メ、」_,;./l L l V ∧ / :|/ ハ. ト、 | |./│ヽ l |
| ト. |.____ ヽ l´ヽ{ _⊥イ イ / / / l/⌒ヽ .| ー┼─ └── l |
| | ヽ | 、i┘::::i \ | r┬┬‐┬ァ V ,∧. ,' ´ | ー┼−
レ ヽ! ゝ- ' \l i,.┘:::::iノ / ,/〉│ :| { | _⊥_ l |
. 7/l/l/ 、 `'ー‐ ' ∠≠r'ノ:jノ :| | | (__丿 ヽ レ |
λ `i`ァー-- 、 /l/l/l ∧‐'.:|:::| ハ ', | l
`、 レ' ', ,/| ::| :|:::| ./ ヽ_> _| __|_ _ノ
` = 、 '、 ノ ,.イ∧'|:l.:/l:::|´ \ ._|
`>-r =ニi´、.,_`::: |:| { |:::l | .(_|
_,.イ´ヽ.7 / /:\;八:V:ノ | ノ
/7:::::! ○O'´ /::::::::/ヽ.
0250デフォルトの名無しさん
2009/02/15(日) 11:57:16なぜかできないので、替わりにgenerateしてもらえませんか
0251デフォルトの名無しさん
2009/02/15(日) 13:48:11それやってexe選んでも何も起こらないんですけど
0252デフォルトの名無しさん
2009/02/15(日) 13:52:240253デフォルトの名無しさん
2009/02/15(日) 13:59:540254デフォルトの名無しさん
2009/02/15(日) 14:00:57( ゚ω゚ ) お断りします
/ \
((⊂ ) ノ\つ))
(_⌒ヽ
ヽ ヘ }
ε≡Ξ ノノ `J
0255デフォルトの名無しさん
2009/02/15(日) 14:05:10AlarmTimer\FormMain.cs
AlarmTimer\FormOption.cs
AlarmTimer\Properties\Settings.cs
AlarmTimer\Properties\Resources.cs
AlarmTimer.Properties.Resources.resources
AlarmTimer.FormMain.resources
AlarmTimer.FormOption.resources
AlarmTimer.AlarmTimer16Mono.ico
AlarmTimer.AlarmTimer16.ico
AlarmTimer.csproj
0 error(s).
Done.
こう出たんですがどこにエキスポートされてるんですか
0256デフォルトの名無しさん
2009/02/15(日) 14:06:57->VS2008 へアップグレード後
・ライブラリは nunit が必要らしいので、逆アセせずに参照設定を変更して利用
簡単にできるじゃん・・・
0257200
2009/02/15(日) 14:08:28株価が左寄せじゃ見にくい・・・
0258デフォルトの名無しさん
2009/02/15(日) 14:12:01StringAlignment
0259デフォルトの名無しさん
2009/02/15(日) 14:16:190260デフォルトの名無しさん
2009/02/15(日) 14:59:57エクスポートできましたが1エラー2警告出てデバック開始してもだめでした・・・
0261デフォルトの名無しさん
2009/02/15(日) 15:01:11じゃあ、エラーを修正しろよ。つーか、初心者スレ行けハゲ
0262200
2009/02/15(日) 22:21:05本当にありがとう、そこがよくわからなくて困ってました
おかげで外観は完成しました。 ttp://www.uploda.org/uporg2020293.png
0263デフォルトの名無しさん
2009/02/15(日) 22:23:370264デフォルトの名無しさん
2009/02/15(日) 22:37:300265デフォルトの名無しさん
2009/02/15(日) 22:43:43DataGridView はなんで使わないんだ?
0266デフォルトの名無しさん
2009/02/15(日) 22:48:440267デフォルトの名無しさん
2009/02/15(日) 23:36:520268デフォルトの名無しさん
2009/02/16(月) 00:51:390269262
2009/02/16(月) 01:46:53前の方にアドバイス頂いたので全部
DrawStringとFillRectangleとDrawLinesで書きました。
他のはややこしそうだったので・・・
まあ、こっちは意図通りに動いてくれれば
最新技術だろうと枯れた技術だろうと関係ないので
これで満足しています。
>>267
かなり目に・・・ですw
しかし、この色合いがお金を産み出してくれるんで仕方なしです。
0270デフォルトの名無しさん
2009/02/16(月) 22:43:08タグ情報はどうやって保存するべきでしょうか?
xml?SQLで?その他?
イメージ的にはiTunesみたいな感じです
0271デフォルトの名無しさん
2009/02/16(月) 22:45:430272デフォルトの名無しさん
2009/02/16(月) 22:56:43エクスポートインポート機能ありな前提で。
0273デフォルトの名無しさん
2009/02/16(月) 22:58:48C#から操作できるロイヤリティフリーな
PDFビューアコントロールでお勧めありませんか?
0274デフォルトの名無しさん
2009/02/16(月) 23:04:28再ウプして欲しい。
0275デフォルトの名無しさん
2009/02/16(月) 23:13:240276デフォルトの名無しさん
2009/02/16(月) 23:14:100277デフォルトの名無しさん
2009/02/16(月) 23:19:51ほれ
http://www.dotup.org/uploda/www.dotup.org14172.png
0278デフォルトの名無しさん
2009/02/17(火) 00:52:510279デフォルトの名無しさん
2009/02/17(火) 01:16:550280デフォルトの名無しさん
2009/02/17(火) 01:39:040281デフォルトの名無しさん
2009/02/17(火) 01:43:160282デフォルトの名無しさん
2009/02/17(火) 01:44:010283デフォルトの名無しさん
2009/02/17(火) 02:13:400284デフォルトの名無しさん
2009/02/17(火) 02:13:480285デフォルトの名無しさん
2009/02/17(火) 06:46:120286デフォルトの名無しさん
2009/02/17(火) 09:01:410287デフォルトの名無しさん
2009/02/17(火) 09:04:350288200
2009/02/17(火) 13:44:31金融系は ↑=赤、↓=緑 って決まってるからね・・・
ところで、小数2桁まで表示させたい(2 も 2.00 みたいに)とき
そうすればいいのかな? ToString("0.##") じゃだめみたいね。
0289デフォルトの名無しさん
2009/02/17(火) 13:46:07別に「決まって」はいない
証券会社のツールいろいろ使ってればデフォルトが逆のやつもある
だから色はカスタマイズできるものが多い
0290デフォルトの名無しさん
2009/02/17(火) 13:55:24"F2"
ttp://msdn.microsoft.com/ja-jp/library/dwhawy9k.aspx
0291デフォルトの名無しさん
2009/02/17(火) 14:30:11"0.##"って書いていて、どうして'0'の意味と'#'の意味を知らないのか謎だ。
0292デフォルトの名無しさん
2009/02/17(火) 17:32:390293デフォルトの名無しさん
2009/02/17(火) 17:38:14TCPの非同期通信したいの?
だったらググレばいっぱい出てくるよ
一言でレスできる内容じゃないし。
ESPして余計なこというとゲームで使うなら
非同期するよりポーリングしたほうがスマート。
0294デフォルトの名無しさん
2009/02/17(火) 17:47:06非同期メソッド、非同期デリゲートで検索汁
0295デフォルトの名無しさん
2009/02/17(火) 17:55:04レスありです
>>293さん、聞き方がまずくてすいません、通信ではなくて非同期に処理させたいんです
いちいちスレッドつくるのもめんどいなあと思って、そういやBeginなんたらとかはどうやって実装してるんだろ?聞いちゃえ、と
>>294さん、あなたがエスパーでよかった、ありがとうございます
0296デフォルトの名無しさん
2009/02/17(火) 22:51:10ttp://uproda.2ch-library.com/src/lib106249.png
色盲の人が見ると・・・
ttp://ranobe.com/up/src/up339235.jpg
ttp://ranobe.com/up/src/up339236.jpg
0297デフォルトの名無しさん
2009/02/17(火) 23:01:120298デフォルトの名無しさん
2009/02/17(火) 23:13:33色盲であると告白している小堺一機の
「紅葉が分からない」という言葉によく現れている。
その代わり赤紫と紫の区別はよくつくんだがね。
緑と紫なら色盲の人でもそうでない人でも区別しやすい。
0299デフォルトの名無しさん
2009/02/17(火) 23:14:41しかし色盲の人のことまで考えるかどうかはさすがに作る人の自由かと
0300デフォルトの名無しさん
2009/02/17(火) 23:15:35から、この色合いが要求仕様なんだろ。
これに文句を言っても仕方がないよ
0301デフォルトの名無しさん
2009/02/17(火) 23:16:32オプションで色盲者のための色使いに切り替えられるようにしておくと優しさを感じるが。
0302デフォルトの名無しさん
2009/02/17(火) 23:19:09色盲って黄色人種男性の5%、白人男性の8%、黒人男性の4%もいるんだぜ。
日本人男女40人のクラスの1人くらいは色盲ってくらい結構な割合だ。
黒板に赤いチョークで書かれると見辛いって言ってた人はいなかった?
多分その人は色弱か色盲だよ。
0303デフォルトの名無しさん
2009/02/17(火) 23:19:41StreamReaderはDisposeせずに放置していいの?
0304デフォルトの名無しさん
2009/02/17(火) 23:21:480305デフォルトの名無しさん
2009/02/17(火) 23:25:49で、色盲専用に作り直せっていいたいわけ?
0306デフォルトの名無しさん
2009/02/17(火) 23:26:020307デフォルトの名無しさん
2009/02/17(火) 23:26:41なんで専用なんだ?
0308デフォルトの名無しさん
2009/02/17(火) 23:26:460309デフォルトの名無しさん
2009/02/17(火) 23:28:15言い方が悪かったな 訂正する
色盲がわかりやすい色を表示できるように作り直せっていいたいわけ?
0310デフォルトの名無しさん
2009/02/17(火) 23:30:080311デフォルトの名無しさん
2009/02/17(火) 23:30:26その方が望ましい。
わざわざユーザの幅を狭める利点は無い。
0312デフォルトの名無しさん
2009/02/17(火) 23:31:37StreamReaderをDisposeしたら元のストリームも一緒に閉じられる
0313デフォルトの名無しさん
2009/02/17(火) 23:36:23望ましいが、現実には難しいだろうな。
むしろ、OSのユーザ補助機能のレベルで実装すべき
0314デフォルトの名無しさん
2009/02/17(火) 23:37:02けっこうみんな「みづらい」とは言ってたけどなあw
いつも後ろの席だったからかも知れないけど
0315デフォルトの名無しさん
2009/02/17(火) 23:39:15お前が作ったいままでのソフトは、全部色盲対応なの?
0316デフォルトの名無しさん
2009/02/17(火) 23:41:13でも自分専用なら無理にやる必要もないと思うが。
0317デフォルトの名無しさん
2009/02/17(火) 23:42:350318デフォルトの名無しさん
2009/02/17(火) 23:44:14色が見えていて派手で目が疲れるということと、
色そのものが見えなくて困るということは別個
0319デフォルトの名無しさん
2009/02/17(火) 23:45:130320デフォルトの名無しさん
2009/02/17(火) 23:47:01だからOSの機能として、既存の色を問題がなく表示する機能を設定すべきなんだよ
ソフトによって赤を青に表示したり、緑に表示したりしちゃったら、利用者に影響が出るだろ?
0321デフォルトの名無しさん
2009/02/17(火) 23:49:26だが全部スレ違いだ
0322デフォルトの名無しさん
2009/02/17(火) 23:55:200323デフォルトの名無しさん
2009/02/18(水) 00:16:57>色盲って黄色人種男性の5%
>日本人男女40人のクラスの1人くらいは色盲
ってことは女性に色盲はいないの?
0324デフォルトの名無しさん
2009/02/18(水) 00:19:19男性に比べて非常に稀なだけでいることはいる
0325デフォルトの名無しさん
2009/02/18(水) 00:30:31色盲と色弱がいるからな
完全な色盲だともっと低い
そんなの考えなくていいレベル
もちろんあれば便利だが
0327デフォルトの名無しさん
2009/02/18(水) 00:44:11このリンクのMSDN Library for Visual Studio 2005がダウンロードできなくなってるんだけど、
どこに引っ越したか知ってる人いる?
Windwos2000の再インストール後に見つからなくて困ってるのでよろしくお願いします
0328デフォルトの名無しさん
2009/02/18(水) 00:48:38>>323
色覚異常はX染色体で遺伝する。
だからX染色体を1つしか持たない男性(XY)に多く、2つ持ってる女性(XX)に少ない。
500人に1人ぐらいの割合
0329323
2009/02/18(水) 01:01:01そうなんだ。知らなかった。
┏┳┳┓ ハイ ┏┳┳┓
┏┫┃┃┃ スレ違いは ┃┃┃┣┓
┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃
┃ ┃┃┏━━━┓┃┃ ┃
┃スレ違い ┣┫*・∀・*┣┫. STOP!┃
┗━━━━┛┗┳━┳┛┗━━━━┛
┏┻┓┃
┏━┛ ┣┻┓
┗━━━┫ ┗━┓
┗━━━┛
0330デフォルトの名無しさん
2009/02/18(水) 01:03:580331デフォルトの名無しさん
2009/02/18(水) 01:04:22Visual Studio 2005 は既に販売が終了している製品なので
それに連動して公開停止になったのかも
今は以下が最新版
MSDN Library for Visual Studio 2008 SP1 (2008年12月更新版)
あと、MSDN Subscription に加入すれば過去のバージョンは
一通り入手できるハズ
0332デフォルトの名無しさん
2009/02/18(水) 01:05:39劣性遺伝なの?
0333デフォルトの名無しさん
2009/02/18(水) 01:07:040334デフォルトの名無しさん
2009/02/18(水) 01:08:26普通に考えて、カスタマイズの余地皆無だったら
誰にとっても使いにくくなる可能性はあるだろ。
ユーザ=制作者のみってのでも無い限り
0335デフォルトの名無しさん
2009/02/18(水) 01:17:24>誰にとっても使いにくくなる可能性はあるだろ。
んなこといったら、あらゆるすべての設定値を備えなければならないじゃん。
毎晩24時にbeep音を鳴らして寝ることを促す設定がないと、
それを必要とする人には使いにくいってーことになる。
そもそも万人向けにオプションの設定項目を多くするということは、
設定項目が多すぎて煩雑になるという点において万人向けでなくなる。
0336デフォルトの名無しさん
2009/02/18(水) 01:22:11どうせ分かってて言ってんだろ?
アホか
0337デフォルトの名無しさん
2009/02/18(水) 01:38:180338デフォルトの名無しさん
2009/02/18(水) 02:05:00赤と緑じゃなく赤紫と緑にするだけで解決する問題なのに
なんでそんなに抵抗あるのかね?
0339デフォルトの名無しさん
2009/02/18(水) 02:05:540340デフォルトの名無しさん
2009/02/18(水) 02:35:21それをする必要があるのかっていう問題じゃないの?
0341デフォルトの名無しさん
2009/02/18(水) 02:43:41おそらく、赤紫と緑にしても、センスのなさそうなデザインであることは変わらないだろうから、
変えるのは無意味だと思う。
0342デフォルトの名無しさん
2009/02/18(水) 02:57:510343デフォルトの名無しさん
2009/02/18(水) 03:00:36うひょひょ
0344デフォルトの名無しさん
2009/02/18(水) 03:06:450345デフォルトの名無しさん
2009/02/18(水) 04:33:34このあたりかな
http://support.microsoft.com/kb/814675/en-us
ファイル以外のストリームには言及がないのでなんともいえないけど
少なくともファイルは特別に意識していて、ファイルから生成した
ストリームについてはそれを破棄するとイメージにアクセスできなくなるのが
仕様みたい
0347デフォルトの名無しさん
2009/02/18(水) 07:12:31お前が思っているより色盲の人は遥かに多いから必要だ。
0348デフォルトの名無しさん
2009/02/18(水) 07:18:48単なる証券屋店頭の電光掲示板へのオマージュだろあれは。
俺的には文字の真ん中に切れ目のあるパネルがパタパタ音を立てて
回転するタイプのコントロールが欲しいな。
0349デフォルトの名無しさん
2009/02/18(水) 07:26:44追求するんだ。
0350デフォルトの名無しさん
2009/02/18(水) 07:39:430351デフォルトの名無しさん
2009/02/18(水) 10:58:31俺も欲しい・・・
0352デフォルトの名無しさん
2009/02/18(水) 13:30:06間違えて疑似嫁のデータを送ってしまうわけですね、わかります。
0353デフォルトの名無しさん
2009/02/18(水) 13:33:010354デフォルトの名無しさん
2009/02/18(水) 13:35:43エスパーしてみるけど
デシリアライズされた時点でオブジェクトのインスタンスは生成されてるんじゃないのか?
0355デフォルトの名無しさん
2009/02/18(水) 15:29:45同じようにコンストラクタ通さずインスタンスだけ生成したいんです。
0356デフォルトの名無しさん
2009/02/18(水) 15:36:280357デフォルトの名無しさん
2009/02/18(水) 15:40:43こんなん逃げじゃアカンかな・・・?(;´∀`)
public AAA()
{
初期化();
}
public AAA(bool isIniti)
{
if(isIniti == true)
{
初期化();
}
}
private void 初期化()
{ほげ}
というか、コンストラクタに何も書かずに
コンストラクタみたいな感じの処理が
必要な時にSetInitializeみたいな関数作って呼ぶようにしたらダメなんだろうか…
0358デフォルトの名無しさん
2009/02/18(水) 15:41:460359デフォルトの名無しさん
2009/02/18(水) 16:12:590360デフォルトの名無しさん
2009/02/18(水) 17:05:59なんで個人用ソフトでそんな対策する必要あるの?
0361デフォルトの名無しさん
2009/02/18(水) 18:38:57Microsoft.Samles名前空間以下のモジュールって自作アプリに組み込んで配布してもライセンス違反にならないでしょうか?
0362デフォルトの名無しさん
2009/02/18(水) 18:46:54たまに裏返ったら擬似嫁が出てきて、
あわてるアニメーション後、また裏返って正しい表示に変わるやつが欲しいぜ!
0363デフォルトの名無しさん
2009/02/18(水) 19:09:26自分で作れ
0364デフォルトの名無しさん
2009/02/18(水) 19:47:00なりま
0365デフォルトの名無しさん
2009/02/18(水) 20:35:06ありがとう。知らんなら黙っててください。
0366デフォルトの名無しさん
2009/02/18(水) 20:37:36あー大丈夫だいじょーぶホント―にだいじょーぶw
0367デフォルトの名無しさん
2009/02/18(水) 20:43:440368デフォルトの名無しさん
2009/02/18(水) 20:54:53黙りま
0369デフォルトの名無しさん
2009/02/18(水) 21:33:36無駄口きいてないで少しは勉強したらどうですか?
0370デフォルトの名無しさん
2009/02/18(水) 21:37:210371デフォルトの名無しさん
2009/02/18(水) 21:42:49嘘だったらどうするんだ。
本家本元マイクロソフトさんに聞けばいいだろうに。
0372マイクロソフト
2009/02/18(水) 21:48:310373デフォルトの名無しさん
2009/02/18(水) 21:51:34ということで、各サンプルの EULA に従う必要がある。
0374デフォルトの名無しさん
2009/02/18(水) 23:36:34同じ名前付けてどうすんだよ
0375デフォルトの名無しさん
2009/02/18(水) 23:41:30それ言い出したらム板の存在価値が・・
0376デフォルトの名無しさん
2009/02/18(水) 23:47:590377デフォルトの名無しさん
2009/02/18(水) 23:54:430378デフォルトの名無しさん
2009/02/19(木) 00:11:45public struct V2<T>{
public T x;
public T y;
public V2( T x_, T y_ ){
x = x_;
y = y_;
}
public void Add( V2<T> v_){
x += v_.x;
y += v_.y;
}
}
このような構造体を作りたいのですが、Addメソッド内の
x、yそれぞれ加算しているところでコンパイルエラーとなってしまいます。
エラーの文言としては下記のものが出力されました。
「演算子 '+=' を 'T' と 'T' 型のオペランドに適用することはできません。」
これはTにどのようなものが指定されるか不明なので、
+=演算子が必ずしも使えない、よってこれをエラーとする。
このような理由でエラーが出ているのでしょうか?
また、宜しければ解決方法がございましたらお教えいただけたらうれしいです。
0379デフォルトの名無しさん
2009/02/19(木) 00:13:58>>145-177あたり参照
0380378
2009/02/19(木) 00:19:420381デフォルトの名無しさん
2009/02/19(木) 00:27:140382デフォルトの名無しさん
2009/02/19(木) 00:34:10結局のところ,CLRで動かす以上は
・DynamicMethodを使ったコード動的生成やリフレクションなどによって動的に
・C++みたいにテキスト的に
の二つしか方法はないはずだけどどちらも華麗とは思えない
0383デフォルトの名無しさん
2009/02/19(木) 00:42:260384デフォルトの名無しさん
2009/02/19(木) 00:47:14CLRの既存の機能を使用した単なるクラスライブラリにすぎないよ
>>382の上の方法に帰着する
0385デフォルトの名無しさん
2009/02/19(木) 08:05:50コマンドラインの方は触ってないけど、Visual F# で試したら、
全然動的なことしてなかった。
0386デフォルトの名無しさん
2009/02/19(木) 08:08:140387デフォルトの名無しさん
2009/02/19(木) 08:15:32ジェネリックス自体どこにもない。
>>381 に詳細聞きたい。
0388デフォルトの名無しさん
2009/02/19(木) 10:51:25それともF#はILのジェネリクスを使うように拡張されてる?
だとしたら同じくエラーになる気がする
0389デフォルトの名無しさん
2009/02/19(木) 14:23:06ときどきアプリ全体が劇重になってしまいます
Textに文字列を入れる部分だけコメントアウトすると重くなりません
これを回避する方法はあるでしょうか?
TextBoxを使ってると諦めるしかないのでしょうか?
0390デフォルトの名無しさん
2009/02/19(木) 14:32:530391デフォルトの名無しさん
2009/02/19(木) 14:36:500392デフォルトの名無しさん
2009/02/19(木) 14:46:110393デフォルトの名無しさん
2009/02/19(木) 16:00:150394デフォルトの名無しさん
2009/02/19(木) 16:29:43Labelじゃだめなん?
0395デフォルトの名無しさん
2009/02/19(木) 16:59:09LabelかGDIでいんじゃない?
0396デフォルトの名無しさん
2009/02/19(木) 17:28:35ありがとうございました
でも右寄せ表示する方法が分からない
困った
0397デフォルトの名無しさん
2009/02/19(木) 17:41:090398デフォルトの名無しさん
2009/02/19(木) 17:47:12Style style = new Style(typeof(ListBoxItem));
style.Setters.Add(new Setter(ListBoxItem.HorizontalContentAlignmentProperty,
HorizontalAlignment.Stretch));
ほんとWPFわけわからん
みなさん、ありがとうございました〜
0399デフォルトの名無しさん
2009/02/19(木) 17:56:58プロパティでデザイン時にも指定できるからそこからわかるべ。
0400デフォルトの名無しさん
2009/02/19(木) 18:13:17コードからコントロール生成しない
データソースを変更すれば勝手に表示が変わる
ってのがWPFの方向性
0401デフォルトの名無しさん
2009/02/19(木) 19:58:010402デフォルトの名無しさん
2009/02/19(木) 22:30:160403デフォルトの名無しさん
2009/02/19(木) 23:06:40さっそく修正しました
0404デフォルトの名無しさん
2009/02/20(金) 08:59:240405デフォルトの名無しさん
2009/02/20(金) 09:10:510406デフォルトの名無しさん
2009/02/20(金) 09:39:040407デフォルトの名無しさん
2009/02/20(金) 09:58:520408デフォルトの名無しさん
2009/02/20(金) 12:08:480409デフォルトの名無しさん
2009/02/20(金) 12:15:210410デフォルトの名無しさん
2009/02/20(金) 12:25:070411デフォルトの名無しさん
2009/02/20(金) 13:06:390412デフォルトの名無しさん
2009/02/20(金) 13:08:07ショボン
0413デフォルトの名無しさん
2009/02/20(金) 16:35:130414デフォルトの名無しさん
2009/02/20(金) 20:20:11ここの馬鹿な人たちとは大違いですね^^;
もう2度と来ません
ノシ
0415デフォルトの名無しさん
2009/02/20(金) 20:21:400416デフォルトの名無しさん
2009/02/20(金) 20:45:200417デフォルトの名無しさん
2009/02/20(金) 20:46:23とりあえず、リンカで。
0418デフォルトの名無しさん
2009/02/20(金) 21:57:440419デフォルトの名無しさん
2009/02/20(金) 22:09:09根中 千恵子?
0420デフォルトの名無しさん
2009/02/20(金) 22:54:170421デフォルトの名無しさん
2009/02/21(土) 00:52:530422デフォルトの名無しさん
2009/02/21(土) 01:30:420423デフォルトの名無しさん
2009/02/21(土) 01:32:330424デフォルトの名無しさん
2009/02/21(土) 18:22:55[opt]属性はOptionalAttributeを付けることで付けられるようですが
0425デフォルトの名無しさん
2009/02/21(土) 18:27:510426デフォルトの名無しさん
2009/02/21(土) 18:29:44(1) 素直にオーバーロードを使う
(2) 引数をNullableにする
0427デフォルトの名無しさん
2009/02/21(土) 18:35:190428424
2009/02/21(土) 18:43:53VBで省略可能引数にしたときの既定値のメタデータを付けたいだけなんです
リフレクションで既定値の取得もできるみたいですがやっぱり設定するのは無理なんですかね
0429デフォルトの名無しさん
2009/02/21(土) 18:53:190430423
2009/02/21(土) 18:58:41VBで省略可能引数の既定値を設定した場合,
既定値の情報はメタデータとしてメソッドに付加されます。
それと同じ形式のメタデータをC#で付けたいということです。
具体的にはこういうILです
.param [1] = "既定値"
0431デフォルトの名無しさん
2009/02/21(土) 19:08:080432デフォルトの名無しさん
2009/02/21(土) 19:12:59これとか違うの?
0434432
2009/02/21(土) 19:19:19正解っぽい。
0435デフォルトの名無しさん
2009/02/21(土) 19:21:30これやってもC#で省略可能引数が使えるわけじゃないみたいね。
でも、アセンブリをVBから呼び出す時には省略可能になる引数を持つメソッドを
C#で定義できるのは興味深い。
0436デフォルトの名無しさん
2009/02/21(土) 23:35:48outはVBにないけど、Out属性付きのByRef引数はC#からout引数として扱われるというもの。
0437435
2009/02/21(土) 23:40:520438デフォルトの名無しさん
2009/02/22(日) 01:49:55大幅に労力が削減されるような利用法が思い浮かばないんだけど。
0439デフォルトの名無しさん
2009/02/22(日) 02:02:04リフレクションやComInterop、やDLR対応の動的言語と相互運用する場合かな。
いろいろdymamicに期待してる人が要るけど、
dynamic型同士で + - * / などの演算はサポートされていないから、
プリミティブ型をdynamicにするのはナンセンス。
0440デフォルトの名無しさん
2009/02/22(日) 02:12:30多言語との相互運用という趣旨ならわかるけど、
静的言語として、こういうのを許容しちゃうのって、どうなんだろう
コンパイル時にはエラーにならなくて、実行時にしかエラーにならないんでしょ?
暗黙型付けも、自分で型をしっかり宣言して、それで使うということで、
ユーザの思い込みの余地を減らすことが大事ということで
静的言語のメリットがあると思ってたんだけど、
なんか曖昧的なものを受け入れるような気がしていやな感じがする。
0441デフォルトの名無しさん
2009/02/22(日) 02:18:270442デフォルトの名無しさん
2009/02/22(日) 02:23:28自分だけで成り立つ世界じゃないからなぁ
嫌でも他人のソースを見ることになるわけで
0443デフォルトの名無しさん
2009/02/22(日) 02:32:26「静的な型として動的な型を導入するんだ」
機能的には相互運用、さらに相互運用。プレゼンも基本それしか
出てこない。動的型前提な言語との相互運用、ライブラリを使う
ときに死ぬるんだよ現状。
しかも JavaScript だの IronPython だの DLR だの利用ケースが
増えていってやがる。
そういや雑談な話になるんだが、コンポーネントモデル周りは
ほとんど動的な要素で構成されてるよな。
なんでいまさら動的だからどうこうとかなるんだろうな
0444デフォルトの名無しさん
2009/02/22(日) 02:34:54C#はそんなに強い静的型付け言語じゃない
0445デフォルトの名無しさん
2009/02/22(日) 02:49:43他方の言語は相互運用のために拡張して、他方の制限はない?
C#のいいところが失われているような気がするよ。
0446デフォルトの名無しさん
2009/02/22(日) 02:58:36あとせっかく DLR で「汎用的な」動的型システムつくってくれる
んだから乗らん手はないし
0447デフォルトの名無しさん
2009/02/22(日) 03:02:180448デフォルトの名無しさん
2009/02/22(日) 03:08:32動的言語をnetで使うためのものがDLRなんだから
0449デフォルトの名無しさん
2009/02/22(日) 03:17:38んで、それに対抗してC♭が開発されるわけです
それらの言語は多言語(特にC#)との相互運用性のために、
動的型型付けが導入されていきました。
そしてその間、ロシアはc++を使い続けました。
0450デフォルトの名無しさん
2009/02/22(日) 03:27:31とかユーザ定義変換とかどうなるんだろ
あと、var j 、Class.Method(out j);とかあったらjは何型?
0451デフォルトの名無しさん
2009/02/22(日) 03:38:28コンパイルエラー
0452デフォルトの名無しさん
2009/02/22(日) 03:40:34個人的にヘジの言語設計者としてのすごいところは
ゴチャゴチャ要素を詰め込みまくって許容範囲内に
纏め上げる才能だと思う。
>>450
型システムとしては大きく変わらん。だからそれらはどれも
今までと同じように通らない。
簡単に言うと新しい dynamic 型という「静的型」が導入される
感じ。こいつはディスパッチ周りが特殊に扱われる。
0453デフォルトの名無しさん
2009/02/22(日) 03:48:470454デフォルトの名無しさん
2009/02/22(日) 03:53:19dynamic対応してくれるのだろうか。
今は毎回律儀にリフレクション使ってるから遅くて遅くて。
0455デフォルトの名無しさん
2009/02/22(日) 03:57:590456デフォルトの名無しさん
2009/02/22(日) 04:05:00ごちゃごちゃ要素を詰めまくって、
複雑になった分の学習に必要な非生産性と、
複雑になった分の楽できるコーディングや設計による生産性の向上を比較したら、
どっちがどうなんだろう
学習はともかく、通常と比較したら生産性はどんだけあがんだろ
0457デフォルトの名無しさん
2009/02/22(日) 04:34:42想定以外の使い方をされないような工夫はしっかり施されている。
もしdynamicで四則演算の演算子が使えたり、
varがメンバやプロパティで使えたらそういう心配するような状態になるだろう。
0458デフォルトの名無しさん
2009/02/22(日) 04:41:15足し算なのに引き算とか可能だし (;゚д゚)ァ....
0459デフォルトの名無しさん
2009/02/22(日) 04:44:40常識的なプログラマーなら分かってるよね?といった風に信用してくれてる部分もある。
実際乱用されてるかい?
そういった部分も含めて絶妙と評価している。
0460デフォルトの名無しさん
2009/02/22(日) 04:46:51演算子は無いと面倒くさいJavaやってたからかな〜
0461デフォルトの名無しさん
2009/02/22(日) 04:53:45なにいってんだ?
0462デフォルトの名無しさん
2009/02/22(日) 04:59:06そのための強制約と考えるのは普通たよな
0463デフォルトの名無しさん
2009/02/22(日) 05:06:190464デフォルトの名無しさん
2009/02/22(日) 05:09:16つかまぁ、3.0 の丁寧な仕事といい社内で使いまくって叩いた上
出てくるんだろうなって感じがするよな
0465デフォルトの名無しさん
2009/02/22(日) 05:33:38c++との相互運用のために
その中では、ポインタの使用も可能です
c++との相互運用のために
代入演算子のオーバーロードも可能にし、
いまではc++と同じ実装になっていますが、問題は発生していません
なぜならみんなが常識的なプログラマなので乱用されてはいないからです。
めでたしめでたし
0466デフォルトの名無しさん
2009/02/22(日) 05:37:120467デフォルトの名無しさん
2009/02/22(日) 05:45:480468デフォルトの名無しさん
2009/02/22(日) 11:11:03dynamicはインデクサも演算子もinvoke式もなんでもアリだよ
0469デフォルトの名無しさん
2009/02/22(日) 11:26:430470デフォルトの名無しさん
2009/02/22(日) 11:29:54ここでダウンロードできるNew Features in C# 4.0
0471デフォルトの名無しさん
2009/02/22(日) 11:33:57・多重継承orMixin
・friend
・C++ばりの変態テンプレート
・Lispばりのマクロ
0472デフォルトの名無しさん
2009/02/22(日) 11:35:020473デフォルトの名無しさん
2009/02/22(日) 11:38:14IHogeを実装してないけどHogeという名前のメソッドを実装してる型のオブジェクト;
hoge.Hoge();
どうせならこんな感じでダックタイピングできるようにしちゃえばよかったのに
0474デフォルトの名無しさん
2009/02/22(日) 11:52:17これのことですな。
>dynamic d = GetDynamicObject(…);
>int i = d + 3; // calling operators
出来ないといったのは正確ではなかったので訂正する。
OKのパターン
dynamic d = "abc"; string i = d + "xxx"; // "xxx"のstringが+オペレータを持っている。
NGのパターン
dynamic d = 10; int i = d + 3; // integerはプリミティブなので+オペレータを持ってない
dynamic d = "abc"; dynamic d2 = "XYZ"; string i = d + d2; // dynamic同士の演算
0475デフォルトの名無しさん
2009/02/22(日) 11:59:20これがなんでNGなのかわからない
>>470のドキュメントによると,コンパイルは通るはずだよね
実行時にエラーになるってこと?
試せないけど,今のExpression Treeの仕様から類推すると大丈夫そうな気がするんだが
あとStringの+は演算子オーバーロードじゃなくて言語組み込みだよ
0476デフォルトの名無しさん
2009/02/22(日) 12:00:56ちと保留、これだと下の説明が付かないですね。
>dynamic d = GetDynamicObject(…);
>int i = d + 3; // calling operators
DynamicObjectが+オペレータをサポートしていれば大丈夫なのか。
それともCTPではまだ未実装の機能なのか。
うむむ・・
0477デフォルトの名無しさん
2009/02/22(日) 12:03:320478デフォルトの名無しさん
2009/02/22(日) 13:54:58「悪意の人間の犯罪行為を防止すること」の区別がつかない人が2人ぐらいいるなw
0479デフォルトの名無しさん
2009/02/22(日) 14:01:52馬鹿基準に合わせると天才の要求仕様に満たなくなる。自分としては自由度を高めて使う側のスキルアップを要求する方がいい時も多々あるけれど
0480デフォルトの名無しさん
2009/02/22(日) 16:24:50Sun様おながいします
0481デフォルトの名無しさん
2009/02/22(日) 16:38:390482デフォルトの名無しさん
2009/02/22(日) 16:44:42.NETはC#自身がはっちゃけてるからな。他の言語はニッチ狙いなのがおおいな。booとかF#とか。
0483デフォルトの名無しさん
2009/02/22(日) 19:26:02その話、英語のフィードバックサイトで出てたけど、
現CTP版では “まだ” できないって話だったと思う。
0484デフォルトの名無しさん
2009/02/23(月) 01:41:29まぁScalaは使ってみると「うーん」という感じが否めないけどな。
JavaやC#に比べると、細かい部分で文法に無理が出まくってる。
やっぱりなんだかんだ言っても言語設計者のセンスって大事だなと思う。
スレチすまん
0485デフォルトの名無しさん
2009/02/23(月) 16:22:55個別認証をやりたいんですけど、どんなふうに実装するのが
いいんでしょ…?
0486デフォルトの名無しさん
2009/02/23(月) 16:52:170487デフォルトの名無しさん
2009/02/23(月) 16:54:34「みたい」の指すところが全然分からん。
まずは要件定義とは何かを知ることから始めよう。
0488デフォルトの名無しさん
2009/02/23(月) 23:05:450489デフォルトの名無しさん
2009/02/23(月) 23:36:40Windows Vistaなどの検索ボックスのように、
スペースで区切ったキーワードにヒットするファイルの一覧を取得したいのですが、
何かスマート(簡単な)方法はないでしょうか?
今のところ、ファイル名に対して、
スペースで区切られたキーワードの数だけstring.containsを行うくらいしか思いつかないんですが、
この方法だと大量のファイルがあった場合に処理が遅くなってしまうと思うので。
# どんな方法でもファイル数が多ければ多いほど時間は掛かると思いますが、もう少し高速に行える方法があればと考えています。
0490デフォルトの名無しさん
2009/02/23(月) 23:49:07正規表現をコンパイルしたら速いんじゃないか?知らんけどな
Regex.Match(input, "AAA|BBB|CCC", RegexOptions.IgnoreCase | RegexOptions.Compiled);
0491デフォルトの名無しさん
2009/02/23(月) 23:52:32検索のたびにメモリを食って解放されなくなるぞ
0492デフォルトの名無しさん
2009/02/24(火) 00:01:52だとしたらベタにやっても抽出する処理そのものには1秒掛からないんじゃないか。
むしろボトルネックは言うまでもないんだろうけどディスクアクセスって気がする。
0493デフォルトの名無しさん
2009/02/24(火) 00:11:150494デフォルトの名無しさん
2009/02/24(火) 00:23:49皆様ありがとうございます。
>>492
なるほど。
一度試してみてパフォーマンスをみることにします。
>>493
そんな方法があったとは思いつきませんでした。
軽くググってみると
http://209.85.175.132/search?q=cache:94DRo_UXXIEJ:repse.blogspot.com/2008/02/c_20.html+C%23+index+service&hl=ja&ct=clnk&cd=14&gl=jp&client=firefox-a
確かに…、少し調べてみようと思います。
0495デフォルトの名無しさん
2009/02/24(火) 00:37:430496デフォルトの名無しさん
2009/02/24(火) 00:51:300497デフォルトの名無しさん
2009/02/24(火) 07:31:14public class MyList<T> : List<T>
{
public void Load(string fileName)
{
using (Stream stream = new FileStream(fileName, FileMode.Create))
{
using (BinaryWriter writer = new BinaryWriter(stream))
{
foreach (T item in this)
{
writer.Write(item);//コンパイルエラー
}
}
}
}
}
0498デフォルトの名無しさん
2009/02/24(火) 07:34:500499デフォルトの名無しさん
2009/02/24(火) 07:34:52使いたいTはintやlongやdoubleなどの値型だけです。
0500デフォルトの名無しさん
2009/02/24(火) 07:40:150501デフォルトの名無しさん
2009/02/24(火) 07:56:44ありがとうございます
0502デフォルトの名無しさん
2009/02/24(火) 08:14:30無理やりだけど、
var write = typeof(BinaryWriter).GetMethod("Write", new[] { typeof(T) });
write.Invoke(writer, new object[] { value });
0503デフォルトの名無しさん
2009/02/24(火) 08:24:470504デフォルトの名無しさん
2009/02/24(火) 11:45:19public void Save<T>(List<T> list)
{
byte[] bytes;
using (MemoryStream ms = new MemoryStream(0x10000))
{
new XmlSerializer(typeof(List<T).Serialize(ms, list);
bytes = ms.ToArray();
}
using (Stream stream = new FileStream(fileName, FileMode.Create))
using (BinaryWriter writer = new BinaryWriter(stream))
{
writer.Write(bytes);
}
}
0505デフォルトの名無しさん
2009/02/24(火) 17:24:53Loadで保存w
0506デフォルトの名無しさん
2009/02/24(火) 18:45:49なんでreadとwriteでこんなにも非対称なコードになるんだ
0507デフォルトの名無しさん
2009/02/24(火) 18:49:31標準のライブラリでRead<T>//(注)プリミティブ型のみ
なんて素人臭いことするわけにもいかないし
0508デフォルトの名無しさん
2009/02/24(火) 18:56:570509デフォルトの名無しさん
2009/02/24(火) 19:11:28Marshal.StructureToPtrみたいな外道な方法を用いれば簡単にできる
0510デフォルトの名無しさん
2009/02/24(火) 19:13:190511デフォルトの名無しさん
2009/02/24(火) 21:21:41自作アプリケーション内で行いたいのですが、どのような方法があるのでしょうか・・・?
ドラッグ対象となるアプリケーションはコンソールアプリケーションです。
てぃんこでかい人よろしくおねがいします。
0512デフォルトの名無しさん
2009/02/24(火) 21:23:310513デフォルトの名無しさん
2009/02/24(火) 21:28:21System.DiagnosticsのProcess
エクスプローラで実行ファイルに何かのファイルをドロップするのは
その何かのファイルを引数に実行ファイルを起動するのと同じ
0514デフォルトの名無しさん
2009/02/24(火) 21:32:53とても有益なヒントありがとうございました。
ちんこもでかくてありがとうございました。
試行錯誤してみます。
0515デフォルトの名無しさん
2009/02/24(火) 21:42:240516511
2009/02/24(火) 21:49:03ファイルを指定せずに実行ファイルを起動したような動作になっちゃう・・・
proc.StartInfo.Arguments ="あるテキストファイルのパス";
proc.StartInfo.FileName ="受け取り側の実行ファイルのパス";
proc.Start();
0517デフォルトの名無しさん
2009/02/24(火) 21:51:110518デフォルトの名無しさん
2009/02/24(火) 21:51:29「あるテキストファイルのパス」に空白が含まれるなら、""で囲まないとダメ。
具体的には、
proc.StartInfo.Arguments = "\"あるテキストファイルのパス\"";
0519511
2009/02/24(火) 21:54:34""ではかこんでいます。
proc.StartInfo.Arguments = @"C:\sample.xml";
proc.StartInfo.FileName = @"C:\Document and setting\APPLE.exe";
proc.Start();
0521sage
2009/02/24(火) 23:19:27ピクセル単位で動くのですが、TextBoxのように行単位で動かせるような方法ないですか?
http://wawatete.ddo.jp/exec/program/cs/rtb_scrbarrtb
にあるような別途スクロールバーを作りたくなくて
RichTextBox備え付けのスクロールバーで実現したいのですが。。。
RichTextBoxのWndProcでつまみスクロールのイベントが来たら
SendMessage(rich1.Handle, EM_SCROLL, SB_LINEDOWN, 0)
で独自で1行スクロールとか試みたんですが、微妙にずれてしまって。。。
ちなみに上記URLと同じ目的ですが、RichTextBoxの左に
行番号を作りたいのですが、テキストが中途半端な表示されると
困るために、行単位でスクロールさせたい次第です。
教えてエライ人!
0522デフォルトの名無しさん
2009/02/24(火) 23:37:28ボクはGDI+を使って書いた
0523デフォルトの名無しさん
2009/02/24(火) 23:38:330524521
2009/02/24(火) 23:48:13kwsk・・・、じゃなくておさわりだけでもいいんで
どんな流れか教えてください。
因みに自分は、クライアント領域が表示されてる分だけ左側に
Labelを配置して、スクロールされたら配置されてる全Labelに
メッセージなげて、Label.Textを変えて行番号を表示する方式を
考えてました。
0525デフォルトの名無しさん
2009/02/24(火) 23:50:13Reader 側はもっと無理やりだけど、↓でできる。
var read = typeof(BinaryReader).GetMethod("Read" + typeof(T).Name, new Type[0]);
return (T)read.Invoke(reader, new object[0]);
0526デフォルトの名無しさん
2009/02/24(火) 23:53:450527デフォルトの名無しさん
2009/02/25(水) 00:49:32AdobeReader8ならエラー出なくて9だと出るって事はしばらくしたら改善される?
Delphi2006なら大丈夫だけどあっちはunicodeのテキスト読むのめんどいし、いい方法はないものかね?
0528デフォルトの名無しさん
2009/02/25(水) 01:10:55別のページを表示してから終了とか頑張ってみたけどどうしようもなくて
終了時だけなのでエラーを握り潰して無視したよ。
0529デフォルトの名無しさん
2009/02/25(水) 10:04:22こんなのはどうかね
public abstract class ReaderWriter<T> : IDisposable
{
protected FileStream stream;
protected BinaryWriter writer;
protected BinaryReader reader;
public abstract void Write(T item);
public abstract T Read();
public virtual void Seek(long offset, SeekOrigin origin) { this.stream.Seek(offset, origin); }
public void Dispose()
{
if (this.reader != null) this.reader.Close();
if (this.writer != null) this.writer.Close();
if (this.stream != null) this.stream.Close();
}
}
public class IntReaderWriter : ReaderWriter<int>
{
public IntReaderWriter(string fileName)
{
this.stream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
this.reader = new BinaryReader(this.stream);
this.writer = new BinaryWriter(this.stream);
}
public override void Write(int item) { this.writer.Write(item); }
public override int Read() { return this.reader.ReadInt32(); }
}
0530デフォルトの名無しさん
2009/02/25(水) 10:05:22public class MyList<T> : List<T>
{
public void Save(ReaderWriter<T> writer)
{
if (writer == null) return;
foreach (T item in this) writer.Write(item);
}
public void Load(ReaderWriter<T> reader, int count)
{
if (reader == null) return;
for (int i = 0; i < count; i++) this.Add(reader.Read());
}
}
static void Main(string[] args)
{
MyList<int> list = new MyList<int>();
using (IntReaderWriter writer = new IntReaderWriter("test.bin"))
list.Save(writer);
using (IntReaderWriter reader = new IntReaderWriter("test.bin"))
list.Load(reader, 100);
}
終わり
0531デフォルトの名無しさん
2009/02/25(水) 12:51:34普通にSaveInt32とか型ごとに保存・読み込みメソッドを定義するのと変わらん
0532デフォルトの名無しさん
2009/02/25(水) 13:53:57where TSrc : value class where TDst : value class
void BlockCopy(
array<TSrc>^ src, int srcOffset, array<TDst>^ dst, int dstOffset, int count) {
using namespace System;
pin_ptr<TSrc> pSrc = &src[0];
Byte* pSrcByte = reinterpret_cast<Byte*>(pSrc);
pin_ptr<TDst> pDst = &dst[0];
Byte* pDstByte = reinterpret_cast<Byte*>(pDst);
for (int i = 0; i < count; i++) pDstByte[srcOffset + i] = pSrcByte[dstOffset + i];
}
こういうのをC++/CLIで用意しておけば解決w
0533デフォルトの名無しさん
2009/02/25(水) 14:35:22と等価の処理を別コードで書きたいんだけど
なにかいい方法はないかなぁ…
PeekMessageとかコレ系つかうとたまに応答なし
になってしまう。
timerとかBackGroundworkerだとプログラムが
みにくくなってしまうし悩んでます。
0534デフォルトの名無しさん
2009/02/25(水) 14:42:03例えば
public virtual A CreateA(){ return new A(); }
があります。
このAを継承した
BというクラスはこのCreateAをオーバーライドしてBを返すようにしたいのですが
こういう事はできますか?
CreateBを新たに作らないと駄目ですか?
0535デフォルトの名無しさん
2009/02/25(水) 14:46:45timerやbackgroundworkerで見にくくなる理由も不明だが、
Application.DoEvents()ではだめな理由も謎だな。
0536デフォルトの名無しさん
2009/02/25(水) 14:48:25class B : A {} だったら
public override A CreateA(){ return new B(); } でいいじゃね。
戻り値の型をBにしたいなら、CreateBを作ることになるだろうけど。
0537デフォルトの名無しさん
2009/02/25(水) 14:52:550538533
2009/02/25(水) 14:58:27http://d.hatena.ne.jp/yaneurao/20081125
DoEventsを使うとたまに応答なしになったりひどい挙動を起こすことが
あるんですよ。
これを完全に回避したいんです。
0539デフォルトの名無しさん
2009/02/25(水) 15:00:24public virtual Base Create();
}
class Base<T>:Base where T:Base<T>, new(){
public override Base Create(){
return (Base)(new T());
}
public T Create(){return new T();}
}
こんな方法もあるかも。未テストかつ変態的なので動くか不明。
なお、使う時は
class B:Base<B>{
...
}
class C:Base<B>{
...
}
みたいにする。
0540デフォルトの名無しさん
2009/02/25(水) 15:00:40同じクラスAに
class A
{
public const int i = 100;
public void D()
{
Console.Write(i);
}
}
とこれを継承したクラスB,に
public const int i=10;
としてBからDを呼び出すとiは10として処理されますか?
100として処理されますか。
0541デフォルトの名無しさん
2009/02/25(水) 15:03:18class Base{
public virtual Base CreateBase();
}
class Base<T>:Base where T:Base<T>, new(){
public override Base CreateBase(){
return (Base)(new T());
}
public T Create(){return new T();}
}
みたいにメソッド名は変えなきゃ駄目だ。
後、使い方の方も(まあ気が付くと思うけど)
class B:Base<B>{
...
}
class C:Base<C>{
...
}
ね。
0542デフォルトの名無しさん
2009/02/25(水) 15:05:09それくらいなら、やってみりゃいいじゃん。
0543デフォルトの名無しさん
2009/02/25(水) 15:09:50等価のコードを書いたら結局Application.DoEventsと同じ作用をもたらすだろ
素直にイベント駆動の脳になれ
0544デフォルトの名無しさん
2009/02/25(水) 15:10:27やってみました
継承元の100が入ってきますね
どうにかして10にすることは出来ませんか?
>>539
やってみます
0545デフォルトの名無しさん
2009/02/25(水) 15:11:180546デフォルトの名無しさん
2009/02/25(水) 15:15:34できました有り難うございます。
0547539,541
2009/02/25(水) 15:44:40共通の基底クラスが必要なければ、
class Base<T> where T : Base<T>, new()
{
public static T Create() { return new T(); }
}
class A : Base<A> { }
class B : Base<B> { }
でも可だと思う。A:Base<foo>と書く時のfooはAのみに制約されて、それ以外を書くとコンパイル
エラーではねられる。継承先のクラスのインスタンスをプロパティの設定などの処理とともに生成
するメソッドを持つクラスを作る(変態的だけど)わりと一般的なテクニック。
0548デフォルトの名無しさん
2009/02/25(水) 15:48:35成る程
よく分かりました
ついでにやっと何となくwhereが分かりました
0549デフォルトの名無しさん
2009/02/25(水) 15:49:24class B:Base<B>{}があると、class A:Base<B>はコンパイルエラーにならないので注意してね。
0550デフォルトの名無しさん
2009/02/25(水) 22:09:43タイマーにしておけ。
見やすくなるように整理して書くだけだろ。
0551デフォルトの名無しさん
2009/02/25(水) 22:32:27void BigMethod()
{
...
if (〜) { ...//百行くらい }
else { ...//百行くらい }
...
}
よりも、
void BigMethod()
{
...
if (〜) { Method1(...); }
else { Method2(...); }
...
}
Method1(...);//百行くらい
Method2(...);//百行くらい
...
の方が大抵の場合で速くなるのはなぜでしょう?
0552デフォルトの名無しさん
2009/02/25(水) 22:38:57気のせいじゃね?
0553デフォルトの名無しさん
2009/02/25(水) 22:40:53用いてそれと一致するbdListのindexを取得したいのですが
foreachなどで一つ一つチェックするしかないのでしょうか。
BindingList<Data> bdList;
public class Data
{
private string _Key;
private string _Value;
private int _Count;
public string Key
{
set { this._Key = value; }
get { return this._Key; }
}
public string Value
{
set { this._Value = value; }
get { return this._Value; }
}
public int Count
{
set { this._Count = value; }
get { return this._Count; }
}
}
0554デフォルトの名無しさん
2009/02/25(水) 22:47:54リスト構造なら辿るしかないだろ
そういう意味じゃないならlinqとか
0555デフォルトの名無しさん
2009/02/25(水) 23:08:17実行時に最適化されてるんだよ。
呼び出しの初回にメソッド全体がJITコンパイルされるか小さなメソッド単位でJITコンパイルされるかだよ。
細かなプロパティやメソッドの呼び出しなんか結構インライン展開されてるしある程度分割した方がいいと思うよ。
試しにBigMethod内で呼び出しているけど条件に合わなくて呼び出されない箇所で
参照してるアセンブリのメソッドを削除してdllを差し替えてそのまま実行すると
上はBigMethodメソッド呼び出しで実行される前のタイミングで落ちるけど、
下はMethod1かMethod2が不完全でも呼ばれなければ動いたりする。
>553
.Select((data, index) => new {Data=data, Index=index}).ToLookup(i => i.Data.Key).ToDictionary(i => i.Key, i.First().Index)["探したいキー"]
とでもすればいいんじゃないかな。
素直にforで辿った方がいいよ。
0556553
2009/02/25(水) 23:13:06有り難う御座いました。2005環境なのでLinqは使えません…。
.Containsや.IndexOfが内部的にforeachで回しているのであれば
諦めつくのですが、件数が増えてきたときに効率が悪いかと思いまして。
データ構造を見直した方がいいんですかね…。
0557デフォルトの名無しさん
2009/02/25(水) 23:13:35bdList.OfType<Data>.Where(d=>条件).Select(d=>bdList.IndexOf(d));
が書き方的には自然だけど、IndexOfのコストが絶対に問題になる。
Enumerable.Range(0,bdList.Count).Where(i=>bdList[i].Key==ほにゃらら);
とかすべき。
0558デフォルトの名無しさん
2009/02/25(水) 23:15:520559デフォルトの名無しさん
2009/02/25(水) 23:17:52LINQ使えないのなら、
Enumerable.Range(0,bdList.Count).Where(i=>bdList[i].Key==ほにゃらら);
と同等の処理をforで書けば良いと思う。.Containsや.IndexOfがO(N)で嫌だという
感覚は正解で、インデックスによる参照がO(1)だから、そっちを使うべき。
0560デフォルトの名無しさん
2009/02/25(水) 23:31:070561553
2009/02/25(水) 23:42:04Dictionaryでもう少し効率良く出来るのであればそれも
視野に入れて色々試してみます。
0562デフォルトの名無しさん
2009/02/25(水) 23:43:42Dictionaryって、重複を許すモノホンのハッシュじゃないよね?
0563デフォルトの名無しさん
2009/02/25(水) 23:50:29それと、そもそも異なるValueに同じKeyが対応する事がないのなら、確かにDictionary一択だね。
0564デフォルトの名無しさん
2009/02/26(木) 02:16:031回のみしか呼ばれないならJITコンパイル時の時間分だけ短縮しているというのは理解できるのですが、
BigMethod自体が複数回呼ばれる場合でも下の方が速いというのがちょっとわからないのですが…
呼び出し回数は、で、BigMethod1回につきMethod1またはMethod2が1回なのですが、
複数回呼ばれる間にどちらも呼ばれます。回数自体はそこまで多くなく、メソッド呼び出しのオーバーヘッド
は大きくないはずですが、なぜ分割した方が速くなるのでしょうか?
処理をメソッドに分割した方がうまく最適化されやすいのでしょうか?
0565デフォルトの名無しさん
2009/02/26(木) 03:28:31いや知らんけど。
0566デフォルトの名無しさん
2009/02/26(木) 03:28:38基本的なことだけど速度計測の時に最適化が有効になってるか確かめた?
デバッグビルドは最適化が働かないよ。
リリースビルドでもF5実行の場合は最適化が抑止されるよ。
0567デフォルトの名無しさん
2009/02/26(木) 10:20:45C++のSTLとかアルゴリズムを利用したコードってC#でも使用できますか?
0568デフォルトの名無しさん
2009/02/26(木) 10:28:120569デフォルトの名無しさん
2009/02/26(木) 10:28:33一応BigMethodをビルドしてからReflectorでILを見てみると、.maxstackの値が22から10に減っていました。
>>566
Debug、Releaseビルドどちらの場合でも分割している方が速かったです。
一応実行時はリビルドを実行してからVS上ではなく直接exeを起動して計測しています。
0570デフォルトの名無しさん
2009/02/26(木) 10:46:38どちらでも可能であればかまいません
C#でSTLを使いたいのです
0571デフォルトの名無しさん
2009/02/26(木) 10:47:56C++/CLIでSTL/CLRでも使えば?
0572デフォルトの名無しさん
2009/02/26(木) 10:53:580573デフォルトの名無しさん
2009/02/26(木) 11:16:300574デフォルトの名無しさん
2009/02/26(木) 11:21:53ポインター使ったプログラムを掛けるのかな?
0575デフォルトの名無しさん
2009/02/26(木) 11:24:05manageとunmanageの区別は自分で意識してやらないとならんが。
0576デフォルトの名無しさん
2009/02/26(木) 11:31:350577デフォルトの名無しさん
2009/02/26(木) 11:32:180578デフォルトの名無しさん
2009/02/26(木) 12:05:27でもT*にキャストはできない。
pin_ptrからIntPtr作ることはできてMarshalでアクセスはできる。
つまりは/unsafe使わないC#とほぼ同じ。
0579デフォルトの名無しさん
2009/02/26(木) 12:52:530580デフォルトの名無しさん
2009/02/26(木) 13:03:47STL/CLRとかいう迷惑なものはなかったことにするべき
こんなもんがはびこったりしたら何のための.NETかわからなくなる
0581デフォルトの名無しさん
2009/02/26(木) 13:26:44テンプレートとして使えるコレクションライブラリは欲しい。
0582デフォルトの名無しさん
2009/02/26(木) 13:40:180583デフォルトの名無しさん
2009/02/26(木) 15:01:34テンプレートを導入したC++は何をかいわんや。オブジェクト指向的な構造さえしっかりしていれば
むやみやたらな自由度なんていらない。.NETのジェネリックはコードが変態にならない点で優れて
いると思う。その分できない事が多すぎるというのは理解するが。
0584デフォルトの名無しさん
2009/02/26(木) 15:07:250585デフォルトの名無しさん
2009/02/26(木) 22:47:210586デフォルトの名無しさん
2009/02/26(木) 23:05:07右に流すようなやつなんだがLINQ使い倒せて実に気分がいい
趣味でいじる分にはピンと来ないgroup byとか爽快だ
だが後でメンテする人は果たして読めるんだろうかアレ
いやまあできる限り読みやすく書いてるつもりだが
でも最大の責任は同じ名前のクラス3つも4つも作った奴だから文句はそいつに言ってくれ
なんで一つのメソッド内に別々のInformationクラスが3つも出てくるんだ畜生
0587デフォルトの名無しさん
2009/02/26(木) 23:30:553つ同じ名前で実装されてるってか?w
0588デフォルトの名無しさん
2009/02/26(木) 23:46:170589デフォルトの名無しさん
2009/02/27(金) 00:09:44Kaishamei.Suzuki.Information, Kaishamei.Sato.Information みたいな……
0590デフォルトの名無しさん
2009/02/27(金) 00:52:180591デフォルトの名無しさん
2009/02/27(金) 07:51:010592デフォルトの名無しさん
2009/02/27(金) 09:05:09と素人が申しております
0593デフォルトの名無しさん
2009/02/27(金) 20:03:122chにはあまりこういう仕事してる人いないかもしれないけど、
例えばFooTech社のBAR1234というインターフェイスカード(DIOとか
モーションコントローラとかいろいろ)を操作するためのクラスライブラリを
作るときって、名前空間名はどうしてる?
FooTech.BAR1234 ?
MyCompany.BAR1234 ?
MyCompany.FooTech.BAR1234 ?
0594デフォルトの名無しさん
2009/02/27(金) 20:26:330595デフォルトの名無しさん
2009/02/27(金) 20:41:430596デフォルトの名無しさん
2009/02/28(土) 01:49:053番目でやってるよ。
結局名前空間だけじゃなくアセンブリも分けてあって
プラグインのように呼び出せるようにしてある。
0597デフォルトの名無しさん
2009/02/28(土) 05:22:52名前空間のネーミング方法
CompanyName.TechnologyName[.Feature][.Design] というパターン。
例: Uchukamen.MultiMedia.Movie.Viewer
.NET Framework 名前空間で使用されている名前は使わない。
Class Console →だめ。
意味的に適切な場合は、複数形の名前空間名を使用する。
例: Collections
例外: 省略形 System.IOs 誤 → System.IO 正。
名前空間とクラスに同じ名前を使用しない。
namespace MySystem;
class MySystem; // 誤り。名前空間とクラスに同じ名前を使用しない。
0598デフォルトの名無しさん
2009/02/28(土) 07:02:32本名使うには抵抗が・・・
0599デフォルトの名無しさん
2009/02/28(土) 07:11:280600デフォルトの名無しさん
2009/02/28(土) 08:09:420601デフォルトの名無しさん
2009/02/28(土) 10:23:050602デフォルトの名無しさん
2009/02/28(土) 11:56:24どうやったらインターネット越しの相手と通信できますか?
0603デフォルトの名無しさん
2009/02/28(土) 12:22:530604デフォルトの名無しさん
2009/02/28(土) 14:00:030605デフォルトの名無しさん
2009/02/28(土) 14:03:220606デフォルトの名無しさん
2009/02/28(土) 14:18:49マイクから音声を取得するようにして、
その音声を圧縮して、tcpかudpで送って、それを受信側で元に戻して再生するお
UPnPつかわないで擬似的にpushしてるソフトあるけど
どうやってんだろ
0607デフォルトの名無しさん
2009/02/28(土) 14:23:270608デフォルトの名無しさん
2009/02/28(土) 14:28:51ニックネーム
0609デフォルトの名無しさん
2009/02/28(土) 18:26:02じゃおれの場合はHannsamubo-iにすればいいのか
0610デフォルトの名無しさん
2009/02/28(土) 22:06:48イジメじゃないか
0611デフォルトの名無しさん
2009/02/28(土) 22:17:46ごめんごめんhandsomeboyの間違いだった
0612デフォルトの名無しさん
2009/02/28(土) 23:21:45GUID
0613デフォルトの名無しさん
2009/03/01(日) 01:43:04おまえとは仕事したくないなwwwww
0614デフォルトの名無しさん
2009/03/01(日) 01:56:290615デフォルトの名無しさん
2009/03/01(日) 01:57:340616デフォルトの名無しさん
2009/03/01(日) 01:58:370617デフォルトの名無しさん
2009/03/01(日) 02:04:120618デフォルトの名無しさん
2009/03/01(日) 02:35:512chなんてすぐに断って家を発って職安に行くんだ。
0619デフォルトの名無しさん
2009/03/01(日) 02:38:300620デフォルトの名無しさん
2009/03/01(日) 03:52:57じゃあ一緒に行こうか
0621デフォルトの名無しさん
2009/03/01(日) 15:47:480622デフォルトの名無しさん
2009/03/01(日) 16:54:250623デフォルトの名無しさん
2009/03/01(日) 18:03:45親や周りの人に負担ばかりかけて
無駄に消費するだけして
周囲や社会には何も貢献してないんだから
0624デフォルトの名無しさん
2009/03/01(日) 18:34:33>無駄に消費するだけして
>周囲や社会には何も貢献してないんだから
まさに2ちゃんねるにレスすることとまったく同じだな
0625デフォルトの名無しさん
2009/03/01(日) 19:13:01上の世代が貯金ばかりして経済が停滞してるというのに
ニートはそれを消費に回して経済活性化に寄与してるんだよ
0626デフォルトの名無しさん
2009/03/01(日) 19:19:21.NETでなぜ悪いっ
に見えた
0627デフォルトの名無しさん
2009/03/01(日) 19:36:07メモリやディスクに負担ばかりかけて
無駄にリソースを消費して
周囲や社会には何も貢献してないんだから
0628デフォルトの名無しさん
2009/03/01(日) 20:45:01>無駄にリソースを消費して
>周囲や社会には何も貢献してないんだから
まさに2ちゃんねるにレスすることとまったく同じだな
0629デフォルトの名無しさん
2009/03/01(日) 20:51:560630デフォルトの名無しさん
2009/03/02(月) 10:40:110631デフォルトの名無しさん
2009/03/02(月) 21:04:39BeginAcceptTcpClientで接続を受け付けています。
while (isAlive == true)
{
tcpListener.BeginAcceptTcpClient(new AsyncCallback(TCPListenAcceptCallback), tcpListener);
autoResetEventTCPReceive.WaitOne();
}
ここで、プログラムを終了させるためにisAliveをfalseにしているのですが、
BeginAcceptTcpClientでブロックされてしまい、プログラムがいつまでも終了
しない状態になってしまいます。
そもそもプログラムの終了方法が悪いのかもしれませんが、
何か良い方法があれば教えてください。
よろしくお願いいたします。
0632デフォルトの名無しさん
2009/03/02(月) 21:30:17適当にWaitOneにタイムアウト秒数与えなよ
0633631
2009/03/02(月) 22:02:43ありがとうございます。
WaitOneにタイムアウトを持たせることで解決しました。
# 若干プログラムの終了まで時間が掛かりますが、問題になる範囲ではないですよね?
0634デフォルトの名無しさん
2009/03/02(月) 23:29:23"Waiting for application to start common language runtime" とでたままプロファイラがアプリケーションにアタッチできません。
デバッガーで見るとCLRProFiler.MainForm.WaitForProcessToConnectの中のpipe.Readで毎回IO.Exceptionが発生しています。
例外内容は"プロセスがパイプの他端を開くのを待っています。"とのこと。
ぐぐってみると同じような現象が出ているのはあったんですが、サービスで発生した場合でアイデンテイティをシステムで立ち上げるとかうんたら。
http://forums.asp.net/p/368720/372560.aspx
アプリケーションの場合にどうするのかわかりません・・・
securityがらみぽいのですが、これは環境がVistaだからでしょうか。
0635634
2009/03/03(火) 12:30:25CLRProfiler.exeをエクスプローラから右クリで管理者として実行でいけました(=゚ω゚)ノ
でもタスクマネージャーでワーキングセットが500Mぐらい食って減らないもののプロファイルしたかったんだがProfilerでみても、10Mぐらいしかアロケートしてないといわれる・・・
見方が悪いんだかよくわからん。逝ってくるノシ
0636デフォルトの名無しさん
2009/03/05(木) 14:39:070637デフォルトの名無しさん
2009/03/05(木) 14:53:060638デフォルトの名無しさん
2009/03/05(木) 14:53:12pdbファイルの出力ならプロジェクトのプロパティでビルドの詳細設定>デバッグ情報あたりで制御できる
0639デフォルトの名無しさん
2009/03/05(木) 17:05:04消して動作に影響あるかもしれんのじゃないか?
0640デフォルトの名無しさん
2009/03/05(木) 21:28:210641デフォルトの名無しさん
2009/03/05(木) 21:58:530642デフォルトの名無しさん
2009/03/06(金) 00:52:45デバッグビルドしてない?と思ったけど
VS2005かVS2008からReleaseビルドでもpdbを作るのがデフォルトになってるんだった。
ビルドの詳細設定から出力のデバッグ情報をnoneに変更する。
0643デフォルトの名無しさん
2009/03/06(金) 07:37:47Release設定のデバッグ情報noneで埋め込まれなくなった
みんなありがとう
しかしこれ気付かずにそのままリリースしたら、プロジェクトのフォルダに個人名使ってたら色々と問題になりそうじゃない?
0644デフォルトの名無しさん
2009/03/06(金) 07:45:300645デフォルトの名無しさん
2009/03/06(金) 07:48:190646デフォルトの名無しさん
2009/03/06(金) 08:57:500647デフォルトの名無しさん
2009/03/06(金) 09:13:340648デフォルトの名無しさん
2009/03/06(金) 10:47:53本名でユーザー作っててマイドキュメントの下にプロジェクト置いてたらアウアウ
0649デフォルトの名無しさん
2009/03/06(金) 11:07:340650デフォルトの名無しさん
2009/03/06(金) 11:20:060651デフォルトの名無しさん
2009/03/06(金) 14:12:41脳内嫁ですが。
0652デフォルトの名無しさん
2009/03/06(金) 14:44:15蛇足だが、100%アンマネージドなVC++アプリでも
デフォルトのリリースビルドの設定だとPDBのパスが埋め込まれるのは同じ。
0653デフォルトの名無しさん
2009/03/06(金) 15:27:080654デフォルトの名無しさん
2009/03/06(金) 16:27:400655デフォルトの名無しさん
2009/03/06(金) 22:05:030656デフォルトの名無しさん
2009/03/06(金) 22:43:50おれはいまだにGNUのmake
0657デフォルトの名無しさん
2009/03/07(土) 03:35:050658デフォルトの名無しさん
2009/03/07(土) 12:01:200659デフォルトの名無しさん
2009/03/07(土) 12:13:360660デフォルトの名無しさん
2009/03/08(日) 19:33:22たくさんの線や長方形、円をアルファ値30%ぐらいで重ね合わせて描画しています。
これを印刷しようとして躓いてしまいました。
プリンタへは、きれいに印刷できました。でも、プリンタドライバ型のPDF出力を行うと、
不完全なディザみたいになってしまいます。どうも、PDF自体が半透明な描画ができないようです。
それで、いったんBitmapに描画してから、プリンタに転送しようとしました。
サイズが小さいときにはこれでPDF出力もうまくいったのですが、A3サイズになると、プリンタの
解像度と用紙サイズでBitmapを作成しようとした時点でエラーになってしまいました。
縦横のピクセルサイズが大きすぎるのだと思います。
こんなときはどうすればいいのでしょうか。やっぱりバンディングみたいにすこしずつ処理でしょうか。
0661デフォルトの名無しさん
2009/03/08(日) 20:08:52大きすぎるならそのBitmapを縮小すれば良いんじゃね?
0662デフォルトの名無しさん
2009/03/08(日) 20:36:47そのくらいでエラーになるのはおかしい。
0663デフォルトの名無しさん
2009/03/08(日) 21:23:44まず仮想プリンタを変えて試すべきじゃないんだろうか?
フリーのだけでも数種類あったはずだよね?
0664デフォルトの名無しさん
2009/03/08(日) 22:24:47>>662
仮想プリンタ側で4800dpiみたいな設定ができて、C#プログラムの中からはこれが
そのまま解像度として見えています。
現実的には、600dpiぐらいで良いので、それぐらいで考えてみます。
>>663
Primo、BullZip、Acrobat Pro(これは評価版)を試してみたのですが、色のアルファ
ブレンドはうまくできませんでした。
0666デフォルトの名無しさん
2009/03/08(日) 23:11:08ああっすみません。
4800dpi→600dpiは>>661さんのご提案を取り入れての判断でした。
0667デフォルトの名無しさん
2009/03/08(日) 23:43:20だせえ
0668デフォルトの名無しさん
2009/03/09(月) 00:24:11まあ会社でも鼻つまみ者だろうけどw
0669デフォルトの名無しさん
2009/03/09(月) 00:48:190670デフォルトの名無しさん
2009/03/09(月) 01:20:050671デフォルトの名無しさん
2009/03/09(月) 01:39:590672デフォルトの名無しさん
2009/03/09(月) 02:35:300673デフォルトの名無しさん
2009/03/09(月) 02:42:080674デフォルトの名無しさん
2009/03/09(月) 02:52:260675デフォルトの名無しさん
2009/03/09(月) 09:25:54それより664が大人なのが重要
こんな人間に私はなりたい
0676デフォルトの名無しさん
2009/03/09(月) 14:04:49質問なのですが、ToolStrip上にtoolStripLabelを置いて、そのバックカラーを
変更したいのですが、BackColorプロパティーをいじっても変化ありません。
他のどこをいじれば変更できるのでしょうか?
そもそも、変更できない?
0677デフォルトの名無しさん
2009/03/09(月) 14:49:38一通りヘルプの解説読んでググってみたりしても"さっぱり"理解できないのなら手を出すには早いかもね
0678デフォルトの名無しさん
2009/03/09(月) 14:56:150679デフォルトの名無しさん
2009/03/09(月) 15:28:37なるほど、そのtoolStripLabelが乗ってるtoolStripのRendererModeで動作が変わるんですね。
RendererModeをSystemにしたら変更が反映されました。
ありがとうございます。
0680デフォルトの名無しさん
2009/03/11(水) 14:47:19それともそのスコープ抜けたときに勝手に開放してくれる?
0681デフォルトの名無しさん
2009/03/11(水) 14:53:400682デフォルトの名無しさん
2009/03/11(水) 17:24:03外に漏らしてないと断言できるならならあえてDisposeしない理由がない
0683デフォルトの名無しさん
2009/03/11(水) 17:47:50using使おうや
0684デフォルトの名無しさん
2009/03/11(水) 18:24:210685デフォルトの名無しさん
2009/03/11(水) 19:46:420686デフォルトの名無しさん
2009/03/11(水) 19:53:39なんで合理的な仕様じゃん。
そう思えないなら、ふらっとスレの議論じゃないけどDispoeのそもそもの意義が
わかってないんでしょ。
0687デフォルトの名無しさん
2009/03/11(水) 20:52:53例えばこういう場合に明示的にDisposeするべきなのか、しなくてもいいのか迷う
private void hogehoge(string fname)
{
Bitmap bmp = new Bitmap(fname);
this.pictureBox0.Image = (Image)bmp.Clone();
//bmp.Dispose();
}
0688デフォルトの名無しさん
2009/03/11(水) 20:54:48できるのにわざわざしない意味がない
0689デフォルトの名無しさん
2009/03/11(水) 21:01:27できるのにしないのは、C#ってそもそもそういう部分を気にせずにコーディングできるのが強みだから
使わなくなった変数やオブジェクトはGCで自動的に開放してくれるからC++みたいにメモリ管理で苦労しなくていいって触れ込みだった気がする
0690デフォルトの名無しさん
2009/03/11(水) 21:10:08>>687ではusingを書くか書かないかだけの違いだろ
0691デフォルトの名無しさん
2009/03/11(水) 21:10:130692デフォルトの名無しさん
2009/03/11(水) 21:54:24必要無くなったら破棄するのが良いよ
0693デフォルトの名無しさん
2009/03/11(水) 22:08:44.NETのBitmapは参照用途のつもりでもファイルをロックしてしまう
この例では pictureBox0 にクローンしたものを
わたしているから bmp は不要なんだが、Disposeしないと
GCが動くタイミングまで(いつかは不明)ファイルがロックされたままとなり、
結果、ファイルを削除あるいは移動しようと失敗してしまうことがありうる
よって、Disposeしとくべき
0694デフォルトの名無しさん
2009/03/11(水) 23:38:22開発上、とあるライブラリを仕様せよとの指令が下りました。
APIマニュアルはそれなりに整備されています。
しかしメソッドはプロパティーにアクセスした時に、
発行しうるExceptionの記述がまったく無いマニュアルでした。
そこでどのようなExceptionが発生するのか調査したいのですが、
ソースを直接参照できないため行き詰っております。
このような場合は、どのような調査を行ったほうが良いでしょうか・・・
0695デフォルトの名無しさん
2009/03/11(水) 23:42:460696デフォルトの名無しさん
2009/03/11(水) 23:47:100697デフォルトの名無しさん
2009/03/11(水) 23:47:440698デフォルトの名無しさん
2009/03/11(水) 23:54:11Instant C++ (C# Edition) ってのがあるけど、どの程度使える代物なのかは知らん
0699デフォルトの名無しさん
2009/03/12(木) 00:26:12アドバイスありがとうございます。
C# 逆コンパイルで引っかかったものに Reflector というものがあるのですが、
こちらはこの手の会席で使う定番ツールみたいですね。
0700デフォルトの名無しさん
2009/03/12(木) 00:39:19++C++;// 未確認飛行 C
ttp://ufcpp.net/
0701デフォルトの名無しさん
2009/03/12(木) 00:46:020702デフォルトの名無しさん
2009/03/12(木) 11:23:56.NET3.5はその辺大丈夫みたいよ
3.0からなのか3.5からなのかはわからないけどロックされることがなくなったっぽい
0703デフォルトの名無しさん
2009/03/12(木) 15:19:060704デフォルトの名無しさん
2009/03/12(木) 19:32:35むしろロックしない仕様の方に問題があると思うんだが。。
ロックしない仕様の方を大丈夫と表現する感覚が理解できない。
0705デフォルトの名無しさん
2009/03/12(木) 19:37:500706デフォルトの名無しさん
2009/03/12(木) 19:42:25何言ってんだか。
0707デフォルトの名無しさん
2009/03/13(金) 09:16:06メンバ変数hogeとコンストラクタやメソッドhoge()があるとき
this.a = foo;
とやると曖昧と言われてエラーが出るのですが
名称変更せずにこれを解決する方法はないでしょうか?
0708デフォルトの名無しさん
2009/03/13(金) 09:31:12どこに何があるのか分からん
曖昧と言われてエラーって台詞そのものが曖昧
0709デフォルトの名無しさん
2009/03/13(金) 09:36:47なにがなんだかわからない
0710デフォルトの名無しさん
2009/03/13(金) 09:47:16ぐだぐだ言わずにソースコード出せよ
お前の稚拙な説明では意味不明だ
0711デフォルトの名無しさん
2009/03/13(金) 10:19:15吹いたwww
0712デフォルトの名無しさん
2009/03/13(金) 11:14:40ワロタ
赤くしとこ
0713デフォルトの名無しさん
2009/03/13(金) 12:31:09class hoge
{
int hoge;
public hoge()
{
}
public void hoge()
{
}
public void hoge(int foo)
{
this.hoge = foo;//エラー
}
}
こんな感じなのですが
0714デフォルトの名無しさん
2009/03/13(金) 12:35:31名前変える以外にない
0715デフォルトの名無しさん
2009/03/13(金) 12:43:43・メソッドのオーバーロード以外で同じ名前のメンバが複数存在することはできない
0716デフォルトの名無しさん
2009/03/13(金) 12:50:350717デフォルトの名無しさん
2009/03/13(金) 12:59:09class Hogeで、
public static implicit operator Hoge(int intValue)
return new Hoge(intValue);
でHoge hoge = 1;みたいにしてインスタンスの生成が可能で、
public static implicit operator int(Hoge hoge)
return hoge.IntValue;
で、int a = hoge;みたいな定義型変換ができるけど、
インスタンスを生成しないで代入するhoge = 1;ってできたっけ
代入演算子はオーバーロードできないから無理なんだっけ?
0718デフォルトの名無しさん
2009/03/13(金) 13:05:27hoge = new Hoge { intValue = 1; };と同じ
新しくインスタンスを作らずにintValueだけ変えるのは無理
0719デフォルトの名無しさん
2009/03/13(金) 13:10:19hoge.IntValue = 1;
とか
hoge.SetInt(1);
とかしかないのか。
どっちかというこ後者かな?
0720デフォルトの名無しさん
2009/03/13(金) 14:07:250721デフォルトの名無しさん
2009/03/13(金) 22:15:09public static implicit operator Hoge(int value)
じゃなかったっけ?
Hoge a = 1;
こう使いたいんでしょ?
XNamespace かなんかで使ってるように
0722デフォルトの名無しさん
2009/03/13(金) 22:18:110723デフォルトの名無しさん
2009/03/13(金) 22:23:47ポインタ的な操作(delegate等)をどう簡単に実装するかのジレンマだな
0724デフォルトの名無しさん
2009/03/14(土) 08:16:030725デフォルトの名無しさん
2009/03/14(土) 08:51:160726デフォルトの名無しさん
2009/03/14(土) 08:52:520727デフォルトの名無しさん
2009/03/14(土) 17:27:22するとコンパイルエラーが発生し困っています。
エラーメッセージも以下に用意しました。
私が用意した文のどこがおかしいのでしょうか?
this.textBox2.KeyPress += new System.EventHandler(this.textBox2_KeyPress);
private void textBox2_KeyPress(object sender,
System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar < '0' || e.KeyChar > '9')
{
e.Handled = true;
}
}
デリゲート 'System.EventHandler' に一致する 'textBox2_KeyPress' のオーバーロードはありません。 (CS0123) - C:\Users\masamune\Documents\SharpDevelop Projects\Hello\MainForm.Designer.cs:74,30
0728デフォルトの名無しさん
2009/03/14(土) 17:32:39KeyPressEventArgs
↓
EventArgs
0729デフォルトの名無しさん
2009/03/14(土) 17:34:20ここがおかしい。
普通に KeyPress イベント作って、Designer.cs の中身を確認してみれば
いいと思うよ。
0730デフォルトの名無しさん
2009/03/14(土) 17:38:49そういうエラーメッセージが出たら、とりあえずMSDNで
System.EventHandlerを検索する。
http://msdn.microsoft.com/ja-jp/library/system.eventhandler(VS.80).aspx
デリゲートのシグネチャが
public delegate void EventHandler (
Object sender,
EventArgs e
)
であると書いてある。で、textBox2_KeyPressメソッドはこの
シグネチャと一致していない(第二引数の型が一致しない)。
そこを直すとまたエラーメッセージが出ると思うので、そのエラー
に関連すると思われるトピックをMSDNで調べる。これを繰り返す。
0731デフォルトの名無しさん
2009/03/14(土) 17:43:26>>729
即レスあざーす。
早速試してみます。
Cを数年かじっている経験から感覚的に進めてたら急に壁が出来てしまってw
0732デフォルトの名無しさん
2009/03/14(土) 17:44:04あざーす
0733デフォルトの名無しさん
2009/03/14(土) 20:44:090734デフォルトの名無しさん
2009/03/14(土) 20:47:320735デフォルトの名無しさん
2009/03/14(土) 20:55:340736デフォルトの名無しさん
2009/03/14(土) 20:56:340737デフォルトの名無しさん
2009/03/14(土) 21:03:280738デフォルトの名無しさん
2009/03/14(土) 21:10:01つまり(お前の意見じゃあてにならないから)他の意見くれってことだろ
0739デフォルトの名無しさん
2009/03/15(日) 01:32:44ボケのレベルが低い。
俺様がまぢレスしてやる。
安産です。
0740デフォルトの名無しさん
2009/03/15(日) 01:34:280741デフォルトの名無しさん
2009/03/15(日) 01:34:490742デフォルトの名無しさん
2009/03/15(日) 01:35:590743デフォルトの名無しさん
2009/03/15(日) 03:38:240744デフォルトの名無しさん
2009/03/15(日) 09:20:26C# の public static class というのはVBで言うところの public shared class みたいなもので
ほぼVB.NETのモジュール的な考え方でいいんでしょうか?
0745デフォルトの名無しさん
2009/03/15(日) 09:45:37テキストボックスの横にボタンがあって、1つのセルに組み合わさったようなものをC#で作成したいんですが
何か簡単な方法はありませんか?
Cellを継承して自作するしかないんでしょうか?
0746デフォルトの名無しさん
2009/03/15(日) 11:18:35たとえば、System.Mathクラスは
public static class なんだけど、じゃあMathクラスはVB.NETのモジュール的なもの?
君のいうところのVB.NETのモジュールが何を指すのか分からんので答えようがないが。
普通に"静的クラス C#"でググったほうが早いよ
0747デフォルトの名無しさん
2009/03/15(日) 11:28:01VBとC#の両方知ってる人なんて山ほどいるんだから、知らなければ
黙ってればいいと思うんだが。
おれは、ぐぐって
http://www.rocksthoughts.com/blog/archive/2008/03/11/extension-method-implementation-differences-between-c-and-vb.net.aspx
これ見て、ふうんと思ったが、<Extension()>なんてアトリビュート
知らないから、コメントしなかった。
0748デフォルトの名無しさん
2009/03/15(日) 11:33:18偉い偉い立派だよ君
レスしなければもっと偉かったのにね!
0749デフォルトの名無しさん
2009/03/15(日) 11:52:28おいおい、2つのコードやページのタイトルを見ればExtensionが属性がなんなのか想像がつくだろうに。
0750デフォルトの名無しさん
2009/03/15(日) 12:07:30746さん、ちーす
0751デフォルトの名無しさん
2009/03/15(日) 12:10:500752デフォルトの名無しさん
2009/03/15(日) 13:13:27そりゃ想像はできるさ。ぐぐって見つけて概要を想像したのを、
そのままここに書いたらただの知ったか妄想じゃないか。
要するに、ちゃんとした回答ができればいいけど、
できないから書かなかったということ。
その次にこのスレに来たら、変な回答しかついてなかったから、
あえて留保(=言い訳)付でリンクを提示した。
リンクは提示したんだから、質問者が読みたければ、それを読んで
自分で判断すればいい。
0753デフォルトの名無しさん
2009/03/15(日) 13:21:390754デフォルトの名無しさん
2009/03/15(日) 14:30:03というかそもそも元の質問が拡張メソッドの話でないのだから、
蛇足になる拡張メソッドについて言及しているところは避けようよ。
>>744
少なくとも構文上は、ほぼVB.NETのモジュールのような存在という考え方でいい。
細かい話をすれば、C#の視点から見たVB.NETのModuleとは、
単にStandardModule属性付きの静的クラス。
そもそもVB.NETでClassにSharedは付けられない気がするけど。
0755デフォルトの名無しさん
2009/03/15(日) 14:33:43ごちゃごちゃ言わずに、
黙ってればいいのに
0756デフォルトの名無しさん
2009/03/15(日) 18:51:030757デフォルトの名無しさん
2009/03/15(日) 19:11:220758デフォルトの名無しさん
2009/03/15(日) 19:18:010759デフォルトの名無しさん
2009/03/16(月) 00:29:10つまり default(T) みたいなことをしたいんだが。
0760デフォルトの名無しさん
2009/03/16(月) 00:48:090761デフォルトの名無しさん
2009/03/16(月) 01:13:14それだとインスタンスを生成するのでだめなんだ。
0762デフォルトの名無しさん
2009/03/16(月) 01:16:050763デフォルトの名無しさん
2009/03/16(月) 01:18:46数値や列挙型だと0、参照型だと null、構造体 T だと new T() と同じになる。
0764デフォルトの名無しさん
2009/03/16(月) 01:24:400765デフォルトの名無しさん
2009/03/16(月) 01:26:49object o = t.IsValueType ? Activator.CreateInstance(t) : null;
0766デフォルトの名無しさん
2009/03/16(月) 01:27:370767デフォルトの名無しさん
2009/03/16(月) 01:39:06Activator.CreateInstance()がnullを返す。
0768デフォルトの名無しさん
2009/03/16(月) 01:42:270769デフォルトの名無しさん
2009/03/16(月) 22:47:55入ってるキーのうち「X以下で最大の数」ってのを
2分法で求めたいんだが自分で書くしかない?
そういう関数があってもよさそうなもんだが。
0770デフォルトの名無しさん
2009/03/16(月) 22:57:340771デフォルトの名無しさん
2009/03/16(月) 23:35:23ttp://msdn.microsoft.com/ja-jp/library/system.array.binarysearch(VS.80).aspx
0772デフォルトの名無しさん
2009/03/16(月) 23:51:44あんがと
0773デフォルトの名無しさん
2009/03/17(火) 01:33:53特定の値を探すんならそれでいいだろうけど、
X以下で最大の数 みたいに特殊な条件で検索するには向かないのでは
Array.BinarySearchでなくとも、List.BinarySearchやSortedList.ContainsもO(log n)
0774デフォルトの名無しさん
2009/03/17(火) 01:50:510775デフォルトの名無しさん
2009/03/17(火) 01:58:370776デフォルトの名無しさん
2009/03/17(火) 08:41:16汎用性を求めているわけじゃないんだから、
Xのインデックスを求めてそこから範囲指定BinarySearchじゃないかな
0777デフォルトの名無しさん
2009/03/17(火) 13:55:39ブログとかに使われるWEB認証の歪んだ数字の画像なんだけど
あれってそのURLにアクセスする度に表示される画像変わるじゃん。
サーバー側はどうやって自分が出力した画像に書いてあるナンバーと
クライアントが打ち込んだ数字のナンバーが合致しているかを認証するんだろう。
この仕組みご存じの方居ますか?
0778デフォルトの名無しさん
2009/03/17(火) 14:02:280779デフォルトの名無しさん
2009/03/17(火) 14:12:100780デフォルトの名無しさん
2009/03/17(火) 14:18:260781デフォルトの名無しさん
2009/03/17(火) 14:29:27usernameごとに認証ナンバーを発行してるだけ
0782デフォルトの名無しさん
2009/03/17(火) 14:36:11詳細はCAPTCHAでググるよろし
0783デフォルトの名無しさん
2009/03/17(火) 14:48:42あー、なるほど。
納得!
じゃあ認証されないって事は
やっぱりリクエスト2回投げちゃってるのかなー。
>>782
有益な情報ありがとう。
調べてみます。
0784デフォルトの名無しさん
2009/03/17(火) 20:17:52正規表現で複雑な処理がしたくて・・・
0785デフォルトの名無しさん
2009/03/17(火) 20:27:02string str = Regex.Replace(
input,
@"\d+",
(m) => Int32.Parse(m.ToString()).ToString("000")
);
0786デフォルトの名無しさん
2009/03/17(火) 20:33:53re.sub()のreplに関数を渡すという話ではなくて?
0787デフォルトの名無しさん
2009/03/17(火) 20:40:06プロパティからインスタンスを作成したいのですがどのコンストラクタを選べばいいのでしょうか?
0788デフォルトの名無しさん
2009/03/17(火) 21:12:370789デフォルトの名無しさん
2009/03/17(火) 21:20:070790デフォルトの名無しさん
2009/03/17(火) 21:25:180791デフォルトの名無しさん
2009/03/17(火) 21:28:26クラスのインスタンスを作成したらオブジェクトと同じで、インスタンスはオブジェクトということでいいでしょうか。
クラスは型で作成したらオブジェクトですか?
0792デフォルトの名無しさん
2009/03/17(火) 21:29:240793デフォルトの名無しさん
2009/03/17(火) 21:39:49そういう基本的な部分があいまいな人かなりいると思うぞ。
俺は今から風呂入ってくる。
0794デフォルトの名無しさん
2009/03/17(火) 21:41:09風呂でじっくり纏め上げて来い
0795デフォルトの名無しさん
2009/03/17(火) 21:47:350796デフォルトの名無しさん
2009/03/17(火) 22:02:35半年ROMってろカスって言われたらむかつくだろ?
0797デフォルトの名無しさん
2009/03/17(火) 22:07:460798デフォルトの名無しさん
2009/03/17(火) 22:21:490799デフォルトの名無しさん
2009/03/17(火) 22:26:460800デフォルトの名無しさん
2009/03/17(火) 22:32:09描画の仕方詳しく教えて下さい。
ぐぐってもうまくいきません
0801デフォルトの名無しさん
2009/03/17(火) 22:33:000802デフォルトの名無しさん
2009/03/17(火) 22:33:41よくわからないけど、これを試してみたら?
http://youryella.wankuma.com/Library/Extensions/Control/Default.aspx
0803デフォルトの名無しさん
2009/03/17(火) 22:40:35Console.WriteLine("○");
0804デフォルトの名無しさん
2009/03/17(火) 22:41:440805デフォルトの名無しさん
2009/03/17(火) 22:51:040806デフォルトの名無しさん
2009/03/17(火) 22:54:500807デフォルトの名無しさん
2009/03/17(火) 22:59:28Rect theRect;
PenSize(2,2);
SetRect(theRect,20,20,70,70);
FrameOval(theRect);
0808デフォルトの名無しさん
2009/03/17(火) 23:05:180809デフォルトの名無しさん
2009/03/17(火) 23:09:530810デフォルトの名無しさん
2009/03/17(火) 23:11:130811デフォルトの名無しさん
2009/03/17(火) 23:16:46でもさ、>>800みたいな超基本みたいな質問する人ってなんだかな、って気がしない?
こんなことぐらい、本の4,5冊でも見れば簡単にわかるだろうに。
0812デフォルトの名無しさん
2009/03/17(火) 23:23:03そこで同じようなレスが繰り返され
さらなる初心者スレが建つことが繰り返されるのであった
0813デフォルトの名無しさん
2009/03/17(火) 23:34:404,5冊もいらんだろw
もし4,5冊読まないと分からないような問題だとしたら
ここで質問するべき問題だと思うんだが。
0814786
2009/03/17(火) 23:38:250815デフォルトの名無しさん
2009/03/17(火) 23:57:190816デフォルトの名無しさん
2009/03/18(水) 00:02:320817デフォルトの名無しさん
2009/03/18(水) 00:14:110818デフォルトの名無しさん
2009/03/18(水) 00:29:40実際にそれが現実解ってこともなくはないしなw
0819デフォルトの名無しさん
2009/03/18(水) 00:42:54>>800
円を描画するんなら、Controlの派生クラスの中でGraphicsクラスを使えばいい。
例えばこんな感じ。
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawString("円", Font);
}
0820デフォルトの名無しさん
2009/03/18(水) 00:43:540821デフォルトの名無しさん
2009/03/18(水) 12:55:100822デフォルトの名無しさん
2009/03/19(木) 09:26:04何らかの描画命令(たとえばfont.DrawText)を1フレームに300回くらいやると、
描画命令の増加に従って徐々にFPSが落ちていきます。
描画命令をコメントアウトすると治るのでそれ以外が原因になっているとは考えにくいです。
また、テクスチャの有無やアルファの有効無効、頂点数にも影響されないようです。
デバイスの初期化はこうやっています
Direct3D.PresentParameters param = new PresentParameters();
param.Windowed = true;
param.SwapEffect = SwapEffect.Discard;
param.MultiSample = MultiSampleType.EightSamples;
device = new Direct3D.Device(0,Microsoft.DirectX.Direct3D.DeviceType.Hardware, wind,CreateFlags.HardwareVertexProcessing, param);
device.RenderState.CullMode = Cull.None;
device.RenderState.Lighting = false;
device.RenderState.AlphaBlendEnable = true;
device.SetTextureStageState(0, TextureStageStates.AlphaOperation, (int)Microsoft.DirectX.Direct3D.TextureOperation.Modulate);
device.SetTextureStageState(0, TextureStageStates.AlphaArgument1,(int)Microsoft.DirectX.Direct3D.TextureArgument.TextureColor);
device.SetTextureStageState(0, TextureStageStates.AlphaArgument2,(int)Microsoft.DirectX.Direct3D.TextureArgument.Current);
device.RenderState.SourceBlend = Blend.SourceAlpha;
device.RenderState.DestinationBlend = Blend.InvSourceAlpha;
D3DTex.Direct3DDevice = device;
verts = new CustomVertex.TransformedColoredTextured[10];
vertexBuffer = new VertexBuffer(typeof(CustomVertex.TransformedColoredTextured), 5000, device, 0, CustomVertex.TransformedColoredTextured.Format, Pool.Managed);
sprite_ = new Sprite(device);
ClientSize_ = wind.ClientSize;
どうかご教授願います。
0823デフォルトの名無しさん
2009/03/19(木) 11:09:17悪化するのは、この手の処理では常識だと思います。
0824デフォルトの名無しさん
2009/03/19(木) 11:12:520825デフォルトの名無しさん
2009/03/19(木) 11:36:57それはそうなんですが、表示してるのはただのスプライト(4頂点)なんです。
C2DにGeforce8600GTをつんでいるのに400スプライトで15FPSもでないのできっと何かが悪いのだとは思いますが・・・。
スプライトの描画部はこうなってます。これより前にテクスチャの設定や頂点の設定があります。
Draw2Dは使っていません。
triは描画する三角形の数で四角いスプライトなので通常2を設定。
if (device == null) return;
GraphicsStream stm = vertexBuffer.Lock(0, 0, 0);
stm.Write(verts);
vertexBuffer.Unlock();
device.SetStreamSource(0, vertexBuffer, 0);
device.VertexFormat = CustomVertex.TransformedColoredTextured.Format;
device.DrawPrimitives(ptype, 0, tri);
cPolygon += tri;
0826デフォルトの名無しさん
2009/03/19(木) 11:46:11可能な限り同じテクスチャでまとめて書き込んでまとめて描画しろ
0827デフォルトの名無しさん
2009/03/19(木) 11:46:41stm.Write(verts);
vertexBuffer.Unlock();
↑この処理を400回やってるなら重くなって当り前かと
DrawPrimitiveで描いてるって事はGRAMをロックしてんだろ?
何れにせよDrawPrimitivesを数百回呼び出したら重い
数百枚のスプライトをオンメモリ上に1つのプリミティブで作成しといて
CPU側で座標指定してDrawPrimitiveUpとかやれば大分違うと思う
Managed DirectXはよく知らないけど
0828デフォルトの名無しさん
2009/03/19(木) 11:48:20バッチ処理は基本だが、にしても遅すぎるな
マネージコードのGCが暴れている可能性もあるからCLRProfilerとかで要調査
0829デフォルトの名無しさん
2009/03/19(木) 11:48:51「メモリのロック」の意味がよくわかりません
必要な呪文程度に思ってます
このロックとは具体的にはどういう動作をしてるんでしょうか?
0830デフォルトの名無しさん
2009/03/19(木) 11:51:28なるほど。
DrawPrimitivesの小口多数実行とDrawTextのやりすぎの複合要因だったんですね・・・。
テクスチャごとに1回ずつDrawPrimitivesを実行し、DrawTextの使用を見直してみます。
お答えくださった皆様、本当にありがとうございました。
改良に取り組んでみます!
0831デフォルトの名無しさん
2009/03/19(木) 12:06:36そこ今から俺が触るからおまえら触るなよ!!
ってこと
0832デフォルトの名無しさん
2009/03/19(木) 12:14:45テクスチャ毎に描画というのは各頂点をGraphicsStreamに書き込んで
DrawPrimitives(PrimitiveType.TriangleList,0,(描画するテクスチャの場所*2));
で良いのですか?
0833デフォルトの名無しさん
2009/03/19(木) 13:12:45ググればすぐにわかるだろうにw
ttp://www.stackasterisk.jp/tech/dotNet/csharp07_04.jsp
0834デフォルトの名無しさん
2009/03/19(木) 13:29:17理解しました、ありがとう
0835デフォルトの名無しさん
2009/03/19(木) 20:17:12どちらを選択した方が良いのでしょうか。格納するデータが増えることは
無いので拡張性を考慮する必要はありませんが、ググってもイマイチ分からず…。
・KeyValuePair<string,string>
・Key,Valueのstringを持ったクラス
0836デフォルトの名無しさん
2009/03/19(木) 20:30:130837デフォルトの名無しさん
2009/03/19(木) 20:32:150838デフォルトの名無しさん
2009/03/19(木) 21:06:17.NET2.0以降のHashtable実装はDictionaryクラス
詳しく知りたいなら「データ構造とアルゴリズム」でぐぐればいいよ
0839デフォルトの名無しさん
2009/03/19(木) 21:16:08簡単にHashtable/Dictionaryを挙げるのは早計だ
0840デフォルトの名無しさん
2009/03/19(木) 21:19:07>>835
0841デフォルトの名無しさん
2009/03/19(木) 21:22:40KeyValuePairは構造体だから出し入れ遅いよ
0842デフォルトの名無しさん
2009/03/20(金) 07:57:03自作するしかない?
0843デフォルトの名無しさん
2009/03/20(金) 08:01:540844デフォルトの名無しさん
2009/03/20(金) 08:12:590845デフォルトの名無しさん
2009/03/20(金) 08:16:32「メモリを50GB積むからこのデータを処理できるようにしてくれ」
って要求が来たんだ。
0846デフォルトの名無しさん
2009/03/20(金) 08:21:310847デフォルトの名無しさん
2009/03/20(金) 08:43:44そのやり方は上手くいかないと思うわwww
IList<T>インターフェイスを提供するDBオブジェクト自作したほうがいいよwww
0848デフォルトの名無しさん
2009/03/20(金) 08:50:10DBってディスクに書き込むイメージがあったんだがそうでもない?
金(50GBのメモリ分)がかかっても速いほうがいいんだが。
0849デフォルトの名無しさん
2009/03/20(金) 08:53:550850デフォルトの名無しさん
2009/03/20(金) 08:57:42ありがと。
0851デフォルトの名無しさん
2009/03/20(金) 11:43:190852デフォルトの名無しさん
2009/03/20(金) 11:44:450853デフォルトの名無しさん
2009/03/20(金) 11:54:420854デフォルトの名無しさん
2009/03/20(金) 12:45:42このため64bitの.NET Frameworkなら4GB越えの配列を扱える。
32bitの.NET Frameworkでもlongが使えるが、intの範囲を使い切る前にmemory不足に陥る。
64bitの.NET FrameworkならListなどのコレクションもトータルで4GB以上使えるが、
添え字がint限定なのでそれが上限になる。
0855デフォルトの名無しさん
2009/03/20(金) 13:51:31OSのディスクキャッシュとかDBのメモリキャッシュに50GBメモリを活用してもらえば、
十分なパフォーマンスが出ると思うがね
0856デフォルトの名無しさん
2009/03/20(金) 14:23:45十分なパフォーマンスが要件ではなく、
メモリで動作することなんじゃね?
要件定義を間違えるとそうなる。
0857デフォルトの名無しさん
2009/03/20(金) 14:41:19一体何をしようとしてるんだ。
0858842
2009/03/20(金) 14:56:580859デフォルトの名無しさん
2009/03/20(金) 21:46:130860デフォルトの名無しさん
2009/03/20(金) 21:51:47まぁ自分的にはF#を使いたいと子だが
0861デフォルトの名無しさん
2009/03/20(金) 22:06:16普通にC#で書いたプログラムを、64bit環境で実行すればよい。
0862デフォルトの名無しさん
2009/03/20(金) 23:18:41周期的に座標を変化させていけばいいのか、他になにか方法があるのか・・
現在までのソースを示しておきます。
namespace circ
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
void MainFormPaint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen pen = new Pen(Color.Green, 1);
g.DrawEllipse(pen, 60, 60, 30, 30);
}
}
}
0863デフォルトの名無しさん
2009/03/20(金) 23:40:590864デフォルトの名無しさん
2009/03/21(土) 00:08:26Forms アプリなら Timer 使え。
0865デフォルトの名無しさん
2009/03/21(土) 00:52:33ランタイムが入っていない場合の動作を定義するにはどうしたらよいのでしょうか?
FileNotFoundExceptionがthrowされることはわかったのですが、
どの時点でtry catchするべきかよくわかりません・・・。
using System・・・
(略)
using Microsoft.DirectX.Direct3D;
using Direct3D = Microsoft.DirectX.Direct3D;
Direct3D.Device = null;
try
{
Direct3D.Device = new Direct3D(なんとか);
}
catch(Exception e)
{
System.Diagnostics.Debug.MessageBox.Show(e.ToString());
}
のような書き方をすると、
newをしくじった時のcatchはできるんですがDevice型自体を宣言できなった時にcatchするにはどのようにコーディングすればよいのでしょうか?
0866デフォルトの名無しさん
2009/03/21(土) 00:59:060867デフォルトの名無しさん
2009/03/21(土) 01:00:56うおおおお
ああああありがとう!!!
0868デフォルトの名無しさん
2009/03/21(土) 01:33:51ピンポンの動きはよく分からんが、
こんな感じのものを作りたい?
using System;
using System.Drawing;
using System.Windows.Forms;
namespace circ {
public class MainForm : Form {
Timer timer;
int x;
int y;
public MainForm() {
Paint += new PaintEventHandler(MainForm_Paint);
timer = new Timer();
timer.Tick += new EventHandler(timer_Tick);
timer.Interval = 500;
timer.Enabled = true;
}
void MainForm_Paint(object sender, PaintEventArgs e) {
e.Graphics.DrawArc(Pens.Green, x, y, 10, 10, 0, 360);
}
void timer_Tick(object sender, EventArgs e) {
x = (x + 10) % Width;
y = (y + 20) % Height;
Invalidate();
}
}
}
0869デフォルトの名無しさん
2009/03/21(土) 10:09:56ありがとう御座います。
動きの基本はそれです。
頂いたソースをベースに以下の仕様を考えています。
�@スタート時、円は二個
�A円の動きは直線
�Bスタート時二個円の直進方向は異なる
�C壁にぶつかって跳ね返る
�D二個の円がぶつかると円が1個増える。
�E増えた円も直線動作を行う。
�F繰り返し
円同士がぶつかる判定と円を増やしていくにはどうしたらいいんでしょうか?
0870デフォルトの名無しさん
2009/03/21(土) 10:18:292.円をList<円>等で保持しておいて、衝突したら新しい円を追加する
0871デフォルトの名無しさん
2009/03/21(土) 11:10:16全部ココで質問するつもりか?
0872デフォルトの名無しさん
2009/03/21(土) 11:14:120873デフォルトの名無しさん
2009/03/21(土) 11:21:490874デフォルトの名無しさん
2009/03/21(土) 11:23:28ふらっとC#,C♯,C#(初心者用) Part39
http://pc11.2ch.net/test/read.cgi/tech/1237051173/
0875デフォルトの名無しさん
2009/03/21(土) 12:46:360876デフォルトの名無しさん
2009/03/21(土) 12:47:58C#,C#の宿題片付けます。
http://pc11.2ch.net/test/read.cgi/tech/1197620454/l50
0877デフォルトの名無しさん
2009/03/21(土) 12:48:180878デフォルトの名無しさん
2009/03/21(土) 12:58:290879デフォルトの名無しさん
2009/03/21(土) 17:01:240880デフォルトの名無しさん
2009/03/21(土) 18:36:280881デフォルトの名無しさん
2009/03/22(日) 10:20:32表示位置を制御する方法はないでしょうか。
↓でも議論されていますが、具体的な方法が分かりません…。
ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=1692&KLOG=10
0882デフォルトの名無しさん
2009/03/22(日) 10:39:38となると、それを誤魔化すか、デフォルトの動作をフックして、
位置を指定して表示するしかないでしょ。
0883デフォルトの名無しさん
2009/03/22(日) 10:51:50準拠したいという所なんです…。良い方法ないものでしょうか。
0884デフォルトの名無しさん
2009/03/22(日) 10:59:44そいつを握りつぶしつつ、Show() すればいいんじゃね?
0885デフォルトの名無しさん
2009/03/22(日) 13:38:371.値を代入したときは値を正規化してからいれる(負値だったら正値に、2π以上だったら2πで剰余算)
2.値を参照するときはそのまま参照
3.floatと同じように扱える
プロパティを使って実装すると次のようになりますが
class RegularizedAngle
{
private float InAngle;
public float Angle
{
get { return Angle; }
set
{
//Angleが負値だったら正値に
if (Angle < 0) Angle = PIx2 + Angle;
//Angleが2π以上だったら2πで剰余算
Angle %= (float)(Math.PI * 2f);
}
}
}
これを普通のfloatと同じように扱いたいんです。
たとえば
RegularizedAngle Ang = (float)(Math.PI * 2f); //すなわち6.28・・・の代入
Ang += 1; //代入したとき内部で正規化がおこなわれて1になる。
Ang += Ang;
//これで2になる?こんなかんじで見た目を組み込み型みたいにしたいんです。
しかし上記のプロパティをつかった方法だとアクセスするときに
Ang.Angle としなければなりませんし、宣言するときにはnewが必要です
組み込み型へのオーバーライドとかでできるのでしょうか?
0887デフォルトの名無しさん
2009/03/23(月) 01:16:270888デフォルトの名無しさん
2009/03/23(月) 01:48:39あとC#じゃなくて.NETのコンポーネントだけど
System.Windows.Forms.WebBrowserが同等かな。
(もしくはWPFでそれに相当する物)
もちろんもっと低レベルのものもあります。
0889887
2009/03/23(月) 02:04:56見てみます
0890デフォルトの名無しさん
2009/03/23(月) 18:23:08hProcess.PriorityClass = ProcessPriorityClass.BelowNormal;
このように外部プロセスの優先度を変更しようとするコードをF5「デバッグ開始」で実行すると、エラーが発生し、
エラーメッセージは「アクセスが拒否されました。」となっています。
また、Ctrl+F5「デバッグなしで開始」で実行すると、問題なく動きます。
デバッグありでこのコードを動かすことはできないのでしょうか?
0891デフォルトの名無しさん
2009/03/23(月) 20:14:28とりあえず VS(devenv) を昇格起動してみな
0892デフォルトの名無しさん
2009/03/23(月) 20:50:03レスありがとうごいます。
昇格起動とは管理者権限で実行ということでしょうか?
AdministratorでログインしUACをオフ、devenv.exeを右クリックから管理者として実行を選択しましたが、
依然として「アクセスが拒否されました」になってしまいます。。。
0893デフォルトの名無しさん
2009/03/23(月) 20:58:17ありゃ、とりあえず昇格すれば大丈夫だった気がするが。
まぁ駄目ならしゃーない。利便性落ちるけどこの手で。
プロジェクトの Properties
→ デバッグ
→ Visual Studio ホスティングプロセスを有効にする
のチェックをはずす。デバッグなしでいけるならこれでどうよ。
これで駄目ならセキュリティとかゾーンの設定見直してとしか
いえん
0894デフォルトの名無しさん
2009/03/23(月) 21:12:13ホスティングプロセスのチェックを外したところうまく動きました。
現在のところホストプロセスを無効にしても、あまり問題はないようなのでこれでいこうと思います。
ありがとうございました。
0895デフォルトの名無しさん
2009/03/24(火) 00:31:48WndProcでWM_KEYDOWNが発生したときに、
StrKey = new StringBuilder();
GetKeyNameText(msg.LParam, StrKey, StrKey.Capacity);
として押されたキー名を取得しているのですが、例えば「Ctrl+A」の時など
StrKeyにCtrlが入ってしまい、「A」が取得できません。
※AやShift+A、Alt+Aの時などは普通に拾えます。
WParamにはAを示す値(65)が入っているので何か方法はあるのでは
無いかと思っているのですが…。宜しくお願いします。
0896デフォルトの名無しさん
2009/03/24(火) 08:59:45Ctrl+A押下時のイベントが発生していないようでした。
Ctrl+B等は問題無いのですが…。TextBoxを継承しているのが問題なのか…。
もう少し色々調べてみます。失礼しました。
0897デフォルトの名無しさん
2009/03/24(火) 10:34:41ShortCutsEnabledをFalseにしてみるとか
0898895
2009/03/24(火) 11:23:25ttp://www.atmarkit.co.jp/fdotnet/dotnettips/243winkeyproc/winkeyproc.html
結果的に、WndProcで行っていた処理をProcessCmdKeyに移すだけで
解決できました。失礼しました。
0899デフォルトの名無しさん
2009/03/25(水) 11:33:54ブラウザの仕組みについてなんですが
ブラウザはどうやって同一タイミングでターゲットURLのHTTP情報、
さらにHTTPを解析してその先にある画像データの取得を一意的に行っているのでしょうか。
それをC#でIEコントロールを用いずに実現する方法はありますか?
たとえば今HttpWebRequestを使って試しているのですが
これでは1インスタンスにつき HttpWebRequest req = new HttpWebReqest.Create(url);
といった具合に一つのURLしか指定できません。
これによってサイト全体のHTTPをゲットする事が出来るのですが
1画像を取得しようと思った時には、その画像のURLをもって別インスタンスでCreateしなければならないんですが
一つのリクエストで全ての画像、サイト全体のHTTPを取得する方法はありませんか。
どなたか知恵をお貸しください。
0900デフォルトの名無しさん
2009/03/25(水) 11:40:52自分で作るか誰かが作ったのを使うしか。
サイト全部取得は場所によってはアクセス遮断されるかも。
0901デフォルトの名無しさん
2009/03/25(水) 11:49:55って単に手抜きたいだけか
0902デフォルトの名無しさん
2009/03/25(水) 11:57:49セッション管理を行っているサイトにリクエストした場合に
1セッションと認めさせたいからです。
0903デフォルトの名無しさん
2009/03/25(水) 12:01:39// KeepAliveで接続自体は一つかもしれんが
セッションとは関係ねーよ
0904899
2009/03/25(水) 12:03:05やはりリクエストごとに別セッションと認識する物なんでしょうか。
要は1セッションと認めさせる事が出来、なおかつIEコントロールを使わない方法があれば
HttpWebRequest以外でもなんでもいいんですが・・・><;
0905899
2009/03/25(水) 12:04:35ああ!やはりそうなんですね!
一つのリクエストじゃないのですねー。
keepAliveを使えば接続は一つになるのか〜!ふむふむ!
0906デフォルトの名無しさん
2009/03/25(水) 12:41:570908デフォルトの名無しさん
2009/03/25(水) 17:34:36現在
[serializable]
public class A
{
public int id;
public datetime date;
public long data;
public long data2;
}
のようなクラスが存在し、これを50mSec程度の間隔で追記だけを行います。
このファイルには60万件のクラスAが入る可能性があります。
このとき出来るだけ高速に書き込む方法を教えて頂きたいのです。
また、この書きこんだクラスAの入ったバイナリファイル(60万件)を
例えば List<A> にデシリアライズ?してやるにはどうすればいいのでしょうか?
0909デフォルトの名無しさん
2009/03/25(水) 17:37:380910デフォルトの名無しさん
2009/03/25(水) 17:52:59読み込み時にbinaryReaderで読み込見ながらAddしたほうがいいような・・・
0911デフォルトの名無しさん
2009/03/25(水) 18:06:25俺ならSQLite使うけど。
0912デフォルトの名無しさん
2009/03/25(水) 18:38:42レスありがとうございます。
DBに関してはちょっと使えないのです。
>>910と>911を組み込んでみてチェックして速度が出る方を選んでみます。
ありがとうございました。
0913デフォルトの名無しさん
2009/03/25(水) 20:49:33何かの動作が始まって、それが何かのエラーを起こして制御が
返ってこない場合があり、その結果アプリケーション本体がハング
アップしてしまうことがときどきありました。こういうケースでもその
状態から復帰して他の作業ができるようにしたいのですが良い方法
があれば教えて頂きたく。何卒よろしく。
0914デフォルトの名無しさん
2009/03/25(水) 20:57:08なのか、あるいは返信待ちなのか、何らかの動作をしているときに
エラーが起きて制御が返って来ないまま、アプリケーション全体が
キーもマウスも受け付けなくなる時があり、対策をどうするべきかわからず
困っております。WebBrowserの外からそうした動作を監視していて
一定時間たったらどうなったか調べるなどといったことをするべきなのか、
あるいはなんらかの方法でそういう応答なしになった状態から復帰可能
なのか、わかっていないのですがアドバイスもしくはご解説をいただけたら
ありがたく。よろしくお願いします!
0915913, 914
2009/03/25(水) 21:03:02何度かリロードして確認しても反映されておらず、しかも書き込みした
内容がエディタに残らなかったため、同じ質問を再度書いて送信して
こうなってしまいました。再掲申し訳ありません。
0916デフォルトの名無しさん
2009/03/26(木) 00:20:58半透明のグラデーションは出来ますか?
具体的に言うと、四角いフォームの場合一番上が不透明で
下に行くに従って透明度が増していく感じのフォームを作りたいのです。
よろしくお願いします。
0917デフォルトの名無しさん
2009/03/26(木) 01:08:16Form じゃ無理かなぁ。いや、無理というより意味がないというか…。
0918デフォルトの名無しさん
2009/03/26(木) 01:10:09http://www.codeproject.com/KB/miscctrl/AlphaForm.aspx
0919デフォルトの名無しさん
2009/03/26(木) 01:53:370920デフォルトの名無しさん
2009/03/26(木) 03:25:35XmlSerializerを用いて、プログラム内のオブジェクト構造を元に
データの保存と読込を行っています。
このXmlSerializerで、同じオブジェクトを指す複数の参照変数を
シリアライズすると、シリアライズ化されたデータには
その参照数分のデータが重複して書き出されてしまいます。
このオブジェクトを、実際にシリアライズによって書き出されるデータは一つだけとし、
デシリアライズの際に参照変数群へ同じインスタンスへの参照が入るようにしたいです。
一応、あまり良い方法ではないと思うのですが、
複数参照されるオブジェクトは専用にシリアライズされるコンテナに全て格納、オブジェクトのID付けをし、
複数参照されるオブジェクトの変数と対に、そのオブジェクトのIDを持つシリアライズ対象なプロパティを定義し、
そのIDプロパティのsetterにおいてIDを元に、既にデシリアライズされているコンテナから該当オブジェクトを
取り出して変数にセットする、という方法をこれまで取っていました。
これを行うもっと正しい感じの方法はありますでしょうか?ヒントだけでも頂けると有り難いです。
0921デフォルトの名無しさん
2009/03/26(木) 09:02:37とりあえずIXmlSerializableを実装して同じことを行えば隠蔽できる
もっと賢いやり方があったら俺も知りたいな
0922デフォルトの名無しさん
2009/03/27(金) 08:50:14IXmlLineInfoにasキャストしてみる
0923デフォルトの名無しさん
2009/03/27(金) 10:40:240924デフォルトの名無しさん
2009/03/27(金) 10:46:18挙動が異なったりする可能性はありますか?
0925デフォルトの名無しさん
2009/03/27(金) 10:48:340926デフォルトの名無しさん
2009/03/27(金) 10:48:35出来ました
しかしインターフェイスにキャストしてどうしてちゃんと行番号が取得できるんですか?
0927デフォルトの名無しさん
2009/03/27(金) 10:49:400928デフォルトの名無しさん
2009/03/27(金) 10:56:53そうですか
有り難うございます。
0929デフォルトの名無しさん
2009/03/27(金) 11:00:32interface IHoge { void f(); }
class Bar : Foo, IHoge { public void f() {}}
Fooだと思ってるものがBarだったとしたら
0930デフォルトの名無しさん
2009/03/27(金) 11:03:12同じソースならどちらの環境でコンパイルしても同じアセンブリが出来る。
どちらのCLRで動かすかが問題でそこで挙動が異なる場合がある。
0931デフォルトの名無しさん
2009/03/27(金) 11:04:16ありがとうございます
intとか要注意ってことですか?
0932デフォルトの名無しさん
2009/03/27(金) 11:06:52intは64bit環境でも32bitで固定。違いが出るのはIntPtr。
0933デフォルトの名無しさん
2009/03/27(金) 11:08:550934デフォルトの名無しさん
2009/03/27(金) 20:21:50製品開発統括部ブログだったかな?
WinXP64はintもlongで扱ってると書いていたよ。
0935デフォルトの名無しさん
2009/03/27(金) 20:29:52URLプリーヅ
0936デフォルトの名無しさん
2009/03/27(金) 20:31:00System.Int32が64ビットだっていいたいわけ?
0937デフォルトの名無しさん
2009/03/27(金) 20:31:56前に探した時、アドレスが変わる前の記事だったようで見つからなかった
0938デフォルトの名無しさん
2009/03/27(金) 21:35:09ポインタ64、整数32でやる気満々のCPUだからそれはないと思うな。
03 c8 add ecx, eax
48 03 c8 add rcx, rax
VC++も int = long = 32bit, long long = 64bitだし。
0939920
2009/03/28(土) 03:16:33亀レスですみません。
なるほとIXmlSerializableという手がありましたね、すっかり忘れていました。
これを使って解決する機構をGenericsを使って汎用化できるものとして作ってみたいと思います。
0940デフォルトの名無しさん
2009/03/28(土) 04:07:45親子関係になっているコントロールにおいて、
親コントロールで子コントロールのイベントを捕獲する方法を知りたいです。
例えば、子コントロールの中にマウスカーソルがあって、
クリックされると通常は子コントロール側のClickedイベントが発生してしまいますが、
それよりも先に親コントロール側でClickedイベントが発生して欲しいのです。
暫定的な対処として、対象コントロールの子コントロール全てを再帰的に探索して
それらのイベントハンドラに、イベント発生を中継通知するメソッドを登録しています。
が、これでは結局通知のみであってイベント発生自体の順序は変わらないし、
またControlAddedイベントでも、追加されたコントロールに対して更に処理を行っており、
こんな力技な方法、絶対間違っているのでは・・と思っています。
0941デフォルトの名無しさん
2009/03/28(土) 10:41:13子.Click += new System.EventHandler(子_Click);
てこと?
0942デフォルトの名無しさん
2009/03/28(土) 21:23:54Part1 -75分-
http://www.megavideo.com/?v=TBA1379H
Part2 -75分-
http://www.megavideo.com/?v=JDBPR8XN
0943デフォルトの名無しさん
2009/03/28(土) 21:35:40WPFをつかう
0944デフォルトの名無しさん
2009/03/29(日) 13:08:28これまで以下のように VB6 の ADODB.Recordset Seek メソッドで .mdb 検索を行っていました。
rs.Seek Array(1006, 10), adSeekFirstEQ
C# で再現する場合、
Seek メソッドの第1引数「Array メソッド」に相当するオブジェクトは何なのか教えてください。
0945デフォルトの名無しさん
2009/03/29(日) 13:27:57データベースへのアクセスモデルからしてまるで変わっちゃってて、
ADOのことはよくわからないからズバリそのものな答えはちょっとわかんない。
Array 相当のものだったら、 new int[] とか new[] { 1006, 10 } とかで作れる。
キーに一致する最初の値をとりたいんだったら、LINQ to SQL 使って
var keys = new[] { 1006, 10 };
var firstEq = table.First(x => keys.Contains(x));
とかでいけると思う。
0946944
2009/03/29(日) 13:53:30ありがとうございます。
やってみましたが仰るとおり
List<object> values = new List<object>();
values.Add(1006);
object[] array = values.ToArray();
rs.Seek(array, SeekEnum.adSeekFirstEQ);
上記のように配列をそのまま渡すことで通りました、ただし値が単一の場合のみ。
下記のようにキー値を複数設定すると「パラメータが間違っています」っておこられる
values.Add(1006);
values.Add(10);
どうしたらいいんだろな_| ̄|○
0947デフォルトの名無しさん
2009/03/29(日) 13:56:29じゃダメなんけ?
0948944
2009/03/29(日) 14:07:52スマソ。
テーブル名、インデックス名のパラメータを間違えてただけだった。
キー値が複数の場合でもバッチリいけたわ。
ありがとう、無事解決です。
0949デフォルトの名無しさん
2009/03/30(月) 05:47:23++
++
で、#ちゅう事なん(´・ω・) スカ?
0950デフォルトの名無しさん
2009/03/30(月) 06:25:37アンダース・ヘルスバーグはそう言ってる。
0951デフォルトの名無しさん
2009/03/30(月) 09:19:470952デフォルトの名無しさん
2009/03/30(月) 14:23:110953デフォルトの名無しさん
2009/03/30(月) 14:24:120954デフォルトの名無しさん
2009/03/30(月) 14:29:130955デフォルトの名無しさん
2009/03/30(月) 17:53:03作成したのですが、デバッグ実行すると(0xc0000005)で終了してしまいます。
デバッグなしで実行だと、普通にウインドウが表示されます。
どうやら、プロジェクト名の長さが11文字以上だとこういう現象になるようです。
プロジェクト名が10文字以内というのは、ちょっと不便なのでなんとかしたいの
ですが、対策をご存知の方がいましたら教えてください。
0956デフォルトの名無しさん
2009/03/30(月) 17:53:44C,C++,C#相談室
だと思ってた
0957デフォルトの名無しさん
2009/03/30(月) 18:17:06しつこく入れるようになったんだっけかw
0958デフォルトの名無しさん
2009/03/30(月) 19:11:59…と思ったら、1つ目と3つ目がどちらも ASCII のナンバ記号だった。
0959デフォルトの名無しさん
2009/03/30(月) 20:04:35次スレ立てる人は気をつけて。
0960デフォルトの名無しさん
2009/03/30(月) 22:46:020961デフォルトの名無しさん
2009/03/30(月) 22:52:12Part51にもなって「そろそろ終わりに・・」ってのは今更すぎないかw
0962デフォルトの名無しさん
2009/03/30(月) 22:53:50来なけりゃいいんじゃね?
0963デフォルトの名無しさん
2009/03/31(火) 00:36:10俺がイカれてるのかな。そう解釈する俺が狂ってるだよなやっぱりそうとしか思えないうん
0964デフォルトの名無しさん
2009/03/31(火) 00:51:310965デフォルトの名無しさん
2009/03/31(火) 01:44:200966デフォルトの名無しさん
2009/03/31(火) 01:51:26まあ仕事だけど
0967デフォルトの名無しさん
2009/03/31(火) 01:52:50自分専用の痒い所に手が届くような小規模アプリが殆ど
0968デフォルトの名無しさん
2009/03/31(火) 02:27:500969デフォルトの名無しさん
2009/03/31(火) 02:30:220970デフォルトの名無しさん
2009/03/31(火) 02:49:210971デフォルトの名無しさん
2009/03/31(火) 03:14:150972デフォルトの名無しさん
2009/03/31(火) 07:47:060973デフォルトの名無しさん
2009/03/31(火) 08:29:31来月あたりに客先とおしてそのユーザーに公開される(´・ω・`)
0974デフォルトの名無しさん
2009/03/31(火) 08:57:55仕事だと、社内ツールの類はC#で書いてる。
0975デフォルトの名無しさん
2009/03/31(火) 10:08:11PropertyGridで入れ子になっていて展開可能な項目を自動で展開したいです。
まずExpandAllGridItemsメソッドを調べてみましたが、これはカテゴリの展開専用で意味がありませんでした。
次に、GridItem.Expandedプロパティを見つけ、おおこれこそ捜し求めていたものと歓喜したのですが・・・
PropertyGridからGridItemの一覧を得る方法が分かりません。
SelectedGridItemがあって、なぜGridItemsが無いのでしょうか。
0976デフォルトの名無しさん
2009/03/31(火) 10:30:550977デフォルトの名無しさん
2009/03/31(火) 11:12:02Member1 As String
Member2 As Byte
Member3 As Byte
Member4(20) As String
Member5(20, 1340) As Byte
End Type
Declare Function ExpFunc1 Lib "Library1.dll" _
(ByRef a_Struct1 As Struct1, _
ByVal a_iNumber1 As Long, _
ByVal a_iNumber2 As Long) As Long
ソースのない「Library1.dll」とそれを利用するための
上のようなVB6のサンプルがあるんですが、
これをC#(2008/.NET3.5)で利用するにはどう書いたら
いいんでしょうか?
よろしくお願いします。
0978デフォルトの名無しさん
2009/03/31(火) 12:49:26++
ナ+
になっちまう
0979デフォルトの名無しさん
2009/03/31(火) 13:02:09C#で参照してみれば?
ラッパクラ出来てインテリセンスきくんじゃないかな?
0980デフォルトの名無しさん
2009/03/31(火) 13:19:21---------------------------
Microsoft Visual C# 2008 Express Edition
---------------------------
'Library1.dll' への参照を追加できませんでした。
ファイルがアクセス可能で、有効なアセンブリまたは
COM コンポーネントであることを確認してください。
---------------------------
OK
---------------------------
COMじゃないとNGっぽいですね。
0981デフォルトの名無しさん
2009/03/31(火) 13:22:240982デフォルトの名無しさん
2009/03/31(火) 13:23:49ごめん、VB6のDLLかと思ってた
VB6はDLLはCOMになるから
そういうことならReflection使ってみては?
色々他にもあると思うけど
0983デフォルトの名無しさん
2009/03/31(火) 13:25:08疲れてんだな
0984デフォルトの名無しさん
2009/03/31(火) 17:19:482次元配列のマーシャリングってできたっけ?>識者
0985デフォルトの名無しさん
2009/03/31(火) 17:35:290986デフォルトの名無しさん
2009/03/31(火) 17:43:20対策はいろいろあるそうだが、ストレートには出来ないそうだ。
0987デフォルトの名無しさん
2009/03/31(火) 18:18:17Public Type Struct1
Member1 As String 'BSTR
Member2 As Byte '1バイト
Member3 As Byte '1バイト
Member4(20) As String 'UTF16な文字が20文字
Member5(20, 1340) As Byte 'Option Base 0なら21×1341バイト
End Type
何の役にたつかはしらん
0988デフォルトの名無しさん
2009/03/31(火) 18:44:38>UTF16な文字が20文字 はこれじゃね?
Member4 As String * 20
Member4(20) As String はStringの配列21 (Option base によるけど)
0989デフォルトの名無しさん
2009/03/31(火) 18:52:13C#, C♯, C#相談室 Part52
------------
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
前スレ
C#, C♯, C#相談室 Part51
http://pc12.2ch.net/test/read.cgi/tech/1233757615/
Visual C# 2008 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
その他テンプレ>>2-5くらい
0990デフォルトの名無しさん
2009/03/31(火) 18:53:17>>3>>5はそのままでおkかな?
-----
関連スレ
ふらっとC#,C♯,C#(初心者用) Part39
http://pc12.2ch.net/test/read.cgi/tech/1237051173/
Visual Studio 2008 Part 15
http://pc12.2ch.net/test/read.cgi/tech/1233853864/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
http://pc11.2ch.net/test/read.cgi/tech/1231506876/
【VB.NET】LINQ友の会【C#, C♯, C#】
http://pc11.2ch.net/test/read.cgi/tech/1202568694/
C#,C#の宿題片付けます。
http://pc11.2ch.net/test/read.cgi/tech/1197620454/
0991デフォルトの名無しさん
2009/03/31(火) 18:53:59参考になります。
Option Base は無指定ですので、0ですかね。
UnmanagedType.BStr をヒントにもう少しトライしてみたいと思います。
0992デフォルトの名無しさん
2009/03/31(火) 19:15:52VB6で>>877の標準モジュールを含むプロジェクトを作って
VB.NETのアップグレードウイザードにかける。
やってみたがTODOが残るな・・・これもで手を入れないといけないようだ。
0993デフォルトの名無しさん
2009/03/31(火) 19:18:16unsafe struct Struct1
{
[MarshalAs(UnmanagedType.LPStr)]
string Member1;
byte Member2;
byte Member3;
[MarshalAs(SizeConst = 21)]
string Member4[];
fixed byte Member5[21 * 1340];
};
[DllImport("Library1.dll")]
static extern int ExpFunc1(ref Struct1 a_Struct1, int a_iNumber1, int a_iNumber2);
unsafeが嫌なら
[MarshalAs(UnmanagedType.U1, SizeConst = 21 * 1341)]
byte Member5[,];
としてMember5 = new byte[21, 1341];
0994デフォルトの名無しさん
2009/03/31(火) 22:01:27そうだった
すっかり知識が抜け落ちてて愕然
0995977
2009/04/01(水) 09:48:39UnmanagedType.BStrとか
UnmanagedType.ByValArrayとか
いろいろ試しましたが、どうにもうまく行かないので、
もう諦めてVB6でラップDLL作ってそれをC#で参照して
使うことにしました。
VB6のデバッガでもう少し粘るといいのかもしれませんが
これで妥協しました。
いろいろありがとうございました。
0996デフォルトの名無しさん
2009/04/01(水) 09:55:350997デフォルトの名無しさん
2009/04/01(水) 10:17:26http://pc12.2ch.net/test/read.cgi/tech/1238548552/
0998デフォルトの名無しさん
2009/04/01(水) 10:58:25MSDNは 見まくり ですね。。
解決というか 逃げ ですけど、とりあえず
やれることはやれるようになったので。
VB6側の状況がよくわからずに
やみくもにやってもダメですね。
暇ができたら、ダミーの Library1.dll を作って
VB6から呼んでみて、中がどうなってるのか
確認してから再挑戦してみたいと思います。
0999デフォルトの名無しさん
2009/04/01(水) 12:33:101000デフォルトの名無しさん
2009/04/01(水) 13:14:2810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。