- 1 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 12:19:35 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part52 pc12.2ch.net/test/read.cgi/tech/1261801623/ 関連スレ C#, C♯, C#相談室 Part55(実質56) pc12.2ch.net/test/read.cgi/tech/1260111240/ WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5 pc12.2ch.net/test/read.cgi/tech/1261879110/
- 151 名前:148 mailto:sage [2010/01/12(火) 12:38:24 ]
- そうですか。俺はいつもmyTextとか書いているけど、そっちの方がいいのかな(´・ω・`)
- 152 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 12:38:57 ]
- >>142
ttp://www2.starcat.ne.jp/~fussy/algo/algo7-4.htm
- 153 名前:デフォルトの名無しさん [2010/01/12(火) 12:52:03 ]
- >>151
人にもよるし仕事でやるなら命名ルールとかあるから 個人で書いてるなら自分の好みでいいんじゃない?
- 154 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 14:18:36 ]
- >>148
付けてる人曰く、フィールドに直接アクセスせず 必ずプロパティ経由でアクセスしていることを明示的にする為だそうな。 変数名の後ろにアンダースコア付ける人もまれにいるし 嗜好の問題だと思う。
- 155 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 14:52:51 ]
- 俺はこんな感じのスニペット作ってるので"_Hoge"
public $type$ $property$ { get { return _$property$; } set { if(value == _$property$) return; _$property$ = value; $end$ } } private $type$ _$property$; あと、使っているアドインのリファクタリングで自動実装のプロパティに バッキングフィールドを作成するとプレフィックスに"_"が付いたような
- 156 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 14:53:35 ]
- 俺は先頭にアンダーバー付ける派、理由はそうしてる人が多そうだから
- 157 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 15:06:52 ]
- プロパティ RegionSize、フィールド regionSizeはVBで同じコードを書いたときに区別がつかない。
_regionSize はC++(C++/CLI)で不都合があると思われている。 (正確にはメンバーなので _xxxでも問題ないらしい) m_regionSizeは ハンガリアン記法が一時期過剰に嫌われていたあおりで排除された。 regionSize_ はなんか気持ち悪い などなど、結局好きにしろってことだな。 MSDNのネーミング規約をみてもprivateメンバのネーミングについては特に記述は無い。
- 158 名前:デフォルトの名無しさん [2010/01/12(火) 15:24:51 ]
- 最下段のソースを改変して、自分の環境に合わせてlame.exeのパスを
C:\Program Files\mp3\LAME\lame.exeに。コマンドラインのオプションを lame.exe -t -q 0 -b 80 --resample 44100にしたいと思っています。そこで1行目を #define LAME_EXE "C:\\Program Files\\mp3\\LAME\\lame.exe" に。8行目を strcat(cmd, " -t -q 0 -b 80 --resample 44100"); に替えてみたのですが、「音声の変換に失敗しました」とエラーが出て失敗してしまいます C++はサッパリちゃんなので、どなたか御教示いただけませんでしょうか。宜しくお願いします ttp://anonymousriver.hp.infoseek.co.jp/lame_wrapper/lame_wrapper.c
- 159 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 15:26:22 ]
- スレタイ良く見ろ
- 160 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 15:27:17 ]
- フィールドメンバはmyText
メソッド内で使うときは必ずthis.をつけてます
- 161 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 15:29:42 ]
- publicに対してルールがあるだけで、privateには好きに命名すればいいと思うよ
msdn.microsoft.com/ja-jp/library/ms229002.aspx
- 162 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 15:30:23 ]
- ↓で聞いてきます。失礼しました
【初心者歓迎】C/C++室 Ver.70【環境依存OK】 ttp://pc12.2ch.net/test/read.cgi/tech/1258873470/
- 163 名前:デフォルトの名無しさん [2010/01/12(火) 15:30:39 ]
- らめぇぇぇ
- 164 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 17:17:05 ]
- 以下のコードでフォームがタイトルバー(?)以外応答しなくなりました。
メモリ関連かと思いましたが、OutOfMemoryException が投げられていないようで、catch() できていません。 VSで追おうにもフォームを強制終了させなければVSごと応答しなくなってしまいます。 filesizeには正しい値が入っていることを確認済みです。 原因として何が考えられるのでしょうか? try{ Data = new byte[ filesize ]; }catch( Exception e ){ System.Windows.Forms.MessageBox.Show( e.Message ); }
- 165 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 17:23:17 ]
- filesizeいくら?
- 166 名前:164 mailto:sage [2010/01/12(火) 17:27:48 ]
- >>165
245268 でした。
- 167 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 17:31:33 ]
- >>164
問題は他の部分だろうね
- 168 名前:164 mailto:sage [2010/01/12(火) 17:53:14 ]
- >>167
他とはnewが原因ではないということでしょうか?
- 169 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 17:59:20 ]
- new/deleteで異常終了する(Visual C++)
pc12.2ch.net/test/read.cgi/tech/1262777752/ このスレ参照のこと
- 170 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 18:01:10 ]
- new の所にブレークポイント貼って止まったらステップ実行して戻ってこないのを確認したようには見えないな
- 171 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 18:02:42 ]
- OutOfMemoryException というのも思い込みじゃない?
- 172 名前:164 mailto:sage [2010/01/12(火) 18:19:12 ]
- >>169
ありがとうございます。 今から読んでみます。 >>170 System.Diagnostics.Debug.WriteLine() を1行毎に置いてみるだけでは不足でしょうか? ブレークポイントは使用してもしなくても同じ動作でした。 >>171 msdnのページにはメモリが不足している場合は OutOfMemoryException が投げられると書かれているように思えたのですが・・・。 念のため catch( OutOfMemoryException e ) にしても同じでした。
- 173 名前:デフォルトの名無しさん [2010/01/12(火) 18:20:48 ]
- デバックモードで牛歩チェックすればいいんでないの?
- 174 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 18:25:16 ]
- >>173
最終的にはそうするほうが質問するより早いよね。 まあデバッグのやりかたがよくわかってないみたいだからしょうがないけど。
- 175 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 18:25:49 ]
- new byte[]自体に問題があると思ってるならむいてないからやめちゃいなよ、本気で。
コードのどの部分にどれくらい信用性があるか見切れないとずっと初心者だよ
- 176 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 18:28:20 ]
- >>172
そりゃステップ実行しなきゃ new しているメソッドを呼ぶ所で無限ループしている可能性が一番高いんだし
- 177 名前:164 mailto:sage [2010/01/12(火) 18:40:43 ]
- >>169,175
メモリ破壊を疑ってみます。 アドバイスありがとうございました。 >>173,174,176 蛇足ですが、ステップ実行でのデバッグは既にやっています。
- 178 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 19:30:45 ]
- なぜそこがおかしいと考えているのかも書いてくれないと
コード断片だけじゃわからんよ
- 179 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 19:42:40 ]
- こういうのは本人ががんばるしかないよ
コードまるまるうpでもしないかぎり
- 180 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 19:45:47 ]
- 情報小出しにするし、問題なさそうな部分しか晒さないし、
本人もどこが問題なのかまるでわかってないからそうなるんだろうね。
- 181 名前:133 mailto:sage [2010/01/12(火) 19:50:28 ]
- >>133
ですが、引き続きよろしくお願いします。
- 182 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 19:50:44 ]
- でもC#って普通にマネージドコード書いてるだけなら
メモリ破壊なんてしないよね? 俺はC#よくしらないけど。
- 183 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 19:50:49 ]
- こういうタイプは愚痴を聞いてもらいたいだけで解決したいとは思ってない。
- 184 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 19:56:41 ]
- 女々しい性格w
でも男でもたしかに時々いるんだよねそういう奴。 潜在的なカマなんじゃなかろうか
- 185 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 20:00:21 ]
- >>133
俺ならそのソースをそのまま使いたいからVC++でOCXでラップして C#のフォームに貼り付けて使う。
- 186 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 20:04:05 ]
- >>184
カス
- 187 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 20:10:10 ]
- >>182
無反応状態ならへんなループ書けば簡単に起こるよ。イベントを相互で呼び出したり。
- 188 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 20:11:34 ]
- >>187
なるほど
- 189 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 20:46:03 ]
- ろすあいめよむつこいそえひわやよみあぬすくうたさゆきつぬりわのけつちそへまのゆみかめさためねわあへこうなくひぬやえいやうをわらなたすわほれおしひまきつはゆし
ほへかせもゆらあてみいももやせれあかなそてまうえしちみきるねんすれぬはわええろみひよのみゆけふてわをすはゆんかりなていたんまむいなのきやむあへてうやけのもせ よこひえるへゆさてこれれもつこわしくためををけたきふをせきうしうつへとひはらうかまんそらまてしわやはくちねるろせつふねれたおねえめこさふやほもふなしひこくへ ひちのみせみえくせちんなりむわをそむさゆゆとぬけたきりにたぬちせりねしそそふゆろききまみめはわをししさむしりはけめたせえきにけわんすわけわもめすぬほへふもそ ささすぬつくちんにえはむもしひえきゆくそゆけんらきいなみとはねはひむとぬくうせをにちまもおわみむんてしそつまほおけよつはをまはてしのゆのれりなたへこえたやけ よむらほとむくいいけやかてうむみもふのふりてふれへちててろさむはねえなりうふくみいきほんうほすさるりやたろあぬゆぬまなとるれてんゆなやそりゆるるさめやましら くえねはぬゆわをねけけせにもまみつよのそもるこすへちそろわふなうらろえぬらりともかましまはほゆをよいせはてをりやらまぬゆまめうてれここんさんやりといゆけほよ ゆわちゆさきえみやもるくたぬしれしあますてつたりゆなはもれらさもにしにせそうんたこなんかるねくやよつわらやなけねたわかまそえとろたこひまるほきあけせとろやち まふたくえふさとむほにこけれせいきねみんろたしあさへうはんよわくみまみいおえやをこきふましさゆをひさとつせのややいいなさもまするろほみわつるくへはろいれふて ろよんにぬつたえああわにせこれんめねくにえへつえまつきんむてわりふしまほにねやとしひめすせはおぬふほをさまおひゆさのてめしはこりたやきらそわけりこのみやはせ ゆとあそはにられらきよよぬぬくれふなふく
- 190 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 20:47:27 ]
- 764281988531068976109496233791003419912346483347694415701297353114808192171311
417270647911119398265877604356756653123239986604218419768938626949738275501606 250320279301219198504796337841703744565641089982079039822177715017280875762921 057416400473083550075370509783174000446911225548032194128521645465162060951565 465539130164284060857508075643775901923995506341285317135921431113613959430498 401092565883457642005006729253822255363882264271281485272488386576889292587462 034663116263550263907540695891208175920042901182186966988109777962571572279088 098824838689381074918874626395429671349459675554401020594390741055133327652177 916107370918077618827263534853795819183817031310666404692558655752953871909739 922308545867381013839042726659736597888333618343364296802843665358183095852232 524792904298334494082199910777728527604800325044053124189211216769583009939665 382415272620598635193623786056286678336830450451457798866769513975698838956157 500859844509114898746975909367002410509598251731996664710909939208235501175358 533359286168541726824048105222941777016070857553763714208138350176891267309534 126422704270860505796207867552357491802427279788547040757837112344669692603954 613568171977230441868555998330410833172587146793247145430301387348954641737295 442451669467358278339882174689974936849305680534733392815526848883783849336795 502986777750956369827069343593144744177219535459187655066510571129154921408484 240871393287000887611974516472461568354937796545942896362781471627759900733947 887663189980838964697636103389678358036579247197495243642929621467962130722651 890212762790675915951219992004860515531718599196876803531499929279908178725031 149996634085896860472469559106037201700690844166080101523052967409237991968529 522987224293105273761742101630321548376319086339334250810372161485643630138856 956965948525898718857542924106686361050970380091893179616277234488708165914328
- 191 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 21:22:01 ]
- コピペ君、まで読んだ。
- 192 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 21:25:41 ]
- int* なんか使っちゃったりすると64bitで動作しなくなったりするの?
- 193 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 21:31:02 ]
- そんなことはない
逆に,P/Invokeでポインタ(またはIntPtr)として宣言するべきところにint使っちゃうと動作しなくなる
- 194 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 21:55:06 ]
- >>133
VC2008EEで.hと.cppをプロジェクトに入れただけでコンパイルできたよ。
- 195 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 22:27:46 ]
- >>130
カーソルアイコンが禁止状態のままの場合、 DragEnterやDragOverでe.Effectを設定してないのが原因だろう DataFormats.FileDropを含まないデータが来てるんじゃないか DragEnterのe.Data.GetFormatsでどんな形式のデータが来てるか確認すれ
- 196 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 22:35:12 ]
- >>133
tlbimpにRsvData.dll突っ込めばなんとかなりそう?
- 197 名前:133 mailto:sage [2010/01/12(火) 23:00:09 ]
- 凄い無理やりなんですが、
IEpgRsv rsv = (IEpgRsv)(new EpgRsvClass()); なんてことができちゃいました。 サンプルコードとは違う感じですが、とりあえず動作も確認できたので よしということにしちゃいます。 色々ありがとうございました。
- 198 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:08:15 ]
- 無理矢理というか、.NETでCOMラッパを扱うのならごく普通
ついでに言うとnew IEpgRsv()だけでもいいはず
- 199 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:08:27 ]
- えー
つまんね
- 200 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:13:34 ]
- その時教えないで後から知ってたと言うのなら俺にでもできるがな
- 201 名前:133 mailto:sage [2010/01/12(火) 23:29:12 ]
- >>198
やってみました。 IEpgRsv rsv = new IEpgRsv(); 抽象クラスまたはインターフェイス 'RsvDataLib.IEpgRsv' のインスタンスを作成できません。
- 202 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:31:23 ]
- bool型ってintにキャストできないの?
trueを1に、falseを0と同値にしたいんだけど。
- 203 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:35:17 ]
- そういう真似を出来ないようにわざわざキャストできなくしてあります
- 204 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:35:39 ]
- >>201
ありゃ、CoClassもってなかったのね ごめん >>202 うんキャストは無理 Convert.ToInt32でも使えば
- 205 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:39:03 ]
- trueは1じゃなくて0以外と定義するのが普通だよ
CLRの内部表現もそうなってる
- 206 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:43:51 ]
- ゼロが発見されてなかったら大変な事になっていたな。インド人に感謝するよ(´・ω・`)
- 207 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:53:05 ]
- インド人 = right;
- 208 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:55:48 ]
- ザンギュラ乙
- 209 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 00:07:24 ]
- C#のList<T>ってC++の
vector<T>と基本的に同じ?
- 210 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 00:15:21 ]
- うん
- 211 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 06:55:59 ]
- うーん
- 212 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 07:08:58 ]
- ううん。。。
- 213 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 10:10:13 ]
- う、うん
- 214 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 11:35:57 ]
- うんうん(´・ω・`)もきゅもきゅ
- 215 名前:デフォルトの名無しさん [2010/01/13(水) 11:43:32 ]
- うんじゃなくてハイでしょ!
- 216 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 11:51:21 ]
- ハッシュテーブルについて語り尽くそうぜ!!
- 217 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 11:52:42 ]
- C#にはハッシュテーブルは存在しない
でもDictionaryならあるから別に困らない。
- 218 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 14:11:00 ]
- つ System.Collections.Hashtable
- 219 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 14:11:59 ]
- >>217 大苦笑
- 220 名前:デフォルトの名無しさん [2010/01/13(水) 14:41:54 ]
- AxWebBrowser もしくは WebBrowserを使ってHTML表示をさせているのですが
ブラウザによくあるCTRL+ホイールでページサイズを切り替えるには どうすればいいのでしょうか?
- 221 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 16:04:09 ]
- >>220
Microsoft.ShDocVw.dllを参照追加。 フォームのコンストラクタに以下のコードを追加。 int r = 100; const int OLECMDID_OPTICAL_ZOOM = 63; this.MouseWheel += new MouseEventHandler((s, e) => { if (this.webBrowser1.Document == null) return; r += e.Delta / 120 * 25; object or = r; object z = Type.Missing; ((IWebBrowser2)this.webBrowser1.ActiveXInstance).ExecWB((OLECMDID)OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref or, ref z); }); CTLキー押しながらではないが、ホイールを押しながらで拡大縮小する。
- 222 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 16:23:36 ]
- WebBrowserにフォーカスがあるときに対応しようとすると面倒だな
HTMLDocumentEvents2_Event.onmousewheel辺りになるかね
- 223 名前:220 mailto:sage [2010/01/13(水) 16:32:13 ]
- >>221
ありがとうございます できました
- 224 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 18:40:31 ]
- オブジェクト指向ってめんどくさいね
C言語だったらたとえばスクリーンの任意の座標に文字を表示するのは 最初からそういうメソッドがあるDLLなりヘッダファイルなりがあれば write("Hello",30,50); 一行でできるのに C#だったら String s="Hello"; Label l =new Label(); l.Text=s; l.Positon=new Position(30,50); l.Show(); こんな五行もかかないといけない 生産性を犠牲にしてわかりやすくしてるのかね?
- 225 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 18:50:22 ]
- C#でそういうメソッドがあれば同じじゃん
- 226 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 18:52:48 ]
- こんなバカ初めて見た
- 227 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 18:56:43 ]
- なにこれ・・・
C言語だとTalk(Taro); だったのが C#だと Taro.Talk();になってるだけじゃねーか! ()の中に書くか.の前に書くかの違いってそんなに重要なのかねぇ
- 228 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 19:01:51 ]
- >>224
C#からでもDLLでも呼べるだろ。 C言語で作ったDLLであってもね。
- 229 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 19:06:54 ]
- class A{
int x; } なクラスがあったとして Mainの中で A a=new A(); ってやったら aはヒープにあるの? xはint型だからスタックにあるの? どっち?
- 230 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 19:09:43 ]
- >>229 ひーぷ
- 231 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 19:10:35 ]
- >>227
String s="Hello"; Label l =new Label(); l.Text=s; l.Positon=new Position(30,50); l.Show(); これをC#でも一つのメソッドにまとめてクラスなりDLLから 呼び出せるってのを理解していないと思われ。プログラムの 基本すら怪しい。
- 232 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 19:11:40 ]
- Aの実体がヒープに確保される
xは値型なので実体はヒープに確保されず、直接Aの実体の中に用意される で、Aの実体への参照がローカル変数aで、これはスタックに確保される
- 233 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 19:15:00 ]
- >>232
えっと、、、 ネタだよね?
- 234 名前:232 mailto:sage [2010/01/13(水) 19:16:46 ]
- ネタだよ
- 235 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 19:44:08 ]
- >>227
ポリモーフィズムを理解すればなぜそう書くかわかる
- 236 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 19:52:58 ]
- ぶざけ、、、
- 237 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 20:09:41 ]
- 自分で作ったユーザーコントロールにイベントを送りたいんだけど、どうすればいいでしょう(´・ω・`)
- 238 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 20:17:08 ]
- イベントを送るってどういう意味なんだw
- 239 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 20:20:16 ]
- イベントの実装方法が分からない。
イベントハンドラーの追加の方法が分からない。 IDEのプロパティタブからイベントハンドラーを追加できるようにしたい。 こんなところか、どれだろうね〜
- 240 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 20:22:07 ]
- まだ?(´・ω・`)
- 241 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 20:37:41 ]
- >>237
呼び出し側なら、他の既存コントロールと同じやり方でいいだろ。
- 242 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 20:54:32 ]
- イベントのインターフェースを実装してやればいいだけだけどデリゲートがわからないなら諦めたほうが早い
- 243 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 22:11:35 ]
- C#初心者用の鉄板参考書は何でしょう
動物の表紙?
- 244 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 22:22:35 ]
- Effective C# ……、いや、なんでもない。
- 245 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 22:29:12 ]
- 初心者っていってもいろいろあるだろ
プログラミング経験の有無 プログラミング自体に興味があるのか,それとも作りたいモノがあって手段として覚えるのか
- 246 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 22:51:34 ]
- Effective C#は初心者向けじゃないわぁ。
プログラミング経験があってWebで読むのが苦じゃないなら @ITのC#入門とかわりと良いと思う。無料だし。 www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
- 247 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 22:52:05 ]
- 立ち読みすればわかるけどクックブックは初心者向けの章がごっそり削られてるから初心者は買わないほうがいい
- 248 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 22:53:05 ]
- つ 金魚
- 249 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 22:59:12 ]
- イマイチ情報が古い感じが否めない
- 250 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 23:13:24 ]
- プログラミング言語に古くならない教科書なんてあったっけ?
そういえば、プログラミング言語に死語という概念はあるのかな… (スレ違いすまん)
- 251 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 23:20:16 ]
- 陳腐化するってのはあるねぇ
- 252 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 23:27:13 ]
- SICPは長寿だろ
- 253 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 23:58:50 ]
- EffectiveC#はいちど立ち読みしてみたい
近くの本屋に置かないかな
- 254 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 00:30:36 ]
- EffectiveC#は目次みる限りじゃ読んでみたくなるような内容ではあるよね。
たださすがに今更感がただよう感じも。1.0時代の話だし。
- 255 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 00:37:10 ]
- ジェネリックって内部はどういう仕組みになってるの?
- 256 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 00:49:32 ]
- コンパイル時にチェックしてるだけじゃないの?
- 257 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 01:08:45 ]
- >>255
MSIL レベルでいうと、専用命令持ってる。 JIT レベルでいうと、参照型は全部コード共有。 要するに、GenericType<object> と同じコードになる。 キャストが不要な分効率がいい。 値型の場合はそれぞれ専用コードが作られるらしい。
- 258 名前:デフォルトの名無しさん [2010/01/14(木) 06:59:11 ]
- こういうデータを管理するのに適したクラスとかありますか?
大見出し1 小見出し1-1 小見出し1-2 大見出し2 小見出し2-1 小見出し2-2 ・・・・ 小見出し2-9 大見出し、小見出しともに最大項目数は可変です できれば小見出しに関連した文字列などを管理できるともっとうれしいです
- 259 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 07:24:57 ]
- >>258
XML+DOM
- 260 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 07:55:05 ]
- 規格名は忘れたが、MS WordとかOOoで使われているやつとか>XML
- 261 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 09:41:20 ]
- ListだのDictionaryだの自作のクラスだの組み合わせて普通に作っちゃってもいいと思うけどね。
DOMやXMLは汎用的だけど本当にそれだけのデータ保持するんだとしたら巨大すぎる。
- 262 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 09:58:55 ]
- >>258
datatable
- 263 名前:258 [2010/01/14(木) 10:35:30 ]
- やはりXMLなどを利用することになりますよね
内部的な管理だけならArrayListでやったほうがいいのでしょうか?
- 264 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 10:45:03 ]
- 提示されたデータ構造だけ考えるとわりとシンプルだし、
どう使うかによるけどメソッド含めて自作でも大した手間にはならないと思う。 ただ、XMLだと構造拡張したりテキストに落しこんだり検索したりってのに 標準化された多彩な方法が使えるってメリットは大きいよね。 まあどのみち一番外側は自作のクラスでラップするんだろうし どっちもためしてみるってのがいいんじゃない?
- 265 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 10:46:32 ]
- いいんじゃない?
- 266 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 10:47:21 ]
- >>258
いいんじゃね? ArrayListは配列要素はobject型なんで、 それよListなどの型指定できるヤツのほうがプログラミングしやすい(インテリセンスでるから)
- 267 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 10:53:15 ]
- 今はジェネリックを使わない積極的な理由はないもんな。
- 268 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 11:29:09 ]
- むしろ、非ジェネリック版使うのは非推奨だからなぁ。
あれはあくまで互換性のためだけに残ってる。
- 269 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 11:31:23 ]
- JSONもあり
- 270 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 11:36:38 ]
- JSONってどっちかっていうとメッセージ交換用のプロトコルみたいなもんで
内部で積極的に使用する必要って無い気がするんだけど
- 271 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 11:39:17 ]
- 言ってみただけ
- 272 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 12:19:41 ]
- 許す
- 273 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 15:01:40 ]
- 許さない
- 274 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 15:06:11 ]
- ようこそ許さん
- 275 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 15:24:57 ]
- 来る、来ない、帰らない、帰る♪
- 276 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 15:40:08 ]
- 絶対にだ
- 277 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 21:51:10 ]
- VC#はVisual Basic.netよりインテリセンスがやや使いづらいな。
Visual C++に比べればはるかにマシだけど。 インテリセンスをVB.netみたいに細かく調整できないのかな?
- 278 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 21:51:57 ]
- 慣れだと思うけどね。
- 279 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 21:56:19 ]
- VBはインテリセンスのために生まれてきた言語だし。
- 280 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 21:56:34 ]
- >VB.netみたいに細かく調整
??? なんか勘違いしてるんじゃないの
- 281 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 21:57:39 ]
- VSってエクスプレスエディションしか使ったことがないんですが
有料のバージョンにすれば、エクリプスのようにリファクタリングの機能が増えますか?
- 282 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:07:28 ]
- エクリプスつかったことないからわからん
- 283 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:10:32 ]
- リファクタリングできるけど Eclipse 程多機能ではない。
名前の変更とかメソッドシグネチャの変更とかインターフェイスの抽出とかは余裕でできる。
- 284 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:12:46 ]
- 有料のバージョンだと何か良いことあるの?(´・ω・`)
- 285 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:15:02 ]
- 難読化できる→モバイル開発できる→テスト環境がうんぬん
- 286 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:17:14 ]
- 2010のテストツールは結構面白い
- 287 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:17:34 ]
- 有料版はプラグインが使用できる
リファクタリングできる モバイル開発ができる Office 開発ができる 統合された単体テストができる などなど
- 288 名前:デフォルトの名無しさん [2010/01/14(木) 22:24:50 ]
- オレの場合、standerdだとプラグインでankSVNが使えるのが大きい
やっちまったときに戻せるからね Blend 2の付録として手に入れたけど、合計15000円程度と安かったし
- 289 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:29:39 ]
- >>281
C#はそれなり。VBは名前の変更くらい。
- 290 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:30:37 ]
- >>283
どもです。
- 291 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:43:23 ]
- Eclipseは機能試してるだけで2日くらい経過した記憶がある
- 292 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:47:59 ]
- >>288
そうなんだよな。 EEだとIDEからバージョン管理出来ないから結構さぼりがちになっちゃう。
- 293 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 23:19:52 ]
- ロジクールの10ボタンマウスとかあるが
Formのマウスクリックイベントとかで特殊ボタンの検出ってできるの? どうやればできる?
- 294 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 23:28:52 ]
- >>293
MouseEventArgsだと5ボタンまでだもんなぁ。 .NETじゃ無理なんじゃない?
- 295 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 23:39:04 ]
- >>293
どうせマウスのユーリティーでホットキーや特定のプログラムをショートカットで起動するのに割り当てたりするから、 純粋なマウス入力として使う事自体があまりないよ。 マウスホイールを回した時と、ホイールクリックに反応できれば十分。
- 296 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 23:45:16 ]
- そもそもマウスドライバレベルで他の動作に置き換えられるんじゃないかなぁ…
可能性があるとしたらDirectInput?
- 297 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 23:51:40 ]
- 俺がマウスの設計者なら、単純にキーボードとマウスの複合デバイスにするけどね。
そうなら余分なキーは、キーイベントで拾えるんじゃないのか。
- 298 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 23:54:37 ]
- Listview内にdouble型の数値ばかりが入った列があります。
これをソートしたいのですが、どうすれば良いでしょうか? ttp://dobon.net/vb/dotnet/control/lvitemsort.html の下のほうにある部分を参考にしたのですが case ComparerMode.Integer: result = int.Parse(itemx.SubItems[_column].Text) - int.Parse(itemy.SubItems[_column].Text); break; でエラーが出ます。
- 299 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 23:57:53 ]
- エラーが出ます、で思考停止せずにエラーの内容ぐらい読もうぜ
取り敢えずなんでdoubleが入ってるのにintでParseしてるんだ?
- 300 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:01:17 ]
- そんな物つかうソフトを誰が使う?
- 301 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:02:49 ]
- >>298
ソートしたいんだったらArray.Sort使ったら?
- 302 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:03:49 ]
- C#で、フォームでクリックしたらとかフォームでEnterキーが押されたら
とかあるけど ディスプレイのフォーム以外の場所でもクリックしたら〜とかってUse32.dll使用なしでできる?
- 303 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:04:39 ]
- >>299
入力文字列の形式が正しくありません ってエラーでで当然なんですが、とりあえず Doubleで比較したい場合はどういう記述をすればよいでしょうか?
- 304 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:06:27 ]
- 本当に分からんのか?
- 305 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:06:29 ]
- >>301
ListViewのソートなんだから迂遠だろそれ >>302 無関係なところのクリックとなるとマネージじゃ無理だな WH_MOUSE_LLとかRawInputとかDirectInput使う必要がある
- 306 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:08:46 ]
- 変数名を動的につけることはできますか?
例えば1_1.csv 1_2.csv … n_n.csv内のデータを読み込み、それぞれ配列に収めたいとき、 配列名をarray1_1 array1_2 …といったふうに付けていきたい。という要望です
- 307 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:11:29 ]
- //文字列をdouble型に変換
double d = double.Parse("100.1");
- 308 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:11:58 ]
- >>306
その動的につけた変数名の変数、 いったいどうやって使うおつもり?w
- 309 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:14:34 ]
- >>306
配列に配列を入れていけばいいんだよ
- 310 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:15:47 ]
- ジャグ配列
- 311 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:16:20 ]
- >>308
そうか!… >>309 なるほど、そうします。
- 312 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:17:46 ]
- >>306
そんなことする必要全く無いじゃないか。 ファイル名と付属データをペアリングしたstructを用意して、DirectoryかListに放りこめば十分。
- 313 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:18:07 ]
- >>304
ttp://dobon.net/vb/dotnet/control/lvitemsort.html を見てもらったらわかると思うんですが resultがint型なんで最終的にどうすればよいか わからないんです・・・。
- 314 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:19:55 ]
- >>313
なんでやねん if double.parse(x) > double.parse(y) { result 1; } else if () { resule -1; } とかしていけばええやん
- 315 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:23:02 ]
- >>313,314
>ListViewのListViewItemSorterプロパティに、並べ方を定義したIComparerインターフェイスを実装したクラスのインスタンスを設定します。 なお、IComparerによる並び替えについては、「コレクション(または配列)内の要素を方法を指定して並び替える(または検索する)」でも説明しています。 って書いてるじゃねーか。
- 316 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:29:41 ]
- やめろ
初心者なんだからお前らが想像も付かない所で躓いてるもんなんだよ マウスを動かすと机から落ちてしまいます みたいな
- 317 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:36:10 ]
- Double.CompareTo()でいいだろ。
- 318 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 01:15:41 ]
- 全部教えるとそいつはそれ以上育たなくなる、自分で考えないとってテレビで農家のおじさんが言ってたよ
- 319 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 01:17:15 ]
- 農業界なんて先細り真っ只中だから
そういう考え方はハズレだったのだろうな
- 320 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 02:11:03 ]
- C#でDLLの作成をしようと試みています。
DLLはアプリケーションのプラグインで、プラグインは本体から登録された各dllに対し、 グローバル関数が呼ばれるような仕様になっているのですが、 (例えばplugin.dllのInit()を呼び出す、といったような形になっている) C#はグローバル関数をサポートしていないため、どのように受ければよいのかが分かりません。 C#のみでこのような呼び出しに対応する方法はあるでしょうか。それともラッパーをC++等の他の言語で書いて、 経由するしかないでしょうか。
- 321 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 02:16:59 ]
- 後者YES
C++/CLIでも使った方が楽じゃねえかと思う
- 322 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 02:17:51 ]
- >>320
リフレクションで呼び出すか、プラグインinterfaceのDLLを準備する。
- 323 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 02:19:41 ]
- プラグイン側がC#で呼び出すほうは違うのかな?
なら>>322はなしで。
- 324 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 02:24:00 ]
- グローバル関数って言ってるからLoadLibrary+GetProcAddressだろう
注意しておくとグローバル関数にするだけじゃ駄目な エクスポートしないと
- 325 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 02:27:46 ]
- >>321
ありがとうございます。C#の勉強も兼ねているので、ちょっと泥臭いことも含めて色々試して見ます。 >>322-333 リフレクション云々が分からずぐぐってみてましたが、DLL側で属性の定義をしておくと C#のDLLを呼び出す場合にアセンブリ情報を使って条件分岐等出来るということなのでしょうか。 また別で調べてみます。どうもありがとうございました。
- 326 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 02:32:49 ]
- 泥臭いも何も、ネイティブからLoadLibraryで呼び出される類のプラグインはC#のみだと作成できないぞ
- 327 名前:デフォルトの名無しさん [2010/01/15(金) 03:04:54 ]
- コンテナをいくつか配置して、その中に動的にボタンなどを入れ込む場合
プログラム全体としてうまく管理する方法はないでしょうか? クリックイベントはコンテナ単位で共通にした上で ボタンなどを動的に作る際の名前(Name)に 記号+識別番号A+識別番号Bを文字列化しています。 ただこの方式だとクリックイベントを処理する際にNameから 元の番号を切り出して・・とあまりスマートではないので よろしくお願いします。
- 328 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 03:08:12 ]
- もう少し目的を具体的に書けよ
うまく管理したいって何を ボタンごとに情報を持たせたいとかそれだけならButton.Tagに何か入れとけ
- 329 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 03:19:08 ]
- 共通のイベントハンドラから、どのボタンが押されたのかを識別する為に
名前から特定の文字列を抜き出して識別する現状の方法以上にいい方法があるか …ってこと?
- 330 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 03:19:17 ]
- >>325
ちょっとひねればプラグインのサポートはそんなに難しくないよ。 まず、プラグインの雛形となるinterfaceやenumを定義した基本となる情報を入れたDLL(A)を作成する。 それを元にプラグインのDLL(B)を作成する。 アプリ本体は(A)に参照設定を持っておいて、(B)をリフレクションで読み込む。 (B)のコードはinterface越しに扱えばいい。
- 331 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 03:25:43 ]
- 派生コントロール作ってsenderから独自プロパティ参照して云々するのが
オブジェクト指向的にはあってるんじゃないの 「コード書くのがめんどくせぇ」っていうなら今の方法がいちばんだからそのままにしとけ
- 332 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 03:27:19 ]
- だね。
- 333 名前:デフォルトの名無しさん [2010/01/15(金) 03:29:23 ]
- >>328
>Button.Tagに何か入れとけ >>329 はい >>331 つまりボタンなりを継承したクラス作ってそこに・・・ということですか
- 334 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 03:30:19 ]
- ああ・・中途半端な状態で・・・orz
>>328 >Button.Tagに何か入れとけ 確かにこれもいいですね
- 335 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 04:20:50 ]
- ttp://www.atmarkit.co.jp/fdotnet/architecture/petshop/petshop_01.html
↑で紹介されているPetshop3.0についてなんですが 記事ではコードを読むことを勧めていたので ttp://www.microsoft.com/downloads/details.aspx?FamilyId=E2930625-3C7A-49DC-8655-A8205813D6DB&displaylang=en 記事中の↑のページから、サイト内をいろいろ探してみたのですが ソースコードの所在がわかりません。 どこを見落としているのか、自分ではとうとう発見できずにいます。 どなたかわかる方いらっしゃいましたらご教授願えないでしょうか。よろしくお願いします。
- 336 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 04:48:49 ]
- 何のギャグだよ
それインストールすりゃはいってる
- 337 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 07:15:58 ]
- >>326
ILをいじるという方法はあるけどな。
- 338 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 07:29:59 ]
- formにlistboxをFillで貼り付けてウインドウサイズを変更すると
きっちり張り付くわけじゃないんですね たぶんlistboxのアイテムの高さの関係で制御してるんでしょうけど・・
- 339 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 10:02:47 ]
- 逆P/Invokeっていう冗談みたいなものがあったな
ildasmで逆コンパイルしてILを直接編集しろとか MS公式のドキュメントに普通に書いてあって目を疑った
|

|