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


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

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



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

前スレ

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

697 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:22:29 ]
System.Drawing

698 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:24:50 ]
>>697
ありがとうございます
生成後のBitmapのサイズは取得できますか?

699 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:40:29 ]
お前には無理。

700 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:05:18 ]
>>698
TextRendere.MeasureTextとかで。

701 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:09:41 ]
>>700
ありがとうございます!
本当に助かりました!

702 名前:デフォルトの名無しさん [2008/03/14(金) 10:14:34 ]
マイクロソフトがC#用ネイティブコンパイラの製作を発表
これでC#は事実上最強言語になったわけだ
an.to/?microsoft01news

703 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:24:23 ]
皆さん、>>702はクリックしないようにね。

704 名前:デフォルトの名無しさん [2008/03/14(金) 10:27:37 ]
>>702
ただの釣り
開くとビルゲイツの若かりしころの写真が出てくるだけ

705 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:32:03 ]
ウィルスバスター2008役にたたねぇorz



706 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:36:19 ]
これって何?
ググってみたらan.to/?で始まるのがあちこちに張りまくられてるみたいだけど。

707 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:51:51 ]
>>704
写真が出てくるだけじゃないんだが、
telnetつかってごにょごにょっしようとする。

708 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:54:09 ]
>>706
「これ」が何を指しているのか分かりかねるが、
URLのことなら書いてる通りの転送サービスじゃないのか
内容のことなら見てないので知らない

709 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:29:51 ]
ProcessStartInfoのArgumentsにスペースを含むファイルを指定しようとしましたが出来ません...

710 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:54:44 ]
""で囲め

711 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:04:00 ]
どうもありがとうございました。

712 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:20:18 ]
GDI+で放射状にグラデーションをかける方法はありますか?
WPFのRadialGradientBrushみたいなことがしたいのですが

713 名前:712 mailto:sage [2008/03/14(金) 12:28:37 ]
自己解決
using (GraphicsPath path = new GraphicsPath()) {
 path.AddEllipse(0, 0, width, height);
 using (PathGradientBrush brush = new PathGradientBrush(path)) {
 brush.CenterColor = Color.White;
  brush.SurroundColors = new Color[] { Color.Red };
  g.FillEllipse(brush, 0, 0, width, height);
 }
}

714 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:50:20 ]
たびたびの質問申し訳ありません。
SendKeysでスペースキーを送信したいのですがどのようにすればよいのでしょうか。
よろしくお願いします。

715 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:08:58 ]
>>714
半角スペースをSendすればいい予感がしました



716 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:13:59 ]
>>715
10回連続で送信したく思い、
SendKeys.SendWait("{ 10}");
のそうにやってみたわけですが出来ないのでここに書き込みました。

717 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:18:52 ]
>>716
10回forを回すとか10個の半角スペースをSendすればいい予感がしました

718 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:19:33 ]
>>717
それ以外に方法が無いのならばそれでしますが...

719 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:24:04 ]
それ以外に方法がないんだが。

720 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:26:37 ]
どうもありがとうございました。

721 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:25:46 ]
このスレの流れを見てるとなんか面白い

722 名前:sage [2008/03/15(土) 00:46:41 ]
くだらない質問ですが、ゲームをつくりたいとおもって
とりあえずC#でゲームをつくりたいとおもうのですが、
どのようにして習得(勉強)したほうがよいのでしょうか?
ネットでしらべるとC#の手引きのようなものがのってますが、
そういうものでいいのでしょうか?
おしえてください。

723 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 00:48:38 ]
>>722
諦める マジオヌヌメ

724 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 00:50:25 ]
>>722
そういうものでいいのです。

725 名前:722 [2008/03/15(土) 01:56:50 ]
>>724
わかりました。とりあえずそこで勉強してみます。
一応参考までに聞きたいのですが皆さんはどうやってC#を習得したのですか?
できればおしえてください



726 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 02:08:48 ]
>>725
ふつーに本を読んで。

727 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 03:41:30 ]
すいません質問です。
現在forが入れ子で4段になっているのですが、
一番内側の場所から一気に1段目や2段目のforまでbreakするにはどうすればいいのでしょうか?


728 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 03:42:19 ]
goto

729 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 03:46:39 ]
あー!!
忘れてました、そうですね。C#には普通にありましたねgoto

730 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 03:59:29 ]
>>725
C# 入門 でググレ。
俺はそのサイトと@ITとMSDNとぐぐる大先生だけで独学で習得したぞ。
細かいところとかは.NET関連の質問スレとかをROMったりしても勉強になった。
本なんぞ別に買わんでもネットで十分OOPはマスターできる。

731 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 05:57:25 ]
本買うよりネットで勉強したほうが効率いいですか?

732 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 06:45:38 ]
ネットの長所・短所、書籍の長所・短所がわかってればおのずと答えは出るよね

733 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 07:49:39 ]
一度は本を通して読んだ方が近道だと思うが

734 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 07:57:59 ]
まあどっちにしても、C#とかオブジェクト指向とかの知識はどうにでもなるだろ。
どんなゲームを作りたいのかにもよるんだろうけど、
その先に「画面の描画」って大きなハードルがある気がするなあ。

735 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:02:37 ]
string.Format()で、文字列をn桁の左寄せで表示するにはどうすればいいでしょうか?
printf("%10s %s",first, second);
と同じようなことをしたいのです。

例えば、
aaa xxxxx
bbbbb yyyy
cc zzzzzzzzzzz
のような文字列を表示するときに、
左の項目を最低10文字分とるようにしたいのです
よろしくお願い致します。



736 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:20:34 ]
PadLeft

737 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:23:22 ]
>>735
string.Format("{0,-10} {1}", first, second)

738 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:28:22 ]
>>737
ありがとうございます
カンマで区切るのですか
MSDNにも載ってないので助かりました

739 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:33:18 ]
>>738
載ってるよ? 複合書式設定

740 名前:デフォルトの名無しさん [2008/03/15(土) 09:43:25 ]
複数のwavを繋げて1つにするプログラムを作りたいのですが、どうすればいいでしょうか?
何かライブラリDLLはあるでしょうか?よろしくお願いします。

741 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:46:14 ]
class TreeEx : TreeView {
public TreeEx() { this.Nodes.Add("ほげ"); }
}

こんなクラスをフォームに貼り付けて実行してみたら
"ほげ"というルートノードが2つ作られました。
おかしいと思ってInitializeComponent()を見てみたら
"ほげ"ノードを追加する処理が生成されてました。
勝手に追加されると困るのですが、これを止めることってできないんですか?

742 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:58:20 ]
>>741
デザイナが自動生成しないようにするやり方はわからないけど、
とりあえずDesignModeなら追加しないってやれば回避できると思う。
デザイナで見れなくなるけど。

743 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 10:06:53 ]
あと、試してないし出来るかどうかもわかんないけど、
Nodesプロパティをoverrideして、[Browsable(false)]つけてみるとか。

744 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:21:17 ]
ShouldSerializeなんたらだったかのメソッド書いたらいいんじゃね?

745 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:50:40 ]
ttp://dobon.net/vb/dotnet/control/lvitemsort.html にあるclass ListViewItemComparerを
引数をつけて呼び出して使おうとしているのですがエラーになったりちゃんと動作したりします。
エラーの内容から考えるとどうもe.Columnと_columnの数字が異なる事があるらしく
比較に失敗してしまうようなのですが、どうしてでしょうか?




746 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:55:59 ]
>>742-744
Browsable属性ではできなかったので

public bool ShouldSerializeNodes() { return false; }
public new TreeNodeCollection Nodes { get { return base.Nodes; } }

を書いたら望み通りになりました。
高機能なのはいいんだけどいろいろメンドクサイデスネ

747 名前:745 mailto:sage [2008/03/15(土) 12:09:07 ]
'4' の InvalidArgument=Value は 'index' に対して有効ではありません。
パラメータ名: index

だからインデックスではなくてそのlistviewitemのsubtime[4]が見つからないのですね。
でも、何で動いたり動かなかったりするのでしょう?。

748 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 12:11:54 ]
引数に渡ってきた値ぐらい確認しろよ

749 名前:745 mailto:sage [2008/03/15(土) 12:25:57 ]
サブアイテムは20以上あるのですが何故動いたり動かなかったりするのかわかりません。
IComparer.Compare(object x, object y)のオブジェクトは何処から来ているのでしょうか?。
e.Column から __column にインデックスが入ってそれを基準にオブジェクトが返ってきて
いるのだと思うのですがIComparer.Compareの内容はどうやったら見れますか?。


750 名前:745 mailto:sage [2008/03/15(土) 12:34:18 ]
あぁ、お騒がせしましたorz。たぶん、わかりました。
IDEって凄く便利ですね。デバッグ字に変数にカーソルを合わせると内容まで表示してくれるとは
今まで気付きませんでした。

751 名前:デフォルトの名無しさん [2008/03/15(土) 13:34:22 ]
このスレの住人なら知っていますね、あの糞開発ツールのことを

・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている

糞だけど、政治的な理由で無理やり使わされているんですよね
もういい加減、我慢するのはやめませんか?

・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・あの糞開発ツール提供会社には「糞開発ツールは話にならない」と突き放しましょう。
 バグレポートなどしてはいけません。改善要求などもってのほかです。
 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
 なんて話が出たら力強く机を叩き、会議室を出ましょう。
 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。

糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。

752 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:47:19 ]
リッチテキストボックスまたはテキストボックスのオーナードローってできますか?

753 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:51:36 ]
俺ならできる

754 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:56:23 ]
>>753
君ならできる。やればできるさ!

755 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 16:33:15 ]
俺にもできる?



756 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:18:42 ]
無理

757 名前:デフォルトの名無しさん [2008/03/15(土) 17:24:14 ]
質問です。
Microsoft Visual C# 2008をつかっていいるのですが、
ビルドして実行すると一瞬だけ(入力まちがあるとき以外)表示されて
すぐにきえるのですが、どうすればきえなくなりますか?
おしえてください

758 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:25:37 ]
ブレークポイント

759 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:26:48 ]
消えないようにするオプションとかなかったっけ?

760 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:27:43 ]
無いらしい

761 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:34:57 ]
Console.ReadLine();でも入れれば

762 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:35:44 ]
それだったらブレイクポイントのほうが。

763 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:37:28 ]
#if DEBUGでいいじゃない

764 名前:デフォルトの名無しさん [2008/03/15(土) 19:01:46 ]
>>757
コマンドプロンプトからexeを起動しろ

765 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:10:31 ]
マルチスレッドのサンプルでは、よくマルチスレッドにするメソッドには
staticをつけてるけど、
ttp://msdn2.microsoft.com/ja-jp/library/ms171728.aspx
を見るとつけてない。
つけるのとつけないのとではどう違うの?



766 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:12:48 ]
マルチスレッドかどうかとstaticかどうかは関係ない

767 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:14:05 ]
static つけるとマルチスレッドでより扱いにくくなると思うんだが。

768 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:17:40 ]
>>767
そのメソッド自体を同時にひとつしか動かさないなら、別に変わらないと思うけど。

769 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:19:35 ]
オブジェクトの状態に依存しないメソッドを意識したらstaticが多くなるんじゃね

770 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:25:42 ]
>>757
キーアサイン変えてるからキーわからないけど、ステップオーバー押していって実行すれば?

771 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:26:10 ]
>>768
そういう保証が必要な時点で
扱いにくくなってるということだろう?

772 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:34:51 ]
>>757
VS上なら「デバッグ開始」じゃなくて「デバッグなしで開始」だと終了後にpauseしてくれる

773 名前:765 mailto:sage [2008/03/15(土) 19:35:47 ]
まあ別に気にしないでいいってことなんだな。
ありがとう。

774 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 21:39:03 ]
>>773
気にしないでいいというより気にするべきところが違うという話では。

775 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:19:41 ]
System.Windows.Forms.TextBoxを拡張して、
入力できる文字を制限したテキストボックスを作りたいのですが、
どのメソッドをオーバーライドするのが適切ですか?
TextChangedだとテキストが変わってから戻すことになりそうだし、
KeyPressだとコピペに対応できなさそうなイメージがあって、
msdnみてもよくわかりません。
教えて。



776 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:22:13 ]
>>775
俺も知りたい。
入力中に入力値を評価するのはどうやるんだろうな。

777 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:28:23 ]
>>775
wndproc

778 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:37:22 ]
>>775
コピペ対応はあきらめて(ShortcutsEnabled = falseと、コンテクストメニューにダミーをかます)
OnKeyPressで純粋にキー入力にだけ対応するのが一番簡単。

コピペにも対応させたいのならTextChanedで二重にチェックするのが一番簡単で確実じゃないかな。

779 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:51:55 ]
ペースト対応って難しいの?
onPasteあたりをオーバーライドすればいいんじゃないの?

780 名前:デフォルトの名無しさん [2008/03/16(日) 02:14:43 ]
Detail表示のListViewで、列ヘッダを押下したときにアイテムをソートさせたいです。
このとき、アイテム内文字列の比較モードを変更できますか?

具体的には、文字列"9"、"88"、"56"をソートした場合
"88","56","9"の順番にならんでほしいのですが、
"9","88","56"の順番になってしまいます。

781 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:18:33 ]
ListView.ListViewItemSorter プロパティ

782 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 10:31:14 ]
>>777
>>778
ありがとうございます。
早速実装してみます。

783 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 10:46:17 ]
継承Controlを作成するときに
Controlがフォーカスされたときのイベントってどこに書くんですか?

OnClickかとも思ったのですが、これだとTabキーで移動してきたときには動きませんし・・・

784 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 10:57:00 ]
Enter/OnEnter

785 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:06:56 ]
>>784
それかー。
ありがとーございます。



786 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 12:10:23 ]
もっと低レベルなのは
OnGotFocus/OnLostFocus

787 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:03:34 ]
PerlとかRubyでゆーWWW::MechanizeみたいなスクレイパってC#に存在する?
それとDB使ったツールを作って配布したいんだけど、PerlとかRubyだと一般ユーザに使ってもらえないので…

788 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:11:53 ]
rubyならexerbつかってexeにすりゃいいじゃん。
スレチだけど

789 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:39:20 ]
>>778
ここ2日くらいexerbとかrubyscript2exeやってみてたんだけどどうもうまくいかんのだ

790 名前:デフォルトの名無しさん [2008/03/16(日) 17:10:36 ]
質問です。以下のコードをビルドするとエラーがおきますが、原因がわかりません。
(bool型とdouble型が〜とでるのですが自分にはわかりませんでした。)
どなたかおしえてくださいませ。
using System;
class IfSample
{ public static void Main(){ Console.Write("身長(cm)を入力してください");
double n = double.Parse(Console.ReadLine());
Console.Write("体重を入力してください");
double m = double.Parse(Console.ReadLine());
Console.Write("BMIは{0}です", m / ((n / 100) * (n / 100)));
bool bmi = m / ((n / 100) * (n / 100));
switch(bmi)
{ case (bmi<19.8):
Console.Write("痩せ型です");
break;
case (19.8<=bmi<24.2):
Console.Write("普通です");
break;
case (24.2<=bmi<26.4):
Console.Write("やや肥満です");
break;
case (26.4<=bmi<35.0):
Console.Write("肥満です");
break;
default:
Console.Write("高度な肥満です");
break;
}
}
}


791 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:13:53 ]
エラーメッセージは完全な状態でこぴぺしろ

792 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:15:13 ]
>>790
> bool bmi = m / ((n / 100) * (n / 100)); 

ここかな?

double bmi = ・・・
みたいにしてみれば?


793 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:17:46 ]
caseには定数式以外は使えない

794 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:19:33 ]
if (bmi < 19.8) {
Console.Write("痩せ型です");
} else if (bmi < 24.2) {
Console.Write("普通です");
} else if (bmi < 26.4) {
Console.Write("やや肥満です");
} else if (bmi < 35.0) {
Console.Write("肥満です");
} else {
Console.Write("高度な肥満です");
}

795 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:04:38 ]
enum型の要素に自動的に割り当てられる値は、
[Flags]属性をつけようがつけまいが同じなのでしょうか?

どこかで0,1,2,4になるようなことを読んだような記憶があるのですが、それは勘違いで、
自分で明示的に割り当てなければいけない。というのが正解なのでしょうか?



796 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:07:23 ]
はい。勘違いです

797 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:55:31 ]
>>795
俺もそんな話をどっかで読んだな。
どういう属性をつけるかとか、ぜんぜん覚えてないけど。

798 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:57:17 ]
[Flags]付けるとビットフィールドになるんだろ。

799 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:00:40 ]

ビットフィールドには[Flags]を付ける「お約束」

800 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:20:11 ]
実際に試したほうが早いし正確なのに

801 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:22:13 ]
聞いた方が早い。

802 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:23:41 ]
ググってみたけど、Flagsでいいんじゃね?
www.melma.com/backnumber_120830_2325135/

↑C/C++の世界では、これは「ビットフィールド」とは言わんと思うけど。C#の世界では知らんけど。

803 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:25:49 ]
>>802 の続き
よく見たら、自動で割り当てるわけじゃなくて、自分で書かないといけないのか。


804 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:25:53 ]
そのページは大嘘過ぎるな

805 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:27:16 ]
[Flags]を付けないと、3とか5の値をとれない。



806 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:28:21 ]
ハァ?

807 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:32:49 ]
[Flags]
public enum ABC { Z = 0, A = 1, B = 2, C = 4}

[Flags]を付けないと
ABC ab = A|B;
でエラーになる。

808 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:00:19 ]
ならないよ
エラーになるような違いが出るんだったら属性じゃなくて言語に直接組み込まれてるだろ

809 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:09:29 ]
(ABC.A | ABC.B).ToString()で違いが出るね
やっぱりコンパイラの動作とは直接関係なくてMSとのお約束なんじゃね

810 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:17:53 ]
そもそもそのためのFlagsAttributeなんじゃないんでしょうかw

811 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:35:39 ]
どこが面白いのかわからない

812 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:40:54 ]
まあさすがに自動でビットフィールドにしてくれるんだったら
属性じゃなくて flags enum ABC { … } みたいにするわな

813 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 04:02:24 ]
Form1を閉じても、スレッド2が動いたままなので、
Form1を閉じたら、スレッド2を終了したいのですが、どのようにすれば良いのでしょうか?

814 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 04:32:05 ]
Form1を閉じる動作のときスレッド2を終わらせる

815 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 04:54:36 ]
>>814
それの書き方が分からないよ><



816 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 05:27:37 ]
>>815
Form のイベント全て試す

817 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 14:19:34 ]
スレッド2はループ中なんか?

818 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 14:35:03 ]
form1.Closed += (obj,e) => thread.Abort();
こんなんじゃないか?

819 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:09:07 ]
いちいちそんなんでラムダ式使うなカス

820 名前:デフォルトの名無しさん [2008/03/17(月) 16:16:57 ]
smallint型のデータをSqlDataReaderを使って取得し、
int型変数へ入れるにはどうすればよいですか?
List<int>へループで入れたいが 一部smallint型が
ある場合に上手く出来なくて困ってます。

821 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:52:46 ]
>>819
むしろそんなんだからラムダ式使うんじゃないかと。

822 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 17:59:52 ]
>>817
そうです。break;の条件を、Form1が閉じたときとやりたいのですが、うまく行きません。

static int close1 = 0;
public void Form1_Closed(object sender, System.EventArgs e)
{
close1 = 1;
}

while (close1 == 0)
{
//////////////時計
long tick = DateTime.Now.Ticks;
DateTime d = new DateTime(tick);
Console.WriteLine(d.ToString());
label8.Text = (d.ToString());
Thread.Sleep(1000);
}

823 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:33:40 ]
>>822
>label8.Text = (d.ToString()); 
GUIスレッド以外からフォームにアクセスしちゃダメ。
close1をvolatileにするか読み書き時にlockする。

BackgroundWorkerの使用をすすめる。

824 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:47:22 ]
そもそもTimerじゃいかんのかと思ってしまうサンプルだ

825 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:11:01 ]
>>821
ぶわぁか、こんなんでC#3.0にしてどうする。
せめて匿名メソッドだうんこ。



826 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:12:46 ]
>>825
匿名メソッドは面倒だよ。
なげーもん。ラムダ式使ったら2.0には戻れんね。

827 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:14:33 ]
C#やめてRuby(笑)でもやってろモルモン。

828 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:17:24 ]
言語の進化についていけない落伍者か
Cでもやってりゃいいのに

829 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:26:29 ]
C++から来てるとλ式とかは読みにくいな

830 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:40:15 ]
僕はくもん式上がりなのでλ式は余裕です。

831 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:43:04 ]
C++もそっちの方向でしょ

832 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:44:34 ]
C++にラムダ式が加えられても落伍者達はわからんわからんとぼやくんだろうな

833 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:59:52 ]
すみませんλって言いたいだけみたいなのですぐに回収します
λ......

834 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:01:55 ]
λ式は書けても高階関数は書けないんでしょ?

835 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:05:56 ]
書けるに決まってるだろ



836 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:08:03 ]
Enumerableクラスなんか高階関数のお花畑

837 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:28:33 ]
>>829
俺、C#よりC++をよく使うが、ラムダ式が羨ましくて仕方ないんだが。

838 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:37:26 ]
ここ1年ずっとC#使ってきたらC++書くのがきつくなった・・・

839 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:39:29 ]
すみません、質問いいですか?

FileSystemWatcherってありますよね?
あれ凄くイヴェントを取り逃がすような気がするんですけど皆さんどうですか?

使い方がおかしいんでしょうけど、どうおかしいのかすら判りません。

例えばDeletedイベントハンドラってPathで指定したディレクトリ内の
Filter指定したファイルが消されると発生するんですよね?

840 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:41:06 ]
っていうか、ラムダ式って所詮、匿名デリゲートの焼き直しなのに何をそんなに目くじらたてるんだろう。
おまけで式木に変換される機能がついたけど、普通に使う分には匿名デリゲートにしかならない。
今思えば匿名デリゲートの記法を delegate(...){...} にしたのが失敗で、
先にラムダ式を導入していたらこの記法は絶対導入しなかったって中の人も言ってるくらいなのに。

841 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:41:50 ]
イヴェント

842 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:45:54 ]
1.匿名メソッドを理解、使えるようになる
2.ラムダ式の便利さに気づく
3.ラムダ式は式木でも書けることに気づく
4.もっと複雑な式木を書きたくなる
5.某カッコだらけの言語の存在を知る
6.某カッコだらけの言語の奥深さを知る
7.某カッコだらけの言語で悟りを開く

843 名前:デフォルトの名無しさん [2008/03/17(月) 20:50:17 ]
C#である変数を宣言するときに、アドレスを指定するにはどうすれば
いいですか?
また、アドレスから値を得るにはどうすればいいですか?

844 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:55:07 ]
アドレスを指定するって何だよ
変数のエイリアスはつくれねえぞ

845 名前:デフォルトの名無しさん [2008/03/17(月) 20:58:40 ]
すいません。。。
質問しなおします。

ある変数Aのアドレスが分かっているとしたとき、アドレスから変数A
の値を取得するにはどうすればいいでしょうか?



846 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:59:40 ]
>>840
>>825

>>839
InternalBufferSizeを増やす。

847 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:25:22 ]
>>845
アドレスってどういう意味で言ってんの?
*(int*)address
まさかこういうことじゃないよね

848 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:27:32 ]
>>845
unsafeでぐぐれ

849 名前:845 [2008/03/17(月) 21:39:03 ]
>847-848
アドバイスありがとうございます。
変数につけられたメモリ上での番号のことを言っています。

簡単なコードを示していただけませんか?
例えば、メモリアドレス1000の値を取得したり、代入する場合など。。。

お願いします。

850 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:39:20 ]
>839
explorerでけすと、ごみ箱へのMoveだから見逃す、というオチじゃないの?

851 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:39:39 ]
unsafeつけるとCと変わらない書き方ができる

852 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:46:21 ]
>>849
int a = 123; int addr = (int)&a; int aValue = *(int*)addr;
こういうこと?
超危険なだけで何の意味もないからせめて普通にポインタ使えよ

853 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:57:22 ]
1つ値を読み取りたいだけなら、Mashal.Read*メソッドがお手軽かもしれない。

854 名前:845 [2008/03/17(月) 22:02:57 ]
>>852
アドバイスありがとうございます。

示していただいたコードで、変数のアドレスを取得することができました。
しかし、アドレス1000に対しての代入?についてはまだ疑問が残ります。。。

849の繰り返しになりますが、例えばメモリアドレス1000に格納されている
データを取得するにはどうすればいいでしょうか?
また、メモリアドレス1000に値を格納するにはどうすればいいでしょうか?

855 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:10:11 ]
釣りだろjk

そんなことをする必要はないし
する必要があるならC#を使うはずがない



856 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:11:06 ]
>>854
実際にこんなことやろうとしても、
割り当てられていないメモリを読み書きしようとしたとして、
OSに止められるだけだからな。
int* p = (int*)10000;
int x = *p;
*p = 666;

int x = Marshal.ReadInt32((IntPtr)10000);
Marshal.WriteInt32((IntPtr)10000, 666);


857 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:13:37 ]
どうせ構造体のポインタが欲しいだけとエスパー

858 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:16:57 ]
>>852見て>>856が思いつかないならポインタなんか触るべきじゃない

859 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:18:32 ]
つかC#でポインタ使うとこってどこ?

860 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:25:08 ]
Interopとか画像処理とか構造体の配列触るときによっぽどパフォーマンスが大事なときとか

861 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:56:57 ]
>>854
勘違いしてない?
ここはC♯(シーシャープ)という言語のスレだぞ。
もしかして学校の宿題なら、それは、CとかC++という言語じゃなかったか?

862 名前:822 mailto:sage [2008/03/18(火) 00:38:27 ]
>>818,823-824
レスサンクス
明日試してみる。

863 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:36:23 ]
多次元配列は使いそうだけど、ジャグ配列って使わないよな?
覚えるのめんどくさいんだが・・・

864 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:40:27 ]
>>863
Cから来たら無意識にジャグの方を使う。

865 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:42:29 ]
>>864
・・・まじかよ、じゃあ素直に勉強するわ
d



866 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:46:24 ]
いや勉強するもなにも
宣言と要素アクセスのやり方だけ知ってりゃいいんじゃん
ジャグのほうは単なる配列を要素とする配列ってだけの話だし

無意識に使われるジャグ配列って「ジャグ」じゃなくね?

867 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 03:09:39 ]
List<int[]> lst = new List<int[]>();
//動的に配列を追加していくループ
for(...){
lst.Add(....);
}
int[][] jag = lst.ToArray();

格納される配列の要素数が動的に変化するような場合とかもあるし、
ジャグのが柔軟。



868 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 03:56:09 ]
普通ジャグにしね?
ジャグじゃないとN次元配列が書けんし

869 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 04:30:05 ]
そんなことはない。

870 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 06:30:03 ]
ジャグ配列ってすごく使いにくいぞ

871 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 07:46:45 ]
パフォーマンスはジャグの方が全然良いけどな。

872 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:16:17 ]
使いにくさで言うと断然多次元配列だと思うけど
Sortメソッドも使えない

873 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:24:21 ]
多次元配列よりジャグの方が直感的なんだよな。気がついたらジャグで作ってることが多い気がする。
初期化するときも使用するときも、機械的にいつも似たようなfor文で処理できるし。

>>871
すごく初耳。

874 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:50:02 ]
>>873
rectangular の方は a[i, j] → *(a + i *WIDTH + j)
jagged の方は a[i][j] → *(*(a + i) + j)
相当で、一見 rectangular の方が早そう(間接参照よりは掛け算の方が軽い)だけど、
1次元配列の参照は IL が専用命令持ってるけど、
多次元配列参照命令がない関係で jagged の方が早いって聞く。


jagged 配列の方が柔軟だけど、new しまくらないといけないのが面倒なときもあるのよね。

875 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 11:40:01 ]
ジャグ配列の方が速いのは一番右の添え字が連続したアクセスの場合だけだったような



876 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 15:44:04 ]
メインフォームにおいて、文字キー T とか Y のkeyPressイベントを起こすにはどうしたらいいんですか?

private void MainForm_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{

}
の中に記述してもイベントそれ自体が発生しないんですが・・・

877 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:07:50 ]
フォーカスがないだけだろ

878 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:08:47 ]
>>876
そのイベントハンドラはちゃんとイベントにバインドしてあるのか

879 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:23:40 ]
KeyPreview

880 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:56:20 ]
get,setの利点が不明(C#2.0)
public string Hoge{ get{ return this.hoge; }}
こう書くと

public string getHoge{ return this.hoge; }
と書くのに比べて何が幸せなんだぜ?

881 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:12:21 ]
Console.WriteLine(Hoge);
Console.WriteLine(getHoge());
あと,リフレクションとの相性

882 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:14:58 ]
しりあらいず

883 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:22:10 ]
リフレクションというかコンポーネントモデルやな。PropertyDescriptor。
…ヘジは1.0からこの辺のものを第一言語要素にする点こそ重要って
言ってた気がするがスルーされっぷりが可哀想というか

884 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:26:51 ]
getHogeがメソッドでないから、きっと記述方法のことを言ってるんだとエスパー
括弧なしのgetHogeでHogeプロパティ作れと

プロパティとアスセサ(メソッド)の違いについてならそういう風に書くだろうし

885 名前:デフォルトの名無しさん [2008/03/18(火) 17:35:12 ]
iPod touchみたいな慣性付きスムーズスクロールはどうやるのでしょうか?
そもそも普通のスムーズスクロールはどうやるのでしょうか



886 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:40:07 ]
以下のプログラムから出力される数字を、
wavファイルにするにはどうすればいいでしょうか。

#include <iostream>
#include <math.h>
using namespace std;
const int rate=44100;

int p(double q, int f, int t)
{
const double pi=3.1415;
double x;
x=sin(2*pi*f/rate*q);
cout << int(x*127+128+0.4999);
cout << "\n";
if (f<t) p(q,f+1,t);
return 0;
}

int main(void)
{
p(440.0 , 0, rate);
return 0;
}

887 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:44:02 ]
ごめ。
c++スレかと思った・・忘れてください

888 名前:デフォルトの名無しさん [2008/03/18(火) 19:03:44 ]
PictureBoxを使って、

Font font = new Font(fontName, size);
g.DrawString(code, font, Brushes.White, 0, 0);

で、1文字描画します。

この時描画した文字の幅を求める手段を教えてください。


889 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:07:52 ]
MeasureString

890 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:09:56 ]
WebColorConverterのインスタンスを取得するにはどうするのが正しいの?
MSDNにはTypeConverterのインスタンスは直接作らずにTypeDescriptorを使えと書いてあるけど
TypeDesctiptor.GetConverter(typeof(Color))だとColorConverterが返ってきてしまう

891 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:07:38 ]
今でも>>886のことが忘れられない…

892 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:24:13 ]
宇宙仮面のC#プログラミングってサイトの、ED が点滅するボタンのページ
>次に、ツールバーのカスタマイズにより、コンパイルしたアセンブリーをツールバーに登録します。
ってどういうこと?
ツールバーのユーザー設定?
コンパイルしたアセンブリーって項目があるってこと?

893 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:33:46 ]
事故解決しましたごめんなさい

894 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:02:56 ]
class A<T> { ・・・ }
とあるとき、Tの型をAのクラスの外から調べて使っていく便利な方法があったら教えてください。
リフレクションを使えばなんでもできますが、できれば使用したくないです。
C++ では
class A<T> { typedef T ElementType ; }
とできたので話は簡単だったんですが・・・

#VBのLinq to XMLが便利すぎ〜〜〜〜ぐはぁぁぁぁ
#ヘジたぁぁぁん

895 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:05:32 ]
dateTimePickerをパースして1日追加して表示しようとしているのですがなりません
何か勘違いしているのでしょうか?

DateTime dt = DateTime.Parse(dateTimePicker.Text);
dt.AddDays(1);
lvi.SubItems.Add(dt.ToShortDateString());



896 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:11:38 ]
>>894
なにがしたいのかわからんけど

class A<T>
{
public Type ElementType = typeof(T);
}
こんなんじゃだめなの?

897 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:11:49 ]
>>895
勘違いでーす
DateTime dt = DateTime.Parse(dateTimePicker.Text);
dt=dt.AddDays(1);
lvi.SubItems.Add(dt.ToShortDateString());


898 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:13:29 ]
>>896
それだと、

A.ElementType inst = new A.ElementType();
とかできなくて不便なんですよ。

899 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:19:26 ]
>>898
じゃあ

void Method<T>(A<T> a) where T : new(){
T item = new T();
}

こうじゃねえの

900 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:24:16 ]
>>898
A<T>にこんなメソッド追加すれば
public T CreateElement()
{
return new T();
}


901 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:27:08 ]
>>899
それもちょっとなんですよね、全部のメソッドについてやらないといけなくて、場当たり感が・・・
C#に移ってみたもののC++とは勝手が違って難しいです、逆にC#では意外とあっさりできる物なども多いのですが。

902 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:28:39 ]
>>897
ありがとうございます。
盲目でした・・・。

903 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:48:06 ]
>>895
なんで
DateTime dt = dateTimePicker.Value.Date.AddDays(1);
じゃだめなの?

904 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:51:20 ]
どうでもいいところに反論したがる奴がいるなw

905 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:10:16 ]
903じゃないがどうでもいいかぁ?
カスタムフォーマットとかで元のコード落ちたりしないだろうか



906 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:15:29 ]
大体TをnewするよりA<T>を使う側がそのものずばりをnewする方がうまくいくと思うがなあ

907 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:16:47 ]
>>906
だよね
使う側はTがなにか知ってるんだし

908 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:31:56 ]
てか、いろんなA<T>に対して同様の処理をしたいなら
それこそ、その関数なりクラスなりをジェネリックにすべきだと思うが

909 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:37:48 ]
独り言キモイ

910 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 12:41:47 ]
馬鹿ってのはどうして自分のことばを自分に適用できないのかねw
統合失調なんじゃないのチミ

911 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 12:59:40 ]
>>910
因果関係が逆な気もするぞ。
そういう人間のことを馬鹿というのでは。

912 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 15:10:00 ]
VB.NET質問スレ(Part25)
pc11.2ch.net/test/read.cgi/tech/1203650042/294

294 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/14(金) 20:29:48
ふーん偉そうに他人を「偉そうだ」と言うのは偉そうじゃないんだ。
本当馬鹿ってのはどうしていつでも自分自身の言葉を自分に適用できないんざんしょ不思議。

まあ基本であることに全然異議はないんだけど、その基本すら理解できない御仁がいらっしゃるから
「偉そうに」貴殿はまちがっておられるぞよ、と進言差し上げたしだいなんでございますがね。

345 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/17(月) 21:08:14
多分「俺」に否定的な言葉を投げる奴はみんな「(また)お前」なんだよw
冗談抜きで最近こういう統合失調一歩手前って人間増えてる気がするね



またお前か。
ふらっとスレだけは荒らさないでくれよな。

913 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 15:38:20 ]
どう見てもビョーキだなwww

914 名前:デフォルトの名無しさん [2008/03/19(水) 16:04:07 ]
統合失調好きだなあ

915 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 19:03:12 ]
>>912
言ってるそばから自分棚上げかよw
本当馬鹿ってのはどうして自分自身の吐いてる言葉を自分に適用できんの?
それから「荒れて」いるのはスレじゃなくてお前さん自身の脆弱な心、でしょ?w

馬鹿で心が弱いお前さんの感情が刺激されること=スレが荒れること、ではないよ。



916 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 19:11:08 ]
マ板でやれ

917 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 00:39:48 ]
Webbrowserコントロールがjavascript周りでエラーを吐きまくるのでオフにしたいんですが、
サンプルコードが載ったページをご存じないですか?
いくつか類似のページはありますが(www.divakk.co.jp/aoyagi/csharp_tips_wbzone.html)、
旧.Net用でVS2005/2008では使用できませんでした。
ページを読み込む前にDLしたページキャッシュを読んで書き換えて無効化する方法も考えましたが、
読み込みをキャンセルさせる方法が分からず、汎用性もないため諦めました

918 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 03:00:45 ]
USBカメラを単純にプレビューするだけのサンプルってないですかね?
色々探してみたんだけど、どれも複雑で。。。

919 名前:デフォルトの名無しさん [2008/03/20(木) 03:01:04 ]
>>917
WebBrowser.ScriptErrorsSuppressed = true;

920 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:15:31 ]
なんでVBのサンプルがC#より上にあるんだよ

921 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:18:37 ]
アルファベット順だろうな

922 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:29:42 ]
じゃあCの方が上だろ

923 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 08:32:49 ]
ゲイツがBASIC世代だから?

924 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 09:06:52 ]
xmlでnode名とvalueを指定して
特定箇所のvalueを更新する方法は
ありますか?
ファイル丸ごと読み込んで書き出す方法しか
知らないので教えて下さい

925 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:06:39 ]
>>922
Visual BasicとVisual C#とVisual C++だったらVBが先だろ。



926 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:49:55 ]
>>924
1) 一気に読み込んで、DOMを使って編集する。
2) XmlReaderで少しずつ読みながら、XmlWriterで書き出す。

927 名前:デフォルトの名無しさん [2008/03/21(金) 14:02:14 ]
Linqを使い始めたら、yield を使った即席の IEnumerable ができると便利だと思ったのですが・・・
static System.Collections.Generic.IEnumerable<int> CreateInt100()
{
 for (int i = 0; i < 100; ++i) yield return i;
}
private void button2_Click(object sender, EventArgs e)
{
 System.Collections.Generic.IEnumerable<int> collection = CreateInt100();
 foreach (var element in collection) System.Console.WriteLine(element);
}
上のメソッド CreateInt100() を毎回作るのは面倒くさいですし、名前空間を汚すので匿名メソッドにしてみようかと考えました。
private void button2_Click(object sender, EventArgs e)
{
 System.Func<System.Collections.Generic.IEnumerable<int>> lanbda = () =>
 {
  for (int i = 0; i < 100; ++i) yield return i;
 };
 System.Collections.Generic.IEnumerable<int> collection = lanbda();
 foreach (var element in collection) System.Console.WriteLine(element);
}
残念ながらエラーになってしまうのですが、何か良い方法をご存知の方がおられましたら教えてください。

928 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:08:54 ]
Enumerable.Range

929 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:23:33 ]
>>928
すまみせん、int のシーケンスは例であって、int のシーケンスを作りたい訳ではないです。
手際よく yield を含むコードを書き下したいのです。

930 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:25:27 ]
できないなあ

931 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:32:03 ]
ツリーコンテナの列挙をするときには便利な機能と割り切ってそれ以上深く考える事をしなかったんですが・・・
yield 便利だね、なんでもかんでもコレで書いてしまいたくなる衝動に駆られます。

932 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:33:50 ]
それはするべきじゃないだろう

933 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:36:43 ]
Haskellの無限リストより書き方が直観的で良いです

934 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:53:32 ]
クラスの比較をするときに、比較したいメンバを片っ端から .Eulals 等で比較するメソッドを
片っ端から書きまくって、Eulals , GetHashCode …とこれまた片っ端から書きまくって
比較対照数×比較系メソッド数分の条件判断を書くという、ちょっと間違えれば書き損じ出まくりです
yield を使って列挙する側は、列挙する側、比較する側は比較する側とバシッと分けて書いてみると…なかなか気持ちいいです。

935 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:58:46 ]
>>934
よくわかんない
コードで頼む



936 名前:デフォルトの名無しさん [2008/03/21(金) 15:11:35 ]
余りに気持ちいいので、ちょっと紹介しておきます。
クラス C の Equals GetHashCode のオーバーライドが、メンバーの変更によって変更しなくても済みやすくなっています。
using System.Collections.Generic;
using System.Linq;
public class C
{
 public int Field1;
 public int Field2;
 public string Field3;
 public override bool Equals(object obj)
 {
  C tmp = obj as C;
  if (tmp == null) return false;
  IEnumerable<object> x = this.CreateFieldEnumerable();
  IEnumerable<object> y = tmp.CreateFieldEnumerable();
  return x.SequenceEqual(y);
 }
 public override int GetHashCode()
 {
  return CreateFieldEnumerable().Sum((a0) => a0.GetHashCode());
 }
 IEnumerable<object> CreateFieldEnumerable()
 {
  yield return Field1;
  yield return Field2;
  yield return Field3;
 }
};

937 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:23:32 ]
文字がアルファベットかどうか判定したいんだけど、
Char.IsLetter('あ'); の結果がtrueを返してくる。
ほかにいい方法ありますか?

938 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:34:09 ]
>>936
GetHashCode()に和を使うのはどうかと

939 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:35:08 ]
>>937
( ゚д゚)つ正規表現

940 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:36:15 ]
a<= x && x <= z || A <= x && x <= Z

941 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:36:35 ]
>>938
そんなの問題があるならテキトーに替えてくださいよ(汗

942 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:39:04 ]
>>937
「アルファベット」の定義は?

943 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:44:27 ]
HashCodeの作り方がよくわからんからEqualsのオーバーライドもあまりやりたくないな

944 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:10:50 ]
>>939 >>940 >>942
どうもです。普通にa-zA-Zで比較して判定します。
それにしてもMSDNのあの説明では日本人は勘違いしますね。
MSは苦労したとは思いますが。

945 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:30:12 ]
日本語のアルファベットはひらがな、カタカナ
英語のアルファベットはA〜Z
単にアルファベットと聞かれたらどちらか分からない。



946 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:37:49 ]
一般的な日本人はアルファベットと言われたらA-Zの26文字のことだと思う
ANK=Alphabet Numeric Kanaって単語だってあるのに。

947 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:44:07 ]
>>945
MessageBox.Show(char.IsLetter('山').ToString());

948 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:57:23 ]
>>944
ぼくは一般的じゃないんですかそうでつか><

949 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 17:05:24 ]
>>948
私は >>946 とは別人ですよ。あなたは人より教養があるんだと思います。

950 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 17:30:00 ]
ギリシャ文字はアルファベットの名前からしてもアルファベットだし、
ヘブライ人も彼らの文字をアレフベートって呼んでるし、
そう考えると、ヘブライ文字の親類のアラビア文字もアルファベットだし、

951 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 17:57:47 ]
>926
domとうい単語しらなかったです ありがとう

952 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 18:09:09 ]
もうとっくに結論でてますが・・・
昔と違って、アルファベットの概念が広がっているね
int 山 = 5 ;
とか、コンパイル通るし、UTF8 で便利になった反面混乱も多々あり。
ja.wikipedia.org/wiki/Unicode
あえてライブラリを使うなら、基本ラテン文字 (ASCII互換)、かつアルファベットを調べるとなると
Char.IsLetter('あ') && 'あ' <= 0x7f
アホ臭いから、直接文字コードを調べるのが良さそうな気がしますね。そしてせっかくの新機能があるので拡張してみた。
static public class CharExt {
 public static bool IsBasicLatin( this char c) { return c <= 0x7f; }
}
class MyClass {
 void func() {
  bool isBasicLatin = 'A'.IsBasicLatin(); // (笑
  System.Console.WriteLine(isBasicLatin);
 }
}

953 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 22:52:21 ]
>>951
xsd.exe .net で検索してみな

954 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 12:04:31 ]
なになら最近できたというらしい WPF を使ってみた。
Xamlとか一切使わずに、フルにC#でコーディングしてみたんだけど、System.Drawing.Graphics + Pain イベントと比べて断然楽だね
Linqに引き続き、説明がさっぱり分らんのは相変わらずで、なんとかしてくれよマイクロソフト・・・
簡単説明サイトをだれか作ってくれないかな・・・自分で作れってかorz

955 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 12:08:41 ]
XAML使わないと添付プロパティとか物凄く面倒だぞ



956 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 13:32:49 ]
むしろWPFはコーディングしたら負けだろ

957 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 14:29:50 ]
固定デザイン固定アニメーションならコーディング無しでもいいが
プログラマブルに動かしたければ、やはりコーディングするしかないよ
いやできなくは無いが、逆に面倒になるだけという意味で。

958 名前:954 mailto:sage [2008/03/22(土) 14:54:20 ]
とりあえず棒グラフとか折れ線グラフとか作ってます、描画クリッピングの処理とか
つまらない処理にも関わらず、工数の取られる作業がプロパティーの設定とGrid親子構造の作り方一つで
簡単対処できるのには驚愕しています、最後に印刷処理を作りたいのですが、どうするんだ・・・

959 名前:954 mailto:sage [2008/03/22(土) 14:58:45 ]
それと、デタラメに描画が速いね、これにはタマゲタ
さすがDirectX使っているだけの事はある、描画範囲外に大量にLineを配置しても全然速度低下がない。
これが System.Drawing.Graphics ベースだと、Pain 処理はややこしくなるし
手抜きして全部描画しようものならガックンガックンになるし。

960 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:42:46 ]
今C#のCUIを勉強してるんだが、練習問題ってどっかないかな?
探してみても、本とか講座とかしか出てこないんだがー

961 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:44:43 ]
CUIって勉強するようなことあるのか?

962 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:49:35 ]
>>961
プログラミング自体が初めてだからさ、一応勉強しとかないとと

963 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:53:20 ]
ConsoleクラスちょっといじればCUI限定の問題はクリアと考えていい

964 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:54:54 ]
>>959
Pain処理ってある意味間違ってないよなw

>>962
unixコマンドのリファレンス引っ張ってきて実装すれば
catとかtelnetとか

965 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:58:08 ]
>>963
そんなもんですか、やっぱ基本的にGUI弄るってことかな
ありがとうございます^

>>964
ググってみます^



966 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:58:10 ]
CUIをやらなきゃいけない理由でもあんの?
初めてなら逆に手を出す必要はないと思うんだが。

967 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:02:13 ]
>>966
いやー、やっぱ基本的なことは知っといた方が良いのかなと

968 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:02:51 ]
CUIとかGUIなんてどうユーザとやり取りするかって話でしかない
本当にやりたいのはその先だろ?

>>966
"言語の"勉強にはCUIのほうがいいと思う

969 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:02:58 ]
言語仕様からきっちり解説するような本だとだいたいコンソールからだよ

970 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:14:39 ]
てことは、コンソールが必要になったら、その都度調べる程度で平気ってことですかね
どうもです、頑張ります^

971 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:16:01 ]
GUI を根本からサポートしている言語を除けば、
GUI まで教え始めるとページ数多くなるからな。

972 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:36:12 ]
GUIだとはじめに必要な「おまじない」が多いし
入出力がまどろっこしいから言語仕様の解説には不向き

973 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:11:32 ]
>>972
C#だと、それほどでも無いだろ、Windowクラス生成して以上終了だし。
Win32使うと、激しいことになるけど

初代VS.NETには、CUIベースのわかりやすいサンプルが多かったんですけどね。
クイックスタートのサンプルもう一度復活させてもいいと思うんだけど・・・

974 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:13:39 ]
>GUI を根本からサポートしている言語を除けば、
だからな。
C# は GUI に力要れてるから問題ない。

975 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:20:50 ]
言語の勉強する場合、色んなロジックを書いて
その処理結果を簡単に出力出来るという点では、
コンソールの方が簡単でいいよね。

GUIだと、そもそものイベントドリブンの仕組みから
色んなコントロールの説明とかしなくちゃならないから。
いきなり、言語の学習の次のステップからになってしまう。



976 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:21:32 ]
下手な入門本でGUIだとすぐVSでポトペタだからなぁ。

977 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:24:32 ]
言語の勉強なら文字の入出力ができれば別になんでもいいわけで
一番手軽なのがコンソールっていうだけ
使う話とはまた別だ

978 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:39:27 ]
つまり言語の入門にはTcl/Tkが最も優れているということですね

979 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:41:44 ]
WinFormsなら初心者でも簡単だけど
WPFになるとXAML覚える方が大変なんじゃないか?w

980 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:59:23 ]
>>975
C#の場合それは問題多いだろ、開発環境が無ければ何故その機能があるのか、そうなっているのか理解できないものが大量にあるし。
たとえば、カスタムアトリビュートしかり、深いネームスペースしかりで。

981 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:57:09 ]
>>980
その反論の意味が全く分からないんだが。
では、GUIの方が入門者にとって、C♯"言語"の学習をし易いのか?

982 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:14:14 ]
つか、今の初心者つったら、CUI? command.com? 何ソレ?
だろ、そこから使用方法と説明が必要だ。

983 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:18:29 ]
いまどきの新人にパイプの説明したら一週間考え込まれた事があるw
そんなオレは、もうロートル入りだorz

984 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:24:29 ]
>>982
今の初心者はcmd.exeだからな

985 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:59:38 ]
.NET学習的にもPowerShellがvista標準じゃなかったのは痛いなぁ



986 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:06:46 ]
プログラミング Microsoft Visual C# 2005 言語編 (マイクロソフト公式解説書)
プログラミングC#―C#2.0/.NET2.0/Visual Studio2005対応(オライリー)

読むならどっち?

987 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:08:20 ]
オライリーの方。
Googleブック検索でないよう少し見てみたらよかったし「初めてのC#」もよかったから。

988 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:10:30 ]
そういえばC#使ってるけど未だに解説書の類を読んだ事がないな。
もう何でもpublicで作ってるしその内問題に遭ったりするんだろうか

989 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:16:40 ]
まだ俺2.0止まりでXAMLとか分からないんだけど、ASP.NETとかでやってるみたく
FormベースでXML使ってコントロールとか定義できる物ってことなの?

990 名前:954 mailto:sage [2008/03/22(土) 23:33:53 ]
>>989
使い始めて間もないのですが・・・簡単に説明すると
フラッシュみたいな物、htmlでいえば、imagタグとか適当にホームページ作成ツールで作って
それに名前を付けておいて、サイズや位置情報を、プログラム側からいじくれるという仕掛け。
各種タグで表示するオブジェクトには名前がつけられて、

その名前.アトリビュート名 = 適当な値

とすると、値が書き換えられて、表示が変化します。
Gridというタグがあって、これは各種オブジェクトを格納(子タグが作れる)、ここに自分で生成したオブジェクトを追加する事もできます。
基本的な要素には、LineとかPolyLineとか、DirectXで良く見られるプリミティブ要素のようなものがあって、ページ中に線やポリゴンなども書けます。
これに座標変換行列を効果させて、回転・拡大縮小・平行移動・平行四辺形的な変形といった事ができます。
最終的にはDirectXで描画されるらしく異様に高速。
大半はデザイナでデザインしておいて、必要な所だけをコードしてしまえます。
Paintイベントで再描画のコードは書く必要なしです。

991 名前:954 mailto:sage [2008/03/22(土) 23:41:12 ]
逆にDirectXが分るなら、メッシュの中にボタンやらラベルやらといったプリミティブがあるイメージかな?


992 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:47:13 ]
thx。そろそろ俺も3.0始めねば・・・。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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