[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 07/02 11:43 / Filesize : 233 KB / Number-of Response : 945
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっとC#,C♯,C#(初心者用) Part47



1 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 18:23:31 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part45 (実質46)
pc12.2ch.net/test/read.cgi/tech/1255658236/

438 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 19:55:50 ]
ドラッグの件で質問した者ですがもう少し詳しく

動的にいくつか作成したpictureBoxをドラッグし、
元からあるpictureBoxに移動したいです。

この時、作成したpictureBoxの場所自体を移動させたいのですが
どこのpictureBoxからドラッグされてきたのかという情報の
取得方法がわかりません。

eでは、中のBitmapの情報のみを拾ってくるので…

439 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 19:56:14 ]
>>437
usingを理解してない予感

using はネームスペースを省略しますよーってこと

本来なら
System.Windows.Form.WebBrowser
とか書かなきゃいけないけど
いちいちかくのはめんどくさい

だから
using System.Windows.Form;
って宣言しとけば
勝手にそこ以前をつけてくれる
もし、同じ名前があると曖昧だからフルで指定しろって言われるよ

440 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 20:14:59 ]
using ってエイリアスぐらいの立ち位置だったんだなぁ。
たしかにusing だけじゃインテリセンスで補完もしてくれないか

441 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 20:16:45 ]
>>438 自分でドラッグドロップどうさを MouseDown MouseMove を使って実装するとか
MouseDown のタイミングでどれを押下したかわかるだろ
ちょっと考えれば簡単。既存のドラッグ動作を良く観察して


442 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 21:06:50 ]
DateTimePickerって1790年くらいが最小で1192年とか実装できない
なんで?せっかく1192年からの鎌倉時代を舞台とした物語を作ろうとおもったのにカレンダー表示機能ないからできないじゃないか
FuckYou!!!

443 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 21:11:03 ]
自分で計算すりゃいいじゃん

444 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 21:35:05 ]
そりゃ計算は出来るだろうけどコントロールが使えないのは悲しいよな。
テキストボックスで我慢するかカスタムコントロール作るかになっちゃう。

445 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 21:42:36 ]
仮に日付が設定できたとして
一ヶ月が28日だったり
一年が13ヶ月だったりするんだぜ?

446 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 21:46:25 ]
日めくりを想像しろ
月や年なんて日の属性だ



447 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 22:46:54 ]
ja.wikipedia.org/wiki/1752%E5%B9%B4
こんな月もあるし

448 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:18:30 ]
世界の中心は欧米じゃないのに何言ってんの

449 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:20:39 ]
>ユリウス暦の閏年のずれを戻すために1752/9/3 〜 1752/9/13 は無い。
げぇ…

450 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:27:15 ]
C#はVBとあまり変わらないよと言われたのですが
私にとっては別な言語に見えてしまいます。

たとえば、中国人や韓国人は同じアジアなので似てるといえば似てるのですが、
さすがに、東南アジアの人や、同じアジアと言われるオランダとかと比べると
まったく違うあろーって思います。ありがとうございました。

451 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:29:22 ]
欧米の話じゃないんだが

452 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:36:11 ]
そりゃVB関数使いまくってたらそうだろうな
先にC#やってたらVBは本当に全く同じなんだけどな

453 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:41:00 ]
構文が違うだけで他は同じと言っていいな。

454 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:46:08 ]
というか .NET がメインだからなあ

455 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:48:19 ]
.NET環境なら言語の違いは関係ないと言ってもよい

456 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:49:50 ]
B#で書いてC#に変換したら良いのでは?



457 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:56:53 ]
.NETはC#選んどけば間違いない

458 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:01:03 ]
未だにC#より使い易い言語に出会えない

459 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:02:41 ]
C#できるならVB.NETも余裕

460 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:46:35 ]
C#がというかVC#が快適すぎる
どうやったらここまでインテリセンス速くなるのか

461 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 01:52:02 ]
>>447-449
日本では、明治5年(1872年)に、従来の太陽太陰暦を廃して翌年から太陽暦を採用することが布告された。
この「太陰暦ヲ廃シ太陽暦ヲ頒行ス」(明治5年太政官布告第337号、改暦ノ布告)では、
「來ル十二月三日ヲ以テ明治六年一月一日ト被定候事」として、グレゴリオ暦1873年1月1日に当たる
明治5年12月3日を明治6年1月1日とすることなどを定めた。そのため明治5年12月2日まで使用されていた
天保暦は旧暦となった(明治改暦、明治の改暦)。

462 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 01:59:37 ]
それもきっちり施行されたわけではなく、和暦もあわせると専門家すらどっちでもいいじゃんと言い出すほど

463 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:13:46 ]
.net Framewark Compact のメニューが使いづらいのでピクチャーボックス上にアイコンを直接描画してプラグインの機能を呼び出したいのですが
そのためのクラス設計がいまいちよくわかりません
プラグインを読み込むときピクチャーボックスのどの位置にアイコンを表示するか計算してプロパティに持たせる
OnPringイベントハンドラでそれぞれのプラグインが自分の位置にアイコンを表示する
プラグインにピクチャーボックスのクリックイベントハンドラを持たせる
クリックされたイベントがすべてのプラグインで評価され
自分のアイコン領域だったら機能を起動
こんな流れを考えてましたが

プラグインのアイコンを押したとき、さらに選択肢アイコンを表示したくなったらどうするのか?
その場合アイコンを管理するコンテナクラスを作るべきなのか?

そんなことをうだうだ悩んでます
どうかアドバイスをお願いします

464 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:26:49 ]
プラグインって何だ?
普通にカスタムコントロールじゃね。

>選択肢
タップ&ホールドさせてメニュー出すのがWMの流儀。

465 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:27:42 ]
>>463
描画方法はカスタムドローのノリでいいんじゃね
アイコンの管理はContextMenuのように親子を階層管理して、
クリックイベントは親で評価して該当する子に伝えて
子は自分の管理する孫にヒットテストしていく感じで


466 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:49:03 ]
>>464
ありがとうございます
プラグインは普通にプラグインです
DLLであとから供給される機能なので後からメニューに割り込ませないといけないです
タップ&ホールドさせてメニュー出す→一つ選ぶ→そこから更に選ぶ 例えば描画なら エフェクト→モザイク→小・中・大
みたいにモザイクプラグインが自分で持ってる選択肢がどのように展開するかを先に決めることができないので・・・

>>465
ありがとうございます
ノリ的にはカスタムドローなんですよね
管理のイメージもContextMenuのListを持たせる方式がなんとなくイメージしやすいです
イベントの処理をどうしようか悩んでたら
>クリックイベントは親で評価して該当する子に伝えて
>子は自分の管理する孫にヒットテストしていく感じで
あーなんか光明が見えてきた感じです
仮想関数のデリゲートのインスタンスで解決するですかね?
スマートな方法というか、常道ではどうするのでしょうか?



467 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:49:14 ]
C#でゲーム作りたいけどC#でゲーム作るサイトがあまりない・・・
C言語とかC++で作るページならいくらでもみつかるのに。

使いやすさ、簡単さはC#のほうがいいけど
やっぱサンプルコードが充実してるっていう点ではC++とかのがいいなぁ

468 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 11:02:41 ]
アプリケーションの設定で、独自の型を設定するにはどうしたら良いのでしょうか?
「参照」ボタンを教えても、自分の作ったネームスペースは出てこないんです。



469 名前:465 mailto:sage [2009/11/14(土) 11:07:33 ]
>>466
メニューが整列したデスクトップアイコンみたいなの想像してるんで
Zオーダーは考慮してないから注意してね
子から親ならデリゲート(イベント)かなと思ったけど
親から子ならインターフェース使うかなぁ
すべてのメニューに共通のインターフェース持たせとけば楽かと
void NotifyMouseClick(〜Args e) みたいな感じにするかな
継承まで考えるならこのメソッドの実装で virtual void OnMouseClick(〜) を呼ぶ

470 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 11:15:19 ]
>>469
>メニューが整列したデスクトップアイコンみたいなの想像してるんで
>Zオーダーは考慮してないから注意してね

OKですWMでアイコン並べるって話ですからiPhoneのアイコンと同じイメージです

>親から子ならインターフェース使うかなぁ
>すべてのメニューに共通のインターフェース持たせとけば楽かと
>void NotifyMouseClick(〜Args e) みたいな感じにするかな
>継承まで考えるならこのメソッドの実装で virtual void OnMouseClick(〜) を呼ぶ

なるほどなるほど
メッセージの流れを先に決めてしまえばイメージしやすいですね
親から子 子から親 要素からコンテナ みたいにいろんな方法がとめどなくあるので
身動き取れませんでした

なるべくいろいろなプラグインに対応できるようにここは慎重に考慮すべきですね
でも、頭の中がだいぶすっきりしてきました
ありがとうございます

471 名前:デフォルトの名無しさん [2009/11/14(土) 11:50:06 ]
MyClass<T>というのがあり、

Dictionary<string,MyClass<T>>のようなことをしたいのですが、
ここでDictonaryが保持するMyClassはMyClass<int>やMyClass<string>
のように複数の場合、どうしたらいいですか?

最悪Refrection使っても問題ないので、よろしくお願いします。

472 名前:デフォルトの名無しさん [2009/11/14(土) 11:58:25 ]
デバッグした時にエラーがあると、前回成功した結果で勝手に実行されるのをやめさせるには
どの設定を変えれば良いですか?

例えば、

private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "こんにちは";
}

で実行したあとに

private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "こんばんわ" エラー;
}

を実行すると、エラー一覧画面で怒られているのに
最初に実行した"こんにちは" が表示されるという具合です。


C# 2008のお試し版を使っています。

473 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 12:10:08 ]
>>471
Dictionary<string, object> かねえ・・・
せめてMyClassに共通の具体的な継承元があればそれにしておくくらいか

>>472
そんな現象は起こらないので、何か勘違いしてる

474 名前:471 mailto:sage [2009/11/14(土) 12:17:56 ]
>>473
レスありがとうございます・。

objectにしちゃうと、受け側で int hoge = (int)myDictionary[keyString].GetValue()
みたく、キャストしないと受けれないですよね? それを避けたいというのが動機です。

継承元を作るもやってみたのですが、
外部からmyDictionary[keyString].GetValue()のような形で呼ぶためには、
共通の基底クラスにも
MyBaseClass
{
public abstract "Type" getValue();
}
が必要になり、何一つ解決しませんでした。




475 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 12:29:02 ]
>>474
そもそも、異なる型を一つのコレクションに突っ込もうとしてる時点でキャスト避けるのは無理に近い
他のデメリットをすべてかなぐり捨ててキャストだけ排除したいなら、
想定する全部の型をメンバーに持ったクラスにするしかない
バリアント型みたいに型を表すenumでも持っておいて、それを見て取り出すべきフィールドを決める
まあ、やんない方が良いね。そもそも設計の方に問題があると思うから
あと気になったんだが、GetValue()の結果をキャストするのっておかしくないか?
object item = myDictionary[keyString] as MyClass<int>;
int hoge = item.getValue();
こうあるべきだと思うけどね。

476 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 12:30:20 ]
書き損じた
objectで受けるんじゃなくて MyClass<int> だね



477 名前:471 mailto:sage [2009/11/14(土) 12:32:21 ]
訂正
objectにすると、
(MyClass<int>)myDictionary[keyString].GetValue()
とするのにキャストが必要。
objectのままだと当然GetValue()にはアクセスできない。
の間違いでした。


478 名前:471 mailto:sage [2009/11/14(土) 12:39:26 ]
連続で失礼。
>>475さん
やっぱりある種、動的型付け的なことなので無理なんですかね。

typeof(int) "12" や、 typeof(String) "もじ”
などの型情報とそこで指定された方にParse可能な文字列を保持しているペアがあって
その型情報をもとにParseして指定された型で返すというものを作りたかったので
扱いたい型の数だけフィールドorメソッドを用意する or objectで受けてキャストするのが解っぽいですね。

getIntValue() { return (int)value;} みたいなのを色々用意するくらいなら
受け側でキャストした方が楽か…

ありがとうございました。

479 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 12:51:53 ]
>>478
そういうことならMyClass内ではstringのまま持って以下のような方法も・・・
enum ElementType { None, Number, Text ..}
class MyClass
{
 ElementType ElementType { get; }
 T getValue<T>() { ... }
}
MyClass item = myDictionary[keyString];
switch (item.ElementType)
{
case ElementType.Number:
 int hoge = item.getValue<int>();
 break;
...
enumじゃなくてTypeを公開してもいいかもだけど

480 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 13:11:53 ]
これじゃだめ?
public class MyClassDictionary<T>
{
  public Dictionary<string,MyClass<T>> dic { get; private set; }

  public MyClassDictionary()
  {
    this.dic = new Dictionary<string,MyClass<T>>();
  }
}


481 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 13:27:34 ]
>>467
XNAを使うんだ!

482 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:06:54 ]
オブジェクト指向ってすごいな。
オブジェクト指向がない言語ってどうやってプログラム組んでるんだろうな。
if文とかすごく多くなって見づらそうだね。

483 名前:480 mailto:sage [2009/11/14(土) 14:10:38 ]
って、ちゃんと読んでなかったスマソ。

484 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:17:53 ]
>>467 作りたいけどサイトが無いって
ずいぶん妙な事言ってるな
作るのは自分じゃないのか。他人ありきなのか

自分でアルゴリズムやロジック考える事こそがプログラミングだぜ


485 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:18:57 ]
>>482
どんな言語でもオブジェクト指向プログラミングは出来る
しやすいかどうか(文法としてサポートしてるかどうか)の違い

486 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:23:27 ]
>>485 同意
そういや「オブジェクト指向」ていつのまにかただの単語になっちまってるな
オブジェクトとして捉え観察してコーディングする指向の呼称だったはずなのにな




487 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:31:20 ]
オブジェクト指向言語使ってるのに
switchでの処理分けばっかりしてるようなやつもまだ沢山いるけどね。


488 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:32:14 ]
プログラミング関連に限らずこの世に「ただの単語」じゃない単語があるならkwsk
どんな複雑で難解な数学用語だろうが「ただの単語」だろ?理解できる人が多いか少ないかの違いがあるだけで。

489 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:32:24 ]
>>484
んなこたない
できるだけ横着するために苦労するのがプログラミングだと思うぞ
車輪の再発明して威張っていいのは学生まで

490 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:35:00 ]
>>488
バズワードになったっていいたいんじゃね?
ja.wikipedia.org/wiki/%E3%83%90%E3%82%BA%E3%83%AF%E3%83%BC%E3%83%89

491 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:36:20 ]
>>487
俺のことか・・・

492 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:37:25 ]
真面目な話、他人の作ったライブラリやコード片やサービスとか上手に組み合わせて
面白い何かをいかに素早く作れるかが重要だよな。ここ最近は。

なに、レビューワーがしっかりしてりゃいいんですよ。

493 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:38:54 ]
>>488 いや言いたいのははそういう事じゃない

元の意味を忘れてしまってるって話だ。前レスからの文脈を理解してくれ

494 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:39:25 ]
>>491
switch とオブジェクト志向、全然関係ないから気にするな

495 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:41:59 ]
switch使うならStateパターン使えよターコ
ボケ
カス

496 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:45:27 ]
>>492 >>489
ここが「初心者向け」と看板がついたスレなのを忘れたか

いくつの車輪を再発明できるかがその人の理解の幅や知識、地力を上げると気付けよ
効率の話はまたその先の話だ

基礎的な発想や当たり前レベルだと、慣れた人がパッと見てわかるような事さえ初学では判断もできない訳だから
なんでもショートカットしてコピペで済ませてはいけない

お前さんも経験あるなら理解してもらえると期待する




497 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:46:04 ]
パソコンが普及した

マイクロソフトがVSをただで配ったりBorlandがDelphiをただで配ったりした

一般大衆も高性能なプログラミング言語を手に入れられるようになった

いままで一部の専門家しかプログラムなんてやらなかったのが普通の小中学生でも手を出すようになった

オブジェクト指向などの概念などをわかりやすく解説するサイトが増えた

浅い知識だけのオブジェクト指向が広まった

こういうことか

498 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:49:40 ]
>>496
だから「"学生"まで」なんじゃね?

>>484>>489>>492>>496
つか不毛な精神論語って悦に入ってるぐらいならさっさと参考になるサイトでも教えてやれよって思うんだがな。

499 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:50:59 ]
switch(currentState)みたいなのは多態使うべきだけど
メソッドの引数なんかはよっぽどのことがないかぎり
普通にswitch使った方が適切

500 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:51:03 ]
>>495
コードの見通しが悪くなる弊害を無視して
常にそれなら、それはそれでアホだな

501 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:52:56 ]
>>499
パターン覚え立てだと凝ったことやりたがるのはよくあること
シングルトンの乱用なんかが典型的だな

502 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:55:58 ]
>>498 不毛な精神論なんてどこを読んだらそうなるんだよww
考え方やスタンスが無くてどんなコードが書けるんだ
攻略サイトが無いとパズルゲー解けないみたいな主張はゆとりと言うより、ちょっとひどい勘違い

503 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:58:24 ]
>>502
自分で考えろだの拾ってくるのが正しいだの、こんなの何の役に立つアドバイスなの?
発言してて気持ちいいだけっしょ?

504 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:59:22 ]
>>501
逆に初学の間は(どんなにコーディングに慣れた人でも新しい何かを始めた時も含めて、初学の間は)
色々無茶するのはむしろアリだよな

仕事に適用しなきゃならん場合は確実に除いて

505 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:01:00 ]
デザパタはあくまでよくあるパターンでしかないからな。
それにGoFで挙がってるのが唯一無二ってわけでもないし。
何でもかんでもアレに当てはめようっての自体がアンチパターン。

506 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:03:13 ]
>>503 どうしてそんなスタンスで話を見てるのか、俺にはそれこそお前の気持ちがわからない
俺はどんな話でもそこにヒントを探す。何故ならその方が自分の時間に無駄が無いから

てか、気持ちいいだけでしょ?とか、その発想の方が不毛で無駄
コーディングの役にあんまり立たない



507 名前:新人 mailto:sage [2009/11/14(土) 15:03:41 ]
クイックソート実装しました!
エラー処理とかきっちりやったんで100行ぐらいになりましたよー!いやー苦労しました!
標準ライブラリのとかってなんか遅そうじゃないですか?

508 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:05:05 ]
IPアドレスにマッチする正規表現ってこれでいいですか?
private static Regex regexIP = new Regex(@"(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])");


509 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:06:07 ]
>>506
そりゃお前の話だろ
何故ならその方が自分の時間に無駄が無いから(キリッ
気持ちいいですか?

510 名前:471 mailto:sage [2009/11/14(土) 15:08:01 ]
なんかすごい勢いで流れてますが、
>>479さん、追加例ありがとうございます。
MyClass自体は非ジェネリッククラスにして、
objectに外部で指定された型にParseしたvalueを入れておき、
myclass.getValue<int>();
みたいにとるのも可能性としてはありますね。
結局、
(int)myclass.getValue() と myclass.getValue<int>();
なら前者がシンプルでわかりやすいかなという気がします。
長々とお付き合いいただきありがとうございました。

511 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:08:27 ]
>>508
IPアドレス 正規表現でググってでてくるのが軒並それと一緒だから多分大丈夫じゃね?


512 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:09:08 ]
>>505 同意。その良くあるパターンを良くある理由も含めて追いかけると、先に進むにつれて楽になる
自分の技や発想のバリエーションがマジで広がる
何がアンチパターンなのかもきっとわかるよな


513 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:10:31 ]
>>509 お前多分向いてないよ。もう消えとけ


514 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:10:48 ]
>>510
どういたしまして。

つーか、おまえらこんなにいるくせに
黙ってスレ眺めてたのかよ、きめえww

515 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:13:18 ]
ある引数の値の範囲を実行時じゃなくコンパイル時に制限することって出来ますでしょうか
値の範囲自体は1-9とかの狭い範囲です。(マージャンゲームの実装をしています)

enumを使ったり値自体をクラスにすれば出来そうな気もしますが、そういうやり方が正しいのかどうか
よくわかりません。


516 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:13:22 ]
>>508
(25[0-5]|2[0-4]\d|[01]?\d\d|\d)
こうしないと数字の途中で切れるんじゃ



517 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:14:22 ]
多分3人ぐらいで回してると見たね。

518 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:16:27 ]
俺もそう思う

519 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:17:07 ]
そんな感じ

520 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:17:56 ]
>>512
ただ、それはアンチパターンだよ、ってのを教えてもらわないと
一生パラダイムシフトしないまま終る人も居る気がするよ。

仕事でやってりゃ怒られたりほされたりして気付くだろうけど
シコシコフリーソフトをソース公開しないで発表してたりする場合は
誰にも何にも言われんからなぁ。


521 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:18:43 ]
>>517-519
お前らかww

522 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:22:34 ]
>>520 あぁ確かに。
指摘してもらえるのって大事だもんな
誰も一人では成長できないって奴だ

自分で広げるスタンスをデフォにした上で、他の人の意見を理解する、みたいな
やはり同意

523 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:25:28 ]
ボタンを押した瞬間にコンテキストメニューを表示する動作を実装してるんですけど
ContextMenuStripを使うとメッセージをブロックしてくれないから?ポップアップすると
ボタンがアップしてしまいます
これをContextMenuで実装するとボタンが凹んだ状態を維持出来るんですけど
機能がContextMenuStripに比べて少ないのでそれはそれで困ります
そこで、ContextMenuStripでShowしたときにメッセージをブロックする良い方法があれば教えてください
APIのTrackPopupMenuを試してみましたが表示されませんでした
なおボタンをトグル式にしたりして見た目上回避する方法はとれません

524 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:30:31 ]
>ボタンをトグル式にしたりして見た目上回避する方法はとれません
なぜ?
単にそれだけで解決する「問題」に思えるんだけど。
ちなみに、個人的にはそんなメニューが表示されている間だけ「ボタンがフリーズする」
UIは生理的に気持ちが悪い気がする。

525 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:31:42 ]
>>523>>463を頑張ってるんじゃないんだろか

526 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:37:24 ]
>>524
エクスプローラの「アイコン/一覧/詳細」の切り替えボタンの動作といったら分かりますかね
凹んだ状態でもう一度押したらポップアップが解除されるだけですけど
メッセージがブロックされてないと、一瞬閉じてまた開きます
これ以外にも細々とした挙動で多くの不都合がありますので採用できません

>>525
別人です



527 名前:デフォルトの名無しさん [2009/11/14(土) 15:41:20 ]
「秀丸エディタ」でC#用のソースを生成しようとしたのですが、
「秀丸エディタ」の正規表現の置換がうまくいきません。

作業内容は、
(1)Excelで作成した表を、タブ区切りのテキストデータとして保存し、
(2)「秀丸エディタ」でそのテキストデータを開き、
^(先頭文字)⇒¥t¥t¥t
に全置換しようとしました。

もともとテキストデータであったファイルを置換するときはうまくいきますが、
Excelからエクスポートしたテキストデータは、先頭行を認識してくれないのでしょうか。
どうすれば、先頭行を置換できるでしょうか。

スレちがいかもしれませんが…よろしくお願いします。

528 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:48:12 ]
趣味でプログラミングやってる人に仕事でやってるようなノウハウを押し付ける人たちってきめぇわ
死ねよ

529 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:48:19 ]
>>527
マルチポストです

530 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:50:11 ]
>>527
スレ違い帰れ

531 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:50:48 ]
class このスレ{
public int バカ;
public string アホ;
public static void 無駄レス();
}

532 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:53:08 ]
>>528
な。連中がしてることってオナニーだよな。

533 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 15:53:37 ]
>>526
なるほどお節介をいって申し訳ない。

ちなみに、今ちょっと実験してみたらButtonのOnMouseUpをオーバライドして
ベースクラスのOnMouseUpを呼ばないようにすると「押されたまま」の状態になるようだ。

ボタンを通常の状態に戻したいときには、OnMouseUpが呼ばれた時のMouseEventArgsを
保存しておいてベースクラスのOnMouseUpを呼べばいいみたい。

これがWindowsプログラミング的に正しいかどうかは分からないけど。

534 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 16:03:22 ]
>>533
ありがとうございます
確かにその方法でボタンの押しっぱなしには対応できますね
ただボタンを左クリックして解除された時の動作や、
ポップアップしているメニューと関係のないコントロールの
キーボードショートカットなどが効いてしまいます
これらの多くの問題に対処するには、どうしても
ContextMenuのようなメッセージをブロックする形で
ポップアップしないとキリがない感じです・・・
なので、なんとか辻褄を合わせるような対処法は避けたいのです

535 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 16:04:44 ]
麻雀牌のクラスを作る場合、
abstract class 牌 {}
abstract class 数牌 : 牌 {}
abstract class 萬子牌 : 数牌 {}
class 一萬 : 萬子牌 {}
...
abstract class 字牌 : 牌 {}
abstract class 三元牌 : 字牌 {}
class 中 : 三元牌 {}
...
ってやって全部クラスにしちゃうのと

abstract class 牌 {}
enum 数牌タイプ { 萬子,. 筒子,... };
class 数牌 { 数牌タイプ Type, int Number}
enum 字牌タイプ { 東, 南,.... };
class 字牌 { 字牌タイプ Type, }

みたいに途中でenumで振り分けちゃうのはどっちが実装として正しいんでしょうか?

536 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 16:24:12 ]
いろんな言語を勉強すると
今まで使ってた言語の良い部分と悪い部分が浮き出てきて良いなぁ



537 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 16:32:50 ]
>>536
スレ違い


538 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 16:34:38 ]
decimalってなんで最後にmつけるの?
decimalなんだからdでいいだろ!doubleと間違うならdeでいいだろ!
なんだよmって!






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<233KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef