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


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

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



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

ふらっとC#,C♯,C#(初心者用) Part23
pc11.2ch.net/test/read.cgi/tech/1200033660/

641 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:17:01 ]
UIのコンテナ関係の質問です。
元のコンテナをDisableにすると中のコントロールも灰色になってしまうのですが、
これを自前でドローする以外で回避するにはどうしたらいいでしょうか?

642 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:14:04 ]
自前ドローだけで回避できるのか?
WS_DISABLEDが伝播してきてるんじゃないのかね

643 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 02:41:57 ]
>>641
見たこと無いな、そんな機能
色は変えなくてもDisable?
それでなけれぱ、一旦コンテナから離して、優先順位を上にしてしまうのが楽チンそうな気がする。

644 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 10:02:09 ]
ちょっと教えて下さい。
HttpRequest/HttpResponceを使ってWebサーバと通信して居ます。
WebサーバからCookieが送られて来るのですが、JavaScript中に埋め
込まれて送られてきます。
HttpResponceで受け取ったデータの中を舐めても良いのですが、もっ
とスマートにCookieを取り出したいのですが、何か良い方法は無いで
しょうか?
ちなみに、IEがDocument Setting\ユーザ名\Cookieに保存するCookie
ファイルを直接読み出す方法を考えて見たんですが、ログインユーザ
を意識しないでやる方法を探して居ます。
何か良い方法は無いものでしょうか?

645 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 10:23:20 ]
>>644
Cookies

646 名前:デフォルトの名無しさん [2008/02/15(金) 11:18:22 ]
DateTime型のToString()メソッドで、XML SchemaのdateTime型(CCYY-MM-DDTHH:MM:SSZ)形式を
一発で出す方法は無いでしょうか?

DateTime dt = DateTime.Now();
dt.ToString("s");

でCCYY-MM-DDTHH:MM:SSまでは出る事がわかったのですが。
(タイムゾーンが出ないです)

TimeSpanを使って長ったらしい内容にしないと無理でしょうか?
後々、バグの原因になりそうなので簡潔に書いておきたいのですが。

647 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 11:35:15 ]
dt.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss':'zzz");
とか?

648 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:15:14 ]
つーかDateTime構造体にタイムゾーン情報って含まれてたっけ?
単なるlong値じゃねーの

649 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:17:49 ]
UTCかGMTかの区別は入ってるよ。
あとは実行した環境のタイムゾーン見ればよし。



650 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:18:09 ]
UTCかローカルタイムか、ね

651 名前:デフォルトの名無しさん [2008/02/15(金) 12:48:47 ]
>>647
XMLスキーマのdateTimeってGMT+タイムゾーンだからそれじゃダメじゃね?

>>648
.NET2.0から仕様が変わってタイムゾーンを保持するようになった



652 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:06:17 ]
>>644
HttpWebRequest/HttpWebResponseではJavaScriptが動作しないので、
埋め込まれていたら無理。
IEで利用しているCookieを取得するには、InternetGetCookie。

653 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:51:37 ]
>>651
なら 'GMT'zzだね。

654 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:54:03 ]
'Z'

655 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:10:52 ]
DateTimeはカスタムクラスを作っておいて必ずそれを呼ぶ様にした方がいい。
特にDBとか使ってるときにDB側の日付型の違いで地獄に堕ちるのを防いでくれる。

656 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:26:17 ]
>DB側の日付型の違い
これって結構あるものなんですか?標準と微妙に違ってたり、とか?

657 名前:デフォルトの名無しさん [2008/02/15(金) 14:36:05 ]
フォームの質問です。

メインウィンドウからダイアログ1を開く→OK押す(ダイアログ1消える)→ダイアログ2が起動
(重い処理なのでプログレスバー表示)→完了(ダイアログ2消える)→メインウィンドウに戻る

をしたいのですが、1を消すタイミングでclose()、dispose()してるにも関わらず
ダイアログ2が終わるまで1のダイアログが残ってしまいます。(1の上に2が重なってるイメージ)
どうやれば、1のダイアログをすぐに消すことが出来るんでしょうか。



658 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:38:22 ]
親ウィンドウをdisposeって普通しないんじゃ?
最小化すればいいんでないの

659 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:40:35 ]
>>656
selectした際に特に変換せずに抜き出すと、各社ばらばら。
あと内部保持形式がUTCだったり設定依存だったりと。
俺は日付に関する値でも迷わずvarcharにしている。
で、どうしてもという時は、where句で必要に応じてvarchar -> dateとかキャストして使うようにしている。



660 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:45:12 ]
>>658
良く嫁

661 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:08:45 ]
>>659
すごいですね・・・DBやったことないんで知りませんでした
地獄には堕ちたくないですよねやっぱ

662 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:10:05 ]
重い処理とやらをUIスレッドでやってるだけじゃね?

663 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:10:29 ]
SQL92準拠にしとけばいい

664 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:19:41 ]
>>657
ダイアログ2を開く処理はどこに書いてる?
ダイアログ1のOKボタンのハンドラに書いてないか?

665 名前:デフォルトの名無しさん [2008/02/15(金) 15:22:06 ]
>>663
そんなの関係ねぇ〜

666 名前:657 [2008/02/15(金) 16:28:57 ]
>664
処理の流れは、

1.メインウィンドウ
ダイアログ1を開く処理(xxx.ShowDialog())
2.ダイアログ1
処理 (DialogResult.OKを返す)
3.メインウィンドウ
DialogResult.OKを受け取った後、ダイアログ1を閉じる処理 (close()、dispose())
4.メインウィンドウ
ダイアログ2を開く処理(yyy.ShowDialog())
5.ダイアログ2
処理 (処理後にclose()、dispose())

5でダイアログ2が消えると同時に3のclose()が働いてるようです。
因みに3の直後でmessagebox.show()でメッセージを表示すればダイアログ1は消えます。


667 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 16:43:11 ]
再描画

668 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:02:16 ]
DateTimeにnullが代入できないのはどうにかならんのだろうか
nullに相当する時間をきめてやるとか、処理がめんどい

669 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:17:58 ]
Nullable<DateTime>



670 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:36:22 ]
DateTime.MinValueでいいんじゃね

671 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:40:08 ]
Nullableと?って何が違うの?

672 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:43:09 ]
同じ。

673 名前:デフォルトの名無しさん [2008/02/15(金) 19:42:34 ]
DateTimeをクラス化すればいい

674 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:35:05 ]
>>669
ジェネリックかじってたけどこれは知らんかった

>>670
それも考えたけどフレムワクのバージョンとか
環境の違いで値が変わる可能性がないとは言い切れない
とか妄想したんで使ってない

>>673
その考えはなかった

675 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:35:36 ]
>>671
構文糖衣ってやつ。

676 名前:644 mailto:sage [2008/02/15(金) 23:42:22 ]
>>645,652
回答ありがとうございます。早速試して見ます。

677 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:45:01 ]
>>675
クラス型と値型との違いはないの?

678 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:51:49 ]
>>677
T?に対応するのはNullable<T>構造体だよ。
だからどっちも値型。

679 名前:デフォルトの名無しさん [2008/02/16(土) 00:58:29 ]
monoからDateTime.cs引っ張ってきてクラス化してみようと思ったが面倒なんで途中でやめた



680 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:01:14 ]
世界がお前の偉業を待ち望んでる
最後までやれ

681 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:06:41 ]
>>678
なるほどなー
Nullableって使いやすくて大好きさ

682 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:50:26 ]
2つのIEnumeratorを並行して列挙したいんだけど
自分で列挙子を直接操作する以外の方法ある?

683 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:00:14 ]
>>682
> 並行して列挙
って何?

684 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:05:41 ]
ZipWithみたいなのが欲しいってこと?
ttp://blogs.wankuma.com/mnow/archive/2008/01/24/119056.aspx#119332

685 名前:682 mailto:sage [2008/02/16(土) 13:19:55 ]
>>684
うん
.NET3.5も含めて,標準の方法はないということでいいのかな

686 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:23:31 ]
>>685
であれば残念ながら標準では無いですな。
必要なら作るしかない。

ちなみにMicrosoft Parallel Extensions to .NET Framework 3.5の中にも
internalメソッドでZipWithが入ってる。
標準で入れてくれてばいいのに。

687 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:32:58 ]
Haskell を馬鹿にするわけじゃないけど、
zip with って名前が何だかださくない?

688 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:05:04 ]
WriteLineみたいな英単語の先頭ごとに大文字にするクラス名・メソッド名の記法はなんていうの?
ハンガリアン記法で調べてかかったページを見ても書いてないんだけど。

689 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:22:11 ]
>名前付けのガイドライン



690 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:34:52 ]
>>688
CamelCaseと言います。
ttp://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%A1%E3%83%AB%E3%82%B1%E3%83%BC%E3%82%B9

JIS X 3015だと「らくだ形式」って訳されてますな。

691 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:37:15 ]
違わないか?w

692 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:45:17 ]
"名前付けのガイドライン"でググってMSDNで確認した、後に
>690のリンクに飛んだら、吹いた。

MSとWikiPediaならどっちもどっちだけど、 書いてる奴マジやる気ないんだな。

693 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:46:53 ]
「Pascal 形式」じゃねーの?
少なくともハンガリアン記法は関係ない

694 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:52:32 ]
ハンガリアンはMS自らによって完全否定されました

695 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:02:38 ]
>>693
「Pascal 形式」であってるよ。

ttp://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%A1%E3%83%AB%E3%82%B1%E3%83%BC%E3%82%B9
>
>アッパーキャメルケース (UCC)、またはパスカルケース(PascalCase)
> 複合語の先頭を、大文字で書き始める。
> つづり例:CamelCase
>
>ローワーキャメルケース (LCC)、または単にキャメルケース
> 複合語の先頭を、小文字で書き始める。
> つづり例:camelCase

696 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:13:07 ]
微妙に話が変わるけどReSharper 4.0でCompletion with CamelHumpsが入るっぽいな。

たとえば"SqlBulkCopy"というメソッドを"SBuC"みたいな書き方で補完できるらしい。
ttp://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.0+EAP+Notes#ReSharper4.0EAPNotes-CompletionwithCamelHumps


697 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:26:38 ]
なにそれ気持ち悪い

698 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:28:12 ]
ハンガリアンは誤解された形で広まってしまっただけで、
元々の考えは別に悪い物ではない。

699 名前:デフォルトの名無しさん [2008/02/17(日) 05:08:52 ]
独自の設定ファイルを簡単に読み書きできるクラスってないでしょうか。
また設定ファイルの一部はデータグリッドに表示して編集もしたいです。




700 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 05:22:32 ]
独自のファイルを操作するクラスは独自に作るんじゃないのか?

701 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 09:36:59 ]
List<Hoge> listの中身をランダムにソートしたいです。

list.Sort( delegate( Hoge a, Hoge b ) {
 return rand.Next( -1, 2 );
} );

のように、ランダムに-1〜1が返るようにして実装したつもりなのですが、動かすと
Array.Sort が x. CompareTo(x) を呼び出したときに、IComparer または依存する IComparable メソッドは 0 を返しませんでした。
という例外が発生します。
どこが悪いのでしょうか?

702 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 10:24:55 ]
比較関数は推移性とかを満たしていることが前提だからな

703 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:09:15 ]
>>699
DataSetとか。
でも、保存するのが単純な値などかによっても善し悪しあるから、
素直に2.0以降は独自クラス作ってシリアライズのが楽。


704 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:10:32 ]
>>701
エラーは、自分自身との比較は0を返せって意味だけど、
そもそもソートの比較関数は、例えばA<BでB<Cのとき、A<Cでなければならかなかったはず。
答えがランダムじゃだめだと思う。

一旦別のリストにコピーしてから、
そのリストの添え字をRandom.Nextで生成してAddしていけば?

705 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:40:16 ]
>>701
ランダム並べ替えが目的なら、昔からある定番アルゴリズムを使えばよし。
Sortメソッドは、一定のルールに基づいて並べ替えを行うメソッドなので、ランダム並べ替えに使うのは良くない。コードを読む人が混乱する。

static void Shuffle<T>(ref IList<T> list)
{
Random r = new Random();

for (int i = 1; i < list.Count; i++)
{
int j = r.Next(list.Count);
T tmp = list[ i ];
list[ i ] = list[ j ];
list[ j ] = tmp;
}
}

706 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:41:43 ]
>>701
「i番目の要素をi以上配列の長さ未満のランダムな要素と交換する」をすべてのiについて行えばシャッフルできるはず。

ところで、
Enumの名前とプロパティの名前をできるだけ同じにしたいときがあるんですがどうしてます?
↓こういう場合です。
class MyIO
{
enum MyIOMode
{
Syncronized,
Asyncronized
}

public MyIOMode MyIOMode { get; set; }

MyIO()
{
MyIOMode = MyIOMode.Asyncronized;
}
}
System.IO.FileModeみたいに複数のクラスで使われるならenumを名前空間に直接書いてもいいんですが、
そのクラスでしか使わないとなるとクラスの中に書きたいと思うのです。

707 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:44:45 ]
>>705
ref にする意味ってあるの?

708 名前:705 mailto:sage [2008/02/17(日) 11:48:40 ]
すまん。refは不要というか不可だ。

709 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:02:17 ]
>>705
for (int i = 1 だとまずくね?
Count=1 や 2 なら問題ないけど Count=3 だと
リスト先頭だった要素は Shffule 後にも先頭にいる確率が 4/9 になる



710 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:09:57 ]
>>706
MSのガイドラインによると,ネストした型を外に見せるのは推奨されない
外に書いていい

711 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:24:01 ]
>>710
そんなガイドラインあったっけ?
っていうか.NETのライブラリだって普通にネストした型を公開してるよね。
たとえばListViewItemCollectionなんてそのはずだけど

712 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:47:31 ]
>>711
msdn2.microsoft.com/ja-jp/library/ms229027(VS.80).aspx
コレクション系は例外に当たるみたい(List<T>+Enumeratorとか)

713 名前:712 mailto:sage [2008/02/17(日) 13:00:34 ]
親とデザイン的に強く結び付いてるときは(親のprivateメンバにアクセスするとか)
稀に入れ子の型にすることもあるってことかな
単に親でしか使われないからというだけではなく

714 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:07:51 ]
というより当該のガイドラインそのものが合理的根拠がない「俺様ルール」か、
それが言いすぎならせいぜい「村の掟」に過ぎないってことじゃないの?

715 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:19:19 ]
それを言うなら名前付けの規則とか
名前空間をあんまり深くしすぎるなとかだって同じだろ
単にMSの好みだから従わなくていいと言ってしまえばそれまで

716 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:43:17 ]
変なプログラムの例ならCプログラミング診断室を読むといいよ

717 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:06:20 ]
Cプログラミング診断室で昔何度か探し回ったものの書籍紹介しかなくて泣いたのはいい思い出

ちょっと下にスクロールするだけだったと思わなかったのは俺だけかなぁ

718 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:15:49 ]
君だけだろwwwww

719 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:18:56 ]
俺だけか…てかあそこ読む意味をあんま理解してない辺りまだまだですね、すみません



720 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:42:17 ]
>>717
え?ちょw今知ったwww本借りてきたのにwwwww

721 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:21:58 ]
定数文字列を格納する一番(?)スマートな手段というのはどんなものなのでしょうか?

現状
struct hoge{
 const string piyo = "abcde";
 const string fuga = "abcde";
 const string hogehoge = "abcde";
 const string piyopiyo = "abcde";
 const string fugafuga = "abcde";
       :
}
といった具合にだーっと書いています、文字列定数の数は50個程度、文字列長は10~300文字程度です
調べれば定数と言えばconstと出てくるのでこれで通していたのですが
もっと良い手段があるのではないかと思い質問しました。
それではよろしくお願いします

722 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:24:30 ]
>>721
リソースとして埋め込むかテキストファイルにでも書いておいたらいいんでない?

723 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:47:36 ]
>>721
.NET Frameworkの中では
SR.GetString("キー文字列")
みたいにしてるよ
そういう風にしとくと後で実装変えられて便利

724 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:01:01 ]
Icon ico = Properties.Resources.IconFile1;
以上の部分で、以下のようなエラーが出ます
エラー CS0103: 名前 'Properties' は現在のコンテキスト内に存在しません。

以前までは正常に動いていたためどこかを変えてしまったせいかとも考えたのですが
エラー文から見るにPropertiesが無いといっているように思えます
しかし、ソリューションエクスプローラから見るとProperties/Resources/IconFile1はしっかり存在します

こういった場合はどういう間違い・おかしな部分が考えられるのでしょうか?


725 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:24:31 ]
>>724
開発しているのにまずエラーコードやエラーメッセージでググらずに2chに書き込んでる部分かな

726 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:30:00 ]
>>725
なにを根拠に言っているか笑えてきますが既に検索済みです。

727 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:30:34 ]
ああゆう断定形はネタだよ、ガチで言っちゃってるやつはすぐふぁびょるから見もの

728 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 17:22:34 ]
バルーンを手動で表示させると、最初だけふきだしの先っぽが違う方向に出るのは何故なんだぜ?
ツールチップに関するコードは↓のみなんだけど、回避する方法は無いものか…

toolTip1.Active = false;
if( textBox1.Text.Length > 5 ){
  toolTip1.Active = true;
  toolTip1.Show( "hoge", textBox1 )
}

729 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 10:30:35 ]
ツンデレ



730 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 12:15:37 ]
ArrayListで2つのコレクションがあるんだけど、どちらもPointerなのね
この2つのコレクションに含まれてる要素で、重複するものだけを取り出したいんだけど、どうやればいいんでしょ?
たとえば、
1つめのコレクションhoge1には、{P1, P2, P3, P6, P7, P8 }
2つめのhoge2には{P2, P7}
とあるとき、P2とP7だけ取り出したいんです
foreach( Point p in hoge2)
{
  if( hoge1.Contain(p))
  {
    point.add(p)
  }
}
とやったら、if分のところで、比較ができないというエラーが出マスタ
今回、ジェネリックは使わないので、ArrayListでお願いしますm(__)m

731 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 12:58:58 ]
日本語でおkっていうか。
Pointer って何? そういうクラスってことでいいの? だとしたらポインタとごっちゃになるろくでもない名前だけど。
比較ができないってエラーメッセージはググった限り .NET のエラーメッセージには存在しないようだけど?

732 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 13:49:25 ]
>>731
スマソ Point型と間違えたわ
2つのコレクションは、どちらもPoint型変数が入ってるのよ


733 名前:730 mailto:sage [2008/02/18(月) 14:10:04 ]
もっと調べたら、ObjectとPointが比較できないとか、明示的なキャストが必要です、とか出てきマスタ。

734 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 17:03:21 ]
.NET Framework 2.0かそれ以下かでArrayList.Containsの挙動が違うらしいが。
1.xならContains使わずにループでunboxingして比較するしかないんじゃない?

735 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 17:30:49 ]
ArrayList はジェネリックじゃないから、Contain() の引数は Object 型でないとダメだぞ。
Add() する時にもちゃんと Point から Object にキャストしてるんでしょ?


736 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 20:24:08 ]
どうもありがとう

>>734
ソースコードはC#1.0のときに書かれたものですが、.今はNET2.0で使ってます

>>735
Add()するときはObjectにして加えてます。
なるほどそうか。
Contein()の引数を、Point型のままにしてますた。
Object型にキャストしてから引数に使えばいいんだ・・・。

やってみます。
どうもありがとうございます。

しかし、受け継いだソースがC#1.0向けに書かれたソースなので、
ArrayListを全部ジェネリックに書き換えるのが手間だと思っていたけど、
結局書き換えた方が後々楽な気がしてきた・・・orz

737 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:07:39 ]
>>736
アップキャストしてどうすんだよ
ポリモルフィズムを理解してないんじゃねーの?

738 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:21:04 ]
>>735


739 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:52:22 ]
ぽまいら、変数とかの命名でプレフィックスとかつけてまつか?




740 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:59:30 ]
必死になっていい単語思いつかないときに時々使う

741 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:59:33 ]
どっちでもいいけどクラス外から見えるメンバにプレフィックス付けたら死刑






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

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

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