1 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:19:33 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part38 pc11.2ch.net/test/read.cgi/tech/1235864730/
792 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 05:02:52 ] Microsoft Visual C++ Express Edition このコンパイラで一度「デバッグ無しで開始」でコンパイル成功するとソースを書き換えてもプログラムが変わらないようです 今までは少しソースを書き換えようと思ったら新規作成で新しいソース作ってコピペを繰り返してたんですがいい加減ソースの管理がキツいです 誰か助けてください
793 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 05:09:03 ] バイト代は出ますか?
794 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 05:14:13 ] >>792 全ては君の勘違い
795 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 06:02:20 ] >>792 『Microsoft Visual C# Express Edition』で開発していると仮定しての話だが、(スレタイ読めよ!) 確かにVC++と違って C#の開発のときはアプリの実行ボタンでビルドが更新されないことがあるようだ。 しかし、コンパイルないしビルドボタンを押せば問題ないはず。 デバッグ無しで開始 や デバッグ実行 のボタンとは別にあるぞ。
796 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 09:47:57 ] >>792 リビルドしてみた?
797 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 09:53:21 ] むしろ自動ビルドしてるならクリーンアップ?で さもなくばexploreでファイル削除
798 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:22:07 ] .net のプログラムを C#に書き換えています。 .net におけるshadow(オーバーライドの一種で引数も返り値も変更可能なもの) はC#だとどういう風にトランスレートすればいいんですかね?
799 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:26:15 ] .net のプログラムってなに?VB?
800 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:27:01 ] もちろんC#
801 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:27:15 ] 隠蔽のnew
802 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:30:02 ] vb.netっす
803 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:32:06 ] VBではoverridesとshadowが別なのが良くわかんないね。 overridesがほぼC#のnewと同じ。 shadowとまったく同じものはなかったかと。
804 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:35:20 ] それでは Public Shadow Property X は public new override X {get return ...みたいな感じで書けばいいってことですか?
805 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:36:43 ] ああちがうか、そもそもoverrideとoverridesのちがいがわかってませんでした。 勉強してきます。
806 名前:デフォルトの名無しさん [2009/04/08(水) 15:43:35 ] WebBrowserのDocumentで、mshtmlを経由してiframeの中身にアクセスしようとするとUnauthorizedAccessExceptionになるのですが、 これを回避するにはどうすればいいのでしょうか。
807 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 18:51:30 ] public class Bar inherits Foo overrides sub f() end sub shadows sub g() end sub overloads sub h() end sub end class をリフレクションで調べるとこういう違いがあるようだべさ。 public class Bar : Ansi,Auto extends public class Foo : Ansi,Auto public virtual Void f() public Void g() public Void h(),HideBySig public constructor Void .ctor(),SpecialName C#の場合全部のメソッドにHideBySigが付いてるんだよね。
808 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:28:38 ] すみません。馬鹿な質問いいですか? フォームにラベルがいくつかありまして、それぞれ lbl001 lbl002 lbl003 という名前になっています。 で引数に001とか002を渡すと通し番号の一致するラベルのテキストを""に変えるメソッドを 作りたいのですが、どうしたら良いのでしょうか? 解りにくい文章ですみませんが、お願いします。
809 名前:808 mailto:sage [2009/04/08(水) 19:30:47 ] private void hoge(string number) { lbl+number.text=""; } という感じなのですが・・・
810 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:36:25 ] public void ClearLabel(string labelName) Control control = this.Controls.Find(labelName, false)[0].Text = ""; thisはForm
811 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:39:39 ] ああ、最初の変数宣言はイラネ public void ClearLabel(string labelName) Control control = this.Controls.Find(labelName, false)[0]; control.Text = ""; または public void ClearLabel(string labelName) this.Controls.Find(labelName, false)[0].Text = "";
812 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:42:38 ] public void Func(int number) { string name = "lbl" + number.ToString("000"); foreach (FieldInfo info in this.GetFields()) { if (name == info.Name) { Label label = (Label)info.GetValue(this); label.Text = ""; } } }
813 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:43:55 ] ラベルを配列に入れりゃいいんじゃないの
814 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:46:45 ] >>808 そういうことをするならラベルをコレクションで管理しとけ リフレクションを使うのはあくまで応急処置 最初からコレクションで生成してもいいし、どうしてもデザイナを使いたいなら以下のようにする var labels = new List<Label>(); labels.Add(lbl001); labels.Add(lbl002); labels.Add(lbl003);
815 名前:808 mailto:sage [2009/04/08(水) 19:58:30 ] みなさまありがとうございました! >>811 public void ClearLabel(string labelName) this.Controls.Find(labelName, false)[0].Text = ""; この場合labelNameは"002"とかでもlbl002を見つけてくれるのでしょうか? >>812 なるほど。僕でも判る解りやすいコードですね >>814 おっしゃる通りです。以降気をつけます
816 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 20:21:07 ] >>815 見つけてくれないからlabelNameを自分で作成すれ
817 名前:808 mailto:sage [2009/04/08(水) 21:27:47 ] >>816 ありがとうございました! 僕はデザイナでしかコントロールを置いたことがないので 名前の重複がありうるなんて知りませんでした。 なので名前のわかっているコントロールを探すなんてナンセンスな感じを うけましたが、自分が無知だっただけでした!
818 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 21:49:25 ] 何も解かってないことが解かった
819 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 21:54:33 ] >>817 が何を言ってるのかまるでわからない・・・
820 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 21:56:19 ] なんとなく理解できる俺もほ乳類を名乗って問題無いのか・・・
821 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:41:34 ] >819 多分Nameプロパティとフィールド参照名をごっちゃにしてるんだろ。 >817 参照名はスコープ内で重複しないけど、コントロールごとに設定できるNameプロパティの値は重複可能。 デザイナーは勝手に「Name = 参照名」に設定してるから一意に見えるだけ。自前でNameを設定してなければ、 int num = 2; Label label = this.Controls[ "lbl" + num.ToString("000")] as Label; if( label != null ) { 処理 } else { エラー処理とか } 自前のコードでNameを設定してて同じNameの奴が重複してたら、最初に追加されたやつ(普通はデザイナーが作った方)が返ってくる。 どうしてもフィールド名のほうでアクセスする必要がある場合は、>812みたいにリフレクションを使う。 でもクラス内で完結することに使うことはまずない。
822 名前:デフォルトの名無しさん [2009/04/09(木) 00:09:57 ] Regexクラスを使った正規表現って 交差演算子「&&」は使えませんよね?
823 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 00:12:33 ] 古語でも可也
824 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 00:18:44 ] >>822 MSDN読め。