5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

■前スレ
ふらっとC#,C♯,C#(初心者用) Part65
http://hibari.2ch.net/test/read.cgi/tech/1289307450/

■関連スレ
C#, C♯, C#相談室 Part62
http://hibari.2ch.net/test/read.cgi/tech/1284775031/
VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/

■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。

直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php

2 :デフォルトの名無しさん:2010/11/27(土) 20:41:20
C#, C♯, C#相談室 Part63
http://hibari.2ch.net/test/read.cgi/tech/1289733048/

3 :デフォルトの名無しさん:2010/11/27(土) 22:09:29
>>1


4 :デフォルトの名無しさん:2010/11/28(日) 00:37:07
>>1
Hello2 World

5 :デフォルトの名無しさん:2010/11/28(日) 01:13:10
YouTubuのURLから動画のタイトルを取得することはできますか?

6 :デフォルトの名無しさん:2010/11/28(日) 01:23:16
できません

7 :デフォルトの名無しさん:2010/11/28(日) 01:25:03
いや、できるだろ、WebClientと正規表現で。

8 :デフォルトの名無しさん:2010/11/28(日) 01:26:40
URLにはタイトル情報はないな
URLにアクセスしてhtmlだけダウンロードしてくれば
その中にテキストデータで埋もれてるからそれを抜き出せばいい

9 :デフォルトの名無しさん:2010/11/28(日) 02:06:26
ちゃんとyoutubeのウェブAPIを使おうよ

10 :デフォルトの名無しさん:2010/11/28(日) 02:08:00
初心者でスマン。
慣性スクロールのやり方教えてください。

11 :デフォルトの名無しさん:2010/11/28(日) 02:41:47
>>10
windowsってそういうのを作りこむには向いてないかもねw

12 :デフォルトの名無しさん:2010/11/28(日) 03:12:59
WPFでタッチインターフェイス使うなら慣性もAPI提供されてるんだけどもね。

13 :デフォルトの名無しさん:2010/11/28(日) 08:46:46
picturebox使った対数グラフの描画のしかたを教えてください。


14 :デフォルトの名無しさん:2010/11/28(日) 08:52:35
bmpを作って点を描画してpictureboxへ渡す

15 :デフォルトの名無しさん:2010/11/28(日) 10:12:28
>>13
http://ideone.com/0heyZ
グラフのメモリは自分で作ってくれ

16 :デフォルトの名無しさん:2010/11/28(日) 10:18:21
ここは初心者用スレ
以下の事は↓のスレで
難しい質問
GUI
C#以外の言語

C#, C♯, C#相談室 Part63
http://hibari.2ch.net/test/read.cgi/tech/1289733048/l50

17 :デフォルトの名無しさん:2010/11/28(日) 10:25:20
ここってGUI関連の話しちゃいけなかったのか

18 :デフォルトの名無しさん:2010/11/28(日) 10:25:28
次スレからテンプレ変更

19 :デフォルトの名無しさん:2010/11/28(日) 10:36:30
勝手に決めるなハゲ

20 :デフォルトの名無しさん:2010/11/28(日) 10:51:37
C#以外の言語の質問をC#, C♯, C#相談室でしろってあほか
わけわからん誘導すんなよ


21 :デフォルトの名無しさん:2010/11/28(日) 11:13:45
「ここは初心者用だ!」
とは、質問者にではなく、答える側に言いたい。

22 :デフォルトの名無しさん:2010/11/28(日) 11:45:32
答える側も初心者限定ってこと?

23 :デフォルトの名無しさん:2010/11/28(日) 12:22:40
え?

24 :デフォルトの名無しさん:2010/11/28(日) 12:54:30
何その茶番

25 :デフォルトの名無しさん:2010/11/28(日) 12:55:45
スレ立て代行依頼
板:vip
タイトル:ニコニコ生放送あらそうぜ
内容:
【300人記念】リアトモがフリーホラーゲームをやります【ホラーゲーム】
http://live.nicovideo.jp/watch/lv3336962

26 :デフォルトの名無しさん:2010/11/28(日) 15:18:10
初心者からしたら、何処までがC#言語の範囲でどこまでが.NET Framework
なのか区別付かないこともあるだろ。GUIも多少はここでいいんじゃない?

27 :デフォルトの名無しさん:2010/11/28(日) 15:29:34
というか、言語とフレームワークそこまで厳密に区別する意味ない。
フレームワークなしじゃ大したもの作れないし、
C# はフレームワークに乗っかった機能多いし、

28 :デフォルトの名無しさん:2010/11/28(日) 16:19:11
GUIは相談室でやれとか初めて聞いたわ。

>「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
>ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
>ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
これが全て、GUIの質問もしていい。

29 :デフォルトの名無しさん:2010/11/28(日) 16:52:18
先生、結論をお願いします

30 :デフォルトの名無しさん:2010/11/28(日) 17:04:11
自称初心者は全員ここでおk
自称上級者に「お前は初心者じゃねえ」と叱られたら相談室へ

31 :デフォルトの名無しさん:2010/11/28(日) 17:05:09
わかりにくいので真理値表でお願いします

32 :デフォルトの名無しさん:2010/11/28(日) 17:25:28
A = C#初学者
B = 小規模なアプリケーションを完成させたことがある
C = 大規模なアプリケーション開発に携わったことがある
D = C#マニア

         | A | B | C | D |
-------------------------
初心者/質問 | O | O | X | X |
初心者/回答 | X | O | O | O |
相談室/質問 | X | O | O | O |
相談室/回答 | X | X | O | O |

こんなとこか?

33 :デフォルトの名無しさん:2010/11/28(日) 17:34:08
どうでもええわ

34 :デフォルトの名無しさん:2010/11/28(日) 18:09:09
>>15
神様ありがとうございますた


35 :デフォルトの名無しさん:2010/11/28(日) 18:17:47
>>15
図々しいお願いですが、グラフのメモリも

36 :デフォルトの名無しさん:2010/11/28(日) 18:22:04
そのくらい自分でやれ

37 :デフォルトの名無しさん:2010/11/28(日) 18:27:43
ここは質問スレであって、依頼スレじゃないよ。

38 :デフォルトの名無しさん:2010/11/28(日) 18:32:01
どうやったら依頼を受けてくれますかという質問です

39 :デフォルトの名無しさん:2010/11/28(日) 18:33:04
そいつはちと高くつくぜ

40 :デフォルトの名無しさん:2010/11/28(日) 18:34:58
お金払えば受けてくれるんじゃない?

41 :デフォルトの名無しさん:2010/11/28(日) 18:45:38
出来高払いで。


42 :デフォルトの名無しさん:2010/11/28(日) 18:46:46
5000万ぐらいなら払えます
ジンバブエドルで

43 :デフォルトの名無しさん:2010/11/28(日) 18:50:45
両替手数料が高くつきそう

44 :デフォルトの名無しさん:2010/11/28(日) 19:26:37
雑談はよそでどうぞ。

45 :デフォルトの名無しさん:2010/11/28(日) 19:48:48
>>35
http://ideone.com/7JfPc
ほれ
報酬は5000万ジンバブエ・ドルだから
現在のレートだと日本円で1000万円だな
ちゃんと払えよ
http://ja.exchange-rates.org/converter/ZWD/JPY/50000000/Y

46 :45:2010/11/28(日) 19:58:00
DrawDoubleLogarithmicGridのxscaleの計算コピペしてr使うの忘れてたわ
// スケールを計算
float xscale = r.Width / (float)Math.Log10(xmax);
float yscale = r.Height / (float)Math.Log10(ymax);

47 :デフォルトの名無しさん:2010/11/28(日) 20:41:58
そのバグにより報酬減額100%とさせていただきます

48 :デフォルトの名無しさん:2010/11/28(日) 20:41:58
>>46
まあグラフだから実用上問題ないはずだけど、
本当はfloatにキャストするのは最後にした方がいいような

49 :デフォルトの名無しさん:2010/11/28(日) 20:50:00
>>47
バグではないよ、どっちでも動作変わんないし

>>48
floatってそんな精度悪かったっけ?

50 :デフォルトの名無しさん:2010/11/28(日) 20:52:54
>>49
使う範囲によるけどゲームのように速度重視じゃない場合は64bitになってるでしょ
C#も一部は明示的にfloat使うところもあるけど基本はdoubleだし

51 :デフォルトの名無しさん:2010/11/28(日) 21:07:18
>>45
さっすが、仕事速いっすねえ
1000円しか持ってないけど、将来あなたが主任級まで昇進できることを俺が保証します。

52 :デフォルトの名無しさん:2010/11/28(日) 21:16:15
なんか気になって仕方ないので直した
http://ideone.com/J7yhD
>>50 いまどきのCPUならどっちでも速度は変わんないと思うけどね
>>51 100円残してやるから900円よこせ

53 :デフォルトの名無しさん:2010/11/28(日) 21:16:52
もう880円しかなくて

54 :デフォルトの名無しさん:2010/11/28(日) 21:29:47
>>53
(#^ω^)ピキピキ

55 :デフォルトの名無しさん:2010/11/28(日) 21:30:42
ジュース飲んでんじゃねーよはげを髣髴とさせるな

56 :デフォルトの名無しさん:2010/11/28(日) 22:22:33
すいませんが教えてください。
static class Program {
static void Main() {
Form1 form=new Form1()
form.Show();
Thread t=new Thread(new ThreadStart(form.run));
t.Start();
t.Join(); } }

public class Form1:Form {
public Form1(){}
public run() {
this.Show()
while(this.Created) { Application.DoEvents(); }
}
このコードを実行すると、Application.DoEvents()があるのに、どうしてWindowsの
メッセージ処理をしてくれないのでしょうか?


57 :デフォルトの名無しさん:2010/11/28(日) 22:24:18
また気色悪いコードだなあ

58 :デフォルトの名無しさん:2010/11/28(日) 22:26:38
とりあえず何をしたいのか書いてくれ

59 :デフォルトの名無しさん:2010/11/28(日) 22:37:16
ゲームループでググり、実験しています。
ちなみにform.Show()を
runメソッド内に置くとWindowsのメッセージ処理をしてくれて
フォーム右上の「x」でフォームが閉じます。


60 :デフォルトの名無しさん:2010/11/28(日) 22:38:51
56:のコードで
this.Show()は無しです。

61 :デフォルトの名無しさん:2010/11/28(日) 22:40:16
>>59
XNAとかゲームAPIを使わないゲームループならこの辺のソースみたら?
http://cs2ch.blog123.fc2.com/blog-entry-82.html

62 :デフォルトの名無しさん:2010/11/28(日) 22:42:06
>>56
Form1のメッセージループがメインスレッドで動いているのに、別スレッドでDoEvents
するって・・・。お前にはマルチスレッドは10年早い。

63 :デフォルトの名無しさん:2010/11/28(日) 22:46:09
まずDoEvents自体勘弁して欲しいけどね

64 :デフォルトの名無しさん:2010/11/28(日) 22:50:26
これでいいだろ
[STAThread]
static void Main() {
 Form1 form = new Form1();
 form.Show();
 while (form.IsHandleCreated) {
  Application.DoEvents();
 }
}

65 :デフォルトの名無しさん:2010/11/28(日) 22:53:57
お前らホントにDoEventsが好きだな。DoEvents使っていいのは小学生まで。

66 :デフォルトの名無しさん:2010/11/28(日) 22:55:31
56です。低レベルの質問、すいません。
「別スレッドでDoEventsするって・・・」
ってどういうことでしょうか?



67 :デフォルトの名無しさん:2010/11/28(日) 23:03:05
>>66 ShowするスレッドとDoEventsするスレッドは同じでなければならない。
↓これなら気が済むか?
static class Program{
 static void Main() {
  var form = new Form1();
  new Thread(form.Run).Start(); // background thread.
  Application.Run(form); // または>>64の用にDoEventsでループする
 }
}
class Form1:Form{
 public void Run(){
  while( this.Created ) ;
 }
 bool Created;
}

68 :デフォルトの名無しさん:2010/11/28(日) 23:03:11
中学生からは何を使うの?

69 :デフォルトの名無しさん:2010/11/28(日) 23:07:08
普通にプログラム書いてれば、DoEvents を使う必要はない。

70 :デフォルトの名無しさん:2010/11/28(日) 23:08:51
きちんとイベントハンドラの制御を終えて、唯一のメッセージループで処理が回る
様に書くに決まってんだろ。

71 :デフォルトの名無しさん:2010/11/28(日) 23:11:50
いろいろ勉強になりました。
ありがとうございました。
マルチスレッドはかなり奥が深いですね。


72 :デフォルトの名無しさん:2010/11/28(日) 23:13:27
MS自身がDirectX SDKのサンプルで
DoEvents使ってた経緯があったりするから困り者

73 :デフォルトの名無しさん:2010/11/28(日) 23:15:16
諸悪の根源はこれではなかろうか
ttp://d.hatena.ne.jp/yukinami/20090310

このやりとりでマルチスレッドの奥深さがわかるなんてとんでもない天才だな

74 :デフォルトの名無しさん:2010/11/28(日) 23:20:33
あ、それだ。
どれくらい奥深いかは、分かりませんが、
質問に答えてくださったかたへの礼儀として
一文を書いた次第です。

75 :デフォルトの名無しさん:2010/11/28(日) 23:22:56
ちょっとだけ時間のかかるような処理をループで回すようなときとか、
わざわざスレッドやバックグラウンドワーカー作るよりも
DoEvents使っちゃうほうがコストが低いと思うがそれもだめなのか?

76 :デフォルトの名無しさん:2010/11/28(日) 23:25:10
好きにすればいい。

77 :デフォルトの名無しさん:2010/11/28(日) 23:26:10
イベントハンドラの中でDoEventsを使うとたのしいよ
すっごく

78 :デフォルトの名無しさん:2010/11/28(日) 23:35:49
イベントハンドラ以外のどこでDoEvents使えってんだ

79 :デフォルトの名無しさん:2010/11/28(日) 23:43:09
67のコードで
Application.run(form)
の代わりにform.show()はなぜ駄目なの?


80 :デフォルトの名無しさん:2010/11/28(日) 23:46:45
Application.Run(form);はformが閉じられるまで処理がそこで止まるから
form.show()じゃそのままMainメソッド終了しちゃう

81 :デフォルトの名無しさん:2010/11/28(日) 23:47:00
>>75
DoEventsでどんなイベントが実行されても安全なことが保証できてるなら構わないぞ。
イベントハンドラ中にFormがDisposeされてもいいんだな?

82 :デフォルトの名無しさん:2010/11/28(日) 23:51:10
>>79
アプリケーション全体ではどこかでメッセージ処理をしなくてはいけない
メッセージループの開始をしてくれるのがApplication.Run()

だから、フォームが1つならApplication.Run() にするのがもっとも簡単
逆にメインフォームとは別のサブフォームの作成なら、すでにメインフォームで
メッセージ処理をしてるはずなので、Application.Run()ではなく、Show() を使う

83 :デフォルトの名無しさん:2010/11/28(日) 23:58:57
56のコードであればメインフォームのメッセージループは開始されて
おらず、62の意見は間違っているんでは??

84 :デフォルトの名無しさん:2010/11/28(日) 23:59:56
>>81
ディスポーズされた後にコントロール操作したら例外発生するのかと思ったけどそんなことはなかった


85 :デフォルトの名無しさん:2010/11/29(月) 00:04:43
>>83
while(this.Created) { Application.DoEvents(); }

というのがメッセージループ(≒Application.Run)に相当するんじゃないの
まあ、うまく動作してないわけだけど

86 :デフォルトの名無しさん:2010/11/29(月) 00:05:57
もういいよ。pinvokeでWin32API使って直接ループ回せよ。

87 :デフォルトの名無しさん:2010/11/29(月) 00:06:46
動いてないソースをあれこれするより>>61の動いてるやつ改造すればいいじゃん

88 :デフォルトの名無しさん:2010/11/29(月) 00:08:45
>>83
メインスレッドでShowしてるでしょ
Application.Runは手っ取り早いメッセージループ開始方法ではあるが
方法はそれだけではない

89 :デフォルトの名無しさん:2010/11/29(月) 00:11:42
showはメッセージループを開始するってこと?

90 :62:2010/11/29(月) 00:13:32
>>83
ちょっと間違えた。メインはJoinしているからメッセージループは実行されていない。
でもnewするスレッドとShowするスレッドとメッセージ処理するスレッドは同じでなければならない。

91 :デフォルトの名無しさん:2010/11/29(月) 01:11:33
showはメッセージループを開始するってことではないよ
でもshowした後はメッセージ処理しなきゃいけないから
Application.Runやwhile(this.Created) { Application.DoEvents(); } で
メッセージ処理をループさせなきゃいけない。
で、メッセージはshowしたスレッドで処理されるから
>Form1のメッセージループがメインスレッドで動いているのに
はこれからメッセージループが走るという意味ではまあそんなに外れてはいない。
で、DoEventsは現在のスレッドでshowされたメッセージを処理する命令だから、
new Thread(new ThreadStart(form.run))で新しく作ったスレッドで実行しても意味がないってことだろ。
まあ、それ以前に新しくスレッド作った直後にjoinするとか一体何をしたいんだと小一時間問い詰めたい訳だが

ところでnewするスレッドって関係あるの?

92 :デフォルトの名無しさん:2010/11/29(月) 11:34:09
C#でショックウエーブみたいな簡単なブラウザ3Dネトゲ作るには
なにが最適でしょう?
silverlightやらWPFやらブラウザ系はいっぱいあってメリットデメリットがわかりません

93 :デフォルトの名無しさん:2010/11/29(月) 12:28:45
silverlightはWPFのサブセットで対象をブラウザに限定したのもって感じ
普通のブラウザゲームを作るならsilverlightのほうがお手軽だろうな
ただゲームを作るなら素直にFlash勉強したほうがサンプルとかも豊富だし楽そうだが


94 :デフォルトの名無しさん:2010/11/29(月) 13:04:40
SilverlightはFlexの方が近いような

95 :デフォルトの名無しさん:2010/11/29(月) 13:07:30
ネイティブの3Dは今のところFlashでもSilverlightでも標準じゃ無理。
ソフトウェアレンダリングのエンジンならあるけど当然性能は全然出ない。
WPFはネイティブの3Dが使えるけど、ウィンドウ枠がブラウザか独立ウィンドウかの違いくらいで
全くブラウザ上で動かす意味がない。
あとはJavaアプレットも3Dいけるけど今時流行らないよね

96 :デフォルトの名無しさん:2010/11/29(月) 13:17:33
3dに見える2dが限界だな

97 :デフォルトの名無しさん:2010/11/29(月) 13:30:07
HTMLも3Dはまだまだ不透明
ソフトウェアレンダリングを使ったお遊びでお茶を濁してたり
標準と謳いながらネイティブのプラグイン使って騙してたりするレベル

98 :デフォルトの名無しさん:2010/11/29(月) 16:14:32
適当に自作クラスの配列作ってみたけど、動かない

//main部分
My[] my = new My[]
{
new My {
Str1 = "あいうえお",Str2 = "かきくけこ",Str3 = "さしすせそ"
}
new My{
Str1="あ",Str2="い",Str3="う"
}
new My{
Str1="はあ",Str2="ひい",Str3="ふう"
}
}
class My
{
public String Str1 { get; set; }
public String Str2 { get; set; }
public String Str3 { get; set; }
}

どこが間違ってるの?

99 :デフォルトの名無しさん:2010/11/29(月) 16:15:57
もう全部匿名型にしちゃえよ

100 :デフォルトの名無しさん:2010/11/29(月) 16:40:50
>>98
>動かない 
ほんとに動かないであってるの?コンパイルエラーってことはない?

101 :デフォルトの名無しさん:2010/11/29(月) 17:29:50
,がたりない

102 :デフォルトの名無しさん:2010/11/29(月) 18:30:45
ベクタとビットマップの違いってなんですか?
C#ではべクタは取り扱えないんですか?



103 :デフォルトの名無しさん:2010/11/29(月) 18:47:33
せめてベクタとビットマップの違いぐらいは把握してから質問してくれ…PC初心者レベルじゃないか

104 :デフォルトの名無しさん:2010/11/29(月) 19:39:57
はい。


105 :デフォルトの名無しさん:2010/11/29(月) 19:54:50
VB6にあったDriveListBoxやDirectoryListBoxとかは、VS2010ではなくなったんですか?


106 :105:2010/11/29(月) 20:00:16
自己解決しました。


107 :デフォルトの名無しさん:2010/11/29(月) 20:09:36
>>102
WPFはUI全体がベクタ グラフィクス

108 :107:2010/11/29(月) 21:32:15
間違えました。。


109 :デフォルトの名無しさん:2010/11/29(月) 21:52:39
>>105
Microsoft.VisualBasic.Compatibilityを参照に追加して、ツールボックス アイテムの選択からDirListBox/DriveListBoxを追加すればC#からも使える。

110 :デフォルトの名無しさん:2010/11/29(月) 22:45:33
オサレなGUIする必要ないから
軽くて安定してるwinformで十分
WPFで下手にデザイン凝ったり特殊なコントロール作られたりしたほうが迷惑

111 :デフォルトの名無しさん:2010/11/29(月) 22:49:02
>>110
そうそう、モジの色がカラフルで、画像と合わせて、グラデーションかかったボタンが激しく動き回り・・・
おしゃれだけど、見づらくて使いづらそうだよね。

112 :デフォルトの名無しさん:2010/11/29(月) 22:49:28
>>110
おしゃれなの?それ
楳図かずおみたいな奴だな

113 :デフォルトの名無しさん:2010/11/29(月) 22:49:52
というか>>111がオシャレかな
派手でセンス悪いだけだろう

114 :デフォルトの名無しさん:2010/11/29(月) 22:50:06
どんな恐怖アプリだよ

115 :デフォルトの名無しさん:2010/11/29(月) 22:50:13
そういうセンスの人はblinkとかマーキーとか使いまくっちゃうんだよ

116 :デフォルトの名無しさん:2010/11/29(月) 22:50:20
提供された機能は使い切らないといけないみたいな信条でもあるんじゃねえか

117 :デフォルトの名無しさん:2010/11/29(月) 22:50:30
ボタンが動き回り・・・
の点々がいいよね

ボタンなんかどんなGUIフレームワークでも動かせるけどお前ボタン動き回る画面なんか作ったことあんのかよとw

118 :デフォルトの名無しさん:2010/11/29(月) 22:50:38
js覚え初めのころ逃げるボタンとか作ったよ

119 :デフォルトの名無しさん:2010/11/29(月) 22:53:59
こらWPFスレのコピーすんなバカ

120 :デフォルトの名無しさん:2010/11/29(月) 22:54:43
js覚え初めのころ逃げるボタンとか作ったよ

121 :デフォルトの名無しさん:2010/11/29(月) 22:55:09
俺も作った
カーソルにキラキラが追従するのとか

122 :デフォルトの名無しさん:2010/11/29(月) 22:55:31
js覚え初めのころ逃げるボタンとか作ったよ

123 :デフォルトの名無しさん:2010/11/29(月) 23:19:23
まだWPFがオサレなGUIするための物だと思ってる人居るんだ

124 :デフォルトの名無しさん:2010/11/29(月) 23:23:26
無骨以外にFormsの威張る所がないんで

125 :デフォルトの名無しさん:2010/11/29(月) 23:32:14
いまさらFormsなんてクソダサいのなんか使いたくねーよな
GDI時代の遺物だよありゃ

126 :デフォルトの名無しさん:2010/11/29(月) 23:35:56
ホームページでもよくあるじゃない
背景画像を明るいチェック柄にしてるのが
みづらくて仕方がない

美的センスがないやつは素直にwinformで制作すべき
WPFじゃなければ作れないことなんてないんだから
重いだけで使い物にならない

127 :デフォルトの名無しさん:2010/11/29(月) 23:40:13
WPFって重いの?

128 :デフォルトの名無しさん:2010/11/29(月) 23:43:46
VS2010が重いなら重いということになるな

129 :デフォルトの名無しさん:2010/11/29(月) 23:49:09
>>126
まだ美的センスがないとWPFで作っちゃいけないって言う人が居るんだ

130 :デフォルトの名無しさん:2010/11/29(月) 23:49:32
>>128
VS2010スレに帰れ

131 :デフォルトの名無しさん:2010/11/29(月) 23:51:40
センス無い奴は何で作ってもだめだろ。
そういうやつはFormsでもイライラ棒みたいな操作を要求するメニュー階層作ったりする。

132 :デフォルトの名無しさん:2010/11/29(月) 23:55:00
>イライラ棒みたいな操作を要求するメニュー階層
なにそれ怖い

133 :デフォルトの名無しさん:2010/11/29(月) 23:58:26
Windows Formよりは重い、はず。
WIndows Formができたころよりも
PCのハードウェア性能が圧倒的に伸びてるから
その性能を十分に活かしたいならWPFでいい。
いまだにPen4とかメモリが1GBとかの古いパソコンならWindowsFormでいいんじゃない?

WPFは確かに美しい外観がWinformと比べ圧倒的に作りやすいことも事実だが
(たとえばWinformだと丸いボタンや、Labelを斜めに配置することが極めてめんどくさかったが
WPFならプロパティやテンプレートで数行書くだけでできる)

データバインディングも重要な特徴なんだけどな。
WPFたたくやつって美的センスとか外観部分だけしか見てないよね。

134 :デフォルトの名無しさん:2010/11/30(火) 00:03:02
>>128
逆に考えるんだ。全てのアプリの中でも最大級の部類に入るVisual Studioよりは軽くなるはずだと

135 :デフォルトの名無しさん:2010/11/30(火) 00:05:43
バインディングとテンプレートの素晴らしさが理解できないから見た目しか叩けないんだろう。
ちょっとぐらい勉強してから批判すればいいのにw

136 :デフォルトの名無しさん:2010/11/30(火) 00:07:02
WPF重すぎワロタ

137 :デフォルトの名無しさん:2010/11/30(火) 00:07:26
C#を使うにあたって一番のメリットそしてデメリットって
なんですか?

138 :デフォルトの名無しさん:2010/11/30(火) 00:08:30
どんな恐怖アプリだよ

139 :デフォルトの名無しさん:2010/11/30(火) 00:19:52
GUIに求められるのは美的センスよりもユーザビリティや表現能力
単純な作業だけの定型アプリならWinFormsで十分だが
複雑な情報を視覚的に提示したり、インタラクティブな操作が
必要なときはWPFの表現能力が必要になる
GUIの話で見た目についてしか評価できないのは
真面目にGUI設計したことないやつだろ

140 :デフォルトの名無しさん:2010/11/30(火) 00:25:16
>>137
一番のメリットはVisual Studioのサポートを最も享受できること
一番のデメリットは.NET必須になること

デメリットの方は時間が解決してくれたので、今ではあまり問題視されなくなった。
(古い低スペックPCが淘汰された・Vista/Win7にプリインストール・XPにも十分に普及・ユーザの.NETへの理解が進んだ)

141 :デフォルトの名無しさん:2010/11/30(火) 00:27:02
>>133
丸いボタン?そういうのがいらない
OS標準ボタンで問題ない

データバインディングはwinformでもできる

>>135
WPFでやるとコードが長くなるだけだが
ユーザーは独自性のあるGUIより
快適で安定しているものを求める
それにw2kじゃ使えない

>>139
具体的にどういう場面で必要ですか?
アニメーションツールや3DCGのソフトや
ゲームなどグラフィカルなものが沢山ありますが
それらはWPF使ってなくても実現できていますが?
もっと斬新なものでもあるんですか?

142 :デフォルトの名無しさん:2010/11/30(火) 00:33:12
>アニメーションツールや3DCGのソフトや
>ゲームなどグラフィカルなものが沢山ありますが
>それらはWPF使ってなくても実現できていますが?
>もっと斬新なものでもあるんですか?
じゃあそれらをWinFormsで実現できるのか?
WinFormsよりWPFのほうがはるかに簡単に実現できる

143 :デフォルトの名無しさん:2010/11/30(火) 00:40:33
手で数値打ち込んで微調整していた頃から比べりゃどっちもすごい進歩だよ

144 :デフォルトの名無しさん:2010/11/30(火) 00:41:20
アセンブラ書いてた頃と比べりゃ(ry

145 :デフォルトの名無しさん:2010/11/30(火) 00:43:15
>>141
>データバインディングはwinformでもできる
WPF使った後だとショボすぎる

>独自性のあるGUI
なんで独自性のある斬新なGUIにしないといけないんだアホか

146 :デフォルトの名無しさん:2010/11/30(火) 00:50:31
「実現できる」ことしか批判してないのがワロス

たしかにWPF使わなくても使ってもどっちでも実現できるが、WPFのほうが圧倒的に楽だからWPFがいいつってんのにwww

147 :デフォルトの名無しさん:2010/11/30(火) 01:05:32
そういやJAVAでGUI作ってた頃は座標やらなんやら全部手打ちだったなぁ

148 :デフォルトの名無しさん:2010/11/30(火) 01:12:54
>>132
目的の機能がメニュー階層の深いところにあって、マウスポインタがメニューから
外れると今まで辿ってたのが消えちゃって1からやり直しになるってことだよ。

149 :デフォルトの名無しさん:2010/11/30(火) 01:20:20
http://java.misty.ne.jp/popup_menu.html
ここのやつみたいにな

検索エンジン→Gooってやろうとマウスもっていくと
「新聞社」にカーソルが合わさってメニューがきえるうざさ

150 :デフォルトの名無しさん:2010/11/30(火) 01:23:43
>>146
じゃあ、WPFでなぜゲーム開発しないんだ?
結局C++だろ?
WPFなんて重いだけ
作るのが簡単?利用者からしたら迷惑なだけ

151 :デフォルトの名無しさん:2010/11/30(火) 01:25:06
衝撃イライラメニューだな、これは
Formsでってことはわざわざメニューコントロールを自作したのか


152 :デフォルトの名無しさん:2010/11/30(火) 01:28:54
>>150
そうだね、C++ならゲームも業務アプリもなんでも作れるし
とっても軽いから、もうC#やる必要ないよね
だから二度とこのスレに来ないでくれ

153 :デフォルトの名無しさん:2010/11/30(火) 01:29:04
>>150
ゲーム開発の話が出てくるとは思わなかったw
お前はWPFを何だと思ってるんだwww

154 :デフォルトの名無しさん:2010/11/30(火) 01:30:29
>>149 の問題は Reactive Extensions 使うと楽に対処できるね。

155 :デフォルトの名無しさん:2010/11/30(火) 01:30:56
WPFは重いからダメ!Windows Formでも実現できる!

WPFのほうがいろいろ簡単だよ?

ゲーム作るならC++のほうがいい!

日本語が通じない人だw

156 :デフォルトの名無しさん:2010/11/30(火) 01:31:25
まず、C++ 出すあたり、C# をなんだと思っているのかと。

157 :デフォルトの名無しさん:2010/11/30(火) 01:32:45
まあそんなWPFを毛嫌いすんなよ。悪いもんじゃないから

158 :デフォルトの名無しさん:2010/11/30(火) 01:33:11
たぶん例のトリップ付きの人だろ

159 :デフォルトの名無しさん:2010/11/30(火) 01:35:16
>>154
kwsk

160 :デフォルトの名無しさん:2010/11/30(火) 01:39:36
MVVMだと1つイベント書くだけでもやたらコードが長くなる
XAMLだとインテリセンスも効かないし
何よりIDEが糞重くてやってられん

やっぱりコンソールアプリでいいやってことになる

161 :デフォルトの名無しさん:2010/11/30(火) 01:41:50
Reactive Extensions は、複数のイベントの合成とか
マルチスレッドしたりとかがめちゃくちゃ簡単にできる。

162 :デフォルトの名無しさん:2010/11/30(火) 01:44:54
今回の問題だと、
メニュー部分のボタンの MouseEnter イベントを遅延して取得すればいいと思う。

163 :デフォルトの名無しさん:2010/11/30(火) 01:44:56
WPFはすぐ消えるだろうな
2つの言語覚えなきゃいけないって面倒

164 :デフォルトの名無しさん:2010/11/30(火) 01:46:14
>>160
最終的にLinux最高って結論に至るのであった

165 :デフォルトの名無しさん:2010/11/30(火) 01:47:11
XAMLの記法なんて真新しいもんでもないだろうに。
プログラミングやっててXMLと無縁なんて今時考えられんだろ。

166 :デフォルトの名無しさん:2010/11/30(火) 01:48:19
163はプログラム作ってるけどXML知らない無能なんだよ

167 :デフォルトの名無しさん:2010/11/30(火) 01:50:12
>>163
XML使ってインスタンスツリー構築してるだけなのに見た瞬間思考停止しちゃう人ってw

168 :デフォルトの名無しさん:2010/11/30(火) 01:53:40
べつにWPF消えてもらっても構わんが
早いとこ代わりを用意してもらわんとなあ
GPU活用かつマルチメディア対応のやつ

169 :デフォルトの名無しさん:2010/11/30(火) 01:54:04
全ての人がお前と同時に生まれて
お前と同時にプログラミング初めて
お前と同時に同じ言語を学習したとでも思っているのか?

お前は自分以外のすべての人間を見下しているんだろうな
お前が唯一できるXMLを楯にして

友達もいない、彼女もいない、誰にも愛されない人生を送っているお前が唯一自慢できるもの
おまえにとってはその部分だけでしか人と比べることができない
それ以外はすべて劣っている無能だから

こき使われて、評価されなくて、自殺するタイプだな

170 :デフォルトの名無しさん:2010/11/30(火) 01:56:15
先に生まれたから
先にプログラミング始めたから
というだけで初心者を罵倒する奴は
どの会社でも仲間はずれになる
先にやったんだから出来て当たり前
そんなことを自慢げに語るような奴は
会社にとって不利益

171 :デフォルトの名無しさん:2010/11/30(火) 01:58:39
上を見て歩くのは諦めたみたいだね
常に下を見て、自分より劣っているところだけを抜粋して
そいつのすべてをわかった気になる

社交性があって、人徳があっても、自分より少しでも
プログラミング知識が足りないところがあると
そいつは自分より劣っていると解釈して
自分の無能さを誤魔化しながら生きることしかできなくなっちゃったんだね

はやく自殺すればいいよ

172 :デフォルトの名無しさん:2010/11/30(火) 02:03:21
XMLなんて時間さえかければ誰でも理解できる
低脳なキミでさえ理解できたんだからね
そしてすぐにキミは追い抜かれる
そういう奴に対してキミは運がよかっただけと都合よく解釈し
またきた新入社員をターゲットにして見下す
そして気づいたら中年のPG
30以上にもなって役職も与えられない惨めな独身PG

それでもキミは他人を見下すことをやめない
そうしていないと、怖くて、情けなくて、惨めで自殺しちゃうから

173 :デフォルトの名無しさん:2010/11/30(火) 02:05:00
気が済んだならお勉強に戻ろうね

174 :デフォルトの名無しさん:2010/11/30(火) 02:07:39
見下すのは哀れだという文章で他人を見下すという矛盾について

175 :デフォルトの名無しさん:2010/11/30(火) 02:09:38
それは小学生レベルの反論だな

最初に見下してきたのが悪い
人を見下すような奴は見下されて当然なのだからね
何も矛盾していない

176 :デフォルトの名無しさん:2010/11/30(火) 02:10:41
馬鹿っていったやつが馬鹿理論かw

177 :デフォルトの名無しさん:2010/11/30(火) 02:16:53
>>174
そんな理屈が世間で通ると思っているの?
人と会話したことあるの?

ま、どちらにしてもそういう幼稚な自己擁護しかできない時点で
お前が無能なのはよくわかるよ
まともな知恵があったら揚げ足みたいな反論じゃなくて
自分の正当性を論理的に証明すれば?(できるならね)


いつまでもそうやって幼稚な言い訳しながら生きていきな
ずっと自分を騙しとおせるなら自殺しなくても済むだろうよ

でも、他人を騙せるほどお前は利口じゃないから
いじめられるだろうけどね

178 :デフォルトの名無しさん:2010/11/30(火) 02:18:18
          ;' ':;,,     ,;'':;,
         ;'   ':;,.,.,.,.,.,,,;'  ';,
        ,:'           : :、        
       ,:' \  ,,. 、./  ノ( ::::::::',       
       :'  ●     ● ⌒   :::::i.
       i  ''' (_人_) '''' *   :::::i 
        :    {+ + +}      :::::i 
       `:,、   ̄ ̄      ::::::::: /
        ,:'        : ::::::::::::`:、
        ,:'         : : ::::::::::`:、

179 :デフォルトの名無しさん:2010/11/30(火) 02:19:54
何一つ言い返せなくなったから無関係の事で荒らし始めたwww

180 :デフォルトの名無しさん:2010/11/30(火) 02:21:08
WPF関係で荒らしてるやつって例のコテハン君か

181 :デフォルトの名無しさん:2010/11/30(火) 02:23:29
ちょっと冷静になれ。
XMLなんて知らなかったらム板に居る全ての連中から馬鹿にされるぐらい必修だろ??

>>180
コテハン君は一応使ってみてから理解できないと騒ぐ
今騒いでるのは使おうともしないコテハン君以下の存在。

182 :デフォルトの名無しさん:2010/11/30(火) 02:23:55
人格批判はマ板でやってくれ。
XMLの記法はXAMLだけでなく設定ファイルやHTMLとしても利用されているから
学んで無駄にはならん。
2つの言語を学ぶのは面倒だなんて言ってたらプログラミングなんかできっこないぞ。
常に向上心をもて。

183 :174:2010/11/30(火) 02:26:53
>>177
まてまてwなんで俺がお前を見下したことになってんだよw
まあ、変なとこでちゃちゃを入れた俺も悪いけどさ
ところで>>174>>177別の人なの?


184 :174:2010/11/30(火) 02:27:33
ああ、>>175
>>174は俺だw

185 :デフォルトの名無しさん:2010/11/30(火) 02:30:51
プログラム板は煽りたい性低いから楽しいわw

186 :デフォルトの名無しさん:2010/11/30(火) 02:30:55
>>169-172
笑ったから後で読みやすいようにメモっとこ

187 :デフォルトの名無しさん:2010/11/30(火) 02:31:51
>>185
煽りたい性…煽るなら脇を固めてくれないと白ける

188 :デフォルトの名無しさん:2010/11/30(火) 02:32:43
>>185
XML使えないのをちょっと馬鹿にしたらこれだからなw

189 :デフォルトの名無しさん:2010/11/30(火) 02:34:00
>>186
実はそれコピペで釣られたのは俺らだったっておち

190 :デフォルトの名無しさん:2010/11/30(火) 02:36:26
>>189
軽くググっただけじゃ出なかった。え?コピペじゃなくてマジで書いてんの?

191 :デフォルトの名無しさん:2010/11/30(火) 02:36:55
タイピングの才能があるのは認める

192 :デフォルトの名無しさん:2010/11/30(火) 02:40:04
WPFスレで似たような書き込み見たことある
 524 :デフォルトの名無しさん:2010/11/11(木) 22:09:23
 >>522みたいな人間的に終わっている奴は
 ある程度プログラミングできてもずっとこき使われるだけの平止まりだろな
 根暗で誰からも相手されず、飲みにも誘ってもらえない童貞
 いつか鬱病になって自殺するんだろうな

193 :デフォルトの名無しさん:2010/11/30(火) 02:43:52
陰湿にネチネチとWPF批判を続けてるんだね。
人を貶すときは自分が言われたくない言葉を無意識に選んでしまうということか。

194 :デフォルトの名無しさん:2010/11/30(火) 04:59:21
XAMLはBinding属性とかに指定するマークアップ拡張 (だっけ?) があるから、単純なXMLの知識だけじゃ駄目だと思う。
覚えるべき差分はすごく小さいとは思うけど。


195 :デフォルトの名無しさん:2010/11/30(火) 05:51:16
マークアップ拡張で等価なXAMLツリーやC#コードに変換できないのって何かあるっけ?

196 :妖犬 ◆youkenkF9Y :2010/11/30(火) 08:21:53
test

197 :デフォルトの名無しさん:2010/11/30(火) 08:56:22
フォルダ削除するツール作ったんだけど
手動だと別のプロセスが〜と出て削除できないけど、ツールだと削除できる
特殊な削除の仕方はしてなくて普通にDeleteしてるだけなんだけどどうして削除できるの?

198 :デフォルトの名無しさん:2010/11/30(火) 09:48:28
全く関係なくて
どこかのプロセスでカレントディレクトリになってるか、
中のファイル掴んでるだけじゃないの?

199 :デフォルトの名無しさん:2010/11/30(火) 10:11:49
だからそれをなぜ削除できるのかが知りたいんだよ
わかんねーやつだな

200 :デフォルトの名無しさん:2010/11/30(火) 10:30:16
だからただの勘違いじゃないだろ
本当に中のファイル確実に掴んでる状態で削除できたか確認したのか?

201 :デフォルトの名無しさん:2010/11/30(火) 10:30:58
×だからただの勘違いじゃないだろ
○だからただの勘違いだろ

202 :デフォルトの名無しさん:2010/11/30(火) 10:33:14
確かにコマンドプロンプトから
rmdir e:\hoge
ってやるとエクスプローラでe:\hogeを開いていても
削除できるな

203 :デフォルトの名無しさん:2010/11/30(火) 10:40:31
エクスプローラが気を利かせて、そのファイルを使っているプロセスがある場合には
削除を実行しないようになっているだけじゃ?
FileShare.Writeが指定されない状態でファイルを開いて、それでも消せるならそれは確かに不思議。

204 :デフォルトの名無しさん:2010/11/30(火) 10:41:31
>>202
なるほどやっぱそういうもんか
エクスプローラ上じゃ削除できないファイル名を
コマンドプロントから削除するソフトとかあるもんな

205 :デフォルトの名無しさん:2010/11/30(火) 10:42:17
エクスプローラは掴んでないよ
一番確実なのは別のコマンドプロンプト開いてそこにcd

206 :デフォルトの名無しさん:2010/11/30(火) 11:40:00
C#関係ねぇよ

207 :デフォルトの名無しさん:2010/11/30(火) 11:46:11
現在C#を使用しているのですが、コンボボックスやリストボックスにEnumをDataSouceとして
設定できるのでしょうか?よろしくおねがいいたします。

208 :デフォルトの名無しさん:2010/11/30(火) 12:04:35
Enum.GetValuesとかで配列取得してそれをバインド

209 :デフォルトの名無しさん:2010/11/30(火) 12:06:08
ありがとうございます。

System.Enum.GetValues(typeof(Enum型));
で取得できました^−^

210 :デフォルトの名無しさん:2010/11/30(火) 13:53:14
エクスプローラでフォルダ削除しようとしても使用中とかで削除できないとき
まずフォルダの中野ファイル削除してからフォルダ削除すると
問題なかったりするな。
まぁたまたま偶然そういうのが時々起きてるだけかもしれんが

あとエディタとかメモ帳でファイル開いたままでも
エクスプローラでファイル削除できちゃったりするね。

211 :デフォルトの名無しさん:2010/11/30(火) 14:03:53
あれはロックの関係でしょ
テキストエディタって開いててもファイルをロックしない物もあるし

あと再起動しても消せないファイルがたまーにできることもあるよね
最近は遭遇しなくなったけど

212 :デフォルトの名無しさん:2010/11/30(火) 14:18:21
ロックといえば俺妹

213 :デフォルトの名無しさん:2010/11/30(火) 19:58:25
へえ

214 :デフォルトの名無しさん:2010/11/30(火) 20:05:40
test

215 :デフォルトの名無しさん:2010/11/30(火) 22:49:55
バックグラウンドでツリービューのツリーを生成したいんですが
サブスレッドでフォームにはアクセスできないですよね?
こういう場合いい方法はないでしょうか?

216 :デフォルトの名無しさん:2010/11/30(火) 22:56:32
>>215
仮想モードがどうのって以前見たな
使ったことはないけど

217 :デフォルトの名無しさん:2010/11/30(火) 22:58:02
大きなツリーなら最初に一気に作るんじゃなくて、
子があるかどうか+の制御だけして
後は開いたときに生成した方がいいんじゃないのかな

218 :デフォルトの名無しさん:2010/11/30(火) 23:11:17
invoke のことじゃないのか

219 :デフォルトの名無しさん:2010/11/30(火) 23:17:42
最初のツリーを最小限にして残りを別スレッド+invokeで作ってくと
エクスプローラみたいな感じで作れるね

220 :デフォルトの名無しさん:2010/11/30(火) 23:30:06
そっか。サブスレッド+invokeでよさそうです。
さんくす。

221 :デフォルトの名無しさん:2010/12/01(水) 14:43:37
MSDN マガジン 読みながらMVVMについて調べてるんだけど、
ViewModelBaseみたいな奴らって毎度毎度自分で定義するの?
それともどっかで公開されてるの?

222 :デフォルトの名無しさん:2010/12/01(水) 17:21:22
C#で他鯖のサービスにアクセスしようとすると、
System.ServiceProcess.ServiceControllerを使用しているのだけれど
権限が足らないと言われてしまう

NET USEすればいいのだろうけど、
C#だとどのように打てばいいの?

223 :デフォルトの名無しさん:2010/12/01(水) 17:42:01
>.215
treenode をバックグラウンドで構成して
それを UI スレッドでツリービューに放り込んでやれば良いんじゃないのかな。
バックグラウンドで treenode 構成するとき
すでにツリービューに参照渡されてたらだめだけど。

224 :デフォルトの名無しさん:2010/12/01(水) 18:28:03
>>223
すごい。天才かも。


225 :デフォルトの名無しさん:2010/12/01(水) 20:29:07
>>222
権限のあるユーザーでプログラムを実行すべき。
C#とか関係ない。

226 :221:2010/12/01(水) 20:44:46
記事のアドレス貼ってなかった
http://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx

調べてみたら
MVVM Light Toolkitとか
WPF Model-View-ViewModel Toolkitとかいろいろあるのね
どれを使うべき?

227 :デフォルトの名無しさん:2010/12/02(木) 00:07:35
今、ダントツで人気なのはMVVM Light Toolkitだね。

228 :デフォルトの名無しさん:2010/12/02(木) 00:18:17
公式はPrismでしょ
MVVMというより大規模アプリケーション向けフレームワークだけど

229 :デフォルトの名無しさん:2010/12/02(木) 01:33:17
アプリケーション向けフレームワークですね

230 :デフォルトの名無しさん:2010/12/02(木) 01:33:39
>>227,228
情報ありがとうございます。
MVVMのサンプルいくつか覗いてみましたがそれらもMVVM Light Toolkitを使ってました。
Lightを使ってみて物足りなくなったらPrismにしてみようと思います。

231 :デフォルトの名無しさん:2010/12/02(木) 02:38:24
おれもMVVM Light Toolkitいれてみたけど
DLLの参照で!と出ているんだけど
これってどこを参照しているの?
どこにバイナリを配置すればいいの?

232 :デフォルトの名無しさん:2010/12/02(木) 02:48:19
AnyCPUとかMixedPlatformsとかってなんなんですか?

233 :デフォルトの名無しさん:2010/12/02(木) 02:55:50
AnyCPUってのは32bit(x86)/64bitを決めない感じかな?
AnyCPUでビルドした場合、32bitOS上で動かすと32bitで動いて
64bitOS上で動かすと64bitで動く
これは問題があってAnyCPUでビルドした物を64bit上で動かす場合
場合によってはトラブルの元になる

まあ今のところはwebbrowserを使ってFlashが存在するページを表示した場合か
64bit版のFlash部品がないのでね・・・

234 :デフォルトの名無しさん:2010/12/02(木) 03:06:13
それってintが64bitになることもあるってことですか?
intってSystem.Int32のエイリアスだから32bit固定?

MixedPlatforms と .NET はどうなるんですか?

235 :デフォルトの名無しさん:2010/12/02(木) 03:38:16
C#としてintは32ビット固定。

236 :デフォルトの名無しさん:2010/12/02(木) 03:41:24
c#といえども根底はネイティブ呼び出してるので
その辺がAnyCPUとかの影響がでるんだっけ?

237 :デフォルトの名無しさん:2010/12/02(木) 04:09:43
ポインタのサイズが変わる

238 :デフォルトの名無しさん:2010/12/02(木) 04:37:22
どっちのコードが処理が早いか比べたい場合の良い方法ってある?

239 :デフォルトの名無しさん:2010/12/02(木) 07:24:04
MVVM Light Toolkit
これ全然だめじゃん
VMでMessageBox使おうと思ったら
リファクターでusingディレクティブ作ってくれないじゃないか

240 :デフォルトの名無しさん:2010/12/02(木) 08:23:05
MVVM Light Toolkitを使ってみよう。その2 MVVMの復習 かるあ のメモ/ウェブリブログ
http://karua.at.webry.info/201010/article_1.html

OnSave = new RelayCommand(Save, parameter => true);

これってなんですか?
=>

241 :デフォルトの名無しさん:2010/12/02(木) 08:33:26
こういうことか
parameter=>true

これやればCanExcuteメソッド書かなくていいみたいだけど
なぜこれでいけるのかがわからない

242 :デフォルトの名無しさん:2010/12/02(木) 09:13:24
イベントってアンマネージリソースの扱いなの?
他の参照が外れても残ってる気がするのですが

243 :デフォルトの名無しさん:2010/12/02(木) 09:24:18
>>240-241
ラムダ式で調べるといいよ。

244 :デフォルトの名無しさん:2010/12/02(木) 09:28:40
>>243
ラムダ式で調べるといいよね。

245 :デフォルトの名無しさん:2010/12/02(木) 09:38:06
デリゲートとかラムダ式とかC#はめんどいのー

246 :デフォルトの名無しさん:2010/12/02(木) 09:48:19
any CPU/32bit/64bit はフラグを設定するだけで
それ以外の出力内容は同じだったと思う。

基本的に Any CPU だとその環境に合わせて
CLR がネイティブコード吐くんだったかな。

32bit だとかならず 32bitコードとして吐き出す。
これは過去のデータベースドライバとか
32bit版しかないものを使うためのフラグ。

247 :デフォルトの名無しさん:2010/12/02(木) 10:06:49
>>245
ない言語はもっとめんどいよww

248 :デフォルトの名無しさん:2010/12/02(木) 11:24:57
リッチテキストで文字列表示するときのバインディングの仕方ってこれであってますか?
一応動くんだけど自信がない

<RichTextBox >
<FlowDocument>
<Paragraph>
<Run Text="{Binding テキスト}"/>
</Paragraph>
</FlowDocument>
</RichTextBox>

249 :デフォルトの名無しさん:2010/12/02(木) 11:44:38
あーあ・・・

250 :デフォルトの名無しさん:2010/12/02(木) 11:48:11
>>248 あってるけどRichTextBox使う必要あるの?
>>242
イベントというのはつまるところ、イベントの発生元に受信先のオブジェクトの参照を渡して、
間接的にせよ直接的にせよ発生元が受信先のメソッドを呼んでいるだけだ。
発生元は受信先のオブジェクトの参照を保持してるわけだから、
当然、発生元のオブジェクトがGC対象にならない限り受信先がGC対象になることはない。
わかんなかったらObserverパターンを勉強すれば理解できるよ。イベントはそれを言語に組み込んだだけ。

251 :デフォルトの名無しさん:2010/12/02(木) 13:44:59
WindowsAPIを呼び出すとき、引数や戻り値に構造体や定数が含まれるとき、
それらの詳細な設定値などは何処で調べればよいのでしょうか?
MSDNやPInvoke.NETで調べましたが出てないことが多いんですよね。
定数の宣言とか、SDKのヘッダファイルを参照するとかいう記事も見ましたが、
そういうのはネットで公開されてるのでしょうか?

252 :デフォルトの名無しさん:2010/12/02(木) 13:51:46
設定値っていうと、この引数にNULL渡しても良いかどうかって話に聞こえる

定義なら.hが一番確実さね
Windows SDK 自体は普通にダウンロードできる
まあほとんどはネットで検索すれば見つかるけど
日本語じゃないと無理とか言う奴はシラネ

253 :デフォルトの名無しさん:2010/12/02(木) 16:16:11
var a = new Person{
Age=20,
Name="ひろゆき",
};

ここの最後のセミコロンをよく付け忘れる。
あとAge=20;
みたいにセミコロンにしちゃう。
なんてこったい

254 :デフォルトの名無しさん:2010/12/02(木) 17:08:22
ヨッシー「でっていう」

255 :デフォルトの名無しさん:2010/12/02(木) 17:42:12
MSDN のWindows API関連のドキュメントは
いまでは英語だけになっちゃったから
日本語含めて検索かけてると絶対にかからないよ。

Windows SDK 7.0 のドキュメントだけでも入れておけば
見やすくていいんじゃないかな。
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=71DEB800-C591-4F97-A900-BEA146E4FAE1

SDK 7.1 がでてるんだけど
そっちには 7.0 に入ってるようなドキュメントは入ってない。

違いは、コンパイラが VC2008 のものから VC2010 のものにかわったことと
Windows Update のエラーコードとか定義したヘッダファイルの追加と
あともう一つなんだったかのへだファイルの追加と
.NET 3.5 から .NET 4 への変更だから

.NET 4 使わないのなら 7.0 でおk

256 :デフォルトの名無しさん:2010/12/02(木) 17:49:22
>>253
JavaScriptもやってるとついAge:20とか"Name"="ひろゆき"とか書いちゃったりする

257 :デフォルトの名無しさん:2010/12/02(木) 17:55:01
スニペット自作たのしいな

258 :デフォルトの名無しさん:2010/12/02(木) 18:04:21
Windows API 利用するときdllimport をどう書くかは
.NET Framework のソースコードが参考になる。

259 :デフォルトの名無しさん:2010/12/02(木) 18:27:43
ソースコードが参考になるね。

260 :デフォルトの名無しさん:2010/12/02(木) 18:33:09
このオウム返ししてる人はBOTかなんかですか?

261 :デフォルトの名無しさん:2010/12/02(木) 18:34:42
このオウム返ししてる人はBOTかなんかですか?

262 :デフォルトの名無しさん:2010/12/02(木) 18:35:28
なんでそこで
このオウム返ししてる人はBOTかなんかだね。
にしないんだ

263 :デフォルトの名無しさん:2010/12/02(木) 18:46:01
このオウム返ししてる人はBOTかなんかですか?

264 :デフォルトの名無しさん:2010/12/02(木) 18:47:33
このオウム返ししてる人はBOTかなんかだね。

265 :デフォルトの名無しさん:2010/12/02(木) 19:32:03
人力BOTという暇人の極みに居る御方です。

266 :デフォルトの名無しさん:2010/12/02(木) 19:44:55
codeplexとかにSDKヘッダファイル指定して
解析結果をP/Invoke形式で吐くようなのあった気がする

267 :デフォルトの名無しさん:2010/12/02(木) 20:45:37
人力BOTという暇人の極みに居る御方です。

268 :デフォルトの名無しさん:2010/12/02(木) 21:13:03
すいません。
System.Collections.Generic名前空間の、Queue<T>使って、Stringを格納してるのですが、foreachでテキストファイルへ書き出しすると、キューへ入れた順に出力されます。
これをキューへ入れた新しいほうから順に出力させたいのですが、どうすればできるのでしょうか?


269 :デフォルトの名無しさん:2010/12/02(木) 21:18:09
それキューやないスタックや

270 :デフォルトの名無しさん:2010/12/02(木) 21:18:36
foreach (var item in queue.Reverse())
queueには影響を与えない

271 :デフォルトの名無しさん:2010/12/02(木) 21:19:21
Stackに入れ直すかLinqのReverse使うかお好きな方で

272 :デフォルトの名無しさん:2010/12/02(木) 21:27:33
ロガー的な使い方するので、ある件数たまると古いほうから消していかないといけないので、キューを選択しました。
でも、ファイルへ出力する時は新しいほうから出力する必要がありました。
queue.Reverse<String>() でうまく行きました。
ありがとうございました。


273 :デフォルトの名無しさん:2010/12/02(木) 21:54:09
1回のGCが即プチフリになるような環境なので、使うものは最初に確保して
あとはずっとそれを使いまわすようなプログラムを組んでいるのですが、
yieldつかったコルーチン使う場合、IEnumerator<T>.MoneNext()呼ぶと
鬼のようにヒープを消費するんですが、これは回避できないのでしょうか?


274 :デフォルトの名無しさん:2010/12/02(木) 22:20:18
初心者板で聞く内容じゃないようなw
yieldつかったコルーチンに問題があるんじゃないの?

275 :デフォルトの名無しさん:2010/12/02(木) 22:20:48
yieldはGetEnumeratorで列挙子が作られるときにヒープを消費するけどMoveNextは関係ないはず
yieldの内容次第

276 :デフォルトの名無しさん:2010/12/02(木) 22:49:33
MoveNextの中身はコルーチンから自動生成されるからyield使ってるところを見直す。
それでも分からなきゃリフレクターでどんなコード生成されてるか覗いてみれ

277 :デフォルトの名無しさん:2010/12/02(木) 23:07:53
MSDNの説明のわかりづらさは異常
あの説明でわかるような人はそもそも見る必要ないだろ
っていうような説明のページばっかり

278 :デフォルトの名無しさん:2010/12/02(木) 23:09:44
え、めっちゃ見るけど

279 :デフォルトの名無しさん:2010/12/02(木) 23:25:10
ある程度分かっている人がリファレンス的にみる分には便利だけど


280 :デフォルトの名無しさん:2010/12/02(木) 23:31:48
メソッドの挙動調べるのにmsdn見ちゃダメって言われたら
もうソースコードしか頼るとこないじゃん
個人ブログじゃ間違いがあるかもしれないし

281 :デフォルトの名無しさん:2010/12/02(木) 23:40:07
MSDNはハウツー系のページが糞すぎる

282 :デフォルトの名無しさん:2010/12/02(木) 23:54:36
ここでそんなこと言われてもな。日本語で説明あるだけでも良心的だぜ

283 :デフォルトの名無しさん:2010/12/02(木) 23:55:14
基礎が理解できてればMSDNほど正確で集約された情報源は他にない。
たまーに間違ってたり英語版にしか書いてない情報あるけどねw

284 :デフォルトの名無しさん:2010/12/02(木) 23:56:49
時々メンバ名しか書いてないクラスもあるけどな

285 :デフォルトの名無しさん:2010/12/03(金) 00:02:56
本当に必要としてる情報はだいたい英語版しかない。w

286 :デフォルトの名無しさん:2010/12/03(金) 00:06:08
解説サイトも英語のほうがいい。
でも英語わからん。
いちいち辞書で
variableってどういう意味?
とか調べちゃう。
高校中学時代にもっと英語勉強しておけばよかった

287 :デフォルトの名無しさん:2010/12/03(金) 00:10:13
>>286
同意。俺ももうちょっと勉強しておけば
statiku voido mein(storingu...なんて書いて笑われずに済んだんだよなぁ。

288 :デフォルトの名無しさん:2010/12/03(金) 00:15:50
>>287
スタチクってなんだよw
プログラムで使うキーワードに関しては単純に記憶力の問題だろ
あと英語のリーディングなんて努力すればいつでも習得できるぞ
もっと勉強しとけばよかったなんていって逃げてないで今すぐ始めなさい

289 :デフォルトの名無しさん:2010/12/03(金) 00:17:55
プログラムやるなら英語できないと。
特にC#は日本語でアクセスできる情報量と、英語でアクセスできる情報量が10倍以上は違うと思う。
CとかC++なら日本語でもそれなりだけど。

290 :デフォルトの名無しさん:2010/12/03(金) 00:20:01
プログラムとか技術的な文章で使われる英語はそんなに難しくないからな
俺は読みならサクサクいける。でも海外ドラマとか何言ってるか全然分からんw

291 :デフォルトの名無しさん:2010/12/03(金) 00:32:39
単語の正確な綴りが思い出せなくてもプログラムが書けるインテリセンスは偉大だと思う

292 :デフォルトの名無しさん:2010/12/03(金) 00:34:43
偉大だと思うね

293 :デフォルトの名無しさん:2010/12/03(金) 00:37:11
自分でメソッドとか変数とかの名前作るときに大変じゃないか。
既存のクラスを利用するならいいけど。

たとえばAngleというスペルをAngelって書いたらかっこわるいだろ。

294 :デフォルトの名無しさん:2010/12/03(金) 00:38:18
英語分かんねー!と言いつつ翻訳サイトで調べながら読んでたら、何となく言ってる事が分かるようになってきた。
でも、リスニングは全然ダメだからイベントでのオンライン中継が理解できねぇ…

295 :デフォルトの名無しさん:2010/12/03(金) 00:38:42
エンジェルw
ある意味かっこいいな

296 :デフォルトの名無しさん:2010/12/03(金) 00:50:52
英語ベースの言語を日本語で説明するのは無理があると思うな
俺は英語のほうがわかりやすい

297 :デフォルトの名無しさん:2010/12/03(金) 01:00:39
ふーん

298 :デフォルトの名無しさん:2010/12/03(金) 01:02:32
以下英語できる自慢禁止

299 :デフォルトの名無しさん:2010/12/03(金) 01:03:59
英語でおk

300 :デフォルトの名無しさん:2010/12/03(金) 01:04:57
You is big fool man.

だったっけ?

301 :デフォルトの名無しさん:2010/12/03(金) 01:12:51
英語できるのが自慢になるのか?そりゃすまなかったな

302 :デフォルトの名無しさん:2010/12/03(金) 01:15:21
お気になさらず
英語でどうぞ



303 :デフォルトの名無しさん:2010/12/03(金) 01:53:33
いんくるぅど すたぢお えいち

304 :デフォルトの名無しさん:2010/12/03(金) 01:55:02
Is My English AweSome? So Sorry

305 :デフォルトの名無しさん:2010/12/03(金) 01:59:46
staticでnewするメソッドかプロパティ作っておけば便利なんだね。

class MySample{
int year;
static public MySample NowYear(){
return new MySample{year=2010};
}
}

こんな感じで。

306 :デフォルトの名無しさん:2010/12/03(金) 01:59:48
if(英語ができない人==低学歴)
if(英語ができない人==海外サイトを閲覧できない)
if(英語ができない人==仕事ができない)
return 無能;
return エリート;

307 :デフォルトの名無しさん:2010/12/03(金) 02:40:18
All your base are belong to us.

308 :デフォルトの名無しさん:2010/12/03(金) 03:01:27
>>305
staticとpublicの順が逆
あとその例なら定数のほうがいいんじゃない?Color.Emptyみたいに

309 :デフォルトの名無しさん:2010/12/03(金) 03:23:24
インテリセンスでたまに
候補にstringとString
objectとObject
が出てくるんだけどこの頭が大文字/小文字の二つって違いあるの?

310 :デフォルトの名無しさん:2010/12/03(金) 03:24:23
string 文字列
String クラス

じゃなかったっけ?
色みてみなよ

311 :デフォルトの名無しさん:2010/12/03(金) 03:26:04
C#キーワードになってるのが小文字、
.NET の System 名前空間のクラスの方が大文字。

キーワードは .NET クラスへのエイリアスなので、実質は一緒。

312 :デフォルトの名無しさん:2010/12/03(金) 12:22:31
だれかNowYearに突っ込んでやれよ

313 :デフォルトの名無しさん:2010/12/03(金) 12:34:06
ナウイやん?

314 :デフォルトの名無しさん:2010/12/03(金) 14:23:43
正確なのか知らんが分かりにくい文章だ。

315 :デフォルトの名無しさん:2010/12/03(金) 14:24:59
thread.sleep(1)とdoevents()は何が違いますか?

316 :デフォルトの名無しさん:2010/12/03(金) 15:39:32
List<filePath>でファイルパスが格納されているリストを最終更新順にソートするには
どうしたらいいでしょうか?

List<filePath,lastWriteTime>のように2値のリストを作った後に並び替えをすればいいんだろうけど・・・
上記のList<filePath>のみで行うにはどうすればいいですか・

317 :デフォルトの名無しさん:2010/12/03(金) 15:41:12
間違えた、KeyValue< , >とかだね><

318 :デフォルトの名無しさん:2010/12/03(金) 15:43:45
>>316
ほい
http://dobon.net/vb/dotnet/file/filetimestamp.html

319 :デフォルトの名無しさん:2010/12/03(金) 15:47:48
list.Sort((x, y) => x.LastAccessTime.CompareTo(y.LastAccessTime))

320 :316:2010/12/03(金) 15:57:08
>>318さんと>>319さんのを参考に修正してみました

filesPath.Sort((x, y) => File.GetLastWriteTime(x).CompareTo(File.GetLastWriteTime(y)));

としてみました。ありがとうございます^−^

321 :316:2010/12/03(金) 16:55:14
あいかわらずだねw^−^



322 :デフォルトの名無しさん:2010/12/03(金) 18:52:22



323 :デフォルトの名無しさん:2010/12/03(金) 20:36:54
TEST

324 :デフォルトの名無しさん:2010/12/03(金) 20:59:48
リストのインスタンスが入れ替わってもよければ>>316で言ってるようにいったん別のリストに入れるか
filesPath = (from path in filesPath
 select new KeyValuePair<DateTime, string>(File.GetLastWriteTime(path), path) into pair
 orderby pair.Key
 select pair.Value).ToList();
みたいな風にしたほうがよさそうな気がする
比較関数中でファイルのAPI呼ぶのは効率悪そう

325 :デフォルトの名無しさん:2010/12/03(金) 21:05:09
>>324
filesPath.OrderBy(file => File.GetLastWriteTimem(file)).ToList()
で十分

326 :デフォルトの名無しさん:2010/12/03(金) 21:08:04
すばらしい

327 :デフォルトの名無しさん:2010/12/03(金) 22:28:45
>>315
Windowアプリケーションにはメッセージループというものがあります。これは、
画面がクリックされるなどしたらそのイベントハンドラを呼び出すものです。
DoEventsはメッセージループを処理します。その結果イベントハンドラが
呼ばれることがあります。
Thread.Sleepはその場で少し休むだけでイベントは処理されません。

328 :デフォルトの名無しさん:2010/12/04(土) 00:33:17
>>324
そういう考えならSortedList<DateTime, string>を使うのも手だな
まあ追加してから変更があった場合に対応できないけど

329 :デフォルトの名無しさん:2010/12/04(土) 01:02:17
型変換がわけわかんね

intのデータをbyte配列に入れるとかまたその逆とか
stringのデータをbyte配列に入れるとかまたその逆とか

C言語でいうところの

memset(&data[100],0,size-100);

的な100番地から後ろをクリアみたいなことしたいときにどうするだとか
とにかく知恵と勇気でどうにもならない言語で困る

なんか型変換(型解決?)一覧表みたいなのがほしいね
どっかにない?
なかったら俺がアフィ目的で作ってお金稼ぐけど

330 :デフォルトの名無しさん:2010/12/04(土) 01:13:49
>>329
>intのデータをbyte配列に入れるとかまたその逆とか
BitConverter.GetBytes/BitConverter.ToInt32
>stringのデータをbyte配列に入れるとかまたその逆とか
BitConverter.GetBytes/BitConverter.ToString
指定されたエンコーディングのバイト配列が欲しいならEncoding.GetBytes/Encoding.GetString

>memset(&data[100],0,size-100);
そういうのは危険だからできないようになってる。
unsafeなら可能だけど一括でクリアするような用途では誰も使わない。

>なかったら俺が作る
需要がない。古い考え方を捨てるとこから始めようか。

331 :デフォルトの名無しさん:2010/12/04(土) 01:14:45
>>329
そんな中途半端な知識で作るとかマジ迷惑だから勘弁してくれ

332 :デフォルトの名無しさん:2010/12/04(土) 01:16:50
>>329
それ、知恵と勇気じゃない。
無知と無謀。

エンディアンの違いとか、
バイトアラインの違いとか、
int のサイズの違いとか、
色んなものに悩まされた結果、memset は使えないという英知にようやく到達したのに。

333 :デフォルトの名無しさん:2010/12/04(土) 01:37:22
知恵と勇気で勝ち残れ

334 :デフォルトの名無しさん:2010/12/04(土) 01:39:49
メダロットとはまた懐かしいネタを

335 :デフォルトの名無しさん:2010/12/04(土) 01:45:21
>>330
いちいちそんなクラス知ってないといけないっつーのがなんかすげー嫌だよ

>そういうのは危険だからできないようになってる。
なんで?
すげー使うのに
かりにやりたいときはいちいち全部コピーしないといけないのか?
ウンコー

>需要がない
あるよ
絶対ある
だって現にBitConverterとか長ったらしい名前のクラス知らないとこの操作できないだろこの言語

336 :デフォルトの名無しさん:2010/12/04(土) 01:46:42
> クラス知らないと
そういってオレオレライブラリ作られる方が面倒って直ぐ分からないですかね

337 :デフォルトの名無しさん:2010/12/04(土) 01:47:32
BitConverterが明らかにC#使って書かれていないであろう事実にウケル

338 :デフォルトの名無しさん:2010/12/04(土) 01:55:13
>>335
だったらC#じゃなくてC++/CLI使えばいいんじゃない?
.netを利用しつつC言語の資源も使いまわせるわけだし

339 :デフォルトの名無しさん:2010/12/04(土) 01:56:40
C++/CLIとかきもすぎる
使ってみて一時間でアンインスコしたわ。

340 :デフォルトの名無しさん:2010/12/04(土) 01:57:23
>>335
20年くらい寝てたの?

341 :デフォルトの名無しさん:2010/12/04(土) 01:59:49
C#でBitConverterは作れないからな
他にも作れないものありそう

342 :デフォルトの名無しさん:2010/12/04(土) 02:04:18
>>339
もう自分で言語作れよ

343 :デフォルトの名無しさん:2010/12/04(土) 02:06:39
C--か

344 :デフォルトの名無しさん:2010/12/04(土) 02:08:07
いつもの荒らしが騒いでるんだろ。
僕は馬鹿ですとアピールして何がしたいのやら?

345 :デフォルトの名無しさん:2010/12/04(土) 02:08:15
>>335
>>332

346 :デフォルトの名無しさん:2010/12/04(土) 02:08:28
C#が不便なら他を使えばいいだけだ。
1つの言語だけを使わなきゃいけないわけでもないし。

BitConverterで済むこと程度なら、ちょっと調べりゃいいことだと思うけどな。

347 :デフォルトの名無しさん:2010/12/04(土) 02:09:13
>>341
unsafe使えば作れるんじゃない?

348 :デフォルトの名無しさん:2010/12/04(土) 02:10:58
作れるね。

349 :デフォルトの名無しさん:2010/12/04(土) 02:12:31
>>329>>335
第二のCOBOLer もはや老害。

350 :デフォルトの名無しさん:2010/12/04(土) 02:14:47
>>344
あの子はCなんて使えないだろ

351 :デフォルトの名無しさん:2010/12/04(土) 02:19:06
>>350
この子もC使えないと思う。
まともなC使いならこの程度の問題で困るわけない。質問書く時間で検索してMSDN見て終わり。

352 :デフォルトの名無しさん:2010/12/04(土) 02:26:32
memset(&data[100],0,size-100); が使えて
BitConverterが使えないってのも不思議な話ではあるな
結局思い通りにコードが書けなくて愚痴りたいだけなんだろ
まあそれで気が済むなら好きなだけ書きこんでいってくれ

353 :デフォルトの名無しさん:2010/12/04(土) 02:34:28
>100番地から後ろをクリアみたいなことしたいときにどうするだとか

ライブラリじゃなくて基本文法だと思うが。
for (var i = 100; i < ar.Length; i++) ar[i] = (byte)0;

それか配列なんだからArrayクラス調べれば
Array.Clear(ar, 100, ar.Length - 100);
ぐらいすぐ見つかるだろ。

354 :デフォルトの名無しさん:2010/12/04(土) 02:35:35
アレィ見てたのね〜

355 :デフォルトの名無しさん:2010/12/04(土) 03:47:35
うむ

356 :デフォルトの名無しさん:2010/12/04(土) 10:13:03
コールバックを受信するウインドウのハンドルを取得するのに、
VBではForm1.hWndでいいようなのですが、C#はどうすればいいですか?

357 :デフォルトの名無しさん:2010/12/04(土) 10:17:27
Formクラスのプロパティ一覧でハンドルを検索するくらいは当然してから質問しているのですよね?
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.form_properties.aspx

358 :デフォルトの名無しさん:2010/12/04(土) 10:31:51
ありがとうございます。IDEのプロパティ一覧しか見てませんでした。

359 :デフォルトの名無しさん:2010/12/04(土) 10:46:39
属性はC++のマクロによる言語拡張と同じイメージでよいのですか?

360 :デフォルトの名無しさん:2010/12/04(土) 10:49:41
ぜーんぜん

361 :デフォルトの名無しさん:2010/12/04(土) 10:54:27
へえ

362 :デフォルトの名無しさん:2010/12/04(土) 11:22:45
組み込みカスタム属性には[ThreadStatic]のように付けとくだけで実行結果が変わるものもあるけど、
一般的には単なる付加情報で、ライブラリ側で意識して属性をチェックしない限り特に意味はない

自作カスタム属性の用途としては、エンティティのプロパティにDBやファイルの定義を持たせることや、
ContextBoundObjectやRealProxy派生クラスでメソッド呼び出し前後にログ出力とかが代表的かな

363 :デフォルトの名無しさん:2010/12/04(土) 11:26:21
実行結果も、「コンパイラが認識する付加情報」と考えるべきで、
基本的には単なる付加情報。

他には Visual Studio が認識する付加情報になるものもあるし、
自作の場合は、自作のライブラリがリフレクションでその情報読み出す、
というもの。

364 :デフォルトの名無しさん:2010/12/04(土) 12:17:22
初心者的なスレ・・・・か?

365 :デフォルトの名無しさん:2010/12/04(土) 12:49:39
>>353
クリアだけだったらそれでいけるけど
関数で引数に100番地から後ろに値を入れてもらいたい的なことができないから不便なんだよね

366 :デフォルトの名無しさん:2010/12/04(土) 12:59:24


367 :デフォルトの名無しさん:2010/12/04(土) 13:00:25
C言語でいうとこんなん

unko(&p[100]);

関数unkoが終わるとpの100番地から後ろに値が入ってる

368 :デフォルトの名無しさん:2010/12/04(土) 13:05:28
int配列に入ってる文字コードを文字列にしたいときの絶望感

369 :デフォルトの名無しさん:2010/12/04(土) 13:07:09
それは関数の実装に依存していて言語の機能でも何でもねえと思いますが

370 :デフォルトの名無しさん:2010/12/04(土) 13:08:10
>>369
んじゃ、C#だとどうやったらいいの?

371 :デフォルトの名無しさん:2010/12/04(土) 13:13:53
369じゃないと368の話がよくわからないのだけど

var array = new[] { 97, 98, 99 };
var str = new String(array.Select(i => (char)i).ToArray()); // abc

とか……?

372 :デフォルトの名無しさん:2010/12/04(土) 13:14:00
実装に依存してるといってんだろ
unkoの中で何をどうしてるか知らないのにお前の頭の中想像して書けってのかドアホ

373 :デフォルトの名無しさん:2010/12/04(土) 13:19:12
C#なら普通はvoid ICollection<T>.CopyTo(T[] array, int arrayIndex)って感じのシグネチャにするんじゃねーの?

374 :デフォルトの名無しさん:2010/12/04(土) 13:25:15
100番地から後ろ埋めるだけなら

void unko(Array a, int s){
for (var i = s; i < a.Length; i++) a[i] = 100;
}

で終わりよな
説明が下手糞かつ片手落ちすぎて何が言いたいのかまったく伝わってこないね

375 :デフォルトの名無しさん:2010/12/04(土) 13:27:18
なんでCには組み込みの正規表現がないの?と同レベルの言いがかりだな。
誰かが一言でもC互換と言ったのかねぇ?
俺は知らないけど。

376 :デフォルトの名無しさん:2010/12/04(土) 13:28:25
配列にオフセットつけたいんでしょ
ArraySegment<T>なんてのもあるが使ってるの見たことない
普通は>>373

377 :デフォルトの名無しさん:2010/12/04(土) 13:30:12
名前がよくないんだろう

378 :デフォルトの名無しさん:2010/12/04(土) 13:32:38
>>374
やっぱ、インデックスいるよなぁ
っつーことは汎用的に処理したいもん全部にインデックスいるのか・・・死んだ・・・orz

379 :デフォルトの名無しさん:2010/12/04(土) 13:38:07
100以降すべての要素に対する処理なら、Cの配列だと要素数渡さないといけないじゃん
.NETではそれはいらないからどっちもどっちだろ

380 :デフォルトの名無しさん:2010/12/04(土) 13:38:47
なんか配列の一部だけ取り出す機能ってあるじゃん
名前覚えてないけど
あれはあると便利だなあ

具体的に言うとGoのスライス

381 :デフォルトの名無しさん:2010/12/04(土) 13:39:55
入力だけに使うならIEnumerable<T>で受けろ
スキップとかスライスとか射影とか自由自在

382 :デフォルトの名無しさん:2010/12/04(土) 13:40:16
Cの方の例の100ってインデックスじゃないんだ
へえ

hoge(
 &p[
      100 //←これ
 ]
)

383 :デフォルトの名無しさん:2010/12/04(土) 13:41:46
列挙子を使うのはフィルタするコストとか値型の扱いに難があるからヤダ

384 :デフォルトの名無しさん:2010/12/04(土) 13:44:27
Cに挫折したから簡単とされるC#に移ってきて何これ状態の人っぽい。

385 :デフォルトの名無しさん:2010/12/04(土) 13:48:16
>>382
いや、こういうドンブリな関数が結構あるんだよ

unko(&p[100]);//実は後ろ30〜50個にとある計算の値を入れる

unkoはC言語から移植した関数でunkoに引数は1個しかねーわけよ
なのでこれからこれ系の関数全部に開始インデックスを入れる作業をしなきゃならんわけ

386 :デフォルトの名無しさん:2010/12/04(土) 13:51:36
ゴミの移植作業とカスごいっすね
あこがれないなー(笑)

387 :デフォルトの名無しさん:2010/12/04(土) 13:52:16
>>385
もしかしたらC++/CLIで超幸せに慣れるんじゃね
ちょっと調べてみ

388 :デフォルトの名無しさん:2010/12/04(土) 13:55:44
どうせポインタのインクリメントとかif (*p)とかも全部修正しないといけないだろ
こういうの作ってCのコードを無理やり移植したことある
struct ArrayPtr<T> {
 public T[] Array; public int Offset;
 public T item[int index] { return Array[Offset + index]; }
 ++, ==, != , +, -などの演算子のオーバーロード
 T[]からのimplicit operator
}

389 :デフォルトの名無しさん:2010/12/04(土) 13:56:09
なんでC#に移植しようと思ったんだろう

390 :デフォルトの名無しさん:2010/12/04(土) 13:56:50
>>387
いや、なんかC#に移行してもっとPGコストの低い人間に仕事やらせたいって話らしい
.netframeworkでできりゃいいってもんじゃなくて

なのでこの仕事終わったらクビなわけですよ
自分の十字架もって坂登ってる状態

初心者本片手に移植とかちっともすすまねーよ

391 :デフォルトの名無しさん:2010/12/04(土) 13:57:48
そいつは煽って悪かったな

392 :デフォルトの名無しさん:2010/12/04(土) 14:00:57
無理に移植したコードなんて余計に保守が困難になるだろ
>>388みたいなことしたらそれこそ誰にも触れないコードになるわ

393 :デフォルトの名無しさん:2010/12/04(土) 14:02:26
移植なら機能列挙してリライトした方が保守性がいいけどな
経験上

394 :デフォルトの名無しさん:2010/12/04(土) 14:04:33
>>392
でもこれ>>388よくね?

とか思ったけどC#ビギナーにソースみせて('A')ワカンネ・・・って言われても困るから
普通に組まないと金もらえなさそう

395 :デフォルトの名無しさん:2010/12/04(土) 14:12:22
388=392だけど
>>388は結構うまくいって、if (*p)をif (p[0] != 0)に置き換えたりする程度の修正で済んだよ
二度と触らない前提ならいいんじゃない

396 :デフォルトの名無しさん:2010/12/04(土) 14:15:08
折角C#にしても扱い方がC臭かったら意味無いだろw

397 :デフォルトの名無しさん:2010/12/04(土) 16:47:43
unsafe使えって
C側が
void test(int *arr){
  for(int i = 0; i < 10; i++){
    arr[i] = 100;
  }
}
こんなんだったら、C#はこんな感じでラッパー作ってやればいい
[DllImport("////.dll")]
public static extern void test(IntPtr arr);

static void CallTest(int[] arr, int offset) {
  unsafe {
    fixed (int* z = arr) {
      test((IntPtr)(&z[offset]));
    }
  }
}
static void Main(string[] args) {
  int[] arr = new int[100];
  CallTest(arr, 10);
}

398 :デフォルトの名無しさん:2010/12/04(土) 16:53:06
C#にするのはポインタとかわからなくてもメンテできるようにしたいんだろ
本末転倒じゃねえか

399 :デフォルトの名無しさん:2010/12/04(土) 17:05:30
unsafe使うんだったら、unsafe static classにCのコードを丸ごと放り込んで、
mallocをMarshal.AllocHGlobalに、静的配列をstackallocに置き換えてやれば
だいたいそのまま動くんじゃね
それこそ本末転倒だけど

400 :デフォルトの名無しさん:2010/12/04(土) 17:15:07
つか配列のサイズくらい渡そうぜ

401 :デフォルトの名無しさん:2010/12/04(土) 17:29:15
作り直せば?

402 :デフォルトの名無しさん:2010/12/04(土) 19:04:57
WinAPIでWindowProc関数を呼び出すために、
SetWindowlong関数の引数としてWindowProcのアドレスが必要なのですが、
VBならAdressOf演算子で取得できるのですが、C#の場合どうすればいいのでしょうか?
またこの場合のWindowProcは、C#のパブリックなメソッドでいいのでしょうか?
クラスにしないといけないのでしょうか?

403 :デフォルトの名無しさん:2010/12/04(土) 19:06:39
VBでもC#でもWndProcメソッドをオーバーライドする

404 :デフォルトの名無しさん:2010/12/04(土) 19:09:24
AddressOfを使う必要はなくて、delegateをそのまま渡せる。

405 :デフォルトの名無しさん:2010/12/04(土) 19:19:06
delegateってのがよくわからんよな

406 :デフォルトの名無しさん:2010/12/04(土) 19:22:46
あ、VBもC#と同じようにメソッド名をデリゲートとして扱えるようになったのか知らんかった。

407 :デフォルトの名無しさん:2010/12/04(土) 19:23:27
Cなんかのコールバックだよ

408 :デフォルトの名無しさん:2010/12/04(土) 19:33:49
WindowProcを直接使う場面はほとんど無いだろ
コントロールに流れてきたものはWndProcで拾えるし
対応する.NETのコントロールを持たない場合はNativeWindowを使う

409 :デフォルトの名無しさん:2010/12/04(土) 19:39:17
デリゲートを関数ポインタとしてpinvokeで渡すのは結構危なくて
生存期間に注意して使わないとデリゲートが先にGCされて死ぬ

410 :デフォルトの名無しさん:2010/12/04(土) 19:43:09
え?
受け取る方はメソッドのアドレスを受け取るだけだからGCは無関係じゃないの常識で考えて。

411 :デフォルトの名無しさん:2010/12/04(土) 19:43:37
GC.SuppressFinalizeじゃだめなん?

412 :デフォルトの名無しさん:2010/12/04(土) 19:52:37
GC関係あるよ。

413 :デフォルトの名無しさん:2010/12/04(土) 20:01:31
ああ、インスタンスメソッドのデリゲート渡した場合は確かにそうか。
可能性としてはありえるけど、でもそんなアホなミスするかね。

414 :デフォルトの名無しさん:2010/12/04(土) 20:01:35
ふー、着いた

415 :デフォルトの名無しさん:2010/12/04(土) 20:06:38
デリゲートの運用が終了するまで、デリゲートへの参照は保持する必要がある
さもないと>>409 この点さえ気を使えば危なくない


416 :デフォルトの名無しさん:2010/12/04(土) 20:13:57
だから、ネイティブコードが受け取るのはただのメソッドのアドレスだから(当たり前)
それは全然ない。

417 :デフォルトの名無しさん:2010/12/04(土) 20:20:42
何いってんの? バカ?

418 :デフォルトの名無しさん:2010/12/04(土) 20:22:00
で、デリゲートって何よ?
そんなの使ったこと無い

419 :デフォルトの名無しさん:2010/12/04(土) 20:24:10
必要がなければ使わなくていいよ。

420 :デフォルトの名無しさん:2010/12/04(土) 20:26:00
そんなガサツなことではいかん
もっと優しく繊細にだな

421 :デフォルトの名無しさん:2010/12/04(土) 20:30:14
GCの考え方自体がガサツだよ

422 :デフォルトの名無しさん:2010/12/04(土) 20:30:52
デリケートな部分のかゆみに

423 :デフォルトの名無しさん:2010/12/04(土) 20:34:51
>>416

class NativeDelegateProvider
{
private int recv = 0;

public int nativeCallBack(int param){
this.recv = param;
}
}

こんなのも考えられるけど
ホントーにあぶなくナインすか?

424 :デフォルトの名無しさん:2010/12/04(土) 20:37:04
ちなみにnyaruruちゃんがそんなことを言っていた気がします

425 :デフォルトの名無しさん:2010/12/04(土) 20:38:57
言ってる意味がわかりません

426 :デフォルトの名無しさん:2010/12/04(土) 20:41:12
じゃあお勉強してから発言してね

427 :デフォルトの名無しさん:2010/12/04(土) 20:45:48
>>416
そのアドレスが回収されちゃうってことだよ頭わりーな。

428 :デフォルトの名無しさん:2010/12/04(土) 20:46:01
どれがどれへのコメントかまったくわからん。

429 :デフォルトの名無しさん:2010/12/04(土) 20:46:23
安価つけて喋れくそがき

430 :デフォルトの名無しさん:2010/12/04(土) 20:49:39
http://msdn.microsoft.com/ja-jp/library/7esfatk4.aspx
たとえば、次のコードは、SetChangeHandler メソッドに渡される cb オブジェクトへの参照が、Test メソッドの有効期間を超えて cb を有効な状態に維持できるわけではないため、正しくありません。
cb オブジェクトがガベージ コレクションによって収集されると、SetChangeHandler に渡された関数ポインターは無効になります。

へえあどれすだからかんけいないんだ(棒)

431 :デフォルトの名無しさん:2010/12/04(土) 20:52:00
>>410>>416 の発言をした方、>>430 についてのコメントをどうぞ。

432 :デフォルトの名無しさん:2010/12/04(土) 20:52:10
* あ ど れ す は   む か ん け い だ よ *

433 :デフォルトの名無しさん:2010/12/04(土) 20:53:00
今お勉強中だから戻ってきませんよ。

434 :デフォルトの名無しさん:2010/12/04(土) 20:55:47
>>430
だから、それはオブジェクトのインスタンスそのものがGCされるから問題なわけ。
デリゲートじゃないでしょ。

アホかと言いたくなる。

435 :デフォルトの名無しさん:2010/12/04(土) 20:57:09
ぽかーん

436 :デフォルトの名無しさん:2010/12/04(土) 20:57:48
413 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/04(土) 20:01:31
ああ、インスタンスメソッドのデリゲート渡した場合は確かにそうか。
可能性としてはありえるけど、でもそんなアホなミスするかね。


じぶんでこんなはつげんしといてかおまっかすなぁ

437 :デフォルトの名無しさん:2010/12/04(土) 20:58:12
>>434
バーカw

438 :デフォルトの名無しさん:2010/12/04(土) 20:58:37
>>434
ぽかーん

439 :デフォルトの名無しさん:2010/12/04(土) 20:58:48
いや>>434の指摘は正しいんだが、>>430のコードが間違ってるんじゃないの?
http://msdn.microsoft.com/en-us/magazine/cc164193.aspx
このへん読む限りでは、デリゲートのインスタンスがGCされるとアクセス違反になるとしか読めないし
staticだろうが実際そうだったと思うんだが

440 :デフォルトの名無しさん:2010/12/04(土) 21:00:31
MSDNにもそう書いてあるのに何が「ぽかーん」だろ。
馬鹿丸出しな奴が今日は多いね

441 :デフォルトの名無しさん:2010/12/04(土) 21:04:27
どうみてもお前がバカ。

442 :デフォルトの名無しさん:2010/12/04(土) 21:04:40
ところで、オブジェクトが死んでるのにデリゲートだけ生きてる状態ってあるの?
詳しい人教えてよ。

443 :デフォルトの名無しさん:2010/12/04(土) 21:06:49
>アンマネージ コードによって保持されるマネージ デリゲートへの関数ポインターを参照する場合、

ネイティブコードに渡される関数ポインタはデリゲートのものなんだろ
デリゲート回収されたらまずいようにしか受け取れないけどな
ははは

444 :デフォルトの名無しさん:2010/12/04(土) 21:07:47
>>442
ない。

445 :デフォルトの名無しさん:2010/12/04(土) 21:07:55
はははじゃねーよアホ。

446 :デフォルトの名無しさん:2010/12/04(土) 21:10:21
>>430のサンプルは謎。なんでこれで大丈夫なのか理解できないし他の情報と矛盾してる。
CallBackClass cb;
public static void SetChangeHandler() {
cb = new CallBackClass();
ExternalAPI.SetChangeHandler(new ChangeDelegate(cb.OnChange));
}
どういうことなんだろう。実際もしかしたら>>410の言うとおりなのかもしれないけど、
それにしたってどこにもそんなこと書いてない。

447 :デフォルトの名無しさん:2010/12/04(土) 21:11:15
メソッドってインスタンスごとに別のアドレス割り当てられるのか
データクラスにはあんまりメソッド持たせないほうがいいのね

448 :デフォルトの名無しさん:2010/12/04(土) 21:13:43
>>444
よく考えたらメソッド参照してる時点でインスタンス参照がくっついてるはずだし、そりゃそうか。

449 :デフォルトの名無しさん:2010/12/04(土) 21:16:53
真面目にLanguage Specification読むか…

450 :デフォルトの名無しさん:2010/12/04(土) 21:18:46
>>447
そんなわけない。

非 virtual なクラスならメソッドは固定アドレスだし、
virtual な場合でも、virtual メソッドテーブルみたいな奴はクラスごとに1個。
各インスタンスは virtual メソッドテーブルのアドレス1個持ってるだけ。

デリゲートは、インスタンスメソッドも代入できるわけだけど、
この場合には、C 言語的にいうと、
struct DelegateToInstanceMethod
{
void* instance;
Func* pointerToMethod;
}
みたいなデータの持ち方される。

451 :デフォルトの名無しさん:2010/12/04(土) 21:19:06
>>447
違う。マネージ関数のアンマネージ関数ポインタを取得するときにはかならずマーシャリング処理が入って
ラッパーみたいなものを通す形になるので、デリゲートの方がGCされてしまうとアンマネージ関数ポインタが
無効になる。
>>449
言語仕様もCLIも関係ないよ。MSの中の人に聞くしかない。

452 :デフォルトの名無しさん:2010/12/04(土) 21:19:58
タイプセーフぇ・・・

453 :デフォルトの名無しさん:2010/12/04(土) 21:20:09
>>447
マーシャンリングされるのはあくまでデリゲートのインスタンスで、単なるメソッドは関係ないんじゃねーの?
混合モードで動かしてみればどうだかわかると思うが

454 :デフォルトの名無しさん:2010/12/04(土) 21:21:19
>>450
そういうことか
てかデリゲート作るときnewしてるんだからそう考えるのが普通か


455 :デフォルトの名無しさん:2010/12/04(土) 21:24:04
単なるメソッドって何?

456 :デフォルトの名無しさん:2010/12/04(土) 21:26:02
このthunkって何のためだと思ったら
オブジェクトが移動されても大丈夫なようにってか
はぁ〜ん

457 :デフォルトの名無しさん:2010/12/04(土) 21:27:07
>>451
>デリゲートの方がGCされてしまうとアンマネージ関数ポインタが無効になる。
デリゲートが参照してるインスタンスがGCされるなら分かるけど、
デリゲート自体がGCされることなんてあるの?
どっかで呼び出すからにはどっかで参照持ってると思うんだけど

458 :デフォルトの名無しさん:2010/12/04(土) 21:27:37
>>455
デリゲート化してないインスタンスメソッド、だと思う
そんな深く考えて書いてないから突っ込むなよ

459 :デフォルトの名無しさん:2010/12/04(土) 21:29:18
>>454
というかクラスをnewしても実際のところ複製されるのはC的に言えば関数ポインタであって
関数の実態は固定のはずだしねえ


460 :デフォルトの名無しさん:2010/12/04(土) 21:29:32
>>457
この場合デリゲートを参照してるのはアンマネージド関数に渡されるthunkだから無駄じゃねえかな。
thunkとデリゲートが閉じた輪になってれば回収されるでしょう。

461 :デフォルトの名無しさん:2010/12/04(土) 21:33:11
>>460
thunkって>>439のやつの話か
ちょっと読んでくる

462 :デフォルトの名無しさん:2010/12/04(土) 21:38:53
何の話かよくわからんけど、そういう状況が生まれるならそういうプログラムが書けるって
事でしょ。試してみればよいのでは?。それとも試せないような空論で言い争ってるの?。

463 :デフォルトの名無しさん:2010/12/04(土) 21:39:17
常識で考えてメソッド呼ぶにはインスタンスへの参照もいるだろ・・・
関数ポインタばかりに夢中になり過ぎ

464 :デフォルトの名無しさん:2010/12/04(土) 21:42:25
1.staticメソッドならどうなのか
2.デリゲートがGCされてインスタンス参照は残ってるケースはどうか(これは普通にあり得る)
が問題
>>439やMSDNの記述を読む限りでは両方ダメとしか考えられないんだが
>>430のサンプルコード(>>446)では2が大丈夫であることを前提にしている

465 :464:2010/12/04(土) 21:46:27
すまん言葉が変だな
2.デリゲートがGCされているが、そのデリゲートが指していた呼び出し先のインスタンスは生存しているケース

466 :デフォルトの名無しさん:2010/12/04(土) 21:48:20
結局何が正解なのさ

467 :デフォルトの名無しさん:2010/12/04(土) 21:52:13
ChangeDelegate d;
public static void SetChangeHandler() {
 cb = new CallBackClass();
 d = new ChangeDelegate(cb.OnChange);
 ExternalAPI.SetChangeHandler(d);
}
これなら大丈夫てこと?

468 :デフォルトの名無しさん:2010/12/04(土) 21:52:16
>>463
>常識で考えてメソッド呼ぶにはインスタンスへの参照もいる

あんまそこは問題ではないのよ
誰を参照していても自分がGCされる条件を満たすかどうかとは関係ないからね

あくまでもGCされないためには「被」参照が必要なのね
ポイントになってんのはこのデリゲートとThunkの参照の輪がどこからか被参照もらってるかって事ね
>>439を鵜呑みにするならどっからも貰ってない

469 :デフォルトの名無しさん:2010/12/04(土) 21:57:21
>>468
アンマネージドコードからの参照はGCの計算に入んないから気をつけてね
こういうことですか?

470 :デフォルトの名無しさん:2010/12/04(土) 22:00:25
そういうこと。

471 :デフォルトの名無しさん:2010/12/04(土) 22:04:06
いやデリゲート自体は確実にGCされるよ。それは間違いない。
だってデリゲートがGCされないなら、それが参照してるインスタンスがGCされるわけがない。
問題は、デリゲートがstaticメソッドやまだGCされていないオブジェクトのインスタンスメソッドを指していた場合
デリゲートがGCされても関数ポインタが有効なのかどうか。

472 :デフォルトの名無しさん:2010/12/04(土) 22:06:38
そんなところが気になるのかよ

473 :デフォルトの名無しさん:2010/12/04(土) 22:07:27
有効ならThunkの必要性がなくなる
ThunkってPinedを指定しなくて良いように挟んでるんだろうから

474 :デフォルトの名無しさん:2010/12/04(土) 22:08:08
>>471
内部的な話をすればメソッド本体は固定だよ
クラスだってメソッドへのデリゲートを持ってるに過ぎない

クラスをインスタンス化する際に考えてみなよ
メソッド全部コードをそのままコピーするか参照だけコピーするか



475 :デフォルトの名無しさん:2010/12/04(土) 22:08:49
みす
>クラスだってメソッドへのデリゲートを持ってるに過ぎない
クラスだってメソッドへの参照を持ってるに過ぎない

476 :デフォルトの名無しさん:2010/12/04(土) 22:10:05
>>473
それにマーシャリングが挟まる余地がなくなるよな。どっちにしろ。

477 :デフォルトの名無しさん:2010/12/04(土) 22:12:05
>>439を鵜呑みにするなら

>CLR creates a thunk, which forwards the calls from native code

って書いてあるからデリゲート回収されたら一巻の終わりだね駄目駄目だね

478 :デフォルトの名無しさん:2010/12/04(土) 22:14:02
じゃあ>>430の最後のサンプルコードは間違ってることになるよ

479 :デフォルトの名無しさん:2010/12/04(土) 22:14:16
そうやって何でもかんでも鵜呑みにしないの!

480 :デフォルトの名無しさん:2010/12/04(土) 22:18:41
>>478
フォーラムに聞きにいったらいいんじゃね

481 :デフォルトの名無しさん:2010/12/04(土) 22:20:27
>>474
>メソッド全部コードをそのままコピーするか参照だけコピーするか
インスタンス化する際にメソッドの参照をコピーする必要あるの?

482 :デフォルトの名無しさん:2010/12/04(土) 22:22:06
ないない
静的型の言語では、メソッドは型が持ってるテーブルから検索する

483 :デフォルトの名無しさん:2010/12/04(土) 22:22:24
>>481
クラスの基本的な構造は多分C++と変わってないと思うから
C++のあの糞構文みてきなよ
ヘッダとCPPのソースで見事に分離して書かれてるじゃん
あれが実は実態だよ

484 :デフォルトの名無しさん:2010/12/04(土) 22:23:32
>>482
だよね
>>459>>474もコピーするみたいなこと書いてあるからびっくりした

485 :デフォルトの名無しさん:2010/12/04(土) 22:24:22
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36275&forum=7
3年位前の@ITで同じ話をしてる連中がいた

486 :デフォルトの名無しさん:2010/12/04(土) 22:24:39
>>482
そんなことしなくてもクラスにあたる部分を固定で持ってて
メソッドの参照貼っとけばnewの時にコピーすればいいだけじゃん

487 :デフォルトの名無しさん:2010/12/04(土) 22:25:41
インスタンスメソッドも実体はAppDomainにつき1つだけだけど、
必ずインスタンスのコンテキストで実行されるから(内部的には引数でインスタンスを渡す)、
インスタントがGCされたら想定した動作はしなくなるでしょ。

488 :デフォルトの名無しさん:2010/12/04(土) 22:26:48
>>486
そんなことしなくてもコンパイルするときに直接アドレスに変換すればいいじゃん

489 :デフォルトの名無しさん:2010/12/04(土) 22:28:07
APIにコールバックとしてデリゲートを渡すときは、
GCで困ることになるから気をつけような、ってだけの話。

http://msdn.microsoft.com/ja-jp/library/system.gc.keepalive.aspx

490 :デフォルトの名無しさん:2010/12/04(土) 22:29:45
100レス弱デリゲートの議論してるのにマルチキャストデリゲートの存在が忘れられてる気がする

491 :デフォルトの名無しさん:2010/12/04(土) 22:31:32
>>489
これはちゃんとデリゲートをKeepAliveしてんのな
もう何がなんだか/^o^\

492 :デフォルトの名無しさん:2010/12/04(土) 22:32:42
>>489
なんかキモイ使い方だな

493 :デフォルトの名無しさん:2010/12/04(土) 22:35:39
>>488
コピーするのはクラスの話で静的なメソッドの場合は貼ってあるのはあたりまえ

494 :デフォルトの名無しさん:2010/12/04(土) 22:38:44
というかメモリーイメージを想像したらクラスとメソッドの関係ってわかりそうなもんだけどな
メソッドが消えるときはプログラム自体をアンロードしたときくらいじゃね?

495 :デフォルトの名無しさん:2010/12/04(土) 22:41:32
>>490
だったらとっとと答え教えろクソカス

496 :デフォルトの名無しさん:2010/12/04(土) 22:43:03
>>493
すまん、何いってるのかぜんぜんワカンネ
>コピーするのはクラスの話
クラスのインスタンスごとにメソッドの参照をコピーして記憶する必要はないんじゃないかって言いたいわけでして

497 :デフォルトの名無しさん:2010/12/04(土) 22:43:54
C#は欠陥言語

498 :デフォルトの名無しさん:2010/12/04(土) 22:44:24
>>490
今の話とマルチキャストデリゲートってなんか関係あるの?

499 :デフォルトの名無しさん:2010/12/04(土) 22:46:42
>>496
そうだよ。メソッドはクラスにつき1つ用意されてるだけだから。
インスタンスごとにメソッドがあるわけじゃない。

CLR的にはインスタンスが隠し持ってる「型オブジェクト」への参照を辿って、
動的な型は決定できる。それさえ決めれば型の持つテーブルからメソッドは特定できる。
新しくインスタンスをnewするときは、そのインスタンスの持つ型オブジェクトの参照がセットされるだけだ。

500 :デフォルトの名無しさん:2010/12/04(土) 22:54:01
オブジェクトのヘッダにRuntimeTypeHandleの値が入ってるんだっけ

501 :デフォルトの名無しさん:2010/12/04(土) 22:55:09
>>499
前半部分は理解してる
でも
>新しくインスタンスをnewするときは、そのインスタンスの持つ型オブジェクトの参照がセットされるだけだ。
ってのがわかりません、先生
型オブジェクトって何?

502 :デフォルトの名無しさん:2010/12/04(土) 23:01:50
>>499
それって>>482といってること一緒じゃないの?

503 :デフォルトの名無しさん:2010/12/04(土) 23:07:52
>>501
型のメソッドテーブルなど、メモリ上に読み込まれた型の実体のことを
Javaなどでは便宜的にクラスオブジェクトなどと呼ぶことがある。プログラム上で扱うオブジェクトとは違う。
オブジェクトは、フィールドの他に「型情報」というものを持ってる。
「型情報」っていうのは自分がどの型のオブジェクトかを示すハンドル。それを>>499は参照と呼んでいる。

504 :デフォルトの名無しさん:2010/12/04(土) 23:10:35
どうでもいいよ。

505 :デフォルトの名無しさん:2010/12/04(土) 23:30:54
[型オブジェクト]
・コンストラクタ
・メソッドA
・メソッドB

[インスタンス]
・型オブジェクトへの参照
・フィールド1
・フィールド2

こんな感じ?

506 :デフォルトの名無しさん:2010/12/04(土) 23:40:51
分かってるのかどうか不安だが、わりとどうでもいい

507 :デフォルトの名無しさん:2010/12/04(土) 23:45:21
どうも。>>402です。僕の質問をネタに盛り上がってくれてありがとうございます。
じっと見てました。とても勉強になります。が、僕の疑問はまだ解決してません。
SetWindowlong()の引数としてWindowProcのアドレスを取得する方法を教えてもらえないでしょうか。
object.Addressではメソッドのアドレスは取れないんですね・・・
まあ僕のやろうとしてることは、VB(多分.NET以前)で書かれたWin32APIのプログラムをなぞって、
バカ正直にPinvokeでC#に書き換えようとしてるわけで、幼稚なのはわかってます。
週末プログラマなんで御容赦を。
皆さんの言ってるデリゲートは、ウインドウプロシージャのset、callの部分でAPIを使わなくてもC#でやれよ、
ということなんだと想像してますけど・・・正直、高度すぎて解りません。
でも、僕としては幼稚でもいいからプログラムを作ってみたいので、、、

それと「こんなことがしたい。けど関数がわからない」みたいなときの逆引き辞書みたいなのって無いですか?
みなさん初心者の頃はどうやって探してました?すみませんねー初心者なので。orz


508 :デフォルトの名無しさん:2010/12/04(土) 23:49:43
だからデリゲート渡せ、って言ってんだろハゲ

509 :デフォルトの名無しさん:2010/12/04(土) 23:50:52
Marshal.GetFunctionPointerForDelegateってのはあるけどな。

510 :デフォルトの名無しさん:2010/12/04(土) 23:52:10
まるで成長してない・・・

511 :デフォルトの名無しさん:2010/12/04(土) 23:53:17
ダメだな

512 :デフォルトの名無しさん:2010/12/04(土) 23:56:23
デリゲートって何?

513 :デフォルトの名無しさん:2010/12/04(土) 23:57:39
ゲリのままデートするんですよ

514 :デフォルトの名無しさん:2010/12/05(日) 00:04:14
人の話を聞く方法からレクチャーしないと駄目なのか?

515 :デフォルトの名無しさん:2010/12/05(日) 00:07:37
また話題がループするのかw

516 :デフォルトの名無しさん:2010/12/05(日) 02:28:37
デリゲートは関数を入れる変数みたいなもん

517 :デフォルトの名無しさん:2010/12/05(日) 02:36:16
デリゲート(delegate: 代表、委譲、委託)なんて言葉採用しなきゃよかったのにね

518 :デフォルトの名無しさん:2010/12/05(日) 02:45:27
>>516
みたいっていうか、その通りだろ。
あるデリゲーにはMessageBox.Showが入っていて

519 :デフォルトの名無しさん:2010/12/05(日) 02:48:56
デリゲートは関数の呼び出しを抽象化したクラス
でもそれを毎回プログラマが作るのは面倒だから言語仕様として取り込んだって感じ

520 :デフォルトの名無しさん:2010/12/05(日) 04:12:02
Path.GetFileName()
これが特定のファイルだと上手く動作しないんだけど
どんな理由があるのですが?
ファイル名がUnicodeだったりするとだめなのかな

521 :デフォルトの名無しさん:2010/12/05(日) 04:40:23
オツムに栄養が行っていないだろ?今日はもう寝ろ。

522 :デフォルトの名無しさん:2010/12/05(日) 07:15:47
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

C#, C♯, C#相談室 Part63
http://hibari.2ch.net/test/read.cgi/tech/1289733048/

523 :デフォルトの名無しさん:2010/12/05(日) 07:19:20
>>520
http://msdn.microsoft.com/ja-jp/library/system.io.path.getfilename(VS.80).aspx
ここ読んでも原因わかんなかったら
具体的にどんなパスでうまくいかないのか書いて

524 :デフォルトの名無しさん:2010/12/05(日) 08:32:35
デリゲートって、デリケートですね。(´Д` )

525 :デフォルトの名無しさん:2010/12/05(日) 08:44:08
どんなパスかって恥ずかしくて言えません(///)

526 :デフォルトの名無しさん:2010/12/05(日) 08:45:12
なんだってこんなコールバック関数をボコボコ使わなきゃいけない設計にする必要があるのか

527 :デフォルトの名無しさん:2010/12/05(日) 08:47:23
ゲーム屋のタスクシステムを現在でも使おうとするとコールバック地獄になるのかな?

528 :デフォルトの名無しさん:2010/12/05(日) 08:47:50
>>527
あいつらは頭悪いからほっとけw

529 :デフォルトの名無しさん:2010/12/05(日) 08:51:12
System.Windows.Forms.DataVisualization.Charting 名前空間の、チャートコントロール使ってる人います?
片対数グラフ書いてみようと思ったのですが、使い方がよくわかりません。



530 :デフォルトの名無しさん:2010/12/05(日) 17:03:10
伸びてると思ったらまた火種(>>410>>413>>416)はこいつか。

http://hibari.2ch.net/test/read.cgi/tech/1281236906/123
http://hibari.2ch.net/test/read.cgi/tech/1281236906/180
http://hibari.2ch.net/test/read.cgi/tech/1281236906/192
http://hibari.2ch.net/test/read.cgi/tech/1281236906/289

アスペがプログラミングするな。

531 :デフォルトの名無しさん:2010/12/05(日) 17:17:58
突然そんなことを言い出すのもアスペっぽいです

532 :デフォルトの名無しさん:2010/12/05(日) 17:24:33
しかも、まったくリンク先見えんし

533 :デフォルトの名無しさん:2010/12/05(日) 18:10:25
アスペルガーかどうかはともかく、2chで「荒れるから〜しろ/するな」という奴に限って
妙に喧嘩腰なのは、まあ鉄板の法則と言っていいだろうね。

>>530みたいな奴って、たぶんこの嫌味の意味すら理解できないと思う。
原因が単に頭が悪いからなのか、あるいは精神科的な問題かは分からないが、
自分を客観的に見る能力が著しく欠けていることは間違いない。

534 :デフォルトの名無しさん:2010/12/05(日) 18:12:08
>>533
>>533

535 :デフォルトの名無しさん:2010/12/05(日) 18:25:12
本物ワロタ

536 :デフォルトの名無しさん:2010/12/05(日) 18:29:57
ちゃんと前に設定したあぼーんに引っかかるあたり、別人の物まねだと思うけどレベルが高いな。

ttp://www.dotup.org/uploda/www.dotup.org1285030.png

537 :デフォルトの名無しさん:2010/12/05(日) 18:34:51
533はホンモノさんでしたか
街頭で出会いたくない人no.1だわ

538 :デフォルトの名無しさん:2010/12/05(日) 18:36:54
客観と感受性って単語が大好きなんだよねその人。
2つの単語だけですげぇ矛盾をはらんでるけど。

539 :デフォルトの名無しさん:2010/12/05(日) 18:45:12
WPF=Html
C#=JavaScript

ではCSSは何?

540 :デフォルトの名無しさん:2010/12/05(日) 18:48:12
>>539
ちょっと違うな
XAML=html+CSS
C#=JS
こんな感じ
XAMLにstyleでCSSのような機能があるから

541 :デフォルトの名無しさん:2010/12/05(日) 19:22:38
>>529
.NET4.0だとそんなのあるのか、ちょっと感動した
(この前1から手書きしたのがばかみたいじゃないか)
で、片対数だけど
プロパティ→ChartAreas→Axes→Y軸を選択→IsLogarithmicをTrueに設定でできたよ

542 :デフォルトの名無しさん:2010/12/05(日) 19:28:16
VS2008の時代からあったんだけどね。後だしではあったけど。
知らない人結構いるのな

543 :デフォルトの名無しさん:2010/12/05(日) 19:34:56
使わないしなあ

544 :デフォルトの名無しさん:2010/12/05(日) 19:42:47
まあChartなんて使う使わんがはっきり分かれる類だからな
おいらも使ったこと無いわ

545 :デフォルトの名無しさん:2010/12/05(日) 21:40:21
>>541
MSChartっていうのが前からあって、成熟してきたんで.NET4で取り込まれた。
そういう経緯があるんで.NET3.5 SP1用のMSChartがまだ配布されてる。
http://code.msdn.microsoft.com/mschart
http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&displaylang=ja

俺はChartよく使う。見える化は大切だね。

546 :デフォルトの名無しさん:2010/12/05(日) 22:29:57
プログラマーは情報こそが資本ということか
もっとアンテナを伸ばさいないといかんなぁ

547 :デフォルトの名無しさん:2010/12/05(日) 23:06:00
そういう面白げなライブラリ関連の情報をレポートするサイトはないもんかね
作るのはさすがにだるい

548 :デフォルトの名無しさん:2010/12/05(日) 23:15:14
>>547
そういう情報がたまーに流れてくるスレッドなら知ってる
http://hibari.2ch.net/test/read.cgi/tech/1290854247/

549 :デフォルトの名無しさん:2010/12/05(日) 23:20:30
ああそのスレか
俺も見てるけど役に立たないよね

550 :デフォルトの名無しさん:2010/12/05(日) 23:23:04
http://sourceforge.net/search/?q=XML
http://code.msdn.microsoft.com/Project/ProjectDirectory.aspx?ProjectSearchText=XML

SourceForgeでもCodeGalleryでも思うんだが、検索画面にライセンスくらい表示しろよ

551 :デフォルトの名無しさん:2010/12/05(日) 23:52:38
>>548
便所の落書きと呼ぶにふさわしい、ある意味2chらしいスレッドだなあ

552 :デフォルトの名無しさん:2010/12/06(月) 00:10:48
便所の落書き以下だろ、特にこれとか
http://hibari.2ch.net/test/read.cgi/tech/1290854247/552

553 :デフォルトの名無しさん:2010/12/06(月) 00:34:19
8パズルの盤面に対しての最短距離を知りたいのですが、どのようにすれば分かりますか?

554 :デフォルトの名無しさん:2010/12/06(月) 00:38:24
各数字の正解とのマンハッタン距離の和のこと?

555 :デフォルトの名無しさん:2010/12/06(月) 00:43:22
>>554
すみません
8パズルの最短経路の経路です

556 :デフォルトの名無しさん:2010/12/06(月) 00:45:29
二人とも何言ってんだかわかんねw

557 :デフォルトの名無しさん:2010/12/06(月) 00:52:53
>>553
テキトーにググっただけだが、このへんとか読んどけばわかるんじゃね?
http://algorithms.blog55.fc2.com/blog-entry-126.html

558 :555:2010/12/06(月) 00:53:10
さすがに日本語が不自由でした。。。
実験で8パズルの初期状態に対する最短経路の組を使いたいのですが、
どのようにすれば求められますか?

例えば、最短経路が5の8パズルの状態を出力するプログラムなどです。

559 :デフォルトの名無しさん:2010/12/06(月) 00:53:51
A*の評価関数に最短距離を使うのかと思ったんだが
最短手順探索のことか

560 :デフォルトの名無しさん:2010/12/06(月) 00:57:59
ワーシャルフロイト

561 :デフォルトの名無しさん:2010/12/06(月) 01:04:15
初期状態が8!通りしかないんだから、
全初期状態分の最短手数求めてテーブルに持っておけ

562 :デフォルトの名無しさん:2010/12/06(月) 01:16:03
>>558
> 例えば、最短経路が5の8パズルの状態を出力するプログラムなどです。
最短経路5って、5手でクリアできる状態という意味?
それだったら、そろってる初期状態から5手動かしたのを出力すればいいじゃん
直前で下げたコマを上げるみたいな動きは許さないでさ

563 :デフォルトの名無しさん:2010/12/06(月) 01:25:26
>>562
ありがとうございます
完成状態から同じ盤面を通らないでパズルを動かした盤面は最短ということでいいのですか?
最短ではない場合があるのではないかとちょっと不安なんですが

564 :デフォルトの名無しさん:2010/12/06(月) 01:27:59
この手の質問はアルゴリズム系の板で聞いたほうがいいんじゃないか?

565 :デフォルトの名無しさん:2010/12/06(月) 01:37:16
>>564
そうですね、そこで聞いてみます
どうもありがとうございました。

566 :デフォルトの名無しさん:2010/12/06(月) 01:48:35
アルゴリズム系の板ってここじゃないのか?

567 :デフォルトの名無しさん:2010/12/06(月) 02:18:43
暇だし作ってみた
http://ideone.com/GQy1O

アルゴリズムは>>563の方法で作った盤面をハッシュテーブルに保存して
最短経路のみを計算するって感じ


568 :デフォルトの名無しさん:2010/12/06(月) 02:22:34
また自分で問題出して自分で回答するパターンかよ
学生の宿題をプロにみせてどうすんだよ…

569 :デフォルトの名無しさん:2010/12/06(月) 02:24:55
別に俺質問者じゃないけど
もしかしてコード作って掲示しちゃいけないパターン?

570 :デフォルトの名無しさん:2010/12/06(月) 02:30:06
VIPのプログラミングスレでやればよくね?
というかあそこの連中が今ココにいるだろw

571 :デフォルトの名無しさん:2010/12/06(月) 02:38:27
>>568
ドカタに学生の宿題が解けるわけないよな
空気読めよ

572 :デフォルトの名無しさん:2010/12/06(月) 02:41:45
質問させてください

MessageBox.Show( (2/3*100).ToStriong());

がなぜ0になるのでしょうか?

573 :デフォルトの名無しさん:2010/12/06(月) 02:44:21
>>572
2/3が整数型で計算されると0になるから
2*100/3か2.0/3*10にすればいいんじゃない

574 :デフォルトの名無しさん:2010/12/06(月) 02:45:23
2.0/3*100だな

575 :デフォルトの名無しさん:2010/12/06(月) 08:29:21
2f/3*100だな

576 :デフォルトの名無しさん:2010/12/06(月) 08:31:44
>>567
おおーありがとうございます
これみてちょっと勉強してきます。

ご覧のとおり私にはこんなプログラムをすぐに作る力はありません・・・

577 :デフォルトの名無しさん:2010/12/06(月) 09:26:34
ごらんの有様だよ

578 :デフォルトの名無しさん:2010/12/06(月) 09:35:44
とっくにご存知なんだろ?

579 :デフォルトの名無しさん:2010/12/06(月) 12:49:56
うん!

580 :デフォルトの名無しさん:2010/12/06(月) 13:30:22
お前らほんと煽るの好きだな

581 :デフォルトの名無しさん:2010/12/06(月) 14:46:36
実社会で他に優越感感じられることがないからだろ

582 :デフォルトの名無しさん:2010/12/06(月) 16:36:51
ゴラン高原で修行してくるか

583 :デフォルトの名無しさん:2010/12/06(月) 17:35:55
荒らししかいないのに
2chで質問するのが間違っている

584 :デフォルトの名無しさん:2010/12/06(月) 17:52:46
何の言い訳になっているのかわからない

585 :デフォルトの名無しさん:2010/12/06(月) 19:01:55
何の言い訳になっているのかわからないですね

586 :デフォルトの名無しさん:2010/12/06(月) 19:09:26
ゴラン高原で修行してくるか

587 :デフォルトの名無しさん:2010/12/06(月) 20:55:16
>>577
エロゲヲタはカエレ

588 :デフォルトの名無しさん:2010/12/06(月) 21:44:49
>>567
横からなんだけど>>567のコードをc++に変換できる?
#スレで聞くのも何なんだけどさ

589 :デフォルトの名無しさん:2010/12/06(月) 21:45:14
張り倒すよ?

590 :デフォルトの名無しさん:2010/12/06(月) 22:16:27
Reflector使え

591 :デフォルトの名無しさん:2010/12/07(火) 04:27:52
今、VBAで作ったプログラムをC#に置き換えてるんだが
標準モジュールみたいなの使えないのかな?

それとも標準モージュールの中にある関数を無理やり
クラスに置き換えないとあかんのかね?

592 :デフォルトの名無しさん:2010/12/07(火) 04:58:05
クラスを使うように設計し直すのが一番だけど
とりあえず移植したいってだけなら静的クラスにでも押しこんだら?

593 :デフォルトの名無しさん:2010/12/07(火) 08:25:44
はじめた頃は正規表現すら知らなくて
特定の文字検索するのに大量のif文を書いてたなぁ

594 :デフォルトの名無しさん:2010/12/07(火) 09:33:46
>>588
ググッたらc++→c#ならあるみたいだね
逆はないみたい

595 :デフォルトの名無しさん:2010/12/07(火) 09:36:09
宿題だろ?
自動変換丸出しの機械みたいなソースコード提出したら単位もらえないよ

596 :567:2010/12/07(火) 09:41:52
>>588
なぜC++のコードがほしいのか、
まっとうな理由があるならやってあげるよ

597 :デフォルトの名無しさん:2010/12/07(火) 09:43:51
>>596
横だけど、それ宿題な気がするw

598 :デフォルトの名無しさん:2010/12/07(火) 09:51:13
でも横からってことは>>553>>588は別の人だろ?
同じ時期に同じ問題で別の言語ってのがどういう訳なのかちょっと聞いてみたかった

599 :デフォルトの名無しさん:2010/12/07(火) 09:55:14
>>598
同じ目的のものを違う言語で作ってみろ!という宿題もありなのでは?
同じ言語だとコピーして少し弄って出す奴続出するだろうし

最近、ネットで調べてそのまま提出する子供が多いらしいよ

600 :デフォルトの名無しさん:2010/12/07(火) 10:06:03
業務で使うプログラムもネットで調べてそのまま、ならいいけどね

601 :デフォルトの名無しさん:2010/12/07(火) 11:33:31
C++/CLIで作成したライブラリをC#の4.0ライブラリから読み込むと次のエラーが出ます

混合モード アセンブリはバージョン 'v2.0.50727' のランタイムに対して作成されており、追加の構成情報がないと 4.0 ランタイムでは読み込めません。

そこでこう言った所↓を参考に、対象のTest.dllの隣にTest.dll.configを作成し、以下を記述しました
http://nky-tech-sdt.blogspot.com/2010/02/net-framework-40.html

<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>

しかしエラーは変わりません、構成ファイルって、隣にある同名+.configでいいんですよね?
dll側のビルド再ビルドは難しい状況なのですが、dllビルド時に何か設定が必要でしょうか。

602 :デフォルトの名無しさん:2010/12/07(火) 11:44:52
>>601
リンク先をよく読め

603 :デフォルトの名無しさん:2010/12/07(火) 11:57:18
DLL側のコンフィグかと思ってたら、呼び出し側だったんですね。
気付かせてくれてありがとう!

604 :588:2010/12/07(火) 12:53:14
>>596
今ルービックキューブの解法を探す研究をしてるんだけど
これを参考にできないかなって思って


605 :デフォルトの名無しさん:2010/12/07(火) 13:23:26
そんなもん解法ググって実装すれば終わり
一日で終わる研究だな

606 :デフォルトの名無しさん:2010/12/07(火) 13:28:12
研究っていうからには新しいアルゴリズムを考え出すに決まってるだろ
なにが参考になるのかは良く解らんが

607 :デフォルトの名無しさん:2010/12/07(火) 13:33:26
>>567って要は総当たりだろ
アルゴリズムもクソもないわ

608 :588:2010/12/07(火) 13:57:54
正確には参考にするというか、自分の提案手法の経路と最短経路にどれほど違いがあるか見る為なんだけど
まあ、自分で1から作れって言われたらそこまでなんだけど

609 :デフォルトの名無しさん:2010/12/07(火) 14:44:01
朝飯のお味噌汁の旨さは異常

610 :デフォルトの名無しさん:2010/12/07(火) 15:45:08
質問です。

ReadStreamやTextFiedlParser等は使用時に

using(var parser= new TextFiedlParser(path,encode))


などと使うのですが、もし仮にファイルが排他ロックなどをしている場合に
複数回試行するにはどうすればよいのでしょうか?

for(int i=0; i>10 ;i++)
{
処理
Thread.Sleep(100)
}
のような感じで行いたいです。よろしくお願いいたします。

611 :デフォルトの名無しさん:2010/12/07(火) 16:54:43
スレッド立ちあげて気が済むまで待機すればいい

612 :デフォルトの名無しさん:2010/12/07(火) 17:57:37
>>607
その総当たりをどうやって重複なく、しかも確実に最短経路のみを列挙するかが問題なわけで・・・
てか問題を解くための手順がアルゴリズムだよ?わかってる?

613 :デフォルトの名無しさん:2010/12/07(火) 18:05:18
>>608
>>567は単純な幅優先探索とハッシュの組合せ
別にたいしたもんじゃない

614 :デフォルトの名無しさん:2010/12/07(火) 18:31:28
ID表示が無いと便利だな
宿題をやってもらえなかったら今度は批判か

615 :デフォルトの名無しさん:2010/12/07(火) 18:38:08
>>614
ID表示がないと訳の解らんいちゃもん付けてるくやつがいるからホント迷惑だわ

616 :デフォルトの名無しさん:2010/12/07(火) 19:08:33
ただの謙遜だろよ

617 :デフォルトの名無しさん:2010/12/07(火) 20:04:19
ReflectorでSystem.Windows.Forms.ImageList.ImageCollectionのところをぼーっと見てたんですが、

.Add( Icon ) のメソッドをところでパラメータのIconをCloneして使ってました。
これって元のアイコンは自前で解放しないとリークするってことですよね!?

なんでこんなウンコなことになってるんでしょうか?
.Add( Image )はそのまま使ってるのに!

アホかーーーーーっ

-----------------------------------
ここまで書いてドキュメント読みました。

>Icon は、リストに追加される前に Bitmap に変換されます。


 ∧||∧
(  ⌒ ヽ 
 ∪ 。ノ  
  ∪∪

618 :デフォルトの名無しさん:2010/12/07(火) 20:12:08
>>608
気長に待ってれば誰かやってくれるさ

619 :デフォルトの名無しさん:2010/12/07(火) 20:12:29
>>591
VBAの標準モジュール自体が、実質的に静的クラスみたいなもんだから。

そのままのモジュール名で静的クラスを作って、
その中に関数入れればそっくりそのまま移植になるでしょ。

620 :デフォルトの名無しさん:2010/12/07(火) 20:12:37
リークつっても、そのうちGCされるよ?
まあ一気に何万とかやったらちょっと大変だろうけど

621 :デフォルトの名無しさん:2010/12/07(火) 20:16:50
617ですけど何か勘違いしてたみたいです
imageだって解放しないといけないっすよね
マジで吊ってきます

622 :デフォルトの名無しさん:2010/12/07(火) 20:17:45
>アイコンは自前で解放しないとリークする
どういうこと?誰か解説してくれ


623 :デフォルトの名無しさん:2010/12/07(火) 20:42:23
>>610
よくわからんが、こんな感じでだめなの?
TextFiedlParser parser = null;
for (var i = 0; i < 10; i++) {
 try { parser = new TextFiedlParser(path,encode); }
 catch { Thread.Sleep(10); continue; }
 break;
}
using (parser)

624 :デフォルトの名無しさん:2010/12/07(火) 23:11:54
>>622
newしたら必ずDisposeしないといけないって思ってんじゃないの?

625 :デフォルトの名無しさん:2010/12/07(火) 23:15:43
ルートから辿れるImageCollectionに突っ込んだまま放置したら
GCとか関係なくメモリリークだよ

626 :デフォルトの名無しさん:2010/12/07(火) 23:16:44
IDisposabeインターフェースを実装するクラスはDisposeしないといかんだろ

627 :デフォルトの名無しさん:2010/12/07(火) 23:24:06
>>625
それをリークと呼ぶのは違和感があるな。
リークと言うからには開放したくても開放できない状況じゃなきゃ。

628 :デフォルトの名無しさん:2010/12/07(火) 23:33:48
リークなんてしたら
逮捕されちゃいます><

629 :デフォルトの名無しさん:2010/12/07(火) 23:34:43
>>626
大抵はそうだけど必ずしもそうではない

630 :デフォルトの名無しさん:2010/12/07(火) 23:39:18
コレクションに入ってるイメージがGCされたら一大事だな

631 :デフォルトの名無しさん:2010/12/07(火) 23:42:41
アサンジ

632 :デフォルトの名無しさん:2010/12/08(水) 00:14:25
>>631
逮捕されちゃったね

633 :デフォルトの名無しさん:2010/12/08(水) 09:33:52 ?2BP(123)
リークスさん・・・

634 :デフォルトの名無しさん:2010/12/08(水) 20:30:14
すいません、
DataGridViewに、Queue<String>は、バインドできますか?


635 :デフォルトの名無しさん:2010/12/08(水) 23:13:40
できません

636 :デフォルトの名無しさん:2010/12/09(木) 00:54:45
C#はReflectorで逆コンパイルできると聞いて色々なソフトで試してみましたがどれもできませんでした
自分で作った簡単なプログラムは逆コンパイルできました
C#が人気ないだけ?それとも何か防ぐ方法があるんでしょうか?

637 :デフォルトの名無しさん:2010/12/09(木) 00:58:32
色々なソフトって具体的には?

638 :デフォルトの名無しさん:2010/12/09(木) 01:03:39
難読化されてて読みにくいのはあるけどReflectorで開くことも出来ないのは見たことないな

639 :デフォルトの名無しさん:2010/12/09(木) 01:13:59
あ、SharpDevelopを試したら見れました。メモ帳とか電卓は.NETじゃないんですね

640 :デフォルトの名無しさん:2010/12/09(木) 01:32:06
そんな、3.1の時代からある歴史あるアプリはそうそう新技術に置き換えない。
今後新規で作るものが徐々に WPF 化されてく。

641 :デフォルトの名無しさん:2010/12/09(木) 01:33:00
ズコー

642 :デフォルトの名無しさん:2010/12/09(木) 01:36:06
Windows7で、ふとペイント立ち上げたら凄くなっててワラタ

643 :デフォルトの名無しさん:2010/12/09(木) 01:46:58
俺用メモ

ICommandSourceを実装したクラス(Button、MenuItemなど)→Commandというプロパティを持ってる

644 :デフォルトの名無しさん:2010/12/09(木) 02:17:14
プロパティって絶対型をもってるよね?
void型のプロパティってないよね?

645 :デフォルトの名無しさん:2010/12/09(木) 02:20:47
ないよ

646 :デフォルトの名無しさん:2010/12/09(木) 02:43:36
void型ってgetもsetもできないプロパティに何の意味があるんだ…。

647 :デフォルトの名無しさん:2010/12/09(木) 02:44:58
どっかで見かけたのか?

648 :デフォルトの名無しさん:2010/12/09(木) 03:26:49
古の言語には void *型 という物があったらしい。
え、C#でも使える?なにそれこわい

649 :デフォルトの名無しさん:2010/12/09(木) 03:37:54
>>648
なにその古代言語みたいな書き方w

そういやunsafeなクラスなら
public void* prop { get; set; }
みたいなプロパティ作れるね

650 :デフォルトの名無しさん:2010/12/09(木) 06:23:16
IEがWPFで作られたら、WPFはじめる

651 :デフォルトの名無しさん:2010/12/09(木) 07:17:28
VSをXPでやっている人ってもしかしていないの?

652 :デフォルトの名無しさん:2010/12/09(木) 07:19:53
ここにるけど?
Z510で軽快にVS2010が動いてる俺が

653 :デフォルトの名無しさん:2010/12/09(木) 07:31:24
軽快ってどんな設定してるの?

654 :デフォルトの名無しさん:2010/12/09(木) 10:39:23
silverlight4ってどうよ?業務アプリにもってこい?

655 :デフォルトの名無しさん:2010/12/09(木) 11:02:20
リッチテキストボックスにクリップボードからペーストしたときに
書式情報が失われないようにするにはどうしたらいいんでしょうか。
具体的には、web等で表示されているテキストをコピーして、リッチテキストボックスに
ペーストしたときに、色情報、フォント指定、文字サイズ等そのまま残したいんですが。

c#固有の話じゃないんでアレなんですが・・・

656 :デフォルトの名無しさん:2010/12/09(木) 11:32:53
webページだと
Clipboard.GetData(DataFormats.Html);
で拾ってきたHTMLタグを解析して書式情報を復元するしかないんじゃないかな

657 :デフォルトの名無しさん:2010/12/09(木) 11:33:38
クリップボードに何が入ってるか見て
プレーンテキスト以外の情報があったら
それを元にRichTextBoxに書式を付けていけばいいんじゃね

658 :デフォルトの名無しさん:2010/12/09(木) 11:33:45
>>655
テキストを構成するフォーマットが違うけどその辺をうまく吸収してくれるのかね?

webはhtml
リッチテキストボックスはrtf

もしかしたら受け取る処理側で変換処理かかないとダメかな?

659 :デフォルトの名無しさん:2010/12/09(木) 11:42:09
やっぱりWebBrowserに張り付けるか、自前で書式変換するしかないんですかね。
うーん・・
何はともあれ、ありがとう

660 :デフォルトの名無しさん:2010/12/09(木) 12:57:17
うーん・・
ふーん

661 :デフォルトの名無しさん:2010/12/09(木) 13:04:57
ListViewのアイコンImageを表示した後に差し替えて、まではうまくいきました
(クリックして選択カーソルを乗せると切り替わってくれます)
差し替えた後に随時アイコンの再描画をしたいのですが
全体の再描画となってしまいパタパタしてしまいます
アイコンだけ再描画する方法ってないですか?、宜しくお願いします

662 :デフォルトの名無しさん:2010/12/09(木) 13:07:56
ダブルバッファ使えばいいのかな?

663 :661:2010/12/09(木) 13:10:44
Webのサムネイルのように空サムネイルを表示しておいて
DLが出来た順にアイコンのImageをサムネイルとして順次表示したいのです

664 :デフォルトの名無しさん:2010/12/09(木) 13:15:41
再描画するところだけInvalidateしてやればおkだよ

665 :デフォルトの名無しさん:2010/12/09(木) 13:15:53
そもそも何がしたいのか分からん

666 :デフォルトの名無しさん:2010/12/09(木) 13:16:34
http://www.atmarkit.co.jp/fdotnet/dotnettips/197doublebuf/doublebuf.html
FormのLoadイベントでもいいのでこれを

this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);

667 :デフォルトの名無しさん:2010/12/09(木) 13:20:23
これでしょ
http://hongliang.seesaa.net/article/6949650.html

668 :デフォルトの名無しさん:2010/12/09(木) 13:22:34
>>666
そこまでいじるならFormをダブルバッファにした方がいいだろ

669 :デフォルトの名無しさん:2010/12/09(木) 13:29:49
>>666
それではListViewのちらつきは抑えられないよ

670 :デフォルトの名無しさん:2010/12/09(木) 14:18:35
もしかしたらここで質問することではないかもしれませんが・・・

MVPモデルで作成する場合においてモデル(M)側のプロパティが変更(OnPropetryChange)
された場合の処理内容は通常M側に置きますよね?もし、プロパティが変更された場合に
View側を変更する処理の場合であってもM側に配置するのでしょうか?

671 :デフォルトの名無しさん:2010/12/09(木) 14:19:50
>>669
抑えられるよ

672 :デフォルトの名無しさん:2010/12/09(木) 14:25:17
MVPモデルってなんだ

673 :デフォルトの名無しさん:2010/12/09(木) 14:28:50
>>661
OSはwindowsXP?
Aeroを搭載してて有効な場合は多分問題ないだろうな・・・

windowsXPの場合ティアリングを完全に回避はできないんじゃなかったっけ?
>>666の方法でも軽減できるってだけで

674 :デフォルトの名無しさん:2010/12/09(木) 14:47:28
ちらつきを気にするのは素人

675 :デフォルトの名無しさん:2010/12/09(木) 14:48:23
っと、MVPパターンのことだね

676 :デフォルトの名無しさん:2010/12/09(木) 14:49:12
C++との連携で疑問なんだけど
C#の配列の要素はメモリ上できれいに並ぶの?
それとも stackalloc で領域確保する必要がある?

677 :デフォルトの名無しさん:2010/12/09(木) 14:50:13
M モデル
V ビュー
P パーソン

つまり人力でビューとモデルを繋ぐという考えかw

678 :デフォルトの名無しさん:2010/12/09(木) 14:56:24
USB接続の外部記憶装置を特定して、ドライブ番号が変わっても追従させることは可能でしょうか?
特定のUSBメモリを毎回参照させて、他の外部記憶装置が加わってUSBメモリのドライブ番号が変更されても自動で参照出来るようにしたいのです。

USBメモリのボリュームラベルをあらかじめ変更しておいて、接続しているドライブから探すくらいでしょうか?
同じボリュームラベルは存在しないという前提になってしまいますが。

679 :デフォルトの名無しさん:2010/12/09(木) 14:58:43
C#ではクラスのインスタンスは必ずヒープにあるようになってるんですか?

680 :デフォルトの名無しさん:2010/12/09(木) 15:04:42
はい

681 :デフォルトの名無しさん:2010/12/09(木) 15:11:04
>>661
FormにListView貼り付けて実験してみたけどwindowsXPだとどうしても
情報が多くなるとちらつくね

http://ideone.com/d4pew

この辺は仕方ないんじゃねーかな?

vistaと7はAeroが有効になってればちらつきは無いはずだよね・・・

682 :デフォルトの名無しさん:2010/12/09(木) 15:20:17
>>676
実装まで追ってないけども、たぶん並んでるんじゃないかな。
stackalloc は不要。
てか、そういうことはプログラマーが気にしなくても Marshal クラスがやってくれる。

>>679
class で作ったやつは全部ヒープにインスタンス作られる。
スタックに入れたければ struct で。

ちなみに、コピーGCとか持ってる言語だと、ヒープのパフォーマンス意外といいんで気にスンナ。

683 :デフォルトの名無しさん:2010/12/09(木) 16:10:21
>>682
じゃあ、配列を渡したいときはこんな感じでいいのかな
fixedとかいる?

[DllImport("Hoge.dll", EntryPoint="Hoge")]
extern static void Hoge(out byte buffer);

public static void NewHoge(byte[] buffer)
{
    Hoge(out buffer[0]);
}

684 :デフォルトの名無しさん:2010/12/09(木) 16:20:57
はい

685 :デフォルトの名無しさん:2010/12/09(木) 16:20:26
>>683
こう
> ([In, Out] byte[] buffer)
In, Out属性は必要に応じて片方だけとか
配列の固定はマーシャラさんがやってくれる

686 :デフォルトの名無しさん:2010/12/09(木) 16:33:44
よく分からなくなってきた

[DllImport("Hoge.dll", EntryPoint="Hoge")]
extern static void Hoge([In, Out] byte buffer);

と書いたとしてNewHogeはどうすればいいんでしょうか?

687 :デフォルトの名無しさん:2010/12/09(木) 16:35:26
勘違いしてましたw
outって書けばいいんすね

688 :デフォルトの名無しさん:2010/12/09(木) 16:36:19
>>686
([In, Out] byte buffer);
じゃなくて
([In, Out] byte[] buffer);

689 :デフォルトの名無しさん:2010/12/09(木) 16:51:11
なるほど、ちょっと今すぐテストはできないんですが、これだけでいいのかな

[DllImport("Hoge.dll", EntryPoint="Hoge")]
extern static void Hoge([In, Out] byte[] buffer);

690 :デフォルトの名無しさん:2010/12/09(木) 21:05:08
クリックすると保存ダイアログがポップアップするような
URLが分からないファイルをダウンロードする方法はありませんか?


691 :デフォルトの名無しさん:2010/12/09(木) 21:09:10
  _, ._
(;゚ Д゚)?


692 :デフォルトの名無しさん:2010/12/09(木) 21:22:13
URLが分からないんじゃ
総当りでURLを生成するしかないな

693 :デフォルトの名無しさん:2010/12/09(木) 21:26:33
まじでやめて。
サーバーの負荷も考えてあげて。

694 :デフォルトの名無しさん:2010/12/09(木) 21:38:16
例えば,こういう感じのボタン
ttp://www.vector.co.jp/soft/dl/win95/writing/se046164.html
押してからURLを渡されるようなファイルの保存をしたいのですが・・・

695 :デフォルトの名無しさん:2010/12/09(木) 21:44:29
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://my.vector.co.jp/servlet/System.FileDownload/download/http/0/46164/pack/win95/writing/tex/tex318s.zip">

696 :デフォルトの名無しさん:2010/12/09(木) 21:47:14
最終的にはPOST/GETしてるので、そのURLに対してHttpWebRequestとかすればいいです。

697 :デフォルトの名無しさん:2010/12/09(木) 21:47:43
>>695
そのURLの取得方法が知りたいっす.
説明悪くてすみません.

698 :デフォルトの名無しさん:2010/12/09(木) 21:50:38
色んな方法があるから、すべてに対応するのは無理だろうね。

699 :デフォルトの名無しさん:2010/12/09(木) 21:55:56
>>696
なるほど(?)
ttp://dobon.net/vb/dotnet/internet/webrequest.html
↑な感じでデータを受信して,望みのURLにマッチするまで,
待機する感じでしょうか?
いけそうな気がしてきますた.

700 :デフォルトの名無しさん:2010/12/10(金) 00:20:58
上級者が一番間違えやすいのって、単純なうっかりミスかな

変数や関数の名前を間違えちゃうとか。

701 :デフォルトの名無しさん:2010/12/10(金) 00:23:14
インテリセンス最強のC#でそれはない

702 :デフォルトの名無しさん:2010/12/10(金) 00:51:44
インテリセンスはVisualStudioの機能であってC#の機能ではない。

703 :デフォルトの名無しさん:2010/12/10(金) 00:54:40
わざわざメモ帳でC#やるやついるのかよw

704 :デフォルトの名無しさん:2010/12/10(金) 01:14:26
>>702
いやでも、言語設計の時点でツールサポート前提の設計されてるしなぁ。
あと、今どき、文法だけで言語語れないし。

705 :デフォルトの名無しさん:2010/12/10(金) 02:01:56
C#の機能でっつーんなら、単純な名前ミスとかコンパイル時に
サクッと検出出来るんだからそんな問題でもないわな

706 :705:2010/12/10(金) 02:02:36
これでコンパイルが遅ければそれはダメだけど、幸いC#はかなり速いので。

707 :デフォルトの名無しさん:2010/12/10(金) 02:25:25
文法チェックのためにコンパイルするのが当たり前になるね

708 :デフォルトの名無しさん:2010/12/10(金) 02:37:43
C# に至っては、ビルド時チェックどころか、
書いてる最中のリアルタイムチェックだしなぁ。

709 :デフォルトの名無しさん:2010/12/10(金) 02:58:39
クラスならnewするとインスタンスを生成してくれるけど、構造体はnewしてもインスタンスとはいわないの?

710 :デフォルトの名無しさん:2010/12/10(金) 03:04:14
別に言いたければ言えばいいんじゃね

711 :デフォルトの名無しさん:2010/12/10(金) 03:08:53
なんか、MSDNの説明
日本語のMSDNは英語のMSDNに比べ
クラスのメンバとか書いてると子明らかに足りない部分あるんだが
そんなもんなの?

712 :デフォルトの名無しさん:2010/12/10(金) 03:09:50
>>709
http://msdn.microsoft.com/ja-jp/library/saxz13w4.aspx
MSDNでは構造体に対してnewなしでもインスタンス化という用語を使ってる

713 : [―{}@{}@{}-] デフォルトの名無しさん:2010/12/10(金) 07:50:37
>>711
日本語のは読まないほうがいい。

714 : [―{}@{}@{}-] デフォルトの名無しさん:2010/12/10(金) 07:53:42
インスタンスという語のもともとの意味からして、
構造体だろうとクラスだろうと、個別の実体(変数)に対してはインスタンスと呼ぶのは自然。

715 :デフォルトの名無しさん:2010/12/10(金) 08:36:21
>>701
using未指定時のクラス名補完って出来る?
手打ち後にusing追加は出来るけど。

716 :デフォルトの名無しさん:2010/12/10(金) 09:53:22
うん、using ない状態では補完聞かない。

その手打ち後に ctrl + . で using 追加、かなりの頻度で使うけども。
(一度ソースコードの上の方に移動して using 追加して戻ってくるとかまずしない)

717 :デフォルトの名無しさん:2010/12/10(金) 10:24:01
ctrl + . でよかったのか。
Alt + ctrl + F10使ってたよ

718 :デフォルトの名無しさん:2010/12/10(金) 17:43:41
右クリメニューでなんちゃらの解決してたわ

719 :デフォルトの名無しさん:2010/12/10(金) 18:57:45
そんな機能あったのか
まだまだ知らない機能沢山ありそうだ

720 :デフォルトの名無しさん:2010/12/10(金) 20:54:07
久しぶりです。といってもご存じないかもしれませんが、
初心者でなんどもお世話になったものです。その節はほんとにありがとうございました。
最近すこし書けるようになったので、あまり顔を出しませんが。
で、C#はだいぶ書けるので、欲を出して、Objective-Cに手を出しました。
で、相変わらず書けないので質問したら、またばか扱いで。
なんか、以前にこちらでお世話になったことを思い出して懐かしくなって戻ってきました。
Objective-CのふらっとC#みたいなとこ、あるといいんですけどね。


721 :デフォルトの名無しさん:2010/12/10(金) 21:00:09
そうですね。

722 :デフォルトの名無しさん:2010/12/10(金) 21:04:51
今ならまだ間に合う
WP7まで待て

723 :デフォルトの名無しさん:2010/12/10(金) 21:06:02
Appleワールド以外では全く使われない糞言語か

724 :デフォルトの名無しさん:2010/12/10(金) 21:07:30
せめてC++にしとけばいいのに
なんでいきなり初心者がわざわざガラパゴスに突っ込むのか

725 :デフォルトの名無しさん:2010/12/10(金) 21:09:40
C++ のほうがガラパゴスじゃないの?Obj-C 知らないけど

726 :デフォルトの名無しさん:2010/12/10(金) 21:12:41
全然関係ない言語を二つくっつけるという暴挙を果たした言語だよ

727 :デフォルトの名無しさん:2010/12/10(金) 21:14:40
VB.NETのこと?

728 :デフォルトの名無しさん:2010/12/10(金) 21:15:12
Appleが使わなければ消えるのはVB/C#とMSだって同じだけど
Appleのそれは囲い込みだけが目的で、開発者にとって何のメリットも無いからな

729 :デフォルトの名無しさん:2010/12/10(金) 21:38:03
objective cは独特だよな。Mac使ってた時に少し触ったけどメソッドの呼び出しがどうも気に食わなくてやめたw

730 :デフォルトの名無しさん:2010/12/10(金) 21:39:29
そもそも、ジョブズの死亡=Appleの死亡=Obj-Cの死亡なんていう図式が見える言語をやりたくない

731 :デフォルトの名無しさん:2010/12/10(金) 21:43:17
Oracle死ね

732 :デフォルトの名無しさん:2010/12/10(金) 21:46:53
MS的にはオラクルさまさまでしょう
見事にJavaをぶっ潰してくれた

733 :デフォルトの名無しさん:2010/12/10(金) 23:39:08
アップルワールドではC++も使えると聞いたけど違うのん?

734 :デフォルトの名無しさん:2010/12/11(土) 00:15:40
iPhoneのアプリ作ろうとするとObj-C使うしかないんじゃね
まじプログラマいじめだよなw

735 :デフォルトの名無しさん:2010/12/11(土) 00:21:17
いえ、カスグラマフィルターです。


736 :デフォルトの名無しさん:2010/12/11(土) 00:29:18
これ以上その話はしないでくれ思い出したくもない

737 :デフォルトの名無しさん:2010/12/11(土) 07:57:44
新人(信心)チェック

738 :デフォルトの名無しさん:2010/12/11(土) 09:52:54
iPhoneもSilverlight対応してほしい

739 :デフォルトの名無しさん:2010/12/11(土) 10:55:40
>>734
C++ も通るんじゃなかったっけ。
なんかグルーコード的なもの通してAPI呼べて。

まあ、踏絵よね、Apple 信者フィルター。

740 :デフォルトの名無しさん:2010/12/11(土) 14:00:26
houhou

741 :デフォルトの名無しさん:2010/12/11(土) 17:13:10
へえ

742 :デフォルトの名無しさん:2010/12/12(日) 00:30:50
C#ってC言語と違って変数宣言の前に変数つかえるのな

class Test{

public Test(){
a=10;
}

int a;



みたいな

743 :デフォルトの名無しさん:2010/12/12(日) 00:38:51
わかってて言ってる?と思うけど、クラスのメンバとかはその通り。
メソッド内で宣言した変数は無理だよ。当然だけど。

744 :デフォルトの名無しさん:2010/12/12(日) 01:10:07
C#に宣言って概念はあるんだっけそもそも。

しかしいつも思うけど、"forward reference"の訳語が「前方参照」なのはややこしいよね。
日本語って一般的には英語より語彙豊富なはずなんだけど....

745 :デフォルトの名無しさん:2010/12/12(日) 01:30:41
ごく普通の訳かと

746 :デフォルトの名無しさん:2010/12/12(日) 01:33:57
どこに違和感を感じるんだ?

747 :デフォルトの名無しさん:2010/12/12(日) 01:40:37
落語のオチを説明するような野暮なことは言いたくないので自分で考えて欲しいが、
ソースコードの前方ってのは行番号が若い方か逆かどっち?
ついでに後方ってどっち?

それとも前方参照の意味を知らないのかなw

748 :デフォルトの名無しさん:2010/12/12(日) 01:42:58
もしかしてプログラム初心者なのか?
歩く為には右足から?左足から?レベルの質問されてるわけだが

749 :デフォルトの名無しさん:2010/12/12(日) 01:43:32
ただの屁理屈君か。

750 :デフォルトの名無しさん:2010/12/12(日) 01:44:41
>>747
│   \  __  /
│   _ (m) _ピコーン
│      |ミ|
│   /  `´  \
│      ('A`)    体技:スルー!
│     ノヽノヽ
│       くく

│ ≡  ('('('('A` )
│≡  〜( ( ( ( 〜)
↓ ≡  ノノノノ ノ  サッ

751 :デフォルトの名無しさん:2010/12/12(日) 01:46:40
どんなネタでもそうだけど、打っても響かない奴との会話は楽しくないね。
まさに話にならない。

これ割と有名なネタなんだけどね。

752 :デフォルトの名無しさん:2010/12/12(日) 01:51:18
またおまえか

753 :デフォルトの名無しさん:2010/12/12(日) 01:54:25
これは酷い・・・

754 :デフォルトの名無しさん:2010/12/12(日) 01:54:35
響かないのはつまらないからだろw

755 :デフォルトの名無しさん:2010/12/12(日) 01:56:30
WPFスレで論破された奴がこっちに来てやがる(゚A゚;)ゴクリ

756 :デフォルトの名無しさん:2010/12/12(日) 03:20:29
空間的な前と、順序や時間的な前の違いだね。
コードを上から下に進むものと捉えれば前方でしっくりくるが、
行番号という順序として捉えると違和感がある。
その点forwardはどっちの意味でも進行方向だから分かりやすい。

757 :デフォルトの名無しさん:2010/12/12(日) 03:43:24
アホすw

758 :デフォルトの名無しさん:2010/12/12(日) 04:11:09
forward referenceを前方を参照すると考えちゃってるのかw

759 :デフォルトの名無しさん:2010/12/12(日) 05:45:31
イベントロガーみたいなの作ろうと思うんですが、普通はログ画面とログ収集通信とか同じプロセス内でスレッド分けてやるもんなんですかね?
それともログ表示画面とログ収集通信とは別プロセスに分けて、プロセス間通信使ったりするもんなんですかね?

760 :デフォルトの名無しさん:2010/12/12(日) 06:52:40
form上でマウスクリックが3秒以上続いたら〜っていうのをやりたいのですが、どう書いたらいいでしょうか。

761 :デフォルトの名無しさん:2010/12/12(日) 09:00:57
>>759
ログ対象のプロセス、イベントが分からないと何が適切か分からないけど
サービス化しなければインプロセスで十分じゃねーの?

762 :デフォルトの名無しさん:2010/12/12(日) 10:18:25
C#ってMSのオナニー言語だよね・・・
今後AndoroidやGoogleOSが普及してくると
C++は生き残ってもC#は資産価値ゼロだろうな

763 :デフォルトの名無しさん:2010/12/12(日) 10:35:11
またおまえか

764 :デフォルトの名無しさん:2010/12/12(日) 10:43:45
>>760
3秒間マウスボタン押しっぱなしを検出したい ってこと?

765 :デフォルトの名無しさん:2010/12/12(日) 10:51:36
MouseDownでTimer起動してMousuUpで時間を測れば?

766 :デフォルトの名無しさん:2010/12/12(日) 10:57:06
クリックってボタンのダウンとアップの組み合わせのことをいうんだけど
クリックが3秒続くってことかクリック、クリック、クリック・・・・とひたすら続くのか
たんにボタンを押したまま(つまりボタンのダウン)のことなのかでかなり違うんだけどな・・・

767 :デフォルトの名無しさん:2010/12/12(日) 12:09:47
>>742
今となっては使えない方が不自然。

>>744
インターフェイスのシグネチャだけ書いて本体持たないのを宣言って言ったりはする。

>>762
そういうこと言ってると、Mono な人に怒られるよ。

768 :デフォルトの名無しさん:2010/12/12(日) 12:20:33
変数宣言は普通にある
他にもデリゲートは定義じゃなくて宣言する

769 :デフォルトの名無しさん:2010/12/12(日) 12:55:04
>>742
C++のクラスでもそれは出来るような

770 :デフォルトの名無しさん:2010/12/12(日) 13:02:50
>>769
逆にコンパイル言語で出来なかったら時代遅れだろ

771 :デフォルトの名無しさん:2010/12/12(日) 14:27:49
>>760です。
3秒間マウスボタン押しっぱなしたら、別フォームを呼び出すっていうのをやろうとしてます。すいません説明不足で

772 :デフォルトの名無しさん:2010/12/12(日) 14:38:09
MouseDownでタイマー起動→タイマーでフォーム呼び出す

773 :デフォルトの名無しさん:2010/12/12(日) 14:51:27
C++は前方宣言してなくてもコンパイルできるようにしろよカス

774 :デフォルトの名無しさん:2010/12/12(日) 14:59:44
C++信者はJavaやC#でヘッダファイルが無いのは
実装と宣言が分かれてなくておかしいとか平気で抜かすからな

775 :デフォルトの名無しさん:2010/12/12(日) 15:08:22
抜かしますね

776 :デフォルトの名無しさん:2010/12/12(日) 15:15:33
あと MouseUp でタイマ起動中なら解除

777 :デフォルトの名無しさん:2010/12/12(日) 15:27:49
別にタイマー使わなくても
Downした時刻をとっといてUpした時刻と比べれば良いだけだろ

778 :デフォルトの名無しさん:2010/12/12(日) 15:32:40
>>777
それだと3秒経過しても動けないよ

779 :デフォルトの名無しさん:2010/12/12(日) 15:58:29
遷移元フォームがMouseUp拾えないよな、ちょっとキモイ

780 :デフォルトの名無しさん:2010/12/12(日) 16:11:43
3秒経過後マウスを離さないのか?

781 :デフォルトの名無しさん:2010/12/12(日) 17:37:46
「何秒間そのままだと〜する」って処理は場合によってはよく使うと思うけど、
タイマーオブジェクトってたくさん作ってもいいんだっけ?
どこかでパフォーマンス落ちるって見たような気がする。

782 :デフォルトの名無しさん:2010/12/12(日) 17:39:21
ほんとにパフォーマンスが目に見えて落ちていて
それがタイマのせいだった場合に考えましょう

783 :デフォルトの名無しさん:2010/12/12(日) 18:58:29
プロパティが分からない
教えろks

784 :デフォルトの名無しさん:2010/12/12(日) 19:02:30
変数のようにアクセスできる関数

785 :デフォルトの名無しさん:2010/12/12(日) 19:36:09
分からないのはプロ?
それともパティの方?

786 : ̄ ̄ ̄)/ ̄ ̄ ̄ ̄ ̄ ̄ ̄:2010/12/12(日) 19:42:50
     ∧_∧
    ( ´・ω・`)    ∧_∧
    /     \   (    )
.__| |    .| |_ /      ヽ
||\  ̄ ̄ ̄ ̄   / .|   | |
||\..∧_∧    (⌒\|__./ ./
||.  (    )     ~\_____ノ|   ∧_∧
  /   ヽ            \|  (    ) 
  |     ヽ           \/     ヽ.
  |    |ヽ、二⌒)        / .|   | |
  .|    ヽ \∧_∧    (⌒\|__./ /

787 :760:2010/12/12(日) 19:48:10
できましたーみなさんありがとうございます!

788 :デフォルトの名無しさん:2010/12/12(日) 20:26:04
あるクラスから継承されたクラスを全部取得することってできますか?

HumanクラスからJapaneseやAmerican,Chineseなどたくさんのクラスが継承されていて
すべての継承クラスがBool require( Human human )という必要条件を調べる関数を持っています。
(たとえばJapaneseだと黄色人種で日本語を話していたらTrueと判定,という感じ)
そしてどこの馬の骨ともわからない人間ひとりひとりについて
すべての継承クラスのrequireを走査して,True判定されたらそのクラスを継承させることで
めでたく"認定"という処理をしたいと考えています。

このとき「すべての継承クラスのrequireを走査」という処理の仕方がわからなくて困っています。
requireをそれぞれの継承クラスの中にいれずに独立したサブルーチンにすれば簡単ですが,
これだと継承クラスが増えるたびにこのサブルーチンも書き換える必要があるので
上記のような処理をしようと考えました。

789 :デフォルトの名無しさん:2010/12/12(日) 20:32:47
日本語でOK
たぶん、オブジェクト指向がわかってないと見た。

790 :デフォルトの名無しさん:2010/12/12(日) 20:34:17
リフレクション使って全ての型のTypeオブジェクトを取得して基底クラスを調べる
たぶん数秒単位の時間がかかって使い物にならないけどな
なんでもかんでもクラスにしたり継承使ったりしない

791 :デフォルトの名無しさん:2010/12/12(日) 20:40:40
>True判定されたらそのクラスを継承
が意味不明。C#では動的にクラスを継承したりできないけどどっかのスクリプト言語か?。
でもどんな言語だろうと普通そんなわけのわからない構造にはしないと思うよ。
後で動的に関連付ける必要があるならHumanクラスの属性(プロパティ)として
JapaneseやAmericanなどの情報を持たせたほうがいいと思う。
A is B だからって継承使うのが適切とは限らない。

792 :デフォルトの名無しさん:2010/12/12(日) 20:49:13
分からないから教えろ
foreach
クラス
インデクサ

793 :デフォルトの名無しさん:2010/12/12(日) 20:50:30
配列

794 :デフォルトの名無しさん:2010/12/12(日) 20:52:42


795 :デフォルトの名無しさん:2010/12/12(日) 20:54:28
インスタンス

796 :デフォルトの名無しさん:2010/12/12(日) 21:02:44
あきらめろ

797 :デフォルトの名無しさん:2010/12/12(日) 21:41:40
            V !ヽ ト! ヽ、    |     !    / //| /
               ヽ! \ハ` 、 ヽ、__ノ    ,.イ/ // | /
    ┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/
    |(/(/(/(/(/(/(/(/(/(/│||      |\  〃
  r'´ ̄ヽ.              | | ト    /    \
  /  ̄`ア             | | |  ⌒/     入
  〉  ̄二) 知ってるが    | | |  /     // ヽ
 〈!   ,. -'                | | ヽ∠-----', '´    ',
  | \| |   .お前の態度が   | |<二Z二 ̄  /     ',
  |   | |               _r'---|  [ ``ヽ、      ',
  |   | |   気に入らない >-、__    [    ヽ      !
  \.| l.              ヽ、      [     ヽ    |
    ヽ|              \    r'     ヽ、    |


798 :デフォルトの名無しさん:2010/12/12(日) 22:18:36
教えてやりたいけどここに書くには余白が足りない

799 :デフォルトの名無しさん:2010/12/12(日) 23:22:11
>>798
ピエール乙

800 :デフォルトの名無しさん:2010/12/13(月) 07:30:07
購入したDLLライブラリをつかってアプリを作ったのですが、他のPCにそのアプリとDLLをインストールしてもDLLが無いみたいなメッセージでうまく動きません。
なにか設定をしておく必要があるのでしょうか?

801 :デフォルトの名無しさん:2010/12/13(月) 07:41:38
サポート先にこのスレが記載されてたのか?

802 :デフォルトの名無しさん:2010/12/13(月) 07:59:57
うん

803 :デフォルトの名無しさん:2010/12/13(月) 08:15:20
お姉さん、うそつきは嫌いですよ

804 :デフォルトの名無しさん:2010/12/13(月) 08:28:57
そんな ><

805 :デフォルトの名無しさん:2010/12/13(月) 08:31:22
教えてやれよw

806 :デフォルトの名無しさん:2010/12/13(月) 08:34:32
>>805が教えてくれるそうです

807 :デフォルトの名無しさん:2010/12/13(月) 09:17:18
実は俺、DLLの作り方、しらないっす(´ω`*)

808 :デフォルトの名無しさん:2010/12/13(月) 10:15:25
D・L・L!!
D・L・L!!

809 :デフォルトの名無しさん:2010/12/13(月) 10:22:37
そういえばdllは何かの略語だろうか、
ダイナミック ライブラリ ロード?

ロードではないかw
ぐぐれかす!

810 :デフォルトの名無しさん:2010/12/13(月) 10:24:22
DLLなんぞぐぐれば作れるし

811 :デフォルトの名無しさん:2010/12/13(月) 10:28:43
それで、なんで動かないの?

812 :デフォルトの名無しさん:2010/12/13(月) 10:28:57
Dynamic Link Libraryでした。

汎用性の高いプログラムはわかるんだけどDLLにするとそんなにメリットがあるのかな?。
C#のバイトコードより効率的でなければDLLに拘る必要ないはずだからDLLの中身は
つまり機械語?

813 :デフォルトの名無しさん:2010/12/13(月) 10:57:35
すいません。質問です。
Hoge h = Hoge.Open("filename");
h.Write(hogehoge);
h.Close();
として渡されたデータを整形して、ファイルにデータを出力するクラスがあります。
次の作業で整形されたデータが必要なので、このファイルを再度開いて読み込んで処理を行っています。
いちいちファイルに出力しないで、パイプ?などを使用してファイルではなくメモリに出力するようには出来ないでしょうか。
このクラスはあいにく出力先にファイル名しか指定することが出来ません。
よろしくお願いいたします。

814 :デフォルトの名無しさん:2010/12/13(月) 11:34:41
System.IO.MemoryStreamをどうぞ。

815 :デフォルトの名無しさん:2010/12/13(月) 11:35:39
あ、すまん文をしっかり読んでなかった。

816 :デフォルトの名無しさん:2010/12/13(月) 12:07:50
>>800
ホントにそのDLLが無いってメッセージだったの?
DLLはどこにインストールした?

817 :デフォルトの名無しさん:2010/12/13(月) 12:35:28
>>813
そのクラスが内部で何をやってるかによると思うけどおそらく無理

818 :デフォルトの名無しさん:2010/12/13(月) 14:22:11
>>800
EXEと同じ場所か、パスが通っている場所にDLLをおいてみれば?
あとは、複数DLLがあって、忘れてるとか。

>>813
そのクラスの設計が正しいなら、ファイル出力することに何か意味があるのでは。
例えば、出力データサイズが大きい多いので、メモリで扱いたくてもできなかったとか。
とりあえず、クラスを修正するしかないね。

819 :デフォルトの名無しさん:2010/12/13(月) 14:32:21
Dynamic Lolita Library
23万件もヒットしたよ

820 :デフォルトの名無しさん:2010/12/13(月) 14:56:34
>>818
ストリームを引数に取れば済むことじゃん。設計が悪い。
正当な理由としては,外部のプロセスを使っててそれがファイルに出力してるくらいしか考えられん

821 :デフォルトの名無しさん:2010/12/13(月) 16:03:29
DLLたっていろいろ種類があるからね。
Windows API互換のDLL
COM(ActiveX)のDLL
.NETのアセンブリDLL


822 :デフォルトの名無しさん:2010/12/13(月) 16:04:57
>>814, 815, 817, 818, 819
お返事ありがとうございます。
以前に他の人が作った DLL (ソース無し) を使わなくてはならなくなり、何か良い方法はないかなと質問させて頂きました。
再度作り直すには少し手が込んでいるので、ファイルのまま使用することにします。
ありがとうございました。

823 :デフォルトの名無しさん:2010/12/13(月) 16:05:06
でも種類は別でもDLLなんだから基本的にみんな同じなんでしょう?

824 :デフォルトの名無しさん:2010/12/13(月) 16:07:49
ぜんぜん違うよ

825 :デフォルトの名無しさん:2010/12/13(月) 16:14:02
>>823
目的というかやろうとしてることは似てるけどね

826 :デフォルトの名無しさん:2010/12/13(月) 16:42:41
>>823
COMのDLLはCOMの規約に従ったごく普通のDLLなので、基本的には同じ
ただし、DLLが提供する機能の使い方は違う
COMのDLLはDllGetClassObjectという名前のごく普通の関数で機能を公開してるが、
ユーザはその関数は直接呼ばずに代わりにCOMのAPIを使ってアクセスする

.NETのDLLもふつうのDLLと同じでPEフォーマットなので、ある意味では同じだけど
Cリンケージのネイティブな関数で機能を公開しているわけでもなければ
いわゆるリソースDLLでもないので、普通のDLLとは言いがたい
便宜上PEフォーマットを使っているだけ、かな

827 :デフォルトの名無しさん:2010/12/13(月) 17:06:11
【C#, C♯, C#】 MonoMac 【MonoDevelop】
http://hibari.2ch.net/test/read.cgi/mac/1291602001/

828 :デフォルトの名無しさん:2010/12/13(月) 17:33:21
質問です。
データをlistBoxのItemsにAddメソッドで追加して表示させ、
listBoxの表示行数を超えると自動で下にスクロールして、最新データが見えるようにしたいのですが、
どうすればいいのでしょうか?


829 :デフォルトの名無しさん:2010/12/13(月) 17:37:28
こんな質問にすぐ回答するのは本人のためにもよろしくないかと

830 :デフォルトの名無しさん:2010/12/13(月) 17:42:16
つ ListBox.TopIndex

831 :デフォルトの名無しさん:2010/12/13(月) 17:42:38
>>830
なんで?

832 :デフォルトの名無しさん:2010/12/13(月) 19:18:42
>>828
やーいばーか

833 :デフォルトの名無しさん:2010/12/13(月) 19:35:03
教えてやれよ

834 :デフォルトの名無しさん:2010/12/13(月) 21:22:01
C#の使い方教えろ

835 :デフォルトの名無しさん:2010/12/13(月) 21:32:58
いいよ。毎日、少しずつ教えてやるよ。その替わり毎日、みんなに挨拶してお願いしろよ。
まず、VC#をダウンロードしろ。

836 :デフォルトの名無しさん:2010/12/13(月) 21:34:06
>>834
ここだけの秘密だけど、拡張子が sln のファイルをダブルクリックすると、C#が起動するよ。
おれはこれに気がつくまで、半年以上かかった。

837 :デフォルトの名無しさん:2010/12/13(月) 21:35:35
そういえばソリューションファイルから開くことってあんまりないな

838 :デフォルトの名無しさん:2010/12/13(月) 21:35:55
おまいら優しいな・・・。

839 :デフォルトの名無しさん:2010/12/13(月) 21:39:04
>>834
まず服を脱ぎます

840 :デフォルトの名無しさん:2010/12/13(月) 21:44:19
<TextBox Text="{Binding Name}" />
VMのコンストラクタでNameプロパティに値を設定
開発画面のTextBoxにはその値がちゃんと表示されているのだけど
起動すると何も表示されていません
何が間違っているのでしょうか?
初期値を設定しておきたいんだけど

841 :デフォルトの名無しさん:2010/12/13(月) 21:45:19
VMのほうのコードも書いてくれ
おそらくDataContextに代入してるんだろうけど

842 :デフォルトの名無しさん:2010/12/13(月) 21:58:19
MvvmLightを使っているんですが
VMコンストラクタのBlend用のところに記述していただけでした
そうじゃないほうに書いたらうまくいきました

Blendのほうだとすぐに開発画面のWindowに反映されるのに
Blendじゃない方は開発画面では値が表示されず、起動してから表示されるんですね

843 :デフォルトの名無しさん:2010/12/13(月) 21:59:58
C#で使えるORマッパーって何がある?

844 :デフォルトの名無しさん:2010/12/13(月) 22:02:25
Linq to Entities

845 :デフォルトの名無しさん:2010/12/13(月) 22:09:42
C言語でいう
printf("%3d",a);
みたいに、数字の前にスペース入れて表示するのは
Console.WriteLineだとどうやんの?

846 :デフォルトの名無しさん:2010/12/13(月) 22:15:15
String.Format

847 :デフォルトの名無しさん:2010/12/13(月) 22:28:17
>>846
つ 複合書式設定

848 :デフォルトの名無しさん:2010/12/13(月) 22:42:00
フォルダAをフォルダBにコピーさせるため、一旦Bのディレクトリを削除してからコピーしようと思うのですが
Directory.Delete(path, true);
仮に誤ってパスをC:\\なんてした場合に恐ろしい結果になるのですが
何か良い方法はありますか?

849 :デフォルトの名無しさん:2010/12/13(月) 22:45:55
誤らない

850 :デフォルトの名無しさん:2010/12/13(月) 22:46:31
気をつけて下さい

851 :デフォルトの名無しさん:2010/12/13(月) 23:22:49
気をつけて下さい

852 :デフォルトの名無しさん:2010/12/13(月) 23:33:22
C#初心者で、C#のプログラミングで悩んでいます。
機能ごとに、名前空間をA,Bといった感じで分けようと考えていたのですが、
クラスを作成後に、そのクラスの名前空間をBに変更したところ、

エラー1 型または名前空間名 'ComponentModel' は名前空間 'B' に存在しません。
アセンブリ参照が不足しています。

なるエラーが発生して、先に進みません。
C#では名前空間は一つしかつけることができないのでしょうか?
それとも、複数設定するには、何か特別な設定が必要なのでしょうか?

853 :デフォルトの名無しさん:2010/12/13(月) 23:42:09
Bに変更に変更したら、Bを呼び出しておけば問題ないんじゃないの?

854 :852:2010/12/13(月) 23:51:42
自己解決しました
名前空間Bというのは、XXXX.Systemという名称だったんですけど、
この場合に、VC#が自動生成したコードがSystemという部分に反応してエラーになったようです。
XXXX.SystemをXXXX.Test(別の名称)に変更したら、問題なく動作するようになりました。

855 :デフォルトの名無しさん:2010/12/13(月) 23:53:28
そういうときはglobal::System.ComponentModelというふうに書く

856 :デフォルトの名無しさん:2010/12/13(月) 23:58:59
SystemとContextって名前つける奴とは友達になれない
Contexって具体的に何なんだよ!

857 :デフォルトの名無しさん:2010/12/14(火) 00:29:04
system, context, temp, buffer, state, manager

858 :デフォルトの名無しさん:2010/12/14(火) 05:37:35
あっそ

859 :デフォルトの名無しさん:2010/12/14(火) 10:41:58
AesCryptoServiceProviderによる複合化についての質問です
本関数から複合化用に生成したICryptoTransformに対して、暗号化したデータを渡すと

初回は16byteを渡せば0byteが、32byteを渡せば16byteが複合化されます
次回からは、前回複合化されなかった物を含め、渡したデータの最後の16byte以外が複合化されます

このように16byteずれるのは仕様なのでしょうか?
マニュアルやブログ等あちこち探したのですが何処にもそのような記述が無いため困っています
なにか設定等があるんでしょうか。

860 :デフォルトの名無しさん:2010/12/14(火) 11:34:50
CryptoStreamを使った方がいいんじゃないかな?
暗号化も自前でやっているならそちらも末尾のデータが
欠落している可能性がある

861 :デフォルトの名無しさん:2010/12/14(火) 11:43:28
よくわからんが、
cryptAlg.Mode = CipherMode.EBC;
cryptAlg.Padding = PaddingMode.Zeros;
にしたらどうなる?

862 :861:2010/12/14(火) 11:53:11
訂正: EBC→ECB。
ECBにしたら16に対して16返ってくる様に見える。
CBC処理に1ブロック前のデータが必要なんじゃない?
でもセキュリティを確保するためにCBC以外のモードはおすすめできない。

863 :デフォルトの名無しさん:2010/12/14(火) 12:09:20
>渡したデータの最後の16byte以外が複合化されます
元データがブロックサイズの整数倍になっていて、最後のブロックには
無駄なPKCS7パディングの10 10 10 10・・・が詰まってるのでは?
復号時だけPadding = PaddingMode.Zeros;にして復号するとパディングが見えるよ。
>>862とはまた別の理由によるもの

864 :デフォルトの名無しさん:2010/12/14(火) 12:14:32
久しぶりC#やったら
List<T>.ForEachやFildAllなどが追加されているけど
これは使わなきゃ損?

865 :デフォルトの名無しさん:2010/12/14(火) 12:19:24
損って言うかForEachの方がはやいから普通に使うべき

866 :デフォルトの名無しさん:2010/12/14(火) 12:26:33
それ追加されたの2.0からだけど、1.x使った後で5年も離れてたん?

867 :デフォルトの名無しさん:2010/12/14(火) 12:31:25
>>861-863

若干スレ違いかと思って質問しましたが回答頂けてうれしいです。

元データはブロックサイズの整数倍ですが、最後のブロックにそのようなデータはありませんでした
ECBはセキュリティー上使いたくなかったのですが、CBCでもPaddinをZeroにしたら複合化されました!

Paddingについてこれから調べてみようと思います。
有難うございました!

868 :デフォルトの名無しさん:2010/12/14(火) 12:34:12
>>864
使わなくていいよ
2.0で匿名メソッドが中途半端にサポートされたときの宣伝のために追加されたようなもんで
Silverlightでは削除されてる

869 :デフォルトの名無しさん:2010/12/14(火) 12:46:37
補足>>868はFindAllの話。LINQのWhere使うのが推奨。
ForEachはSilverlightにもあるけど,LINQが絡むと統一性がなくなるので個人的には使いたくない

870 :デフォルトの名無しさん:2010/12/14(火) 12:47:07
// Find a book by its ID.
Book result = Books.Find(
delegate(Book bk)
{
return bk.ID == IDtoFind;
}
);
これってboolが戻り値っぽいけど、Bookを返しているんですよね

871 :デフォルトの名無しさん:2010/12/14(火) 12:48:54
ForEachはList使うなら使うべきでしょ
オライリーの本や@ITの本でも推移してるんだぞ

872 :デフォルトの名無しさん:2010/12/14(火) 12:50:42
これぞラムダ式って感じ

873 :デフォルトの名無しさん:2010/12/14(火) 12:55:20
>>870
bool返してる
匿名メソッドでtrueが返された時点で,Findメソッドがその要素を返す
Books.FirstOrDefault(bk => bk.ID == IDtoFind) と書くのが今風

874 :デフォルトの名無しさん:2010/12/14(火) 15:15:35
質問です。
class A{
public static string[] foo;
:
:
public string[] bar = new string[2];  //@
:
/*その他の処理*/
:
}

とし、別のクラスBで

class B{
A.foo = SerialPort.GetPortNames(); //A
:
:
}

とすると、A部分で初期化子が例外をスローします。(A.fooは宣言できてるのですが、値が格納できずnullとなっています。)
@を配列ではなくstringにするとエラーがなくなるのですが、原因としてはなにが考えられるでしょうか。

875 :デフォルトの名無しさん:2010/12/14(火) 15:34:32
なんか省略しすぎじゃね?

876 :デフォルトの名無しさん:2010/12/14(火) 15:37:42
ユーザーコントロールのGUIを、タブのページにAddして表示させる時、
このタブ上に表示させるユーザーコントロール名を動的にというか、外部ファイルとか別の所で定義することは出来るのでしょうか?

例えば、今、次のように2ページあるタブに、UserControl_1、UserControl_2をそれぞれ表示させるのですが、
ある場合はUserControl_Aにしたい、あるいは、この部分だけ任意の名前で後から作って、表示させたいのです。
その場合でも、この部分のコード変更をしなくても出来るようにしたいのですが。。。。


UserControl[] myUser = new UserControl[2];

myUser[0] = new UserControl_1();
TabPage[0].Controls.Add(myUser[0]); //1ページ目のタブにUserControl_1を表示

myUser[1] = new UserControl_2();
TabPage[1].Controls.Add(myUser[1]); //2ページ目のタブにUserControl_2を表示

877 :デフォルトの名無しさん:2010/12/14(火) 15:58:14
>>874
型が違うか、そもそも SerialPort.GetPortNames() が null を返している。

878 :デフォルトの名無しさん:2010/12/14(火) 16:11:21
同じようなif文がいっぱいある場合はどうやればいいのかな
大雑把に言うと

methodA
{
もしチェックボックスがオンなら
なんかやる

もしオフなら
なんかやる
}

methodB
{
チェックボックスがオンなら
・・・
オフなら
・・・
}

methodC
もしオンなら
・・・
オフなら
・・・
}

こういうときってどうやってる?そのまんまifをいっぱい書いてる?

879 :デフォルトの名無しさん:2010/12/14(火) 16:17:24
>>878
おれはたぶんやらないけど、methodA、B、C の I/F を作って、
オン用処理クラス、オフ用処理クラスを作るとか。

880 :デフォルトの名無しさん:2010/12/14(火) 17:09:33
つデリゲート

881 :デフォルトの名無しさん:2010/12/14(火) 17:20:01
>>878
switch

882 :デフォルトの名無しさん:2010/12/14(火) 17:29:38
>>881
switchでどうしろと。

883 :デフォルトの名無しさん:2010/12/14(火) 17:59:45
つflag

884 :デフォルトの名無しさん:2010/12/14(火) 18:14:25
>>878
俺なら一概に言えない

今後ずっとその全てのメソッドに条件の変更が無いならデリゲート使ったりしてまとめちゃう
メソッドBだけちょっとだけ違う条件になる可能性が少しでもある場合、完全に個別に書いちゃう

用途によると思う

885 :デフォルトの名無しさん:2010/12/14(火) 18:29:39
イミフ

886 :デフォルトの名無しさん:2010/12/14(火) 18:56:39
>>878
OnClassとOffClassを二つ作って使い分ければいいんじゃないの

887 :デフォルトの名無しさん:2010/12/14(火) 18:59:00
例えば、人間か動物かの判断をオンオフでしていて
毎回、オン(人間)なら○○させるみたいにしちゃってるんじゃないの?

888 :デフォルトの名無しさん:2010/12/14(火) 19:05:30
デリゲート使うと管理が面倒そうだ。

889 :デフォルトの名無しさん:2010/12/14(火) 19:07:36
面倒だよね

890 :デフォルトの名無しさん:2010/12/14(火) 19:12:04
methodA~Cに関連性があるならインターフェース、そうでないならデリゲートだな

891 :デフォルトの名無しさん:2010/12/14(火) 19:22:28
結局全部面倒ってことで、とりあえずif文に落ち着く。
実は一番シンプルでわかりやすい。テストやるんだし問題ないよ。

892 :デフォルトの名無しさん:2010/12/14(火) 19:40:13
もしそうならこんな質問はされないだろw

893 :デフォルトの名無しさん:2010/12/14(火) 19:56:38
話は聞かせてもらった!
NullObjectかその応用だな!
さらだば

894 :デフォルトの名無しさん:2010/12/14(火) 20:02:47
methodA、methodB、methodCのメソッド分割を見直した方がいいんじゃない?

895 :デフォルトの名無しさん:2010/12/14(火) 21:50:03
>>894
俺もそう思うんだ

896 :デフォルトの名無しさん:2010/12/14(火) 22:03:23
>>878
多分↓のどちらかのパターンだと思うけど的が外れてたらすまん。

(1)
interface ICheckAction { void On(); void Off(); }
class SomeClass {
  ICollection<ICheckedAction> Actions { get; }
  void DoAction() {
    if (checkBox.IsChecked) {
      foreach (var action in Actions) action.On();
    }
    else {
      foreach (var action in Actions) action.Off();
    }
  }
}

(2)
interface ICheckState { void DoAction(); }
class SomeClass {
  IChekcState On { get; set; }
  IChekcState Off { get; set; }
  void DoAction() {
    if (checkBox.IsChecked) {
      On.DoAction();
    }
    else {
      Off.DoAction();
    }
  }
}

897 :デフォルトの名無しさん:2010/12/14(火) 22:11:23
test

898 :デフォルトの名無しさん:2010/12/14(火) 22:19:19
>>896
分岐をそこに残したら意味ないじゃんw

899 :デフォルトの名無しさん:2010/12/15(水) 00:12:29
class Noobs{
    Action methodA, methodB, methodC;
   
    //Updateを呼ぶタイミングはチェックボックスのイベントに登録するとかお好みで
    void Update(){
        if(checkBox.Checked){
            methodA = method1;
            methodB = method2;
            methodC = method3;
        }else{
            methodA = method2;
            methodB = method1;
            methodC = method3;
        }
    }
   
    void method1(){
    }
    void method2(){
    }
    void method3(){
    }
}

900 :デフォルトの名無しさん:2010/12/15(水) 01:08:37
な。結局ifだけの方がわかりやすいだろ。
同じことやるにしても、人によって実装方法が変わりそうだし。

901 :デフォルトの名無しさん:2010/12/15(水) 01:23:21
どうせUIに依存しまくってんだから、1ヶ所に押し込む方が後で分かりやすいと思う。
UI依存の前提がなかったり、数が増えそうだったら別の方法にするけど、それは別の話。

902 :デフォルトの名無しさん:2010/12/15(水) 01:27:51
>>899はシンプルな方だと思うけど、条件分岐が単純な時はif文で十分だな

903 :デフォルトの名無しさん:2010/12/15(水) 01:41:08
他人と共同作業の時だとデリゲートが分からない奴とかいるしな

904 :デフォルトの名無しさん:2010/12/15(水) 07:40:36
WPFのListViewにバインドしたコレクションをソートする場合どのようにすればいいですか?
最初List<MyData>をバインドさせてたのだけど
ListにMyDataを追加してもListViewに反映されないので
ObservableCollection<MyData>でしたのですが
今度はSortやFindメソッドが無くて使いづらい
ListViewをソートするとSelectIndexとコレクションのIndexも対応
するようになっているので、見た目の削除と実際のデータの削除が違ってくる
どのようにするのが一般的なんでしょうか

MyDataはstring 名前とstring 説明があるだけの簡単なものです

905 :デフォルトの名無しさん:2010/12/15(水) 08:46:36
>>904
いろいろ余計なことを言いたい気がするが、とりあえず

ここから数ページ
ttp://blogs.yahoo.co.jp/elku_simple/27232181.html

906 :デフォルトの名無しさん:2010/12/15(水) 10:09:12
フォームで作ったダイアログで、どのボタンが押されて終了したかを、親のプログラムが知りたいんですが、どうすれば良いのでしょうか?

907 :デフォルトの名無しさん:2010/12/15(水) 10:44:16
>>906
DialogResult

908 :デフォルトの名無しさん:2010/12/15(水) 11:25:25
できました。どうもありがとうございました

909 :デフォルトの名無しさん:2010/12/15(水) 15:35:16
<script src="jquery-1.4.4.min.js"></script>
って感じで、jsやcssの外部ファイルをwebbrowser上で適用したいのですが、
うまくいきません。
htmlファイル感覚でexeを外部ファイルと同一のフォルダにいれてみても参照してくれませんでした。
外部ファイルを適用する方法はございませぬか。

以前、cssを使ったときはcssファイルを読んで、全行書き出すという荒業でwebbrowser上のhtmlに適用しました。
それ以外のスマートな手を開拓したいのです。(´・ω・`)

■テスト用ロジック
※外部ファイルの読み込みがうまくいってないのでもろちんスクリプトエラーが起きます。
. StringBuilder sbTest = new StringBuilder();
. sbTest.Append("<html>\n");
. sbTest.Append("<head>\n");
. sbTest.Append("<script src=\"jquery-1.4.4.min.js\"></script>\n");
. sbTest.Append("<script>\n");
. sbTest.Append("</script>\n");
. sbTest.Append("<head>\n");
. sbTest.Append("<body>\n");
. sbTest.Append("</body>\n");
. sbTest.Append("</html>\n");
. webBrowser1.DocumentText = sbTest.ToString();

910 :デフォルトの名無しさん:2010/12/15(水) 15:44:28
絶対パスで書けばいいんじゃね?

911 :デフォルトの名無しさん:2010/12/15(水) 16:08:55
>>909
この辺を参考に
http://cs2ch.blog123.fc2.com/blog-entry-72.html

912 :デフォルトの名無しさん:2010/12/15(水) 16:14:45
>>910
完全に目と脳が凍っていた、その手があったね。
けど、絶対パスで試したけどできなかった。
. sbTest.Append(Application.StartupPath);
. sbTest.Append("\\jquery-1.4.4.min.js");

表示されたwebbrowser上のページをで右クリして、htmlソースをコピペしてIEで開くとちゃんと動いた。
javaスクリプトが動かないようになってるのかと思って、アラート表示してみたら見事に動いた。
. sbTest.Append("alert(\"ようこそ!\")");

死にたい

>>910
ありがとう、試してみる
生きたい

913 :デフォルトの名無しさん:2010/12/15(水) 16:41:14
普通のクラスもWPFみたいに簡単にBindingできたらいいのに

914 :デフォルトの名無しさん:2010/12/15(水) 16:55:25
設計古いから仕方ない。当時はあれで良かった。

915 :デフォルトの名無しさん:2010/12/15(水) 16:56:44
INotyfiChangeだのDependency Objectだの普通より複雑なコードになるし
処理も重くなるからね。仕方ない。

916 :デフォルトの名無しさん:2010/12/15(水) 17:03:29
こんなんでやらないとだめなのかも
http://ameblo.jp/norixp/entry-10013046111.html

917 :デフォルトの名無しさん:2010/12/15(水) 17:09:07
>>916
いやそんな面倒なことしなくてもhtmlをちゃんと与えるとhtmlヘッダに書かれた
パスからjsやcssを読み込む

>>911の先を読めばいい

918 :デフォルトの名無しさん:2010/12/15(水) 17:12:43
2chブラウザだとhtmlの$APPPATHの部分を自アプリのパスに書き換えてから読み込んでるよね

919 :デフォルトの名無しさん:2010/12/15(水) 17:15:01
いったんhtmlファイルを吐き出して
webbrowder.navigate("file://hoge.html");
とかしたらだめなんだろうか

920 :デフォルトの名無しさん:2010/12/15(水) 17:16:06
例えば専ブラから書き出したhtmlのスクリプトファイルのパスは
絶対パスがかかれている
そのhtmlをWebBrowserでそのまま読み込ませたらスクルプトが適用される
でも、絶対パスが書かれているから、このhtmlをそのまま他人がみることはできない

921 :デフォルトの名無しさん:2010/12/15(水) 17:17:42
>>919
ebBrowser1.DocumentTextへ正しいhtmlを渡せばnavigateと同じ動作が起きる

writeだかはnavigateが起きない



922 :デフォルトの名無しさん:2010/12/15(水) 17:20:43
うは
コピペしたのでいろいろおかしいww

>ebBrowser1.DocumentText
WebBrowser.DocumentText


923 :デフォルトの名無しさん:2010/12/15(水) 17:22:36
お前らってエロいんだな

924 :デフォルトの名無しさん:2010/12/15(水) 17:27:47
htmlに吐き出してnavigateしたらうまくいった。

925 :デフォルトの名無しさん:2010/12/15(水) 17:48:38
ソフト作ったのだけど誰かに見せたい
でも友達いない
ベクターにうpるほどのものでもない
どうすればいい?

926 :デフォルトの名無しさん:2010/12/15(水) 17:50:27
>>925
ブログかgeocitiesでうpする。

927 :デフォルトの名無しさん:2010/12/15(水) 18:00:21
ブログって画像しかうpできないとこが多いよね
HP作るしかないか

928 :デフォルトの名無しさん:2010/12/15(水) 18:03:02
アップローダに上げてリンクとか
http://www.axfc.net/uploader/

929 :デフォルトの名無しさん:2010/12/15(水) 18:07:49
skydriveの公開フォルダに突っ込んでおけばおk

930 :デフォルトの名無しさん:2010/12/15(水) 18:15:56
ぐああああああああああああああああああああああああああ
できねええええええええええええええええええええええええ
おかしくなるあああああああああああああああああああああ

ふぅ

@>>911の通りにフォルダ作って、Debugにもフォルダ作る
Ascript src=のパス部分をDebug内に作ったフォルダのjsファイルの絶対パスに置き換えて実行
 ⇒スクリプトエラー
BWebbrowser上で右クリしてソース表示、htmlファイルに保存
CwebBrowser1.Navigate(Bで保存したhtml)
 ⇒エラーなしで想定どおりに動く

ドッカン
          ドッカン
                  ☆ゴガギーン
        .______
.        |    |    |
     ∩∩  |     |    |
     | | | |  |    |    |
    (  ,,)  |     |    |
   /  つ━━"....ロ|ロ   . | l
 〜(  /   |    |    |
   し'∪  └──┴──┘

931 :デフォルトの名無しさん:2010/12/15(水) 18:20:11
>>930
ソースが違っているはずだからそこを確認

932 :デフォルトの名無しさん:2010/12/15(水) 18:20:25
>>930
動かないとかいうソースだせよ
あとIE側の設定もやったか?

933 :デフォルトの名無しさん:2010/12/15(水) 18:20:33
>>924
敗北を認めてこれでいくよ
ありがとう(;ω;)

934 :デフォルトの名無しさん:2010/12/15(水) 18:25:54
あと適当なhtml書いてるけど文字コードとか大丈夫なの?


935 :デフォルトの名無しさん:2010/12/15(水) 18:26:02
>>929
ちょっと前までskydriveにソフト公開してたんだけど
アクセス数が多すぎたのかやばいものと判断されたのかわからんが
ダウンロードできなくなったんだよな
あそこってなんか制限とかあんの?

936 :デフォルトの名無しさん:2010/12/15(水) 18:27:13
>>930
ローカル参照の場合セキュリティが発生するから
それを無効にするコードはhtmlに書き込んだ?

937 :デフォルトの名無しさん:2010/12/15(水) 18:44:47
>>932
中濃ソースだよ
ttp://www.rupan.net/uploader/download/1292406115.zip
about:blankを許可サイトに追加して、いろいろなモノが動くように設定を有効化したけど
ダメだったさ

>>934
>>936
IEとFFで動いたから、そのままでもいいかと
utf-8でも指定するか・・・

938 :デフォルトの名無しさん:2010/12/15(水) 19:01:25
IE8だとスクリプトエラーになるな

スクリプトの動作確認できてるの?

939 :デフォルトの名無しさん:2010/12/15(水) 19:08:38
>>937
そんなことするんじゃないよ

WPF の WebBrowser でセキュリティ保護警告を抑止する | アカベコマイリ
http://akabeko.sakura.ne.jp/blog/2009/10/wpf-%E3%81%AE-webbrowser-%E3%81%A7%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E4%BF%9D%E8%AD%B7%E8%AD%A6%E5%91%8A%E3%82%92%E6%8A%91%E6%AD%A2%E3%81%99%E3%82%8B/

940 :デフォルトの名無しさん:2010/12/15(水) 19:23:52
>>938
俺のIEはエラーにならない

>>939
無理だった

jsのパスを「http://code.jquery.com/jquery-1.4.4.js」で読みに行っても
スクリプエラーだぜ
ローカルはきっと関係ないんだ・・・
書き出してnavigateするしかないんだ
あきらめた

941 :デフォルトの名無しさん:2010/12/15(水) 20:08:07
>>940
そりゃだめだろwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

942 :デフォルトの名無しさん:2010/12/15(水) 20:09:24
ローカルのjsを読みにいく話かと思ったら
そんなの無理に決まってるだろ

943 :デフォルトの名無しさん:2010/12/15(水) 20:13:00
え?だめじゃないだろ

944 :デフォルトの名無しさん:2010/12/15(水) 20:16:57
他人のサイトのjsを参照してデスクトップアプリから利用したり
自分のサイトで利用できたら問題だろ

945 :デフォルトの名無しさん:2010/12/15(水) 20:19:33
最近のブラウザはURIから所有者が同じかどうか分かるのか凄い技術だな

946 :デフォルトの名無しさん:2010/12/15(水) 20:30:15
そのスクリプトエラーは単に文字コード関連じゃないの?


947 :デフォルトの名無しさん:2010/12/15(水) 20:32:22
tosjisしてる?

948 :デフォルトの名無しさん:2010/12/15(水) 20:37:56
jquery.jsにアプリから毎回直リンとかやっていいの?
prototype.jsとか直リン弾くようになってなかったっけ

949 :デフォルトの名無しさん:2010/12/15(水) 20:58:52
というかC#だけの話じゃないのでもうちょっと自分で調べろ


950 :デフォルトの名無しさん:2010/12/15(水) 21:06:57
>>949
書き出すからから大丈夫さ


951 :デフォルトの名無しさん:2010/12/15(水) 21:34:10
【C#, C♯, C#】 MonoMac 【MonoDevelop】   
http://hibari.2ch.net/test/read.cgi/mac/1291602001/

詳しい奴、ちょっと↑きてくれ

952 :デフォルトの名無しさん:2010/12/15(水) 21:35:55
お前らっていい奴だよな

953 :デフォルトの名無しさん:2010/12/15(水) 21:48:23
お前だっていい奴らだよ

954 :デフォルトの名無しさん:2010/12/15(水) 21:53:17
>>953
お前だけだな例外は。

955 :デフォルトの名無しさん:2010/12/15(水) 23:14:17
だれか>>953をcatchしてやれよ

956 :デフォルトの名無しさん:2010/12/15(水) 23:34:25
日本人は複数形が苦手だな
特に英語の場合それが顕著に現れる

957 :デフォルトの名無しさん:2010/12/15(水) 23:56:18
どう見ても日本語だで

958 :デフォルトの名無しさん:2010/12/16(木) 01:25:13
すれ違いとか言われそうだけど、C#の方がわかるのでここで質問。
引数により生成するオブジェクトを変えたいファクトリークラスを作ろうとしています。
調べてみるとシンプルファクトリとファクトリーメソッドという方法があることがわかったのですが
この2つの使い分けがいまいち分かりません。
ソースはこんな感じにしようとしています。
シンプルファクトリ:http://ideone.com/JIXmc
ファクトリーメソッド:http://ideone.com/UTwhn

もし後から生成するクラスの種類が増えることがある場合、ファクトリーメソッドにした方が良いのでしょうか。
それぞれの利点を教えてくださると助かります。

959 :デフォルトの名無しさん:2010/12/16(木) 01:49:19
それぞれの利点というか併用されることも多いみたいだけど・・・

ま、それはいいとしてJava時代のデザインパターンってC#に合わないものも多いんで
本当にそのパターンが有益かどうか考えた方がいいよ

960 :デフォルトの名無しさん:2010/12/16(木) 01:53:20
observerパターン!
stateパターン!
visitorパターン!


C#にはこんなんいらねーよな

961 :デフォルトの名無しさん:2010/12/16(木) 01:59:15
抽象クラス使うものは全部いらないなw

962 :デフォルトの名無しさん:2010/12/16(木) 02:18:59
今の C# だと、ファクトリクラス用意するよりも、
Func<IProduct> のデリゲート受け取る設計の方が楽だしシンプルだしいいかもしれない。

963 :デフォルトの名無しさん:2010/12/16(木) 02:19:45
>>960
要らないっていうと語弊招きそう。
ちゃんと、言語自体に機能持ってるからプログラマーがパターン意識する必要がないって言わないと。

964 :デフォルトの名無しさん:2010/12/16(木) 09:56:06
>>958
デザインパターンはよく知らないけど、
シンプルファクトリの方で実装を進めて、
後から生成クラスが増えた場合は、
Factory f = new Factory(); の部分を、
Factory f = new FactoryEx(); とかにすればよいのでは?abstractにする必要性ってなんだろう?

Wikiのファクトリーメソッドを見たけど、メソッド部分をクラスにしている理由がよくわからない。オーバーライドでよくないかね?
たぶん必要になったら、勝手にそう言う実装になっていくとは思うけど。
http://ja.wikipedia.org/wiki/Factory_Method_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3

965 :デフォルトの名無しさん:2010/12/16(木) 09:56:09
stateはstateのメソッドが複数あるなら使うだろ
visitorは無駄に複雑になるしインターフェイスも汚くなるから列挙体とかで
振り分けた方が好ましいけどそれはC#の機能関係ないし
dynamic使えば動的に振り分けられるがまずそんなことしない

966 :デフォルトの名無しさん:2010/12/16(木) 10:01:33
某「猫でも〜」のサイトを見ながらC#を始めたのですが、
私は猫以下のようです・・・
でも、VS2010Expressに特化して解説したサイトとコーディング全然違うし・・・
まあコンソール編は当然違うだろうけど、フォーム編のコーディングもちょっと特殊ですよね?
あのサイト本当に分かりやすいですか?
本を売るために、わざと解りにくく書いてるのかな?

967 :デフォルトの名無しさん:2010/12/16(木) 10:09:39
>>966
今見てみたけど、情報が古そう。デザイン部分もコーディングしてるし。
見なくて良いと思う。

968 :デフォルトの名無しさん:2010/12/16(木) 10:26:41
>>967
そうですかぁ。特殊なのかと思ったら、古いのですか・・・
2010Expressでフォームアプリを中心に解説してるお勧めサイト無いですか?


969 :デフォルトの名無しさん:2010/12/16(木) 10:35:27
ないな
いろんなブログ見ていくしかない

970 :デフォルトの名無しさん:2010/12/16(木) 10:39:38
>>968
>>911の2chの専用ブラウザあたりを試してみては?
2008で説明されてるけど2010でも問題ないと思うし

971 :デフォルトの名無しさん:2010/12/16(木) 11:11:34
ブログとか、多くのサイトって断片的過ぎて、それらをまとめる能力無いんよね、初心者は。
完結したプログラムを幾つか作って改造したりして、半年くらい繰り返したら、そういう情報を寄せ集めもできるようになるんじゃね?

972 :デフォルトの名無しさん:2010/12/16(木) 11:15:41
知りたいことは断片的なものだろうけど
初心者に必要なのはコピペ能力じゃないんだよな
IDEが親切過ぎて盲目になっちゃうのは仕方がない

973 :デフォルトの名無しさん:2010/12/16(木) 11:18:04
この動画を見ていけば初心者でもマスターできるよ
http://www.nicovideo.jp/watch/sm9126061

974 :デフォルトの名無しさん:2010/12/16(木) 11:39:23
初心者への説明で

テンプレート
メソッド
プロパティ

などの単語を使って説明したりするけど
初心者はまず、その単語の意味すらわからない

参照する

という言葉も日常の意味とはまったく違う
プログラミングにおける参照はどういう意味があるのか
この説明もしなければいけない

日常的な言葉で説明して一見わかりやすそうに見えるが
初心者には逆に難しい
一般的な言葉の意味だけで説明していかないとまず理解してもらえない

975 :デフォルトの名無しさん:2010/12/16(木) 11:46:44
自動生成されたラジオボタンのグループを、別に用意したボタンを押した時に状態を
参照するスマートな方法ってありますか?

if文でsenderかを比較するとか、下記のswitch文にするくらいしか思いつきません

private void button1_Click(object sender, EventArgs e)
{
  RadioButton[] rbnTable = { radioButton1,radioButton2,radioButton3 };

  foreach(RadioButton btn in rbnTable)
  {
    if(btn.Checked == true)
    {
      int pos,btnNum;
      string btnPref = "radioButton";

      pos = btn.Name.IndexOf(btnPref);
      if(pos == 0)
      {
        btnNum = int.Parse(btn.Name.Substring(btnPref.Length,btn.Name.Length - btnPref.Length));
        switch (btnNum)
        {
          case 1:      break;
          case 2:      break;
          case 3:      break;
          default:      break;
        }
      }
      break;
    }
  }
}

976 :デフォルトの名無しさん:2010/12/16(木) 11:50:18
>>975
イベントを作る

977 :デフォルトの名無しさん:2010/12/16(木) 11:55:09
>>975
イメージがよくわからんけどラジオボタンの状態を管理すればいいだけとちゃうの?
チェック先を変えればイベント発生するし

978 :デフォルトの名無しさん:2010/12/16(木) 11:56:12
if(btn.Checked == true)

if(btn.Checked)

From rb in RadioButtons
Where rb.Checked
Select true

979 :デフォルトの名無しさん:2010/12/16(木) 13:20:23
>>975
ボタン_click()
{
if (radioButton1.Checked) 処理;
if (radioButton2.Checked) 処理;
if (radioButton3.Checked) 処理;
}
ではないのか?あまりにも単純な話すぎて、勝手に難しい問題に解釈されているような。

980 :デフォルトの名無しさん:2010/12/16(木) 13:23:40
>>979
それは効率悪いだろ・・・
どういうことをやりたいかもうちょっとわかればコードもかけるが
よくわからないところがあるしなあ・・・

981 :975:2010/12/16(木) 13:51:47
例で書いたcase文の中の処理が重要で、それ以外を上手く手抜きできないかと考えました。
本当はcase文ではなく、配列化された処理を呼び出すために連番となっている番号を取得したかったのです。
言葉足らず過ぎて失礼しました。

>>976-977
ラジオボタンのCheckedChangedで変数に番号を代入してButton1_Clickで参照する方法は
定石でしょうし、条件分岐も楽なのは解ります。
ただ、一カ所だけで処理したかったので

>>978
Linqはまだ良く解らなくて...
select trueなのかselect rbなのか、varに入れた内容からradioButtonの番号を抽出する方法とか
foreachで回すよりは良いとは思います

>>979-980
すいません。
関数[btnNum];
という処理をやってみたかったのですが、関数の配列化はこれから勉強するつもりです。

982 :デフォルトの名無しさん:2010/12/16(木) 13:58:19
Linqなんて簡単だよ。
覚えてると楽になるからさっさと覚えれ。

983 :デフォルトの名無しさん:2010/12/16(木) 14:09:52
たぶん、食わず嫌いの人はクエリを見てワケワカラン状態になってる。
先にメソッド見てみたら簡単だとわかるよ。

http://ufcpp.net/study/csharp/sp3_stdquery.html // クエリ
http://ufcpp.net/study/csharp/sp3_stdqueryo.html // その他。こっちを先に

984 :デフォルトの名無しさん:2010/12/16(木) 14:23:26
>>981
こんなんでいいのとちゃうの?
http://ideone.com/4eIea

985 :デフォルトの名無しさん:2010/12/16(木) 14:26:38
VB6のコントロール配列みたいな物でなくて?
http://dobon.net/vb/dotnet/control/buttonarray.html

986 :デフォルトの名無しさん:2010/12/16(木) 14:28:18
class MyRadioButton:RadioButton
{
public int Number{get;set;}
}


if(TypeOf(btn).Name=="MyRadioButton")
{
switch( btn.Number )
{
}
}

987 :デフォルトの名無しさん:2010/12/16(木) 14:42:05
>>984の改良版
http://ideone.com/2iI1L

988 :デフォルトの名無しさん:2010/12/16(木) 14:49:37
初心者ってクラスやメソッドを自作しないで
あるがままのを使おうとするよね

989 :デフォルトの名無しさん:2010/12/16(木) 14:56:34
>>988
まあそういう試行錯誤も悪くはないよ
知らないんだし

でもそのまま突っ走られるより質問しただけいいんじゃないの?
試行錯誤しないまま答えだせや!!と言わんばかりにこの辺のスレに
来られるのもあれだけどw

990 :デフォルトの名無しさん:2010/12/16(木) 15:03:40
童貞のくせに偉そうだなw

991 :デフォルトの名無しさん:2010/12/16(木) 15:08:10
switch((rbnTable.Where(rb=>rb.Checked)).Num)
{

}

992 :デフォルトの名無しさん:2010/12/16(木) 15:42:10
>>983
SQL構文をそのまま実装してくれればいいのに.

993 :デフォルトの名無しさん:2010/12/16(木) 15:47:36
ReactiveExtension便利だよね。

994 :デフォルトの名無しさん:2010/12/16(木) 17:07:26
using System.Runtime.InteropServices [DllImport("○○.dll")]
で呼び出したAPI関数は、その呼び出したclassの中でしか使えないのでしょうか?
他のクラスから、コンストラクタを呼び出して普通のメソッドと同じようにやると、
アクセスできない領域にあるとエラーが出ます。

995 :デフォルトの名無しさん:2010/12/16(木) 17:14:15
>using System.Runtime.InteropServices [DllImport("○○.dll")]
これ管理用のC#のクラスを作ってそれを呼び出せば?

996 :デフォルトの名無しさん:2010/12/16(木) 17:16:07
呼び出したんじゃなくて定義したんだろ

エラーメッセージは正しく
でそれをぐぐってみた? ていうかMSDNで該当するエラー番号調べた?

997 :975:2010/12/16(木) 17:42:16
ソースを晒してくれた方へ
>>ラジオボタンのCheckedChangedで変数に番号を代入してButton1_Clickで参照する方法は
>>定石でしょうし、条件分岐も楽なのは解ります。
>>ただ、一カ所だけで処理したかったので
の変なコダワリによって、今回の件での使用は控えさせていただきますが、
将来、マトモなソフトを作る時の参考にさせてもらいます。

Linqでやろうと思いますが、まだ濃い霧の中。

とりあえず御礼まで

998 :デフォルトの名無しさん:2010/12/16(木) 17:50:35
>>997
え・・・・
>>987はその仕様みたしてるじゃん・・・
わからないなら説明求めろよw

999 :994:2010/12/16(木) 18:00:49
自己解決しました。
APIの定義をPublicにして、インスタンス参照から型参照に変えたらエラーがでなくなりました。


1000 :デフォルトの名無しさん:2010/12/16(木) 18:17:15
>>980踏んだ人 スレ建てヨロシク

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

203 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)