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


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

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



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

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

前スレ

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

680 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:25:20 ]
>>678
そもそも ClickOnce だし。

681 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:27:37 ]
XPユーザーとしてはUACの昇格とかわけわかんないし怖いよ
今はそんなのも気にしなきゃならんのか

682 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:29:51 ]
VistaユーザーだってUACなんか訳わからんよw
Linuxみたいにアクセス権限だけでいいだろって突っ込まれまくりだろ

683 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:32:42 ]
>>679
「UAC 昇格起動」と「修辞的疑問文」でくぐってからまた来てね。


684 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:33:35 ]
全世界の奴がMSに文句つけまくっていじめまくった結果がこれだよ
そして無意味なセキュリティをつけたらフルボッコだよ

685 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:34:51 ]
>>684
× 全世界の奴
○ 狂ったLinuxユーザー

686 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:35:58 ]
なんでLinuxユーザーが文句つけるんだ

687 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:38:37 ]
>>680
ClickOnceって.NETアプリ以外でも使えたのか

ClickOnceと同じ場所を使ってるだけかと思ってたよ

688 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:40:53 ]
>>687
正確には、インストーラとして使ってる、ってとこかと。
そのおかげで、統合認証以外のプロクシを使ってると、インストールすらできないw



689 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:29:47 ]
>>675
Verb を runas にしたら昇格するよ。
アップデータの PE わけて起動させたほうがいいかもしれないけど。
なんとなーく勘違いしてそうなので UAC についてプログラマの視点から
指摘しとくと、昇格ダイアログ出すまではプログラムで可能。
OK ボタン押したら昇格ダイアログ→OK → アップデートってやるんだよ。

あとアップデートに関して言えば、パッチパッケージにすれば明示的な
昇格はいらない(ポリシーにより不可になるし署名が要るけど)。
Program Files 以下でも。実は古くからある機能だが。
実際には、パッチは管理や検証がめんどくさくなるのであまり使われな
いけどな。

>>681
Vista ユーザーからしたら XP の何もなく管理者で動くの不安になる正直
かといって Users で使おうとしたら不便極まりないし。両立できてかなり
いい機能だと思うがなぁ >UAC。リダイレクトとかの機能含めてな。

690 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:26:26 ]
>>665
はい、CS0121です

引数なしのコンストラクタを呼び出しているのに
二つ選択肢があるっていうのがちょっと理解できません・・・
ヘルプのコンパイラ エラー CS0121の使用例は理解できるんですが・・・

エラーは吐いているんですがビルドできるし正常に動作しています
それも理解できないし気持ち悪いです

691 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 02:14:56 ]
int a=0,b=0,c=0;
int line_count = arrText.Count;
ar_OKPOS = new List<int[]>[line_count];
for (int i = 0; i < ar_OKPOS.Length; i++){
ar_OKPOS[i] = new List<int[]>(new int[][] { new int[2] });
}
foreach (string sOutput in arrText)
{
// 一行ずつ読み込んで,各行をsplitメソッドで分ける
string temp = (string)arrText[a]; // string型にキャスト
string[] temp2 = temp.Split(',');// splitメソッドで文字列アレイにして数える
int col_count = temp2.Length; // 列数を数えているだけ

string[] temp_line = sOutput.Split(',');
for(int i=0;i<temp_line.Length;i++)
{
for(int k=0;k<2;k++){
i = i + k;
ar_OKPOS[a][b][c]=Convert.ToInt32(temp_line[i]);
c++;
}
c = 0;
b++;
}
b = 0;
a++;
}

692 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 02:24:35 ]
すいません 誤爆してしました

693 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 08:52:22 ]
デザインパターンとか全然勉強せずにプログラマやってるけど、勉強したほうがいいのかな?

694 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 08:54:14 ]
デザインパターンはなんかJava臭いよな
C#はオブジェクト指向至上主義じゃないから合わないんじゃない

695 名前:デフォルトの名無しさん [2009/04/04(土) 09:52:38 ]
標準のクラスライブラリでも結構それっぽいのはよくでてくるよ
ただjavaと違って、MSはほとんどデザインパターン用語を使わない

696 名前:デフォルトの名無しさん [2009/04/04(土) 13:38:17 ]
privateなメンバ変数もprivateなプロパティとして表示させたほうがいいですか?

またメソッドでメンバ変数を利用するときなるべく引数として渡した方がいいですか?
それともメソッド内でいきなり使用しても問題無いですか?

たとえばクラスに以下のようなメソッド等があったとして
private int _num;
public void Method()
 int num = CalcMethod(2);
private int CalcMethod(int num1)
 return num1+_num:
こういう書き方が良いのか
private int _num:
public void Method()
 int num = CalcMethod(2, _num);
private int CalcMethod(int num1. int num2)
 return num1+num2;
こんな書き方のほうがいいのか知りたいです。
例では単なる足し算ですが、複雑な計算をしているという仮定です。

697 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 13:41:03 ]
演算要素を全て引数で取らせるならstaticにする

698 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:20:05 ]
メソッドを呼び出す側からすれば,メソッド呼び出しはオブジェクトを操作することなので
内部状態を存分に使ってもらって構わない気がする.



699 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 15:33:03 ]
ありがとう
なるべく引数で渡したほうが、その中で完結するのでわかりやすい気がして
じゃあ、あんまり気にしなくていいってことかな?


700 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 15:58:22 ]
計算処理のように内部状態に関係なしに定義できるものは、
内部状態非依存(static)の方が単体テストしやすい

まあ、その例くらいの規模なら大して変わらないんだが

701 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 16:06:09 ]
>>696
むしろそのメソッドを定義したクラスはどんな責任と制約をもってんのよ?
メソッド単体じゃあなんともいえない

>699
時と場合による
プログラミングしやすい分かりやすさもあれば、
利用しやすいわかりやすさもある

702 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 17:48:14 ]
VC#単体(他から持ってきたライブラリを使わず)で開発したソフトやゲームを
販売する場合、ライセンス等の問題ってありますか?


703 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 17:59:31 ]
場合による。

704 名前:デフォルトの名無しさん [2009/04/04(土) 21:17:48 ]
ミサイル防衛システム作りたいんですがヒントだけでもください

705 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 21:25:07 ]
MDIで作成した子フォームに含まれるコントロールを取得後、アクセスしたいんですが
foreachでいちいちループ回さないといけない・・・
なんか他にいい方法ないでしょうか?
子フォームはアクティブな状態のものです

if (!(this.ActiveMdiChild as Form == null))

{
foreach (Control Ctrl in (this.ActiveMdiChild as Form).Controls)
{
 if (Ctrl is TextBox /*例としてテキストボックス*/ )
 {
  //処理
 }
}
}


706 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 21:41:58 ]
全コントロールを対象に処理が必要なら foreach で回さざるを得ないだろ。
特定のコントロールのみを対象にするなら Panel か UserControl に貼り付けて
必要なコントロールへのアクセスを容易にすればいいよ。

707 名前:705 [2009/04/04(土) 21:54:17 ]
ん〜じゃあ無理か
Panelのリストを管理するとまた手間がかかりますしねえ・・・
どうもありがとうございました

708 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:05:22 ]
動的に作成する場合でもIList<>に入れればいいし、
あらかじめポトペタならコントロールが限られてるから
どちらにしても最低限のループでいけるんじゃないの?



709 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:16:50 ]
Linqでコントロールの種類ごとに連想配列に分配するクエリを作れば?

710 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:29:30 ]
>>702
ないよ

711 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:12:49 ]
Form activeChild = this.ActiveMdiChild as Form;
if (activeChild != null)
{
  activeChild.Controls.Where(c => c is TextBox).ToList<TextBox>().ForEach(t =>
  {
    // 処理
  });
}

かえって煩わしいな。

712 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:29:55 ]
>>711
ん?
実験してみようとしたのだが、インテリセンスにWhere()が表示されないのだがなんでだ?

713 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:42:19 ]
ControlCollectionがIEnumerable<Control>を実装してないからか?

714 名前:デフォルトの名無しさん [2009/04/05(日) 00:43:46 ]
だな
気がつかなかった!すげー便利じゃん!と思ったのにorz

715 名前: [2009/04/05(日) 00:52:48 ]
今までたくさんのサイトから通報者つのりあと少し
です
こいつは違反出品で昨日二度削除されました
auok.auone.jp/_ev?tr=83751566&et=2
空き巣に入られた?以上では‥
薔薇チョコ洋子さんは靴の転売や上履き二回削除されてるのに
今回は長期使用の文を消して書いてます
悪質なので評価欄の誹謗中傷の理由で通報お願いします

auok.auone.jp/item/item_189662269.html?u=4682520
わいせつ物

auok.auone.jp/item/item_189667641.html?u=4682520
わいせつ物
三箇所違反ですのでよろしくお願いします


716 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 02:53:12 ]
this.ActiveMdiChild.Controls.Cast<Control>().Where()とか?

717 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 03:03:10 ]
クラス内の自動プロパティを初期化したいのですがコンストラクタ内でするしかないのでしょうか?
例えば
public string Name{get;set;}
というものがあって、Nameは始めはnullですが、""に初期化しておきたいのです。
フィールドでしたら
private string Name = "";
と出来ます。
プロパティの量だけコンストラクタにも初期化する量が増えてしまうのでフィールドのように出来れば一度に初期化したいのですが方法はあるのでしょうか?

718 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 03:03:27 ]
>708 がベストだろ



719 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 03:10:31 ]
クラスを継承したときに基本クラスのメソッドにコードを追加するように書くにはわかりました。

720 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 09:26:10 ]
>>717
ありません
自動プロパティの使用をやめるか普通にコンストラクタで初期化してください

721 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 09:52:29 ]
>>717
リフレクションでstring型のプロパティを一括初期化できなくもないがバグの元だな

722 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 09:58:22 ]
そのためのオブジェクト初期化子なんだろうか

723 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 09:59:50 ]
ヘジさんが自動プロパティに必死で抵抗してたのは直接初期化できないからなのかな

724 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:12:36 ]
自動プロパティって、文法的にインターフェースでの宣言と一緒なのがちょっと気になるっちゃ気になる。

int Method();

とだけ書いたらメソッドの中身ができちゃうようなもんだからなぁ。
パッと見同じだけど全然意味の違うものってのは、
ミスの原因だし、読むときの混乱招くから。

725 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:12:47 ]
コンストラクタで初期化するくらいなら、
タイピング量的に自動プロパティである必要がぜんぜんないな

726 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:14:42 ]
もう、自動プロパティを自動で普通のプロパティに展開するユーティリティを使えばいいよ

727 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:22:42 ]
private string _test;
public string Test { get _test; set _test; }

こういう糖衣構文を可能にするだけでよかったんだよ

728 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:26:55 ]
糖衣構文といいたいだけのやつ増えすぎ



729 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:29:42 ]
構文糖を可能にするだけでよかったんだよ

730 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:30:46 ]
public property string Test = "";

でいいんじゃないの

public readonly property string Test = "";

とか

731 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:36:05 ]
public string Test { get GetTest(); set SetTest(value); }
も可能そうだな


732 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:41:00 ]
>>731
それは意味がわからない。普通にかけばいいだろ
public string Test { get { return GetTest(); } set { SetTest(value); } }

733 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:41:50 ]
インターフェイスにプロパティを宣言するときの書き方と合わせたかったんだろ
美学ってやつなんだろう

734 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:48:09 ]
たとえ美学でも、読み取り専用にするprivate set;はせっかくの省力構文を台無しにしているな
public string Test { get; }
これで何がまずいのだろう

735 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:48:47 ]
event の構文が

event DelegateType Variable;
event DelegateType Variable { add { ...] remove { ...} }

なのを考えると、

property VarType Variable;
property VarType Variable { set { ... } get { ...} }

がよかった気もするなぁ。


736 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:50:10 ]
>>732
楽になるじゃん
それに変数とメソッドを同時に書くこともある
public string Test { get GetTest(); set _test; }


737 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:52:33 ]
property Name: string read FName write FName;
もうこれでいいよ

738 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:54:11 ]
>>735
それいいよね
読み取り専用プロパティは
readonly property VarType Variable;
にすればいいし



739 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 11:03:07 ]
>>734
初期化も何もできないじゃん

740 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 11:26:12 ]
>>739
private set;と書いたことにする

741 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 11:44:34 ]
それなら>>735スタイルにしてgetも書かないようにしないとおかしい
アクセサを宣言する意味でgetやsetを書いてるのに

742 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:04:59 ]
>>740
( ゚д゚ )

743 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:08:15 ]
アクセス修飾子をpublicとprivateだけと思ってる奴が多いようだな

744 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:25:18 ]
そんな奴いないだろw
もともとはプロパティのアクセサにアクセスレベルは指定できなかったんだよ
public get; protected set;みたいなのはそもそも想定されてなかった
だから別に>>735の形になっててもおかしくはない

745 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 18:13:05 ]
addとremoveが必須なeventとgetとsetは片方あればいいプロパティじゃ初めから条件が違うな

746 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 18:55:27 ]
話の流れを全部理解しているわけじゃないが、
そういうシンメトリックかどうかって話じゃないだろうw

素直に(VB方式ともいう)propertyってキーワードを導入しておいた方が
可読性の観点からは好ましかったんじゃないかって話なんじゃないの?

747 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:23:51 ]
でもevent 型 名前;と型 名前 { get; set; }じゃ差がありすぎるからなあ
イベントを理解する上でプロパティとの類似性はかなり重要なのに
構文上全然違う種類のものになっちゃってるのはさすがに

748 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:43:42 ]
そういや、結構いろんな言語に精通してる同僚が最近 C# 触り始めたんだけど、
event 知らずに普通にデリゲート型のプロパティ使ってたなぁ。




749 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:51:16 ]
イベントって機能がデリゲートで実現されていることを知らずにイベントを
使ってるって話ならありそうだが、デリゲート押さえてるのにイベント知らない、
なんてこと普通はありえん気がするけどね。

750 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:55:20 ]
eventって別に必要ない機能だろ

751 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:58:49 ]
javaなんかでよく出てくるgetHoge, setHogeパターンを言語に組み込んだのがプロパティ
同様にaddHogeListener, removeHogeListenerパターンを言語に組み込んだのがイベント

752 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 23:29:37 ]
言語に組み込む組み込まないの話ではないだろ

753 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 23:49:33 ]
>>749
「デリゲートはイベント処理用のもの」って認識だとそうなんだけど、
「関数ポインタの便利版」って認識だと、
関数ポインタのプロパティでイベントハンドラ取ればいいやってなってもおかしくないかと。


754 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 23:56:59 ]
もしプロパティを使うならデリゲートのコレクションを返すべきだろ
button.ClickEventHandlers.Add(new EventHandler(button_Click));
これなら意味的には同じ

755 名前:754 mailto:sage [2009/04/05(日) 23:59:32 ]
外からの要素へのアクセスはできないようにしないといけないよもちろん
マルチキャストでいいだろと突っ込まれそうだから一応

756 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:00:30 ]
Formsのコントロールの初期化をデザイナーで作っているところなんだが、
ツールバーのボタンが横に並んだ1つづりのPNGファイルを
ImageListを使って切り出して使おうとしているのだがうまくいかない。

System.Windows.Forms.ImageList il = new System.Windows.Forms.ImageList();
il.TransparentColor = System.Drawing.Color.Transparent;
il.ImageSize = new System.Drawing.Size(24, 24);
il.Images.AddStrip(Resources.tool);

こんな風に書いてデザイナーに読ませると、AddStrip()が認識できずに落ちてしまうようだ。
仕方がないのでpartialされたForm本体側で追加で初期化してるんだが、当然ながらデザイナーではプレビューできない。
画像の切り出し、切り出したチップをそれぞれのコントロールで使用したいんだがどうしたらいいだろうか。

757 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:10:38 ]
>>748
eventをつけた場合とつけない場合は何が違うのですか?
public event EventHandler Unko;
public EventHandler Unko

758 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:13:42 ]
>>757
ググれかす
見た目としては、eventだと外から行える操作がデリゲートの追加と削除だけになる。



759 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:17:51 ]
>>757
Unkoの硬さが違ってくる

760 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:23:11 ]
>>758-759
ありがとう。
何となく分かったよ
Unkoの硬さが+=と-=だけになるってことですね

761 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:28:52 ]
>>756
デザイナで設定するのは無理なんじゃないの
とりあえずImageListプロパティだけ設定して,Tagプロパティにインデックスを入れといて
後でコードから舐めてImageIndexプロパティに設定し直すとか

762 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:04:40 ]
>>761
ありがとう。「無理」という返事を聞いてある意味安心した。

どうせデザイナーで作る部分はある程度静的な割付になるので、わざわざTagに入れてループをまわさなくても、
ImageList.Images プロパティをControl.Image に直接代入していくだけで十分だね。

763 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:22:48 ]
>>762
ImageList継承して"ImageStrip"のようなプロパティを追加するとか、
あるいは最初から目的のイメージを持たせちゃうとかすれば出来る気もする。

っていうか、なんでわざわざそんなC#向きでない作り方をするんだろう。
なんでも道具にあった作り方ってあると思うんだけど。

764 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:24:20 ]
あーImageListってシールされてるのか。。

765 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:59:32 ]
String型がシールされてる上にIStringのようなインターフェイスもないってどういうこと?
String型に限らずやたらシールされると拡張できなくて異常に不便

766 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:02:16 ]
C#の入門誌のオススメ教えて

767 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:04:16 ]
C#に入門書は必要ない
ぐぐれば腐るほどでてくるからな・・・
強いて言えば逆引き系のものがいいよ

768 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:04:39 ]
継承は最低の方法だってみんな分かって来てるじゃない
それはともかくStringはIEnumerable<char>として扱うと便利だよ



769 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 03:31:43 ]
>>763
コントロールで使う画像の処理をImageListに任せるのは、
Win32SDK時代から続く古式ゆかしいお作法なんだ。

770 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 08:32:28 ]
> それはともかくStringはIEnumerable<char>として扱うと便利だよ
これは気づかなかった。ありがとう

771 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:03:50 ]
デザイナーいるとかうらやましいなおい・・・・

772 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:26:25 ]
>>765
恥ずかしいレスだなおいw

773 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:31:03 ]
>>771
それはボケなのか……?

774 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 10:42:32 ]
Stringがsealedなのはimmutableにするため
変更できない方が扱いやすいから

775 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 17:54:34 ]
扱いやすいっていうか、継承を禁止しないとイミュータブルであることを保証できない。

776 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 18:04:25 ]
なんとなくだが、>>774
"stringはimmutableであった方が扱いやすい"
と言いたかったのではないかと思う。

777 名前:デフォルトの名無しさん [2009/04/06(月) 21:19:49 ]
>>766
洋書なら色々あるけど、邦訳版が出てないのが多い・・・。

778 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 02:18:55 ]
C#って検索数がいまいちなんだよね。
なんで?



779 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 02:34:22 ]
>>778
記号とか入いってるとかは検索エンジン的にマイナスな気がする。
あと、なんだかんだいって後発だしね。
それと、一般名詞そのまま使ってるrubyとかと比べりゃそりゃ少なくなる。

780 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 03:42:38 ]
思いつくままに検索してみた。言うほど少なくは無いようだが

php の検索結果 約 9,700,000,000 件
javascript の検索結果 約 680,000,000 件
vb の検索結果 約 657,000,000 件
java の検索結果 約 377,000,000 件
scheme の検索結果 約 107,000,000 件
ruby の検索結果 約 102,000,000 件
c++ の検索結果 約 101,000,000 件
perl の検索結果 約 88,000,000 件
c# の検索結果 約 63,900,000 件
python の検索結果 約 62,300,000 件
delphi の検索結果 約 49,500,000 件
lisp の検索結果 約 8,290,000 件
fortran の検索結果 約 7,720,000 件
cobol の検索結果 約 6,530,000 件
c++/cli の検索結果 約 4,680,000 件

781 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 03:54:22 ]
>>780
ごめんそれ違う。

漏れが言ったのは、グーグルトレンドの方。

782 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 04:47:38 ]
>>780
発想は面白いよ発想は

783 名前:sage mailto:sage [2009/04/07(火) 13:13:32 ]
vb.net の private shared は C# でいうとなんですか?
private partial ? private protected?

784 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 13:17:51 ]
private static

785 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 13:19:16 ]
thx!

786 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 14:11:03 ]
VB.netの存在意義がわからない
初心者向けならジェネリックやLinqの拡張をすべきではないと思うんだが・・・

787 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 14:12:59 ]
VB.NETはVBプログラマ用の隔離病棟もしくはオブジェクト指向リハビリ施設

788 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 14:13:04 ]
>>786
それは、貴方の考えた存在意義と違うってだけでしょう。



789 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 18:15:55 ]
C#>VBってのはC#でオブジェクト指向を勉強した奴がやけに言いたがるようだけど
他から見たらチェイサーとクレスタ


790 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 18:24:42 ]
そりゃ.NETがベースにあるからだろ

791 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 18:28:30 ]
.NETのWebBrowserコンポーネントで
RichTextBoxのSelectionColorプロパティみたいに、文字列をドラッグしたときの選択色を変える方法ありませんか?

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読め。






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

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

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