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

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

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

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

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

前スレ

ふらっとC#,C♯,C#(初心者用) Part39
http://pc12.2ch.net/test/read.cgi/tech/1237051173/

2 :デフォルトの名無しさん:2009/04/13(月) 14:08:48
2ならぬるぽ

3 :デフォルトの名無しさん:2009/04/13(月) 14:08:52
-----関連スレ

C#, C♯, C#相談室 Part51
http://pc11.2ch.net/test/read.cgi/tech/1233757615/

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
http://pc11.2ch.net/test/read.cgi/tech/1231506876/

初心者のためのプログラミング言語ガイド Part14
http://pc11.2ch.net/test/read.cgi/tech/1235692421/

----参考サイト

http://www.google.co.jp/
http://msdn.microsoft.com/ja-jp/library/default.aspx
http://homepage3.nifty.com/midori_no_bike/CS/
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
http://dobon.net/vb/dotnet/
http://jeanne.wankuma.com/tips/
http://www.labasp.net/CsharpNote/

4 :デフォルトの名無しさん:2009/04/13(月) 14:09:11
>>2
クソカスがっ

5 :デフォルトの名無しさん:2009/04/13(月) 14:10:49
>>前スレ994
では質問を変えます。
ファイルパスから正しい大文字小文字を区別したファイルパスを取得する方法を教えてください。
Path.GetFileName()はパスを分解して返してくるだけで実際のファイル名を返しません。

6 :デフォルトの名無しさん:2009/04/13(月) 14:13:59
>>5
質問に答える前に実行環境聞かれてただろ?
windowsなら
> 正しい大文字小文字を区別したファイルパス
そんなファイルパスは無いでFA

7 :5:2009/04/13(月) 14:16:56
>>6みたいな内容を理解せずに誤った事を答える人は無理して書く必要はありません。

ところで自己解決しましたので載せておきます。
http://dobon.net/vb/dotnet/file/filesystemwatcherbug.html
http://dobon.net/vb/dotnet/file/getshortpath.html

8 :1:2009/04/13(月) 14:19:29
そういう実装依存な解決をするのもどうなのかとは思う

9 :5:2009/04/13(月) 14:21:02
他に良い解決方法があるのですか?

10 :デフォルトの名無しさん:2009/04/13(月) 14:24:02
何が言いたいんだお前は
ファイル名の大文字小文字を正しく取得したい
でいいんじゃないのか?

ちなみにWindows上では大文字小文字が違おうと同じファイル名として扱われる
だからTEST.txtをtest.txtとして取得しても、問題なくファイルは開ける。

ということで大文字小文字が違おうと"実際のファイルパス"は"返ってきてる"
ファイラーなどを作っていて、大文字小文字を正しく表示したい場合は、"実際のファイルパス"ではなく
"大文字小文字が正しいファイルパス"と言わないと伝わらない

あと、この問題は.NET Framework2.0で修正されてるようだが
おまいは未だに1.1を使ってるのか?

11 :5:2009/04/13(月) 14:26:22
>>10みたいにただ感情的にスレを荒らす人は書く必要はありません
御自分でお調べになってください

12 :デフォルトの名無しさん:2009/04/13(月) 14:27:12
煽り合い宇宙の様相を呈してまいりました

13 :デフォルトの名無しさん:2009/04/13(月) 14:28:22
おまいが1.1を使ってるかどうかなんてどうやって俺が調べろとw

14 :デフォルトの名無しさん:2009/04/13(月) 14:33:50
>>7
あれ?おまえ貧乳じゃね?

15 :デフォルトの名無しさん:2009/04/13(月) 14:34:25
痛すぎる5を見てかーちゃん泣きそうだよ

16 :デフォルトの名無しさん:2009/04/13(月) 14:39:12
なにがなんでもっていうんなら、DirectoryInfoから取れば?

17 :デフォルトの名無しさん:2009/04/13(月) 14:41:40
5と一緒のプロジェクトでは働きたくないってことは把握した

18 :デフォルトの名無しさん:2009/04/13(月) 14:56:36
ほんと何様のつもりなんだよな5はw

19 :デフォルトの名無しさん:2009/04/13(月) 15:00:45
俺様

20 :デフォルトの名無しさん:2009/04/13(月) 15:06:26
大文字小文字を区別するファイルシステムを持つコンピュータと共有するときどうなるんだろう

21 :デフォルトの名無しさん:2009/04/13(月) 15:08:06
ワレワレハファイルシステム
テイコウハムイミダ

22 :デフォルトの名無しさん:2009/04/13(月) 15:13:56
Linuxのsamba上にdateコマンドの出力を書き込んだdate1.txtとDATE1.txtを用意してみた。
エクスプローラー上では2つとも見える。
が、どちらをメモ帳等開いてもdate1.txtの中身が表示され、DATE1.txtにはアクセスできない。
dirコマンドでもエクスプローラー同様、2つとも見える。
しかし、typeコマンド、cygwinのcatコマンドではどちらもdate1.txtしかアクセスできない。

総合すると、見えはするが片方しかアクセスできないということだな。
実用にはならんだろう。

23 :デフォルトの名無しさん:2009/04/13(月) 15:19:46
>>22
スレ違いな上に何を試してるのかも結論も意味不明

24 :デフォルトの名無しさん:2009/04/13(月) 15:22:14
>>23

20のレスに対して端的に実験をしてみただけなんだが。
まさかそんな突っ込みがはいるとは思わなかったよ。

25 :デフォルトの名無しさん:2009/04/13(月) 15:33:12
それなら自前でファイルシステム作って直接マウントしてやってみてよ

26 :デフォルトの名無しさん:2009/04/13(月) 15:39:37
>>25
お前は何が言いたいんだ?

27 :デフォルトの名無しさん:2009/04/13(月) 15:47:55
IDの出ない板で煽り合い、楽しいのう

28 :デフォルトの名無しさん:2009/04/13(月) 15:57:00
自前のファイルシステムって・・・
OrenoFileSystemとか作れってことかい?
まず仕様から決めないとな

29 :デフォルトの名無しさん:2009/04/13(月) 15:57:29
>>22がすごい参考になったのは俺だけ?

30 :デフォルトの名無しさん:2009/04/13(月) 16:01:04
sambaで共有したディレクトリにそのOSから直接書き込むバカがいるってことはわかった。

31 :デフォルトの名無しさん:2009/04/13(月) 16:26:40
Linux上は大文字小文字を判別する。Win上は判別しない。それだけ。

32 :デフォルトの名無しさん:2009/04/13(月) 19:28:01
>>20
蛇足の蛇足になるが、WindowsにはPOSIXサブシステムとかあるから、
その気になれば、Windows機単独でも試せるぞ。

33 :デフォルトの名無しさん:2009/04/13(月) 19:33:36
で、結局>>5は何がやりたかったの?

34 :デフォルトの名無しさん:2009/04/13(月) 20:11:42
表示用か何かで、c:\program files→C:\Program Filesのように、
ディスク上に存在するとおりの名前を取得したいのではないかと推測。

35 :22:2009/04/13(月) 20:25:52
アプリケーション設定の保存先はApplication Data/Local Settings/レジストリの
いずれかを選べるわけだが、プログラムのカレントに置くことは不可能なんだっけ?
(まあVistaでProgram Filesにインストールされちまったらどの道不可能なわけだが)

マイドキュメント内に設定ファイルを保存する仕様で、
データ保存用にYAMLとかSQLiteとか考えてみるかなぁ……。

36 :デフォルトの名無しさん:2009/04/13(月) 20:33:55
ToolStripMenuItemに表示される文字列についてなんですが
「&&」が含まれる文字列をTextプロパティに設定した場合
表示上は「&」が1つだけになってしまいましたが
実際にTextプロパティから文字列を取得すると「&&」になっています。
表示も「&&」とするにはどのようにしたら良いのでしょうか。お願いします。

37 :デフォルトの名無しさん:2009/04/13(月) 20:47:40
>>36
そもそも、&F と書いたらFキーに反応するメニューになるわけだが?
そこから類推して考えよう。

38 :デフォルトの名無しさん:2009/04/13(月) 21:04:11
>>5
Path.GetFullPath()を試したか?

39 :36:2009/04/13(月) 21:43:20
>>37
ありがとうございます。
ToolStripMenuItemにはUseMnemonicプロパティに相当するものがないようなので
自分で文字列そのものの&を増やしてやるしかないですかね

40 :デフォルトの名無しさん:2009/04/14(火) 08:45:38
C#ってソースコード見られてしまうんでしょう?
ユーザーに配るときどうするの?
難読化するだけ?

41 :デフォルトの名無しさん:2009/04/14(火) 08:55:27
知られたくないコードはdllにするなりしてネイティブ化すれば?

42 :デフォルトの名無しさん:2009/04/14(火) 08:57:35
ネイティブ化って.NETを使わずC++で書くってこと?

あとdllにしてもノートブックで開くと見えてしまいますよね。

43 :デフォルトの名無しさん:2009/04/14(火) 08:58:13
ノートブック?
ネイティブ化レベルで嫌ならそれはC#の問題じゃないだろ
暗号化ツールでも使えよ

44 :デフォルトの名無しさん:2009/04/14(火) 09:02:52
Nandokuってソフトがあるから使えば

45 :デフォルトの名無しさん:2009/04/14(火) 09:17:31
どうせILを解析されたらわかっちゃうんだから、嫌なら配布はやめて
サービスを提供するようにすれば?

46 :デフォルトの名無しさん:2009/04/14(火) 09:19:18
俺はただ単に自分のソースが恥ずかしいから難読化してるw

47 :デフォルトの名無しさん:2009/04/14(火) 09:26:47
じゃあ普通は難読化+暗号化するのね。

48 :デフォルトの名無しさん:2009/04/14(火) 11:22:13
おれは、普通に書いてるつもりでも、
難読化した?って聞かれる orz


49 :デフォルトの名無しさん:2009/04/14(火) 11:31:02
dllを作れば、ソースコードそのものは見られなくなるの?

50 :デフォルトの名無しさん:2009/04/14(火) 11:31:01
>>48
引き抜きたい

51 :デフォルトの名無しさん:2009/04/14(火) 11:33:54
>>50
抱かれたい Yes Falling'Love

52 :デフォルトの名無しさん:2009/04/14(火) 12:50:30
今度、C#でアプリを作ろうと考えています。
そこで、今までのC++(MFC)の資産を多少流用したいのですが、連携って可能なんでしょうか?
一応、ネイティブコードは、マネージコードでラップしてやって呼び出せるのは試しました。
例えば、CDialogとかでUIやリソースを伴うものを、C#のフォーム内に貼り付けるみたいな事は実現出来ますでしょうか?
よろしくおねがいします。

53 :デフォルトの名無しさん:2009/04/14(火) 13:26:35
>>52
詳細は自分でぐぐって調べればいいと思うが、
FormsとMFCは根本的に違う仕組みなので、残念ながらソースコードそのものの流用はほとんど利かないと思う。
せいぜい、ダイアログやウィンドウをコンポーネントのレベルで流用するくらいだろうか。
それもCOM越しかC++/CLIでラップする必要があるだろう。

54 :デフォルトの名無しさん:2009/04/14(火) 14:03:02
>>53
有難うございます。
ビデオ編集ソフトを作れとのお達しなのですが、どうもDirectShowは
公式にC#から呼び出すクラスなどは用意されていないみたいで、
(DirectShow.netは権利的に使えないので)DirectShowをC++/CLIでラップするか、
それとも、DirectShowが必要な部分だけ(例えば表示とか)をC++で書いて、
そのコンポーネントを丸ごと持ってきちゃえばいいかなと思いました。
C++はMFCメインで今まで作ってきたのですが、例えばMFCで作成したクラスを
DLL等々にして、C++/CLIでラップしてやれば、実現できそうですかね?
有難うございました〜。

55 :デフォルトの名無しさん:2009/04/14(火) 15:21:15
文字等を描画表示するとき

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawImage(_bmp, x1, y1, srcRect, units);


Invalidate();
としてまとめて書いた_bmpを更新して表示してるんですが

一文字ずつ書いた跡を表示したいので
このフォーム eにあたる部分に直接書き込む方法ないでしょうか?

56 :デフォルトの名無しさん:2009/04/14(火) 15:32:23
>>49
ノートパッドというものを使うと
中味を見られてしまうと
教えてgooに書いてある

57 :デフォルトの名無しさん:2009/04/14(火) 15:38:44
dllにもネイティブコードとILのがあんだろ
混ぜて考えるなよ

58 :デフォルトの名無しさん:2009/04/14(火) 16:05:46
>>55
意味がわからん

59 :55:2009/04/14(火) 16:18:14
e.Graphics.に直接Drawしたいのですが
他の場所でやるとバグってしまいます

書きたい場所からOnPaintを呼び出して
そこでDrawStringするように試してみます

60 :デフォルトの名無しさん:2009/04/14(火) 16:19:38
このスレ見てるとたまに頭おかしくなりそうになるな

61 :デフォルトの名無しさん:2009/04/14(火) 16:20:28
普通に逆コンパイラに食わせればすぐ見えるわけだが。
早速自作ソフトを食わせてみたが、リソースもソースコードも丸見えだなw
しかも、コメントがない程度でほとんどもとのコードと遜色がない。

機械語に変換されるネイティブと違って.NETはILまでしか落ちないからなぁ。
難読化? 別にいいや。

62 :デフォルトの名無しさん:2009/04/14(火) 16:23:02
簡単に見られたくないコードはアンマネージドで書けってことか。

63 :デフォルトの名無しさん:2009/04/14(火) 16:29:41
猫Winの文字化け表示の話をweb検索で解決できたw
まあ第3版買えってことなんだろうな

64 :デフォルトの名無しさん:2009/04/14(火) 16:37:56
つ 難読化 ・・が続く、いつもなながれだな。飽きないね。

65 :デフォルトの名無しさん:2009/04/14(火) 16:59:37
そこまでして見たがる人間がどこまでいるのかと
自意識過剰なんじゃね?

66 :デフォルトの名無しさん:2009/04/14(火) 17:04:12
見られて困る部位をC#やVB.NETで書いてあるようなアプリなんて間違いなく使い物にならない

67 :デフォルトの名無しさん:2009/04/14(火) 17:15:35
え?vb.netも見られちゃうの?

68 :デフォルトの名無しさん:2009/04/14(火) 17:17:15
いやんみないでぇ

69 :デフォルトの名無しさん:2009/04/14(火) 17:28:01
>>66
言えてるな。コアの部分にそれらの言語を選択してるアプリなんて
わざわざ逆アセしたところで得るものなんて何もない

70 :デフォルトの名無しさん:2009/04/14(火) 17:28:08
お前の粗チン(ソースコード)何か誰もみねえよ
お前のソースコード覗いて100円の特になるか?
100銭の得にもならんだろ

っていってやれよ初めから
初心者ほど言い出しがちなネタなんだから
まず初心者脱出しろ

71 :デフォルトの名無しさん:2009/04/14(火) 17:44:09
.NETの案件でいくら動くか知ってて言ってるのか……。

>>67
それだけじゃなくむしろC#で書かれたプログラムをVB.NETで逆アセしたり、また逆もできる。

72 :デフォルトの名無しさん:2009/04/14(火) 17:48:05
MonoのAOTでネイティブコンパイルすればOK

73 :デフォルトの名無しさん:2009/04/14(火) 17:49:29
スレタイに初質って書いてんだろ。
そんなスレで案件とか、字も読めない文盲か?脳障害か?
どっちにしろ病院の方が先だな。

74 :デフォルトの名無しさん:2009/04/14(火) 17:51:57
何でキレてんのw
言ってることは分からんでもないがw

75 :デフォルトの名無しさん:2009/04/14(火) 17:58:49
(´・ω・`)しーましぇん。

でもねー案件がどうとか言い出すなら、
予算出してもらってMSの難読化ツール買うなり、
ネイティブコード要因雇って移植するなりすりゃいいんじゃねえかと。

ボランティア回答スレで何求めてるの?
業務サポートですか?

76 :デフォルトの名無しさん:2009/04/14(火) 18:00:37
>>59
もうちょっと整理してやりたいことと今やってることを書いてみたら。
OnPaintとそれ以外で描く場合の動作はわかってしまえば簡単なんだが
見た感じだけで動作を予測するのは難しい。

オフスクリーンバッファを用いれば解決しそうな気がしないでもない。

77 :デフォルトの名無しさん:2009/04/14(火) 18:01:02
ソースを見られたら困るというほど貴重なテクニックとかアルゴリズムを使ってるなら
逆にそれを特許申請して金取って使わせたらどうよ

78 :デフォルトの名無しさん:2009/04/14(火) 18:01:57
アセンブリ言語を使いたくてウズウズしてる先輩が食いついてきそうだ。

79 :デフォルトの名無しさん:2009/04/14(火) 18:02:42
Win板の質問スレでも業務ネタを聞いてくる奴はいるなあ
責任持てないから然るべき所に依頼して下さいって叩き返されてるけど

80 :デフォルトの名無しさん:2009/04/14(火) 18:09:42
しつこい。もういい。
ソースコードの話題は終了な。

81 :デフォルトの名無しさん:2009/04/14(火) 18:13:52
>>71
もしかしてVB6をVB.NETにしてそれをC#にしたりもできるの?

82 :デフォルトの名無しさん:2009/04/14(火) 18:20:21
実際やれよ

83 :デフォルトの名無しさん:2009/04/14(火) 18:23:40
C#←MSIL→VB.NET は可能
VB6→VB.NET はVSの移行ツールで一応出来るけど・・とりあえず使ってみれ

84 :デフォルトの名無しさん:2009/04/14(火) 19:15:00
>>55
やりたいことは意味不明だが、
質問への答えとして、CreateGraphicsが使えるのではという気がする。

85 :55:2009/04/14(火) 19:35:55
この
OnPaint(PaintEventArgs e)
のeをよそでも使えるように、と書こうと思ったら
>>84
g = this.CreateGraphics();
これでできました。
ありがとうございます。

86 :デフォルトの名無しさん:2009/04/14(火) 22:09:15
ILに落としてパスワードチェックを書き換えてilasmする生活が始まるお(;ω;

87 :デフォルトの名無しさん:2009/04/14(火) 22:09:59
だからそんなもんC#で書くなよw

88 :デフォルトの名無しさん:2009/04/14(火) 22:22:38
それってネイティブでも大差なくね?
バイナリ少し書き換えられたら終了じゃないか。

89 :デフォルトの名無しさん:2009/04/14(火) 22:40:30
パスワードチェックのクラックぐらいだったらネイティブでも似たような
もんだよな確かに。

90 :デフォルトの名無しさん:2009/04/14(火) 23:22:46
可読かどうかはスクリプトキディを寄せ付けないための必要で十分な条件かもしれない

91 :デフォルトの名無しさん:2009/04/14(火) 23:25:08
apache2入れてみたんだが,apacheってどの板で盛んだっけ?

92 :デフォルトの名無しさん:2009/04/14(火) 23:29:31
スレがあるのは多分自家鯖板じゃないかなあ
運用がテーマであってWebDevelopmentとは何の関係もないスレだとは思うがね

93 :デフォルトの名無しさん:2009/04/14(火) 23:31:35
<a>
<b c=100 />
</a>
といったxmlファイルがあったとして、属性cをStringではなく直接
intで取る方法ってないでしょうか。

94 :デフォルトの名無しさん:2009/04/14(火) 23:36:05
>>92
てぇんきゅー
ちょっと見てくるー

95 :デフォルトの名無しさん:2009/04/14(火) 23:36:28
属性値は二重引用符で囲まないと整形式じゃなくなっちゃうよ
もしやるとしたらDTDなんかを使って
http://support.microsoft.com/kb/307379/ja

96 :デフォルトの名無しさん:2009/04/14(火) 23:37:18
>>93
まず何で取ってこようとしてるのか書こうよ…
で,xml的にはattributeは必ず"で囲む必要があったんじゃなかったっけ?

97 :デフォルトの名無しさん:2009/04/14(火) 23:44:46
行って見て来た
ちょうちょう初心者の俺にはタスク指向のヘルプがないと無理ということだけ分かった
畑違いすぎワロタ

DTDもいいけどxsdでinteger突っ込むのもいいかもね
外部ファイルが必要になるし,現行のプログラムじゃ導入までが面倒だとおもうが

98 :デフォルトの名無しさん:2009/04/15(水) 00:24:18
俺はXMLよりYAMLのほうが読み書きしやすくて好きなんだが、
.NET向けにはいいライブラリがないんだよね……。

99 :デフォルトの名無しさん:2009/04/15(水) 01:12:57
書くのは XML はインテリセンス、ツールチップコメントとか
エディタがフルサポート状態なので VS 使いとしては楽と
いうか。
Codeplex にあるんだっけ > YAML

100 :デフォルトの名無しさん:2009/04/15(水) 01:19:37
yaml.orgには2つ.NET向けの実装が紹介されてるな(そのうちの一つがcodeplexの

101 :デフォルトの名無しさん:2009/04/15(水) 02:17:51
そっかー。Visual Studioでxml書くとインテリセンスが使えるんだっけ。盲点だったな。
yaml-netの方は改造なしでそのままでは話にならないレベル。
yatools.netの方はDOMインターフェイスがなくてSAX的な読み方しかできないので、
YAMLを使う利点が半減してしまう。
まあ、静的型付言語にYAMLは向いてないのかもしれないが……。

後、せっかくなので。
.NETアプリケーション向けに簡単なstringやintegerを格納できるxmlの書式データってどこかにないだろうか?

102 :デフォルトの名無しさん:2009/04/15(水) 02:23:02
アドオン作ればいいじゃん

103 :デフォルトの名無しさん:2009/04/15(水) 02:46:43
>>101
クラス作ってxsd.exeって話?

104 :デフォルトの名無しさん:2009/04/15(水) 02:59:14
>>101
XmlSerializer

105 :デフォルトの名無しさん:2009/04/15(水) 03:45:51
すみません、前スレで
public string MessageText { get { return textBox1.Text; }
ってあったのですが、
Form1でこれやると怒られるんですが・・・

106 :デフォルトの名無しさん:2009/04/15(水) 03:47:37
VSさんは親切にも具体的理由を挙げて叱ってくれているというのにガン無視とはどういう了見だ

107 :デフォルトの名無しさん:2009/04/15(水) 03:48:29
静的クラスではダメですってことですか?

108 :デフォルトの名無しさん:2009/04/15(水) 03:59:24
そもそもなんつって怒られたの?

109 :デフォルトの名無しさん:2009/04/15(水) 04:02:19
そもそもForm1を静的クラスってどういうこと?

110 :デフォルトの名無しさん:2009/04/15(水) 04:03:00
どうせForm1.MessageTextとか書いてんだろ

111 :デフォルトの名無しさん:2009/04/15(水) 04:04:24
エントリポイントでインスタンスの作られていない脳内のForm1のことだとしたらここで聞かれてもな

112 :デフォルトの名無しさん:2009/04/15(水) 04:04:30
前スレでも

>クラスとインスタンスの違いが理解できていないよーな

って言われてるねえ

113 :デフォルトの名無しさん:2009/04/15(水) 04:05:43
午前4時に15分で7レスつくって何してんだおめーら。

114 :デフォルトの名無しさん:2009/04/15(水) 04:06:12
残業

115 :デフォルトの名無しさん:2009/04/15(水) 04:06:54
残尿

116 :デフォルトの名無しさん:2009/04/15(水) 04:10:57
時差

117 :デフォルトの名無しさん:2009/04/15(水) 07:37:44
趣味でプログラムやってる人間にとって、
C#って実用性ある?
皆仕事以外で何に使ってるの?

118 :101:2009/04/15(水) 07:43:19
寝てる間にスレが流れた。
>>104
さっそく試してみた。エロいな、これは!

整数、実数、文字列、文字列のコレクション、全てOK。
アプリ依存のデータを入れる程度だったら、これで十分すぎるな。

119 :デフォルトの名無しさん:2009/04/15(水) 07:48:48
>>117
WindowsでちょっとしたGUIアプリを書くのにこれほどお手軽な開発環境は無い。
VB.NETとどっちを使うかはお好みで。

120 :デフォルトの名無しさん:2009/04/15(水) 09:18:42
>>117
文字列処理でも、ファイル処理でも、数値計算でも何でもできるよ。

昔はほんのちょっとした計算とか、ファイル操作とか何でもC#でやってた。
たまに使うためだけにsedとかgrepとかsh覚えても、すぐ忘れちゃうし、
全部インテリセンスに頼れるC#(てかVisual Studio)は便利。

最近はPowerShellがあるからワンライナーなものはこっちでやっちゃうけど、
10行超えたらもうC#。


121 :デフォルトの名無しさん:2009/04/15(水) 11:38:10
VSのインテリセンスとリアルタイムなエラー指摘が無かったら
xsdなんか書ける気がしない

122 :デフォルトの名無しさん:2009/04/15(水) 19:47:45
C#でネームスペースをDll化したんだけど
SummaryをDLL使った側で読むにはどうしたらいいの?

123 :デフォルトの名無しさん:2009/04/15(水) 19:51:32
[AssemblyName].xml ってのができてると思うが。
できてないんならプロジェクトのプロパティ確認して。

で、インテリセンスは同じところにおいときゃ勝手に読む。
ドキュメントっぽくしたいなら Sandcastle とかで


124 :デフォルトの名無しさん:2009/04/16(木) 00:25:21
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
MessageBox.Show("メッセージ");
}

これでXを押してもメッセージボックスがでないんですが、ほかに何か必要でしょうか?
環境のせいでしょうか。

125 :デフォルトの名無しさん:2009/04/16(木) 00:29:22
イベントハンドラをイベントに追加してないんでそ
Form1.designer.csのInitializeComponentの中をのぞいてイベントに対して何やってるか見てみ
つかイベントはデザイナのプロパティグリッドの雷マークからやるようにした方が良い

126 :デフォルトの名無しさん:2009/04/16(木) 00:29:30
>>124
どっかでForm1.Closing+=みたいにイベントハンドラさんにちゃんと教えてあげてる?
書いてあるだけで探して関連付けてくれる負んぶに抱っこは幼稚園までだよ!
みたいなことか

127 :デフォルトの名無しさん:2009/04/16(木) 00:52:28
>>125-126
雷マークから追加でできました。
ありがとうございます。

128 :デフォルトの名無しさん:2009/04/16(木) 01:09:28
質問です。WCFで通信量ってわかりますか?

129 :デフォルトの名無しさん:2009/04/16(木) 01:18:57
>>128
よくわからんので調べてみた
http://social.msdn.microsoft.com/Forums/ja-JP/wcf/thread/80e5a892-419e-46e5-ae38-fcbdaa537c64
とか
http://www.google.co.jp/search?complete=1&hl=ja&q=wcf%E3%80%80management+communication+traffic&lr=&aq=f&oq=


130 :デフォルトの名無しさん:2009/04/16(木) 14:27:11
treeviewのノードを全部消したいんだけど、やり方がわからないです。
選択中のノードの消し方はなんとかわかったんだけど、
単純に全部消す方法を教えてください。

131 :デフォルトの名無しさん:2009/04/16(木) 14:30:27
TreeView.Nodes.Clearとかじゃね
知らんけど

132 :130:2009/04/16(木) 14:55:47
>>131
ありがとうございます!出来ました!

133 :デフォルトの名無しさん:2009/04/16(木) 15:10:23
どういたしまして

134 :デフォルトの名無しさん:2009/04/16(木) 18:02:30
>>129
解決してないですね
パフォーマンスモニタは精度が低いし・・・
自分でBindingを継承するなりしてみます。

135 :デフォルトの名無しさん:2009/04/17(金) 00:16:22
ToolStripMenuItemのBackColorプロパティを設定しても
何も変わらないんですけど、特別な手順が必要ですか?

136 :デフォルトの名無しさん:2009/04/17(金) 00:22:23
まずズボンを脱ぎます

137 :デフォルトの名無しさん:2009/04/17(金) 00:49:00
次にスカートを穿きます

138 :デフォルトの名無しさん:2009/04/17(金) 00:57:38
そしてクリをいじります

139 :デフォルトの名無しさん:2009/04/17(金) 07:54:09
いきます

140 :デフォルトの名無しさん:2009/04/17(金) 09:08:07
C#ってネイティブコンパイルできる?

141 :デフォルトの名無しさん:2009/04/17(金) 09:54:41
Mono使えばできるらしいけど。

142 :デフォルトの名無しさん:2009/04/17(金) 10:04:21
>>140
ngen.exeでググリ給え

143 :デフォルトの名無しさん:2009/04/17(金) 10:07:22
しらなかった
ngen使えばソースみられない、でOK?

144 :デフォルトの名無しさん:2009/04/17(金) 10:19:20
ngenしても元のアセンブリと一緒に配布しなきゃいけなかったような

145 :デフォルトの名無しさん:2009/04/17(金) 10:23:49
・・・そなんだ

146 :デフォルトの名無しさん:2009/04/17(金) 12:51:02
class A
{
 bool foo = false;
 public bool Hoge { get { return foo; } set { foo = value; } }
}

void ThreadProc(A objA)
{
 while (!objA.Hoge) { 〜 }
}

他のスレッドがHogeをtrueにするまでループするようになっているのですが
この場合A.fooにvolatileは必要でしょうか?
プロパティを通してアクセスするので必要ないような気がするのですが
確信がもてません。

147 :デフォルトの名無しさん:2009/04/17(金) 13:07:27
子フォームをドラッグして親フォームとある程度近い距離になったとき
親フォームの上下左右にぴったりくっつき,
遠くなったら子フォームのみ自由に動く.
くっついてるとき親フォームをドラッグしたら子フォームも付いてくる.

といったような親フォームに吸着する子フォームを作りたいんだけど

親子ウインドウの相対座標やサイズから地道にIF/THENルール作るしかないですか?

148 :デフォルトの名無しさん:2009/04/17(金) 13:51:30
ここに20行ぐらいのコード貼って、どこがおかしいか見てもらってもいいですか

149 :デフォルトの名無しさん:2009/04/17(金) 13:52:29
長ければテキストに貼り付けてアップローダーに上げるのが良いかと思います

150 :デフォルトの名無しさん:2009/04/17(金) 13:57:28
>>146
JIT最適化によって直接参照する形になりうるんじゃなかったっけ

>>147
基本クラスライブラリにはそういう機能は存在してないな

151 :148:2009/04/17(金) 14:00:41
了解しました。
ttp://textup.no.land.to/w/1239944224/

textBox1に秒数、2に繰り返し回数を入れ、
label1に経過秒数(一回ごとにリセット)、
label2に何回目かを表示しようとしています。

label1・2共に数字が表示されません。
たまに変な数字が出たりします。
何がいけないのかわかりますか?

152 :デフォルトの名無しさん:2009/04/17(金) 14:03:32
処理でスレッド占有してるから画面描画できる隙がない

153 :デフォルトの名無しさん:2009/04/17(金) 14:08:35
BackgroundWorker使うといいよ

154 :151:2009/04/17(金) 14:19:06
>>152
なるほど、そういうことだったんですね
ぜんぜんわからなかた

>>153
解決方法ありがとうございます。
早速調べてみます

155 :デフォルトの名無しさん:2009/04/17(金) 16:37:04
ttp://codezine.jp/article/detail/139?p=2#end_thread

上記URLを参考に、マルチスレッドを実装したのですが
サンプルで言うWriteStringメソッドやCallbackMethodメソッドが
staticじゃなきゃいけないと言うことは無いと思っていいでしょうか。
少なくともCallbackMethodのstaticは外しても一見問題無さそう
なのですが、何か理由があってそうなっているのであれば教えて下さい。

156 :デフォルトの名無しさん:2009/04/17(金) 17:17:26
mainがstaticだから合わせたんじゃないの。
それのVBのサンプルが怪しいな、VBのMainは普通Moduleを使うものだが。


157 :147:2009/04/17(金) 17:40:48
>>150
やっぱりそうですか,
地道にIF/THENルール作ります
ありがとうございました

158 :デフォルトの名無しさん:2009/04/17(金) 22:26:25
WinFormsって512x384の画像表示で40FPSしか出ないほど重いものなんでしょうか・・

NiVEというC#製のモーショングラフィックスソフトがあるのですが、
FAQの「プレビューが遅い。エフェクトとかかけてないのに30fpsのプロジェクトで22fpsまでしか出ない」
の項目に「WinFormsが重いのでプレビューの高速化は厳しいです。」

とあり、実際試してみると40FPSまでしか出ません。
やっぱりWinFormsの描画って遅いんでしょうか?

http://nicoae.if.land.to/index.php

159 :デフォルトの名無しさん:2009/04/17(金) 22:28:51
WPFとかXNAだとどうなんだろうネー

160 :デフォルトの名無しさん:2009/04/17(金) 22:32:47
描画って言うよりはそれ以外の部分で処理食ってるような気はするわ

161 :デフォルトの名無しさん:2009/04/17(金) 22:34:23
WinFormsとか関係ないんじゃないのか?
まさか普通にGDI+で描画してるわけじゃないだろ

162 :デフォルトの名無しさん:2009/04/17(金) 23:52:43
今スレを見返してて、文字列コレクションでもXmlSerializerが可能ってレスがありましたけど
ちなみに、文字列配列では無理ですよね?

163 :デフォルトの名無しさん:2009/04/18(土) 00:01:02
そんなこと無いよw

164 :デフォルトの名無しさん:2009/04/18(土) 00:01:04
>>162
なぜ試さない?

165 :デフォルトの名無しさん:2009/04/18(土) 00:03:15
普通にstring[]でもList<string>でも可能
何を見てそんな認識に至ったのか分からん

166 :162:2009/04/18(土) 00:04:34
いや、以前試してできなかったので
てっきりできないと思い込んでたんですけど
118を見て、コレクションが可能ということだったので
もしかして自分のやり方が間違っていただけかと思って…

167 :デフォルトの名無しさん:2009/04/18(土) 02:22:04
XMLArray属性

ちなみに俺は姉属性

168 :162:2009/04/18(土) 02:29:50
もう一度試してみましたが、今度はちゃんとできました。
以前は文字列配列じゃなくて、ArrayListでやってダメだった記憶と
勘違いしていたのかもしれません。お手数かけました。

169 :デフォルトの名無しさん:2009/04/18(土) 15:56:10
配列の配列じゃない二次元配列(なんていうの?
の配列の範囲を超えないかチェックするにはどうすればいいの?

うまく説明できないけど
IndexOutOfRangeExceptionが投げられないように
事前にifでチェックしておきたい

170 :デフォルトの名無しさん:2009/04/18(土) 16:06:52
int [,] n = new int[7,4];

これだろ?
Array.RankとArray.GetLengthを参照

171 :デフォルトの名無しさん:2009/04/18(土) 16:34:42
そういや多次元の配列をforeachでぶんまわすときってどうやんだべ
いままでやったことなかったな 調べてみるか

172 :デフォルトの名無しさん:2009/04/18(土) 16:36:19
>>170
ありがとうございます!

173 :デフォルトの名無しさん:2009/04/18(土) 17:10:29
>>171
こんな感じ。
int[,] rect = new[,] { { 1, 2, 3 }, { 4, 5, 6 } };
foreach (var x in rect) Console.WriteLine(x);

int[][] jugged = new[] { new[] { 1, 2, 3 }, new[] { 4, 5, 6 } };
foreach (var x in from array in jugged from elem in array select elem)
Console.WriteLine(x);



174 :デフォルトの名無しさん:2009/04/18(土) 17:24:26
>>173
jugged は SelectMany で一発だよ

175 :デフォルトの名無しさん:2009/04/18(土) 17:32:00
SelectMany 書ける人が少ないから2重 from が導入されたわけで、
この場合は >>173 でいいと思ってる。



176 :デフォルトの名無しさん:2009/04/18(土) 17:49:31
おお、そんな風に書けるんだ。
今まで二重にforeachしていた。

177 :デフォルトの名無しさん:2009/04/18(土) 18:33:06
>>175
それなら Aggregate とか

178 :デフォルトの名無しさん:2009/04/18(土) 18:52:50
>>176
まあ、素直にそう書くのがいいと思うよw

>>177
それも考えたけど、そこまでしてクエリ式を避ける意味もないかなぁと。
Aggregate じゃなくて Sum とか書ければそれを使ったけども。

179 :デフォルトの名無しさん:2009/04/18(土) 19:07:03
字面でin fromってところが気持ち悪い

180 :デフォルトの名無しさん:2009/04/18(土) 19:23:18
>>179
うん、普通は、
var q =
from array in jugged
from elem in array
select elem;

foreach (var x in q) ....
って書くと思う。


181 :デフォルトの名無しさん:2009/04/18(土) 20:56:47
>>178
俺もクエリ式大好きなんだけど、foreach 文に含ませたりとかそういう
部分式的な扱いとかメソッド一発の場合はメソッド形式が好みかな
みたいな。避けているわけではない。


182 :デフォルトの名無しさん:2009/04/18(土) 20:59:24
let使わない限りは全部メソッド形式で書いちゃう

183 :デフォルトの名無しさん:2009/04/18(土) 21:35:35
オブジェクト指向の書き方が、基本的にクエリの書き方にマッチしないから違和感感じるよな

184 :デフォルトの名無しさん:2009/04/18(土) 21:36:49
気持ち悪さの一番の原因はクエリ式がfromで始まるということだと思う。

185 :デフォルトの名無しさん:2009/04/18(土) 21:40:17
普段はメソッド形式で書くけど、
メソッドチェインが3つ超えたあたりからクエリ式に切り替えてる。

>>183
C# は最初から純粋OOP言語でもないしね。

>>184
英文法的な気持ち悪さよりも、
インテリセンス利くことを優先したからしょうがない。


186 :デフォルトの名無しさん:2009/04/18(土) 22:00:19
>>185
オブジェクト指向の書き方がクエリの書き方にマッチしないといってるのに、
C#は純粋なOOP言語じゃないなんてのは論点のすり替えですよ

187 :デフォルトの名無しさん:2009/04/18(土) 22:59:08
C#で書いている以上純粋OOは無理って事が言いたいんじゃないかと

188 :デフォルトの名無しさん:2009/04/18(土) 23:11:14
じゃあ純粋OOPならLinqのクエリは完璧に違和感なく書けるってことだな?

189 :デフォルトの名無しさん:2009/04/18(土) 23:14:45
落ち着け

190 :デフォルトの名無しさん:2009/04/18(土) 23:16:26
純粋OO言語としても使えるだろ
ベースにOOを使ってOO的じゃないことを実現してる感じ

191 :デフォルトの名無しさん:2009/04/18(土) 23:22:20
C とか C++ からの括弧とかドットとか式とかシンタックス周りとの組み合わせが
あわねーって話ならわかるけど OOPL がどうこうとかそういうことなのか?

192 :デフォルトの名無しさん:2009/04/18(土) 23:24:47
ならいったい何を論じてるんだ?

>>190
圧倒的に論旨から外れてる
誰もそんなことを論じていない

193 :デフォルトの名無しさん:2009/04/18(土) 23:38:36
便利なんだからOOとかどうでもいいと思うのだが、お前ら何騒いでるの?

194 :デフォルトの名無しさん:2009/04/18(土) 23:43:40
オブジェクト指向の書き方が、基本的にクエリの書き方にマッチしないから違和感感じる
という意見に、C#は純粋なOOPではないとか、いやC#でもOOPかけるだろとか、
超的外れな意見ばかり出し合ってなれ合って騒いでる

195 :デフォルトの名無しさん:2009/04/19(日) 01:49:20
クエリの書き方とオブジェクト指向の書き方ってどういうのをいうの?

196 :デフォルトの名無しさん:2009/04/19(日) 06:56:11
名字に口が付く姓で口をぐちと読むのは
実は井口と野口、山口、この三つしかない
まめちしきな

197 :デフォルトの名無しさん:2009/04/19(日) 08:14:00
210個あるらしいがコピペもうざいので書かない

http://wwwww.2ch.net/test/read.cgi/news4vip/1172987773/

198 :デフォルトの名無しさん:2009/04/19(日) 10:44:59
>>194
オブジェクト指向の書き方=UMLですねわかりますえん

199 :デフォルトの名無しさん:2009/04/19(日) 12:38:21
DataGridViewで、何も無い部分(濃い灰色の部分)をクリックした時、アイテムを何も選択しなくするようにするにはどうしたら良いのでしょうか。
要はリストビューみたいな挙動にしたいのですが、、、

200 :デフォルトの名無しさん:2009/04/19(日) 19:12:26
>>196
5000円札の樋口姓は絶滅したのか?

201 :デフォルトの名無しさん:2009/04/19(日) 19:22:22
貼ると絶対にレスがつくコピペってのはほんとなんだなw

202 :デフォルトの名無しさん:2009/04/19(日) 23:47:08
C#おべんきょ兼ねて、Winsnmp.DLLを叩いて「簡易SNMPマネージャ」チャレンジ中。
GETの応答をイベントっぽく受けたい(タイマー待ちしたくない)んですが、
いろいろ試してもうまくいかず。何を使えば良いのか迷っております。助言ください。

初期化関数のSnmpCreateSession()に「callback」関数の登録があり、
応答受信、またはTimeoutを契機にこれが呼ばれることは確認できました。
で、受信解読処理を起こすのにMonitor使おうとしたら「プロセスが違うぜダンナァ」。
Mutexなのか?と思うも、期待通りに動かず…。

ええ、「自分が何をわかっていないのか」が判らない状態であります。
どこか「ここ読んで再チャレンジしてみろ」みたいな指標、ありましたら教えてください。

203 :デフォルトの名無しさん:2009/04/19(日) 23:49:28
>>202
http://www.google.co.jp/search?hl=ja&q=SNMP+C%23&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=

204 :デフォルトの名無しさん:2009/04/20(月) 01:21:58
つかぬ事を聞くんだが、.NETはスピンコントロールはなくなったんだろうか。
それから、Textboxで上書きカーソル(Iビームでない方)は使えないんだろうか?

205 :デフォルトの名無しさん:2009/04/20(月) 02:08:41
>>204
スピンコントロールって名前やめたっぽいよ。
NumericUpDown。


206 :デフォルトの名無しさん:2009/04/20(月) 08:27:01
申し訳ないのですが、調べてもわからなかったので質問させてください
VisualC#にて、新規ファイル作成時にWindowsApplication1を別名に変えると
デバック時に依存関係が読み込めないというエラーがでます。
これは何が悪いのでしょうか?デフォルトの名前しか使えないのでしょうか?


207 :デフォルトの名無しさん:2009/04/20(月) 10:02:26
キミがどこかでミスってる。
リビルドしてもだめかい?

208 :デフォルトの名無しさん:2009/04/20(月) 19:15:30
>>207
すみません。プロジェクト名に('A`)が入っていたことが原因のようです。
無くしたら解決しました。

209 :デフォルトの名無しさん:2009/04/20(月) 19:31:34
ワロタ

210 :デフォルトの名無しさん:2009/04/20(月) 19:35:28
C/C++やってて、GUIとか使いたくなったからC#やり始めたんだが、
.csのソースを.csprojが入ってるディレクトリ以外に入れて参照できるようにはできないのだろうか。
これは仕様でどうにもならない?

211 :デフォルトの名無しさん:2009/04/20(月) 19:41:10
>>210
できるよ

212 :210:2009/04/20(月) 19:44:03
C/C++と一緒のリポジトリに入れてて、
ソースだけプロジェクトと別ディレクトリで管理したいから
その方法をぜひ教えてください。どこかのURLとかでもおkです。

213 :デフォルトの名無しさん:2009/04/20(月) 19:50:03
>>212
http://msdn.microsoft.com/ja-jp/library/9f4t9t92.aspx

214 :デフォルトの名無しさん:2009/04/20(月) 19:51:06
ソリューションエクスプローラ→追加→既存の項目で追加すりゃいいんじゃないの
意味が分からん

215 :210:2009/04/20(月) 19:56:11
>>213 どもです!できました!


216 :210:2009/04/20(月) 20:32:23
>>214それやると別ディレクトリの.csが.csprojのあるディレクトリにコピーされて、
オリジナルが変更されないという罠。
リンクとして追加で出来ました。

217 :デフォルトの名無しさん:2009/04/21(火) 04:14:41
CMakeList.txt を書いて目的のビルドフォルダでcmake書ける方法もあるが……。
Windowsだとあんまり一般的じゃないのかな。

218 :デフォルトの名無しさん:2009/04/21(火) 10:21:34
Vista環境で、SHFileOperationやMicrosoft.VisualBasic.FileIO.CopyFileを使って、
ループ内でファイルコピーを繰り返し行うと、GDIオブジェクトが増え続け、
300回ほどループが回ったところでGDIオブジェクト数が10000になり、ソフトが落ちてしまいます。
XPだと全く問題なく、VistaでもSystem.IO.File.Copyを使えば大丈夫です。
何か注意すべき点などあるのでしょうか?

219 :デフォルトの名無しさん:2009/04/21(火) 10:38:02
>>218
Microsoft.VisualBasic.FileIO.FileSystem.CopyFileで試したけど
少なくともごく簡単なのだと再現しないね@Vista business SP1/.NET 3.5 SP1

220 :218:2009/04/21(火) 10:57:35
>>219
試していただきありがとうございます。
ググっても類似事例がないので、自分が書いたコードが悪いんだろうなとは思っていましたが…
ちなみに、公開しているソフトで、ユーザーからの問い合わせもかなりあるので、環境依存というわけではなさそうです。
再現できるミニマムコードが書けたらまた質問しに来ます。

221 :デフォルトの名無しさん:2009/04/21(火) 13:10:58
> ユーザーからの問い合わせ
があったとしても、特定環境でしか起こらなければ環境依存だろうよ
ちゃんと集計とか分析とかしたのか?

まあ単に自分の環境が特殊ではないと主張したかったんだろうけど

222 :デフォルトの名無しさん:2009/04/21(火) 13:16:06
vb6から C#にアプリを移行してるんだけど
DBのテーブルで誕生日がint型なんだが
これをC#でDateTimeにコンバートしたいんですけど
どうしたらいいですか?
どうも 36524 が 2000-01-01 になるらしい。

223 :デフォルトの名無しさん:2009/04/21(火) 13:18:15
変換の計算式書けよ

224 :デフォルトの名無しさん:2009/04/21(火) 13:20:43
1899年12月31日を0としてそれからの経過日数かな


225 :デフォルトの名無しさん:2009/04/21(火) 13:26:37
1900年1月1日からかもしれない
1900年2月29日が存在するバグがあるか無いか確認して
まあどちらにしても1900年3月1日からは一致するけど

226 :デフォルトの名無しさん:2009/04/21(火) 14:10:56
ワラタ

227 :デフォルトの名無しさん:2009/04/21(火) 15:15:30
他のプロジェクトでビルドしたアセンブリを参照設定してメインのプロジェクトで使っているんですが、
アセンブリを再ビルドするたびに参照設定をやり直さないとビルドに失敗します。
何かいい方法はないでしょうか。

228 :デフォルトの名無しさん:2009/04/21(火) 15:30:04
そのプロジェクトをソリューションに追加すれば
ビルドと配置も同時にやってくれるんでない

229 :デフォルトの名無しさん:2009/04/21(火) 15:35:04
誕生日がintってどうやってるんだろ
20090421とか?


230 :デフォルトの名無しさん:2009/04/21(火) 15:37:10
>>229
通常、特定の日付からの経過日数で換算する。
UnixとWindowsそれぞれでやりかたがある。詳しくはぐぐれ。

231 :デフォルトの名無しさん:2009/04/21(火) 15:42:42
それにどんなメリットがあるの

232 :デフォルトの名無しさん:2009/04/21(火) 15:51:20
内部形式の意味を聞いてどうすんだ
int表現ならそのほうが便利だろう、引き算だけで経過日数がわかるとか

233 :デフォルトの名無しさん:2009/04/21(火) 15:54:10
Date関連は、昔は自前で計算するしかなかったもんなぁ。

C#で新規設計の時、intでやる奴はいねぇだろ。

234 :227:2009/04/21(火) 19:28:15
>>228
結局自力で解決しました。
csprojファイルをテキストエディタで開いて、
参照設定のItemGroupにおいて

<Reference Include="Azuki.dll" />

といった形に書き換えました。
これでVSのオブジェクトビューアでも直接dll内のアセンブリ情報を見に行くし(当然属性情報も見える)、
アセンブリを再ビルドしてもエラーが出なくなりました。

235 :デフォルトの名無しさん:2009/04/21(火) 23:23:43
>>231
Excel使いから言えば、時間単位の換算がやりやすい。
日→時は24倍すればいいとか。

236 :デフォルトの名無しさん:2009/04/21(火) 23:26:57
>>235
ExcelだとVBAでDateDiffとか使えないの?


237 :デフォルトの名無しさん:2009/04/22(水) 00:01:57
GUIだけフォーム使って中身はCとか出来ますか?

238 :デフォルトの名無しさん:2009/04/22(水) 00:08:54
できますよ

239 :デフォルトの名無しさん:2009/04/22(水) 19:35:27
クリップボードから得たメタファイル形式のデータを、
メモリストリームかファイルストリームにする方法がわかりません。

meta = new Metafile(mfms, hmeta);

meta = new Metafile("metafile.wmf", hmeta,EmfType.EmfPlusDual);
もGDI+で汎用エラーと出てしまいます。


メタファイルの取得は下記のサイトを参考にしました。
ttp://dobon.net/vb/dotnet/graphics/getclipboardmetafile.html

240 :デフォルトの名無しさん:2009/04/22(水) 21:02:32
>>239
そのページの一番最後のGetEnhMetafileOnClipboardをそのまま使ってもだめなのか?

241 :デフォルトの名無しさん:2009/04/22(水) 21:28:00
一旦Imageとして読み取って、
それとは別にMetafile(Stream, IntPtr)で新しいMetafile作って、
Graphics.FromImageでMetafileからGraphics作って、
Graphics.DrawImageで読み取ったImageを描画
…てな流れになるかのう マネージドでやろうとすると

242 :239:2009/04/22(水) 22:48:16
>>240
それでメタファイル形式のデータは取得出来るのですが、
他のデータと合体させてバイナリファイルとして保存したいので、
メモリストリームかファイルストリームにしたいです。

クリップボードのデータをファイルに保存して、
必要な時に読み込み、クリップボードに貼り付けるのが目的です。

>>241
すみません。
いろいろ調べたり試したりしてみてますが、Graphics.DrawImageから
ストリームにする方法がわかりません。


243 :デフォルトの名無しさん:2009/04/22(水) 23:59:23
Metafileの作成時に渡したStreamに書き出されてる
ちなみにIntPtrの方はGetDC(IntPtr.Zero)でも適当に作ったBitmapからGraphics.GetHdcでも

244 :デフォルトの名無しさん:2009/04/23(木) 00:12:03
>>242
241のやり方は、ここの「メタファイル形式で保存する」が参考になると思う。
http://dobon.net/vb/dotnet/graphics/saveimage.html

245 :デフォルトの名無しさん:2009/04/23(木) 03:25:38
B+Treeで実装されたコレクションのクラスってありますか?
それとSortedListの実装はBinaryTreeですか?


246 :デフォルトの名無しさん:2009/04/23(木) 09:48:45
>>245
List<T>.BinarySerach()

247 :デフォルトの名無しさん:2009/04/23(木) 09:50:00
Searchか

248 :デフォルトの名無しさん:2009/04/23(木) 10:15:48
>>245
ぐぐれ

249 :デフォルトの名無しさん:2009/04/23(木) 11:30:30
XMLスキーマの構造を/区切りでテキストに出力しようと思っています。
DataSet.ReadSchemaを用いて作ってみましたが、似た形式で出力できるものの、並び順がおかしくなってしまいます。
やはりちゃんとShemaとして読み込んで、それを解析する必要なあるようですが、やり方がわかりません。
ご教授ください。

250 :デフォルトの名無しさん:2009/04/23(木) 12:25:07
C#かjavaで
文字列A "qwertyuiop" に
文字列B "cdefghij" のどれか
が1つでも含まれていたら真になるというのを
できるだけ高速にやりたいのです。

考えたのは
@
s="qwertyuiop";
f = s.IndexOf("c") + 1 + s.IndexOf("d") + 1 + …
A
配列に文字列Bのテーブルで真偽表を作り
文字列Aを一文字ずつ取り出しAscii値にしてテーブル参照して加算

ですがまだ重そうです。
何か関数等で高速にできる方法ありませんか?


251 :デフォルトの名無しさん:2009/04/23(木) 12:41:02
真偽値が欲しいだけなのになんで加算してんの?

252 :デフォルトの名無しさん:2009/04/23(木) 12:52:05
真偽というか0か0以外ならいいのです。

今気づきましたが
s.ToCharArray(); を使えばcharの配列に変換できて
Aのテーブルとの掛け合わせが簡単にできそうですね。

253 :デフォルトの名無しさん:2009/04/23(木) 13:09:41
文字列が短ければ線形探索
長ければ一方をソートして二分探索


254 :239:2009/04/23(木) 13:11:49
何度もすみません。

>>243-244
ttp://dobon.net/vb/dotnet/graphics/getclipboardmetafile.html
を元に下記を作ってみましたが、
DrawImage後もstreamには入っていないようです。
(stream.lengthが0)
使い方が間違っているのでしょうか

ttp://www10.uploader.jp/user/cetinutre/images/cetinutre_uljp00008.txt

255 :デフォルトの名無しさん:2009/04/23(木) 13:16:09
IntPtr disDC = GetDC(IntPtr.Zero);


256 :デフォルトの名無しさん:2009/04/23(木) 14:53:32
>>250
部分文字列を取りたいのではなくてマッチするかどうかだけ調べればいいんだな?

実用的には正規表現の文字集合を使う。 match(/[cdefghij]/, "qwertyuiop")

自前でやるならデーブルでヒット走査。
bool[0x100] の走査ウィンドウを作り、全ての要素を倒しておいてから
"cdefghij" を立てる。それから文字列を入力して一文字ずつ走査すればよい。

入力値が無数にあると期待され、テスト前に準備期間が許されるならば、
入力値側を前操作する方法もありえる。

257 :デフォルトの名無しさん:2009/04/23(木) 14:55:46
239は自分で紹介している記事を最後まで読んだのか?
WindowsMetaFileとして取り込むにはAPIを直で呼び出す他なさそうだと書いてあるんだが。
.NETの範囲での解法を自力で発見してそれを報告するなら分かるが、
まだ探している段階ならまずは記事に書いてあることを試すべきだろ。

258 :239:2009/04/23(木) 15:07:38
>>257
最初に質問する段階でMetaFileを取り込むところまでは出来てます。
やりたいのは>>242です。
いろいろ調べたり試したりしてはいるのですが、
何もしていないように見えたのならすみませんでした。

>>255
Bitmap bmp = new Bitmap(1, 1);
Graphics bmpg = Graphics.FromImage(bmp);

IntPtr hdc = bmpg.GetHdc();
としてもダメでした。

259 :239:2009/04/23(木) 16:14:16
長々と書いて申し訳ありませんが、なんとか出来ました。
最後に emfg.Dispose(); が抜けていたのでダメだったみたいです。

レスくれた方々本当にありがとうございました。

260 :デフォルトの名無しさん:2009/04/23(木) 16:21:50
>>256
正規表現ですか。
基本、文字処理はこれでやればいいわけですね。
ありがとうございます。

261 :218:2009/04/23(木) 17:26:23
>>218ですが、比較的簡単なコードで再現できました。
暇な方は試していただけると助かります。
↓GDIオブジェクトが増え続けるケースのメインメソッド
private void FileAdd(string[] stFileList)
{
  int i = 0;
  foreach (string stFileName in stFileList)
  {
    FileInfo fi = new FileInfo(stFileName);
    i++;
    Microsoft.VisualBasic.FileIO.FileSystem.CopyFile(fi.FullName, Path.Combine(Application.StartupPath, "test" + i.ToString("000") + fi.Extension), UIOption.AllDialogs, UICancelOption.ThrowException);
    listView1.Items.Add("test" + i.ToString("000") + fi.Extension);
  }
}

プロジェクト一式のZIPファイル
ttp://www.dotup.org/uploda/www.dotup.org30324.zip.html

フォームにファイルをD&Dすると、実行ファイルと同じ場所にD&Dしたファイルを番号を振りながらコピーします。
タスクマネージャを見ながら、100個くらいのファイルをD&DすればGDIオブジェクトの上昇がわかりやすいと思います。

再現した環境
WindowsVista x64 (6.0.6001SP1)
.NET Frameworkは最新版です。
(2.0向けなので、System.Environment.Versionで取れる値は、2.0.50727.3074)

262 :デフォルトの名無しさん:2009/04/23(木) 17:55:58
オーバーレイ表示でもスクリーンショットが取れるようにしたいんだけど無理?
無効にしなくてもPowerDVDとかは出来るみたいなんだけど。

263 :デフォルトの名無しさん:2009/04/23(木) 18:34:51
>>261
UIOption.AllDialogs のときにそうなるみたいだね。
UIOption.OnlyErrorDialogs だと普通に終わる。

264 :デフォルトの名無しさん:2009/04/23(木) 21:14:20
>>248
今ぐぐってみました。
そしたらこのスレに飛ばされました

265 :218:2009/04/23(木) 21:26:56
>>263
ということは、ダイアログ出してコピー中にユーザーキャンセルできるようにするには、色々自前で組まないと、Vistaでは不具合がでるってことですね。
面倒なのでFile.Copyとうまく使い分けて何とか切り抜けます。
ありがとうございました。

これはVistaの仕様なのか不具合なのか…

266 :デフォルトの名無しさん:2009/04/23(木) 22:08:01
>>265
SHFileOperationはVistaからIFileOperationに置き換えられるようになるから、
ttp://msdn.microsoft.com/ja-jp/magazine/cc163304.aspx
ttp://msdn.microsoft.com/ja-jp/magazine/cc164236.aspx
この辺参考にしてVistaのときはそっち使うようにする、とかどうだろう
これがリークするかどうかは知らないけど

267 :デフォルトの名無しさん:2009/04/23(木) 23:18:19
System.IO.File.Move(@"C:\test.txt", @"C:\test1.txt");

これの@ってなんの意味ですか?

268 :デフォルトの名無しさん:2009/04/23(木) 23:18:42
すみません、VS2005でWindows アプリをデバッグしているのですが、
どうもWebBrowserでWebページを表示していてそこでのスクリプトか何か
の動作がうまく行っていないようなので、そのWebページの動作を調べたい
ときには、そのVS上でそのWebページのソースファイル(htmlファイル)
をいっしょにデバッグするようなことは可能ですか?

Webページは現在はたまたまそこで見ているGoogleのイニシャルページ
で、そこで「検索」ボタンを押したときの動作を見たいのでした。


269 :デフォルトの名無しさん:2009/04/23(木) 23:20:37
>>267
ヘルプのキーワード検索で「@ リテラル文字列」

270 :268:2009/04/23(木) 23:21:16
VS2005はプロフェッショナルEditionでWebアプリも開発可能だとは
思ったのですが、現在のWindowsアプリケーションで開いたときにだけ
不具合を起こしているようなので、統合的に調べたいのでした。
よろしくお願いします。

271 :デフォルトの名無しさん:2009/04/24(金) 00:30:43
>>264
いや、文字通りぐぐったら実装されたライブラリが入手できるんだが?

272 :デフォルトの名無しさん:2009/04/24(金) 03:22:58
>>271
.Netの標準ライブラリには存在しないんですか?

273 :デフォルトの名無しさん:2009/04/24(金) 03:49:43
>>272
ないよ。
BSDライセンスで公開されている実装があるんだから、それ使ってみれば
いいじゃん。

274 :デフォルトの名無しさん:2009/04/24(金) 03:57:35
ありがとうございました

275 :デフォルトの名無しさん:2009/04/24(金) 12:57:20
プロジェクトの「発行するバージョン」とAssemblyVersionを同期して変更していくいい方法はないだろうか?

276 :デフォルトの名無しさん:2009/04/24(金) 16:23:29
自身のフォームを非アクティブにする(VisibleやCloseではなく)方法
もしくはAPIは無いでしょうか。

277 :デフォルトの名無しさん:2009/04/24(金) 16:26:04
デスクトップをアクティブにすればいいよ

278 :デフォルトの名無しさん:2009/04/24(金) 16:47:05
>>277
SetActiveWindow(IntPtr.Zero) で、目的の動作を達成することが出来ました。
有り難う御座いました。

279 :デフォルトの名無しさん:2009/04/25(土) 14:36:39
amazonのサービスを使って、本の管理プログラムを作っているのですが
ISBNから書籍データ類を取得した後、その画像データをローカルに保存する方法で困っています。

画像のURLを取得した後にいちいち

WebClient wc = new WebClient();
Stream stream = wc.OpenRead(url);
Bitmap bitmap = new Bitmap(stream);
stream.Close();

としたあとで

bitmap.save()

とすると保存は出来るのですが、ものすごく時間がかかってしまいます。
画像のURLはWebサービスの参照で自動的に作成された物を使用して所得しています

他に良い方法は無い物でしょうか、教えてください

280 :デフォルトの名無しさん:2009/04/25(土) 14:47:38
書籍データのGETと画像のGETを別コネクションで行ってたりしない?
さしあたりパケットスニファのWiresharkとC#のTcpClientでぐぐってみて

281 :デフォルトの名無しさん:2009/04/25(土) 14:49:43
試したけど別に遅くもなんともねえけどな


282 :デフォルトの名無しさん:2009/04/25(土) 14:50:58
クエリー投げ過ぎで待たされてたりして

283 :デフォルトの名無しさん:2009/04/25(土) 14:56:56
ファイルごとのバージョン管理はどうしていますか?

284 :デフォルトの名無しさん:2009/04/25(土) 16:12:38
SVN使えばいい。TortoiseSVNとか便利よ

285 :デフォルトの名無しさん:2009/04/25(土) 17:17:18
if文やメソッドなどを書く時、

if (....) {
......
}

と書くのと

if (....)
{
.....
}

と書くのでは、どちらが一般的なのでしょうか。

286 :デフォルトの名無しさん:2009/04/25(土) 17:19:43
下が一般的

287 :デフォルトの名無しさん:2009/04/25(土) 17:21:38
>>285
http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.2/CodingStyle.html

288 :デフォルトの名無しさん:2009/04/25(土) 17:24:10
>>287
釣りだろうけど、異教の作法なんか張るなバカ。


289 :デフォルトの名無しさん:2009/04/25(土) 17:27:31
>>279
というか、クエリ投げてもらえる画像ファイルをそのまま保存すればいいと思うんだが?

290 :デフォルトの名無しさん:2009/04/25(土) 17:28:12
下はVSのデフォルト設定だしね
個人的には一貫してさえすればどっちでもいいと思う

291 :デフォルトの名無しさん:2009/04/25(土) 17:29:03
>>285
標準書式が無数にあるC/C++とは違い、C#はVisual Studioによる開発がデファクトスタンダードなんだから、
VSの補完により生成される書式が標準だと考えるのが自然だろう。

292 :デフォルトの名無しさん:2009/04/25(土) 17:40:25
if (true) {
}
を支持する人はメソッドも
public void Procedure() {
}
派?

293 :デフォルトの名無しさん:2009/04/25(土) 17:40:39
>>291
VSは賢いので開発者の好きにカスタムできます

294 :デフォルトの名無しさん:2009/04/25(土) 17:41:24
お作法はヘジたん教に従えって事だな、つーわけで下

295 :デフォルトの名無しさん:2009/04/25(土) 17:41:28
>>285
趣味等で自分の好きに書ける環境なら、好きな方を使えばok
上式で書くなら、メソッド書く時のみ中括弧を字下げ。制御文は同じ行に開始括弧を書く。
コーディング規約と違って、自分のやり方に固執したり
他のやり方に批判的だったりすると気持ち悪がられる分野だから注意。

296 :デフォルトの名無しさん:2009/04/25(土) 17:44:28
if {
}
だと始まりがよくわからなくて困らない?

297 :デフォルトの名無しさん:2009/04/25(土) 17:44:41
あれ?ヘジたんの本はK&Rスタイルだったぞ

298 :デフォルトの名無しさん:2009/04/25(土) 17:45:26
>>296
そんな事はないけど、C#なら当然それは使わない!!

299 :デフォルトの名無しさん:2009/04/25(土) 17:45:59
ごめんヘジたんのエディタいじってそうなるようにしちゃったの

300 :デフォルトの名無しさん:2009/04/25(土) 17:48:20
C#の話をしてる時でも
Java歴が長くてJava信奉の厚い人は
わざとK&Rで書く人多いよね

301 :デフォルトの名無しさん:2009/04/25(土) 17:49:20
>>300
掲示板に書くときは狭いからそうすることも多いけど、コードはK&Rでは書かないな

302 :デフォルトの名無しさん:2009/04/25(土) 17:52:09
JavaScriptでK&Rみるとなんかむかつく


303 :デフォルトの名無しさん:2009/04/25(土) 17:55:12
大体、K&Rは歴史的資料、古典なんだから、それのスタイルで書こうとするなよ。
「福沢諭吉に感銘受けたので旧仮名遣いで日本語書きます」って言ってるようなもんだろ。


304 :285:2009/04/25(土) 17:55:40
どうもです。
自分の読んでるオブジェクト指向の入門本がJavaを扱って書かれているので
その書き方をしていたみたいです。
どっちでも良いということなので安心しました。

305 :デフォルトの名無しさん:2009/04/25(土) 17:56:00
K&Rなぞ知ったことではないが行が嵩むのが嫌なので趣味コードは中括弧は全部同じ行
会社では大体VSのデフォルトそのままだから下げ

306 :デフォルトの名無しさん:2009/04/25(土) 18:01:23
最近Windowsシャットダウン時にCSC.EXEが出る様になた。
.NET Frameworkは3.5(x86)

プログラムに問題が有るのかなぁ?

307 :デフォルトの名無しさん:2009/04/25(土) 18:01:40
クラスもメソッドも{を同じ行にしてるの?

308 :デフォルトの名無しさん:2009/04/25(土) 18:02:37
>>307 異教禁止

309 :デフォルトの名無しさん:2009/04/25(土) 18:09:22
K&Rで書く人見ると
思わず英語で喋っちゃった帰国子女っぽくて鼻につく

310 :デフォルトの名無しさん:2009/04/25(土) 18:10:57
爺さんはみんなK&Rだぞ、return(0); だし、いちいち気にするな

311 :デフォルトの名無しさん:2009/04/25(土) 18:13:26
>>309
見事に的を射た表現だな

ただ漏れには非K&Rで書かれてるコードのインデントの意図が
さっぱり理解できない

>>310
待ってくれ。K&Rは return 0 だ

312 :デフォルトの名無しさん:2009/04/25(土) 18:14:21
そりゃ新しいK&Rだ、+= が =+ 時代からやり直し

313 :デフォルトの名無しさん:2009/04/25(土) 18:23:38
>>312
漏れ生まれてないYO
でもお年寄りは国の宝っていうから従っとく

314 :デフォルトの名無しさん:2009/04/25(土) 18:28:43
>>313 だから異教は禁止、ヘジたんに従え

315 :デフォルトの名無しさん:2009/04/25(土) 18:46:02
発行した書籍数の多さと年季が信頼の印
連休中に勉強しよう。
http://www.tech-arts.co.jp/technologies/books/
連休明けの仕事が楽しみなるよ!!

316 :デフォルトの名無しさん:2009/04/25(土) 18:59:07
>>314
いやいや、Visual Studio のデフォルト設定に従えって。

317 :デフォルトの名無しさん:2009/04/25(土) 19:00:29
Visual Studio のデフォルト設定はヘジたんスタイル

318 :デフォルトの名無しさん:2009/04/25(土) 21:54:45
ヘジたん大好きdelphiは
if
begin
end;
だから、
if
{
}
じゃなきゃだめだお

319 :デフォルトの名無しさん:2009/04/25(土) 21:58:23
でもべーしっくは
if then
endif
だお


320 :デフォルトの名無しさん:2009/04/25(土) 22:41:44
if〜else if〜elseのときコメントはどこに書いてる?

//コメント1
if()
{
}
//コメント2
else
{
}

こんな感じで書くとインデントも揃ってて見やすいけど閉じ括弧とelseが離れちゃってて気持ち悪い。

if()
{
 //コメント1
}
else
{
 //コメント2
}

こっちの方がいいのかな?でも条件式にコメントしたいときとか、コメントが連続で2行になることとかあって書きづらい。
C#の標準的にはどうなの?

321 :デフォルトの名無しさん:2009/04/25(土) 22:48:02
ほとんど、そういうコメントを書きたいと思うことがないけど、たまにあるね
俺は上派
下だとインデントされるから、条件式のコメントじゃないみたいだから
でも気持ち悪いから

//条件式コメント1
//条件式コメント2
if()
 //中身のコメント
else
 //中身のコメント

よほどの事がなければ、こんな感じで書いてる


322 :デフォルトの名無しさん:2009/04/25(土) 22:49:21
コメント記述のマナーについては語る価値はあると思うが、
コメントの記述位置そのものについては通常言語仕様で語られる範疇ではない。
AdaやPythonだと決められてるかもしれないが……。


323 :デフォルトの名無しさん:2009/04/25(土) 22:58:08
俺はコメント書かない派だから、どうでもいいな。

324 :デフォルトの名無しさん:2009/04/25(土) 23:10:31
if() { // comment
} else { // comment
}

325 :デフォルトの名無しさん:2009/04/25(土) 23:47:13
一行内に書くのはフィールドくらいでいい

326 :デフォルトの名無しさん:2009/04/26(日) 00:06:17
インデントなんて好きにすればいいの・・・。
どうせVSのインデント設定で一括変更とかある程度できるっしょ。

そもそもいろんな言語の国内外のソースよんでりゃ、
インデントがどうのなんて瑣末な問題だと思いますよ?

327 :デフォルトの名無しさん:2009/04/26(日) 00:10:46
インデントは全角スペース2個分で、タブを維持する(スペースに変換しない)じゃないと嫌

328 :デフォルトの名無しさん:2009/04/26(日) 11:50:13
文字列変換の際に
hoge.ToString()にするのと
(string)(hoge)にするのとで
どのような違いが生じるのでしょうか?

329 :デフォルトの名無しさん:2009/04/26(日) 11:54:36
下は変換じゃなくてただのキャスト hogeがstringでない限り失敗する

330 :デフォルトの名無しさん:2009/04/26(日) 16:39:43
string型じゃない変数を使って試してみると一発でわかるはず。

331 :デフォルトの名無しさん:2009/04/26(日) 17:32:38
>>329
implicitやexplicitな変換が定義されていればstringでなくてもいけるだろ。
まあstringに対してそれをやるやつはなかなかいないとは思うが。

332 :デフォルトの名無しさん:2009/04/26(日) 19:22:27
キャストとはいうものの、Cのキャストとはまるで別物なんですかね。変換方法が定義されていることが前提?

333 :デフォルトの名無しさん:2009/04/26(日) 19:25:58
変換方法が指定されていなければ冷害が発生する

334 :デフォルトの名無しさん:2009/04/26(日) 19:33:07
そもそも別言語だからまるで違うんですかって聞かれることに違和感を覚える

335 :デフォルトの名無しさん:2009/04/26(日) 19:34:06
そしてイナゴが・・・

次の収穫は期待できないなw

336 :デフォルトの名無しさん:2009/04/26(日) 19:38:52
>>332
int←→doubleとかvoid*←→int*のような暗黙的・明示的な型変換はC#にもあるぞ。
その上で、さらに任意の型間でキャスト演算子を使えるようにimplicit/explicit operatorを定義できるのがC#。

337 :デフォルトの名無しさん:2009/04/27(月) 00:31:54
Rubyを始めて、しばらくぶりにC#やるとすごい・・・

なんかすごい

338 :デフォルトの名無しさん:2009/04/27(月) 01:45:42
TabControl で、TabPages.Count が 0 の時に
「メニューから項目を表示してください」
って TabControl に表示させたいんですが、良い方法を教えてください。

339 :デフォルトの名無しさん:2009/04/27(月) 01:58:28
ToolTipTextかStatusStrip

340 :デフォルトの名無しさん:2009/04/27(月) 02:00:17
TabControlを継承したコントロールで
OnPaintをオーバライドしてGraphicsで描画

341 :デフォルトの名無しさん:2009/04/27(月) 02:25:00
継承しなくてもイベントでいいじゃん

342 :デフォルトの名無しさん:2009/04/27(月) 13:28:58
DataGridViewオブジェクトに対して、
DataTableオブジェクトをバインドしてみたのですが
View.DataSource = Table;

こうするとスクロールバーの機能がおかしくなります。
スクロールバーがあるであろう矩形領域は再描画がされなくなり、
マウスでクリックしても表示項目が変更されません。

どなたかご教示お願いします。

343 :デフォルトの名無しさん:2009/04/27(月) 16:05:27
すみません、教えて下さい。
C#のフォームに自作のActiveXを貼りました。
このActiveXを操作したいのですが、ActiveX側の自作関数が見えません。
関数は、ディスパッチインターフェースに追加しました。
どうやったら、見えますでしょうか?
そもそも、好きに関数を作れば呼び出せるというものではないのでしょうか?

344 :デフォルトの名無しさん:2009/04/27(月) 16:21:23
できる。やり方が悪い。
ちょっと違う名前空間が前についていることがあるのでよく探してみよう。

345 :デフォルトの名無しさん:2009/04/27(月) 18:15:27
>>337
何がすごいの?
ものすごいの?

346 :デフォルトの名無しさん:2009/04/28(火) 00:48:29
アプリケーション設定の
propertes.Default.setting1.変数名
this.変数名みたいに、短くできないですかね。

347 :デフォルトの名無しさん:2009/04/28(火) 04:22:25
staticなプロパティの返値にすれば
Class.PropertyNameで取得できるんでね?

348 :デフォルトの名無しさん:2009/04/28(火) 14:08:40
>>344
有難うございます。
ActiveXTestという名前でActiveXは作りました。
Axが頭について、AxActiveXTestという参照?がC#のプロジェクトには
見えているのですが、望む追加関数は、_DActiveXTestという
インターフェース? にあるのかどうなのか、結局見えません。
これはActiveX(C++)側の関数の作り方が悪いのでしょうか?
手作業で、idlファイルを書き換える必要ありますか?

349 :デフォルトの名無しさん:2009/04/28(火) 15:50:20
すみません、リビルドしたら見えました。

350 :デフォルトの名無しさん:2009/05/01(金) 17:01:16
クラスに定義されているイベントへ複数の箇所からイベントが登録されるのですが、登録された際、任意の共通処理を行いたいのです。


delegate void hoge();

class sampleClass {
 public event hoge hogeEvent;
 public void callEvent() {
  this.hogeEvent();
 }

 //↓イベントが追加される度に呼び出される
 private void addEventCom() {
     :
 }
}

class mainClass {
 public static void main(string arg[]) {
  sampleClass o = new sample();

  //↓このタイミングで任意の処理を行いたい(addEventComを呼び出したい)
  o.hogeEvent += delegate() {
       :
  }
     :
  o.callEvent();
 }
}

最初、「演算子のオーバーライド(+演算子)でいけるのでは?」と思ったのですが、根本的に間違っていることに気付き...
何かよい方法はないでしょうか?

351 :デフォルトの名無しさん:2009/05/01(金) 17:06:16
方法 : カスタム イベント アクセサを実装する (C# プログラミング ガイド)
を見れ

352 :350:2009/05/02(土) 03:08:00
>>351
add / remove
ありがとうございました。m(_ _)m
〜追記〜
add / remove を定義する際、マルチスレッドを考慮してlockをかけた
方がいいとおもうのですが、自インスタンス(this)でlockをかけるのは
過度だと思い、lock専用のインスタンスを定義してそのインスタンスに
対してlockをかけるようにしたのですが、一般的でしょうか?

353 :デフォルトの名無しさん:2009/05/02(土) 03:22:45
一瞬イベントの定義かとおもって
http://dobon.net/vb/dotnet/vb2cs/event.html
貼り付けたけど違うんだねわかった

354 :デフォルトの名無しさん:2009/05/02(土) 04:47:02
>>352
一般的<lock用のインスタンス作るの

355 :デフォルトの名無しさん:2009/05/02(土) 13:01:18
ものすごく初心者的なことで悪いんですが
娘が全寮制の高校に通っているのですが
学校でやっているCを自宅に帰ってきてからも
やりたいというのですが。
ウルトラCとかいうのを学校では使っている
そうなのですが調べてもダウンロード販売ばかりで
パッケージ販売が無いようなんです。
しかもダウンロード販売も、実際には販売終了ばかりで。

当方、プログラミングは20年前にN88basicとMASMで終わっている
爺いなんで、どれを購入して娘に与えればいいか
アドバイスお願いします。

356 :デフォルトの名無しさん:2009/05/02(土) 13:05:08
VIPでやれ

357 :デフォルトの名無しさん:2009/05/02(土) 13:09:31
GWらしい釣りだな

358 :デフォルトの名無しさん:2009/05/02(土) 13:22:55
なんかバベられてね?

359 :デフォルトの名無しさん:2009/05/02(土) 14:35:48
バベるって何?
神に挑戦すること?

360 :デフォルトの名無しさん:2009/05/02(土) 16:28:56
>>355
Visual Studio 2008 Express Edition(無料)

361 :デフォルトの名無しさん:2009/05/02(土) 16:34:59
ところでウルトラCって実在するの?

362 :デフォルトの名無しさん:2009/05/02(土) 16:38:23
>>361
ggrks

363 :デフォルトの名無しさん:2009/05/02(土) 21:05:41
>>355
Niftyでダウンロード購入可能っぽいが
http://store.nifty.com/goods/goods.aspx?goods=00803LBTE001

364 :デフォルトの名無しさん:2009/05/02(土) 21:18:45
過去の遺物にもほどがあるな
この程度の教官に教わるしかないとか気の毒すぎる

365 :デフォルトの名無しさん:2009/05/02(土) 21:20:00
サポ終了してるので購入は慎重にしたほうがいいかも試練
ttp://www.runexy.co.jp/news/release/news_080602b

366 :デフォルトの名無しさん:2009/05/02(土) 21:21:14
うん?高校生?

367 :デフォルトの名無しさん:2009/05/02(土) 22:25:19
言語に違いないんだからVSでやればいいだけだろに

368 :デフォルトの名無しさん:2009/05/03(日) 01:53:27
インライン関数じゃない書き方を教えてください

369 :デフォルトの名無しさん:2009/05/03(日) 02:05:52
何の目的で?

370 :デフォルトの名無しさん:2009/05/03(日) 02:21:59
まず質問に答えたら教えてやりますよ

371 :デフォルトの名無しさん:2009/05/03(日) 02:29:46
>>370
まず目的を答えたら教えてやりますよ

372 :デフォルトの名無しさん:2009/05/03(日) 02:35:19
それなりの誠意を見せてくださいよ

373 :デフォルトの名無しさん:2009/05/03(日) 02:38:31
じゃあいいや

374 :デフォルトの名無しさん:2009/05/03(日) 02:41:18
威勢がよかった割にはあきらめの早いことで。
MethodImplAttributeでMethodImplOptions.NoInliningを指定するのがそれっぽいことくらい
ぐーぐる先生はすぐ教えてくれたろうに。

375 :デフォルトの名無しさん:2009/05/03(日) 02:43:06
解説くらいしろよ役立たず

376 :デフォルトの名無しさん:2009/05/03(日) 02:55:28
つか目的書いてくれんとマジで。
NoInlining はインライン最適化は確かに抑制するけど目的が
コールスタック保持とかならこれは一部で意味がないとかあるし


377 :デフォルトの名無しさん:2009/05/03(日) 06:27:42
なんか>>368-373がテンポいいんだけどちょっと屋上までこいや

378 :デフォルトの名無しさん:2009/05/03(日) 11:37:43
よく画像に映数字が書かれてて
それを入力して認証するようなのがありますが
あれを実現するライブラリってありますか?
あとWebAPIなんかでも公開されてるんすかねえ?

379 :デフォルトの名無しさん:2009/05/03(日) 11:50:05
CAPTCHA認証でググってそれっぽいのを探したら良いんじゃないか
WordPress用のは使ったことがあるから誰かモジュール化してるかもね

380 :デフォルトの名無しさん:2009/05/03(日) 12:35:56
internal static string s = "hage";

このsの値が変更されるのを防ぐにはどうすればいいですか

381 :デフォルトの名無しさん:2009/05/03(日) 12:44:54
readonly

382 :デフォルトの名無しさん:2009/05/03(日) 13:15:51
ありがとうございます

383 :デフォルトの名無しさん:2009/05/03(日) 15:43:44
ブラウザのURLのクエリ情報を解析したりするクラスってありますか?
http://search.yahoo.co.jp/search?p=URL%E6%83%85%E5%A0%B1++C%23&ei=UTF-8&fr=top_ga1_sa&fl=0&x=wrt&meta=vc%3D
でeiの項目を取得したり、pの項目を取得できたりみたいな

384 :デフォルトの名無しさん:2009/05/03(日) 15:46:02
探すより自作したほうが早いような

385 :デフォルトの名無しさん:2009/05/03(日) 15:49:29
URIの制限で?と&でしか連結できないんだからSplitすればすぐできるだろう

386 :デフォルトの名無しさん:2009/05/03(日) 15:59:10
よーし楽天が一気に7得点したから自作してみるぜ

387 :デフォルトの名無しさん:2009/05/03(日) 16:46:13
できたこんなんでいいのかな?サンクス

public Dictionary<string, string> GetQueryData(string uri)
{
 Dictionary<string, string> dictionary = new Dictionary<string,string>();
 string queryString = uri.Split('?').Length == 2 ? uri.Split('?')[1] : "";
 foreach (string query in queryString.Split('&'))
  if (query.Split('=').Length == 2)
 dictionary.Add(query.Split('=')[0], HttpUtility.UrlDecode(query.Split('=')[1]));
 return dictionary;
}

388 :デフォルトの名無しさん:2009/05/03(日) 17:47:27
すげえじゃん

389 :デフォルトの名無しさん:2009/05/03(日) 18:28:05
>>387
今更ではあるが、

つ HttpUtility.ParseQueryString

HttpUtilityまで見ているのに、何故気付かないのかと
あと、>>387だと http‍://...?hoge=1&hoge=2 とか駄目だな

390 :デフォルトの名無しさん:2009/05/03(日) 19:06:33
>>389
>ParseQueryString
ぬぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ

>あと、>>387だと http?://...?hoge=1&hoge=2 とか駄目だな
なして?

391 :デフォルトの名無しさん:2009/05/03(日) 19:11:54
Dictionaryのキーが同じだから上書きされてしまう。

392 :デフォルトの名無しさん:2009/05/03(日) 19:14:52
なるほど、そういうことか サンクス
でもそれ受け取った側はどうなるんだべなってのは
サーバサイドの問題か

393 :デフォルトの名無しさん:2009/05/03(日) 19:34:01
まあ要素には全てArray入れればいいけどな

394 :デフォルトの名無しさん:2009/05/03(日) 19:39:58
>>393
そうなんだけど、結局、どっちかを無視するしかないんじゃない?
GETで同じのが複数渡された場合、別々の動作をさせることは不可能なんだから

395 :デフォルトの名無しさん:2009/05/03(日) 20:16:50
ひとつのキーに複数の値を受け入れるサーバサイドアプリもあるよ
たとえばこんなの

<input type="checkbox" name="item" value="1" />
<input type="checkbox" name="item" value="2" />

だからこういうフォームを吐くなら値は配列で持たなきゃいけないし
吐かないならどれかひとつで足りる。残りは捨てても構わない

396 :デフォルトの名無しさん:2009/05/03(日) 21:59:25
>>395
エッ(゚Д゚≡゚Д゚)マジ?

397 :デフォルトの名無しさん:2009/05/03(日) 22:25:34
例えばPHPあたりでは
?hoge[]=0&hoge[]=1 で配列送れるし
?hoge[foo]=bar で連想配列も送れた筈。

?hoge=0&hoge=1 みたいな時の挙動は知らん

398 :デフォルトの名無しさん:2009/05/03(日) 23:06:54
int x = 0;
x = x++;

の後に x の値見ると C++ は 1 なのに C# は 0 なんだな…

399 :デフォルトの名無しさん:2009/05/03(日) 23:07:29
ファイルなどの不定長データを配列に格納する場合
.NET1.xの仕様だと配列を再宣言してコピーする操作が必要だから
大きめに配列を宣言しないといけないってググッたら出てきたけど
それって本当だったんですか?

.NET2.xからは可変長な配列が作れるような仕様に
なったって認識で良いですよね?

400 :デフォルトの名無しさん:2009/05/03(日) 23:16:24
何だよ、可変長な配列って。
エスパーするに、ListとかArrayListってのが可変長だよ。

つか
>>ファイルなどの不定長データを配列に格納する場合
って何?まさかbyte配列に格納しようとか言うつもりか?

401 :デフォルトの名無しさん:2009/05/03(日) 23:19:29
>>399
入門書一冊読んでこいよ
C#以前にプログラミング言語習得したことないだろ

まー理解できるか知らんけど説明すると
ValueTypeを格納するコレクションが提供されていなかっただけ
パフォーマンスを気にしなければArrayListに格納できた

2.0からはList<byte>が利用できる

402 :デフォルトの名無しさん:2009/05/03(日) 23:22:48
俺は1.0当時から可変長ファイルの読み込みにはMemoryStreamを使っていたから、
別に可変長配列を使う必要なんかなかった

単にそのライターがしょぼいんだよ

403 :デフォルトの名無しさん:2009/05/03(日) 23:24:12
byteだったらmemorystreamにでもIREROYO

404 :デフォルトの名無しさん:2009/05/03(日) 23:25:48
内部配列の初期サイズについて言ってるんじゃね?

405 :デフォルトの名無しさん:2009/05/03(日) 23:29:20
>>390-394
インデクサなら上書きで済むけど、Add だとキーが被った時点で例外吐くでしょ
1つしか利用できないとかいう以前に、その1つすら取れないじゃないか

まあ、HttpUtility.ParseQueryString がカンマ区切りなのは、
全部配列にすると面倒だが、フレームワークの実装としては
2個目以降を捨てるわけにもいかないという状況での妥協点だな

406 :デフォルトの名無しさん:2009/05/03(日) 23:37:00
>>398
C/C++/C# すべてその結果は未定義じゃなかったか?
気のせいだったらすまんが。

407 :デフォルトの名無しさん:2009/05/03(日) 23:37:32
>>398
C++ は未定義じゃねーの? 少なくとも、C では未定義。

408 :デフォルトの名無しさん:2009/05/03(日) 23:45:21
C#は変数を使用する前/後に更新していると思う

409 :デフォルトの名無しさん:2009/05/03(日) 23:46:42
やべ、ちゃんと見てなかった

410 :デフォルトの名無しさん:2009/05/04(月) 00:17:38
うーん、未定義でござるか。

演算子の優先順位を考えると C# の動きで正しそうでござるが。

411 :デフォルトの名無しさん:2009/05/04(月) 00:17:50
C#の場合は未定義じゃないね。
y = x++; は、

temp = x;
operator ++(x);
y = temp;
と展開されるのが本則。(2行目はコンパイル通らんと思うが)

yをxに置き換えると、xにも(y同様)最終的に0が代入されるよね。

412 :デフォルトの名無しさん:2009/05/04(月) 00:34:51
>>411
ttp://msdn.microsoft.com/ja-jp/library/ms173145(VS.80).aspx
>ただし、次のコード例の出力は未定義です。
>C#
>int num2 = 5;
>num2 = num2++; //not recommended
>System.Console.WriteLine(num2);

↑の記述でそう思ってたんだけど今見たら

ttp://msdn.microsoft.com/ja-jp/library/ms173145.aspx
>未定義の出力について誤りのある説明を削除

ウヴォアァ。パネェ、MSDN マジパネェ

413 :411:2009/05/04(月) 00:43:31
おっと失礼。結局の所
int x = 0;
int temp = x;
x = operator ++(x);
x = temp;
ですな。3行目はoperator抜かないとコンパイル通らない。
(意味的には抜いてOK。後置++が特殊)

>>412
ははは。先入観でしょうね。

414 :デフォルトの名無しさん:2009/05/05(火) 06:20:30
おはようございます
C#の勉強をし始めたのですが
Console.WriteLine(
"{0:#.##}"
,1.1
)
とかですと問題なく表示されるのですが
Console.WriteLine(
"{0:#.##}"
,0
)
にすると表示がなくなってしまいます
0.1にすると0のところが消えてしまい.1だけの表示となるのですが
これを0を含む数を表示させたいときは{}の中はどのように書けばいいのか教えていただけないでしょうか


415 :デフォルトの名無しさん:2009/05/05(火) 06:37:46
{0:0.##} とか {0:0.00}
書式の説明はMSDNにあるが何箇所かに分かれていてちょっと探しにくい。 
{0:#,0.00}なら普通は {0:N2}と書くかな。

416 :デフォルトの名無しさん:2009/05/05(火) 06:47:46
ありがとうございます
頭の0が省略されずにちゃんと表示されました

ほんの少し違うだけで結果が全然違うようになるんですね、、

417 :デフォルトの名無しさん:2009/05/05(火) 10:09:31
そりゃ、ゼロ詰めの有無くらい両方できるようでないと使いづらい。

418 :デフォルトの名無しさん:2009/05/05(火) 22:43:52
トライフェーズって何すか?trycatchのことっすか?

419 :デフォルトの名無しさん:2009/05/05(火) 22:50:17
>>418
try clauseじゃなくて?
とりあえずどんな状況でその言葉が使われてたのか知りたい

420 :デフォルトの名無しさん:2009/05/05(火) 22:52:29
トライパースTryParseだったりして

421 :デフォルトの名無しさん:2009/05/05(火) 23:05:13
>>419
文字列変換をするところでエラーで無いようにトライフェーズしておいてって言われました

>>420
トライパース調べてみたらそんな気が・・・
しかしどうやって使うんすか?
引数に文字列と型を渡したら変換してくれる?


422 :デフォルトの名無しさん:2009/05/05(火) 23:08:10
Int32 i;
if(Int32.TryParse("10",out i)){
// 成功
}else{
// 失敗
}

こんなん

423 :デフォルトの名無しさん:2009/05/05(火) 23:10:24
>>422
thx
なるほど変換に成功したらiに変換後の値が入ってくれるのね
まじthx!

424 :デフォルトの名無しさん:2009/05/05(火) 23:31:11
>>421
クオート付けて "トライフェーズ" でGoogleで検索してみるとわかるが、
そんな用語は恐ろしくレアだぞ。

何かを聞き間違えてるから、まずはそれを確認するべき。

425 :デフォルトの名無しさん:2009/05/06(水) 11:33:27
foreach(MemberInfo m in members)の中で
m.Nameが御目当ての値になったらdataGridView1.AutoSizeColumnsModeに突っ込みたいんだけど
dataGridView1.AutoSizeColumnsMode = m.Name て書いたら型が違うと怒られました。
m.Nameをどう型変換細工してやれば怒られずに済みますか。

426 :デフォルトの名無しさん:2009/05/06(水) 11:37:58
そのm.NameはDataGridViewAutoSizeColumnsMode列挙体のメンバに含まれてる名前なんだな?
Enum.Parseで文字列から列挙体に変換できるが

427 :デフォルトの名無しさん:2009/05/07(木) 04:34:16
初回起動が遅い
10秒かかる

428 :デフォルトの名無しさん:2009/05/07(木) 09:34:09
ひさしぶりだなあお前w

429 :デフォルトの名無しさん:2009/05/08(金) 22:59:43
起動が遅いとか言ってる奴は情報の入手が遅い

430 :デフォルトの名無しさん:2009/05/09(土) 09:50:24
Windows 標準の「ネットワークドライブの割り当て」ダイアログを表示する方法ってありますか?


431 :デフォルトの名無しさん:2009/05/09(土) 11:09:03
はいどうぞ。
ttp://www.tsware.jp/tips/tips_232.htm

432 :430:2009/05/09(土) 14:18:55
>>431
ありがとう!

433 :デフォルトの名無しさん:2009/05/09(土) 15:08:43
C#入門ってここらあたりでいいんですかね。
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html

あとフォームデザインなんかのVSの使い方解説してるお勧めサイトあったら教えてください。

書籍買えばいいんだろうけどせっかくでかいモニタでデュアル構成にしたから
C#&.NET入門はとりあえずオンライン一本でやってみようかなと。

434 :デフォルトの名無しさん:2009/05/09(土) 15:22:32
MSDN

435 :デフォルトの名無しさん:2009/05/09(土) 16:13:36
>>22
(ってこんなに前のにレスするのも悪いが、指摘しといたほうがいいので)
それはSambaの設定が悪い。smb.confにcase sensitive=yesって設定すれば
Windowsからどちらのファイルにもアクセスできる。

Windows自体は大文字小文字を区別するんだよ。ファイルシステムも区別
するようになってれば、正しい取り扱いが出来る。
NTFSが区別しないだけ。


436 :22:2009/05/09(土) 16:50:21
>>435
早速試してみた。
Explorerからメモ長で開く、copyコマンドによるコピー、typeコマンドによるファイルリダイレクトで
読み込み、書き込みにおいてファイル名の大文字小文字が区別しうることを確認できた。

しかし、常用しているEmEditor(複数のファイルを1プロセスで開くタイプのエディタ)では
大文字小文字違いのファイルを同時に扱うことができなかった。

Windowsが標準で使えるFAT12、FAT16、FAT32、NTFSでは
いずれも大文字小文字違いのファイルは作成できず、
その挙動が前提となっているアプリも(少なからず)あるわけで、
残念ながらその指摘は現実的なものではないと思う。

437 :デフォルトの名無しさん:2009/05/09(土) 19:51:26
その程度の技術知識しかない人間が作ったものを良く使う気になれるな…

438 :デフォルトの名無しさん:2009/05/09(土) 20:04:50
>>436
そういうソフトウェアが結構あるのは承知してる。
>>22みたいな一見もっともらしい検証が、Windowsはファイル名の大文字小文字を
区別しないという誤解をますます蔓延させて、いつまで経ってもそういう仕様の
不具合がなくならない一因になってると言っても過言ではない。。
それを指摘したかっただけであって、現在現実的かどうかはどうでもいい。

439 :デフォルトの名無しさん:2009/05/09(土) 21:00:00
Microsoft製品はWindows NTをPOSIX互換にしたとき以来ちゃんと対応してる筈だが、
サードパーティーではそこまで気を配れてるのは少ないだろうな。

440 :デフォルトの名無しさん:2009/05/09(土) 21:07:16
>>438
そもそもSambaはSMB/CIFSプロトコルを理解するWindowsの互換環境に過ぎないわけだが。
クライアント側がファイルを読み書きするとき、クライアントはファイル名をそのままファイルサーバー側に投げているだけで、
ファイル名のチェックを行うのはファイルサーバー側だ。
従って、Windowsはファイル名の大文字小文字を区別する、という主張は成り立たない。

441 :デフォルトの名無しさん:2009/05/09(土) 21:10:37
何を言ってるんだ…

442 :デフォルトの名無しさん:2009/05/10(日) 01:11:28
Frameworkについての質問もいいですか?
System.Windows.Media.Imaging内のBitmapSourceは抽象クラスとあり、
インスタンスの生成ができないようにしているのはわかるのですが、
メンバのCreateメソッドでBitmapSourceオブジェクトを作れるようになってます。
わざわざこのような方法をとるのはどのような理由があるんでしょうか?
ふつうにインスタンスの生成可能なクラスでもいいような気がしますが
抽象メンバも見当たらないですし…見逃してるかもしれないけど

443 :デフォルトの名無しさん:2009/05/10(日) 01:22:35
>>442
Hint: Factoryパターン

BitmapSource.CreateはBitmapSourceの子クラスを返す。

444 :デフォルトの名無しさん:2009/05/10(日) 01:25:46
ちなみにCreateInstanceCoreがabstractのままだ

445 :デフォルトの名無しさん:2009/05/10(日) 01:36:23
>>443-444
なるほど、調べてきますどうもありがとう

446 :デフォルトの名無しさん:2009/05/10(日) 18:39:37
C#にはオブジェクトを丸ごとファイルに保存するようなクラスってありますか?

objectwiter.write(objectname);

こんな感じで。
たしかJavaにはあったのですが。

447 :デフォルトの名無しさん:2009/05/10(日) 18:44:03
BinaryFormatterとかXmlSerializer
どっちも癖があるけどな

448 :デフォルトの名無しさん:2009/05/10(日) 19:15:00
おおサンクス
ためしてみます!

449 :デフォルトの名無しさん:2009/05/10(日) 19:47:43
INIファイル代わりに使おうとするとプロパティの増減でいちいちエラー吐くのがな。
もっと緩いシリアライザってないのかね。

450 :デフォルトの名無しさん:2009/05/10(日) 22:03:31
簡単なアプリなら、断然ApplicationSettingsBaseだな。
ファイルを保存するという感覚すらないし、
設定をコントロールの表示に直接関連付けすれば読み書きするコードがだいぶ省けるよ。

451 :デフォルトの名無しさん:2009/05/10(日) 22:36:58
The Code Project Open License (CPOL) 1.02
ってどんなライセンス?

英語はわかんね。

ttp://www.noppi.jp/diary/?date=20080227
ここみると商用不可って書いてあったりするんだが、
どんなもん?

452 :デフォルトの名無しさん:2009/05/10(日) 22:41:03
ここで教えて貰ったとして、それを信じるのか?

453 :デフォルトの名無しさん:2009/05/10(日) 22:41:28
ライセンスは他人とくにこんな誰ともつかん掲示板で聞くようなもんじゃないよ
わからないライセンスなら使わないという選択肢しかない

454 :デフォルトの名無しさん:2009/05/10(日) 22:47:39
>>451
ライセンス内容と全然違う事書いてて笑った。
何度も強調されてる部分をどうして取り違えるんだろうな

455 :デフォルトの名無しさん:2009/05/10(日) 22:49:00
聞くならUNIX板あたりか
http://www.domo2.net/search/search.cgi?word=%83%89%83C%83Z%83%93%83X&tnum=50&sort=res+desc

456 :デフォルトの名無しさん:2009/05/10(日) 23:03:30
>>451
読んだ。
何が知りたいの?
COPLのソフトウェアを組み込んだ商用ソフトウェアを作ることは可能だよ。

ただ、全体としては、ちょっとオープンソースとかフリーソフトウェアの
ライセンスと呼ぶには変な制限が多いライセンスかも。

457 :デフォルトの名無しさん:2009/05/10(日) 23:04:37
CPOLだったね。
>>455
Code ProjectはMS系の環境のものが多いから、UNIX板ではないかも。

458 :デフォルトの名無しさん:2009/05/10(日) 23:12:06
そういう縛りは特にない

459 :デフォルトの名無しさん:2009/05/10(日) 23:36:06
Windows API Code Pack v0.85 きたけど
http://code.msdn.microsoft.com/WindowsAPICodePack
・Support for Direct3D 11.0 and DXGI 1.0/1.1 APIs.

Direct3D 11.0 をサポート・・?なん・・だと・・・

460 :デフォルトの名無しさん:2009/05/11(月) 01:54:43
DXGIってなんだろ?

461 :デフォルトの名無しさん:2009/05/11(月) 02:23:21
Direct3D のうちあまり変わらないところというかコア部分を分離した
やつ。今の Direct3D は DXGI と Direct3D と D3DX から構成される

具体的には、DXGI はテクスチャ、サーフェス周り(フォーマットとか
そんなの)とかアダプタの管理とかそんなの。

>>459
見た感じ SlimDX の焼き直しにしか見えないというかんーむ。
フルマネージにしないの?

462 :デフォルトの名無しさん:2009/05/11(月) 10:57:13
質問なんですが、テーブルイベントでROWSPANは、使えないのでしょうか?

463 :デフォルトの名無しさん:2009/05/11(月) 11:33:05
出来るだけIDEに依存しないようにプログラムを書いた方がいいの?

464 :デフォルトの名無しさん:2009/05/11(月) 11:50:13
いえVSを使用しているのでそこは特に考えていません。
それとROWSPANじゃなくて、COLSPANでしたorz
一応わからない所のソースを載せておきます。

TableRow r = new TableRow();
TableCell c = new TableCell();
c.BackColor = System.Drawing.Color.Aqua;
c.Controls.Add(new LiteralControl("TEST"));
c.Width = 100;
c.colspan = 2;  ←できない・・・
r.Cells.Add(c);


465 :デフォルトの名無しさん:2009/05/11(月) 11:51:03
開発・保守が自分の中だけで完結するんだったら気にしないでいいんじゃないの

466 :デフォルトの名無しさん:2009/05/11(月) 11:59:29
唐突でわかりにくいんだが、WPFの話?
もしそうならこっちのがいいかも

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
http://pc12.2ch.net/test/read.cgi/tech/1231506876/


467 :デフォルトの名無しさん:2009/05/11(月) 12:04:16
ってBackColorがあるのはASP.NETか
まあ環境書けばここでもいいけど、書かないとわからんぞ・・・
ASP.NETのスレもある

【質問】ASP.NETスレ Part5【議論】
http://pc11.2ch.net/test/read.cgi/php/1232671611/

468 :デフォルトの名無しさん:2009/05/11(月) 12:08:29
で、ちょっとコード貼っつけて見たけどIDEの補間で
c.ColumnSpanが出てきたけどこれじゃないの?

469 :デフォルトの名無しさん:2009/05/11(月) 12:44:42
あるstringの変数が空文字かどうか確かめる場合、
以下のどれを使うのが良いですか?
また、どれが一番早いですか?

if (str == "")
if (str == string.Empty)
if (str.Equals(""))
if (str.Equals(string.Empty))
if (str.Length == 0)


470 :デフォルトの名無しさん:2009/05/11(月) 12:57:30
速度はそこがボトルネックであることが判明してからでいい
== で空文字列どっちかと比較が見やすくていいんじゃないか

471 :デフォルトの名無しさん:2009/05/11(月) 14:08:24
ありがとうございます

if (str == "")
if (str == string.Empty)

が見やすくていいということですね。
見た感じわかりやすいので上のでいきたいと思います。


472 :デフォルトの名無しさん:2009/05/11(月) 14:11:45
そういうのって最適化されるんじゃないの?

473 :デフォルトの名無しさん:2009/05/11(月) 14:19:12
文脈によるしね。
そのコードの前後関係によって空文字であるかより、
長さゼロであることが主目的であればLength見るし。

474 :デフォルトの名無しさん:2009/05/11(月) 15:35:17
String.IsNullOrEmptyも選択肢に加えてあげてください

475 :デフォルトの名無しさん:2009/05/11(月) 15:37:56
よかったなC#は

Javaだとコンパイラの最適化でリテラルプールに同じ文字列が放り込まれて
しまう事があるので==は使えないんだよなあ

476 :デフォルトの名無しさん:2009/05/11(月) 15:41:54
>>474
nullは別用途かも知れん

477 :デフォルトの名無しさん:2009/05/11(月) 15:54:25
>>475
逆じゃね?同じ文字が別のリテラルテーブルに放り込まれることがあるだと思うが。

478 :デフォルトの名無しさん:2009/05/11(月) 16:02:07
>>447
両方だろ問題になるのは

479 :デフォルトの名無しさん:2009/05/11(月) 16:10:47
C# の String.Clone って自分自身を返すんだな。
ちょっとビビった。

480 :デフォルトの名無しさん:2009/05/11(月) 16:20:19
そりゃイミュータブルやし

481 :デフォルトの名無しさん:2009/05/11(月) 16:24:30
ありがとうございます!
解決しました!!

482 :デフォルトの名無しさん:2009/05/11(月) 16:25:42
だれよw
ここ最近で上げてるのは、、>>462かな

483 :デフォルトの名無しさん:2009/05/11(月) 16:42:44
あぁすみません!
>>468さん
ありがとうございました!!!

484 :デフォルトの名無しさん:2009/05/11(月) 21:49:08
string型のプロパティでいちいちString.Copy()した値を返しているのを見たときは
気持ちはわかるがやりすぎだと思った。

485 :デフォルトの名無しさん:2009/05/11(月) 23:07:21
>>443
すんません、クラスを返すとはどういうことでしょうか?

486 :デフォルトの名無しさん:2009/05/11(月) 23:21:30
インスタンスを返すの間違いじゃね

487 :デフォルトの名無しさん:2009/05/12(火) 11:03:05
所略してるだけだろう

488 :デフォルトの名無しさん:2009/05/12(火) 11:04:06
省略、、、

489 :デフォルトの名無しさん:2009/05/12(火) 11:46:56
空気を読まずにSystem.Typeといってみる

490 :デフォルトの名無しさん:2009/05/12(火) 18:36:38
C#をはじめて、今まで使われていたVBのアプリケーションを
C#に移行しようと思っています。

OCXの参照設定が分からなくて、アドバイスをいただきたいと思っています。
開発環境はWindowsXPでVS2008です。
分からないのは、参照設定にVBで使われていたocxを選択して、
画面には参照設定の部分に出てくるのですが、
オブジェクトがうまく作られない状態なのです。
COMをC#で使う場合何か特別な記述が必要ですか??

よろしくお願いいたします。

491 :デフォルトの名無しさん:2009/05/12(火) 19:14:44
オブジェクトがうまく作られないとは?
あと、可能ならどんなocxかわかると理解が早いかもしれない

492 :デフォルトの名無しさん:2009/05/12(火) 19:35:02
>>490
ActiveX コントロールなら、参照設定ではなく、ツールボックスに追加する。
で、フォームに貼り付けると。

493 :デフォルトの名無しさん:2009/05/13(水) 15:59:01
C#に直接は関係ないんですが、
変数名の頭にmyをつける理由はなんですか?

494 :デフォルトの名無しさん:2009/05/13(水) 16:09:54
MS サンプルの変なクセ

495 :デフォルトの名無しさん:2009/05/13(水) 17:26:13
C#学習に難儀しております。
学習に最適なStarterKitか何かをご紹介いただけないでしょうか・・・。

496 :デフォルトの名無しさん:2009/05/13(水) 17:28:35
C言語から始める

497 :デフォルトの名無しさん:2009/05/13(水) 17:48:31
アセンブラからやれ

マジレスすると、作りたい物を調べながら作れ
自然と覚える

498 :デフォルトの名無しさん:2009/05/13(水) 17:49:48
>>495
どう難儀してるか書いてごらん。
書けないんなら、そっちが問題。

499 :デフォルトの名無しさん:2009/05/13(水) 21:44:28
>>493
だって、マイコンピュータなんだもんw
しゃーないべw

500 :デフォルトの名無しさん:2009/05/13(水) 22:23:01
さすがにVistaでマイはなくなったよ。

501 :デフォルトの名無しさん:2009/05/13(水) 22:31:23
そして 7 でコンピューター

502 :デフォルトの名無しさん:2009/05/13(水) 22:36:29
サンプルソースはVBの分も作らなきゃ行かんので
Book book = new Book();
にしてしまうと大小文字を区別しないVBで困ってしまう。
Dim myBook As New Book
だからmyBookつうわけ。

503 :デフォルトの名無しさん:2009/05/14(木) 13:44:42
子フォームから親フォームのオブジェクトを参照したいのですが
showdialog(this) で子を表示した後に子からthis.Owner を確認してもnullになっています
どうすれば親を設定できるのでしょうか?


504 :デフォルトの名無しさん:2009/05/14(木) 14:05:33
すみません、直後に思いついて自己解決しました
子フォームでオーナーを確認するのが早すぎたようです
Loadで確認したらきちんと入っていました
お目汚し失礼しました

505 :デフォルトの名無しさん:2009/05/14(木) 14:48:56
メニュー項目の変数名が漢字になるのが気持ち悪すぎるんだけど
慣れろって話?

506 :デフォルトの名無しさん:2009/05/14(木) 15:53:55
好きなように変えればいいだろ、って話。

507 :デフォルトの名無しさん:2009/05/14(木) 19:19:26
1


508 :デフォルトの名無しさん:2009/05/14(木) 21:49:56
ボタンが押されてイベント発生し
イベント内でwhileなどを使って処理を繰り返してる時に
Form内のラベルのテキストに現在値を更新するようにしても
表示が更新されないままwhileが終了し
進歩が確認できないのですが?

なぜなんでしょうか?
どうやったら更新されるのでしょうか?



509 :デフォルトの名無しさん:2009/05/14(木) 21:57:30
この質問は本当に定番だな

描画も同じスレッドでやるから、whileで回ってる間は描画できないんだ
明示的にRefreshするのが手っ取り早いけどメッセージループが回る落とし穴
BackgroundWorkerを使うのが吉

510 :デフォルトの名無しさん:2009/05/14(木) 22:02:00
ループの最後でupdateすりゃ良いだけじゃないのか・・・?

511 :デフォルトの名無しさん:2009/05/14(木) 22:03:44
>>508
while が終わるまで描画されないから。
Refresh() と Application.DoEvents() を入れれば更新される。
お勧めはしないけど。

512 :デフォルトの名無しさん:2009/05/14(木) 22:04:19
>>509

ありがとうございます。
ちょっと調べます。

513 :デフォルトの名無しさん:2009/05/15(金) 11:06:01
>>498
設計から実装までの全体像がわからずに困っています。
いろいろなサイトを見ていても、設計について言及しているものはあっても
そこからどう実装していくかに触れているものはなく。
一方各種Tipsを紹介していてもシステム全体の中でどう使うかは例示されません。
社内には参考になるアプリも教えてもらえる環境もありません。
.NET PET SHOP がMS推奨のKitだとどこかで紹介されていましたが、
ストアドも使われていないし果たしてこれが推奨アーキテクチャなのかと・・・。
案件によってベストな解決は異なるというのはもっともですが、
何か初心者の指針になるようなアプリケーションがないかと質問させていただきました。
初心者な意見で申し訳ありませんが、ご教示いただければ幸いです。

514 :デフォルトの名無しさん:2009/05/15(金) 11:30:05
初心者の俺は何を言ってるんだか理解出来ないや


515 :デフォルトの名無しさん:2009/05/15(金) 12:53:08
>>513
どう困ってるか分かりません。 結局何が分からないか分からないレベルなのでは。
ストアドなんて単語が突然出てくるのも分からない。

516 :デフォルトの名無しさん:2009/05/15(金) 13:40:26
>>513
的外れならごめん
> 設計から実装までの全体像がわからずに困っています。
UMLとかOOとかに拘りすぎてて、何からどう手を付けて良いか分からない典型じゃないか?
C#の勉強をしてるようだが、自分の分からない部分が
言語仕様的な部分なのか、オブジェクト指向的な部分なのか、
(ストアドという言葉が出てるので)DB接続的な部分なのか、
まず分からない部分を明確にしたらどうだ?

Startkitに拘ってるようだが
「これがC#プログラムのスタンダードな構築方法だ!」って感じのプログラムでも探してるのか?

517 :デフォルトの名無しさん:2009/05/15(金) 13:48:28
まともな研修受けさせてくれず途方にくれてるなら手持ちの知識で突き進むしかない。
小汚くても適当に動くものをでっち上げるしかない。
ある程度組み方を理解できてから設計周りの本読んでいくと
汚い設計のデメリットと綺麗な設計のメリットを身にしみて理解できるんじゃね。

とりあえずはオプソのプロジェクトをDoxygen通して眺めてみるとか。

518 :デフォルトの名無しさん:2009/05/15(金) 14:35:46
>>513 はアプリの組み方が分からないといってるんだから、
本屋のコンピューター書籍のところのでも連れて行って、
本人の納得のいく入門書でも探したらどうだ……?
ここで一問一答するより早かろう。

519 :513:2009/05/15(金) 15:40:45
いろいろアドバイスいただきありがとうございます。

>>516
>UMLとかOOとかに拘りすぎてて、何からどう手を付けて良いか分からない典型じゃないか?
そうかもしれません。
MS推奨のアーキテクチャはAAfNで、SQL文はストアドとしてDB側にまとめて・・・。
でもクラス分割をどうするのか、そこからどう実装するのか、
でも推奨Kitではストアド使わずにハードコーディングしてたり・・・。
浅薄な知識ばかりで混乱しているのかもしれません。

自分の今までの学習方法は、正解あるいは指針となる具体的な事例があって、
それと概念を結びつけることで理解を深め応用していく、というアプローチなのですが、
自社のプロジェクトにそういうものはなく、それでKitのようなものがあればと思った次第です。

>>517
助言とヒントをいただきありがとうございます。
おっしゃる通り、考えることよりも動く方が前進できるのかもしれません。
もうちょい頑張ってみます。

520 :デフォルトの名無しさん:2009/05/15(金) 15:50:44
そうやってひたすら書いてるうちに、数年後自分のコード見たとき
成長した自分を実感する事が出来るよ

521 :デフォルトの名無しさん:2009/05/15(金) 19:03:43
もし俺が億万長者なら新人〜3年目の頃に書いたコードを全部回収して焼却したい。

522 :デフォルトの名無しさん:2009/05/15(金) 23:55:25
すみません、ファイルシステムがFATなのかNTFSなのかを知ることは
できるでしょうか?ググッてみたのですがわかりませんでした。
どのようなクラスを調べればよいでしょうか、よろしくお願いします。

523 :デフォルトの名無しさん:2009/05/16(土) 00:00:06
お前の目はとりあえずとんでもない節穴だな
ttp://dobon.net/vb/dotnet/file/driveinfo.html


524 :デフォルトの名無しさん:2009/05/16(土) 00:03:20
>>523
こういういい奴をツンデレと呼ぶ

525 :デフォルトの名無しさん:2009/05/16(土) 00:08:58
>>523
あちゃー、DOBONさんところにあったんですね、すみませんでした。
一般サイトとヘルプ見たのですがヒットできませんでした。
探し方悪かったです。早急に助けて戴き、ありがとうございました!
またよろしくです!


526 :デフォルトの名無しさん:2009/05/16(土) 00:40:56
>>525
探し方が


           ヘ
           た
           です!

527 :デフォルトの名無しさん:2009/05/16(土) 12:08:04
検索下手な奴ってなんなんだろうな

528 :デフォルトの名無しさん:2009/05/16(土) 15:42:41
Macのメニューみたいにアイコンがスイングするライブラリ知りませんか?
パクリランチャ作りたいのですが、挫折しました。

529 :デフォルトの名無しさん:2009/05/16(土) 17:28:51
>>528
まあ探せばあるのかもしれないが、演出は本質じゃないだろう。
そのパクリランチャとやらを作ってから考えればいいことなんじゃないか?

530 :デフォルトの名無しさん:2009/05/16(土) 18:07:53
教えてください。
aという基本フォームから、a1,a2,a3と3つの継承フォームを作り、独立したdllを作成・
利用する場合、基本フォームaも独立したdllにしたほうがよい?
そうせずに、基本フォームのソースファイルを「リンクとして追加」で共有して、3つの
dllを作って、本プログラムから基本フォームaを呼び出そうとしたら、aが複数のdllに
存在すると怒られてしまった。

531 :デフォルトの名無しさん:2009/05/16(土) 18:31:26
a1, a2, a3 を同じプログラムで使う予定があるのに DLL を分ける意味がわからん。

532 :デフォルトの名無しさん:2009/05/16(土) 20:48:45
意味もなくDLLを増やすな

533 :デフォルトの名無しさん:2009/05/17(日) 00:36:12
ActiveDirectoryに接続してアカウントが所属しているグループを取得したいのですが
C#でどのように書けば良いか教えていただけないでしょうか?

534 :デフォルトの名無しさん:2009/05/17(日) 00:40:02
>>533
DirectorySearcher とかで検索すれ

535 :デフォルトの名無しさん:2009/05/17(日) 15:46:42
C#で他プロセスのメモリの01789CF番を読み込みたいと思った時にはどうしたらいいでしょう?

536 :デフォルトの名無しさん:2009/05/17(日) 15:51:41
ReadProcessMemory

537 :デフォルトの名無しさん:2009/05/17(日) 16:14:50
ASP.NET AJAXって何なの?
AJAXならjqueryかprototype.js使えば困ること無いんですが。

538 :デフォルトの名無しさん:2009/05/17(日) 16:23:22
ASP.NET AJAX は jquery を含んでいなかったかな?

539 :デフォルトの名無しさん:2009/05/17(日) 18:51:10
メモ帳そっくりなプログラムを練習で作っているのですが、
テキストボックスのDockをFillにしつつ下部のスクロールバーをステータスバーの上に表示するにはどうすれば?

今の設定では下部のスクロールバーがステータスバーに隠れてしまうのですが・・

540 :デフォルトの名無しさん:2009/05/17(日) 18:53:36
>>539
ステータスバーを前に出せばOK。

541 :デフォルトの名無しさん:2009/05/17(日) 18:54:00
あ。逆か。

542 :539:2009/05/17(日) 18:56:50
>>540-541
あぁ、なるほど
できましたありがとう〜

543 :デフォルトの名無しさん:2009/05/17(日) 20:55:24
>>540
それだとTextboxの下が隠れてしまわないか?

TextboxをFillにするのではなく
ステータスバーぎりぎりのサイズに設定した上で上下左右にアンカーをつけるか、
toolStripContainerに管理させてTextboxはContentPanelの中に入れるのが筋だと思うんだが。

544 :デフォルトの名無しさん:2009/05/17(日) 21:04:45
>>543
隠れないよ
DockがBottomになってるから

545 :デフォルトの名無しさん:2009/05/17(日) 21:28:55
>>544
試してみた。ほんとだ。.NET Formsはよくできてるなぁ。

546 :デフォルトの名無しさん:2009/05/17(日) 21:38:16
謝罪が先だろ
試しもしないでケチつけやがって

547 :デフォルトの名無しさん:2009/05/17(日) 21:43:25
謝罪w を 要求するニダwww

548 :デフォルトの名無しさん:2009/05/17(日) 21:46:42
それがお前の答えか

549 :デフォルトの名無しさん:2009/05/17(日) 21:46:54
賠償を要求してこないだけマシだなw

550 :デフォルトの名無しさん:2009/05/17(日) 21:49:16
最低だなお前

551 :デフォルトの名無しさん:2009/05/17(日) 21:50:52
くだらん煽りはやめやめ。

管理者が殺伐を推奨してる掲示板で何言ってんだか、って感じ。

552 :デフォルトの名無しさん:2009/05/17(日) 21:59:27
何ってなんだよ

553 :デフォルトの名無しさん:2009/05/17(日) 22:48:59
質問です。ここのサンプルで、XElementをintにキャストできるのは何故?('A')
http://msdn.microsoft.com/ja-jp/library/system.xml.linq.xelement(VS.95).aspx


554 :デフォルトの名無しさん:2009/05/17(日) 22:52:56
キャスト演算子をオーバーロードしてるから

555 :デフォルトの名無しさん:2009/05/17(日) 22:54:04
<Child1>1</Child1> だから。

556 :デフォルトの名無しさん:2009/05/17(日) 22:56:40
メンバ一覧見ればexplicitメソッドがオーバーロードされてるって分かるだろ

557 :デフォルトの名無しさん:2009/05/17(日) 23:02:36
さすがにExplicitメソッドがオーバーロード、は初心者には気づけないと思うんだ…
まえはop_Explicitだったのにいつの間にかop_消えてたのな

558 :デフォルトの名無しさん:2009/05/17(日) 23:03:46
チラっと見たら演算子のオーバーロードの項目が見当たらなくて、
「あれっ?」と思ったのですが、本当だ、よく見たらありましたorz

559 :デフォルトの名無しさん:2009/05/17(日) 23:05:16
>>557
そうそう、前はop_だったのが見当たらないので、
まさかすぐ下に独立した項目があるとは思いもよりませんでした

560 :デフォルトの名無しさん:2009/05/18(月) 02:18:27
PCにモデム繋いでナンバーディスプレイって出来ないもんでしょうか?
まったくやり方がわかりません。

561 :デフォルトの名無しさん:2009/05/18(月) 02:20:17
どこの誤爆ですか

562 :デフォルトの名無しさん:2009/05/18(月) 02:20:17
あと、FAXを送信するライブラリとかあったら教えてください

563 :デフォルトの名無しさん:2009/05/18(月) 02:22:21
すみません。顔面にコブシを叩き込んでもよろしいですか?

564 :デフォルトの名無しさん:2009/05/18(月) 02:46:36
むかーしWinFaxってのなかったっけ?

565 :デフォルトの名無しさん:2009/05/19(火) 21:59:47
C#で作ったプログラム(.NET)はコードを読むことができるそうですが、
C#で作ったDLLもやっぱり同様なのでしょうか?

566 :デフォルトの名無しさん:2009/05/19(火) 22:01:30
読めます

けど初心者スレレベルの人には全く関係の無い話です
誰も好き好んでクソコードなんか見ませんから

567 :デフォルトの名無しさん:2009/05/19(火) 22:26:39
>>566
ありがとうございます。
逆に、参考に人のを見られるわけですよね。

568 :デフォルトの名無しさん:2009/05/19(火) 22:27:47
いい切り替えしだ

569 :デフォルトの名無しさん:2009/05/19(火) 22:29:53
参考にしたいのなんかはまずソースオープンにされてるから気にしなくていいな

570 :デフォルトの名無しさん:2009/05/19(火) 22:54:08
ネット探したほうがよほどいいソースが見れるぞ。説明書付で

571 :デフォルトの名無しさん:2009/05/19(火) 23:59:47
難読化してある物は結構スパゲッティだったりする罠

572 :デフォルトの名無しさん:2009/05/20(水) 11:18:07
SaveFileDialogのDefaultExtが機能せず、
Filterで指定した一番左の拡張子が選択されるのは何故ですか?

573 :デフォルトの名無しさん:2009/05/20(水) 11:47:49
AddExtension プロパティは、表示されるファイルにフィルタを適用するための拡張子を、既定では Filter プロパティから特定しようとします。Filter プロパティから拡張子を特定できなかった場合は、代わりに DefaultExt が使用されます。

574 :デフォルトの名無しさん:2009/05/21(木) 11:54:26
>>3
テンプレの参考サイトについてですが、
・ページのタイトルも書いてください
・googleは検索エンジンであって参考サイトではありません。
 解らないことがあったらgoogleで調べよと一言入れておけば良いのでは?

575 :デフォルトの名無しさん:2009/05/21(木) 11:59:43
じゃあ次スレを立てるときに574が入れてください。
任せましたよ。

576 :デフォルトの名無しさん:2009/05/21(木) 12:05:54
>>575
解りました。
次スレから俺好みのスレに調教させてもらいます。

577 :デフォルトの名無しさん:2009/05/21(木) 14:15:03
>>576
そんなら、相談室とふらっとスレがうまいこと棲み分けできるように
調教ついでにおねがいします。

578 :デフォルトの名無しさん:2009/05/21(木) 14:38:59
テンプレ変更するならスレ立てる前にテンプレ案張っとけ

579 :デフォルトの名無しさん:2009/05/21(木) 18:01:59
タスクバーに表示される文字列が更新されない時がある
なんでこんな曖昧なことが起きるんだ
コンピュータって何なんだ

580 :デフォルトの名無しさん:2009/05/21(木) 18:12:40
コードが悪いんだろ。環境のせいにするなよ

581 :デフォルトの名無しさん:2009/05/21(木) 18:50:39
まあ変な環境使ってるのかもよ
代替シェルみたいな

582 :デフォルトの名無しさん:2009/05/22(金) 18:17:14
現在UserControlを継承した、スクロールバー付きのコントロールを作成しています。
スクロール毎にクライアント領域全てを再描画させたいのですが、
AutoScrollの場合、内部でScrollWindowEx?が呼ばれているらしく、
どうしてもOnPaint前にその描画(前回描画したものがずれたもの)が入るようです。
そこでAutoScrollをfalseにし、VerticalScrollを使うようにしてみましたが、
今度はマウスでスクロールした後に、VerticalScroll.Valueが0に戻るようです。
どなた様か解決策をご教示頂けませんでしょうか。

583 :デフォルトの名無しさん:2009/05/22(金) 20:42:15
AllPaintingInWmPaintをtrueにしてみるとか

584 :582:2009/05/22(金) 21:25:59
有り難うございます。
AllPaintingInWmPaintはチラツキ対策の為、trueにしてあります。

585 :デフォルトの名無しさん:2009/05/22(金) 23:44:09
listViewコントロール(View=Details)でアイテム選択状態の時に、
右クリック押下でコンテキストメニューを表示したいのですが、
listViewコントロールにコンテキストメニューを設定すると、
当然どの状態でも表示されてしまうので、抑制する方法を教えてください。

586 :デフォルトの名無しさん:2009/05/22(金) 23:50:51
抑制じゃなくて右クリック押下の時に選択アイテムあるか見て表示すればいいじゃない

587 :デフォルトの名無しさん:2009/05/23(土) 08:59:34
クラス内の関数をpublic static とするとクラスの
インスタンスを作成しなくとも関数を使用することが
でき、結構便利に使うことができますが、これは、
邪道なのでしょうか。クラス内の関数はクラスの
インスタンスを作成して使うべきなのでしょうか。

使い分けなんかはありますか?

588 :デフォルトの名無しさん:2009/05/23(土) 09:34:05
どのくらい書いてる?
いくつも書けばわかってくる

589 :デフォルトの名無しさん:2009/05/23(土) 10:10:55
>>587
責務で分ける。インスタンスが不要 or インスタンスを指定できないような責務なら使う。
ユーティリティクラスと言われる関数の集合を扱うクラスでは有用。例えばMathが良い例。
他にも手順を用いてインスタンスを生成するための関数でも使う。Singletonとか、String.Fromatとか。

しかし、責務としてインスタンスが必要な場合にstatic変数 + static関数にするのはアウト。
書くのがちょっと楽になる程度で、実質static変数の弊害(グローバル変数の弊害)しかない。

590 :デフォルトの名無しさん:2009/05/23(土) 10:41:48
コード分析ツールはこんなこと言うよ
http://msdn.microsoft.com/ja-jp/library/ms245046.aspx
ちなみにこれは、>>589の言っていることとは矛盾してない。
(「責務」って表現する文化にはなじみがないし、static変数じゃなくて、
クラス変数と言うかスタティックフィールドって言うかどっちかにしてよ、
ってのはともかく)

591 :デフォルトの名無しさん:2009/05/23(土) 10:58:33
>>590
そう?static〜は確かにそうだけど
責務って言葉はけっこう使われると思うな。

592 :デフォルトの名無しさん:2009/05/23(土) 11:14:18
「責務」は確かに使われてるみたいだ。でも、誤訳でしょう。
送られたメッセージに自律的に応答する能力(respond + ability)が
resposibilityだよ。

http://www.merriam-webster.com/dictionary/responsible
1aが最もシンプルな定義になるんだろうけど、OOP用語としては2aが近いかな。
いずれにせよ「応答する能力」が一義的かつ重要なんであって、「責務」って
のはニュアンスとしてだいぶかけ離れている。まあ、responsibleは
プログラミングの世界だけでなく、一般的に常に誤訳されてるような気はするが。

593 :デフォルトの名無しさん:2009/05/23(土) 11:27:59
どうでもいい。

594 :デフォルトの名無しさん:2009/05/23(土) 11:36:34
>>592
http://dictionary.goo.ne.jp/leaf/jn/205972/m0u/responsibility/

595 :デフォルトの名無しさん:2009/05/23(土) 11:38:40
>>590
> パフォーマンス重視のコードでは、これにより大きくパフォーマンスを向上できます
うーん、これどうなんだろう。どっちかというと、疎結合になるメリット、つまり
「インスタンスに影響を与えない/影響を受けない関数と明示できる」が一番じゃないの?

596 :デフォルトの名無しさん:2009/05/23(土) 11:44:25
状態を持つ必要のないものはstaticにする
状態を持つものは通常のインスタンス化する

597 :デフォルトの名無しさん:2009/05/23(土) 11:52:29
>>594
Merriam Websterに対してgoo辞書の2単語で対抗しようとするのって
無謀だとは思わないか?

598 :デフォルトの名無しさん:2009/05/23(土) 11:56:35
オナニーはオナニー板で

599 :デフォルトの名無しさん:2009/05/23(土) 12:28:41
俺はこういう話好きだぜ。

600 :デフォルトの名無しさん:2009/05/23(土) 12:46:09
あーOEDオンライン化しないかなぁ

601 :デフォルトの名無しさん:2009/05/23(土) 13:24:04
してるじゃない。個人で利用は難しいが

602 :デフォルトの名無しさん:2009/05/23(土) 15:37:20
すいません質問です。
アプリケーションの設定を保存したいのですが、ユーザースコープのようにアプリケーションスコープの値を変更する方法はないでしょうか。
やりたいことは実行ファイルと同一フォルダ上にアプリケーションの設定情報を保存およびその読み出しをしたいだけなのですが、
わざわざ自作しなければならないのでしょうか?


603 :デフォルトの名無しさん:2009/05/23(土) 16:22:08
>>602
>アプリケーションの設定を保存したいのです
>ユーザースコープのようにアプリケーションスコープの値を変更する方法はないでしょうか。 
>実行ファイルと同一フォルダ上にアプリケーションの設定情報を保存およびその読み出しをしたい
どれだよおい

604 :デフォルトの名無しさん:2009/05/23(土) 16:34:46
一応それをやれる枠組みはあるが、
インターフェイス以外のほとんどコードが書き直しで、
そこを変更してしまうとIDEが対応しない。
で、やるのをあきらめた。

605 :602:2009/05/23(土) 22:25:42
自己解決しました。
exe.configをDOMとして読み込んで、上書きという単純すぎる方法。

1、あらかじめフォームデザイナでApplicationSettings>PropertyBindingでアプリケーションスコープの設定をバインド。
2、FormClosedイベントハンドラ辺りに、たとえば以下のコードのように記述。

string assemblyName = this.GetType().Assembly.GetName().Name;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(assemblyName + ".exe.config");
XmlNode node = xmlDoc["configuration"]["applicationSettings"]; //exe.configのxmlを見て決め打ち。
foreach (XmlNode item in node)
{
 if (item.FirstChild.Attributes[0].Value == "StatusBarVisible")  //ここに、設定の名前を。
 {
  item.FirstChild.FirstChild.FirstChild.Value = statusStrip1.Visible.ToString(); //入れたい値を代入。
 }
}
xmlDoc.Save(assemblyName + ".exe.config"); //保存を忘れずに。

これでexe.configをiniのように使えるっぽいです。


606 :デフォルトの名無しさん:2009/05/23(土) 22:40:05
ショートカットからとかの起動考えてないだろ、相対パス使ってるあたり
あとProgram Filesにインストールしたら書き込めないぞ

607 :デフォルトの名無しさん:2009/05/23(土) 22:50:36
PowerShellくらい簡単にXML使えるようにしてくれよ

608 :デフォルトの名無しさん:2009/05/23(土) 22:57:55
LINQ to XML使え
びっくりするくらい簡単で使いやすいから

609 :デフォルトの名無しさん:2009/05/23(土) 23:03:17
CD-ROMに保存できないよね

610 :デフォルトの名無しさん:2009/05/23(土) 23:23:16
XDocumentなー
XmlDocumentに比べれば確かに便利

611 :デフォルトの名無しさん:2009/05/24(日) 00:21:18
初心者です。
VC# express edition を入れたのはいいのですが、教科書のコンソールアプリをコンパイルすることが出来ないでいます。
csc hello.cs
でコンパイルできるようにするには、なにをどうすればいいのでしょうか。
IDE環境でビルドすることはできます。でも短いプログラムごとにプロジェクトをわけるのはどうも大げさすぎて。

612 :デフォルトの名無しさん:2009/05/24(日) 00:27:43
「パスが通ってる」って表現は分かる?

613 :デフォルトの名無しさん:2009/05/24(日) 00:28:21
>>611
プロジェクト右クリック→プロパティ→〜アプリケーションとかなってるやつを
コンソールアプリケーションに変更

614 :デフォルトの名無しさん:2009/05/24(日) 00:34:54
cscはC:\Windows\Microsoft.NET\Framework\v3.5\ とかにあるぞ
v3.5はv2.0.50727とかも

615 :611:2009/05/24(日) 00:57:46
>>614 さんのところにパス通して無事にコンパイルできました。ありがとうございました。

616 :デフォルトの名無しさん:2009/05/24(日) 01:05:56
VC++のコマンドプロンプトみたいに、パスを通すバッチのショートカットを作っとくと便利。

617 :デフォルトの名無しさん:2009/05/24(日) 01:15:37
スタートメニューのVS2008以下にコマンドプロンプト用意されてるけどね

618 :デフォルトの名無しさん:2009/05/24(日) 01:17:13
>>606
>>ショートカット
自分の環境だと再現できないからよくわかりませんがそうなんですか?
>>Program Files
・・・Vistaだと起きるのか・・・まぁ、不対応って事で。

619 :デフォルトの名無しさん:2009/05/24(日) 01:29:08
普通にXPでも一般ユーザなら書けないし
あとショートカットは作業フォルダ=起動時のカレントディレクトリを簡単に変更できる

620 :デフォルトの名無しさん:2009/05/24(日) 01:37:02
ここで作法レベルの話をうだうだやってもしょうがない。
インストーラつきのまともなアプリを作って配布するなら
データの保存場所はMSのガイドラインに沿うべきってだけ。

621 :デフォルトの名無しさん:2009/05/24(日) 02:10:27
>>616
残念ながらVC++以外のエクスプレスにはない。

622 :621:2009/05/24(日) 02:11:29
>>617の間違いだ、すまん。

623 :デフォルトの名無しさん:2009/05/24(日) 12:05:13
>>619,620
ぐぐって色々把握できました。サンクス
ショートカットはApplication.ExecutePathに置き換えて絶対パスにしました。
書き込みに関してはインストール不要系の習作なので放置。

しかしこんな書き込み関連の仕様だったことを初めて知りましたよ。
もしそこら辺のゲームがuser.config書き込みだったりすると、隠しフォルダだしバックアップもソフト側でお膳立てしないといけないと実質だめそうですね

624 :582:2009/05/24(日) 17:34:16
チラ裏に書くべき事かもしれませんが、一応解決したらしいのでご報告を。
前者の問題ですが、SetScrollState(ScrollStateFullDrag, false);とする事により対処出来ました。
ですが、スクロール中に無理矢理再描画するとぶれる現象が再発。

後者の問題はttp://rararahp.cool.ne.jp/cgi-bin/lng/dotnet/dotnetlng.cgi?print+200607/06070002.txt
ここに書いてある現象と全く同一なわけですが、一応解決・・・?
WM_VSCROLLでSB_ENDSCROLL(8)が飛んできたときに、VerticalScroll.Valueが0になるようなので、
base.WndProcに処理を渡さないようにすると「一応」直りました。
こちらは無理矢理再描画してもぶれる現象は発生しませんでした。
これで当初から望んでいた動作にする事が出来たようです。
この方法ですと他の部分に弊害が起きる気もしますがw

以上、指摘や助言等ございましたらレス頂ければ幸いです。

625 :582:2009/05/24(日) 17:48:48
・追伸
両者のコードとも、スクロール中にも再描画させる為に
OnScrollにてVerticalScroll.ValueへNewValueを代入し、Invalidate()を実行してます。
OnPaintでは、背景は常に同位置、前景はVerticalScroll.Valueにより移動する等の描画をしてます。

626 :デフォルトの名無しさん:2009/05/25(月) 01:34:12
varって出来るだけ使わない方がいいの?

627 :デフォルトの名無しさん:2009/05/25(月) 01:37:40
アンダースのオッサンはvarのコストは実行時にはないって言ってた気がする
作法的な問題なら知らん

628 :デフォルトの名無しさん:2009/05/25(月) 02:11:48
varはコンパイル時に静的な型が与えられるんじゃなかったかね?

629 :デフォルトの名無しさん:2009/05/25(月) 02:32:41
varは型推論だからラインタイムにコストが発生することはない

630 :デフォルトの名無しさん:2009/05/25(月) 02:42:22
コンパイルする時に型決めるだけで、実行段階では同じ。
コード量とコーディングの厳密さとのトレードオフ。
using(var s = new くどくど())... みたいに、宣言してすぐ初期化する場面では冗長な部分を削れたり。

C#は、コード上でも参照ごとに厳密に型付けされてることがコードの追いやすさを支えてる。
宣言と初期化がある程度離れるなら、VSの入力補完もあるんだし、書けば良いのにとも思う。
個人的にはCtrl+Spaceが癖になってるから、タイプ量も速さもそんなに変わらんし。

あとはターゲットが.NET2.0にする時とか、コードを不特定多数に配布する場合とかは避けたりする。VS2005で触るかもってことで。

631 :デフォルトの名無しさん:2009/05/25(月) 03:01:22
宣言と初期化が離れたらvar使えないよ…

型名が長くなるとか数個の別々の型の変数をまとめて宣言するとかだと
varの方がかえって見やすくなるってことない?(右辺見れば型は明らかって場合ね)

632 :デフォルトの名無しさん:2009/05/25(月) 03:07:40
とりあえずfrom x inの時しか使わん、今は。

何か感銘を受けるようなコードを見る機会があるまでは旧スタイルで保留。

633 :デフォルトの名無しさん:2009/05/25(月) 03:31:03
ダックタイピングできるとvarはかなり旨いんだけどなあ

634 :デフォルトの名無しさん:2009/05/25(月) 03:34:53
>>631
マジだw。やったこと無かったから知らんかったw。さすがC#。
複数宣言の時は参照名の頭が揃って見やすいか。納得。

今のC#のチームは2.0ターゲットだから、3.0の新機能は使ってない。コードも2.0スタイルで書いてる。
家で新機能調査はやるけど、ホビーでも今のところ慣れてる旧スタイルだな。

635 :デフォルトの名無しさん:2009/05/25(月) 09:21:43
>>634
> 今のC#のチームは2.0ターゲットだから、3.0の新機能は使ってない。コードも2.0スタイルで書いてる。
こんな恥ずかしいチームは解散で。

636 :デフォルトの名無しさん:2009/05/25(月) 10:29:41
.NET2.0をターゲットにしてるが、C#は3.0を使ってる。
使える機能は限られはするがvarは便利だな。
使いすぎには注意だけど、
ローカル変数の宣言以外に使えないから
使いまくってもそれほど可読性は落ちてないな。

637 :デフォルトの名無しさん:2009/05/25(月) 11:52:08
エラー 1 プロパティまたはインデクサを out か ref のパラメータとして渡すことはできません。

どうしてですか?

638 :デフォルトの名無しさん:2009/05/25(月) 11:59:35
何のためのゲッター・セッターだよ。

639 :デフォルトの名無しさん:2009/05/25(月) 12:21:25
VBは出来たりするけど内部で変なことをやってる。

640 :デフォルトの名無しさん:2009/05/25(月) 14:13:29
こんにちは 質問させて下さい
今ゲームを作っているのですが
物を表すobjっというクラスのインスタンスを複数作りたいんです
インスタンス変数の配列みたいなのを宣言してfor文で一気にインスタンスを作りたいのですが
無理なんでしょうか?

641 :デフォルトの名無しさん:2009/05/25(月) 14:20:58
複数のスレッドから呼び出される関数があって、ブレークポイントを仕掛けて止めたあと、そのスレッドだけでステップ実行したいのですが。
現状、他のスレッドを止めて作業しています。
特定スレッド以外から呼び出された場合は、ステップ時の停止をしないようにする方法があれば誰か教えてください。

>>640
意味がよくわからないけどこういう事かな?
 obj [] objArray = new obj[100];
 for(int i = 0 ; i < objArray.GetLength(0) ;++i) { objArray[i] = new obj() ; }


642 :デフォルトの名無しさん:2009/05/25(月) 14:30:18
>>641
ブレークポイントを右クリックして、フィルタ設定すればできるんじゃないかな?
やったことないから知らんけど

643 :640:2009/05/25(月) 14:33:55
>>641
ありがとうございます!できました!

644 :デフォルトの名無しさん:2009/05/25(月) 14:36:24
>>642
どうも、いけてるっぽいですね。
ステップ実行にも適用されているぽいです、今のところ。

645 :デフォルトの名無しさん:2009/05/25(月) 21:44:20
初心者っていうレベルの質問なのかも分からないけど、1点質問を

USBのマウスを2個ないし3個刺して、それぞれのマウスの移動量って個別に取得するとかできます?
1個のマウスじゃないのは、複数のX軸Y軸の動きを見て「マウスの捻り動作」も取得したいからでして、
DirectInput見ても、Mouseイベント見てもマウス自体の識別ができないようで・・。

何か知識や方法ご存知の方いらっしゃったらご教授ください


646 :デフォルトの名無しさん:2009/05/25(月) 21:47:52
マウスポインタが複数あるなら拾えるんじゃね?

647 :デフォルトの名無しさん:2009/05/25(月) 21:49:17
Windows7でサポートされるようになるとか何とか
WM_INPUTである程度どうにかなったっけ
前調べたときはなーんか限界があった気がする

648 :デフォルトの名無しさん:2009/05/25(月) 22:15:02
どちらかというとそれはDirectInputやらの話で、
C#は関係ないような気がするんだが。

649 :デフォルトの名無しさん:2009/05/25(月) 22:17:15
Win7だとマルチタッチがあるから対応したのかな?
てかここじゃなくて、Win32SDK?あたりのスレに行くと有識人と出会えるかも?

650 :デフォルトの名無しさん:2009/05/25(月) 22:19:59
>>646
ありがとうございます。マウスポインタ関係無しで(モニタ上のポインタと関係無く)座標を取りたいので難しそうです。
何よりマウスポインタを複数表示or作成する方法がいまいち・・

>>647
MSDNをみた感じ、詳細なマウスの位置を取ろうと思ったらWM_INPUTが一番いいみたいですね
WINAPIから?しか使えない感じですが調べてみます。

>>648
そうなんですか。
当方C#かVBくらいしか分からないのと、今回使用する言語がC#だったためここで質問しました。
スレ違いでしたら申し訳ありませんでした。

651 :デフォルトの名無しさん:2009/05/25(月) 22:32:56
DirectInput だとたぶん複数取れるよ。デバイス列挙するやつがあるだろ?

ttp://msdn.microsoft.com/ja-jp/library/cc351907.aspx
↑こいつかいねと。

ほかには HID API あたり使うとか。

652 :デフォルトの名無しさん:2009/05/25(月) 22:38:26
>>651
> Microsoft. Windows. XP 上では、Microsoft DirectInput. は、
> システム マウスおよびシステムキーボードとして参照される、
> 1 つのマウス デバイスと 1 つのキーボードデバイスのみを列挙する。
> これらのデバイスは、システム上のすべてのマウスの出力と、
> キーボードの出力の組み合わせをそれぞれ表す。
> Windows XP での複数のマウスまたはキーボードからの読み取り方法については、
> WM_INPUT のドキュメントを参照すること。


653 :デフォルトの名無しさん:2009/05/25(月) 22:39:55
Ohもろ書いてあるじゃんorz

654 :デフォルトの名無しさん:2009/05/25(月) 23:30:41
WEBで電子印鑑を実現したいんだけど.NETのライブラリありませんか?

655 :デフォルトの名無しさん:2009/05/25(月) 23:37:19
電子印鑑てなに?電子署名のこと?

656 :デフォルトの名無しさん:2009/05/25(月) 23:45:03
知らないなら黙っててください

657 :デフォルトの名無しさん:2009/05/25(月) 23:49:57
電子印鑑ってただの画像だぞ

658 :デフォルトの名無しさん:2009/05/26(火) 00:04:10
ただの画像っていうか印刷したあと判子を押すのが面倒だから入れておく画像。

659 :デフォルトの名無しさん:2009/05/26(火) 00:10:05
社印の名前と部署の部分は動的に生成しなきゃならんから難しそうだな。

660 :デフォルトの名無しさん:2009/05/26(火) 00:12:55
>>659
電子透かしとかそういった事かと思ったけど、そういう話なの?

661 :デフォルトの名無しさん:2009/05/26(火) 00:48:42
やっぱり動的に印鑑の画像を作るしかないよね?
社内のWEBアプリで使いたいのです。

662 :デフォルトの名無しさん:2009/05/26(火) 00:53:37
静的なほうがよければ、
欲しいぶんだけ印鑑の画像を用意して表示させればいいんじゃないの?

663 :デフォルトの名無しさん:2009/05/26(火) 12:59:05
>>605
アホなことしなさんな。
下手すりゃVista以降じゃまともに動かなくなるぞ。

664 :デフォルトの名無しさん:2009/05/26(火) 13:03:47
まだやるのかよw

665 :デフォルトの名無しさん:2009/05/26(火) 13:05:21
すまん表示更新してなかったよorz

666 :デフォルトの名無しさん:2009/05/26(火) 14:01:20
アホめ

667 :デフォルトの名無しさん:2009/05/26(火) 14:06:25
黙れ下郎

668 :デフォルトの名無しさん:2009/05/26(火) 14:09:16
豚が

669 :デフォルトの名無しさん:2009/05/26(火) 14:10:28
もっとなじってくれ

670 :デフォルトの名無しさん:2009/05/26(火) 18:46:19
>>669
あいしてる

671 :デフォルトの名無しさん:2009/05/26(火) 18:51:57
いやぁ〜ん

672 :デフォルトの名無しさん:2009/05/27(水) 01:17:09
空気読まずに質問しちゃうけど、
ディレクトリへのフルパス(例:"C:\Foo\Bar")から
末端のディレクトリの文字列("Bar")を取得するメソッドってないの?

Bar がファイルだったらPath.GetFileName()でとれるんだけど。

673 :デフォルトの名無しさん:2009/05/27(水) 01:18:10
ディレクトリも同じよ

674 :デフォルトの名無しさん:2009/05/27(水) 09:22:11
IsolatedStorageFile.GetUserStoreForApplicationを呼び出すと
IsolatedStorageExceptionが発生してしまします。

このときのエラーメッセージが
「呼び出し側のアプリケーション ID を確定できません。」
なので、AppDoman.CurrentDomain.ApplicationIdentityがnullなのがいけないのだと思うのですが、
ApplicationIdentityをnull以外にする方法がわかりません。

どうしたら、ApplicationIdentityをnull以外にできるのでしょうか?

675 :デフォルトの名無しさん:2009/05/27(水) 13:01:56
checked{}って何に使うの?
というかむしろデバッグ中はプロジェクト全体を覆ってしまいたい気がする。

676 :デフォルトの名無しさん:2009/05/27(水) 13:26:22
数字のオーバーフローチェック
桁あふれぎりぎりで演算しなきゃいけないときに使う
コンパイラスィッチで指定できたはず

677 :デフォルトの名無しさん:2009/05/27(水) 13:34:02
checkedはどっちでもいいけど意図的にオーバーフローさせるときはuncheckedは絶対に付ける
でないとコンパイラスイッチが使えない

678 :デフォルトの名無しさん:2009/05/27(水) 15:40:23
VS2008ExpressEditionでFxCopとStyleCop入れてみたんですが...
ツールにメニューが出てきません。(´・ω・`)
このアドインてExpressEditionじゃ使えないんですかね?

679 :デフォルトの名無しさん:2009/05/27(水) 15:44:10
そもそもアドインじゃなかったと思うが
ttp://japan.internet.com/developer/20061025/26.html

680 :デフォルトの名無しさん:2009/05/27(水) 15:44:16
>>678
未だにこんな人がいたか
EFではアドイン自体つかえません

681 :デフォルトの名無しさん:2009/05/27(水) 15:46:48
変数とプロパティの用途の違いが分からない

682 :デフォルトの名無しさん:2009/05/27(水) 16:01:38
>679-680
ExpressじゃStyleCop使えないんですね。
FxCopは完全に勘違いしてました。(´・ω・`)

どうもありがとうございました。orz

683 :デフォルトの名無しさん:2009/05/27(水) 17:10:21
そのうち違いが分かってくるのでとりあえず意識しなくてよろしい

684 :デフォルトの名無しさん:2009/05/27(水) 17:23:40
expressではIDEに統合できないだけでFxCopやStyleCopは単体で使えるよ

685 :デフォルトの名無しさん:2009/05/27(水) 18:47:26
MenuStripのRenderプロパティとStatusStripのRenderプロパティの初期値が違うのはMicrosoft Corporationの不徳の致すところですか?

686 :デフォルトの名無しさん:2009/05/27(水) 18:50:32
初期値が何だっていいじゃないか。変える必要があるなら変えればいい。

687 :デフォルトの名無しさん:2009/05/27(水) 18:50:45
意味が分からない
メニューとステータスバーのレンダラが違うのって何かおかしいか?

688 :デフォルトの名無しさん:2009/05/27(水) 19:53:32
>>684
とりあえずStyleCopのインストールパス探してみたんですが...
『C:\program files\MSBuild\Microsoft\StyleCop\v4.3』には設定用のexeしか無いんですが、スタンドアロンで使うってどうしたら良いんですか?

689 :デフォルトの名無しさん:2009/05/27(水) 20:32:23
C#インスコしたけど何からはじめたらいい?

690 :デフォルトの名無しさん:2009/05/27(水) 20:39:44
WinAPIのラップあたりから。

691 :デフォルトの名無しさん:2009/05/27(水) 20:40:12
お前は何もしなくて良いよ

692 :デフォルトの名無しさん:2009/05/27(水) 20:44:57
新しい環境では大抵メモ帳作るな。
メニュー、ツールバー、ステータスバーの実装、
ファイルの入出力、ちょっとした状態の管理(新規、変更なし、変更あり)あたりが学べる。

693 :デフォルトの名無しさん:2009/05/27(水) 20:46:24
もうちょっとがんばって最近使ったファイル、外部ツールの登録機能を実装すると
いろんなアプリで使いまわせるようになる。

694 :デフォルトの名無しさん:2009/05/27(水) 21:13:44
なるほどありがとう
上でもあったようにメモ帳からやってみるよ

695 :デフォルトの名無しさん:2009/05/27(水) 21:30:18
>>688
msbuild用だから単体では使えない
プロジェクトファイルを手で書き換えればビルド時に自動的に診断してくれるようになる
stylecop msbuild でググれ

696 :デフォルトの名無しさん:2009/05/27(水) 21:42:27
DLLのラップはやってみて損しないと思うな
どうせ不満が出てくるから

697 :デフォルトの名無しさん:2009/05/27(水) 21:49:14
APIついでにやるなら32bitと64bitの切り替え対応かねぇ
関数は一緒でも引数の型違いで動かんのとか結構あるし
setupapi.dllとか半日悩んだわ

698 :デフォルトの名無しさん:2009/05/27(水) 21:54:28
64bitと32bitで別関数なんてのもよくある話
GetWindowLongPtrとかな

699 :デフォルトの名無しさん:2009/05/27(水) 22:02:19
>>696
そういうのはMSでやってくれよ。
いちいち宣言すんのだるいわ。

そういうプロジェクトどっかにまとまってないのかね。

700 :デフォルトの名無しさん:2009/05/27(水) 22:03:55
そういえば、実際のところC#で32/64bit向けビルドってどういう扱いなの?
DirectXを扱ったりすると、途端にプラットフォームターゲットがAny CPUのままじゃ動かなくなったりする。

この件は原因が判明するまで苦労したものだった。

701 :デフォルトの名無しさん:2009/05/27(水) 22:06:35
COM Interopじゃ仕方ない

702 :デフォルトの名無しさん:2009/05/27(水) 22:10:33
pinvoke.netは定番

703 :デフォルトの名無しさん:2009/05/27(水) 23:57:30
C#向けじゃないライブラリのラッパーをC#で書くってのは、
P/Invokeを使うってこと?
他に方法があったりするの?

704 :デフォルトの名無しさん:2009/05/27(水) 23:59:28
ネイティブのライブラリならP/Invoke
COMのライブラリならCOM Interop

705 :デフォルトの名無しさん:2009/05/28(木) 00:03:18
702が言ってんのはhttp://pinvoke.net/だろ

706 :デフォルトの名無しさん:2009/05/28(木) 00:06:49
>>705
>>703は独立した質問です。紛らわしくてスマソ

>>704
モヤモヤが解けました

707 :デフォルトの名無しさん:2009/05/28(木) 01:10:16
コンソールアプリケーションとWindowsフォームアプリケーションだとどちらを先に習得すればいいのでしょうか?


708 :デフォルトの名無しさん:2009/05/28(木) 01:16:09
前者
10分で終わる

709 :デフォルトの名無しさん:2009/05/28(木) 01:19:21
OpenFileDialogを開き、そこにデスクトップの内容を表示した状態で選択ファイル名を空にしたままエンターキー(または開くボタン)を押すとマイ コンピュータなどのリンクが一覧から消えてしまいます
Windows Vistaでの挙動を教えてください

710 :デフォルトの名無しさん:2009/05/28(木) 01:22:53
>>708
即レスありがとうございます
1ヶ月くらいかかりそうです(汗

711 :デフォルトの名無しさん:2009/05/28(木) 07:50:46
現在、MailDir形式(1ファイルに1つの生メールデータが入ってるタイプ)がありまして、
ここから、本文とタイトルだけを抽出したいのですが、
System.Net.MailのMailMessageクラスのようなものに、この生メールデータをバインディングして
各種メソッドを使いデータを取り出すようなことは出来ないのでしょうか?
少なくとも、MailMessageクラスにはそのような生データを読み込むメソッドはありませんでした。

方法がありましたら、よろしくお願いします。

712 :デフォルトの名無しさん:2009/05/28(木) 08:20:12
自分でパーサ書け

713 :デフォルトの名無しさん:2009/05/28(木) 08:27:20
フリーのLibでもいい?

714 :デフォルトの名無しさん:2009/05/28(木) 14:04:51
ButtonコントロールのImageプロパティに画像を指定し
FlatStyle = FlatStyle.Flat、FlatAppearance.BorderSize = 0として
枠線の無い画像ボタンを作ったのですが
Enableをfalseにした時に、枠線が出て来ます
この枠線を消すには、何を指定すれば良いのでしょうか?

715 :デフォルトの名無しさん:2009/05/28(木) 14:42:28
んーやってみたけど出ないけどな?

716 :714:2009/05/28(木) 14:57:09
>>715さんのレス見て、クリーンしてコンパイルしたら出なくなりました…
何だったのか分からないまま再現不能に…('A`)
自分用のツールなので再現した時また考える事にします
ありがとうございました

717 :デフォルトの名無しさん:2009/05/28(木) 15:58:04
なんかフォーカスの線みたいな気がしないでもないな。

718 :デフォルトの名無しさん:2009/05/28(木) 16:11:14
デリゲートをList化したいのですが、コンストラクタの引数がよく分かりません。
>Delegate (Object, String) 指定したインスタンス メソッドを指定のクラス インスタンスに対して呼び出すデリゲートを初期化します。
>Delegate (Type, String) 指定したクラスから指定の静的メソッドを呼び出すデリゲートを初期化します。
分かりやすく教えて頂けませんか?

719 :デフォルトの名無しさん:2009/05/28(木) 16:20:52
何言ってるかわからないのでコード晒してくれお

public delegate int TestDelegate(string str);
public int TestDelegateMethod(string str){return Int32.Parse(str);}

List<TestDelegate> list = new List<TestDelegate>();
for(int i=0;i<10;i++)
list.Add(new TestDelegate(this.TestDelegateMethod));

720 :デフォルトの名無しさん:2009/05/28(木) 17:29:53
すみません。説明不足でした。コードは消してしまったのですが、
list.Add(new TestDelegate(null));
nullにできないかと思ったのですが、未指定というのは無理ですか?

721 :デフォルトの名無しさん:2009/05/28(木) 17:31:28
>>720
Nullable

722 :デフォルトの名無しさん:2009/05/28(木) 17:36:13
何も指さないデリゲートインスタンスは不可能だな
って言うかそんなんして何がしたいんだ

723 :デフォルトの名無しさん:2009/05/28(木) 17:37:40
>>721
ありがとうございます。試してみます。
お早い解答に正直驚いてます。;

724 :デフォルトの名無しさん:2009/05/28(木) 17:39:33
>>722
任意のメソッドを格納するデリゲートを複数作りたかったので…。

725 :724:2009/05/28(木) 17:46:17
蛇足ですが、
テキストファイルに書かれたメソッド
*.txt
{Test(...),Test2(...)} //格納
{Test2(),Test()} //2つめ格納
{Test3(...)} //3つめ。。。
を実行するためにデリゲートがいくつも必要だと思った次第です。

726 :デフォルトの名無しさん:2009/05/28(木) 17:49:47
それはデリゲートよりリフレクションのほうが便利かもね

727 :724:2009/05/28(木) 17:52:33
>726
どうも。組みなおしてみます。

728 :デフォルトの名無しさん:2009/05/28(木) 19:48:39
デリゲートがいくつも必要なのは分かるがなぜ何も指さないのが必要なんだろう?
って思ったけどまあ本人が納得してるならそれでいいか

729 :デフォルトの名無しさん:2009/05/28(木) 20:09:26
.NET4.0(DLR)では引数16個のFunkが出てくるぜ
型引数64個のクラスとかもうね

730 :デフォルトの名無しさん:2009/05/28(木) 20:14:14
そいつはFuckだなHAHAHA!

731 :デフォルトの名無しさん:2009/05/28(木) 20:24:34
>>730
誰が上手い事言えとwww

732 :デフォルトの名無しさん:2009/05/28(木) 21:28:11
>>731
すまねぇ ついでてしまったんだHAHAHA

733 :デフォルトの名無しさん:2009/05/28(木) 21:38:20
Funkyなやろうだぜ

734 :デフォルトの名無しさん:2009/05/29(金) 00:06:22
C#は情報量が少ないように感じます
なぜですか?あまり人気がないのでしょうか?

735 :デフォルトの名無しさん:2009/05/29(金) 00:08:58
必要な情報はあると思うが、なんと比べて少ないんだ?
何が知りたかったのだ?

736 :デフォルトの名無しさん:2009/05/29(金) 00:09:49
オブジェクト指向です

737 :デフォルトの名無しさん:2009/05/29(金) 00:12:26
C#で学べるのはOOPまでだな、オブジェクト指向はもっと大きな概念だ。
ちなみに、オブジェクト指向の何が知りたいんだ?

738 :デフォルトの名無しさん:2009/05/29(金) 00:21:18
>>734
C# で情報少ないとか言ったら、他の言語なんて何もないぞ。


739 :デフォルトの名無しさん:2009/05/29(金) 00:28:44
まだ可変長ジェネリック採用する気ないのか

740 :デフォルトの名無しさん:2009/05/29(金) 00:36:52
C#で情報少ないとか、どんだけゆとってんだよ

741 :デフォルトの名無しさん:2009/05/29(金) 00:50:04
C#って仕様複雑やしない?
簡単って言われたけどなんか習得すべき事柄が多いぞ

742 :デフォルトの名無しさん:2009/05/29(金) 00:53:30
>複雑やしない

743 :デフォルトの名無しさん:2009/05/29(金) 01:04:54
>>741
C++を選択していれば今頃挫折していた。

744 :デフォルトの名無しさん:2009/05/29(金) 01:05:21
複雑というか、出きることが多いけど大半は代替手段や記法の簡略化。
知らなくても困りはしないが、知っておくと得をする程度。

でも、落とし穴がこっそり各所に用意してあるのが怖いけどなw。
「匿名デリゲートは書くのが楽」とだけ理解していてキャプチャでハマったり、
LINQで遅延判定でハマったり。

745 :デフォルトの名無しさん:2009/05/29(金) 01:28:49
>>741
どんどん増えてるねぇ。
でも、あれと同じことを他の言語でやること考えたら、はるかに簡単にできちゃうからなぁ。

746 :デフォルトの名無しさん:2009/05/29(金) 01:31:03
>>744
あー、キャプチャは知らずに乱用してると落とし穴に落ちそうだね

747 :デフォルトの名無しさん:2009/05/29(金) 04:25:29
起きてる人いますか?

748 :デフォルトの名無しさん:2009/05/29(金) 04:28:00
また来ます

749 :デフォルトの名無しさん:2009/05/29(金) 04:30:11
いますよ。何か?

750 :デフォルトの名無しさん:2009/05/29(金) 04:46:34
さっさと言えよ

751 :デフォルトの名無しさん:2009/05/29(金) 05:13:40
キャプチャって何のこと?
画面のキャプチャやロボットチェックのCAPCHAのことじゃないんだよね?

752 :デフォルトの名無しさん:2009/05/29(金) 05:47:14
うん

753 :デフォルトの名無しさん:2009/05/29(金) 05:55:58
正直楽しすぎてやばい
病気になりそう

754 :デフォルトの名無しさん:2009/05/29(金) 05:59:10
はい

755 :デフォルトの名無しさん:2009/05/29(金) 07:44:03
>>751
for(int i=0;i<10;++i) { hogehoge.PropertyChanged += (s,p) => Debug.WriteLine(i); }と、
for(int i=0;i<10;++i) { int j = i; hogehoge.PropertyChanged += (s,p) => Debug.WriteLine(j); }を
違う結果にする、わくわく系不思議機能。

756 :デフォルトの名無しさん:2009/05/29(金) 07:52:39
それは違う結果になって欲しいだろ

757 :デフォルトの名無しさん:2009/05/29(金) 09:50:13
forとforeachは括弧とスコープが対応していないので紛らわしいね

758 :デフォルトの名無しさん:2009/05/29(金) 10:31:33
C#で辞書作りたいです。辞書とかって str.replaceってのを使って置換してるんですか?

759 :デフォルトの名無しさん:2009/05/29(金) 10:33:32
辞書ってどういう辞書ですか?
何か例となるソフトでも挙げてみてください

760 :デフォルトの名無しさん:2009/05/29(金) 10:35:19
英語を日本語にするんです
ソフトとか良く分からないです


761 :デフォルトの名無しさん:2009/05/29(金) 10:38:28
「辞書とか」なんて言葉が出るくらいですから
手本としてるものはあるわけでしょ

762 :デフォルトの名無しさん:2009/05/29(金) 10:40:40
ありません

763 :デフォルトの名無しさん:2009/05/29(金) 10:43:40
じゃあ自由に作れよw

「こういう機能をつけたいなあ」というのがあったらまた来い

764 :デフォルトの名無しさん:2009/05/29(金) 10:46:46
わかりました。 またお願いします
ありがとうでした

765 :≠755:2009/05/29(金) 11:33:51
>>756
文法上はなってくれないと大問題だけれど、直観的にはそうなって欲しくないな
ほとんどのケースで後者と同じ挙動をしてほしいと思うし。
それと変数が散乱しすぎる。

766 :751:2009/05/29(金) 11:39:19
イベントの登録のことを何でキャプチャと呼ぶのかは分からないけど、
delegateやラムダ式につかませる自由変数の扱いは注意しないといけないだろうね。

767 :≠755:2009/05/29(金) 11:42:56
うーん、クロージャーが参照するのか、クロージャーがコピーをを持つのかを
ラムダ式の内部ではなく、外部で決定しようとするから訳らからん事になってるのかな、文法の吟味が足らない予感がするな。
とくに構造体が相手の場合、普通はコピーが原則なのに此処だけは参照になってしまう。

768 :≠756:2009/05/29(金) 12:29:16
>>765
>ほとんどのケースで後者と同じ挙動をしてほしいと思う
ねーよw

>>766
イベントの登録じゃなくて

>delegateやラムダ式につかませる自由変数
外部変数を捕まえる(取り込む)からキャプチャ

769 :デフォルトの名無しさん:2009/05/29(金) 12:32:42
はーん
ややこしい

770 :デフォルトの名無しさん:2009/05/29(金) 12:41:14
>>768
なるほど。そういう文脈があるとは知らなかったなぁ。
ググってみた限りではC#とC++0xの記事で見られる用語みたいだ。

普通は自由変数といったり、外部変数の束縛と言ったりするんだが。まあ束縛自体がキャプチャの訳語なのかな。

771 :デフォルトの名無しさん:2009/05/29(金) 12:42:52
>>768
>ねーよw
逆に問いたいが、ループ変数が最後の状態の値になった状態が必要なデリゲートなんて意味あるのか?

772 :デフォルトの名無しさん:2009/05/29(金) 12:58:13
要するに、この記事のことか。
http://www.atmarkit.co.jp/fdotnet/csharp20/csharp20_05/csharp20_05_02.html

773 :デフォルトの名無しさん:2009/05/29(金) 13:40:43
クロージャの話は定期的に出てくるが以前このスレかもうひとつのほうでで散々やったな。
クロージャは関数型言語の概念なので、
値を拘束しない手続き型言語のクロージャはどれも特殊。

手続き型言語の世界ではforやforeachでの解釈は少数派ということはない。
身売り騒動でどっかに行ってしまったが、java7のクロージャも同じ解釈だった。
rubyでも同様に (0..9).each do |i| と for i in 0..9 do で動作が異なる。
C#なら前者はList.ForEachといったところ。

774 :デフォルトの名無しさん:2009/05/29(金) 13:41:04
ラムダ式って有効ですか?わかりにくくて使う必要がない気がするのですが。

775 :デフォルトの名無しさん:2009/05/29(金) 13:45:40
まあ作るのものによってもよく使うかあんまり使わないか変わるし
不要と思うなら使わなくてもいいよ 他の人のを読めさえすれば

776 :デフォルトの名無しさん:2009/05/29(金) 14:17:23
>>774
LINQを使い始めれば必要不可欠である事がわかるよ
ラムダ式無しでデータ操作などする気が無くなる
この種のアプローチで、毎回クラス作ってvirtual関数導出してなんてやってたら、手のつけられないクラスの山が出来上がるから。

777 :デフォルトの名無しさん:2009/05/29(金) 14:20:33
>>773
C#の話題の中でのクロージャなんだから、普通にC#的クロージャの話題として受け止めればいい
わざわざ関数型言語の話題なんか持ち出す必要もないかと。

778 :デフォルトの名無しさん:2009/05/29(金) 14:21:44
はあ?

779 :デフォルトの名無しさん:2009/05/29(金) 14:43:13
virtual 関数一個導出するため『だけに』とかinterface の中の関数一個定義するため『だけに』といった、中身があって無きが如しのクラスが大量増殖すると嫌になりませんか?って事。
ある日気づいてみたら、そんなクラスがネームスペースの9割を占めていて大事なクラスがちっとも見つかりません、IDEの名前候補機能が役立たずになるし、たまに微妙に高機能になったクラスがあったりして、現物を見るまで正体不明だとか。
そんなライブラリ嫌でしょう?俺は嫌だね

780 :デフォルトの名無しさん:2009/05/29(金) 14:55:08
そんなに膨れあがるかどうかは作るものに強く依存するから、あなたの経験を元にそんなに力説されても困る。
あとデリゲートがあるんだからキャプチャの必要がないならクラス作る必要はない。
それからどうせプライベートなクラスならインナークラスにする。

781 :デフォルトの名無しさん:2009/05/29(金) 15:08:38
>>780
すでにそうなりがちな.Net Frameworkを見てさえそう思うなら、そういう事なんでしょう
必要だから作られた、ただそれだけの物。
必要ないなら誰もこんな機能追加しようなんて思い立ちませんよ。

782 :デフォルトの名無しさん:2009/05/29(金) 15:23:54
だから作るものによるって言ってるじゃん
おいらも一回だけC#の仕事があったけどそれはこっちのデータを色々いじってそっちに移すってものだったから
LINQもラムダ式もよく使ったというかコードの中心だったしそれをメソッドやクラスに展開したいとは思わない
でも自分が使うだけのちょっとした小物なら別に必要はないと思う
まあおいら自身はラムダ式とか積極的に使うけどさ

783 :デフォルトの名無しさん:2009/05/29(金) 15:27:21
ウザイ
「必要になったら使え」の一言で終わるだろ
分かったら死ね

784 :デフォルトの名無しさん:2009/05/29(金) 15:32:50
ここ初心者スレであって議論スレじゃないんで。
プログラミング思想信条的な物まで持ち出して話引っ張らないでくれるかね。

○すぞ。

785 :デフォルトの名無しさん:2009/05/29(金) 15:34:35
そもそも初心者スレの住人を相手にする時点でもうね

786 :デフォルトの名無しさん:2009/05/29(金) 15:35:35
伏せなくていい。ウザイから殺しとけ。

787 :688:2009/05/29(金) 17:12:16
>695
とりあえずググッてみます。
ありがとうございます。

788 :デフォルトの名無しさん:2009/05/29(金) 19:30:56
C#においてコントロールとコンポーネントの違いを説明しなさい

いや、教えてください

789 :デフォルトの名無しさん:2009/05/29(金) 19:42:30
ほかのプログラムと組み合わせて使うために作られたクラスがコンポーネント
それにGUIが付いたらコントロールとも呼ぶ

790 :デフォルトの名無しさん:2009/05/29(金) 19:43:05
C#においてはともかく、.NETにおいてなら
System.Windows.Forms.Controlとその派生クラスがコントロール
System.ComponentModel.IComponent実装してるのがコンポーネント

791 :デフォルトの名無しさん:2009/05/29(金) 21:27:18
自分の知らない範囲が出てくると発狂するヤツってどーなんかねw

792 :デフォルトの名無しさん:2009/05/29(金) 21:51:59
ArgumentOutOfRangeException

793 :デフォルトの名無しさん:2009/05/29(金) 22:37:48
ちょこっと弄っただけの知識で全てが分かった気になってしまう中二病プログラマ、俺様サイコー(笑)ってヤツだな
『俺の知らない事は知らなくても問題ない物と』信じて疑わない、たまに居るねw

794 :デフォルトの名無しさん:2009/05/29(金) 23:03:42
>>793
まさにオレのことだな

795 :デフォルトの名無しさん:2009/05/29(金) 23:09:29
デリゲートやらデストラクタやらスレッドやら全く分からないけど何とかなったり。

796 :デフォルトの名無しさん:2009/05/29(金) 23:11:12
そりゃチューリングマシンなら何だって何とかなるさ
それでいいのかぁっ

797 :デフォルトの名無しさん:2009/05/30(土) 00:21:24
>>790
WPFやSilverlightやGTK#も忘れないで

798 :デフォルトの名無しさん:2009/05/30(土) 00:26:06
WPFやSilverlightはむしろ忘れたいw
デフォではスプレッドシートすらないとか、
補完機能が使い物にならないとか、ひどい有様。

799 :デフォルトの名無しさん:2009/05/30(土) 00:28:47
MMORPG作れますかね?

800 :デフォルトの名無しさん:2009/05/30(土) 00:43:08
作れる

801 :デフォルトの名無しさん:2009/05/30(土) 00:49:57
ただし

802 :デフォルトの名無しさん:2009/05/30(土) 00:57:04
お前には無理

803 :デフォルトの名無しさん:2009/05/30(土) 01:01:28
頑張りますよ
応援してください

804 :デフォルトの名無しさん:2009/05/30(土) 01:07:16
XNAで話題になってるゲームもあるし
応援してやろう

805 :デフォルトの名無しさん:2009/05/30(土) 02:01:11
画像形式を内部データから判定する方法は、
System.Drawing.BitmapのRawFormatを使う以外にありますか?
WPFアプリを作ってるのでWPFライブラリ内を探してるのですが。

806 :805:2009/05/30(土) 02:06:45
ちょっと語弊がありました。
画像形式を判定というより、指定したファイルが画像ファイルであるかを調べたい
のが一番の目標です。
この場合はバイトコードとして読んで自分で判定するコードを書くことになるのかな。

807 :デフォルトの名無しさん:2009/05/30(土) 02:08:58
BitmapDecoder.Createでデコードしてみるとか
「画像ファイル」の範囲にもよるけどな MAGファイルはどうするのか? とか

808 :デフォルトの名無しさん:2009/05/30(土) 10:12:31
Bitmapクラスで読み込める範囲で、かつそれほど高速でなくてもいいなら、
実際にBitmapクラスに開かせて、オープンできれば画像だということにするとか。

809 :デフォルトの名無しさん:2009/05/30(土) 10:22:36
それならBitmapImageで読み込んでみる方がいい

810 :デフォルトの名無しさん:2009/05/30(土) 19:31:23
ログファイルなんかの末尾に2,3行追記するのってどうやるの?

811 :デフォルトの名無しさん:2009/05/30(土) 19:35:39
追記モードで開いてWriteLine()すればいい。

812 :デフォルトの名無しさん:2009/05/30(土) 22:59:07
簡単なクライアント・サーバープログラムを書いているのですが、サーバー側のプログラムがうまく動きません
・クライアント側:
private void Connect(){
TcpClient tcpConnection = new TcpClient(ipEndPoint);
Debug.WriteLine("Connected");
}
・サーバー側:
private void Listen(){
TcpListener tcpListener = new TcpListener(IPAddress.Any, Port);
tcpListener.Start(100);
while (isAlive){
tcpListener.BeginAcceptTcpClient(new AsyncCallback(ListenAcceptCallback), tcpListener);
autoResetEventTCPListen.WaitOne(WaitTime);
}
}
private void ListenAcceptCallback(IAsyncResult ar){
TcpListener tcpListener = (TcpListener)ar.AsyncState;
TcpClient tcpConnection = tcpListener.EndAcceptTcpClient(ar);
Debug.WriteLine("Accepted");
autoResetEventTCPListen.Set();
}
・デバッグメッセージ:クライアント:
Connected
Connected
・デバッグメッセージ:サーバー:
Accepted
(本来Acceptedが表示されるはずだが、表示されない)

よろしくお願いします

813 :デフォルトの名無しさん:2009/05/30(土) 23:56:55
>>812
そもそもAcceptするか?
TcpClientのコンストラクタに渡すIPEndPointはクライアントのローカルのエンドポイントであって
接続先のエンドポイントじゃないはずだが。
NICが複数ある場合にどれを使うか明示するためのもんだったかと。
接続はConnectでやらんと。

814 :デフォルトの名無しさん:2009/05/31(日) 00:09:31
>>813
す、すみません。

TcpClient tcpConnection = new TcpClient();
tcpConnection.Connect(ipEndPoint);

と直してみましたが、やはりAcceptしてくれません。。。
# コードを色々直して試していて、余計なことをしてしまったみたいです…orz

815 :デフォルトの名無しさん:2009/05/31(日) 00:22:28
>>814
どうやらTCP/IPの基本が分かってないようだから、
ここで一問一答を繰り返すよりか、
ソースコード付きのチュートリアルでも探してそのとおりにやってみたら?

816 :デフォルトの名無しさん:2009/05/31(日) 00:48:50
Panel内にあるコントロールを別のPanelに移したいとおもい、
foreach (Control ctl in this.panel1.Controls)
{
this.panel1.Controls.Remove(ctl);
this.panel2.Controls.Add(ctl);
}
というコードを書いて実行してみたんですが、
これで移動できるコントロールと移動できないコントロールが。
移動できるコントロールと移動できないコントロールの違いって何なのでしょうか?

・コモンコントロールで試した結果
>移動できないコントロール
ListBox
CheckBoxList
TextBox
MaskedTextBox
DateTimePicker
PictureBox
RadioButton
TreeView
>移動できるコントロール
Label
ListView
CheckBox
LinkLabel
ComboBox
MonthCalendar
ProgressBar
RichTextBox
WebBrowser

817 :デフォルトの名無しさん:2009/05/31(日) 00:54:11
わかりません!

818 :デフォルトの名無しさん:2009/05/31(日) 01:08:32
>>816
それ以前にforeachで列挙中にその列挙してるコレクションからRemoveしちゃダメだろ

819 :デフォルトの名無しさん:2009/05/31(日) 01:11:38
勉強して3日・・僕は何を作ったらいいですか?

820 :デフォルトの名無しさん:2009/05/31(日) 01:13:44
目標を作りなさい

821 :デフォルトの名無しさん:2009/05/31(日) 01:16:10
うまい事言うね

822 :816:2009/05/31(日) 01:17:22
>>818
ごめんなさい。それが原因でした。
どうもお騒がせしました。

823 :デフォルトの名無しさん:2009/05/31(日) 02:04:02
>>820
ちょっと感動した

824 :デフォルトの名無しさん:2009/05/31(日) 17:38:06
フォームを作ってみたいんですが
System.Windows.Forms.dllを参照設定から追加しようとしてもSystem.Windows.Forms.dllがありません。
VS2008のExpressを使っています。

825 :デフォルトの名無しさん:2009/05/31(日) 17:39:02
連れすすみません
間違えて投稿してしまいました
System.Windows.Forms.dllはどこにあるのでしょうか?

826 :デフォルトの名無しさん:2009/05/31(日) 17:42:37
GAC

827 :デフォルトの名無しさん:2009/05/31(日) 17:48:42
C:\Windows\Microsoft.NET\Framework\v2.0.50727

828 :デフォルトの名無しさん:2009/05/31(日) 17:52:11
>>824
ないわけない。ソートしてみた?

829 :デフォルトの名無しさん:2009/05/31(日) 18:47:01
>>826-828
ありがとうございます。>>827のパスで指定したら動いたんですけど
参照設定にはないままです…

830 :デフォルトの名無しさん:2009/05/31(日) 19:03:10
名前には.dllの文字は無いよ

831 :デフォルトの名無しさん:2009/05/31(日) 19:57:39
ちゃんと .NET のタブを見てるか?

832 :824:2009/06/01(月) 18:51:20
昨日はwebサービスの下に見えなかったはずのものが
今日よく見ていたらありました

みなさんありがとうございました

833 :デフォルトの名無しさん:2009/06/01(月) 21:12:07
ゲイツ神への信仰心が足りないからそういうことになる。

834 :デフォルトの名無しさん:2009/06/02(火) 09:35:00
contextMenuStrip1をtoolStripMenuItem1の上で右クリックして開きたい

IEのメニューバーにお気に入りという項目がある(Firefoxでも良いですが)
この項目に所属しているアイテムの上で右クリックするとコンテキストメニューが開き、そのまま削除などの編集ができるようになっている
これと同じことを実現したいのですがうまくいきません

private void toolStripMenuItem1_MouseDown(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Right) {
contextMenuStrip1.Show(menuStrip1, e.Location);
}
}

第一パラメータにtoolStripMenuItem1が入らないです

835 :デフォルトの名無しさん:2009/06/02(火) 15:06:00
オレも、お気に入り風メニューの作り方を知りたいのでアゲ

836 : [―{}@{}@{}-] デフォルトの名無しさん:2009/06/02(火) 19:34:00
現在pop3サーバにアクセスしてメール受信するdllを作っています
メールを片っ端から読み込んで正規表現使ってfromやsubjectを取得するのは
出来たのですが、添付ファイルの文字列の取得がうまくいきません
今はメール送信する段階でbase64にエンコードする頭悪いソースになっています

filename="090615UID_Pj439Oke.jpg"

D035O8lcf9TdfhybQQzQPnftZMjstXCmzqovU0tU7Tk7yS1+7PvV3Gn9ydIZnJM5jHOLju71
6bG6G9VQD5pZHk7R3ntW+vxybzuTptE846Z+dvVVsi6nHiRJ6Rwd0HHHiiMpzxoOdp4aBtH3
〜省略〜
H3NKjLFyp9PUjCqXFA8oMm5EkS60jUbW9ZzdRKAMuaGsB7M71v4ldyozKPLI4ld2tYYZklzz
gVPqQefJS6nsoyTO/gl1HY4jqTs8VCccH2bseK8q6YEG5AAgAckCTjvQBSUAQlLYEk81IGp4
--------------0509000000000000500040704--

file名のサイズ長は固定なので、"filename"をRegexのpatternにして色々と
試してはいるのですが……正規表現はここ最近やり始めたのですが、何か良い
勉強方法とかあったらあわせて教えて欲しいです

837 :デフォルトの名無しさん:2009/06/02(火) 19:55:41
>>836
> pop3サーバにアクセスしてメール受信するdll
...(中略)...
> 今はメール送信する段階でbase64にエンコードする
んんん?

838 :デフォルトの名無しさん:2009/06/02(火) 19:57:36
>>836
CodeProjectにMIMEパーサがあるようだが、試してみた?
http://www.codeproject.com/KB/cs/mime_project.aspx

839 :デフォルトの名無しさん:2009/06/02(火) 19:58:22
>>836
ちなみに、送信するだけならSystem.Net.Mimeを使えばいい。

840 : [―{}@{}@{}-] デフォルトの名無しさん:2009/06/02(火) 20:02:43
>>837
ごめんなさい、わかりづらいですよね。メール送信受信を使ったバッチっぽいのを
仕事を楽にしたいがために作ってまして……職業は営業なんですけど
>>838
おお、ちょっと見てみますね!ありがとう
>>839
妙な汎用機?がメールを送ってくるので、どうしてもメール受信しないといけないのであります

841 :デフォルトの名無しさん:2009/06/02(火) 20:02:57
>>836
Match m = Regex.Match(input, "filename=\"[^\"]+\"\\s(?<base64>[a-z+/=]+)", RegexOptions.IgnoreCase);

>勉強方法とかあったらあわせて教えて欲しいです
amazon行って、正規表現で検索かけて売り上げの多い順にソートして気に入った本を買う

842 :デフォルトの名無しさん:2009/06/02(火) 20:07:52
>>841
数字抜けてね?
"filename=\"[^\"]+\"\\s(?<base64>[0-9a-z+/=]+)"

843 :デフォルトの名無しさん:2009/06/02(火) 20:08:47
詳説正規表現とか3日はご飯食えるよ

844 :デフォルトの名無しさん:2009/06/02(火) 20:18:02
>>843
持ってるけどさすがに内容が古いよ
60%くらいは役に立たない情報だし、先読み肯定先読み否定等の新しい機能は解説がちょっとしかない

845 :デフォルトの名無しさん:2009/06/02(火) 20:32:14
去年出た第3版の事を言っているのか?

846 :デフォルトの名無しさん:2009/06/02(火) 20:58:01
>>845
まじでか!?買って来る情報サンクス

847 :デフォルトの名無しさん:2009/06/02(火) 21:02:22
買わなくていいだろ
腕は疲れるが追記されたとこだけ立ち読みでもすれば

848 :デフォルトの名無しさん:2009/06/02(火) 21:06:13
うちの第一版だからな。手元にあると便利だし

849 :デフォルトの名無しさん:2009/06/02(火) 21:34:24
>>840
本職で無いなら仕方ない状況かもしれないけど、
プログラムが作れるのは何も.NETだけじゃないよ。
(最良の環境の1つであることは間違いないが)

メールの解析、送受信を行いたいなら、
Ruby、Perl、PHPあたりを使ったほうがずっと作りやすい。
GUIは別に用意してあげないといけないけど。

850 :デフォルトの名無しさん:2009/06/02(火) 22:28:22
>>834

このコードでもコンテキストメニューは表示されるけど
メニューアイテム自体は閉じちゃうね。。。

"お気に入り"は表示された状態で、コンテキストメニューが表示されるもんな。
どうやればいいのかな?ご存知の方、お願いします。

851 :デフォルトの名無しさん:2009/06/03(水) 11:12:06
Datetime型の集合の平均 をだしたいのですが知っている方おりましたら
教えてください。
(ex. 08/1/1, 08/1/2, 08/1/3 の平均は08/1/2みたいな感じ)


852 :デフォルトの名無しさん:2009/06/03(水) 11:25:12
Ticksプロパティの平均値を取ってコンストラクタに渡す

853 :デフォルトの名無しさん:2009/06/03(水) 11:35:25
やってみます。ありがとうございます。

854 :デフォルトの名無しさん:2009/06/03(水) 13:58:55
こうか

public DateTime Average(this IEnumerable<DateTime> source) {
  return new DateTime(source.Average(x => x.Ticks));
}

855 :デフォルトの名無しさん:2009/06/03(水) 14:05:15
しむらー、static staticー

856 :デフォルトの名無しさん:2009/06/03(水) 20:52:16
>>850
記憶があいまいだが ToolStripDropDown あたりに確か
AutoClose とかいうプロパティなかったか?

857 :デフォルトの名無しさん:2009/06/03(水) 21:34:13
Console.WriteLine("VB.NET >>>>>> C#");


858 :デフォルトの名無しさん:2009/06/03(水) 21:40:12
Process.Terminate(>>857.Life);

859 :デフォルトの名無しさん:2009/06/03(水) 21:41:56
コンパイルエラーだろ

860 :デフォルトの名無しさん:2009/06/03(水) 21:48:11
どう考えてもProcess.Kill(>>857)だろ

861 :835=850:2009/06/03(水) 21:57:03
>>856
おぉっ!
ToolStripMenuItemだけに目が行ってToolStripDropDownなんて
発想がなかったのがドツボの元だったんだね。
AutoClose を任意のイベント実装箇所で設定することで、それっぽくなりますね。 ありがとう!


862 :デフォルトの名無しさん:2009/06/04(木) 01:38:02
bool a, b = false, c = false;
a = b == c;

aはtrueですか?

863 :デフォルトの名無しさん:2009/06/04(木) 01:42:11
何で自分で試そうとしない

864 :デフォルトの名無しさん:2009/06/04(木) 01:45:54
>>860
お前も何コンパイルエラーしてるんだ

865 :デフォルトの名無しさん:2009/06/04(木) 01:55:48
試して動けばOKって考えは危険だと思うんだ。
何故不確定事項を試して動けばOKだと考える危ないやつが多いんだろう・・・
規格書読めよ

866 :デフォルトの名無しさん:2009/06/04(木) 02:00:04
問1 次のコードを読み、最終的に得られるaの値をtrueまたはfalseで答えなさい

bool a, b = false, c = false;
a = b == c;

867 :デフォルトの名無しさん:2009/06/04(木) 02:13:54
スレ違い

868 :デフォルトの名無しさん:2009/06/04(木) 02:14:34
>>865
不確定事項とは何だ。

869 :デフォルトの名無しさん:2009/06/04(木) 02:37:49
C#やると、このように何考えてるのか分からない奴に出会うのか。
やはりVB.NET >>>>>>>> C#だな。

870 :デフォルトの名無しさん:2009/06/04(木) 02:44:45
C#で学習した知識はVB.NETやマネージ拡張C++に応用することはあっても、C#では作らない。
VB.NET >>>>>>>> C#。

871 :デフォルトの名無しさん:2009/06/04(木) 02:47:35
>>868
不確定な事項だろうがjk

872 :デフォルトの名無しさん:2009/06/04(木) 03:31:54
失せろゴミ

873 :デフォルトの名無しさん:2009/06/04(木) 03:50:14
public class A
{
 public int Num; 

 public class B
 {
  Num = 1;
 }
}
これどうやったらBからAの変数にアクセスできるようになるんですか?

874 :デフォルトの名無しさん:2009/06/04(木) 03:55:37
インターフェースとかを使いこなせるようになる
仕組みとか例が詳しい上級者向けの本てありますか?

875 :デフォルトの名無しさん:2009/06/04(木) 04:00:05
そんなの上級者じゃねえよ

876 :デフォルトの名無しさん:2009/06/04(木) 04:02:23
wwwwwwwwwwwww

877 :デフォルトの名無しさん:2009/06/04(木) 04:03:11
やべえツボに来た

878 :デフォルトの名無しさん:2009/06/04(木) 04:22:00
>>873
class A
{
int Num = 1;
public A()
{
B b = new A.B(this);
}
public class B
{
public B(Program p) { p.Num=this.num; }
public int num = 0;
}
}

実行してみりゃ分かる

public class A
{
 public static int Num; 
 public class B
 {
public B(){
  Num = 1;
}
 }
}

これでも可
理由はstaticの位置をよく見てちょっと考えろ

879 :デフォルトの名無しさん:2009/06/04(木) 04:35:33
B b = new A.B(this);
って省略可ってことなんですか?

class A{
private num;
public static int Num{ get return num; set num = value;}
classB{
Num++;
}
}

この場合だとどうすればいいですか?


880 :デフォルトの名無しさん:2009/06/04(木) 04:37:47
private num;
public static int Num{ get return num; set num = value;}

これがおかしいだろ。
staticなメンバからinstance変数にアクセスできるわけがない。まだ実体が無いんだから。

881 :デフォルトの名無しさん:2009/06/04(木) 04:44:50
staticって変数の中身変えられなく無いですか?
Bから中身変えたいんですけど
最初this.num++;
でAのメンバ変数にアクセスできるとか思ったんですけど
staticってグローバルになるだけですか?

882 :デフォルトの名無しさん:2009/06/04(木) 04:55:07
>>881
これ全部読んで覚えろ

ttp://msdn.microsoft.com/ja-jp/library/6tcf2h8w(VS.80).aspx

883 :デフォルトの名無しさん:2009/06/04(木) 05:46:44
>>871
だから何が不確定な事項なんだ。
頭悪いのか。

884 :デフォルトの名無しさん:2009/06/04(木) 05:55:17
うん

885 :デフォルトの名無しさん:2009/06/04(木) 06:09:55
これは処理系依存にはならんだろ。
試せば十分だ。こんなものにまで規格書まで読む必要無いだろ。

886 :デフォルトの名無しさん:2009/06/04(木) 06:14:28
結合の順序規則まで処理系依存だったら嫌だなw

887 :デフォルトの名無しさん:2009/06/04(木) 06:38:54
結合順だの演算子の優先順位だの、カッコを使えば紛れがなくなるだろJK

888 :デフォルトの名無しさん:2009/06/04(木) 06:42:43
括弧が最初って規定してるのも処理系かもしれんよ
紛れがなくなるというのも所詮前環境からの思い込みでしかない

889 :デフォルトの名無しさん:2009/06/04(木) 07:15:11
>>865はCスレで自分がわからないものは何でも未定義とわめいていたやつと同じだな

890 :デフォルトの名無しさん:2009/06/04(木) 11:01:20
質問失礼します。
Visual Studio 2008 C# を利用してソフト開発を進めています。
1つのソリューションで3つのプロジェクトを管理しているのですが、
プロジェクト間のソースの共有ってできないでしょうか?
変更してはnamespaceを変更してコピーというやり方でやっているのですが、
さすがに辛い作業なので、共用したいです。
分かる方お願いします。

891 :デフォルトの名無しさん:2009/06/04(木) 11:06:19
public class Ext : Base
このクラスでExtは共通でBaseの部分だけを変えた複数のクラスを作りたい場合
どういう構造にすればいいんですか?

892 :デフォルトの名無しさん:2009/06/04(木) 11:09:38
Libにするのが速いと思うけど、xnaでWinから360にプロジェクトコピーすると
共通ファイル使うね。
csprojファイルをコピーして手で書き換えてプロジェクト追加で入れてやれば
できそうだけど、自動でやるほうほうあるかも。

893 :デフォルトの名無しさん:2009/06/04(木) 11:10:14
Baseを変えたらBaseって呼び方はおかしくないか
共通基盤だからBaseなんだよ

君の言葉通りにするなら↓

public class Ext : Base
public class Ext : Base2
public class Ext : Base3
public class Ext : Base4
public class Ext : Base5
public class Ext : Base6

894 :デフォルトの名無しさん:2009/06/04(木) 11:13:07
>>890
[追加]-[既存の項目]-[リンクとして追加]

895 :デフォルトの名無しさん:2009/06/04(木) 11:13:11
ジェネリクスじゃだめかな

896 :デフォルトの名無しさん:2009/06/04(木) 11:13:54
× Extは共通でBaseの部分だけを変えた
○ Baseは共通でExtの部分だけを変えた

こういう質問なんじゃないの。
でもこれだと質問する意味がないか。
そのまんまだもんな。

897 :デフォルトの名無しさん:2009/06/04(木) 11:21:34
Baseをinterfaceにして実装を外に出せばいいよ。

898 :デフォルトの名無しさん:2009/06/04(木) 11:22:48
何でそういう設計にしたいと思ったのか書いてくれれば答えやすいんだけどねぇ

899 :デフォルトの名無しさん:2009/06/04(木) 11:35:02
Base : Ext
Base2 : Ext
とExtを作って全てのベースに潜り込ませればいい話なんですが、もう出来上がってて、
Ext:BaseのBaseのベースはすでに複数で複雑になってるので
Extの独自のコードをすべてのBaseに効率よく潜り込ませたいんです。
たとえばゲームでいうと 
Teleport : Ring
Teleport : Brecelet
とかでCostum : Teleport
とできない場合に
TeleportCostum : 入れ替えたいベース
としたいんです。


900 :デフォルトの名無しさん:2009/06/04(木) 11:40:27
>>890
たぶん >894 の方法で問題ないと思うが、通常はファイルはたくさんあるはずなので
csprojファイルをテキストエディタで開いてファイルパスを参照している部分をコピペしたほうが早いだろう。


901 :デフォルトの名無しさん:2009/06/04(木) 11:42:49
なんでアセンブリじゃなくてソースファイルを共有したがるんだろう

902 :デフォルトの名無しさん:2009/06/04(木) 11:51:28
言ってる意味がわからん。

903 :デフォルトの名無しさん:2009/06/04(木) 11:59:33
>>899
たとえに偏りがあるなぁ…

Baseにほぼ全ての実装が含まれてしまっていて,
継承側ではBaseを適宜のメソッド等を適宜呼び出してるって感じ?(むしろBase=Utility?)

正直何が"効率よく"なのか分からないけど,とりあえずクラスの継承関係を見直したほうがいいんじゃないかな!

904 :デフォルトの名無しさん:2009/06/04(木) 12:04:55
つまり実装継承でしょ?
悪いパターンだな
継承は多態性が必要な時だけ使う
単に機能を使い回したいだけなら継承はいらん

905 :デフォルトの名無しさん:2009/06/04(木) 12:32:08
>>901
.NetFrameworkとSilverlightの両方に対応したライブラリを作る時はソースを共有しているな

リンクとして追加も面倒なので、同じ場所にプロジェクトファイルを置いてるけど

906 :890(891とは別人です):2009/06/04(木) 12:32:57
>>894
>>900
返答ありがとうございます。
お陰様で解決できました!
[リンクとして追加]が無かったので試行錯誤していたのですが、
新規のライブラリプロジェクト(CommonTest)を作成し、そこにソースを追加。
参照先のプロジェクトの参照でCommonTestを追加。
あとはusing CommonTest;として、共有できるようになりました。
ありがとうございました。

907 :デフォルトの名無しさん:2009/06/04(木) 12:38:20
それリンクとして追加とは全然違うけどそれでいいならその方法の方がいいよ
その手の質問をする奴はアセンブリが増えるのを異常に嫌うやつが多い

908 :デフォルトの名無しさん:2009/06/04(木) 12:38:59
追加ボタンが実はドロップダウンリストでリンクとして追加が
隠されてるというMSのトラップに引っかかった奴。

909 :デフォルトの名無しさん:2009/06/04(木) 12:41:54
アセンブリが増えるのは嫌だ。管理しきれない。

910 :890:2009/06/04(木) 12:52:12
>>908
いちおう調べてはみましたが、私の環境にはありませんでした。
2008には存在しないのではないでしょうか?

911 :デフォルトの名無しさん:2009/06/04(木) 13:00:36
おれの2008にはあるよ。

複数のプロジェクトでファイルを共有するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/596vssharelinkfile/vssharelinkfile.html

912 :890:2009/06/04(木) 13:08:33
追加ボタンにでしたか。。。
自分の環境にもありました。。。

913 :デフォルトの名無しさん:2009/06/04(木) 15:40:52
WCFについて質問です。

WCFでRSAとAESのハイブリッド暗号通信をやりたいのですが、
TransportBindingElementを派生してカスタムバインディングを作る方法であっているでしょうか?
もう少し簡単な方法もある気がして・・・

914 :デフォルトの名無しさん:2009/06/04(木) 15:54:28
質問です。

visual C# 2008 expressでプログラミングしているのですが、
クラスを作成したとき自動的に「using System.Linq;」という一文が入ってきて、
しかもその部分でコンパイルエラーになってしまいます。
何か設定が悪いのかexpressでは使えないライブラリなのか、
とにかく原因が分かりません。
どなたか教えていただけませんか?

915 :デフォルトの名無しさん:2009/06/04(木) 15:58:55
以下C言語の構造体とそれを使用するソースです。

struct oya{
int a;
struct {
char a;
char b[10];
} ko;
};

int main(void){
oya oyaoya;
oyaoya.ko.b[0] = 1;
}

これをC#で書くとするとどうしたらいいんでしょうか?

916 :デフォルトの名無しさん:2009/06/04(木) 16:12:40
MSDNのstructの項目くらい読んでから質問しているんだろうな

917 :デフォルトの名無しさん:2009/06/04(木) 16:17:13
>>916
初心者にそんなことを言うな

918 :デフォルトの名無しさん:2009/06/04(木) 16:23:59
サーセン…

919 :デフォルトの名無しさん:2009/06/04(木) 16:27:49
>>916
すいません、一応読んだのですが、Cで言う所のstructとは似て非なる物なのか
ネストした場合のアクセス方法はどうすればよいのかなど、良く分からず混乱しています。

920 :デフォルトの名無しさん:2009/06/04(木) 16:30:00
>>919
とりあえず、その質問に書いてある範囲ではまったく同じ。
プログラムの書き方は、ネットにいくらでもあるチュートリアルサイトを読め。

921 :デフォルトの名無しさん:2009/06/04(木) 16:32:21
> Cで言う所のstructとは似て非なる物なのか
似てない非なるもの

922 :デフォルトの名無しさん:2009/06/04(木) 16:35:00
>>914
どこかおかしいかも。

using System.Linq;は対象のフレームワークが.NET 3.5の時に追加される。
で、対象のフレームワークが.NET 3.0以下のときはコンパイルエラーになる。
プロジェクトのプロパティのアプリケーションの対象のフレームワークのとこどうなってる?

923 :デフォルトの名無しさん:2009/06/04(木) 16:55:32
>>920
> その質問に書いてある範囲ではまったく同じ。

少なくともstruct内で配列の初期化はできん。

924 :デフォルトの名無しさん:2009/06/04(木) 17:00:43
知らないのなら知らないと言ってください
時間の無駄だったみたいです。自分で調べます

925 :デフォルトの名無しさん:2009/06/04(木) 17:02:54
先に調べてから聞きに来いよ、な

926 :デフォルトの名無しさん:2009/06/04(木) 17:06:44
923に加えて
匿名の構造体を定義できない
メンバを外部から操作できない
C/C++のcharとC#のcharは別物
intはまあいいか
そんぐらい?

927 :デフォルトの名無しさん:2009/06/04(木) 17:20:27
あー、なるほど。
そのまま宣言すると配列がリニアなメモリイメージじゃなくてインスタンスになってしまう。
無名のclass/structが(宣言用には)使えない。
リニアなメモリイメージにどうしてもマップしたい場合はタグつけてstringにすると。

勉強になったよ。どうもありがとう。

928 :デフォルトの名無しさん:2009/06/04(木) 17:21:12
知らないのに質問者に難癖つけるやつは多い気がする

929 :デフォルトの名無しさん:2009/06/04(木) 17:25:43
いつものパターンとしては、次はクラスと構造体の使い分けの話が来て喧嘩になる

930 :デフォルトの名無しさん:2009/06/04(木) 17:31:49
CとC#の構造体の違いが分からなくて、当然C#のクラスと構造体の違いも
分からないだろうから、別にC#の構造体をなんとか工夫して使う必要も
ないと思うんだよね。

>>915
(全てにpublicをつけて、フィールドを公開しているので、いい例ではないが、
質問の要件が分からないので)

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Oya oyaoya = new Oya();
            oyaoya.ko.b[0] = (char)1;
        }
    }

    class Oya
    {
        public int a = 0;
        public class Ko
        {
            public char a = (char)0;
            public char[] b = new char[10];
        }
        public Ko ko = new Ko();
    }
}


931 :デフォルトの名無しさん:2009/06/04(木) 17:38:26
>>930
C#の枠内ならそんな感じだろうね。
Windows APIなどC側のコードと協調するためには
タグ[MarshalAs]を使ってガチャガチャやることになりそうだ。

932 :930:2009/06/04(木) 17:46:46
unsafe fixed char b[10]; っていう異端な方法もあるんだけどね。
構造体の意義から考えて、構造体の中に配列を静的に配置するのは、
もっと簡単にできるようにするべきではなかったのか。

933 :914:2009/06/04(木) 18:41:46
>>922
3.5になっています

934 :デフォルトの名無しさん:2009/06/04(木) 18:51:01
もしかしてWCFはスレ違い?

935 :デフォルトの名無しさん:2009/06/04(木) 18:56:00
知ってる人がほとんどいない、だと思うよ
おいらもWCFはノータッチ
まあ>913は質問内容的に初心者スレで聞くことじゃないとは思うがどうせ回答者はほぼ同じだろうしな

936 :デフォルトの名無しさん:2009/06/04(木) 20:11:56
こんな感じになるのかな。

using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential)]
class Oya{
    public int a;
    public Ko ko;
    
    [StructLayout(LayoutKind.Sequential)]
    public struct Ko{
        public char a;
        [MarshalAs(UnmanagedType.LPTStr, SizeConst = 10)]
        public string b;
    }
}

937 :デフォルトの名無しさん:2009/06/04(木) 20:21:43
もうunsefeでええやん

938 :デフォルトの名無しさん:2009/06/04(木) 21:23:31
>>933
まあ3.5ならLinqの行は出るわな。
参照設定のSystem.Coreのプロパティでバージョンいくつになってる?
3.5じゃないなら、、.NET framework3.5かC#ごとインストールしなおしでどうか

939 :デフォルトの名無しさん:2009/06/04(木) 22:39:24
>>913
SSLとかじゃだめなん?
おれもWCFではやったことない。
Remotingではやったことある。
おそらくWCFでも似たような感じになるのではないかと思うが、
それなりにちゃんと作ると結構大変だと思うよ。


940 :デフォルトの名無しさん:2009/06/04(木) 23:35:01
>>928
そして調べずにまた質問すると

941 :デフォルトの名無しさん:2009/06/05(金) 11:51:32
左右のShift、Ctrlを区別する方法を教えてください。
どちらを押してもキーコードが同じだったので途方に暮れてます。

942 :デフォルトの名無しさん:2009/06/05(金) 13:31:03
GetAsyncKeyStateとか使えないの?

943 :941:2009/06/05(金) 13:43:36
>>942
解決しました。ありがとうございました。

944 :デフォルトの名無しさん:2009/06/05(金) 14:47:11
どう解決したか書けよ。
わからねえよ。




もとい


どう解決したかサマリーに残していただけませんか。
今後、同じようなことを考えた人に有用ですので。



945 :941:2009/06/05(金) 16:15:12
>>944
教えていただいたGetAsyncKeyStateでぐぐりました。
今までVK_SHIFTしか知らなかったのですが
VK_LSHIFT、VK_RSHIFTで左右が区別できることがわかりました。

946 :デフォルトの名無しさん:2009/06/05(金) 16:18:19
,NET Framework 4 bate1はVC#2008EEでも使えるのでしょうか?

947 :デフォルトの名無しさん:2009/06/05(金) 16:23:18
使えませんよ

948 :デフォルトの名無しさん:2009/06/05(金) 18:23:34
>>945

ありがと。
1つ勉強になった。


949 :デフォルトの名無しさん:2009/06/05(金) 21:31:47
>>939
大変っぽいわ
それでもやるけど

950 :デフォルトの名無しさん:2009/06/05(金) 22:50:08
>>865は、自分自身が何を考えてるのかさえ理解できてないんだろう。
目障りな書き込みして、他人に迷惑掛けるな。

951 :デフォルトの名無しさん:2009/06/05(金) 22:51:44
反論がなければ俺の勝ちだが?

952 :デフォルトの名無しさん:2009/06/05(金) 22:53:51
いや、俺の価値だ。
何故なら、今、俺は輝いているからだ!

953 :デフォルトの名無しさん:2009/06/05(金) 23:11:28
黙ってろハゲ

954 :デフォルトの名無しさん:2009/06/06(土) 02:56:17
ハゲ言うな包茎

955 :デフォルトの名無しさん:2009/06/06(土) 03:07:07
staticなクラスって出来るだけ少ない方がいいのですか?

956 :デフォルトの名無しさん:2009/06/06(土) 03:14:11
そんな話は聞いたことない。
必要なら別に多くてもいい。
結果的に大抵は少なくなるけど。

957 :デフォルトの名無しさん:2009/06/06(土) 03:20:22
なんでもかんでもstaticにしてます

958 :デフォルトの名無しさん:2009/06/06(土) 03:38:24
>>957
いくらなんでも、それは多すぎw

959 :デフォルトの名無しさん:2009/06/06(土) 04:25:39
>俺の勝ち
>俺の価値
>俺は今輝いている
>ハゲ言うな包茎
孤立野郎、お前みたいな邪魔な書き込みする奴は来るな。

960 :デフォルトの名無しさん:2009/06/06(土) 04:41:27
自分自身の考えも理解できていない孤立野郎が書き込む場所ではない。
目障りで腐った書き込みして、他人に迷惑を掛けてることは許されん。
いかにもリンチ対象にされそうな奴だな。

961 :デフォルトの名無しさん:2009/06/06(土) 07:17:33
Form1_Paintが思ったように動いてくれません。

フォームの大きさが変われば必ずForm1_Paintが呼ばれるものだと思っていましたが、
マウスでフォームの枠をドラッグしてサイズを変更した時、
幅や高さを広げたときはイベントが発生するのですが、
小さくした時にイベントが発生してくれませんでした。

フォームのサイズが変わったときに必ず呼ばれるイベントはどれでしょうか?

環境はVista Business SP2、C# 2008 Express、.Net 3.5です。

962 :961:2009/06/06(土) 07:36:38
説明不足だったので補足です。
フォーム内のコントロールの位置を初期化するのに使いたいので、
SizeChangedやResizeはアプリの起動時には呼ばれないため使えません。

963 :デフォルトの名無しさん:2009/06/06(土) 07:48:52
SizeChangedやResizeをLoadハンドラで呼べばいいじゃん

964 :961:2009/06/06(土) 07:59:05
もうもちょっと、イベント処理一発で済むスマートな方法はないもんでしょうか?
昔の環境だとOnPaintだけで済んだのに…

965 :デフォルトの名無しさん:2009/06/06(土) 08:01:34
それはスマートな方法ではなくずぼらな方法という。

966 :961:2009/06/06(土) 08:42:04
イベントハンドラをイベント発生以外の方法で呼び出すのって
イベントドリブン本来の使い方から外れてるようで好きになれないんですよ。

ほかにいい方法がなさそうなので、
初期化のための関数を作って、LoadとResizeからそれぞれ呼ぶことにしようと思います。
ありがとうございました。

967 :デフォルトの名無しさん:2009/06/06(土) 08:46:44
MVCも知らんくせに偉そうなこと言ってんなよ

968 :デフォルトの名無しさん:2009/06/06(土) 09:00:59
(初心者用)

969 :デフォルトの名無しさん:2009/06/06(土) 09:14:40
最近答える人間まで初心者が多いぞw

970 :デフォルトの名無しさん:2009/06/06(土) 09:17:10
ResizeRedraw

971 :デフォルトの名無しさん:2009/06/06(土) 09:19:09
C#というのは、C++のできない人間の逃げ場なんだろ?

972 :デフォルトの名無しさん:2009/06/06(土) 09:39:10
C++で書く無駄さに気づいた人間の逃げ場だ。

973 :デフォルトの名無しさん:2009/06/06(土) 10:28:56
最近のCPUは速いからな。
386のときにアセンブラを捨てたようにCore2でC++を捨てた。

974 :デフォルトの名無しさん:2009/06/06(土) 11:13:13
c->c++->java->c#と移行してきて
コードのスマートさって大事なんだと思った

975 :デフォルトの名無しさん:2009/06/06(土) 11:39:14
実際、C++に比較してC#を考えてみると、
よく出来てるよなーと感心するところが多い。

アプリケーション設定ファイルの自動生成機構なんて
初めて出来上がるのを見たときは感激したものだ。
XMLシリアライザも、ほとんど何も考えずに使うことが出来る。
C++じゃあ絶対こうはいかないよ。

976 :デフォルトの名無しさん:2009/06/06(土) 11:47:56
俺はCore2Quadで、マルチスレッドを使用するようになってから完全にC++捨てた、HPCでももうC++は要らない
パフォーマンス、開発効率すべての点で非効率だ

977 :デフォルトの名無しさん:2009/06/06(土) 11:51:00
そういえば、C#においてHPC向けのサポートはどうなっているの?
Intel Compilerみたいに普通のコードを書いたら
勝手に自動並列化されて複数のスレッドで動いたりするのかな?
あるいはOpenMPみたいな仕組みとか。

978 :デフォルトの名無しさん:2009/06/06(土) 11:53:29
.NET 4.0でそれ用のライブラリParallel Extensionsが追加

979 :デフォルトの名無しさん:2009/06/06(土) 11:54:07
マルチスレッド・マルチコアでC++が一番しんどいのは、ガベージコレクタが無いことだよ
これが無いおかげで変態的なライブラリと変態的な使用方法でしかプログラムできなくなる。

980 :デフォルトの名無しさん:2009/06/06(土) 11:56:10
C#ポインタ使えるのがいいよ
Javaだと使えなかったからね〜

981 :デフォルトの名無しさん:2009/06/06(土) 12:04:05
ポインタって重要か?
正直使う理由が無いんだが。相当奇妙な事しない限り
C++くらい読みにくくなって気持ち悪い

982 :デフォルトの名無しさん:2009/06/06(土) 12:05:14
Bitmapとかで

983 :デフォルトの名無しさん:2009/06/06(土) 12:07:17
C#のポインタは、どちらかというとアンマネージドとの効率的な相互運用を目的としたもののように見える。
これを高速化に使ってもたいした効果は得られないし。

984 :デフォルトの名無しさん:2009/06/06(土) 12:15:29
HPC目的ではC++の何が痛いかっていうと、チューニングする時間が無くなってしまうという点に尽きるな
チューニングしなくても十分なほどにはC++は高速ではない、チューニングしなければC#と代わり映えしないが
C#ではチューンできるので結局C#が高速になる、現実的には。
マルチプロセッサで複雑になったロジックではC++の高速性は前提が崩れてしまう。

985 :デフォルトの名無しさん:2009/06/06(土) 12:29:20
次立ててくるので少しお黙り

986 :デフォルトの名無しさん:2009/06/06(土) 12:30:41
まあ、限界まで高速化したい酔狂な人はC++で頑張ればいいって事だな。
そうでない人はCPUパワーでカバーした方が早い

987 :デフォルトの名無しさん:2009/06/06(土) 12:31:49
ふらっとC#,C♯,C#(初心者用) Part41
http://pc12.2ch.net/test/read.cgi/tech/1244259018/

988 :デフォルトの名無しさん:2009/06/06(土) 15:39:35
c#久しぶりでまた調べながらやるんだけどhttp://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
このサイト有名だと思うんだけどイマイチ使いかたというか必要事項の検索の仕方がわからん
だれか教えて

989 :デフォルトの名無しさん:2009/06/06(土) 15:50:05
site:www.atmarkit.co.jp と調べたい言葉並べて Google さんに聞く
つか別に site する必要もないな Google に引っかかったときに調べりゃいい

990 :デフォルトの名無しさん:2009/06/06(土) 15:50:16
1つのサイトにこだわって検索するからだよ

991 :デフォルトの名無しさん:2009/06/06(土) 15:58:37
サンクス
てか44行列の処理できるよね?

992 :デフォルトの名無しさん:2009/06/06(土) 16:01:33
できますん

993 :デフォルトの名無しさん:2009/06/06(土) 16:05:31
知らんがな(´・ω・`)

994 :デフォルトの名無しさん:2009/06/06(土) 16:05:59
どっちだよ
つかMatrix3Dとかいうの使えないのかな?アセンブリとかよくわからん

995 :デフォルトの名無しさん:2009/06/06(土) 16:24:07
>>988
C# 入門で検索すれば@ITの入門連載記事が引っかかるはず。

996 :デフォルトの名無しさん:2009/06/06(土) 16:52:11
>>865 >>951 >>952 >>954 の孤立野郎は、次スレにはもう来たらあかんぞ。

997 :デフォルトの名無しさん:2009/06/06(土) 16:59:03
C++を使えて、C#を高く評価する輩には、VB.NETも使える輩はいないと仮定する。
言い換えると、C++もVB.NETも使えた上で、C#を高く評価する輩はいないと仮定する。

998 :デフォルトの名無しさん:2009/06/06(土) 17:02:37
>>997
で,言いたいことは?

999 :デフォルトの名無しさん:2009/06/06(土) 17:04:23
このはなし定期的に出るNe!

1000 :デフォルトの名無しさん:2009/06/06(土) 17:04:28
生め

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

207 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)