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

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

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

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

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

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

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

■関連スレ
C#, C♯, C#相談室 Part66
http://hibari.2ch.net/test/read.cgi/tech/1303889653/
ミスターサタンのC#相談室 
http://hibari.2ch.net/test/read.cgi/tech/1092656075/
VB.NET質問スレ(Part36)
http://hibari.2ch.net/test/read.cgi/tech/1301828549/
くだすれC++/CLI(初心者用)part2
http://hibari.2ch.net/test/read.cgi/tech/1268613679/

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

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

3 :デフォルトの名無しさん:2011/04/30(土) 20:00:33.01
>>1


4 :デフォルトの名無しさん:2011/04/30(土) 21:01:23.76
LINQいいよね〜

5 :デフォルトの名無しさん:2011/04/30(土) 21:20:17.42
ほね」。

6 :デフォルトの名無しさん:2011/04/30(土) 21:40:41.35
>>4
>>5
小学2年生的にはおもしろいよね。続けて


7 :デフォルトの名無しさん:2011/04/30(土) 21:59:15.23
フィールドの変数名ってどうしている?
自動プロパティを使っちゃうと「private GetHellowWorld { get; }」みたいにダサい変数名になっちゃうじゃ

8 :デフォルトの名無しさん:2011/04/30(土) 22:02:02.31
Hellow!

9 :デフォルトの名無しさん:2011/04/30(土) 22:06:53.82
自動プロパティーを使うとダサくなるって、自分でつけてるんでしょ?

10 :デフォルトの名無しさん:2011/04/30(土) 22:14:37.39
>>7
何を言ってるのか意味不明だと思うよ

11 :デフォルトの名無しさん:2011/04/30(土) 22:14:54.79
>>6
面白いねー

12 :デフォルトの名無しさん:2011/04/30(土) 22:22:27.95
プロパティ名にGet〜ってつけたことないや・・・

13 :デフォルトの名無しさん:2011/04/30(土) 22:30:45.56
なんでプロパティに動詞使っちゃうかな

14 :デフォルトの名無しさん:2011/04/30(土) 22:56:35.17
getだけじゃコンパイル通らないし

15 :デフォルトの名無しさん:2011/04/30(土) 22:58:35.85
うちではコンパイル通ったよ^p^

16 :デフォルトの名無しさん:2011/04/30(土) 23:16:25.68
>>7
自動プロパティを使わないダサくない変数名の例も挙げてくれ

17 :デフォルトの名無しさん:2011/05/01(日) 00:10:38.27
フィールドに変数は大文字 or 小文字で始めますか?

18 :デフォルトの名無しさん:2011/05/01(日) 00:22:20.49
どうでもいい
割とマジに姓名判断でも受けて決めたらいい

19 :デフォルトの名無しさん:2011/05/01(日) 01:00:11.54
>>17
ttp://dobon.net/vb/dotnet/beginner/namingrules.html

20 :デフォルトの名無しさん:2011/05/01(日) 01:39:34.83
イベントにハンドラを登録するときは自動でメソッド書いてくれるけど、
Timer ti = new Timer(callback); みたいに()にメソッド名書くときはなんもしてくれない。
コールバックのシグネチャいちいち調べるのめんどくさいから自動で書いてほしいんだけど
なんか方法ある?

21 :デフォルトの名無しさん:2011/05/01(日) 14:02:09.00
new TimerCallback(まで入力したらシグネチャを表示してくれる

22 :デフォルトの名無しさん:2011/05/01(日) 16:18:45.49
>>21
さんくす

23 :デフォルトの名無しさん:2011/05/01(日) 16:55:36.56
>>21
thx

24 :デフォルトの名無しさん:2011/05/01(日) 16:58:22.01
それならF12で定義に飛んでコピペした方がよっぽど早いような....

25 :デフォルトの名無しさん:2011/05/01(日) 17:07:21.71
>>17
StyleCopおすすめ。

26 :デフォルトの名無しさん:2011/05/01(日) 17:11:08.25
何度も使えばDependencyPropertyChangedEventHandler(object sender, DependencyPropertyChangedEventArgs e)とかでも暗記するだろ

27 :デフォルトの名無しさん:2011/05/01(日) 17:23:25.68
>>21
すげー、知らなかったはww

28 :デフォルトの名無しさん:2011/05/01(日) 19:10:32.52
>>24
メタデータなんて見れるんだ。知らなかった

29 :デフォルトの名無しさん:2011/05/02(月) 14:05:20.99
すみません。for文の中のインクリメントは、++iとi++の両方を見かけますが、
同じなのでしょうか?
前置きと後ろ置きだそうですが、評価されるタイミングが違うんですよね?
for文だとどっちでも同じになるんですかね?

30 :デフォルトの名無しさん:2011/05/02(月) 14:08:22.02
くそうるせー人に絡まれるので前置にした方が良いですよよよ

31 :デフォルトの名無しさん:2011/05/02(月) 14:31:52.81
どっちでも一緒。
前置きの方が速いから式の値を使わないなら前置きにしろというのは迷信。今時それくらい最適化される。
VC#のコードスニペットが生成するのは後置きだから後置きでいい。

32 :デフォルトの名無しさん:2011/05/02(月) 14:40:34.28
そんな迷信あったの知らんかったw
迷信にしても頭悪過ぎる迷信だな

33 :デフォルトの名無しさん:2011/05/02(月) 14:43:59.12
鰯の頭も信心と言うだろ
信心はこえーぞ

34 :デフォルトの名無しさん:2011/05/02(月) 14:53:51.72
インクリメントのところでラムダ式とか入れる強者が居たら・・・

35 :デフォルトの名無しさん:2011/05/02(月) 14:57:51.86
褒められた書き方ではないが
下記のnumに入る数値は変わる。

int i = 1;
int num = i++;

int i = 1;
int num = ++i;


36 :デフォルトの名無しさん:2011/05/02(月) 15:00:53.33
評価のタイミングについては前置きしてたのね。
>>35は無視してくれ


37 :デフォルトの名無しさん:2011/05/02(月) 15:01:13.94
i = 0;
array[i++] = x;
array[i++] = y;
array[i++] = z;
こういうのはついC++の癖でやってしまう

38 :デフォルトの名無しさん:2011/05/02(月) 15:01:21.41
>>35
いくらふらっとスレでもそのレベルの話をドヤ顔で書いちゃうってどうなのよ。
さすがに常識過ぎ

39 :デフォルトの名無しさん:2011/05/02(月) 15:07:38.55
>>37
こういうの馬鹿正直にループ回しちゃうわ。

40 :デフォルトの名無しさん:2011/05/02(月) 16:02:44.62
あれ迷信だったのかorz

41 :デフォルトの名無しさん:2011/05/02(月) 16:19:36.28
>>40
どんまい

42 :デフォルトの名無しさん:2011/05/02(月) 16:31:04.60
C++だと違いあるんじゃないの?

43 :デフォルトの名無しさん:2011/05/02(月) 16:36:12.93
一時オブジェクトがどーたらとかいう講釈はほとんどの場合は最適化で消えるってことであってます?

44 :デフォルトの名無しさん:2011/05/02(月) 16:54:04.14
10億回くらいのループ内なら少し考える

45 :デフォルトの名無しさん:2011/05/02(月) 16:57:16.04
以下のことがやりたいのですが,どの言語でやればいいかよくわかりません(というか選び方がわかりません).アドバイスお願いします.

・粒子(砂)の堆積についてのシュミレーション
・数は1万個程度.大きさは100μm程度
・計算としてはルンゲクッタ法を用いる予定
・剛体球モデルを用いる予定

よろしくお願いします.

46 :デフォルトの名無しさん:2011/05/02(月) 16:58:48.90
べつにどの言語でも出来る
というか言語どうこうの問題じゃない

47 :デフォルトの名無しさん:2011/05/02(月) 17:00:56.85
FortranかC++でいいじゃん
そういうのならどの言語で書いても手間は似たようなもんだから速いの選んどけ
言語なんかよりも、近くの粒子をリストアップしておいて計算回数を減らすなどの
アルゴリズム上の工夫が超重要

48 :デフォルトの名無しさん:2011/05/02(月) 17:08:21.35
配列として1万個以上の物体が入ればそれで用件は済む。
で、大きさは貴方の求める仕様なので貴方が物体と物体の距離を定義すればいい。
アルゴリズムのことはよくわからないが、
要するにその物体同士が当たり判定で当たったとしたときの挙動を求めることが結果につながると思う。

というわけでどの言語でも配列と当たり判定が実装できればなんでもいいが、
カラフルなビジュアルが必要であればC#も選択肢に入るかもね。

ってとこじゃね?

49 :デフォルトの名無しさん:2011/05/02(月) 17:12:40.95
>>45
研究とかやってるんなら
CUDAC あたりでメイン処理書いといてC#とかXNAで描画とかどう

50 :デフォルトの名無しさん:2011/05/02(月) 17:27:52.63
各粒子ごとに、自分自身からある程度の距離内にいる粒子のリストを持っといて
そのリストにある粒子との衝突判定だけを行うようにすればO(N^2)がO(N)に近くなってかなり速くなる
ときどきそのリストを更新する必要があるけど、それはO(N^2)かかってしまうので
そこがネックになるようなら空間を分割するとか工夫する
小手先の最適化よりアルゴリズムだよ

51 :デフォルトの名無しさん:2011/05/02(月) 21:28:52.05
45です.
ご意見ありがとうございました.検討してみます.
また何かあったらよろしくです.

52 :デフォルトの名無しさん:2011/05/02(月) 21:56:42.30
>>32
C++で、ユーザー定義型の ++ の場合は前置きの方が速いのよ。
もちろん、整数の場合はコンパイラが最適化するからどっちでもいっしょ。

53 :デフォルトの名無しさん:2011/05/02(月) 23:32:58.50
.netのnamespaceってどんなのがあるのか知りたいのですが、
見やすい一覧って無いのですか?

54 :デフォルトの名無しさん:2011/05/02(月) 23:39:57.08
つ MSDN
つ ヘルプ

55 :デフォルトの名無しさん:2011/05/02(月) 23:40:00.43
msdn

56 :デフォルトの名無しさん:2011/05/02(月) 23:41:04.20
たった4文字打つだけなのにかぶったぜ

57 :デフォルトの名無しさん:2011/05/03(火) 00:02:30.99
>>53
Visual StudioでC#プロジェクト作って、Ctrl+.

58 :デフォルトの名無しさん:2011/05/03(火) 00:13:46.36
>>57
それVSのバージョンいくつから?
VC#2008Expressじゃあ反応しないな

59 :デフォルトの名無しさん:2011/05/03(火) 01:09:25.88
lockステートメントに入れるインスタンスは適当なのがなけりゃObjectクラスのをnewして入れとけ
ってどこかで見たけど、そのメソッドを持ってるインスタンス自身を入れるのって問題ない?
lock (this)
{
...
}

60 :デフォルトの名無しさん:2011/05/03(火) 01:30:03.17
lockステートメントの解説から。
「インスタンスに対してパブリックにアクセスできる場合には、lock (this) が問題になります。」

これは、thisオブジェクトが外から見えてしまうので別の排他制御で使われるかもしれない
から注意してね、という意味だと思う。
インスタンスメソッド間で排他制御に使ってると、外部じゃ分からなくて排他制御に使うかも
しれないよ、と。

61 :デフォルトの名無しさん:2011/05/03(火) 01:38:11.32
具体的には
class hoge {
...
 void hogeCallback() {
  lock(this) {
   done = true;
  }
 }
}
で、
hoge obj = new hoge();
として
lock(obj) {
 while(! obj.done) {
  Thread.Sleep(500);
 }
}
とか。(検証したわけじゃないが)

62 :デフォルトの名無しさん:2011/05/03(火) 01:46:21.95
>>60-61
なるほどそういうケースがあるのか。さんくす

63 :デフォルトの名無しさん:2011/05/03(火) 01:58:49.76
そもそもクリティカルセクションを作るためにlockを使う、っていうのが
lockの本来の使い方じゃないような気もするんだけど、かといって代替手段がないのか。

64 :デフォルトの名無しさん:2011/05/03(火) 02:11:07.81
>>63
どういうこと?MSDNにはクリティカルセクションをマークするためのものって書いてあるけど。

65 :デフォルトの名無しさん:2011/05/03(火) 02:21:26.41
>>63
納得いく説明をしてくれよ

66 :デフォルトの名無しさん:2011/05/03(火) 02:41:37.52
>>64
言葉の使い方が正確かどうか自信がないけど、lock(hoge)の機能は排他制御だよね。
つまり、複数のスレッドが同時にhogeにアクセスすることを防止したい場合に使う。
(hogeのためにlockが使われている)

単にクリティカルセクションを作りたいだけの場合、hogeは1ヶ所しかないlock(hoge)のためだけに
存在する(その行以外では使われない)わけで、要するに別にlock(hoge)はhogeをロックすることを
狙ってるわけじゃない。(むしろlockのためにhogeが使われている)

ごめんどうも上手く書けてる気がしない。
人に説明するのって難しいな....

67 :デフォルトの名無しさん:2011/05/03(火) 03:27:42.43
lock キーワードは、指定のオブジェクトに対する相互排他ロックを取得し、ステートメントを実行し、
ロックを解放するステートメント ブロックをクリティカル セクションとしてマークします。

68 :デフォルトの名無しさん:2011/05/03(火) 04:29:09.27
>同時にhogeにアクセスすることを防止したい
これがちょっと認識が怪しいんじゃないかと思うな。

オブジェクト操作で捉えてしまうと、その思考だと複数のオブジェクトの同時変更
ではそれぞれ全部ロックする必要があることになるけど、これは面倒極まりない。
そんなことしなくても、代表を決めておいてそれを握っている奴だけが操作できる
という取り決めで簡素化が可能。

そこで代表だったら単なる new Object() でいいじゃんという話になる。
つまりlockってのは単にオブジェクトを保護するためのモノじゃないよ、ということ。

69 :デフォルトの名無しさん:2011/05/03(火) 04:39:26.92
Javaでの話だけど、かなり一般論。

http://www.shudo.net/article/JavaWorld-200201-multithread/#deadlock

・・・その場合、それではまったくロックしないというわけにもいかないので、より上位の、
包括的なモニタを獲得することになる。
具体的には、個々の口座をロックするのではなく銀行自体をロックする、といった具合いである。


70 :デフォルトの名無しさん:2011/05/03(火) 04:39:38.20
visual studio 2010 expressで
クラスのメソッド一覧って出せますか?

2008 expressだとソリューションエクスプローラー(?)で
見れた気がするんですが。

71 :デフォルトの名無しさん:2011/05/03(火) 04:42:54.40
Monitor の静的メソッドで任意のオブジェクトをロックするより、
Monitor をインスタンス化するような実装の方がよかった気もするのよね。

なんか、意味のない object syncObj = new object(); して lock(syncObj) とかするより、
lock() の中身はMonitor 限定でよかったような。

72 :デフォルトの名無しさん:2011/05/03(火) 07:08:13.37
意味のあるロックオブジェクトの場合もあるっしょが

73 :デフォルトの名無しさん:2011/05/03(火) 08:27:06.30
でも、めったに行わない lock のために、全てのオブジェクトが同期インデックスを持ってるのって無駄だったりしないのかな。

Java の場合、JVM の命令としてmonitorender/monitorexitを実装してるけど、
.NET の場合、IL レベルじゃなくて、Monitor クラス使った構文糖衣なわけで、
特に全部のオブジェクトに同期インデックス持たせる理由もないような。

あと、Monitor.Enter が静的メソッドとして実装されてるがために結構問題も起こしてるみたいだし。

74 :デフォルトの名無しさん:2011/05/03(火) 11:06:54.71
Javaはsynchronized(this)だらけだからでしょ。設計ミスだけど。
設計時にはまだlock(this)の問題が十分に認識されてなかったからとりあえずJavaと同じにしたんじゃないの
[MethodImpl(MethodImplOptions.Synchronized)]でthisがロックされたりするし、
この属性はイベントアクセサに自動的に付けられてしまう。
C#4からはイベントアクセサにも上の属性は使われなくなってる。

75 :デフォルトの名無しさん:2011/05/03(火) 11:48:22.25
そう、lock(obj) はどう考えてもJavaの影響なんだけど、
IL レベルで実装するのはやめたんだから、「もう1歩」あってもよかったかなと。

76 :デフォルトの名無しさん:2011/05/03(火) 12:05:28.30
全てのオブジェクトを同期に使える言語が広く使われてる以上、
共通言語基盤としては仕様に入れないと仕方なかったんじゃないの
当初はJ#も戦略の中心にいたんだし

77 :デフォルトの名無しさん:2011/05/03(火) 12:06:29.67
また設計ミス厨か

78 :デフォルトの名無しさん:2011/05/03(火) 14:54:22.39
後知恵はいつも素晴らしいw

79 :デフォルトの名無しさん:2011/05/03(火) 16:57:14.35
次の世代の言語に期待するしかねーな

80 :デフォルトの名無しさん:2011/05/03(火) 17:13:15.83
次は何?
C丼?

81 :デフォルトの名無しさん:2011/05/03(火) 18:17:03.33
C鬱

82 :デフォルトの名無しさん:2011/05/03(火) 18:45:47.81
地名でも偉人の名前でも頭字語でも何でもいいけど、C#だのC♭だの検索しにくい
投げやりな名前は止めてほしい。

83 :デフォルトの名無しさん:2011/05/03(火) 18:46:36.10
swichってifと比べて遅いからなるべく使わないほうがいいって
100分岐以上でもifにしたほうがいい?
swichを分割してifで二分岐して絞ったほうがいいのかな

84 :デフォルトの名無しさん:2011/05/03(火) 18:54:27.57
80年代のBASICじゃあるまいし....

85 :デフォルトの名無しさん:2011/05/03(火) 18:55:10.02
気にすんな

86 :デフォルトの名無しさん:2011/05/03(火) 19:26:05.36
>>83
別に遅くはないだろ?

87 :デフォルトの名無しさん:2011/05/03(火) 20:28:58.95
むしろはまれば速いんじゃ?

88 :デフォルトの名無しさん:2011/05/03(火) 20:29:01.55
一般にswitchで書けるならswitchの方が速い

89 :デフォルトの名無しさん:2011/05/03(火) 20:38:29.89
がんばって100個以上クラス定義してポリモーフィズムしようぜ

90 :デフォルトの名無しさん:2011/05/03(火) 20:39:25.33
C7とかCmajorとかC1000takedaとか

91 :デフォルトの名無しさん:2011/05/03(火) 20:47:10.24
switchは場合によってILになったとき専用のテーブルが作られることがあるから
むしろifより最適化はされやすい(=常に速いということではない)

92 :デフォルトの名無しさん:2011/05/03(火) 20:50:25.64
>>88
本当かよそれ。
まあifで2分探索で書くのが一番平均速度が早そうだけど、可読性の面では最低になりそうだ。
代替案でDictionaryにデリゲート突っ込んで…こっちも読みにくそうだな

93 :デフォルトの名無しさん:2011/05/03(火) 21:01:55.72
いやswitchなら連続値の場合O(1)だ

94 :デフォルトの名無しさん:2011/05/03(火) 21:11:11.46
switchって内部的にはif文に読み替えられるのかと思ってたが
違うんだな・・・

95 :デフォルトの名無しさん:2011/05/03(火) 21:15:41.10
確かに値が散ってなければ機械語でいうジャンプテーブルみたいなものに最適化できるはずだよな。

96 :デフォルトの名無しさん:2011/05/03(火) 21:18:44.13
>>94
.NETはILレベルでswitch命令持ってて、その先、JIT結果がどうなるかはたぶん実装依存だったと思うけど、
MSのCLRは、caseの数が少なかったりcaseが飛び飛びだとif相当のコードに展開、
連続なcaseだったらジャンプテーブルになる。

97 :デフォルトの名無しさん:2011/05/03(火) 21:21:14.83
C#コンパイラやJITコンパイラが、これはifの方が速いだろうと判断すれば
switchからif相当のコードを生成することは簡単にできるはずだけど
逆にifからswitchは難しいだろうから、もちろん実装によるけど本来ifの方が速くなる余地はないわな

98 :デフォルトの名無しさん:2011/05/03(火) 22:55:47.08
<書籍情報>
<書籍>
<書籍名>名前1</書籍名>
<書籍名>名前2</書籍名>
</書籍>
</書籍情報>

var quary = from item in xmlDoc.Descendants("書籍") select item.Element("書籍名");
ってやると一番最初の名前1しか読めないです
どこがいけないんでしょ?

99 :デフォルトの名無しさん:2011/05/03(火) 23:01:06.32
item.Element("書籍名");

目が悪いんだな

100 :デフォルトの名無しさん:2011/05/03(火) 23:01:42.51
一文字足りないな

101 :デフォルトの名無しさん:2011/05/03(火) 23:02:23.70
あるあるwww

102 :デフォルトの名無しさん:2011/05/03(火) 23:18:13.95
なるほど><
ありがとうございました

103 :デフォルトの名無しさん:2011/05/03(火) 23:28:34.57
>.>99
ん?横レスですまんが、sが抜けてるということ?

104 :デフォルトの名無しさん:2011/05/04(水) 01:07:44.86
ついでにSelectMany形式にしないと

105 :デフォルトの名無しさん:2011/05/04(水) 06:23:51.90
書籍を使わないならxmlDoc.Descendants("書籍名") でいいじゃん

106 :デフォルトの名無しさん:2011/05/04(水) 07:57:19.42
>>94
おれも。switchてelse ifの連続化と思ってた。
switchのほうが可読性がいいて誰か書いてたけど、{}とかbreakとかうざくね?


107 :デフォルトの名無しさん:2011/05/04(水) 08:44:31.93
switchのほうが可読性がいい、とは書いてないな。
ifで2分探索で書くと可動性の面では最低になりそう、とは書いてある。

108 :デフォルトの名無しさん:2011/05/04(水) 09:06:44.85
速度はswitchのほうが速いんだっけ?

109 :デフォルトの名無しさん:2011/05/04(水) 10:51:07.94
少しくらい上のレス読もうぜ

110 :デフォルトの名無しさん:2011/05/04(水) 11:52:18.69
while(true)

111 :デフォルトの名無しさん:2011/05/04(水) 12:04:58.80
無限ループって怖くね?

112 :デフォルトの名無しさん:2011/05/04(水) 12:11:16.64
怖い怖い。でも回数決められない処理って結構多い。

113 :デフォルトの名無しさん:2011/05/04(水) 14:48:14.35
[WebMethod]/[NonSerialized]とか[STAThread]あたりしか属性を使ったことがないのですが、
属性は機能のON/OFFに使われている事が多い気がします。
属性は任意の対象にメタデータを付加するものだと思っていたのですが、実際のところどのように使われる事が多いのでしょうか?

114 :デフォルトの名無しさん:2011/05/04(水) 15:18:48.47
>>113
他、ObsoleteとかAttributeUsageとか。

最近だと、DataAnnotationsとかWCFのDataContract/OperationContractとか。

コンパイラへの指示、VSへの指示か、
動的コード生成、動的データ検証とか。

115 :デフォルトの名無しさん:2011/05/04(水) 15:21:56.99
メタデータを誰が使うのかっていう区別ぐらいしかないと思う

・実行エンジン→[DllImport][ThreadStatic]
・IDE→[DefaultValue][EditorBrowsable]
・特定のライブラリ→[OperationContract][TestClass]

あと自作プロキシで使ったりする

116 :デフォルトの名無しさん:2011/05/04(水) 15:22:09.37
任意の対象にメタデータを付加するもの、でいいと思う。
使われ方は悪用も含めてフリーダム。
なので、思いついた他の例をあげとこう。

・実行時だと、NUnitなどでテストメソッドのマーク
・コンパイル時だと、APIや構造体などのマーシャリング指示
・デザイン時だと、Browsable とかユーザーコントロールでのプロパティグリッド制御


117 :デフォルトの名無しさん:2011/05/04(水) 15:37:06.34
グローバル属性なんてのもあるね。
バイナリに情報埋め込むあれ。

それでちょっと思い出したけど、常々疑問なんだけどCLSCompatible属性って何の意味があるのかね?
警告が鬱陶しいからクラスライブラリを作る時には盲目的にいつも付けてるがあれの必要性がわからん。

118 :デフォルトの名無しさん:2011/05/04(水) 15:39:38.40
ASP.NET MVCのFilterAttributeなんかは機能のOn,Offというより機能の追加だね。

属性をそのまま使うんじゃなくて、属性を派生させて、その中に追加したい機能を実装して使う。

用途としてはvirtualメソッドと同じだけど、
クラスだけじゃなくて、メソッドやプロパティに関連する機能も追加できるし、
複数の機能を追加できるという点で
単なるvirtualメソッドより柔軟性が高い。

119 :デフォルトの名無しさん:2011/05/04(水) 15:44:24.21
>>117
CLIには様々な機能があるけど、プログラム言語では全機能をサポートする必要はない・・・・が
最低限サポートしなきゃいけない機能が決まっていて、それがCLS。

つまり、CLSCompatible属性を付けて警告が出ないライブラリは
他のプログラミング言語からも利用可能なライブラリって事になる。

別の言語を使用しないなら、別に無視しても構わない。

120 :113:2011/05/04(水) 16:10:36.79
>>114-116
誰のために使うかが問題なのね
最初に属性を見たときは、コンパイラの為だけのものだと思っていたので全然わからんかった
thx


121 :113:2011/05/04(水) 16:25:23.18
var o = new object();
o.HellowWorld = "Hellow World";

こんな感じでobjectに任意のプロパティって追加できませんでしたっけ?

122 :デフォルトの名無しさん:2011/05/04(水) 16:27:33.63
っ 拡張メソッド??

123 :デフォルトの名無しさん:2011/05/04(水) 16:29:11.27
ダイナミ!ダイナミック!

124 :121:2011/05/04(水) 17:09:10.14
これってメソッドしか追加できないんですか?

125 :デフォルトの名無しさん:2011/05/04(水) 17:38:12.51
IronPythonなどととの互換機能だからスマートには書きにくいな。

using System;
using System.Collections.Generic;
using System.Dynamic;
class Program {
 static void AddProperty(ExpandoObject o, string k, object v) {
    ((IDictionary<string, object>) o).Add(k, v);
 }
 static void Main() {
  dynamic o = new ExpandoObject();
  AddProperty(o, "HelloWorld", "Hellow World !");
  AddProperty(o, "Name", "Hans Johnson");
  AddProperty(o, "Age", 99);
  Console.WriteLine(o.HelloWorld);
  Console.WriteLine(o.Name);
  Console.WriteLine(o.Age);
 }
}


126 :デフォルトの名無しさん:2011/05/04(水) 18:21:38.21
ExpandoObjectってIDictionaryにキャストしないとメンバ追加できなかったっけ?
ならいきなり代入したら勝手にメンバ追加してくれるDynamicObject自作すればいいじゃん

127 :デフォルトの名無しさん:2011/05/04(水) 23:34:48.91
http://msdn.microsoft.com/ja-jp/library/system.dynamic.expandoobject.aspx

class Program
{
    static void Main(string[] args)
    {
        dynamic employee, manager;

        employee = new ExpandoObject();
        employee.Name = "John Smith";
        employee.Age = 33;

        manager = new ExpandoObject();
        manager.Name = "Allison Brown";
        manager.Age = 42;
        manager.TeamSize = 10;
    }
}

128 :デフォルトの名無しさん:2011/05/05(木) 01:56:39.54
Disposeの実装ってスレッドセーフであるべき?
ネット上にあるサンプルの中にはlockを使ってスレッドセーフにしてあるのもあるけど、
これの必要性っていかほど?
複数のスレッドから同時にDisposeを呼び出すシチュエーションがいまいち想像できないんだけど。

129 :デフォルトの名無しさん:2011/05/05(木) 02:59:29.47
必要であればそうすべきなだけで、全部が全部スレッドセーフに実装する必要はないのでは

言い方を変えれば、全てのクラスがIDisposableを実装してるわけではないだろう?
必要ないからだ

130 :デフォルトの名無しさん:2011/05/05(木) 03:12:35.47
>>128
あんまり一般的なシナリオでもないけど、
並列に処理を始めて、最初に帰ってきた1つの値だけを採用したい
最初の1つが終われば残りは止めていい、
止めるのにDisposeを使う
とか?

131 :デフォルトの名無しさん:2011/05/05(木) 03:25:21.30
ありえないと思うけど時限式のキャッシュを作ってる時とか?

俺の頭だとその辺の想像が限界だなあ

132 :デフォルトの名無しさん:2011/05/05(木) 09:45:47.40
明示的呼び出しによるDisposeの実行中にファイナライザによるDispose呼び出しが行われることはあるかも
明示的なDisposeの最後にGC.SuppressFinalize(this)を入れとけばたぶんおk

133 :132:2011/05/05(木) 09:50:05.75
KeepAliveか
訂正

134 :デフォルトの名無しさん:2011/05/05(木) 13:52:27.51
プロセス制御のシステムで仕方なく・・・
プロセスからの標準出力読み込みやプロセス終了など非同期イベントと、
ファイルハンドルなどリソース解放の関係でDisposeにロック付けた。
正直うまくない手だったと思う。エレガントな方法思いつかなかった。

135 :デフォルトの名無しさん:2011/05/05(木) 15:20:08.89
すみませんが、VS2010EEでパーシャルクラスの追加の仕方を教えてください。
Form1.cs(既に自動作成されたForm1のパーシャルクラス)が大きくなりそうなので、
もう一つ分けて書こうと思うのですが、
普通にクラスの追加でForm1.csとすると同名のファイルが競合するとでます。
別名で作って、Partialに変え、リファクタで名前変更かと思いきや、それも駄目でした。
どういう手順で追加すればいいのでしょうか?

136 :デフォルトの名無しさん:2011/05/05(木) 15:25:09.86
リファクタリングじゃなくてエディタで直接クラス名をForm1に書き換えればいいよ

137 :デフォルトの名無しさん:2011/05/05(木) 15:27:23.68
それでファイル同士の関連付けは出来るのですか?
ちょっと試してみます。ありがとうございました。

138 :デフォルトの名無しさん:2011/05/05(木) 16:10:13.71
あのー・・・追加したクラスから、Form1のコントロール類に繋がらないのですが。


139 :デフォルトの名無しさん:2011/05/05(木) 16:21:55.61
追加したファイルをデザイナで開いて、空のフォームが表示されるなら成功
コードからはフォームのコントロールにアクセスできるはず
ただし.designer.csを認識しないので、デザインを弄る場合はもともとのファイルを編集する必要がある

デザイナで開けない場合は既存のフォームと名前空間かクラス名が違うんだと思う

140 :デフォルトの名無しさん:2011/05/05(木) 16:56:47.40
空のフォームは開きましたが、コードでコントロールにあくせすできません。
何か足りないのかな?パーシャルクラスって、Form1.csの2ページ目みたいな漢字化と思ってたんだけど、
ちがうのかな?

141 :デフォルトの名無しさん:2011/05/05(木) 17:36:31.50
テレパス召喚

142 :デフォルトの名無しさん:2011/05/05(木) 17:46:26.93
言語やコンパイラが対応しているというのと、
Visual StudioなどのIDEがサポートしているかどうかは別の話だな。
.csprojファイルを無理やりいじってみたけどIDEの動作はやっぱ変だった。


143 :デフォルトの名無しさん:2011/05/05(木) 17:52:14.59
そうなんだ・・・じゃあ、この状態で正しいプログラムが書ければ、
コンパイルは通るかもしれない、ってことなのかな。
でもまだIDEがないと書けない初心者だから・・・
VSの正しい手順でパーシャルクラスの追加って何処かに出てないですかね?


144 :デフォルトの名無しさん:2011/05/05(木) 17:57:13.87
タイムスリップ設定を被せてきてる時点でそんな意識はないだろ

145 :デフォルトの名無しさん:2011/05/05(木) 17:58:23.33
oh..誤爆

146 :デフォルトの名無しさん:2011/05/05(木) 18:05:42.64
Form1.cs コードの表示→全部選択→コピー

追加→新しい項目→クラス

Class1.cs コードの表示→全部選択→削除→貼り付け

public partial class Form1:Form の中身を削除

ビルド

こっちの環境は2005だけどたぶん2010でもうまくいくと思うよ



147 :デフォルトの名無しさん:2011/05/05(木) 18:13:27.40
追加したパーシャルクラスを書いたコードをフォームエディタで開かないようにすればおkだろ

namespace WindowsFormsApplication1
{
 public partial class Form1
 {
  private void Hage()
  {
   //... ふつうにForm1のフィールドにアクセスできる
  }
 }
}

つーかデフォルトのエディタをコードエディタにしろよな

148 :デフォルトの名無しさん:2011/05/05(木) 18:36:03.21
あ、できました!ありがとうございます!!
あーーー、そういうことかーーーー!
いや、完全に勘違い。言われてみればそうだわ。


149 :デフォルトの名無しさん:2011/05/06(金) 10:33:57.11
鯖プログラムを作ってみたい。
ブラウザでなく専用アプリをインストールした2台以上のPC間で
各PCからの入力状況を読み込んで鯖で処理してクライアントにリアルタイムで表示を返す。

こういうのってWPFとかsilverlightを使うことになるの?
とっつきの方向を教えてください。
数台ならP2Pになるんでしょうか?
P2Pなら鯖プログラムなしで各クライアントが処理しなきゃならんのですよね。

っていうかプログラムしなくてもネット接続されたPCのIPアドレスとかから
各PCの特定ポートに常時データをPUSH出来るんだっけ?

150 :デフォルトの名無しさん:2011/05/06(金) 10:35:05.88
>>149
WCFで通信すれば楽にできそうだな

151 : 忍法帖【Lv=40,xxxPT】 :2011/05/06(金) 10:53:27.62
適当に知ってる用語を並べてる感じ

152 :デフォルトの名無しさん:2011/05/06(金) 11:30:34.65
普通にソケット通信使えば?
融通効くし

結局何がやりたいかによる気がする。


153 :デフォルトの名無しさん:2011/05/06(金) 12:01:02.35
ゲームにきまってんだろ

154 :デフォルトの名無しさん:2011/05/06(金) 13:16:34.42
>P2Pなら鯖プログラムなしで
考えようによるがソケットつなぐ時鯖は必ず存在しているわけで・・・
これ以上は突っ込まない方がいいのかな?

155 :デフォルトの名無しさん:2011/05/06(金) 13:32:24.03
用語の認識が適当だからー
突っ込んでも通じないよー

156 :デフォルトの名無しさん:2011/05/06(金) 17:17:48.04
やっぱ鯖は味噌煮に限る

157 :デフォルトの名無しさん:2011/05/06(金) 17:48:04.10
キーを押し続けるとキーリピートしますが、
この機能をC#でON/OFFする方法を教えてください。

158 :デフォルトの名無しさん:2011/05/06(金) 19:23:39.75
C#を使わずにDirectINPUTでするしかない

159 :デフォルトの名無しさん:2011/05/06(金) 20:05:18.56
KeyUpで我慢しなさい

160 :デフォルトの名無しさん:2011/05/06(金) 21:01:35.23
bool isPressing = false;

//KeyDownのハンドラ
{
if (!isPressing) { [ 初回押下時の処理 ]; isPressing = true; }
}

//KeyUpのハンドラ
{
isPressing = false;
}

161 :デフォルトの名無しさん:2011/05/06(金) 21:20:30.16
>>160
おお!素晴らしい!上手くいきました。ありがとうございます!

162 :デフォルトの名無しさん:2011/05/07(土) 01:43:24.05
2chてさ、適当な事書いとけば
真っ赤な顔して正しいことを調べ廻ってくれる親切な人が居るから
スゲー 便利www

163 :デフォルトの名無しさん:2011/05/07(土) 01:44:41.44
そういうことしてるから、周りの要求レベルが上がって対応できなくて自爆しちゃうんだよ。

164 :デフォルトの名無しさん:2011/05/07(土) 02:17:27.25
周りの要求レベルが上がって・・・

165 :デフォルトの名無しさん:2011/05/07(土) 07:40:49.06
おさわり禁止

166 :デフォルトの名無しさん:2011/05/07(土) 08:23:49.11
>>162
酷い負け惜しみだなwww
>>160の発想は素晴らしいと思うよ。
”キーリピート”でググっても、「無理」とか「間隔を最大に伸ばす」
みたいなのしか出てこないけど、多分皆、リピートを止めることしか考えてなかったんだな。
恥ずかしながら自分もそうだったんだけど。
でも180度逆から、リピートは止めずにハンドラを回避するアプローチはお見事。
在りそうで思いつかなかった。しかもフラグ1本で簡単。勉強になった!

167 :デフォルトの名無しさん:2011/05/07(土) 08:52:28.78
普通の人はKeyUp使うから・・・^^;

168 :デフォルトの名無しさん:2011/05/07(土) 13:05:05.18
初心者スレでは、質問にまじめに答えるのではなく
質問者の意図と技量を読む能力が試されるよね
もしかしたらテキストボックスのキーリピートを止めたかったのかもしれない

169 :デフォルトの名無しさん:2011/05/07(土) 13:59:11.91
それは俗にエスパーすると言います

170 :デフォルトの名無しさん:2011/05/07(土) 14:04:46.38
C#でキーリピートっていったらテキストボックスに決まってんだろ

171 :デフォルトの名無しさん:2011/05/07(土) 14:50:33.12
>>166
褒められちゃった。うれしい!

172 :デフォルトの名無しさん:2011/05/07(土) 16:29:27.38
>>170
ComboBoxは仲間はずれか?

173 :デフォルトの名無しさん:2011/05/07(土) 17:58:15.42
asp.net webサービスを使ってログイン処理を作ろうとしています。
postされたユーザ情報がdbに存在しなかった場合、クライアントに何を送り返すのがベストなのでしょうか?

174 :デフォルトの名無しさん:2011/05/07(土) 18:11:27.38
ユーザー名またはパスワードが間違っているか存在しません。
でいいじゃね?

そういうセキュリティの話を2chで振るのは微妙な気がするけどね。

175 :デフォルトの名無しさん:2011/05/07(土) 18:13:41.80
ここで聞く前にYahooとかGoogleあたりで試してみればいいのに

176 :デフォルトの名無しさん:2011/05/07(土) 18:57:45.92
public interface IInterface { public string value; }
public class ClassImpl : IInterface {}

var c = new ClassImple();
c.value = "hellow";

valueに何故値を代入できない?

177 :デフォルトの名無しさん:2011/05/07(土) 19:15:03.08
インターフェイスにフィールドはないよ
そもそもコンパイルできないっしょ

178 :デフォルトの名無しさん:2011/05/07(土) 20:09:59.70
>>175
試せる環境にいたらとっくに試してるは

179 :デフォルトの名無しさん:2011/05/07(土) 20:13:59.25
ネットに繋がってたら試せるだろ。
どうやって2chに書き込んでるんだw

180 :デフォルトの名無しさん:2011/05/07(土) 20:33:04.71
試してるは

181 :173:2011/05/07(土) 20:39:28.75
>>179
>>178は俺じゃないから怒るなって

>>175
>ここで聞く前にYahooとかGoogleあたりで試してみればいいのに
Webサービス <----- XML -------> Flashっていう感じのを作りたいの

googleやyahooがとかっていうのも大切だと思うんだけど、俺は業務で使いたいと考えている
だから、業務アプリとして作るならばって観点で教えてください



182 :デフォルトの名無しさん:2011/05/07(土) 20:39:57.59
>>179
余計なサイトには接続できないようになってる

183 :デフォルトの名無しさん:2011/05/07(土) 20:44:40.22
2chは余計なサイト扱いされてないのか
どっか抜けてるなその会社

184 :176:2011/05/07(土) 20:46:50.97
>>177
そうなのね
ありがとう

185 :デフォルトの名無しさん:2011/05/07(土) 22:10:11.50
お前らってjavaとC#のどちらが簡単だと思う?
俺はjavaだなー 楽だもん

186 :デフォルトの名無しさん:2011/05/07(土) 22:14:01.73
覚えることが少ないのはJavaだけど使うのはC#の方が簡単
Javaのジェネリクスとか泥沼

187 :デフォルトの名無しさん:2011/05/07(土) 22:15:46.44
なんでこのスレにいるんだよw

188 :デフォルトの名無しさん:2011/05/07(土) 22:16:39.59
how(どう書くか)ベースだと Java の方が覚えること少ないけど、
what(何を書きたいか)ベースだと C# の方が簡単だからなぁ。

189 :デフォルトの名無しさん:2011/05/07(土) 22:17:02.06
使いやすい方使えばいいだろそんなもん

190 :デフォルトの名無しさん:2011/05/07(土) 22:19:26.70
イベントリスナとか画面殴りたくなる

191 :デフォルトの名無しさん:2011/05/07(土) 22:27:23.38
C# = Java - Javaの欠点 + VBの利点 + ラムダ式 + dynamicだと思ってる
あとIDEが有料なだけあって無茶苦茶使いやすい

192 :デフォルトの名無しさん:2011/05/07(土) 22:28:45.74
IDEが優秀すぎる

193 :デフォルトの名無しさん:2011/05/07(土) 22:36:05.28
これがIDEの意志だと言うのか。

194 :デフォルトの名無しさん:2011/05/07(土) 22:47:00.42
javaはクラスライブラリがダメダメな所が許せないなー
でも、C#は外部のライブラリが少ない気がするし

195 :デフォルトの名無しさん:2011/05/07(土) 23:01:24.12
よそ様のことをとやかく言うもんじゃないけど、Javaは船頭が多すぎた。
その点、C#はヘジたん萌えということで。

196 :デフォルトの名無しさん:2011/05/07(土) 23:15:22.90
Monoさん・・・

197 :デフォルトの名無しさん:2011/05/07(土) 23:18:37.53
Javaってデザパタ使いまくるんでしょ?
あんなクラス関係が複雑になる手法よく使えるな。

198 :デフォルトの名無しさん:2011/05/07(土) 23:22:51.38
J++を訴えられたから作った言語がC#です
兄弟の悪口はやめようや

199 :デフォルトの名無しさん:2011/05/07(土) 23:31:40.49
J++にはLINQあったの?

200 :デフォルトの名無しさん:2011/05/07(土) 23:38:11.06
デリゲートはあったから、あのまま訴えられずに正当進化してたらLINQも入ったんじゃないかな。

201 :デフォルトの名無しさん:2011/05/07(土) 23:40:02.66
J#なんて無かったことにしたいのか

202 :デフォルトの名無しさん:2011/05/07(土) 23:44:14.98
>>190
だな、C#のイベントとデリゲート見たとき目から鱗落ちたよ

203 :デフォルトの名無しさん:2011/05/07(土) 23:45:08.99
Javaのプリミティブ型ってのが大っ嫌いなんだけど、J#ではどういう扱いだったんだ?
int≠Integer=Int32なのか?

204 :デフォルトの名無しさん:2011/05/07(土) 23:51:10.29
君には関係の無い事だ。

205 :デフォルトの名無しさん:2011/05/07(土) 23:56:10.10
モショエショエ

206 :デフォルトの名無しさん:2011/05/08(日) 00:16:15.50
C#なら2秒で済む計算をJavaでやろうとすると2年かかるって聞いたな

207 :デフォルトの名無しさん:2011/05/08(日) 00:21:23.39
ソース出せや

208 :デフォルトの名無しさん:2011/05/08(日) 00:31:42.21
↑Java厨

209 :デフォルトの名無しさん:2011/05/08(日) 01:00:07.13
Javaってなんで、uintとかないの?

210 :デフォルトの名無しさん:2011/05/08(日) 01:37:20.99
そしたらまたボックス化するものが増えるだろ?

211 :デフォルトの名無しさん:2011/05/08(日) 01:40:46.28
むしろuintが必用な場面ってそんなにあるのかと。
論理シフトが使いたいような場面?
無きゃ無いでなんとかなるな

212 :デフォルトの名無しさん:2011/05/08(日) 01:44:32.92
javaの文法はとても素晴らしいと思うんだ
c#の文法はだんだんc++化している気がして

213 :デフォルトの名無しさん:2011/05/08(日) 02:08:22.84
継ぎ足し感は確かにあるが言語が進化していった結果なわけで・・・というとC++と同じになってしまうか
しかし逆にJavaはそれが無さすぎる

214 :デフォルトの名無しさん:2011/05/08(日) 02:32:41.20
ラムダ式とダイナミックは確かに便利で手放せない物だが
アレを言語仕様に入れて本当に良かったのかな?
ラムダ式は素人お断り感があり、ダイナミックはバクの温床になりそうな予感

215 :デフォルトの名無しさん:2011/05/08(日) 03:17:28.30
Javaは基本的な部分でもダメだからなぁ
文法もはっきり言うと糞

216 :デフォルトの名無しさん:2011/05/08(日) 03:36:40.29
ラムダはともかくLL言語全盛期の世の中でdynamicはバグの温床になるとか鼻で笑われるレベル



俺もなると思うよ

217 :デフォルトの名無しさん:2011/05/08(日) 04:03:41.30
List<T>の中に<byte>0x10があったら、DTE記号と区別するためにダブルDTEとしてあげたい。{0x10,0x10}
\があったら\\に置換したい。(なら@使えって言われそうだが)
ラムダ式で書くとどんな感じになるの?

218 :デフォルトの名無しさん:2011/05/08(日) 04:05:29.92
ちゃんと質問するのもなかなか難しいもんだなぁと思った

219 :デフォルトの名無しさん:2011/05/08(日) 04:07:10.58
エスパー試験会場

220 :デフォルトの名無しさん:2011/05/08(日) 04:08:43.28
public static IEnumerable<char> DoubleWhen(this IEnumerable<char> source, Func<char, bool> cond)
{
foreach(var c in source)
if(cond(c)) { yield return c; }
yield return c;
}

で、利用側は
var doubled = source.DoubleWhen(c => c == '\\');
とか。

221 :デフォルトの名無しさん:2011/05/08(日) 04:10:23.80
Console.ReadLine()とかやると入力を待ってくれたりしますよね
あれって中はどうなってるんでしょうか、ループ的なものが回ってるんでしょうか

222 :デフォルトの名無しさん:2011/05/08(日) 04:15:25.59
ラムダ式が取り込まれたのは必然とすら思える。もう手放せない。

dynamicを使うとInteliSenceが効かなくなる(開発効率が大きく落ちる)ため、自然に乱用が抑制される。
事実、.NET4のOSSのソースを読めばdynamicが殆ど使われていないのが理解できるだろう。
dynamicの利用に適した分野(DLR言語との相互運用、一部のリフレクションの簡素化)では従来より効率的に開発できる。

223 :デフォルトの名無しさん:2011/05/08(日) 04:17:40.13
いや、みんなそれくらいは分かってると思うよ
誰が普通のなんでもないコードでdynamic使うんだよw

224 :デフォルトの名無しさん:2011/05/08(日) 04:47:29.59
本物はvarの代わりにdynamic使う

225 :デフォルトの名無しさん:2011/05/08(日) 04:52:18.43
>>221
OSのイベント待ってるんじゃないかな。
OS機能でI/O待ちポートってのがある。

>>224
本物の○がいww

226 :デフォルトの名無しさん:2011/05/08(日) 05:02:14.59
VBerはdynamic好きだと思いますよ
OptionStrict Offの動作に似てるから

せっかくOptionStrict Onが普及したのにDynamic使うにはOffにしなきゃならんってアホか

227 :デフォルトの名無しさん:2011/05/08(日) 05:58:41.13
はい?

228 :デフォルトの名無しさん:2011/05/08(日) 06:03:13.55
VBerはdynamic好きだと思いますよ
OptionStrict Offの動作に似てるから

せっかくOptionStrict Onが普及したのにDynamic使うにはOffにしなきゃならんってアホか

229 :デフォルトの名無しさん:2011/05/08(日) 06:24:47.42
スレタイも読めんってアホか

230 :デフォルトの名無しさん:2011/05/08(日) 06:43:52.78
え?

231 :デフォルトの名無しさん:2011/05/08(日) 07:51:58.14
>>229
スレタイ

232 :デフォルトの名無しさん:2011/05/08(日) 09:30:45.69
suretai?

233 :デフォルトの名無しさん:2011/05/08(日) 09:31:31.14
VBerはdynamic好きだと思いますよ
OptionStrict Offの動作に似てるから

せっかくOptionStrict Onが普及したのにDynamic使うにはOffにしなきゃならんってアホか

234 :デフォルトの名無しさん:2011/05/08(日) 09:44:50.18
スレ違いだが熟練VBerは真っ先にOption Strict Onにすると思う

235 :デフォルトの名無しさん:2011/05/08(日) 11:10:23.66
>>181
WebProg板向けっぽいけど素直にLoginFailedだけ返せばいいんじゃない?
下手にUserNotFoundとか返してしまうと総当たりでリクエストされて
登録済みユーザ名を割り出されてしまったりするかもしれないし。
サービスのクライアント側で「ログインに失敗しました。未登録の場合は新規登録してください。」ってやってもらえばいいと思う。

236 :デフォルトの名無しさん:2011/05/08(日) 11:32:15.88
>>234
するけど、それはその方が安全だからというより政治的理由。
現実には熟練者にとってはStrict Offの弊害はまずない。(初心者にはある)

237 :デフォルトの名無しさん:2011/05/08(日) 11:35:57.07
俺はプロじゃないから知らないけど
習得が容易なことがメリットの言語にそんな熟練者が要るのか

238 :デフォルトの名無しさん:2011/05/08(日) 11:39:21.00
Silverlightのdynamic使ったHTMLブリッジなんか超便利だぞ
まるでインラインでJavaScriptを書いてるみたいにHTMLを操れる

239 :デフォルトの名無しさん:2011/05/08(日) 11:46:24.35
VB熟練者は不要だけど、CLR熟練者がいないとVB案件は泥沼になりがち

240 :デフォルトの名無しさん:2011/05/08(日) 11:50:13.32
VBってExcel操作とかやりたかったらそこだけPartialとか使ってファイル分けて
Option Sttict Offにすんの?
そうなら欠陥すぎるだろ

241 :デフォルトの名無しさん:2011/05/08(日) 11:50:19.87
VBで泥沼になったことはないな。VBAなら余裕であるけどw

242 :デフォルトの名無しさん:2011/05/08(日) 12:03:58.55
頭数揃えるためのVBとPHP

243 :デフォルトの名無しさん:2011/05/08(日) 14:15:17.39
プログラム中でmp3を再生したいのですが、再生の他に以下のことも出来る必要があります。
・音量調整
・任意の位置から再生
・現在の再生位置取得

これらをやりたい場合、何を使用するのが適当でしょうか?

244 :デフォルトの名無しさん:2011/05/08(日) 14:31:50.35
AxWMP
MCI
WPF
Silverlight
DirectX Audio

245 :デフォルトの名無しさん:2011/05/08(日) 14:32:04.23
ググレカス

246 :デフォルトの名無しさん:2011/05/08(日) 14:45:42.04
DirectShow あたりをお勉強すればいいんじゃね。

247 :デフォルトの名無しさん:2011/05/08(日) 14:49:43.42
DirectXってGraphics以外は全部非推奨廃止予定だよ

248 :デフォルトの名無しさん:2011/05/08(日) 14:58:43.40
>>247いつどこで誰が何故どういう手段でそんなコト言ってるの?

249 :デフォルトの名無しさん:2011/05/08(日) 15:04:39.86
DirectShowはPlatformSDKに移されたから関係ねーです

250 :デフォルトの名無しさん:2011/05/08(日) 15:09:06.78
http://msdn.microsoft.com/en-us/library/ee416796(v=VS.85).aspx
ゲーム開発には使うな だそうだ
位置付けが変わったんだな

251 :デフォルトの名無しさん:2011/05/08(日) 16:26:56.98
じゃあどうしろってんだよ!

252 :デフォルトの名無しさん:2011/05/08(日) 16:31:44.73
>>251
つLINQ

253 :デフォルトの名無しさん:2011/05/08(日) 19:07:19.20
visual C# のエディタに関する質問です。
コードを書く際、通常であれば 「 I 」みたいなマークでコードに文字を挿入できると思うのですが、
いつのまにか 「 長方形 」のような形のマークに変化していました。
ちょうど、ターミナル(Console)でよくみるようなやつです。

この状態で書きこむと、もともとあったコードに挿入できず、
どんどん上書きされていってしまうので、かなり不便です。
環境設定などを見てみたり、ググったりしてみたのですが、戻し方が分からないため
質問いたしました。よろしくお願いします。

254 :デフォルトの名無しさん:2011/05/08(日) 19:08:24.74
挿入モードって分かるかい
古今東西のエディタの基本機能だが

255 :デフォルトの名無しさん:2011/05/08(日) 19:10:52.68
パソコン買ったばかりの人でもプログラミングできる時代になったんだな

256 :デフォルトの名無しさん:2011/05/08(日) 19:12:04.04
キーボードのinsertボタン押したんじゃね? もう一回押せばモード変わると思う。

257 :デフォルトの名無しさん:2011/05/08(日) 19:16:04.97
>>256
ありがとうございます。解決しましたw

>>254, 255
あまりにも初歩的な質問をして申し訳ありませんでした。
お恥ずかしい限りですw

258 :デフォルトの名無しさん:2011/05/08(日) 19:42:44.85
いつも、asp.netに質問している者です
asp.net <------> クライアント(flash)
クライアントではsession変数の中身を見ることができるのでしょうか?

ログインしていないユーザを弾くために、session変数に値を入れたいんです
後は将来的に他のデータを入れたり etc etc

259 :デフォルトの名無しさん:2011/05/08(日) 19:52:52.63
>>257
え、釣りじゃなかったのか。道は厳しそうだががんばって

260 :デフォルトの名無しさん:2011/05/08(日) 19:59:40.85
>>258
出来ない
セッション変数つーのはあくまでサーバー側のサービスに保持されてる値
セッションにユーザー情報入れるのは常とう手段だが、認証弾くのはあくまでサーバー
「他のデータ」もWebサービスのレスポンス内に入れるべき

261 :258:2011/05/08(日) 20:04:56.19
>>260
わかりました
session変数はとても楽なので、それを使ってflashと連携できたら良かったのですが
ありがとうございました

262 :デフォルトの名無しさん:2011/05/08(日) 23:21:59.90
Form1にtextBox1を貼り付けました。

263 :デフォルトの名無しさん:2011/05/09(月) 02:45:58.51
お疲れ様

264 :デフォルトの名無しさん:2011/05/09(月) 07:00:14.06
>>262
ちょw
それやば……


265 :デフォルトの名無しさん:2011/05/09(月) 22:05:10.59
失礼します。
cucursol.positionでポインタ座標を変更したときにMousemoveイベントが発生してしまいます。
ユーザーがマウスを動かした時は発生し、カーソル座標をプログラムから変更した場合は発生しないというイベントを作るにはどのようにすればよろしいでしょうか?

266 :デフォルトの名無しさん:2011/05/09(月) 22:17:02.79
1.フラグ使う

2.プログラムから変更する直前にイベントハンドラ削除して
変更後に再設定する

3.ほかの人がもっとスマートな方法を思いつくのを待つ

のどれか。3がお勧め

267 :デフォルトの名無しさん:2011/05/09(月) 22:24:32.94
>>265-266
>>160の発想は素晴らしいと思うよw

268 :デフォルトの名無しさん:2011/05/09(月) 22:31:32.72
コードでマウスポインタの座標を弄るなどという不気味なことはしないのが正解。
真面目な話。

269 :265:2011/05/09(月) 22:46:42.50
皆さんありがとうございます。
全ての方法を試させていただきましたが厳しいかんじですね・・・
あるいは私の考え方自体間違っているのかもしれません。

作っているのはカスタムコントロールでAdobe製品のような 「コントロール上で左右にドラッグすると数値が変わる」 というものです。
MouseMove内で前回のマウス位置と比較して数値をアップダウン、その後マウスポインタの位置を戻す という動作にしているのですがこの位置を戻す動作でもMouseMoveが発生し
ポインタが荒ぶってしまいます。
何かいい方法はあるのでしょうか

270 :デフォルトの名無しさん:2011/05/09(月) 22:49:17.83
マウスポインタの位置を戻す必用がどこにあるのか意味不明だと思う。
そんなコントロールみたことない。

271 :デフォルトの名無しさん:2011/05/09(月) 22:49:49.58
ドラッグってマウスの動作を分解すると

1 左ボタン押す
2 マウス移動
3 左ボタン離す

だろ?
コードを書くイベントを間違ってると思うぞ

272 :デフォルトの名無しさん:2011/05/09(月) 22:51:11.33
>>270
やりたいことの意味はわからなくもない

作業する場所は元のところなのにジェスチャーぽい動作で
ポイントを移動したらまた戻す動作が必要だからねえ

でもMoveで処理しなくてもいいと思うけどw

273 :デフォルトの名無しさん:2011/05/09(月) 22:54:33.49
>>272
そんな有難迷惑な機能実装されたら、ユーザーはジェスチャーするごとに
マウスを持ち上げて位置を修正しなきゃならなくなる。

ちょっと考えが浅いと思うよ。

274 :デフォルトの名無しさん:2011/05/09(月) 23:00:44.15
>>273
特定のコントロール依存ぽいしいいんでないの?
システム全体でそんな挙動されると困るけどw

275 :デフォルトの名無しさん:2011/05/09(月) 23:04:55.75
>>271で解決だな

276 :デフォルトの名無しさん:2011/05/09(月) 23:08:39.61
Picasaのスクロールバーみたいにすればいいんじゃないの。
マウスポインタをいじる必要はない。

277 :265:2011/05/09(月) 23:26:22.11
皆さんありがとうございます。
確かに私自身も使いにくいと思っています。ですのでONOFFできるようにしてあります。それと勉強が目的・・・ということでお願いします。

どのイベントで、ということですがドラッグの中で一番長い動作はやはりポインタの移動ですし移動で数値が変わりますので常に移動を補足する必要がある・・・ということでMove内で処理
しております。クリック判定もMove内で行っております。

とりあえずの結論としましてはドラッグ中はマウスポインタを非表示にし、マウスが離されたときに座標を変更するということにしました。
ありがとうございました

278 :デフォルトの名無しさん:2011/05/10(火) 06:27:24.64
へ?

MouseDown → 位置判定、該当位置ならフラグ1立てる
MouseMove → フラグ1立ってるなら値変更、スライダー移動。フラグ2が立ってるなら何もしない
MoseUp → フラグ1おろす。フラグ2立てる。マウスの座標変更。フラグ2おろす。

でいけるじゃん

279 :デフォルトの名無しさん:2011/05/10(火) 09:33:46.84
フラグ2いらなくね?

280 :デフォルトの名無しさん:2011/05/10(火) 11:25:19.60
C# 3.5
で質問です。
現在DataTableに取得してきたSqlServerのデータにフィルタをかけたいと思っていますが
うまく実現できません。

Table定義
Col1 Date(SqlServerの型)
Col2 Time(0)(SqlServerの型)
Col3 String(SqlServerの型)

Col1は取得時にWHERE句で必要外のデータをはじきとばしているので必要ありませんが一応記述しています、
問題はCol2のTime(0)です。
.netではTimeSpanになると思いますが、DataTable.Select("Col2 = ???")
上記の???の部分に何を入れればよいのかが判りません。

判らないのでひとまず暗黙変換でも行けるかな?と思い
Col2='09:00:00'のようにしても
System.TimeSpan および System.String で '=' 操作を実行できません。
と怒られてしまいます。

2.0で作っている人も使う可能性があるので可能であればSelectを使用する方法と
Linqを使う方法をお教えいただければと思います。

最悪DBへ時刻毎に取得しに行けばいいのでしょうが15分ごとの1日分の問い合わせになる為、回数を減らす為に子のようにしたいと思っています。

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


281 :デフォルトの名無しさん:2011/05/10(火) 12:03:23.07
フィルタ式じゃTimeSpan同士の比較演算は定義されてないみたいだからほぼ無理
秒単位まで完全に一致してるかどうかならStringにCONVERTすればできないでもないけど
まあ普通にループ回してDataRowごとにチェックしていけばいいんじゃね

SELECTするときにdatetimeに変換してしまう方が楽かもしれんね

282 :デフォルトの名無しさん:2011/05/10(火) 13:10:16.00
>>281
情報ありがとうございます。
素直にDB設計を見直した方がいいかもしれませんね
ちょっとTime使うのは早かったか・・・・

ありがとうございました。

283 :デフォルトの名無しさん:2011/05/10(火) 13:30:43.37
早いという問題じゃないように思うが

284 :デフォルトの名無しさん:2011/05/10(火) 18:25:26.80
>>280-281
俺も
convert(col2,'System.String')='09:00:00'
で行けると思ったんだが、どうもうまく動かないようだ
convert後の文字列が素直に09:00:00のような形式ではないみたい
ということで
>SELECTするときにdatetimeに変換してしまう方が楽かもしれんね
この意見に賛同

ちなみに2.0でSQLServerのTime型とかサポートしてないんじゃね?

285 :デフォルトの名無しさん:2011/05/10(火) 20:54:59.55
>>277
そういうのはReactive Extensionsを使うとすっきり書けるんだけどね。

286 :デフォルトの名無しさん:2011/05/11(水) 00:56:46.00
System.Diagnostics.Process.Start()

つーのはbatファイルから実行できないの?

たとえばnotepad.bat
っていうのにnotepadとだけ書いてて、
それをダブルクリックしたらメモ張がでてくるよね

でもProcess.Start("d:\notepad.bat");
ってやっても、黒いコマンドプロンプトが一瞬出てきて、メモ張は出てこないで終わり。

直接Process.Start("notepad")ってやればいいとかじゃなく、
今はどうしても理由あってbatファイルから実行したいんだけど
普通にnotepad.batをダブルクリックしたのと同じように動作させるにはどうしたらいい?

287 :デフォルトの名無しさん:2011/05/11(水) 01:13:07.10
> Process.Start("d:\notepad.bat");
普通にこれで十分 なのでどっかでバカやってるんだろう
実は例外出てたけど握りつぶしてたとか

288 :デフォルトの名無しさん:2011/05/11(水) 01:16:08.62
Process.Start(@"d:\notepad.bat");

でいけたぞ。

289 :デフォルトの名無しさん:2011/05/11(水) 01:16:36.95
普通に動くじゃんって思ったらこういうことか?
"d:\\notepad.bat"または@"d:\notepad.bat"


>>285
Rx使いこなす初心者とかこわい

290 :デフォルトの名無しさん:2011/05/11(水) 02:14:15.35
イベントをIObservableに変換できますとか訳分かんない。こわい

291 :デフォルトの名無しさん:2011/05/11(水) 03:11:27.60
既存のクラスに機能を追加したいとき、
・継承する
・そのクラスをフィールドに持つクラスを作る
といった方法があるようだけど、下の方法は継承するのと比べてどういう利点があるの?

292 :デフォルトの名無しさん:2011/05/11(水) 03:19:37.25
>>291
コードを書くのが楽しくなる

293 :デフォルトの名無しさん:2011/05/11(水) 03:23:35.89
下はカプセル化したい時使うかな

294 :デフォルトの名無しさん:2011/05/11(水) 08:45:00.71
継承よりコンポジションを選ぶ

でググれば俺より優秀な誰かが解説してくれてると思う

295 :デフォルトの名無しさん:2011/05/11(水) 10:26:06.76
スレッドAからはEnqueueだけ、スレッドBからはDequeueだけを行うようなキューを用意する場合

(1) Queue<T>を生のまま使う
(2) Queue<T>を、操作するときにはlockするようにして使う
(3) ConcurrentQueue<T>を使う

のどれが相応しいですか?
以外と(1)でどうにかなったりしますか?

場合によるっていう場合は、「こんなケースならこれ使う」ってので結構です。

296 :デフォルトの名無しさん:2011/05/11(水) 10:28:04.16
常に3でいいだろ

297 :デフォルトの名無しさん:2011/05/11(水) 10:47:58.21
うん、3でいい。

298 :デフォルトの名無しさん:2011/05/11(水) 11:46:51.66
4.0なら3
2.0〜3.5なら2
じゃないかな?


299 :デフォルトの名無しさん:2011/05/11(水) 12:46:24.37
>>296-298
.NET 4なので最初(3)で考えていたのですが、しばらくして
「ConcurrentQueueを使うのはもしかして大袈裟なのではないか?」
という妙な感覚にとらわれ、不安になっていたところでした。
ありがとうございます。(3)で行こうと思います。

300 :デフォルトの名無しさん:2011/05/11(水) 17:51:37.56
(3)はWindows98で動かないよ

301 :デフォルトの名無しさん:2011/05/11(水) 17:56:55.95
98って何ですか?

302 :デフォルトの名無しさん:2011/05/11(水) 18:01:17.73
神OS

303 :デフォルトの名無しさん:2011/05/11(水) 19:14:24.33
>〜〜を使うのはもしかして大袈裟なのではないか?
C#とか最近の言語使ってるとよくこの心境になるよね

304 :デフォルトの名無しさん:2011/05/11(水) 19:18:12.40
C#を使うのはもしかして大袈裟なのではないか?

305 :デフォルトの名無しさん:2011/05/11(水) 19:24:07.09
しっくりこないんです

306 :デフォルトの名無しさん:2011/05/11(水) 19:25:18.54
かーもね

307 :デフォルトの名無しさん:2011/05/11(水) 19:26:23.63
ハイッ!

308 :291:2011/05/11(水) 20:22:46.55
ありがとう勉強になった

309 :デフォルトの名無しさん:2011/05/11(水) 23:21:41.81
Process で cmd を使ってあるソフトを動かしてるのですが、実行時にこのソフトが本来コマンドプロンプトに表示するメッセージが StandardOutput で受け取れないです
ちなみに、「Microsoft Windows [Version ***]」と「Copyright (c) 2009 Microsoft ***」の2行と、実行したコマンドは受け取れてます

受け取る方法は無いでしょうか?

310 :デフォルトの名無しさん:2011/05/11(水) 23:29:02.89
@IT:連載:..NETマルチスレッド・プログラミング入門
ttp://www.atmarkit.co.jp/fdotnet/mthread/index/index.html

他に、これも読んどけってのあったら教えて

311 :デフォルトの名無しさん:2011/05/11(水) 23:33:35.76
DateTime型同士の+の演算で「+」の演算はできないと
怒られてしまいました。
(マイナスならできるのに)
なにかいい手立てはありますか?

ts = DateTime.Now - ATime + BTime

312 :デフォルトの名無しさん:2011/05/11(水) 23:35:01.33
DateTime
に加算する機能なかったっけ?

313 :デフォルトの名無しさん:2011/05/11(水) 23:36:36.35
時刻+時刻は無意味
時刻+時間は時刻
で、.NETで時間を表す型といえば?

314 :デフォルトの名無しさん:2011/05/11(水) 23:37:39.72
↑キモイな

315 :デフォルトの名無しさん:2011/05/11(水) 23:41:19.12
timespanがどーたらこーたらだったような。普通に加算のあるでしょ

316 :311:2011/05/12(木) 00:08:28.45
DateTime.Addition 演算子
http://msdn.microsoft.com/ja-jp/library/system.datetime.op_addition.aspx#Y200
これかな。。。。
情報が少ない・・・。

ありがとう。ちょっと頑張ってみます。

317 :デフォルトの名無しさん:2011/05/12(木) 00:16:13.14
>>310
古い、かな。
今はTaskなど新しいものが色々入っていて、基本的には新しいのを使うべきなので。
http://msdn.microsoft.com/ja-jp/library/dd460693.aspx
http://www.albahari.com/threading/
などを見るといいのではないかな。

318 :デフォルトの名無しさん:2011/05/12(木) 00:18:15.55
手元の本によるとdatetimeにadddaysとaddhoursメソッドがあるからそれだ

319 :デフォルトの名無しさん:2011/05/12(木) 00:19:10.49
いや普通にTimeSpanを+で足せるけど

320 :デフォルトの名無しさん:2011/05/12(木) 00:33:54.84
たしかに時刻同士の足し算って答えがわからんもんな

321 :デフォルトの名無しさん:2011/05/12(木) 00:38:47.32
いい加減スレ違い

322 :デフォルトの名無しさん:2011/05/12(木) 00:39:21.87
このド低能がっ!

323 :デフォルトの名無しさん:2011/05/12(木) 00:42:02.11
俺は高脳だけどな

324 :デフォルトの名無しさん:2011/05/12(木) 00:45:03.41
じゃ俺金玉

325 :デフォルトの名無しさん:2011/05/12(木) 01:01:01.84
>>317サンクス勉強になる。しかし理解が追いつかない。
パラメータや戻り値が利用可能なデリゲートを使ったBeginInvokeなマルチスレッドと比較して
System.Threading.Tasks.Task<TResult> の型を使用して Result プロパティから値を返す方法のデメリット
ってなにかありますか?。

326 :デフォルトの名無しさん:2011/05/12(木) 02:29:23.93
foreach中に他のスレッドなどでそのコレクションを追加・削除したらどうなるのっと

327 :デフォルトの名無しさん:2011/05/12(木) 03:04:29.72
>>325
デメリットないよ。
しいて言うなら、40バイトくらいだったかな、余計にメモリ食う。

.NET 4以降は全部Task使えばいいと思う。

328 :デフォルトの名無しさん:2011/05/12(木) 03:13:11.34
>>326
InvalidOperationException

329 :デフォルトの名無しさん:2011/05/12(木) 08:05:55.83
>>326
爆発する

330 :デフォルトの名無しさん:2011/05/12(木) 08:26:15.90
オブジェクトが融合する

331 :デフォルトの名無しさん:2011/05/12(木) 13:42:38.55
LINQなら絶対にバクが出ない

332 :デフォルトの名無しさん:2011/05/12(木) 14:18:51.31
バク

333 :デフォルトの名無しさん:2011/05/12(木) 14:23:41.41
マレーバク

334 :デフォルトの名無しさん:2011/05/12(木) 20:49:51.79
夢おいしいです

335 :デフォルトの名無しさん:2011/05/12(木) 21:03:51.70
LINQ to Dream はじまった

336 :デフォルトの名無しさん:2011/05/12(木) 21:10:14.22
台湾MSがやりそうな企画だな

337 :デフォルトの名無しさん:2011/05/12(木) 21:33:18.54
>>335
使い方はこうですか

if (this.myDream.All(dream => dream.IsDead)) {
 this.die();
}

338 :デフォルトの名無しさん:2011/05/13(金) 13:24:55.54
http://dobon.net/vb/dotnet/file/xmlserializer.html
ここの記事のままシリアライズで保存するとデータが丸見えなので多少いじって暗号っぽくしたいと思います
目的地をファイルではなくてstringの変数にできますか?
それとも一度保存して再度ひらいて取り込むのが簡単かな

339 :デフォルトの名無しさん:2011/05/13(金) 13:42:01.94
BinaryFormatter使え

340 :デフォルトの名無しさん:2011/05/13(金) 13:54:36.00
バイナリも考えたんだけどエディタで英数字は表示されちゃうんだよね
テキストをchar++で一文字ずらしたりした方が簡単かなって思ったんだ

341 :デフォルトの名無しさん:2011/05/13(金) 13:59:01.86
シリアライズで出力するテキストをメモリストリームにいったん書き出して
その上で暗号化してファイル出力

読み込むときはその逆でいいんじゃね?

まあ.netだとあっさりばれそうだけどw

342 :デフォルトの名無しさん:2011/05/13(金) 14:02:09.66
deflatestreamに書き込めば冗長な部分もある程度排されて最高

343 :デフォルトの名無しさん:2011/05/13(金) 14:07:55.42
xs.Serialize(new DeflateStream(s, CompressionMode.Compress), obj);
xs.Deserialize(new DeflateStream(s, CompressionMode.Decompress));

こうか。

344 :338:2011/05/13(金) 14:14:28.02
ありがとうみんな。ちょっと試してみる

345 :デフォルトの名無しさん:2011/05/14(土) 00:41:25.12
BindingListにSort()がないのは、バインドしてる側、例えばdataGridViewとかで、
Sortしろ、ってことなんですかね?
DataGridViewってよくわからん。

346 :デフォルトの名無しさん:2011/05/14(土) 00:55:41.08
既定ではサポートしないからできるようにしたいならApplySortCoreその他実装しろってこと

347 :デフォルトの名無しさん:2011/05/14(土) 07:20:15.21
IdSharpを使ってMP3のID3タグを取得するプログラムを作ってるのですが、日本語は文字化けしまいます。
DLLファイルで海外の人が作ったものなので日本語に対応していないとは思うのですが、
何かいい方法はありますか?
http://sourceforge.jp/projects/sfnet_idsharp/

.NET系なのでここで質問させてもらったのですが、
このスレッドで聞いたほうがいいよ、って言うのもあったらお願いします。

348 :デフォルトの名無しさん:2011/05/14(土) 07:42:54.00
何のためのオープンソースだ
自分で読み込み時にエンコーディング指定できるように直せ

349 :デフォルトの名無しさん:2011/05/14(土) 07:47:14.91
> 海外の人が作ったものなので日本語に対応していないとは思うのですが
違う。仕様に忠実に作ってるだけ。

350 :デフォルトの名無しさん:2011/05/14(土) 08:36:22.06
タグ(Frame)のTextEncodingが0のとき、
仕様ではISO8859-1で入っていることになってるんだけど、
日本ではShift-JISで入れたりしてるんだよね
それをISO8859-1で読むから文字化けする

IdSharpの使い方調べてないけど、TextEncodingが0だったら
そのタグの生データをShift-JISとして扱えばいいんじゃない?

351 :デフォルトの名無しさん:2011/05/14(土) 08:50:16.71
TagLib-Sharp
http://www.google.co.jp/search?q=taglib-sharp&ie=utf-8&oe=utf-8&aq=t&hl=ja&client=firefox-a&rlz=1R1GGLL_ja___JP405
Monoに取り込まれているから安定している。何も指定しなくても色々なコーデックに対応しています

WindowsAPI Code Pack
http://archive.msdn.microsoft.com/WindowsAPICodePack
MSご謹製のライブラリ、上ほどは対応コーデックは少ないけど、逆に音楽動画以外にも対応

352 :デフォルトの名無しさん:2011/05/14(土) 09:13:51.40
>>348
ダウンロードした中にソースがなかったもんで…。利用側のソースはあったのですが…

353 :デフォルトの名無しさん:2011/05/14(土) 09:16:10.38
>>350
>>351
ありがとうございます。今、外なので帰ったら確認してみます!

354 :デフォルトの名無しさん:2011/05/14(土) 20:23:14.82
C#(.NET?)のバージョンって、今は4が最新ですか?
言語のバージョンがいまいち何を指してるかわかりませんが。

355 :デフォルトの名無しさん:2011/05/14(土) 20:42:52.00
どっとねっとふれーむわーく4たいおう

356 :デフォルトの名無しさん:2011/05/14(土) 21:29:51.93
>>355
ありがとうございます

357 :デフォルトの名無しさん:2011/05/14(土) 21:32:04.46
ttp://ufcpp.net/study/csharp/index.html
バージョンごとに追加された機能についてはここがまとまってるな

358 :デフォルトの名無しさん:2011/05/14(土) 23:02:54.37
>>310 SynchronizationContextこそすべて
ttp://msdn.microsoft.com/ja-jp/magazine/gg598924.aspx

359 :デフォルトの名無しさん:2011/05/15(日) 00:22:15.26
VisualStuidoのデータセットデザイナ画面で、あるテーブルアダプタに検索クエリを追加したのですが、
WHERE句が常に使われてしまいます。
名前が入力されている場合だけ条件に名前を加えて、
性別が選択されている場合だけ性別を条件に加える
と言うようなことをしたいのですが、どのように設定すればよいでしょうか?

TableAdapter.Adapter.SelectCommandをプログラムで変更しようとしたのですが、
一度TableAdapter.FillやGetDataを実行しないとSelectCommandがnullのようでした
また、OleDbCommandを自分で生成してTableAdapter.Adapter.SelectCommandに設定しても、適用されませんでした

今は、一度GetDataを実行してSelectCommandを生成し、そのSelectCommandをプログラムで変更する
と言う回りくどいやり方をしています
うまいやり方があれば教えてくださいm(__)m

360 :デフォルトの名無しさん:2011/05/15(日) 07:35:09.94
性別を何で管理してるか知らないけど、名前は

NAME = 'name' OR NAME = ''

で事足りるな

361 :デフォルトの名無しさん:2011/05/15(日) 10:49:13.06
Tasks.TaskでBackgroundWorkerと同等のものを作ろうとすると
ProgressChangedは進行状況を通知するたびに
TaskSchedulerを使用して別Taskを作成して、そのなかで通知って形になるのでしょうか?

362 :デフォルトの名無しさん:2011/05/15(日) 11:17:29.43
Control.BeginInvokeを使って、投げっぱなしにすればいいんじゃない

363 :デフォルトの名無しさん:2011/05/15(日) 12:30:20.96
XML を取り扱ってるんだけど、たとえば以下の内容の XML があるとする

<category>
<item property='Setting1' value='true'>
<item property='Setting2' value='false'>
<item property='Setting3' value='false'>
<item property='Setting4' value='true'>
<item property='Setting5' value='false'>
</category>

これを読み込んで checkedListBox に適用してるんだけど、
読み込んだ checkedListBox 上でチェック状態を操作したときに XML 側にもリアルタイムに反映させる良い方法無いですか?

364 :デフォルトの名無しさん:2011/05/15(日) 12:58:06.08
WinFormのCheckedListBoxならバインディングもできないから
普通にCheckedChangedで

XMLってメモリ上のDOMだよな? ファイルを都度書き換えるとか言わないよな?

365 :デフォルトの名無しさん:2011/05/15(日) 17:25:05.46
>>359
TableAdapterは基本的にコードでクエリを変更するようなものじゃない
あらかじめクエリを作って追加しとけ

>>360
データベースにはNULLって概念があってな
正しくNULLをとりあつかうDBだとそれじゃまずいんだが

366 :デフォルトの名無しさん:2011/05/15(日) 19:09:02.24
>>360
性別は数値ですが、ちょっと良く分からなかったです
その条件だと意図しないレコードも抽出されてしまう気がしますが、理解不足かもしれません

>>365
あらかじめクエリを作っておく場合、名前と性別だけの簡単な検索フォームでも4種類のクエリを作らないといけないのでしょうか

このような検索フォームを作る時、みなさんどんなやり方で作ってますか?
デザイナが作成する型付きデータセットはあまり使われないのでしょうか

367 :デフォルトの名無しさん:2011/05/15(日) 19:11:27.08
あ、あと検索フォームに名前が入力されていない場合、
名前が登録されていないレコードを抽出するのではなく、名前の条件は指定せずに検索します

名前入力あり: select * from member where name = PARAMETER
名前入力なし: select * from member

368 :デフォルトの名無しさん:2011/05/15(日) 19:19:36.88
where (@name is null or name = @name)
and (@sex is null or SEX = @sex)

常套手段

369 :デフォルトの名無しさん:2011/05/15(日) 19:33:07.92
>>366
一つのクエリでやるなら>>368でOKなんだが
それをやりたくないって話じゃなかったのか

俺なら動的SQL作るようなのは直接OleDbDataAdapterかOleDbCommandで実行する
型付きデータセットは使うかもしれんがTableAdapterは使わん

370 :デフォルトの名無しさん:2011/05/15(日) 21:15:08.95
DBいじらん人には3値論理とか知らないもんなのかね

371 :デフォルトの名無しさん:2011/05/15(日) 22:35:50.86
Textbox のキーイベントで、
Control + Backspace が押されたときに、
テキストボックスを全消去するメソッドを作成しました。
それ自体はうまく動いているのですが、
「Control + backspace」という組み合わせを押した際に、
テキストボックス上に変な文字が一文字追加されます。
webブラウザに貼りつけてみたところ、文字化けしていました。

連続して Control + backspace を押しても、
一つしか表示されないため、おそらく全消去後に追加された文字だと思います。
どのようにして、これの表示をなくすことができますでしょうか。


372 :デフォルトの名無しさん:2011/05/15(日) 22:45:01.99
キーイベントって三つもあるんだが
KeyDownでSuppressKeyPress使えば文字入力をキャンセルできるよ

373 :デフォルトの名無しさん:2011/05/15(日) 22:46:45.56
ウォッチ式で「TextBox.Text[0]」等を見ればその文字の文字コードが分かるはず
あとはTextChangedイベントとかハンドルしてデバッグすれば?

374 :デフォルトの名無しさん:2011/05/15(日) 22:54:55.14
>>372,373
ああ、すいません。KeyDown です。

なるほど。
とりあえず、それらを試してみます。非常に助かりました。
ありがとうございます。

375 :デフォルトの名無しさん:2011/05/15(日) 23:26:07.32
>>368-369
ありがとうございます
ようやく理解しました

376 :デフォルトの名無しさん:2011/05/15(日) 23:27:43.01
>>370
たしか理論値で e = 2.71828.... あたりがベストなんだとか。

377 :デフォルトの名無しさん:2011/05/15(日) 23:41:13.08
>>361
時期バージョン(今はまだCTP)には IProgress<T> インターフェイスが入る。
↓みたいなの作って、イベント登録した上でTaskに渡しておく。

interface IProgress<T> { void Report(T value); }
class Progress<T> : IProgress<T>
{
public EventHandler<T> ProgressChanged;
protected virtual OnReport(T value){}
void IProgress<T>.Report(T value){}
}

378 :デフォルトの名無しさん:2011/05/15(日) 23:50:13.70
374です。解決しました。ありがとうございます。

あと、dllで利用している関数で、ファイルの先頭ポインタを受け取るものがあります。
仮に、
void cFunction(void* pointer);
とします。
これを、C#で
extern static void cFunction(IntPtr p);
として定義した場合、
C#のpに、ファイルのポインタを与えるにはどのようにすればよいでしょうか?

379 :デフォルトの名無しさん:2011/05/16(月) 00:00:41.77
それファイルのポインタじゃなくてファイルからメモリ上に読み込んだ領域のポインタじゃないのか?
Cでどうやって使うのか教えてくれ

380 :デフォルトの名無しさん:2011/05/16(月) 00:01:08.01
ファイルの先頭ポインタ? ハンドルじゃなくて? 実はFILE*だったりしない?
MemoryMappedViewStream.PositionPointer使うのが一番楽かね .NET 4以降だけど

381 :デフォルトの名無しさん:2011/05/16(月) 00:04:59.41
>>379,380
えーっと、Cのマニュアルには
void *p = file_load(" this is path ");
someFunction(...., p);
と書いてありますね。
関係ないとこは省略したりしましたが。

382 :デフォルトの名無しさん:2011/05/16(月) 00:07:31.01
ならそのfile_load関数とやらを呼び出した返値を渡せばいいじゃん

383 :デフォルトの名無しさん:2011/05/16(月) 00:08:21.69
標準ライブラリの関数じゃないからわからん
file_loadはどっから出てきた?

384 :デフォルトの名無しさん:2011/05/16(月) 00:10:54.85
>>382
その場合は、
そのfile_load関数をラップするC/C++の関数を作成し、それをdllなどとする。
それをC#で利用する。
という手順となりますか?
申し訳ないです。初歩的な質問で。

385 :デフォルトの名無しさん:2011/05/16(月) 00:12:25.12
file_load内でメモリ上に読んでしまって配列のポインタを返してるような気はするが、
file_loadのドキュメントを見ない限りはわからん
なんか変なライブラリ使ってるんだろ? それを教えなさい

386 :デフォルトの名無しさん:2011/05/16(月) 00:16:02.70
>>383
ああ、たしかに。こんな関数見たことないですね。
。。。
下に定義ありました。申し訳ないw
void * file_load(const char * file, int * psize) {
FILE *fp; char *data;
struct _stat st;
*psize = 0;
if( _stat(file, &st)!=0) return NULL;
if((data=(char *)malloc(st.st_size))==NULL){ fprintf(stderr,"can not alloc memory(file_load)¥n"); return NULL;
}
if((fp=fopen(file,"rb"))==NULL) { free(data);
perror(file); return NULL;
} if(fread(data, 1, st.st_size, fp)<(unsigned)st.st_size) {
fprintf(stderr,"can not read data (file_load)¥n"); free(data); fclose(fp); return NULL;
} fclose(fp); *psize = st.st_size; return data;
}
ベタ張りで申し訳ないです。
読み込んだ「データ」を返してますね。


387 :デフォルトの名無しさん:2011/05/16(月) 00:20:39.93
>>385
AquesTalk2というライブラリを使っています。

388 :デフォルトの名無しさん:2011/05/16(月) 00:22:01.30
>>386
そういうことならたぶんこれでいける
byte[] data = File.ReadAllBytes("this is path");
fixed (byte* p = &data) { cFunction((IntPtr)p); }
ただしcFunctionから戻った後も渡したポインタが使用される可能性がある場合は
GCHandleを割り当てる必要があるのでこれじゃダメ

389 :デフォルトの名無しさん:2011/05/16(月) 00:23:42.74
ようは、cのchar配列に値をいれて返しているみたいなんで、
C#で file read -> byte[] に格納
Intptr に先頭アドレスをいれる。(キャストだけでおk?)
それを、目的の関数にいれてやる

という流れでいけそうだなと、素人ながらに思いましたw

390 :デフォルトの名無しさん:2011/05/16(月) 00:26:44.48
>>388
なるほど。参考になります。
再利用は「それほど大きいファイル」じゃないので、必要ないかと思いますが、
せっかくですので、勉強がてら GCHandle というやつを追加してみます。

また分からなければ、明日の夜に来ます。
ありがとうございました。

391 :388:2011/05/16(月) 00:31:35.38
ちょっと間違えた。&はいらん。
AquesTalkのマニュアルを見てみたが、非同期再生を行う関数を使う場合はたぶん>>388ではダメ。
ファイルの大きさとかいう問題じゃなくて、GCによって移動されてポインタが無効になるのでぶっ壊れる。
勝手に移動されないようにするにはGCHandle.AllocでGCHandleType.PinnedなGCハンドルを割り当てる。

392 :デフォルトの名無しさん:2011/05/16(月) 00:38:12.92
>>391
了解です。
「ファイルの大きさが小さい」というのは、毎回ファイルを読み込んでも、
特に問題ないという意味ですw
うーん、Cについて勉強しなおしたほうがよさそうですねw

本当に助かりました。明日、仕事があるのでこのへんで失礼します。

393 :デフォルトの名無しさん:2011/05/16(月) 08:30:05.45
fixed (byte* p = data) {
//このブロック内でのみpは有効
非同期再生((IntPtr)p);
}
GCはメモリ上のオブジェクトを勝手に移動させることがある。
fixedブロックを抜けた時点で再生は続いているためpは再生が終わるまで
dataを指し続けなければいけないが、それは保障されないので、
GCによってdataの移動が行われた時点でまだ再生が続いていたら死亡。

394 :デフォルトの名無しさん:2011/05/16(月) 09:20:01.87
AUTO

395 :デフォルトの名無しさん:2011/05/16(月) 22:16:53.61
WindowsサービスをReleaseでビルドしてインストールしようとしたら、

「コマンドラインやデバッガからWindows サービスを開始できません。
 最初にinstallutil.exeを実行して Windowsサービスを新ストールし、
 ServerExplorer、Windows Services Administarative ツール、
 またはNETSTARTコマンドを使用してください。」

というWindowsサービス開始エラーが出ます。
Debugの時には起きなかったし、VisualStudio2008のWindowsサービステンプレートに
何も書き加えない状態ではReleaseでも正常にインストール出来るみたいなんですが、
インストーラの設定などに不備があると考えられるのでしょうか?

396 :デフォルトの名無しさん:2011/05/16(月) 22:45:11.76
>>395
まだ、win32api + C の世界なんじゃないかなと想像してみる。

397 :デフォルトの名無しさん:2011/05/16(月) 23:10:19.27
392です。昨日の問題が解決しました。
結局、unsafe は使いたくなかったので、

クラスフィールドとして、
private static byte[] b = null;
private static IntPtr ptr;
を用意し、

メソッド内にて、
public static byte[] method(){
if(b == null){
b = File.ReadAllBytes("path to file");
ptr = Marshal.AllocHGlobal(b.Length);
Marshal.Copy(b, 0, ptr, b.Length);
}
...
int size = 0;
IntPtr ptr2 = SomeMethod(..., ref size, ptr);
return getByteArray(ptr2, size);
}
のような形で使っています。
これなら開放されないと思っています。。。(たぶん。)

398 :デフォルトの名無しさん:2011/05/16(月) 23:55:02.02
DataGridViewについて質問です。
列の幅を変えるのに列の端をマウスでドラッグできますが、ドラッグがDataGridViewの端で止まってしまいます。
ListViewみたいにListViewの大きさを超えても、ぐいーっと伸ばして列幅を変更するやり方はありませんか。

399 :デフォルトの名無しさん:2011/05/17(火) 00:08:00.85
ListViewだってデフォではそんな動作しないんじゃない?
あれはダミーの列を一番右に入れてやるんじゃなかったかな。
DataGridViewだって同じやり方が有効では?いや知らんけど

400 :デフォルトの名無しさん:2011/05/17(火) 00:27:39.98
今UserControlを継承したコントロールを作成しています。


[DefaultValue("Text")]
[Browsable(true)]
public override string Text
{
set
{
_text = value;
Invalidate();
}
get { return _text; }
}

上記のように書いているのですが、コントロールを追加したときのTextがコントロール名になってしまいます。
初期値をDefaultValueで指定した値にするにはどうしたらいいでしょうか?

401 :デフォルトの名無しさん:2011/05/17(火) 00:33:38.27
メモ

DefaultValueAttribute は、属性の値でメンバーを自動的に初期化させることはありません。 コード内で初期値を設定する必要があります。

402 :デフォルトの名無しさん:2011/05/17(火) 00:35:57.48
DefaultValueはデザイナが値を設定するコードを生成するかどうか判断するためだけにある
実際の動作には全く関係ない

403 :デフォルトの名無しさん:2011/05/17(火) 00:42:31.40
>>348-351
返事が遅くなりました。
IDSharpの元ソースを見つけて修正することができました。
ご指摘どおり仕様でShift-JISはISO8859-1で読むことになっていたため
(Unicodeは判別して別の処理に振り分ける仕様になってました。)
生データでShift-JISかどうかの判定式を持って振り分けることにしました。
順調に表示されています。ありがとうございました。

404 :デフォルトの名無しさん:2011/05/17(火) 00:44:08.03
Dropboxの設定画面のようなタブUIを実装しようとすると、
TabControlのDrawModeプロパティをTabDrawMode.OwnerDrawFixedにして、
描画を実装すれば実現できるのでしょうか?

似たようなUIでサンプルコードなどがあれば教えてもらえると助かります。

405 :デフォルトの名無しさん:2011/05/17(火) 00:45:48.86
>>400
確か、
(1) コンストラクタか何かでプロパティをデフォ値で初期化
(2) デザインモード時のみ、プロパティのセッタが最初に呼び出された時、
valueが"ControlName*"だったら無視する。

ぐらいしか手が無かったような。
何かもっといい方法あったっけな

406 :デフォルトの名無しさん:2011/05/17(火) 02:40:57.24
あにょ〜

407 :デフォルトの名無しさん:2011/05/17(火) 06:36:52.97
WindowsFormのTextBoxで、入力中で未確定の日本語をKeyDownなどのイベントで取得する方法はありますでしょうか
KeyPressイベントは日本語入力中は発生しないようで、
KeyDownイベントでe.KeyCode、e.KeyData、e.KeyValueを調べてみましたが、
入力された文字列を取得することはできないようでした

408 :デフォルトの名無しさん:2011/05/17(火) 06:39:23.73
>>407
日本語入力中はtextbox上でやってるように見えるけど
あれはIMEの制御下

textboxだとIME関連のメソッドとかなかったっけ?

409 :デフォルトの名無しさん:2011/05/17(火) 07:19:17.21
>>408
ありがとうございます
大変そうな予感がするのでやらないことにします

410 :デフォルトの名無しさん:2011/05/17(火) 08:39:33.97
コンボボックスが2つあるユーザコントロールをフォームに配置して、
フォームのデザイナからコンボボックスのDataSourceなどのプロパティを設定したい場合、
ユーザコントロールにそれ用のプロパティを設定しないといけないのでしょうか?

411 :デフォルトの名無しさん:2011/05/17(火) 09:17:35.93
書いてる途中でどっちの問題なのかと思い当たってしまった

・コンボボックスのデータソースプロパティが見えない
・スマートタグを出したい

上ならプロパティ付け加えて見えるようにするしかないすよ

412 :デフォルトの名無しさん:2011/05/17(火) 09:36:55.11
>>411
ありがとうございます、上です(スマートタグって何でしょう)
プロパティ自分で追加したらフォームのデザイナから設定できるようになりました

また、ユーザコントロールのSizeを設定したらコンボボックスのSizeも同じ値にしたいので、
Sizeプロパティを次のように書いたらVisualStudioが落ちちゃいました
名前が色々被ってるので怪しいとは思ったんですが、Sizeプロパティを変更したい場合はどのように記述すればよいでしょうか

public System.Drawing.Size Size
{
get
{
return this.Size;
}
set
{
this.Size = value;
this.comboBox1.Size = value;
}
}

413 :デフォルトの名無しさん:2011/05/17(火) 10:16:14.78
Dock=Fillでええんちゃうんかと

414 :デフォルトの名無しさん:2011/05/17(火) 10:19:52.06
>>413
Dockが使えない状況なんです。

415 :412:2011/05/17(火) 10:30:03.51
>>413
>>414>>412ではないですが、Dockだとダメなんです
目的はFixedSingleの枠線のあるComboBoxで(他にもありますが)、
UserControlのBorderStyleをFixedSingleにして、
ComboBoxのLocationを-1, -1、SizeをUserControlと同じにすると見た目がそれっぽくなります
DockをFillにしてしまうとLocationがずれてしまうので、ちゃんとSizeを設定できるやり方はないかなと

UserControlのResizeやSizeChangedイベントで設定できますが、出来ればSizeプロパティのoverrideの仕方が分かればありがたいです

416 :412 ◆Sf4YYPJJPE :2011/05/17(火) 10:38:04.20
トリ付けました。>>415は私ではないです。
Dockだと望んだ動作をしない上、VisualStudioがエラーを出します。

417 :デフォルトの名無しさん:2011/05/17(火) 11:07:25.50
2人が似たようなことを聞いてるのか?w

418 :デフォルトの名無しさん:2011/05/17(火) 12:13:58.80
virtualでないプロパティがoverrideできたら欠陥じゃねえか

419 :デフォルトの名無しさん:2011/05/17(火) 12:55:16.40
OnSizeChangedをオーバーライドする

420 :デフォルトの名無しさん:2011/05/17(火) 12:58:59.03
コンボボックスの高さはフォントサイズで決まって変更不可だったと思った
幅だけは変えられたが

421 :412:2011/05/17(火) 13:31:27.07
>>418 そうですか?
>>419 それでも出来ますが、今はSizeのsetをどうやったら変更できるか知りたいです
>>420 幅さえ変えられれば無問題です

422 :デフォルトの名無しさん:2011/05/17(火) 14:14:36.09
>>421
それならSizeじゃなくてWidth変更だな

423 :412:2011/05/18(水) 00:23:11.83
解決しました。
みなさんありがとうございました。

424 :デフォルトの名無しさん:2011/05/18(水) 00:28:55.27
C++ みたいに const int a = hoge.aho();
とかローカル変数に対して不偏であることを設定することはできないのですか?


425 :デフォルトの名無しさん:2011/05/18(水) 00:41:03.56
できますよ。

426 :デフォルトの名無しさん:2011/05/18(水) 01:01:20.38
>>425
どんな構文ですか?

427 :デフォルトの名無しさん:2011/05/18(水) 01:08:09.26
>>426
const int a = hoge.aho();

428 :デフォルトの名無しさん:2011/05/18(水) 01:10:46.01
constはコンパイル時に解決されるんじゃなかったっけ。
readonlyはだめ?

429 :デフォルトの名無しさん:2011/05/18(水) 01:11:46.66
出来ないよ。

>>424
参照型持ってる言語で、ローカル変数の不変性保証って難しいのよ。
let x = new Class();
x = anotherInstance; // これを不可にするのは簡単
x.Property = 1; // これを不可にしたければ、Classの方を不変に作らないと無理。

430 :デフォルトの名無しさん:2011/05/18(水) 01:13:00.04
>>428
そう、const付けれるのはコンパイル時に解決できる数値と文字列に限られる。
readonlyはローカル変数には付けれない。

431 :424:2011/05/18(水) 01:19:14.65
なるほど、どうもでした

432 :424:2011/05/18(水) 01:22:50.01
ちょっと馬鹿なふりして聞けばお前らが答えてくれるので助かります

433 :デフォルトの名無しさん:2011/05/18(水) 01:47:25.90
ここってID出せるんだっけ?

434 :デフォルトの名無しさん:2011/05/18(水) 01:50:40.29
そういうわざとらしいレスはいらないです

435 :デフォルトの名無しさん:2011/05/18(水) 02:06:35.31
クラスの命名に無駄に悩んでしまう。
どーせ自分しか使わないからどんなでもいいんだけど。
他人の書いたコード読んで命名センスを磨くのは大事だと思った。寝る。

436 :デフォルトの名無しさん:2011/05/18(水) 10:35:49.51
>>435

クラス名・変数名に迷ったら書き込むスレ。Part19
http://hibari.2ch.net/test/read.cgi/tech/1293201229/


437 :デフォルトの名無しさん:2011/05/18(水) 13:51:01.01
質問があります.
DataGridViewTextBoxCellを継承してテキストとアイコンを描画できるセルを作りたいと考えています.
現地点ではDataGridViewTextBoxCellのPaintをオーバライドして,テキストとアイコンを表示できるようにしました.
ところでDataGridViewはヘッダの境界をダブルクリックすると自動的に最適なカラム幅に変更する機能があります.
今の自分のプログラムでへッダの境界をダブルクリックすると,テキストのみ表示した場合の最適なカラム幅に調整されます.
最適なカラム幅を自分で設定したいのですが,どのメソッドをオーバライドすればよいのでしょうか?

438 :デフォルトの名無しさん:2011/05/18(水) 14:17:51.44
直観で答えるとGetPreferredSize

439 : ◆lSltfXLZHI :2011/05/18(水) 15:41:15.90
DataGridViewのセルの入力内容を自動でチェックさせないようにすることは可能でしょうか?

データソースに型付きデータセットのテーブルを設定しているのですが、
デフォルトの状態ではセルに入力をして次のセルに移動しようとすると自動で入力チェックが実行され、
エラーだとセル移動できず、入力を訂正しないとフォームを閉じることすら出来ないようでした。
DataGridView.DataErrorイベントをハンドルして、DataGridViewDataErrorEventArgsのCancelをfalseにすると、
フォーカスは移動できるけど入力内容は元に戻る、と言う感じで、また一から入力し直す必要があり煩雑です。

自動でチェックを行わせないようにして、登録ボタンクリック時に一括でチェックをする
もしくは
自動でチェックし、エラーならセル移動はできないが、フォームは閉じれる
という方法がお分かりであれば教えて頂きたいと思います。
よろしくお願いします。

440 :デフォルトの名無しさん:2011/05/18(水) 16:21:46.96
想像するにDataErrorイベント捕捉してスルーしちゃえばいいんじゃないかな?


441 : ◆lSltfXLZHI :2011/05/18(水) 16:38:16.55
>>440
DataErrorイベントハンドラを追加して、そのメソッドに何も書かなかった場合は、
やはりセル移動できず、フォームを閉じることもできない状態でした

DataSet.EnforceConstraintsをfalseにするとか、DataTable.Row.BeginEdit()を呼び出すと入力チェックを抑制できる
という記事を見つけて試してみましたが、やはりダメでした

442 :デフォルトの名無しさん:2011/05/18(水) 22:24:15.98
>438
読み取り専用で,書き込めないです.

443 :デフォルトの名無しさん:2011/05/18(水) 22:44:00.01
メソッドなんだから読み取り専用もクソもない

444 :デフォルトの名無しさん:2011/05/19(木) 08:25:54.01
>443
プロパティです.
オーバライドもできません.

445 :デフォルトの名無しさん:2011/05/19(木) 09:35:00.95
こういうことじゃないの?
    class DataGridViewUnkoCell : DataGridViewTextBoxCell
    {
        protected override Size GetPreferredSize( Graphics graphics, DataGridViewCellStyle cellStyle, int rowIndex, Size constraintSize )
        {
            return base.GetPreferredSize( graphics, cellStyle, rowIndex, constraintSize );
        }
    }


446 :デフォルトの名無しさん:2011/05/19(木) 09:36:59.34
拡張しようとしたらそこは触れないようになってるとかよくあるよね…

447 :デフォルトの名無しさん:2011/05/19(木) 09:55:28.50
>445
DataGridViewTextBoxColumnの方なら,PrefferedSizeの設定ができました.
解決しました.ありがとうございました.

448 :デフォルトの名無しさん:2011/05/19(木) 11:37:33.73
ArrayList aryObj = new ArrayList();
Obj obj = new Obj();
aryObj.Add(obj);
ArraylistにObj型の変数を追加した後、
aryObj.Clear();
をしたらobjの中のデータもクリアされますか?

449 :デフォルトの名無しさん:2011/05/19(木) 11:41:23.94
aryObjはobjに対する参照を持ってるだけなのでobjの中身には関与しない。

450 :デフォルトの名無しさん:2011/05/19(木) 12:02:27.88
ってことは、objの中の片付けをしないまま、Arraylistから削除したらどこからも参照できなくなるんですか?


451 :デフォルトの名無しさん:2011/05/19(木) 12:08:53.75
繰り返すけどaryObjはobjの中身には関与しない。
他の変数やコレクションにも保持されてたら、たとえaryObjをClearしても、そこからアクセスできる。
どこからも参照されていないオブジェクトはいずれガーベジコレクションによって消去される。
そのオブジェクトの中身は関係ない。外側の問題。

452 :448:2011/05/19(木) 12:28:44.50
>>451
どこからもリンクされなくなったらどうなるか悩んでましたが、ようやく分かりました。
ありがとうございました。


453 :デフォルトの名無しさん:2011/05/19(木) 16:25:13.75
データベースエクスプローラでテーブル作る
DataGridViewでレコード追加
this.テーブル名TableAdapter.Update(this.dataSet1.テーブル名);
でデータベース更新
プログラム終了
プログラム再実行
DataGridViewにレコードは残っている(期待した動作)
プログラム終了
ここで「データベースエクスプローラで最新の状態に更新とかで接続する」
プログラム再実行
DataGridViewにレコードが1つも表示されない(なんで?)
データベースのレコードが消えてしまう
データベースエクスプローラでテーブルの構造はいじってないのに
接続しただけでデータベースが1から作り直されてしまうのでしょうか?

454 :デフォルトの名無しさん:2011/05/19(木) 21:21:00.25
凄く初心者っぽいことを聞きますが、別のネームスペースにあるクラスのメソッドから、フォーム内の、たとえば TextBox1.text の値を書き換えるにはどうすれば良いのでしょう?

455 :デフォルトの名無しさん:2011/05/19(木) 21:33:29.35
このFormのTextBox1のTextを書き換えてくださいと伝える

456 :デフォルトの名無しさん:2011/05/19(木) 21:46:26.11
>>455
無事に書き換えることが出来ました
ありがとうございました

457 :デフォルトの名無しさん:2011/05/19(木) 22:07:28.25
うそぉ?

458 :デフォルトの名無しさん:2011/05/19(木) 22:18:17.45
>>455
さんのアドバイス通りに、以下のコードを書き加えました

private void MainForm_Load(object sender, EventArgs e)
{
 form1.Form1Instance = this;
}

private static Form1 _form1Instance;

public static Form1 form1Instance
{
 set { _form1Instance = value; }
}

public string TextBox1Text
{
 set { TextBox1.Text = value; }
}

後は、別のクラスから

フォームのネームスペース.form1.Form1Instance.TextBox1Text = "コメント表示";

とすれば書き込みできました
まだ始めたばかりの僕でも >>455 さんの的確なアドバイスで簡単に実現できました

ありがとうございました

459 :デフォルトの名無しさん:2011/05/19(木) 22:35:32.34
糞コード誕生おめでとうございます

460 :デフォルトの名無しさん:2011/05/19(木) 22:38:24.08
何が悔しかったの?

461 :デフォルトの名無しさん:2011/05/19(木) 22:41:52.40
どうみても>>458は手練れのVB使いだろ


462 :デフォルトの名無しさん:2011/05/19(木) 22:49:30.80
staticっすか

463 :デフォルトの名無しさん:2011/05/20(金) 00:40:42.77
「もう、どうにでもなれ」の心境でスタティックなイベント実装したことがあるのは内緒だ

464 :デフォルトの名無しさん:2011/05/20(金) 00:49:23.11
外から見て自然に見えれば内側ぐちゃぐちゃでももう知らん!

465 :デフォルトの名無しさん:2011/05/20(金) 00:57:59.76
staticなイベントとかstaticなフォームに外からイベントハンドラ突っ込むとかって
メモリリークする最低のパターン

466 :デフォルトの名無しさん:2011/05/20(金) 00:59:28.87
ほんと?

467 :デフォルトの名無しさん:2011/05/20(金) 01:08:44.93
イベントの紐付けの解除漏れの問題はstaticとか何も関係ないなw
何が言いたいのか全然わからない

468 :デフォルトの名無しさん:2011/05/20(金) 01:12:46.30
ほね」。

469 :デフォルトの名無しさん:2011/05/20(金) 01:19:20.92
同じことアホみたいに何度もかいてりゃ嬉しくなれるんだから安いよな。

ほね」。

だって。本当に馬鹿だろお前。

470 :デフォルトの名無しさん:2011/05/20(金) 02:15:56.92
>>469
ほね」。

471 :デフォルトの名無しさん:2011/05/20(金) 03:56:43.51
相手しなけりゃいいのに

472 :デフォルトの名無しさん:2011/05/20(金) 15:25:50.38
Releseのexeファイルを、開発環境とは違う環境で実行したところ、エラーが発生しました。
StackTraceに出力されたソースファイルのパスが開発環境のパスだったのですが、
このパスをディレクトリ名は出力せずファイル名だけにするとか、ソリューションファイルからの相対ファイルに変える
といったことが可能でしたら、やり方を教えて頂けないでしょうか

473 :デフォルトの名無しさん:2011/05/20(金) 16:00:15.60
どんなエラーかわからんが、とりあえず必要って表示されたファイルを全部exeと同じところに入れとけ

474 :デフォルトの名無しさん:2011/05/20(金) 16:23:50.44
すみません、説明の仕方が悪かったようです。
StackTraceを出力すると、下記のような文言が出ます。
(はしょってます)

場所 MenuForm.btnTorikomi_Click(Object sender, EventArgs e)
場所 C:\Documents and Settings\ユーザ\My Documents\Visual Studio 2010\Projects\Test\MenuForm.cs:行 368

このディレクトリが出力されないようにする方法はないかという質問でした。

475 :デフォルトの名無しさん:2011/05/20(金) 16:28:19.44
MenuForm.cs:行 368 になんて書いてあるかが問題だ。
取り込みって書いてあるからローディングしてるんだろうけど、そこの取り込みパスがおかしいんじゃないの?

476 :デフォルトの名無しさん:2011/05/20(金) 16:32:19.62
っていうか、そのTorikomiはどういう意味なんだ?

477 :デフォルトの名無しさん:2011/05/20(金) 16:49:32.16
デバッグ情報をnoneにしろ
とかそういうことじゃなくて?

478 :デフォルトの名無しさん:2011/05/20(金) 16:51:17.80
いえ、取込処理のファイルのパスという意味ではなく、
StackTraceに下記が出力されないようにしたいのです。

C:\Documents and Settings\ユーザ\My Documents\Visual Studio 2010\Projects\Test\

つまり、納品物のログファイルに、開発環境のパス(特にこの場合はユーザ名)が出力されないようにしたい、ということです。

479 :デフォルトの名無しさん:2011/05/20(金) 16:54:25.72
・プロジェクトを作る場所を変える
・エラーが出そうなところをtry catchする


480 :デフォルトの名無しさん:2011/05/20(金) 16:57:16.99
>>477が正解
他の回答者は低能の役立たず


481 :デフォルトの名無しさん:2011/05/20(金) 17:00:33.38
>>477
ありがとうございます、試してみます。

>>479
catchした例外のStackTraceをログファイルに出力していますので。

482 :デフォルトの名無しさん:2011/05/20(金) 17:04:20.73
noneにしたら行とか取れないけどいいのかね
ファイル名や行はでてほしいのじゃろ

483 :デフォルトの名無しさん:2011/05/20(金) 17:16:16.98
そうですね。。エラー箇所は分かるようにしたいです。
となるとソリューションのディレクトリを変更してからリビルドでしょうか。

484 :デフォルトの名無しさん:2011/05/20(金) 19:17:06.97
HumanクラスにgetMoneyという関数があって,
人によってお金の稼ぎ方が違うので,
Humanをnewするときにその人のgetMoneyを指定したいのですが
関数を引数に取るコンストラクタはどう書けばいいでしょうか。

引数として渡したい関数は
getMoney1
getMoney2
getMoney3
・・・
のように数パターンの関数を別に用意してあります。

485 :デフォルトの名無しさん:2011/05/20(金) 19:20:30.31
>>484
抽象メソッドで書き換えとか?
http://ufcpp.net/study/csharp/oo_abstract.html

486 :デフォルトの名無しさん:2011/05/20(金) 19:27:51.64
どうしても関数渡したいのならFunc<TResult...辺りを引数に

487 :デフォルトの名無しさん:2011/05/20(金) 19:45:12.59
>>484
デリゲートで頑張ってみるとか。。。

488 :484:2011/05/20(金) 19:50:17.48
ああなるほど,こういうときにデリゲート使うんですね。
やっとデリゲートの使い方を理解できました。
ありがとうございました。

489 :デフォルトの名無しさん:2011/05/20(金) 21:08:43.59
class Ore : Human
{
    protected override int getMoney()
    {
        return 0;
    }
}

490 :デフォルトの名無しさん:2011/05/20(金) 21:16:15.90
勝手にHuman継承すんな厚かましい

491 :デフォルトの名無しさん:2011/05/20(金) 21:21:38.16
public void Jinsei()

492 :デフォルトの名無しさん:2011/05/20(金) 21:25:12.93
private class Ore{}

493 :デフォルトの名無しさん:2011/05/20(金) 21:29:43.23
private sealed class Ore{ private Ore(){} }

494 :デフォルトの名無しさん:2011/05/20(金) 21:33:27.16
terminate thread

495 :デフォルトの名無しさん:2011/05/21(土) 00:08:09.50
プリンタドライバの設定って通常どこで保持してるのかえ
プログラムからインク節約の設定とかしたい

496 :デフォルトの名無しさん:2011/05/21(土) 01:00:51.79
>>495
普通はレジストリじゃね。機種毎にバラバラだと思うが

497 :デフォルトの名無しさん:2011/05/21(土) 12:29:01.62
static children

498 :デフォルトの名無しさん:2011/05/21(土) 22:40:25.21
400fpsとかの高速動画(AVI形式)を扱えるライブラリって何かありますでしょうか?
OpenCVSharpを使用してみたのですが30fps程度までしか対応していないらしく、それ以上の動画を扱うことが出来ませんでした。
やりたいことは、AVIからBitmapを抽出するのと、Bitmapを連結させてAVI動画を作成することです。

AVI形式を自力でBitmapに変換すれば良いのでしょうが、AVI形式は扱い辛いので、何か良いライブラリがありましたらよろしくお願いします。
http://msdn.microsoft.com/ja-jp/library/Cc352264

499 :デフォルトの名無しさん:2011/05/21(土) 22:56:50.79
400fpsてw
そんなの追従できる表示デバイスがこの世に存在するのかw

500 :デフォルトの名無しさん:2011/05/21(土) 23:49:35.07
240fpsで録画できるビデオカメラなら聞いたことがあるな
主な用途はおそらくスロー再生用

DirectShow使ってみるとか

501 :デフォルトの名無しさん:2011/05/22(日) 00:26:03.34
1フレームごとに取れなかったっけ?
動画を扱うっていう言い回しが何をやりたいかわからないが、
フレームの抽出なら、400fpsだろうが30fpsだろうが関係ない気がする。

502 :デフォルトの名無しさん:2011/05/22(日) 01:40:18.67
400fpsとかって専用ボードでしょ?SDK付いてないの?

503 :デフォルトの名無しさん:2011/05/22(日) 02:26:03.85
using句で指したオブジェクトをブロック内で他のオブジェクトに入れるのってまずい?

using ( obj )
{
hoge.fuga = obj;
}

こんなかんじ。hogeのfugaプロパティは後に使われる。
Dispose()が呼び出されちゃったオブジェクトを外部で使おうとしてもうまくいかなんじゃって思ってたけど、
動かしてみたらうまく動いてるみたい…。

504 :デフォルトの名無しさん:2011/05/22(日) 02:52:53.47
あー、MSDNにusingのスコープ外のインスタンスは指定しないほうが良いって書いてあったわ。
このケースでusing使うのはやめとく。

505 :498:2011/05/22(日) 03:49:03.39
すいません、寝てました。

>>499
追従するわけでは無いですね。
一度バッファに取り込んで、それから保存してますし。
XPだと3G積んでて画素落としても数秒でいっぱいになりますがw

>>500
サポート終わったけど、ManagedDirectShowですかねー。
今ならSlimDXとかのほうが良いのかな?
ちょっといじってみます。

>>501
はい、1フレームずつ取りたいんです。
OpenCVの場合、フレームレートが30なら30(正確には29.97)等出るのですが、
180fpsや300fpsになるとなぜか0.8333とかになってしまい、おかしくなってしまいました。

>>502
動画を作成するSDKはついているのですが、それを加工するSDKが無くって・・・。

506 :デフォルトの名無しさん:2011/05/22(日) 04:54:11.13
>>503
http://ideone.com/eij8g

Disposeされていてメモリが回収されてないオブジェクトが生き残るだけ。


507 :デフォルトの名無しさん:2011/05/22(日) 05:44:43.09
3000FPSくらい普通でしょ

508 :デフォルトの名無しさん:2011/05/22(日) 10:46:01.47
データベースの定義変更(データ型や必須等)を、データセットに反映する機能はVS2010にありますか?

509 :デフォルトの名無しさん:2011/05/22(日) 14:25:27.83
AVIのヘッダー書き換えしたらいいのでは?

510 :デフォルトの名無しさん:2011/05/23(月) 08:38:26.58
敢えてLINQを使う利点が分からない
コードが見やすくなるから?
どのデータに対しても同じようにアクセスできるから?
実行速度が速くなるのなら実装してみたくはあるけど

511 :デフォルトの名無しさん:2011/05/23(月) 08:42:10.48
> コードが見やすくなるから?
> どのデータに対しても同じようにアクセスできるから?
この2つあれば十分どころか、むちゃくちゃでかい利点だと思うけど。

512 :デフォルトの名無しさん:2011/05/23(月) 08:52:11.81
核心を突いちゃ>>510がかわいそうだろ

513 :デフォルトの名無しさん:2011/05/23(月) 10:27:03.72
分からないけど、利点はそれだけなんだよね?
どうもありがと

514 :デフォルトの名無しさん:2011/05/23(月) 10:31:07.55
つか、C#って全体的にそういうもんだと思う。

515 :デフォルトの名無しさん:2011/05/23(月) 10:38:04.93
あえてC#使う意味が分かんない、みたいな。

516 :デフォルトの名無しさん:2011/05/23(月) 10:38:19.21
確かに、.Net 1.0 以降はそうだね

517 :デフォルトの名無しさん:2011/05/23(月) 11:45:50.56
しっくりきてないww

518 :デフォルトの名無しさん:2011/05/23(月) 12:01:01.77
ラムダ式を見やすいとも思わないし、F#の優れている点もよく分からない俺はプログラマ初心者です^^

519 :デフォルトの名無しさん:2011/05/23(月) 12:02:43.75
ラムダ式は見にくいよ。
あくまで、たった1個の式だけのためとかでメソッド書いて、
別の場所に飛ばないと中身が見れない状況よりははるかにマシという、
相対的な見易さだと思う。

520 :デフォルトの名無しさん:2011/05/23(月) 12:05:54.58
ラムダ式が見やすいんじゃなくて述語の形式が一般に見やすいと言われる(流れるようなインターフェースでggr)
ラムダは構成要素であってLINQそのものではない

521 :デフォルトの名無しさん:2011/05/23(月) 14:30:11.90
式木のほうのラムダがよくわからん。
わからんっていうかなんか不思議。
動的に式を作るのって従来のC#では無理だったの?

522 :デフォルトの名無しさん:2011/05/23(月) 15:16:31.36
うん

523 :デフォルトの名無しさん:2011/05/23(月) 15:29:14.25
匿名メソッドの省略記法だと思っておけばいいだけなのに
usingとか便利だろ
その程度の存在

524 :デフォルトの名無しさん:2011/05/23(月) 16:26:38.59

var strList = new List<string>("a","a","b","c");
var work = strList.Distinct();
Array.ForEach( work.ToArray(), Console.WriteLine );

strListの中をa,b,cにして重複するaを一つ消すにはどう書けばいいんですか?

525 :デフォルトの名無しさん:2011/05/23(月) 16:56:53.69
distinct

526 :デフォルトの名無しさん:2011/05/23(月) 18:18:57.86
妥協して一行増やしたんですがエラーが出ますどうやれば格納できますか?

var strList = new List<string>("a","a","b","c");
var work = strList.Distinct();
strList.Clear();
Array.ForEach( work.ToArray(), ( str ) => strList.Add( str ) );

527 :デフォルトの名無しさん:2011/05/23(月) 18:37:43.01
すいません解決しました

var strList = new List<string>("a","a","b","c");
var work = strList.Distinct().ToArray();
strList.Clear();
Array.ForEach( work, ( str ) => strList.Add( str ) );

528 :デフォルトの名無しさん:2011/05/23(月) 18:40:49.88
MessageBox.Showで長めの文を表示すると
自動で改行されて表示されるのですが
改行なしで表示させるにはどうすればいいのでしょうか?

529 :デフォルトの名無しさん:2011/05/23(月) 18:46:07.28
新しいFormを作る

530 :デフォルトの名無しさん:2011/05/23(月) 18:46:50.39
>>526-527
お前MSDNくらい読めよアホンダラ

strList = strList.Distinct().ToList();

531 :デフォルトの名無しさん:2011/05/23(月) 18:55:07.33
>>530
すげーーーー
ありがとう

532 :◆oDupeixhZv52 :2011/05/23(月) 19:13:12.95
コンストラクタこれでいいんだっけ?

533 :デフォルトの名無しさん:2011/05/23(月) 19:24:07.31
コンストラクタ?
もしかして>>526>>527のvar strList = new List<string>("a","a","b","c");のことか?
エラーになるけど気にしないことにした

534 :デフォルトの名無しさん:2011/05/23(月) 21:21:51.18
>>521
誤解を恐れずに言うならメソッドの引数にソースコードをそのまま渡したい時に使うんだよ。
で例えばLINQ to SQLがそのソースコードをSQLにコンパイルする。
普通のデリゲートのラムダだとILにコンパイルされてしまうからソースコードの情報が失われてしまう。
でも本当に文字列でソースコードを渡すと、解析が大変だしC#に依存してしまう。
だから抽象的な式木の形で渡すわけ。

535 :デフォルトの名無しさん:2011/05/23(月) 21:55:49.75
>>527
で、 526でクリアしちゃだめな理由は分からないままなのでした。


536 :デフォルトの名無しさん:2011/05/23(月) 22:02:40.28
>>535
LINQはIEnumerable<T>が戻る場合は実行されてないずら
boolとかT型が戻る場合はその時点で実行されるずら

537 :デフォルトの名無しさん:2011/05/23(月) 22:35:00.38
EnumerableRowCollectionやIQueryableのこともたまには思い出してあげて

538 :デフォルトの名無しさん:2011/05/23(月) 22:41:14.88
ある値が割り切れるかどうか調べたいのです
整数で割り切れるなら%を使えばいいのですが、2.5や3.25など、小数になっても割り切れる(有限小数かどうか)かどうかを調べるにはどうすればよいのでしょうか?


539 :デフォルトの名無しさん:2011/05/23(月) 23:24:26.09
君が作ろうとしているのは無理数判定プログラム
そのプログラムは停止しないかもしれない

540 :デフォルトの名無しさん:2011/05/23(月) 23:36:06.58
var x = b / 最大公約数(b, a%b);
while(x%2==0) x/=2;
while(x%5==0) x/=5;
return x==1;

引数が整数ならこれで

541 :デフォルトの名無しさん:2011/05/23(月) 23:42:08.39
何を言ってるのか訳がわからんな。
例えば2で割って循環する数なんてあるのか?

542 :デフォルトの名無しさん:2011/05/23(月) 23:49:37.22
%はdoubleでも使える

543 :デフォルトの名無しさん:2011/05/23(月) 23:55:32.27
>>541
4を1.729で割って割り切れるかどうか…

って意味かなタブンネ

544 :デフォルトの名無しさん:2011/05/24(火) 00:13:48.69
整数の除算結果(≒分数)が有限小数になるかどうかの判定じゃないのか

545 :デフォルトの名無しさん:2011/05/24(火) 00:53:38.11
>>526でクリアしちゃダメなのは参照渡しだからであって
遅延実行だからじゃないよね。

例えば

var strList = new List<string>("a","a","b","c");
var work = strList.Distinct();
Array.ForEach( work.ToArray(), ( str ) => Console.WriteLine("hoge") );←この1行を追加
strList.Clear();
Array.ForEach( work.ToArray(), ( str ) => strList.Add( str ) );

とやって、clear前にLinqが実行されるようにしてももやっぱり結果はゼロ件

546 :デフォルトの名無しさん:2011/05/24(火) 01:10:19.32
Distinctは遅延実行なんだよね〜

547 :デフォルトの名無しさん:2011/05/24(火) 01:13:33.14
>>546
>Array.ForEach( work.ToArray(), ( str ) => Console.WriteLine("hoge") );←この1行を追加
の意味は理解できてる?

548 :デフォルトの名無しさん:2011/05/24(火) 01:33:01.08
>>545
バカすぎて笑える

549 :デフォルトの名無しさん:2011/05/24(火) 01:38:29.98
レッテル貼りに逃げて一矢報いた気になるのは卒業しよう。
>Array.ForEach(work.ToArray(), (str) => MessageBox.Show(str));←この1行を追加
にすれば、君でもClear前にworkに3件格納されたのが理解できるかな?

550 :デフォルトの名無しさん:2011/05/24(火) 01:39:45.62
どっちかというとworkがステートを持ってると勘違いしているのが問題なんだと思うが

551 :デフォルトの名無しさん:2011/05/24(火) 01:52:02.87
workに入ってるのは 「strListから重複しない値を取り出す」 という操作そのもの

3行目のwork.ToArray()の時、まだstrListには { "a","a","b","c" } が入っているので
work.ToArrayは 「リスト { "a","a","b","c" } から重複しない値を取り出して配列化する」 という動作になる
故に配列 [ a,b,c ] を返す

4行目のstrList.Clear();を実行するとstrListが空になる

5行目のwork.ToArray()の時、strListは空なので
work.ToArrayは 「空のリストから重複しない値を取り出して配列化する」 という動作になる
故に空の配列を返す

って感じ
遅延実行だからじゃないよねっていうか、まさに遅延実行の罠

552 :デフォルトの名無しさん:2011/05/24(火) 09:55:43.37
遅延実行って言葉自体意味不明だが、結局値渡しか参照渡しかってだけの話しじゃないのか?
参照渡しだからその前が参照渡しだと参照渡しになってるってだけの話しな気がする

553 :デフォルトの名無しさん:2011/05/24(火) 09:58:07.34
List<string> work = strList.Distinct();

554 :デフォルトの名無しさん:2011/05/24(火) 10:01:58.03
>>552
IEnumerable<int> GetData(int n) {
int[] x = new int[n];
for(int i = 0; i<n; ++i) x[i] = i;
return x;
}

IEnumerable<int> GetData(int n) {
for(int i = 0; i<n; ++i) yield return i;
}
の違いは分かる?

555 :デフォルトの名無しさん:2011/05/24(火) 12:10:04.18
>>552
値渡しと参照渡し覚えたばっかりなんだな
わかるよ

556 :デフォルトの名無しさん:2011/05/24(火) 12:17:07.61
馬鹿そーだから理解できないと思うけどこの辺読め
http://ufcpp.net/study/csharp/sp_foreach.html

557 :デフォルトの名無しさん:2011/05/24(火) 14:50:26.65
while(true)
{
Random rnd = new Random( Environment.TickCount );
rint a = nd.next(100);
}

ずっとやってるとなんかどことなく規則的なんですがもっとばらばらした感じにするにはどうすればいいですか?

558 :デフォルトの名無しさん:2011/05/24(火) 14:55:25.36
Randomは所詮線形合同法の一種なのでそんなに均等に分布しない
もっといい分布が欲しければ別のジェネレータを使え

関係ないけどnextを使うなら毎回Environment.TickCountで初期化するのは無駄

Random rnd = new Random( Environment.TickCount );
while(true)
{
rint a = nd.next(100);
}

559 :デフォルトの名無しさん:2011/05/24(火) 14:55:44.68
自分でTextBoxコントロールを配列で作って・・・

for (i = 0;i < x;i++)
{
 textBox[i] = new TextBox();
 textBox[i].Name = "tabPage" + i.ToString();
 textBox[i].Size = new Size(400, 800);
〜以下略〜
}

みたいな感じで作ってるんですが、配列のサイズが不確定で後々配列のサイズを変えたいのでArrayListを使おうとしたんですが
上記の場合、どのように書けばいいんですか?


560 :デフォルトの名無しさん:2011/05/24(火) 15:01:14.50
ArrayList使うのやめろ
List<TextBox>使え

561 :デフォルトの名無しさん:2011/05/24(火) 15:03:27.10
C#移植版のMersenneTwister(4KB)
http://takel.jp/mt/MersenneTwister.cs

562 :◆oDupeixhZv52 :2011/05/24(火) 15:07:30.32
>>558
毎回初期化してるのが問題だったりして。

563 :デフォルトの名無しさん:2011/05/24(火) 15:09:42.88
かーもね

564 :デフォルトの名無しさん:2011/05/24(火) 15:23:39.75
ハイッ!

565 :◆oDupeixhZv52 :2011/05/24(火) 15:48:25.27
初期化をループの外に出すだけで直るな。
ループの中に入れたら、思ってたより酷いことになったw

566 :◆oDupeixhZv52 :2011/05/24(火) 16:00:22.44
ミリ秒単位の値でで初期化してるから、ループ中値が変わらんので
規則的というより、同じ値ばっかりになる。

567 :559:2011/05/24(火) 16:55:01.65
>>560さんの言うとおり、List<T>を試してみたんですけど

List<TextBox> textBox = new List<TextBox>();
textBox[0] = new TextBox();
textBox[0].Name = "textBox0";
textBox[0].Text = "";
textBox[0].Size = new Size(50, 50);
textBox[0].Location = new Point(50, 50);
textBox[0].Multiline = true;

this.Controls.Add(textBox[0]);

これだと実行時にArgumentOutOfRangeException例外を吐いてしまいます……
どこが悪いのか教えてもらえないでしょうか?



568 :デフォルトの名無しさん:2011/05/24(火) 17:02:29.61
List<TextBox> textBox = new List<TextBox>();
TextBox hoge = new TextBox();
hoge .Name = "textBox0";
hoge .Text = "";
hoge .Size = new Size(50, 50);
hoge .Location = new Point(50, 50);
hoge .Multiline = true;
textBox.Add(hoge);

this.Controls.Add(textBox[0]);

569 :デフォルトの名無しさん:2011/05/24(火) 17:22:05.57
センスゼロだな

570 :デフォルトの名無しさん:2011/05/24(火) 18:49:46.13
List<TextBox> textBox = new List<TextBox>();
textBox.Add(new TextBox());
textBox[0].Name = "textBox0";
textBox[0].Text = "";
textBox[0].Size = new Size(50, 50);
textBox[0].Location = new Point(50, 50);
textBox[0].Multiline = true;

this.Controls.Add(textBox[0]);


571 :デフォルトの名無しさん:2011/05/24(火) 18:55:28.65
>>570
質問した人はとりあえずのコードを晒してるけど
複数入れるとこを考えるとそれはよろしくないんじゃね?

572 :デフォルトの名無しさん:2011/05/24(火) 19:43:20.56
なるほど、じゃあこれで

List<TextBox> textBox = new List<TextBox>();
textBox.Add(new TextBox());
textBox[textBox.Count-1].Name = "textBox0";
textBox[textBox.Count-1].Text = "";
textBox[textBox.Count-1].Size = new Size(50, 50);
textBox[textBox.Count-1].Location = new Point(50, 50);
textBox[textBox.Count-1].Multiline = true;

this.Controls.Add(textBox[textBox.Count-1]);

573 :デフォルトの名無しさん:2011/05/24(火) 22:33:42.34
個人的にはこっちのほうが好み
int x = 10;
var textBox = Enumerable.Range(0, x)
    .Select( i => new TextBox()
    {
        Name = string.Format("tabPage{0}", i),
        Size = new Size(50,50),
        Text = "",
        Location = new Point(50*i,50),
        Multiline = true
    });
foreach ( var tb in textBox )
{
    this.Controls.Add(tb);
}

574 :デフォルトの名無しさん:2011/05/24(火) 22:40:32.23
ゲロゲロ

575 :デフォルトの名無しさん:2011/05/24(火) 22:44:00.91
foreach ( var i in Enumerable.Range(0, x) )
{
var tb = new TextBox()
    {
        Name = string.Format("tabPage{0}", i),
        Size = new Size(50,50),
        Text = "",
        Location = new Point(50*i,50),
        Multiline = true
    });
    this.Controls.Add(tb);
}

LINQはクエリ用なんだぜ?

576 :デフォルトの名無しさん:2011/05/24(火) 22:49:42.05
数値→コントロールの変換クエリだと思えば・・・
とはいえ、後からAddするだけのforeach回さないといけないんなら最初から全部foreachでいいだろ。

577 :デフォルトの名無しさん:2011/05/24(火) 22:50:04.72
同様にEnumerable.Range(0, x)はループカウンタじゃないな

578 :デフォルトの名無しさん:2011/05/25(水) 01:25:20.68
int x = 10;
var textBox = Enumerable.Range(0, x)
.Select(i =>
{
Controls.Add(new TextBox()
{
Name = string.Format("tabPage{0}", i),
Size = new Size(50,50),
Text = "",
Location = new Point(50*i,50),
Multiline = true
});
return Controls.Last();
});

あれだな、何のひねりも無く
List<TextBox> textBox = new List<TextBox>();
for (int i = 0; i < x; i++)
{
textBox.Add(new TextBox { Name = string.Format("tabPage{0}", i),… });
Controls.Add(textBox.Last());
}
が一番書きやすくて読みやすい気がする

579 :デフォルトの名無しさん:2011/05/25(水) 14:54:24.83
>List<TextBox> textBox

これが気に食わない

580 :デフォルトの名無しさん:2011/05/25(水) 14:55:45.51
>>579
しっくりこないんです!!
って言うんだ

List<TextBox> textBoxs

581 :デフォルトの名無しさん:2011/05/25(水) 15:00:10.17
>Boxs

ハハッ

582 :580:2011/05/25(水) 15:02:13.59
釣れたw

583 :580:2011/05/25(水) 15:03:35.63
>>581
英語の表記にあわせる必要はねーよ
textBoxという塊の複数なんだし

>>582
お前はだれだ


584 :デフォルトの名無しさん:2011/05/25(水) 15:07:23.36
以下、名前欄に580の流れ

585 :580 ◆6BEJPFFHAc :2011/05/25(水) 15:14:21.92
トリ付けた

大体、日本人なのに英語に固執しても生産性下がるだけ

586 :ほんものの580 ◇6BEJPFFHAc:2011/05/25(水) 15:18:07.32
>>585
うむ
名前が気に入らなければsをはずせばいいしな
言いたいことが伝わればいい

587 :デフォルトの名無しさん:2011/05/25(水) 15:41:42.15
以下のコードで、unko[0].ColorNameまでbrownに変わってしまうのは何故ですか?
回避するのはどう書けば良いでしょうか?


classA[] unko=new classA[2];
unko[0]=new classA();
unko[1]=new classA();

unko[0].ColorName="black";

unko[1]=unko[0];

unko[1].ColorName="brown";

textbox.text=unko[0].ColorName;


588 :デフォルトの名無しさん:2011/05/25(水) 15:44:07.27
unko[1]=unko[0];
になんの意味があるんだよ

589 :デフォルトの名無しさん:2011/05/25(水) 15:48:14.68
参照型だから

590 :デフォルトの名無しさん:2011/05/25(水) 15:48:22.66
>>588
ColorName以外を全部コピーしたいからです。
このコードだと元々全部同じですが。

591 :デフォルトの名無しさん:2011/05/25(水) 15:51:18.15
いいか坊主
=はコピーじゃなくて代入なんだ

592 :デフォルトの名無しさん:2011/05/25(水) 15:57:42.64
>>590
コピーしたいプロパティを一つ一つ地道にコピーするしかない。

593 :デフォルトの名無しさん:2011/05/25(水) 15:58:33.18
classAに内容をコピーするメソッドつくって

unko[1].CopyFrom( unko[0] );

みたいなかんじにするか、classやめてstructにするか
後者はお勧めしないが


594 :デフォルトの名無しさん:2011/05/25(水) 16:03:23.52
structにしても中身に参照持ってるとそこはコピーされないしね…
ディープコピーしたいのなら相応に書かないと駄目だ罠

595 :デフォルトの名無しさん:2011/05/25(水) 16:06:27.71
>>590
参照型だと
unko[1]=unko[0];
しても君が思ってるようなコピーはされないぞ

Cloneができないと意味がない

596 :デフォルトの名無しさん:2011/05/25(水) 16:08:01.92
自動のディープコピーは思わぬところでバグになるからないんじゃなかったっけ

597 :デフォルトの名無しさん:2011/05/25(水) 16:20:08.87
そもそもコピー必要なときってそうそうある?

598 :デフォルトの名無しさん:2011/05/25(水) 16:23:56.89
>>590みたいな時

599 :デフォルトの名無しさん:2011/05/25(水) 16:28:31.24
なんでそういうコードが登場するのかっていうロジック的な話よ
まったくないとは思わないけど、みんなそんなにコピーとかする機会多いのん?

600 :デフォルトの名無しさん:2011/05/25(水) 16:28:42.57
コピーするってのも一つだがデフォルトでこの値をセットしておくってのも手じゃね?
クラスのコンストラクタで初期化しておいて違うところだけ外から書き換えるとかさ

601 :デフォルトの名無しさん:2011/05/25(水) 16:34:56.84
要素のクローンとか発想的に恐ろしいことするより、
色くらいenumで定義しろよとか思うのは俺だけなのか?wブヒwwサーセンwww

602 :580 ◆6BEJPFFHAc :2011/05/25(水) 16:40:47.62
>>586
ワロタ

603 :デフォルトの名無しさん:2011/05/26(木) 04:22:31.75
japan.internet.com

http://japan.internet.com/busnews/20110517/3.html




>Novell を買収した Attachmate において、『Mono』プロジェクトは終焉を迎えた。
>Novell を買収した Attachmate において、『Mono』プロジェクトは終焉を迎えた。
>Novell を買収した Attachmate において、『Mono』プロジェクトは終焉を迎えた。
>Novell を買収した Attachmate において、『Mono』プロジェクトは終焉を迎えた。
>Novell を買収した Attachmate において、『Mono』プロジェクトは終焉を迎えた。
>Novell を買収した Attachmate において、『Mono』プロジェクトは終焉を迎えた。




Mono終了





604 :デフォルトの名無しさん:2011/05/26(木) 08:13:23.68
>>603
>そして同プロジェクトの活動は、新たに Xamarin として生まれ変わった。Mono とは『.NET Framework』互換のオープンソース実装だ。

605 :デフォルトの名無しさん:2011/05/26(木) 08:48:39.71
DataGridView - BindingSource - DataSet という構成でフォームに配置しています。
レコードが無い状態だと、DataGridViewには新規の1行だけ表示されている状態になります。
その行に何かを入力すると、自動で次の行が追加されます。

ここまではいいのですが、
その追加された行の任意のセルをクリックすると、DataGridView.CurrentCell.RowIndexは1(2行目)になります。
何も入力せず、DataGridViewのセルではない別のTextBoxなどに移動すると、CurrentCell.RowIndexは0(1行目)に戻ってしまいます。
見た目は2行目のセルが選択されている(青くなっている)のに、RowIndexは1行目になってしまうのです。

現在選択されているセルの行が2行目であることを取得する方法はないでしょうか。

606 :デフォルトの名無しさん:2011/05/26(木) 12:04:19.88
CurrentCellで取得できるのはアクティブなセルであって選択されているものではない。
選択されているセルの取得にはSelectedCellsを使う。

607 :デフォルトの名無しさん:2011/05/26(木) 12:05:07.49
アクティブというのはフォーカスを受けていると同義

608 :デフォルトの名無しさん:2011/05/26(木) 12:20:36.18
CurrentCellAddress

609 :デフォルトの名無しさん:2011/05/27(金) 10:12:56.86
>>606-608
ありがとうございます、SelectedCellsで取れました

610 :デフォルトの名無しさん:2011/05/27(金) 11:18:11.49
C#でGPGPUを使用する場合、CUDAとOpenCLのどちらが良いのでしょうか?
nVIDIAに統一することが出来れば、CUDAにしておくのが無難ですか?

611 :デフォルトの名無しさん:2011/05/27(金) 12:18:04.20
uint a = 123456;
byte[] b = byte[]{ (byte)(a >> 24), (byte)(a >> 16), (byte)(a >> 8), (byte)a }
uintをbyte配列にする場合はこれでいいんですか?

612 :デフォルトの名無しさん:2011/05/27(金) 12:27:11.09
>>611
BitConverter.GetBytes()

613 :デフォルトの名無しさん:2011/05/27(金) 12:29:58.04
>>612
thx

614 :デフォルトの名無しさん:2011/05/27(金) 12:48:07.41
Visual C# 2010 ExpressやVisual Studio 2010の評価版で、
フォームデザイナが真っ白になったり、下記のようなエラーが出て表示できなくなることが多々あります。
デザイナー ローダーはルート コンポーネントを指定しませんでしたが、その理由を提示しませんでした。

リビルドしたり、フォームを開き直したりするとちゃんと表示されるんですが、何が原因でしょうか?
また良くあることなんでしょうか

615 :デフォルトの名無しさん:2011/05/27(金) 14:15:30.06
Form1にtextBoxがあってForm1を拡大すると相対的に見てtextBoxの位置がズレるわけだけど
相対的にズレないようにするには、やっぱり自分でイベント作ってやらないとダメ?
相対的な位置を保持してくれるものってあるの?

616 :デフォルトの名無しさん:2011/05/27(金) 14:31:32.31
FormsだとAnchorとDockでどうにもならないなら自分でやるしか

617 :デフォルトの名無しさん:2011/05/27(金) 14:37:23.58
間違ってないはずなのにエラーが出てビルド出来なくなったけど開き直すと問題ないってのは俺も多々ある

618 :デフォルトの名無しさん:2011/05/27(金) 14:42:13.54
VC#2010でインストーラを作成する時、必ず一回目はファイルが無いだの言って失敗するけど、
何もせずそのまま二回目のビルドをすると成功するんだが、
これはそーゆー仕様なのか?

インストーラは毎回問題無く動いてるから、とりあえず放置してる。

619 :デフォルトの名無しさん:2011/05/27(金) 20:00:47.21
>>618
そんな仕様の訳がない。

620 :デフォルトの名無しさん:2011/05/27(金) 20:14:29.77
ビルド順序が間違っているんじゃないの?

621 :デフォルトの名無しさん:2011/05/27(金) 21:57:47.35
SoundPlayerを使うと、動作には問題ないエラーが吐かれます。
実際はもうちょっと複雑なのですが、おおまかには以下のことをやっているだけです。

SoundPlayer player = new SoundPlayer("./hello.wav");
player.Play();

これをやると、
"System.UriFormatException"の初回例外が System.dll で発生しました。
というエラーが発生します。
エラーの発生タイミングから、おそらく1行目に問題があります。
非常に簡単なコードなので当惑しております。
なにか心当たりありませんでしょうか?


622 :デフォルトの名無しさん:2011/05/27(金) 22:02:32.15
単純に渡してるパスが間違ってんじゃないの

623 :デフォルトの名無しさん:2011/05/27(金) 22:05:10.43
>>622
音声は再生されるので、一応パスはあっていると思われます。
動作には全く問題ないです。

@"./hello.wav"
"hello.wav"

パス形式を変えた上記のものも、エラーが発生するようでした。

624 :デフォルトの名無しさん:2011/05/27(金) 22:08:05.44
>>614
.designer.csを変な風に弄るとそのエラーが出たような気がする
たとえば同じイベントに2回イベントハンドラを設定した場合とか

625 :デフォルトの名無しさん:2011/05/27(金) 22:17:17.74
>>621
内部でcatchされている例外を持ち出してきて何がしたいんだか
まあ、最初から正しいURIを渡せば出なくなるんじゃねーの?

626 :デフォルトの名無しさん:2011/05/27(金) 22:30:55.90
>>625
申し訳ないです。内部でcatchされている例外でも気持ち悪くて。。。
内部で対処されているエラーなら無視すべきですね。

結論なのですが、パスを「相対URL -> 絶対URL」 へと変換してあげたら
エラーが発生しなくなりました。

627 :デフォルトの名無しさん:2011/05/27(金) 22:54:25.37
やってみたけど相対パスでも何もでなかったよ

628 :デフォルトの名無しさん:2011/05/27(金) 23:16:53.85
>>627
普通に考えたら、そうなりますよね。
相対パスなんてメジャーな方法でエラー吐くとは思えない。。。


629 :デフォルトの名無しさん:2011/05/27(金) 23:53:40.72
例外スロー時にブレークする設定にしてるから、正常系にTryXXXパターンじゃなくて例外使う奴はぶち殺したくなる

630 :627:2011/05/28(土) 00:25:57.20
[マイコードのみ]のチェックはずしたら出たわ
>'System.UriFormatException' の初回例外が System.dll で発生しました。
>'System.IO.FileNotFoundException' の初回例外が mscorlib.dll で発生しました。

631 :デフォルトの名無しさん:2011/05/28(土) 00:26:16.36
データベースを簡単に扱う方法ありませんか?
ADO.NETというのを使ってみたのですがSQL文を実行するまではいいのですが、
値を取り出すのが煩雑すぎてどうにかならないものかと。

632 :デフォルトの名無しさん:2011/05/28(土) 00:38:18.49
NotFoundなら、ProcessMonitorでどこのパス見に行ってるか確認したらええで

633 :デフォルトの名無しさん:2011/05/28(土) 00:43:03.54
前から気になってたんだけど初回例外ってどういう意味なの?

634 :デフォルトの名無しさん:2011/05/28(土) 00:46:59.93
>>631
SqlConnectionなんかを使ってしこしこやるのが疲れたってことか?
TableAdapterなんか使うとマシになるかも知れないし、逆にストレスが溜まるかもしれない

635 :デフォルトの名無しさん:2011/05/28(土) 02:00:21.71
初回の例外っていう意味だよ

636 :デフォルトの名無しさん:2011/05/28(土) 06:11:40.40
First Chance Exception

637 :デフォルトの名無しさん:2011/05/28(土) 07:41:48.56
自分でしこしこやった方がいいよね

638 :デフォルトの名無しさん:2011/05/28(土) 08:34:41.80
>>634
SqlConnectionやSqlCommandまではいいのですが、SqlDataReaderが面倒すぎて
どうにかならないものかと思った次第です。

テーブル定義と同じようなフィールドを持つクラス作って、そこへ値を入れたいの
ですが、SqlDataReaderだと記述量が多くてビックリ。

で、「このクラスに値入れて返して」的なメソッドないかなーと思った次第です。

639 :デフォルトの名無しさん:2011/05/28(土) 09:05:47.28
O/Rマッパーは?
使ったことないけど

640 :デフォルトの名無しさん:2011/05/28(土) 09:38:21.47
>>638
LINQ to Entities/LINQ to SQLにObjectContext/DataContextってクラスがあって、それぞれにTranslateってメソッドがある

まあこれを使える状況ならDbDataReaderじゃなくてLINQでアクセスした方がいいとは思うけどね

641 :デフォルトの名無しさん:2011/05/28(土) 11:22:55.11
Javaのseasar2みたいなのが欲しいってことかい

642 :デフォルトの名無しさん:2011/05/28(土) 11:34:25.36
DataSetにFillすればええんでないの

643 :デフォルトの名無しさん:2011/05/28(土) 11:59:12.21
.NET向けの軽量なO/Rマップってあるの?
もう準備段階でお腹いっぱいになりそうなのは見たことあるが。

>>640
LINQ to SQLってSELECT方向のサンプルしか見かけないが、
INSERT/UPDATE/DELETEやトランザクションとか使えるの?

644 :デフォルトの名無しさん:2011/05/28(土) 12:20:46.62
>>610
C#全く関係ないだろ
どっちにしてもCで書いてDllImportしかないんだから

645 :デフォルトの名無しさん:2011/05/28(土) 12:36:52.99
>>643
クエリ式で書くわけじゃなくて、
普通にオブジェクトのプロパティとか書き換え後、
DataContextのSubmitChangeでデータベースに反映。

トランザクションはusing(var tran = new TransactionScope())でくくる。

646 :デフォルトの名無しさん:2011/05/28(土) 12:51:36.88
>>643
http://code.google.com/p/dapper-dot-net/
こういうのかな。

647 :デフォルトの名無しさん:2011/05/28(土) 12:51:55.14
String と string ってどう使い分ければいいの?

648 :デフォルトの名無しさん:2011/05/28(土) 12:53:06.79
気分で

649 :デフォルトの名無しさん:2011/05/28(土) 12:53:34.92
うちの会社はコーディング規約でLINQ禁止にしてるんだが解禁する価値はあるか?

650 :デフォルトの名無しさん:2011/05/28(土) 12:54:12.77
らくださんが好きかどうか

651 :デフォルトの名無しさん:2011/05/28(土) 12:56:19.71
LINQ to SQLってDataContext以外が生成したインスタンスで更新とかする場合の作法がよく分からん
いつも試行錯誤して組んでた気がする

652 :デフォルトの名無しさん:2011/05/28(土) 12:58:19.84
>>649
新しいことを覚えられないPGが傷ついたりコンプレックスもったりするから
解禁しないほうが社内の和がたもてるよ。


653 :デフォルトの名無しさん:2011/05/28(土) 13:10:19.15
最近UNIXあがりの爺さん達がLINQとラムダを解禁しろとうるさい
俺が思うにLINQとラムダを一気に解放したら大混乱になるよね
とくにJavaしか知らない新人は鬱になる気がする
いきなり辞められても困るしどうしたものか

654 :デフォルトの名無しさん:2011/05/28(土) 13:14:10.07
社内の独自ルールでガチガチに縛っておいたほうが
ヨソで通用しないから転職されにくくていいよ

655 :デフォルトの名無しさん:2011/05/28(土) 13:20:27.66
linqとかラムダで大混乱になったり戦死者がでるのか。
大変だな。

やっぱJavaは1.4でC#は2.0にするのが安心だな。

656 :デフォルトの名無しさん:2011/05/28(土) 13:22:57.48
新人ほど、古臭いものに縛り付けておくのは良くないと思うんだけどね、
ついていけない老人ならともかくさ。
新人のために古臭いままでいく、とかいうのは、それを言い訳にしてるだけじゃねーの?
一生C#2.0でいるつもりならともかく、新しいテクノロジはLINQ(やラムダ式)前提なものが多い。
傷が浅いうちに何とかしたほうがいいかと。

657 :デフォルトの名無しさん:2011/05/28(土) 13:29:01.18
まぁ下流工程の人間の考えなんて実装ありきだからな
ブログで嬉々としてコード載せてるような人間

658 :デフォルトの名無しさん:2011/05/28(土) 13:29:47.50
linqとか新しい機能が禁止ってのは新人をおもんばかってのことだったのか。
単にコーディングルールを決められる立場のベテランが新しいのを受け付けない
だけかと思ってたよ。


659 :デフォルトの名無しさん:2011/05/28(土) 13:34:38.63
LINQなんて1個ずつ列挙してバケツリレーしてるだけじゃん
Lamdaも別に難しいとこなんてないだろ?

660 :デフォルトの名無しさん:2011/05/28(土) 13:37:01.20
>>657
無駄にこねくり回した設計とやらのほうが滑稽だけどね

661 :デフォルトの名無しさん:2011/05/28(土) 13:48:29.76
>>660
ろくにコードを書けないのに設計はできるみたいな口ぶりのやつとかも滑稽。

662 :デフォルトの名無しさん:2011/05/28(土) 14:37:22.14
このスレで無理やり喧嘩するなよw

663 :デフォルトの名無しさん:2011/05/28(土) 14:42:47.19
>>658
まあ、確かに、若い人ばかりのチームならいいけど、
老害だらけの中で LINQ 解禁した場合、新人は大混乱するかもねぇ。
ウェブで調べて来た知識をことごとく老害に否定されたりで。

664 :デフォルトの名無しさん:2011/05/28(土) 14:58:03.21
個人的にはLINQでやれることを自作(バグ付き)でやられる方が嫌だな

665 :デフォルトの名無しさん:2011/05/28(土) 15:20:28.43
LINQはともかくLINQ to SQLの出番は全くないけどな。

666 :デフォルトの名無しさん:2011/05/28(土) 15:23:40.39
まぁ規約に意見つけられる立場になってから言えって話だがね
お互いに

667 :デフォルトの名無しさん:2011/05/28(土) 15:36:41.95
腐った規約を押し付けて、意見つけられる立場になってから言え
ってのはまさに老害的で最悪だけど。

668 :デフォルトの名無しさん:2011/05/28(土) 15:42:52.90
喧嘩に誘導するにはちょっと弱いネタだな

669 :デフォルトの名無しさん:2011/05/28(土) 15:44:17.85
世の中そういうモンですから
大事なのは貴方がその立場になったとき、同じ事をしないことだよ

670 :デフォルトの名無しさん:2011/05/28(土) 15:52:17.04
今月やってた案件は拡張メソッドとラムダ式が禁止だったから、
EnumerableRowCollectionExtensions.Where(rows, delegate(DataRow row){ return CONST.Equals(row[COLUMN]);})とか書きまくってた

671 :デフォルトの名無しさん:2011/05/28(土) 15:53:31.77
LL言語のフレームワーク並みのORマッパー欲しいなー
MS提供の奴は野暮ったいのとSQLServer以外との親和性が低すぎてヤダ

672 :デフォルトの名無しさん:2011/05/28(土) 16:05:16.35
C#向けのORマッパーってあるの?

673 :デフォルトの名無しさん:2011/05/28(土) 16:13:35.61
EFCodeFirstとかどうなの?

674 :デフォルトの名無しさん:2011/05/28(土) 16:15:43.22
色々試してみるわ

675 :デフォルトの名無しさん:2011/05/28(土) 16:17:04.01
試した感想を纏めてくれるとすごくうれしい

676 :デフォルトの名無しさん:2011/05/28(土) 16:19:05.47
>>670
うちは匿名メソッドも禁止だぜ?

677 :デフォルトの名無しさん:2011/05/28(土) 16:20:29.91
>>675
ok
wikiでも作るわ

678 :デフォルトの名無しさん:2011/05/28(土) 16:23:10.08
ところで、もうLINQはデバッガ通るようになってる?
WMIラッパ作って懲りたんだが、LINQは。

679 :デフォルトの名無しさん:2011/05/28(土) 16:27:58.63
デバッガ通る、とはどういう意味なのか。

680 :デフォルトの名無しさん:2011/05/28(土) 16:28:16.55
ステップインするかどうかってことだと思う
しない

681 :デフォルトの名無しさん:2011/05/28(土) 16:32:52.16
まだデバッガ使ってる老害がいるのか。
VisualStudioの仕様に意見できる立場になってから言えっての

682 :デフォルトの名無しさん:2011/05/28(土) 16:42:47.99
Expressions の機構以外、短く書けた俺SUGEEEEのためとしか思えない。

683 :デフォルトの名無しさん:2011/05/28(土) 16:44:46.53
コンプレックス丸出し。
じゃあ「長くてもよければ他に書き方がある」ようなのは全部禁止で

684 :デフォルトの名無しさん:2011/05/28(土) 16:46:08.66
そしてアセンブリ言語へ

685 :デフォルトの名無しさん:2011/05/28(土) 16:46:42.17
>>682
まあ書く量が減れば減るほどバグの作りこみも減らせるけどね
そういう意味ではWPFやSLのバインドは定型コードを書けば
仕組みが勝手にやってくれるのでいいなあ

686 :デフォルトの名無しさん:2011/05/28(土) 16:48:48.71
こーどがふえるとテストもふえるね

687 :デフォルトの名無しさん:2011/05/28(土) 16:57:22.31
コードは負債

688 :デフォルトの名無しさん:2011/05/28(土) 17:52:21.28
>>675
どういうのがあるか列挙してくれると凄く嬉しい

689 :デフォルトの名無しさん:2011/05/28(土) 17:54:09.55
Win7でProgramFilesフォルダにファイル書き込みしたいときどうするのがWin7ルール?
ログ系のアプリなんだけど、データ置くフォルダをどこにするものなのでしょう?

690 :デフォルトの名無しさん:2011/05/28(土) 17:57:04.62
AppData死ね

691 :デフォルトの名無しさん:2011/05/28(土) 17:57:33.48
>>688
http://code.google.com/p/dapper-dot-net/
ここの真ん中にPerformance Testとして色々列挙してある

692 :デフォルトの名無しさん:2011/05/28(土) 18:17:14.69
>>690
ありがと、ちょいと調べてみたけど。
AppData、ProgramDataとあって、XP側もAll UsersのApplication Dataとユーザ/Local SettingsのApplication Dataと。。。
使い分けがわからん><
EnvironmentクラスGetFolderPathでユーザー毎ならApplicationData
すべてのユーザーで共通のデータならCommonApplicationData
をつかっておけばWin7でも問題ないのでしょうか?

693 :デフォルトの名無しさん:2011/05/28(土) 18:53:33.51
CommonApplicationDataは一般ユーザは書き込み禁止のはず
ユーザ共通データはインストール時にCommonApplicationDataに
フォルダ作った上でそこのACL操作しないと

694 :デフォルトの名無しさん:2011/05/28(土) 19:22:37.28
>>693
情報ありがとうです。
ユーザー個別の出力データと設定、共通の出力データと設定が起きたいのですが、ややこしそうですね><
ACLってのわからないのでググってきます。

695 :デフォルトの名無しさん:2011/05/28(土) 19:34:30.76
下流工程のコーダーってカスしかいないよなw

696 :デフォルトの名無しさん:2011/05/28(土) 19:36:11.47
そりゃ他に移れる能力があるなら移るもの
どんどん濃度が上がるぜ

697 :デフォルトの名無しさん:2011/05/28(土) 19:46:38.00
>>695
カス…かなぁ?
「こいつに任せとけば、単体までおk」
みたいなのは、結構いるけどな。
中国人も含めて。

698 :デフォルトの名無しさん:2011/05/28(土) 19:47:08.34
ListBoxで選択インデックスが変更されるときに確認メッセージを出したいのですが
どのようにすればよいでしょうか?

MouseClickイベントを拾ってキャンセルする形になるんでしょうか?
SelectedIndexChangedで拾って確認メッセージを出してNOなら、
強制的に以前のインデックスを代入とかで実装するのでしょうか?

699 :デフォルトの名無しさん:2011/05/28(土) 19:48:47.92
おっさんになってもなおコーディングのネタでブログ書いてるような奴はもう終わってる

700 :デフォルトの名無しさん:2011/05/28(土) 19:53:19.93
System.IO.Directory.GetFilesに指定するワイルドカードで、*.jpg、*.bmp、*.gif、*.pngを検索させたいのですが、どう指定すればよいでしょうか。
"*.bmp *.gif *.png *.jpg *.jpeg"とかやったんですけどやっぱりダメでした。
ググっても見つかりません。
よろしくお願いします。

701 :デフォルトの名無しさん:2011/05/28(土) 19:53:22.71
君より稼いでるんじゃないの。
優秀なPGをわざわざ管理に回しちゃう、PGのままだと稼げないとかいうようなとこはダメだと思う。

702 :デフォルトの名無しさん:2011/05/28(土) 19:53:24.38
趣味ぐらい好きに選ばせてやれ

703 :デフォルトの名無しさん:2011/05/28(土) 19:55:01.49
おっさんがどんどん辞めてくところは間違いなくブラックですよ

704 :デフォルトの名無しさん:2011/05/28(土) 19:56:03.21
すみません、質問スレッドと勘違いしていました。
質問スレッドに移りますので>>698はスルーでお願いします。

705 :デフォルトの名無しさん:2011/05/28(土) 20:06:33.92
>>700
無理
GetFiles()/EnumerateFiles()で全部取ってからPath.GetExtensionで自分で判断する

706 :デフォルトの名無しさん:2011/05/28(土) 20:08:35.44
>>705
ありがとうございました、了解です。

707 :デフォルトの名無しさん:2011/05/28(土) 20:15:26.44
終わったらどうなんの?

708 :デフォルトの名無しさん:2011/05/28(土) 20:16:23.67
C#でアクティブではないウィンドウにキーを送るにはどうしたらいいんでしょうか

709 :デフォルトの名無しさん:2011/05/28(土) 20:24:56.44
>>708
WM_KEYDOWNとかで頑張ってみる ただし相手アプリによる

710 :デフォルトの名無しさん:2011/05/28(土) 20:34:04.24
>>708
Win32APIでハンドルを調べて送る

711 :デフォルトの名無しさん:2011/05/28(土) 22:32:14.74
>>699
プログラムなんて小学生でも書けるのにな
こういうこと言うと必ず「でも金稼いでるから」とか言い出す始末

712 :デフォルトの名無しさん:2011/05/28(土) 22:39:23.98
このスレに居座って煽ってる自称上流工程の人間はなにがしたいの?

713 :デフォルトの名無しさん:2011/05/28(土) 22:41:36.30
>>711
言っちゃ悪いけどお里が知れる見解だねw
少なくとも英語圏にはそんなオッサンは山ほどいる事実をどう考えるんだろうこういう奴。

っていうか、この人口減少時代にそんな60年代的な出世幻想を持ってる自分が
いちばんオッサン臭いことがわかんないかね

714 :デフォルトの名無しさん:2011/05/28(土) 22:47:24.71
>>712
現実と理想のギャップに悩んでるだけだよお

715 :デフォルトの名無しさん:2011/05/28(土) 22:47:45.90
現実逃避

716 :デフォルトの名無しさん:2011/05/28(土) 22:49:48.81
マでやれ

717 :デフォルトの名無しさん:2011/05/28(土) 22:50:58.94
マとムは天地とひとつ

718 :デフォルトの名無しさん:2011/05/28(土) 23:04:52.51
ひとりじゃないって〜

719 :デフォルトの名無しさん:2011/05/28(土) 23:11:02.21
素敵なことね〜

720 :デフォルトの名無しさん:2011/05/28(土) 23:20:32.62
ちょっと目を離した間に荒れてるとは
おまえら油断も隙もないなw

721 :1/2:2011/05/28(土) 23:45:18.07
質問があります。
書きこもうとしたら、長すぎと言われたので2つに分けます。

C言語で、mallocでメモリを確保してchar*として返す関数を作成し、
それをDLLにしました。
C#で、その関数を呼ぶようにしました。
関数のcallは成功し、StringBuilderとして値が取れることは
確認できたのですが、Cでmallocして確保したメモリの解放を
どうすればよいのかわかりません。


722 :721 (2/2):2011/05/28(土) 23:49:40.87
解放はしなくても、GCが発生したタイミングで.NET Frameworkが
解放してくれるのでしょうか。
それとも、DLL側にメモリ解放する関数を用意する必要が
あるのでしょうか。
もしくは、C#上で解放する方法があるのでしょうか。

すみませんが、ご存知の方教えていただきたいです。


723 :デフォルトの名無しさん:2011/05/28(土) 23:55:47.90
>>713
君、天才だね!

724 :デフォルトの名無しさん:2011/05/28(土) 23:57:33.24
>>713
英語圏はすごいんだね!

725 :デフォルトの名無しさん:2011/05/28(土) 23:57:48.77
>>713
感動したよ!

726 :デフォルトの名無しさん:2011/05/29(日) 00:10:40.31
>>721
手動で解放する必要がある。.NETが解放できるのは.NETが確保した領域だけだし。
StringBuilderやっちゃうと解放するポインタが失われるからやっちゃ駄目。
IntPtrで受けてMarshal.PtrToStringAnsiとかでStringに変換。
解放はC側に解放用関数を用意するのがベストだね。

727 :デフォルトの名無しさん:2011/05/29(日) 00:13:19.18
可能であればC側の関数をfunc(size_t, *ptr)にして、サイズとバッファを受け取って書き込む方法を選ぶべき

728 :デフォルトの名無しさん:2011/05/29(日) 00:16:24.86
英語圏にお詳しいようで・・・
>言っちゃ悪いけどお里が知れる見解だねw
コレの翻訳を、英語で書いてみしてください。

729 :デフォルトの名無しさん:2011/05/29(日) 00:19:37.99
よくわからんがすげー悔しかったんだなってのは伝わってくる

730 :デフォルトの名無しさん:2011/05/29(日) 00:26:20.55
>>728
挑戦してみた。
i think you feel bad so.LOL to your mind.

最近LOLっていわないかな。

731 :デフォルトの名無しさん:2011/05/29(日) 00:28:03.80
dont show this message again

732 :デフォルトの名無しさん:2011/05/29(日) 00:31:26.92
「英語圏では〜」

・・・

733 :デフォルトの名無しさん:2011/05/29(日) 00:37:22.61
オッサン臭いかどうかはともかく、若いのに年功序列的なガラパゴスな価値観が当然だと思ってると
間違いなく後々自分が辛いことになるよ。

人口減ってくし、日本はこれからどんどん下り坂なのに
歳食うだけでポストも給料も上がるなんてねずみ講がいつまでも維持できるわけねえだろ。
真面目な話。

しかし搾取されてるだの老害だの、こういうねずみ講システムの被害者ぶってる奴に限って
こんな腐ったシステムに自分も乗っかる(乗っかれる)つもりでいるのは頭悪いのか?

734 :デフォルトの名無しさん:2011/05/29(日) 00:41:10.39
長い。三文字で。

735 :デフォルトの名無しさん:2011/05/29(日) 00:43:17.19
年功序列的な若いガラパゴスなのに価値観が間違いなくオッサン臭いが当然だと思ってると後々自分が辛いことになるよ。


736 :デフォルトの名無しさん:2011/05/29(日) 00:44:27.21
頭悪い

737 :デフォルトの名無しさん:2011/05/29(日) 00:45:23.26
年価後

738 :デフォルトの名無しさん:2011/05/29(日) 01:04:36.73
LINQいいよね〜

739 :デフォルトの名無しさん:2011/05/29(日) 01:26:22.83
調子悪

740 :デフォルトの名無しさん:2011/05/29(日) 03:23:57.89
悔しかったろうけど、顔上げろよ。

741 :デフォルトの名無しさん:2011/05/29(日) 03:49:01.00
ぃゃ 腕上げろよ?

742 :デフォルトの名無しさん:2011/05/29(日) 07:33:31.43
スレ違いする人間はプログラムとか以前にクズ以下で生きる価値なしのヘリコバクターピロリ菌

743 :デフォルトの名無しさん:2011/05/29(日) 07:51:28.53
BEアイコンショッパー

BEのデータ変更で値段が表示されなくなっちゃった。
http://offgao.no-ip.org/program/iconshop.html

オフガオ ◆e/Q/OffGaoさんの掲示板も震災以降閉鎖のまま・・・。
誰かソース修正して><

744 :デフォルトの名無しさん:2011/05/29(日) 07:57:00.63
ソース開いたら.cppとか出てきたんだが

745 :デフォルトの名無しさん:2011/05/29(日) 08:05:14.12
>ソースは地獄です。今の俺には分かりません。= 開発できません。

ワラタ

746 :デフォルトの名無しさん:2011/05/29(日) 08:19:29.20
MFCとか二度と見たくない

747 :デフォルトの名無しさん:2011/05/29(日) 08:47:18.16
MFCの命名規則が気に入らん

748 :デフォルトの名無しさん:2011/05/29(日) 10:21:21.73
C++のコード同時に使いたい場合はC++のプロジェクトを追加してDLLとしてC#から使うしかないんですか?
このファイルはC++でコンパイルして、このファイルはC#でコンパイルと一つのプロジェクト内でコード状態の時から連携できないんでしょうか?

749 :デフォルトの名無しさん:2011/05/29(日) 10:35:13.24
>>748
出来ません


750 :デフォルトの名無しさん:2011/05/29(日) 10:37:35.03
C#とC++の混在プロジェクトなんてあったらソースは地獄です。

751 :デフォルトの名無しさん:2011/05/29(日) 11:24:58.23
Source Inferno Programing, S.I.P.

752 :デフォルトの名無しさん:2011/05/29(日) 12:22:21.25
このイカれた時代へようこそ

753 :デフォルトの名無しさん:2011/05/29(日) 12:26:55.44
>>748
C++/CLIを使えば良いじゃん

754 :デフォルトの名無しさん:2011/05/29(日) 12:33:48.88
>>753
コード状態からの連携はそれでも無理だよ

利点と言ったらアンマネージドコードからマネージドコード呼べるくらい?
逆はc#でも出来るから、c#より複雑な割に使い所が少ないよ


755 :デフォルトの名無しさん:2011/05/29(日) 12:38:06.73
言語の合いの子って使いにくいだけな気がするな

756 :デフォルトの名無しさん:2011/05/29(日) 12:48:29.28
ネイティブのクラスを扱える
…まあ言うほどのメリットでもないか

757 :デフォルトの名無しさん:2011/05/29(日) 12:52:49.01
言いたいことは分からんでもないが「ネイティブのクラス」って表現はどうかね

758 :デフォルトの名無しさん:2011/05/29(日) 13:26:43.53
C#からDirectXを使う場合どうすればいいんですか

759 :デフォルトの名無しさん:2011/05/29(日) 13:28:05.54
SlimDXかXNA

760 :デフォルトの名無しさん:2011/05/29(日) 13:30:38.10
DirextShowとcomputeを使いたいんです

761 :デフォルトの名無しさん:2011/05/29(日) 13:37:23.70
DirextShowは既にDirectXファミリではありません

762 :デフォルトの名無しさん:2011/05/29(日) 13:40:03.97
DirectX Compute Shaderは自力でラッパーを書かないとダメそうですね
XNAはDirectX9ですし

残念ながら、あなたには無理です

763 :デフォルトの名無しさん:2011/05/29(日) 14:25:45.04
可変長のbyte配列からある位置より\0が見つかるまでを文字列として取得したいのですが
byte[] msg;
fixed(byte* p = &msg[0])
string str = new string((sbyte*)(p + 0x1b));
こんな感じの内容なのですがunsafeを使わずに実現するにはmsgを1つずつ調べて長さを求めた後変換するしかないのでしょうか?

764 :デフォルトの名無しさん:2011/05/29(日) 14:58:02.86
str.replace('\0', ' ').trim();

765 :デフォルトの名無しさん:2011/05/29(日) 15:00:29.19
'\0'で区切られてるような奴だったらIndexOfとSubString
後ろが'\0'で埋まってるなら>>764

766 :デフォルトの名無しさん:2011/05/29(日) 15:16:28.17
指定したトップレベルのウィンドウハンドルがTopMostウィンドウかどうか調べるにはどうすればいいですか?

767 :デフォルトの名無しさん:2011/05/29(日) 15:23:00.91
GetWindowLongでWS_EX_TOPMOSTが付いてるか確認

768 :デフォルトの名無しさん:2011/05/29(日) 16:53:20.83
そしてSetWindowLongで勝手に解除

769 :デフォルトの名無しさん:2011/05/29(日) 16:55:25.49
GetWindowLongPtrのことも思い出してやって

770 :デフォルトの名無しさん:2011/05/29(日) 17:33:07.01
WS_EX_TOPMOSTが何番なのかどうやって調べればいいんですか?

771 :デフォルトの名無しさん:2011/05/29(日) 17:34:23.72
>>770
WS_EX_TOPMOSTのコンスタントが持ってる値の話?
http://yokohama.cool.ne.jp/chokuto/urawaza/prm/extended_window_style.html

772 :デフォルトの名無しさん:2011/05/29(日) 17:37:06.71
親切過ぎw
そこまで行くとクレクレ君の奴隷だな

773 :デフォルトの名無しさん:2011/05/29(日) 17:45:07.03
ネットで調べるのが普通なんですか?
C++のプロジェクトを追加しておいて値を知りたい文字にカーソルを合わせるとポップアップで値がわかるんですが
C#だけで調べる方法はないんですか?

774 :デフォルトの名無しさん:2011/05/29(日) 17:46:15.13
そもそもC#の機能じゃねーもん

775 :デフォルトの名無しさん:2011/05/29(日) 17:47:12.05
>>773
WS_EX_TOPMOSTなどはC#では本来使わないからねえ
なので調べる必要がある

776 :デフォルトの名無しさん:2011/05/29(日) 17:47:51.92
次は
フラグが立っているかどうやって調べればいいんですか


777 :デフォルトの名無しさん:2011/05/29(日) 17:50:46.18
そこまでして無理にC#から使う必要ないですよね
あきらめてC++CLRからDLLで連携することにしました
ありがとうございました。

778 :デフォルトの名無しさん:2011/05/29(日) 17:52:21.46
>>764,765
なるほどせこせこ切り出すより全部文字列として取得してから詰めたほうが分かりやすいですね
後ろが\0で埋まってるわけではないので今回はIndexOfでやることにします、ありがとうございました

779 :デフォルトの名無しさん:2011/05/29(日) 17:52:36.16
もしかすると
ヘッダーファイルってなんですか
かも

780 :デフォルトの名無しさん:2011/05/29(日) 17:53:11.25
>>777
そういうことじゃないけどねw
なるべくならVC#で楽するっていうのも手だし

781 :デフォルトの名無しさん:2011/05/29(日) 17:56:01.58
エクスプローラで複数ファイルを一度に開く際、Mainの引数では
ファイルの一覧をすべて取得できませんが、どのようにすれば
一覧をすべて取得できますか?

782 :デフォルトの名無しさん:2011/05/29(日) 17:58:11.53
C++ .NETでは #using <mscorlib.dll> というのを
C#ではどういう記述なのか疑問

783 :デフォルトの名無しさん:2011/05/29(日) 18:01:14.06
>>782
http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html

784 :デフォルトの名無しさん:2011/05/29(日) 18:12:11.66
>>781
Explorer側が対応してないから無理

785 :デフォルトの名無しさん:2011/05/29(日) 18:20:24.55
>>784
すいません、書き方が悪かったですね…
起動時の引数以外の方法で構いませんので、一覧を取得する方法
を教えていただけますか?

786 :デフォルトの名無しさん:2011/05/29(日) 18:26:52.55
まだ書き方が悪いようだけど?
質問の趣旨がいまいちw

自前の拡張子でレジストリいじれるなら
MultiSelectModelで調べたらいいと思う

787 :デフォルトの名無しさん:2011/05/29(日) 18:39:53.43
>>786
すいませんorz
ありがとうございます。調べてみます。

788 :デフォルトの名無しさん:2011/05/29(日) 19:19:49.04
質問です。
PC2台がLANで繋がっているという前提で、
片方のPCから、もう片方のPCに何らかのメッセージを送って
それをハンドルさせたいのですが
何か良い方法ありませんか?
ちなみにOSはWindowsXPです。

789 :デフォルトの名無しさん:2011/05/29(日) 19:23:19.38
生ソケットかWCF

790 :721:2011/05/29(日) 22:48:39.61
>>726,727

レスありがとうございます。
自分で解放しなければならないのですね。

引数を増やす、ということはできないのですが、
関数を増やすことはできそうなので、
解放する関数を追加することにします。

ありがとうございました。

791 :デフォルトの名無しさん:2011/05/30(月) 00:16:20.01
ASPってどうなんですかね?
せっかくC#勉強してるから、このままASPにしようかと思うんだけど、
シェアはやっぱりHTML5とCSS、JAVAScriptですか?

792 :デフォルトの名無しさん:2011/05/30(月) 00:23:32.85
>>791
それらは全然比較対象じゃあないよ。

793 :デフォルトの名無しさん:2011/05/30(月) 00:41:28.69
>>791
ASP.NETはサーバー上でHTML作って返す技術で、
最近はちゃんとHTML5にも対応してるし、
一部のコントロール(できあいのUI部品)は生成結果のHTMLがJavaScriptを使ってる。

794 :デフォルトの名無しさん:2011/05/30(月) 00:55:49.39
その説明だとたぶんわかんないと思うぞ

795 :デフォルトの名無しさん:2011/05/30(月) 01:07:39.67
ASP(ASP.NETの事だと思うが)とHTMLは組み合わせて使うものであって
ASPにするかHTML5にするかという考え方はおかしい。
「HTML5よりJavaScriptですか?」みたいな質問。

さらにASP.NETはサーバーサイドの技術だからユーザーにとっては知ったこっちゃ無いし
シェアを気にする必要は無い

796 :デフォルトの名無しさん:2011/05/30(月) 01:11:41.03
くどい
JSP(Java)やPerlやPHPと同類だといったほうが早い

797 :デフォルトの名無しさん:2011/05/30(月) 01:15:41.42
なんでわかるかどうか判らないものに例えるのやら。
大丈夫か?

798 :デフォルトの名無しさん:2011/05/30(月) 01:17:48.32
TabPageコントロール上にContextMenuコントロールを関連付けたのですが
TabPage上をクリックしなくてもタブの横の何も作られていない空白部分を押しても反応してしまいます
どうにかしてTabPageのボタン上でしか右クリックできるようにできないでしょうか?

799 :デフォルトの名無しさん:2011/05/30(月) 01:33:04.38
ContextMenu.Show
質問する前に対象クラスのメンバ一覧ぐらい目を通すべきだ

ところで忍法帳って何?w意味がわからん

800 :デフォルトの名無しさん:2011/05/30(月) 01:37:39.62
2ch運営が荒らし対策に入れた糞機能だよ

2ch 忍法帳
とかでぐぐればまとめwikiでてくるんじゃないかな?

801 :デフォルトの名無しさん:2011/05/30(月) 01:41:36.65
せっかくLv30まで行ったのに

802 :798:2011/05/30(月) 02:08:32.56
>>799
ありがとうございます。座標指定ができるみたいなのでそれを使ってみようと思います
TextBoxコントロールにしろ、TabPageにしろ、自分でコントロールを作って座標指定するときには
普通はちょっとずつ移動していくんですか?いい方法教えてください

803 :デフォルトの名無しさん:2011/05/30(月) 06:54:42.44
>普通はちょっとずつ移動していくんですか

ちょっとよく分からないです
フォント等によってスケーリングされる機能はある
あとはコンテナとクライアント座標の関係を調べてみては

804 :802:2011/05/30(月) 16:21:37.32
>>803
例えば
TextBox tb = new TextBox();
〜〜〜〜省略〜〜〜〜
tb.Location = new Point(128, 128);
自分でコントロール作って、座標指定するときにちょっとずれちゃったりずれたりして
ちょっとずつ座標ずらしながらやっていくんですが・・・他の人はどんな方法でやっているのかなと思って聞いてみました

あと>>799のレスを見てMSDNライブラリを参考にしてやってみたんですが

ContextMenuStrip menu = new ContextMenuStrip();
ToolStripMenuItem m1 = new ToolStripMenuItem();
ToolStripMenuItem m2 = new ToolStripMenuItem();

menu.Size = new Size(100, 100);
menu.Text = "";
menu.Show(10, 10);

m1.Name = "m1";
m1.Text = "メニュー1";

m2.Name = "m2";
m2.Text = "メニュー2";

this.ContextMenuStrip = menu;
menu.Items.Add(m1);
menu.Items.Add(m2);

Form1にContextMenuStripに設定してやっているんですが、どこを右クリックをしても表示されしまいます……


805 :デフォルトの名無しさん:2011/05/30(月) 16:51:16.53
絶対値指定なんてやらなくなったからわかんない

806 :デフォルトの名無しさん:2011/05/30(月) 21:16:10.00
XMLシリアライズで違うXMLファイルを指定してDeserializeでエラーが出るのを回避するにはどうすればいいでしょうか
例外も出ずどうしていいかわかりません

807 :デフォルトの名無しさん:2011/05/30(月) 21:19:49.97
>>2を使って(デ)シリアライズしている周辺のコードとシリアライズしているクラスとXMLそのものを見せろ

808 :デフォルトの名無しさん:2011/05/30(月) 21:36:17.91
>>806
IDE上で動かしている時の話をしてるなら、そのまま[F5]で継続でOK。

809 :デフォルトの名無しさん:2011/05/30(月) 22:13:54.75
サポート外のメッセージボックスを表示させたいんです


意図的に読み込んだ別xmlファイル

<?xml version="1.0"?>
-<FileExtendedInformationClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<fileExList/>
</FileExtendedInformationClass>


コード

public SaveClass sc = new SaveClass();

System.IO.FileStream fs;
sc = new SaveClass();
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer( typeof( SaveClass ) );
fs = new System.IO.FileStream( ofd.FileName, System.IO.FileMode.Open );
try
{
sc = (SaveClass)serializer.Deserialize( fs ); //ここでXMLドキュメント(2,2)エラーで止まる
}
catch( InvalidCastException exc )
{
System.Diagnostics.Debug.Print( exc.Message );
MessageBox.Show( "サポート外" );
fs.Close();
DataCB.SelectedIndex = 0;
return;
throw;
}

810 :デフォルトの名無しさん:2011/05/30(月) 22:15:17.56
クラス

public class SaveClass
{
public string Info = "識別 0";
public List<string> Data = new List<string>();
}


811 :デフォルトの名無しさん:2011/05/30(月) 22:17:46.10
>>809
>>807の指摘が伝わってないなw

長いコード貼るのなら>>2のコード晒しサイトつかったらという
アドバイスなんだから

812 :デフォルトの名無しさん:2011/05/30(月) 22:22:49.34
シリアライザそのもののエラーは
たぶんInvalidOperationExceptionで拾えると思う

忍法帖リセットされたのに1KBもよく貼れたもんだ

813 :デフォルトの名無しさん:2011/05/30(月) 22:52:28.56
拾えました!
chatchはエラーを全部拾うものかと思ってました
ありがとうございました

814 :デフォルトの名無しさん:2011/05/30(月) 23:07:08.36
今日からEntity Frameworkを使い始めたのですが、LINQ to Entityで行ロックはどうやるのですか?

815 :デフォルトの名無しさん:2011/05/30(月) 23:24:21.79
Entity Frameworkって、そもそもDataTable的なin-memoryキャッシュと
楽観的同時実行制御が基本じゃなかったっけ?

816 :デフォルトの名無しさん:2011/05/31(火) 01:28:09.62
マウスとペンタブレットを同時に使う場合
ペンタブレットデバイスでのカーソル位置とマウスのカーソル位置を共有させないで
ペンタブレットの方は完全にソフト側から制御してメッセージを全て特定アプリケーションにだけ送られるようにするにはどうすればいいですか?


817 :デフォルトの名無しさん:2011/05/31(火) 09:20:21.83
reflectorの期限が切れた

818 :デフォルトの名無しさん:2011/05/31(火) 09:36:55.68
14日間トライアルとかいうのを落としたらメールで登録したら6.8Freeが入った


819 :デフォルトの名無しさん:2011/05/31(火) 13:07:40.62
>>814の便乗ですが、

using (TransactionScope transaction = new TransactionScope())
{
//なんでこれでトランザクションがかかるのですか?
}

820 :819:2011/05/31(火) 14:02:21.02
EDMで循環参照(自己参照)の書き方もわからないです

821 :デフォルトの名無しさん:2011/05/31(火) 14:25:34.07
test

822 :デフォルトの名無しさん:2011/05/31(火) 15:24:42.93
IListはどういう時に使うんですか?

823 :デフォルトの名無しさん:2011/05/31(火) 15:27:23.76
http://msdn.microsoft.com/ja-jp/library/system.collections.ilist%28v=VS.100%29.aspx
の事を言っているのならお払い箱

http://msdn.microsoft.com/ja-jp/library/5y536ey6.aspx
の事を言っているのならIList<T>を実装するとき、
またはインスタンスをIList<T>の機能に限定して利用するとき

824 :デフォルトの名無しさん:2011/05/31(火) 15:29:28.19
インターフィェイス経由で扱いたいとき

825 :デフォルトの名無しさん:2011/05/31(火) 15:35:37.33
まあ、実体持ったクラスで公開するよりインターフェイス介した方が
アセンブリ間の依存度減るから、
プロパティの型とかでリスト機能使いたかったら IList<T> で公開する。

826 :デフォルトの名無しさん:2011/05/31(火) 15:38:21.08
いえーいインターフィェイスさんぱねぇーす

827 :デフォルトの名無しさん:2011/05/31(火) 15:43:58.20
インターフェイスで受け取ると使う人間の意図が分からないから云々ってきちがいを最近見た

828 :デフォルトの名無しさん:2011/05/31(火) 16:06:17.29
graphicsで描画したイメージを矩形として保存しておき、
その矩形の任意の領域をコピーして別のgraphicsに貼りつけて
描画したいんですが、そういうことできますか?

829 :デフォルトの名無しさん:2011/05/31(火) 16:10:13.70
GraficsにFromImageってあんだろ

Bitmapを作成してFromImageでGraphicsを作成してそこに保存するのが手軽

830 :デフォルトの名無しさん:2011/05/31(火) 16:17:05.54
>>827
いやいや、意図以外の情報消すのがインターフェイスの利用なのにw

ただ、でも、過剰にインターフェイスにし過ぎて、必要な意図まで消しちゃう場合もあるにはあるのよね。
メソッドの宣言に表れない情報ってのもあるんで。

831 :デフォルトの名無しさん:2011/05/31(火) 16:21:51.02
>>819
裏で勝手にtransactionとその内側のSqlConnectionが連携してるとか、
なんかキモいよね。
いまいちその辺りの内部挙動でいい説明っての、見たことないのよねぇ…

832 :デフォルトの名無しさん:2011/05/31(火) 16:59:34.43
>>831
ほんとに動いてるのかよって疑いたくなるね

833 :デフォルトの名無しさん:2011/05/31(火) 17:09:01.37
>>831ってusing使わないで↓みたいにdisposeを明示的に呼んでも同じ?
TransactionScope t = new TransactionScope();
t.Dispose();

つーか、TransactionScopeをnewした瞬間がbegin tran?
わけわからんね。

834 :デフォルトの名無しさん:2011/05/31(火) 17:09:24.00
間違えた>>819

835 :デフォルトの名無しさん:2011/05/31(火) 17:40:12.12
FindWindow( null, "Window1" )
からWindow型に変換する方法ありますか?
どう考えても
(Window)FindWindow( null, "Window1" )
できそうなんですがなぜかできません

836 :デフォルトの名無しさん:2011/05/31(火) 17:49:08.87
どう考えても出来ません

837 :デフォルトの名無しさん:2011/05/31(火) 17:53:46.03
WPFしか触ったことないもん! というC#ユーザーも増えているのだろうか

838 :デフォルトの名無しさん:2011/05/31(火) 17:56:09.39
余所のプロセスなんだろうしひっくり返っても無理
お前を生け贄に捧げても無理

839 :デフォルトの名無しさん:2011/05/31(火) 18:09:00.89
なぜできないんですかWindowを探して見付かったものはWindowじゃないどうしてわかるんですか

840 :デフォルトの名無しさん:2011/05/31(火) 18:23:52.59
説明すると100年かかるからしない

841 :デフォルトの名無しさん:2011/05/31(火) 19:34:25.67
WPFしか、っていうかハンドルの概念がないのだろ
一応同じプロセスなら
var w = (Window)HwndSourcve.FromHwnd(handle).RootVisual;

842 :デフォルトの名無しさん:2011/05/31(火) 23:35:38.74
ネタにマジレスすんなよ

843 :デフォルトの名無しさん:2011/06/01(水) 06:29:00.95
>>839
間違っています。
以上。
↓次どうぞ

844 :デフォルトの名無しさん:2011/06/01(水) 09:14:49.04
>>814>>819>>831>>832
http://www.asp.net/entity-framework/tutorials


845 :デフォルトの名無しさん:2011/06/01(水) 09:14:50.38
SqlConnectionとかでトランザクションをBeginした後ExcuteNonquery
するとして
トランザクションはどのタイミングでかかりますか?

846 :デフォルトの名無しさん:2011/06/01(水) 09:15:46.85
そりゃbeginした瞬間だろ

847 :デフォルトの名無しさん:2011/06/01(水) 11:13:01.24
特定の操作をするとサイズが大きくなるコントロールがあります。
大きくなった時にフォームからはみ出てしまうと、はみ出した部分が表示されなくなってしまいます。
はみ出した分も表示されるようにするにはどうしたらよいでしょうか。
イメージとしては、フォームの最下部にDateTimePickerを配置すると、カレンダーはフォームの外にはみ出して表示されますが、これが理想です。

848 :デフォルトの名無しさん:2011/06/01(水) 11:48:12.87
ようするにトップレベルウィンドウにすればいいんじゃね?

Control.SetTopLevel
ただし親が設定されてると例外出た

849 :デフォルトの名無しさん:2011/06/01(水) 15:21:57.42
>>844
TransactionScopeがらみはそこのどこのページ?
あと、Get StartedじゃなくてDeep Dive的なのは無いの?

850 :デフォルトの名無しさん :2011/06/02(木) 04:05:18.58
マルチすいません。
教えてほしいんですが。
C,C++なら
typedef union
{
int a;
short b;
double d;
}Union;
としたらUnionのサイズはsizeof(double)で
Union u = 1;としたら、aに1が入ると思うんですが。
C#で
[StructLayout(LayoutKind::Explicit)]
ref struct Union
{
[FieldOffset(?)]int a;
[FieldOffset(?)]short b;
[FieldOffset(?)]double d;
};
と宣言したとして、?の部分には何の数値を入れればよいのでしょうか。
ヘルプを見ると「フィールドの物理的な位置を示します。」
と書かれているのですが、物理的な位置という意味がわかりません。
どなたか教えてください。



851 :デフォルトの名無しさん:2011/06/02(木) 04:12:00.04
バイトオフセットだ

852 :デフォルトの名無しさん:2011/06/02(木) 04:17:51.36
>>850
メモリ上のレイアウトで、そのメンバーをどこに置きたいかを指定する。
Cのunion的に使いたかったら全部同じ数字入れる。
その例だと、?のところは全部0でOK。

853 :デフォルトの名無しさん:2011/06/02(木) 08:18:49.26
すみません。C#半年くらいの初心者です。
C#でゲームを作る本を探している最中なのですが、一つ教えてください。
XNAという言葉がよく出てくるのですが、C#とXNAってどういう関係になるのでしょうか?
XNAで作ったゲームはXBoxでしか実行できないのでしょうか?
私はXBoxは持ってないので、PCのWindows上でできるゲームを作りたいです。
お勧めの参考書とかあれば教えてください。

854 :デフォルトの名無しさん:2011/06/02(木) 08:49:26.96
それくらい自分で調べろよ

855 :デフォルトの名無しさん:2011/06/02(木) 09:33:47.55
義務教育を終わらせてからまたおいで

856 :デフォルトの名無しさん:2011/06/02(木) 09:34:02.89
調べてはいるんですけどね。
VisualStudioのような統合環境のゲームに特化した物がXNAってことですか?
で、その中で使われる言語はC#って感じですか?


857 :デフォルトの名無しさん:2011/06/02(木) 09:39:00.41
ぐぐった3つめに書いてあったぞ低能クン

858 :デフォルトの名無しさん:2011/06/02(木) 09:43:14.35
>>856
難しく考える必要はないよ

VC# expressをインストールして、XNA game studio インストールすれば
XNAプロジェクト作れるようになるので

XNAとは
http://game.watch.impress.co.jp/docs/20061219/3dxna.htm

XNAのインストール方法など
http://www.atmarkit.co.jp/fdotnet/directxworld/directxworld04/directxworld04_01.html

XNA Game Studio入手先
http://msdn.microsoft.com/ja-jp/xna/aa937791


XNAでゲーム製作の際に参考にするといいサイト
http://sorceryforce.com/xna/index.html


859 :デフォルトの名無しさん:2011/06/02(木) 09:47:01.72
低脳なのかなー?なんかね、MSDNとかの解説もスッと頭に入ってこない。
特に概念的な解説がね。もっと具体的に説明するとか、表現が違うだろ、って感じることばかりで。
皆さんにもありません?同じ内容の本なのに、分かりやすいのと、分かりにくいのあるでしょ?
だから、ここで別の表現をしてくれる人が居ないかな?と期待してるのですよ。
ググって理解できたなら聞かないってば。

860 :デフォルトの名無しさん:2011/06/02(木) 09:48:13.89
XNAはけっこう難しいぞw
英語の情報とC++&DirectXのサンプルコードを読む気がなければ厳しい
それでも他の言語使うのに比べれば情報はすごく多いけど
WinFormsみたいなぬるま湯環境とくらべるとかなり落差がある

861 :デフォルトの名無しさん:2011/06/02(木) 09:49:11.48
MSDNは英語サイトの直訳ぽいのでわかりにくいよ
開発慣れててもあんまり使いたくない

まあ探せばあるよ
あと慣れてくれば英語圏のフォーラム探した方がいい場合が多い
XNAって国内だとあんまり使われてる印象がないんだよな

862 :デフォルトの名無しさん:2011/06/02(木) 09:54:00.99
MSDNも最近は割と良心的だと思うんだけど、
分からないなら他のサイトを探すなり本を買うなりすれば?

863 :デフォルトの名無しさん:2011/06/02(木) 09:54:54.67
英語さえいけるならXNAほどwebでゲーム作りのまとまった高品質な情報が
大量に入手できる環境はないと思う
英語できないならC++/DirectXの書籍を買ったほうがたぶん楽

864 :デフォルトの名無しさん:2011/06/02(木) 10:02:01.95
C++とDirectXですか。
何冊か、ゲーム製作本のレビューよみましたが似たようなこと書いてました。
結局、ネイティブなAPIをC#で扱ってるだけ、みたいなこと。
XNAはそういうのを、ユーザーに意識させないインターフェースってことですか?

865 :デフォルトの名無しさん:2011/06/02(木) 10:04:49.26
まさに今XNAで書いた昔のコードを
別のライブラリに移植してる最中

XBOXで出すんじゃなければXNAはメリット少ない

866 :デフォルトの名無しさん:2011/06/02(木) 10:05:21.18
>>864
windows上の話だと単なるDirectXラッパーのようなものでしょ
あとゲームループの基本ループはXNA側で処理されてて
所定のタイミングで呼ばれる関数部分に自分でコード書いていくっていう発想

867 :デフォルトの名無しさん:2011/06/02(木) 10:10:59.86
ん?>>865>>866お二人に話を総合すると、Windows上のプログラムなら
XNAじゃないほうがいいのでしょうか?

868 :デフォルトの名無しさん:2011/06/02(木) 10:14:05.53
>>867
さあ・・・
どういうゲームを作るかにもよるしなあ
2DゲームならC++&DXライブラリという手もあるし

でもwindows PhoneだとSilverLightで開発することになるんだけど
ゲーム作る場合はXNAも使えるしねえ

WP7がどこまで伸びるかだけどw

ちなみにどういうゲーム作る予定なの?

869 :デフォルトの名無しさん:2011/06/02(木) 10:15:07.86
XNAでもよいし、XNAじゃなくてもよい
開発者がやりやすい方法でやればよいのです

870 :デフォルトの名無しさん:2011/06/02(木) 10:15:39.84
なんでもいい
OpenGLだろうとDirectXだろうとXNAだろうと基本は似たようなもんだから無駄にはならん
いまどき3Dレンダリングの知識は3D使わなくてもどのみち必須
XNAはC#と.NETが使えることに意味があるんであって、
XNAを使う部分はC++からDirectX叩くのとほとんど変わらん

871 :デフォルトの名無しさん:2011/06/02(木) 10:17:19.38
>>869
まあそうだねw
結局どこでゲームを展開したいかによって、最悪は新しく言語を習得しないといけないんだし

でもゲームの基本的な流れはどのプラットフォームでもそれほど変わらないしなあ

872 :デフォルトの名無しさん:2011/06/02(木) 10:18:12.35
XNAの欠点は、ゲームに特化しすぎてるくらいか
まー画像処理やるなら、ゲームも何も無いんだけどな
C#でDirectXやりたいけどXNAは使いたくないなら、SlimDXでも使っとけ

873 :デフォルトの名無しさん:2011/06/02(木) 10:23:24.75
はい

874 :デフォルトの名無しさん:2011/06/02(木) 10:24:34.05
Silverlight5はXNAの描画APIの一部をサポートするよ
頂点バッファとシェーダだけという漢なAPIだけど

875 :デフォルトの名無しさん:2011/06/02(木) 10:26:35.79
XNAは良くも悪くもXNAのフレームワークを持ってるので
フレームワークに頭使いたくない素人でもなんとかなる
GUIもあるしな
GUIを一通りフルスクラッチしようとすると面倒すぎる、ボスケテ


876 :デフォルトの名無しさん:2011/06/02(木) 10:28:20.49
どっちでもいい、という人は哲学的に「全ての経験は無駄にならない」的なことを言ってるんですかね?

>>865さんの話が気になってて、
XNAで作ったプログラムはXBoxじゃないと使えないのですか?
なぜ>>865さんは他のライブラリに移植させようとしてるのでしょうか?
XNAで作ったプログラムを動かすには、なにか専用のランタイムか何かがひつようってことでしょうか?

877 :デフォルトの名無しさん:2011/06/02(木) 10:30:16.42
XNAで作ったものをWindowsで動かそうとすると
XNAのランタイムが必要になる

878 :デフォルトの名無しさん:2011/06/02(木) 10:32:39.19
なるほど。やっぱり、そういうのがあるんだ。

879 :デフォルトの名無しさん:2011/06/02(木) 10:33:17.89
>>875
ならSilverlight5でいいじゃん
空域問題なしで普通にGUIの中でXNAの描画が使えるよ
今までなかった理想的な形

880 :デフォルトの名無しさん:2011/06/02(木) 10:33:47.35
国産XNAゲームといえば
まもって騎士
http://www.ancient.co.jp/~game/mamotte_knight/

881 :デフォルトの名無しさん:2011/06/02(木) 10:34:59.15
Silverlightは最近は環境良くなったのか
ちと調べてみるかね

882 :デフォルトの名無しさん:2011/06/02(木) 10:35:01.05
>>879
関連といえば
WPF上でXNAを・・・
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part9
http://hibari.2ch.net/test/read.cgi/tech/1301122694/527

883 :デフォルトの名無しさん:2011/06/02(木) 11:11:08.40
TabPageとTextBoxをList<T>で作ってTextBoxをTabPage下にTextBoxコントロールを追加してるんですけど
TabPageを削除するときにTabControlのTabPagesプロパティのRemoveメソッド使って削除するとTabIndexがずれて、正常に動かなくなるんです……
どなたかいい解決方法知らないですか?



884 :デフォルトの名無しさん:2011/06/02(木) 11:13:46.13
>>883
http://dobon.net/vb/dotnet/control/tabpagehide.html

885 :デフォルトの名無しさん:2011/06/02(木) 11:40:25.76
5年くらい前に何かのHPで「数年後はSilverlightの新型(WPF)が一般的になり、.NETは全てWPFでプログラミングされるようになる」って断言してた記事を見たなー

886 :デフォルトの名無しさん:2011/06/02(木) 11:53:23.62
10年くらい前に何かの雑誌で「数年後は生産性の高い.NETがすべてのプログラムで使用され、
OSのAPIは全て.NETで置き換えられるようになる」って断言してた記事を見たなー

887 :デフォルトの名無しさん:2011/06/02(木) 12:16:16.11
Silverlight5でXNAはさすがにまだ早いと思う。
βが出た当初よりは3Dエンジンの開発が進んできてだいぶ良くなったけどね。

888 :デフォルトの名無しさん:2011/06/02(木) 13:18:23.04
昔DrDobbsのsilverlight game contest でサンプルのソース公開してたんだが
見に行ったらもうなくなってた
誰かもってない?

889 :デフォルトの名無しさん:2011/06/02(木) 13:20:13.49
VS2010のサービスパック1もう出てたんだな
気がつかなかった

890 :デフォルトの名無しさん:2011/06/02(木) 13:21:17.54
>>888
もってたな

891 :デフォルトの名無しさん:2011/06/02(木) 13:46:34.14
>>888
これでいいのかね?
http://www.dotup.org/uploda/www.dotup.org1677488.png

892 :888:2011/06/02(木) 13:47:32.56
>>891
それだww

893 :デフォルトの名無しさん:2011/06/02(木) 14:01:39.64
http://www1.axfc.net/uploader/He/so/326519.zip

894 :888:2011/06/02(木) 14:14:10.05
>>893
おお、、、
ありがとう、助かりました

895 :デフォルトの名無しさん:2011/06/02(木) 19:10:31.93
結構人数いるのなw
14ダウンロードw

896 :デフォルトの名無しさん:2011/06/02(木) 19:32:22.65
ごめん、そのうち10回くらいは俺だわ

897 :デフォルトの名無しさん:2011/06/02(木) 19:38:11.15
なにやってんだテメー

898 :デフォルトの名無しさん:2011/06/02(木) 19:41:55.78
ときどきファイルを差し替えてるんじゃないかと気になって

899 :デフォルトの名無しさん:2011/06/02(木) 19:42:16.13
めんごめんごww

900 :デフォルトの名無しさん:2011/06/02(木) 20:02:10.12
ビルド実行した時と、セットアッププロジェクトからインストールしたものを実行した時とアプリの動作が違うんですが何が起こってるんですか?

901 :デフォルトの名無しさん:2011/06/02(木) 20:13:13.09
デバッグモード?

902 :デフォルトの名無しさん:2011/06/02(木) 20:23:39.40
>>900
デバッグ時のEXEにはデバッグ情報が内蔵されていてassartなどの危険回避コードが含まれていることがある。
それらはリリース時に削除されて制限を開放されるので、デバッグ機構に依存したコードはそこでとまる可能性がある。

903 :デフォルトの名無しさん:2011/06/02(木) 20:26:30.35
そんなざっくりした質問に答えられたらエスパー認定。
何が起こってるんですか?って。
第三次大戦だ、とでも言ってほしいのかなw

904 :デフォルトの名無しさん:2011/06/02(木) 20:41:00.92
違うんです
リリースビルドしたEXEファイルをそのまま配布して実行jした時は異常がでないんです
なので、セットアッププロジェクトに原因があるとしか思えないんです

905 :デフォルトの名無しさん:2011/06/02(木) 20:44:16.57
配布先はXPモードで、異常個所はウィンドウのサイズと位置を変更するコードを実行した時、ウィンドウの変更前の描画が残像するんです

906 :デフォルトの名無しさん:2011/06/02(木) 20:53:08.27
すいません再起動したら直りました
初めてなもので原因が無限に頭の中で広がってしまいすいません

907 :デフォルトの名無しさん:2011/06/02(木) 20:57:35.55
互換性の問題かな??
デスクトップに残るならXPモードの問題。アプリケーションに残るのなら再描画タイミングの問題。
としかいえないな〜。

908 :デフォルトの名無しさん:2011/06/02(木) 20:58:15.50
あらま。ま、うまくいってよかったよ。

909 :デフォルトの名無しさん:2011/06/03(金) 20:22:22.37
directXでMIDIを再生したいのですが何てキーワードのものを使うのでしょうか?
Managed DirectXというのでしょうか?

910 :デフォルトの名無しさん:2011/06/03(金) 20:24:44.89
MCI

911 :デフォルトの名無しさん:2011/06/03(金) 21:04:14.54
DirectMusicってもう廃止されてるぞw
まあMIDI自体がもう…

912 :デフォルトの名無しさん:2011/06/03(金) 21:38:25.91
ツールボックスにtextboxを置きました
これをウィンドウの大きさに合わせてサイズを調節する為には何のプロパティで設定したらよいのでしょうか?

913 :デフォルトの名無しさん:2011/06/03(金) 21:40:35.94
ウィンドウの大きさに合わせてサイズを調節する、ってどういう意味だよ。
そんなアバウトな理解でコード書けるの?

914 :デフォルトの名無しさん:2011/06/03(金) 21:41:20.84
Anchorプロパティ
Dockプロパティ

915 :デフォルトの名無しさん:2011/06/03(金) 21:50:37.33
>>914
おおお!!!Anchorで上右下左設定したらウィンドウのサイズに合いました
ありがとうございます

916 :デフォルトの名無しさん:2011/06/03(金) 21:54:54.64
>>915
単にフルにできればいいなら
Dock を Fillにすればいいだけなんだけどね

917 :デフォルトの名無しさん:2011/06/03(金) 22:47:31.84
ツールボックスからフォームにWindowsMediaPlayerを貼り付けました
axWindowsMediaPlayer1のURLプロパティにファイルへのパスを設定しました
DockプロパティにはFillにしてフルにしました
これで起動すると勝手に動画が流れます
つづき

918 :デフォルトの名無しさん:2011/06/03(金) 22:51:37.52
そして起動したプログラムを最大化してみたのですが、動画表示部分(映像)がウィンドウに合わせて大きくなりません
映像の周りの黒い部分はウィンドウのサイズには合いますが。。。
ウィンドウのサイズに映像部分のサイズをあわせる事って出来ませんか?

919 :デフォルトの名無しさん:2011/06/03(金) 22:57:43.80
>>918
それはオーバーレイが追従してない感じだね

920 :デフォルトの名無しさん:2011/06/03(金) 22:59:57.46
stretchToFit?

921 :デフォルトの名無しさん:2011/06/03(金) 23:06:03.50
使ったことは無いけど一般的なメディアプレーヤーだとオーバーレイ表示で負荷を下げるし
それが有効になってるからウインドウをサイズを変えても動画の表示サイズが追従しないだろうね

http://blogs.dion.ne.jp/anis7742/archives/6826175.html

まあオーバーレイをOFFにすれば追従するだろうけど負荷があがるかもしれない

922 :デフォルトの名無しさん:2011/06/03(金) 23:08:14.35
http://msdn.microsoft.com/en-us/library/dd562388%28v=vs.85%29.aspx

923 :デフォルトの名無しさん:2011/06/03(金) 23:16:02.41
C#でWindowsの設定をしたいと考えています。

具体的には、「マイ コンピュータ」右クック>「プロパティ」>「詳細設置」>「設定」
の「パフォーマンスを優先する」という設定をC#のアプリケーションから
行いたいのですが、どうしたらよいでしょうか。

924 :デフォルトの名無しさん:2011/06/03(金) 23:19:23.25
>>920-922
stretchToFitをtrueにして解決しました
完全にウィンドウに合わせるのは無理ですね、出来ても映像がおかしくなるからやらないほうがいいのでしょうか?????
オーバーレイの無効がいまいち探せませんでしたがURL先はたいへん参考になりました
ありがとうございます

925 :デフォルトの名無しさん:2011/06/03(金) 23:51:48.45
ちょっと調べてたらGUIGraphicsContextというのにOverLay関連を設定できそうだけど
GUIGraphicsContextの所在がよくわからんのでC#から使えるのすらわからんw

926 :デフォルトの名無しさん:2011/06/03(金) 23:52:13.09
ttp://dobon.net/vb/dotnet/file/getfiles.htmlのページのサンプル
string[] files = System.IO.Directory.GetFiles(
@"C:\test", "*");

//ListBox1に結果を表示する
listBox1.Items.AddRange(files);

をするとlistboxにファイル一覧が表示されますが
これをファイル名だけ表示させる方法ってございませんか?

927 :デフォルトの名無しさん:2011/06/03(金) 23:58:36.60
>>926
http://blog.goo.ne.jp/hi_tag/e/8ad210f89706cadf867dc40a9f23d74a

928 :デフォルトの名無しさん:2011/06/04(土) 00:53:25.45
AnyCPUからx86に変えたら
System.Diagnostics.Debug.Print();
が機能しませんこれはあきらめるしかないんですか?

929 :デフォルトの名無しさん:2011/06/04(土) 00:57:36.74
OSもよくわからんし64bitなのか32bitもよくわからんし
それで質問するほうがどうかしてる


930 :デフォルトの名無しさん:2011/06/04(土) 09:44:26.19
>>927
ありがとうございます
この方法ではある1つのファイルに対してのファイル名を取得する事はできるようです
string[] files = System.IO.Directory.GetFiles(@"C:\test", "*");のように
あるフォルダ以下のファイル名だけ取得するにはどうしたらいいでしょうか?

931 :デフォルトの名無しさん:2011/06/04(土) 09:52:39.03
webAPIで遊んでみたいなと思い、下記のAPIを使ってみようと思いました
ttp://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%AD%A1%BC%A5%EF%A1%BC%A5%C9%CF%A2%C1%DB%B8%ECAPI

「webAPI C#」で色々探してみたら「web参照」をすれば良いらしいことがわかったのですが、
いざ参照させてみようとすると
・URL

932 :デフォルトの名無しさん:2011/06/04(土) 09:54:32.87
途中送信してしまいました…ごめんなさい。
(続きから)
いざ参照させてみようとすると、
・URLのドキュメントは既知のドキュメントの種類として認識されませんでした。
・'DISCOドキュメントからのレポート'(URL中略)で探索ドキュメントが見つかりませんでした。
・ドキュメント形式を認識できません。

…などと色々エラーメッセージが出てきてしまいます。
解決方法を教えていただけないでしょうか、宜しくお願いします。

933 :デフォルトの名無しさん:2011/06/04(土) 10:06:23.41
WebのAPIっていうのは、URLに引数を埋め込んでHTTPでリクエストしたら
処理結果が返ってくるというだけのもの。web参照とかいらない。
URLへの引数の埋め込み方はAPIによるし言語関係ないから知らん。
URLができたらHttpWebRequestを使って結果を取得するだけ。

934 :デフォルトの名無しさん:2011/06/04(土) 10:10:40.97
>>933
そもそも「web参照を使う」という方法が間違っていたということなのですね…恥ずかしい…
素早いお答えをありがとうございます、意味のある恥をかけて良かったです

935 :デフォルトの名無しさん:2011/06/04(土) 10:29:55.34
すまんXML-RPCか
引数はURLじゃなくてリクエストのbodyにXMLとして書き込まないとダメ
XML-RPC.NETというライブラリがあるみたいだから試してみたら

936 :デフォルトの名無しさん:2011/06/04(土) 10:47:09.31
>>935
はい、自分も先ほどURLのAPIを読み返して「XML-RPCってなんだろう?」
と思い色々探して先ほどXML-RPC.NETに至ったところです
他者のサンプルなどを参考に進めていきたいと思います。

本当にご丁寧にありがとうございます!

937 :デフォルトの名無しさん:2011/06/04(土) 11:24:15.77
リスとぼっくで選択されている所の文字列を表示したいのですが
MessageBox.Show(listBox1.SelectedItem);って書いたら
エラー 1 'System.Windows.Forms.MessageBox.Show(string)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
エラー 2 引数 1: 'object' から 'string' に変換できません
が出ます
どうやったらメッセージボックスを表示できますか?

938 :デフォルトの名無しさん:2011/06/04(土) 11:26:40.85
キャストする
どうやってキャストするんですかと書き込んだらお前のパソコン壊す

939 :デフォルトの名無しさん:2011/06/04(土) 11:41:53.44
イベントについて
VC#の右下のプロパティでMouseClickイベントとKeyDownイベントにexecJikkouって名前をつけたら勝手にForm1.csにコードが付きました
ビルドして実行するとそれぞれのイベント処理を実行しますが、メソッド名がexecJikkou同じなのになぜちゃんとそれぞれのexecJikkou内に書いた処理が実行できるのでしょうか?

940 :デフォルトの名無しさん:2011/06/04(土) 11:44:49.40
日本語でOK

941 :デフォルトの名無しさん:2011/06/04(土) 11:46:13.62
>>939
Form1.Designer.csの方にイベントハンドラを設定するコードが追加されてる
確認してみろ

942 :デフォルトの名無しさん:2011/06/04(土) 11:54:31.70
Designer.csを見たら
this.listBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.execJikkou);
this.listBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.execJikkou);
ってなってました。メソッド名ってかぶらないようにつけておいたほうが良いですか?

943 :デフォルトの名無しさん:2011/06/04(土) 12:34:11.85
同じ処理を行うなら問題ない

944 :デフォルトの名無しさん:2011/06/04(土) 12:36:02.79
>>938
どうやってキャストするんですか?

945 :デフォルトの名無しさん:2011/06/04(土) 12:42:44.12
>>943
まじすか
同じ処理はしてないのですが名前はかぶってるのにちゃんと別々の処理をしてるのです

946 :デフォルトの名無しさん:2011/06/04(土) 12:54:06.72
>>945
じゃあそれでいいじゃん
あなたの思惑通りに正しく動いているなら、それ以上何か問題があるの?

947 :デフォルトの名無しさん:2011/06/04(土) 12:56:02.51
>>934
C#とかJavaの世界は、どういう通信方式でどういうデータ形式で…ってのをきっちり決めるから
Visual StudioとかでWeb参照するだけでAPI利用できる。

LLな世界だと、その手の規約なく、オレオレ仕様なAPIが多いから、
自前でURLにアクセスするコード書かないと行けなかったりする。
そういう文化。

948 :デフォルトの名無しさん:2011/06/04(土) 12:56:16.44
>>946

>>939

949 :デフォルトの名無しさん:2011/06/04(土) 12:56:25.52
個人の自由だけどexecJikkouって名前は何とかならない物かと・・・

950 :デフォルトの名無しさん:2011/06/04(土) 12:58:49.30
>>942
それで別の処理される?
スペルミスしてるとかなく?
元のコード完全にコピペ?

あと、execJikkouって、犬ドッグとか猿モンキー的な造語?

951 :デフォルトの名無しさん:2011/06/04(土) 13:00:39.15
>>949
VBやってるとそんなんばっか

952 :デフォルトの名無しさん:2011/06/04(土) 13:01:36.64
それはVBのせいじゃないだろw

953 :デフォルトの名無しさん:2011/06/04(土) 13:04:12.27
じゃあ訂正する
VBの仕事してるとそんな奴ばっか

954 :デフォルトの名無しさん:2011/06/04(土) 13:06:50.18
>>948
面倒だからコード貼れ

>>2http://ideone.com/使えよ
使わなかったらへし折るから

955 :デフォルトの名無しさん:2011/06/04(土) 13:28:10.06
>>950
ヒント:引数が違う

956 :デフォルトの名無しさん:2011/06/04(土) 14:55:01.02
キーボードを押してる間だけ処理を実行するのですが、
これをキーボードを離したときにまだ実行してない溜まってる処理をキャンセルする方法ってございませんか?

957 :デフォルトの名無しさん:2011/06/04(土) 15:19:11.67
>>945
メソッドのオーバーロード でぐぐれカス
でもイベントハンドラにそんなキチガイみたいな名前つけないほうがいいよ
VisualStudioならイベントの欄をダブルクリックすればデフォルトの名前つくから
そのなかでexecJikkouでもexecShokeiでも好きな名前のメソッドを呼んだらいいよ

958 :デフォルトの名無しさん:2011/06/04(土) 15:22:50.08
>>956
MouseDown,MouseUpでフラグの上げ下げして
処理してるメソッド内でそのフラグみれば?

メッセージキューにWM_LBUTTONDOWNとか溜まってたらどうなるか知らんけど

959 :デフォルトの名無しさん:2011/06/04(土) 15:44:38.06
>>942
引数が違うだろうからそこから推論されてるんじゃね?

960 :デフォルトの名無しさん:2011/06/04(土) 15:57:59.20
俺も試してみたが引数が違うだけで動いた
C#ってきもすぎ

961 :デフォルトの名無しさん:2011/06/04(土) 16:02:49.63
>>960
それは多重定義が理解できない君がアホなだけだよ。

962 :デフォルトの名無しさん:2011/06/04(土) 16:04:04.86
>>960
C++やJavaをやったことがないのか?

963 :デフォルトの名無しさん:2011/06/04(土) 16:08:35.67
splitContainer1.panel1を非表示にしたときに
splitContainer1.panel2をウィンドウいっぱいに広げるのは何のプロパティを設定したら出来ますでしょうか?

964 :デフォルトの名無しさん:2011/06/04(土) 16:24:59.50
>>963
panel1collapsedは?

965 :デフォルトの名無しさん:2011/06/04(土) 16:38:14.59
>>964
出来ました!ありがとうございます

966 :デフォルトの名無しさん:2011/06/04(土) 16:56:16.97
>>961-962
動的型付けでオーバーロードが仕様上意味をなさない言語に特有の患者です
お察し下さい

967 :デフォルトの名無しさん:2011/06/04(土) 17:03:50.83
>>966
悪いがPHPが出来ます

968 :デフォルトの名無しさん:2011/06/04(土) 17:05:42.24
>>967
別に悪くないよ
そんなに自分を卑下しないで

969 :デフォルトの名無しさん:2011/06/04(土) 17:28:32.36
お前らは俺がちょっと目を離すとケンカしたがるな
いい子にしてなさい

970 :デフォルトの名無しさん:2011/06/04(土) 17:42:54.37
ほね」。

971 :デフォルトの名無しさん:2011/06/04(土) 17:51:51.55
>>970
死ね

972 :デフォルトの名無しさん:2011/06/04(土) 18:00:28.13
Real Playerの動画再生ってC#で出来ないんですか?
音声しか再生できないのですが・・・

973 :デフォルトの名無しさん:2011/06/04(土) 18:04:16.07
今日も糞みたいな質問ばかりだな
ママのおっぱい吸ってたほうがいいような想像力のないガキばかり

974 :デフォルトの名無しさん:2011/06/04(土) 18:08:47.06
>>971
ほね」。

975 :デフォルトの名無しさん:2011/06/04(土) 18:17:13.61
終了時にForm1のサイズと位置をファイルに保存して、
起動時にファイルからForm1のサイズと位置を読み出して、位置とサイズを復元するには何を使えばいいですか?

976 :デフォルトの名無しさん:2011/06/04(土) 18:19:44.77
>>975
http://dobon.net/vb/dotnet/programing/mysettings.html

977 :デフォルトの名無しさん:2011/06/04(土) 18:20:22.84
テンプレ修正したほうがいいな

×なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
○なお、テンプレ2行目が読めないクズ回答者は邪魔なので後述のC#相談室に移動して下さい。
◎なお、テンプレ2行目が読めないクズ回答者は誰も必要としていないので後述のC#相談室に移動して下さい。

978 :デフォルトの名無しさん:2011/06/04(土) 18:27:17.84
誰が立てるんだか
このまま立てなくてもいいんじゃねえか?

979 :デフォルトの名無しさん:2011/06/04(土) 18:30:07.17
一応つっこんでおくけど、テンプレの2行目を穴があくほど読んでも
レベルの低すぎるアホな質問者を罵倒禁止という解釈は不可能だな。

まあ、どんなテンプレだろうと合意した覚えもない縛りに従うつもりは一切ないけどねw


980 :デフォルトの名無しさん:2011/06/04(土) 18:38:03.49
テンプレではなくジェネリクス

981 :デフォルトの名無しさん:2011/06/04(土) 18:39:53.23
型パラメータはどこですか?

982 :デフォルトの名無しさん:2011/06/04(土) 18:46:52.81
>>979
つっこみになってるのか理解に苦しむが
少なくともレベルが低い相手に無駄なレスをしてるお前のほうがいらない子

983 :デフォルトの名無しさん:2011/06/04(土) 18:49:14.63
盛り上がってると思ったらオーバーロードのことだったのか

984 :デフォルトの名無しさん:2011/06/04(土) 18:58:47.81
この流れなら聞ける
AnyCPUからx86にビルドを変更したらデバッグプリントが出力に出力されなくなりましたどうしてですか?
win7、64bitOS、VisualStudioVer2011Proです
あと、XNAのクラスライブラリをAnyCPUでビルドできません、C#、XNADLL共にx86だとビルド出来るんですがどうなってるんですか?

985 :デフォルトの名無しさん:2011/06/04(土) 19:13:41.80
>>984
この間の人か

32bitオンリーってことじゃないの?>XNA
ついこの間こんな話があった
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part9
http://hibari.2ch.net/test/read.cgi/tech/1301122694/528-532

986 :デフォルトの名無しさん:2011/06/04(土) 19:21:51.73
その話に続いてるんですが、x86でビルドにするとデバッグ情報が出てこないんです
なので、XNAはDLLだとAnyCPUでもx64から呼べるということなのDLLにしても呼べないんです
XNAはDLLだと絶対呼べるらしいですがもう疲れたので、x86にしたのですがデバッグ情報が出てこないんです

987 :デフォルトの名無しさん:2011/06/04(土) 19:42:36.08
managed directxってもう開発してないから今はXNAかSlimSDKの2択が主流ですか?

988 :デフォルトの名無しさん:2011/06/04(土) 19:44:57.82
左様でござる

989 :デフォルトの名無しさん:2011/06/04(土) 19:47:40.63
ちょっとしたことで一部でDirectX使いたいだけなら
そこだけC++/CLIかネイティブのC++で書いてDLLにしたほうが手っ取り早い

990 :デフォルトの名無しさん:2011/06/04(土) 19:52:34.84
DirectSoundだけが使いたいんですが、自分でDLL作ったり出来るまでのスキルは持ち合わせていません
この場合は何のライブラリを利用するのが得策ですか?

991 :デフォルトの名無しさん:2011/06/04(土) 19:57:14.50
DirectX AudioやXAudioって基本的に「書きこんだ波形データを再生する」だけなんだぞ?そんなの扱える?
音鳴らしたいだけならDirectXなんか面倒なだけ
WindowsAPIだけでいい

992 :デフォルトの名無しさん:2011/06/04(土) 19:58:55.77
DirectSoundでMIDIを鳴らしたい(独特の音なので)のですがWIndowsAPIのほうが簡単ですか?

993 :デフォルトの名無しさん:2011/06/04(土) 20:01:18.96
そもそもDirectSoundでMIDIは鳴らせない
MIDI鳴らせるのはDirectMusicだけどすでに廃止されてるから使っちゃダメ
WindowsAPI一択

994 :デフォルトの名無しさん:2011/06/04(土) 20:08:18.61
独特の音とか言ってるところみると、MIDIが何だかよく分かってなさそうw

995 :デフォルトの名無しさん:2011/06/04(土) 20:11:24.68
確かに謎だなw
どうやってMIDIで独特の音を鳴らすのか

996 :デフォルトの名無しさん:2011/06/04(土) 20:17:01.50
DirectMusicで鳴らせるのでしたか、失礼しました
DirectMusicのソフトウェア音源でMIDI鳴らすという事です

997 :デフォルトの名無しさん:2011/06/04(土) 20:24:33.91
何度も言うがDirectXのMIDIは終わっているし無理して使うメリットもない。
.NETから使えるメジャーなラッパーも無い。

998 :デフォルトの名無しさん:2011/06/04(土) 20:25:47.81
WindowsAPIを調べてやってみることにします

999 :デフォルトの名無しさん:2011/06/04(土) 20:27:11.75
x86でデバッグ出力をする方法を教えてください!

1000 :デフォルトの名無しさん:2011/06/04(土) 20:30:06.14
ふらっとC#,C♯,C#(初心者用) Part75
http://hibari.2ch.net/test/read.cgi/tech/1307186987/

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

214 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)