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

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

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

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

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

■関連スレ
C#, C♯, C#相談室 Part65
http://hibari.2ch.net/test/read.cgi/tech/1300611299/
ミスターサタンの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/10(日) 16:57:46.61
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。

直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
3デフォルトの名無しさん:2011/04/10(日) 17:00:22.44
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。

これテンプレからはずせよ
誰も答えないじゃないか

しかも荒らしばっかり
もうこのスレ機能してないから
相談室に統合しろ

ってことで、質問者は相談室へ
ここは荒らしの雑談所となりました
4デフォルトの名無しさん:2011/04/10(日) 17:03:56.99
Nullable<T>は暗黙でT型へキャスト可能であるべきと統計的結果と100倍と例外と>>144は出禁です
5デフォルトの名無しさん:2011/04/10(日) 17:04:52.22
>>3
お前はミスターサタンの相談室な。
6デフォルトの名無しさん:2011/04/10(日) 17:07:42.91
ここで真面目に質問したければコテ付けた方がいいかもね
7デフォルトの名無しさん:2011/04/10(日) 17:16:58.38
まともな質問ならちゃんと答えてもらえるだろ
8デフォルトの名無しさん:2011/04/10(日) 17:38:44.56
>>4
もっとよく思い出してみなよ。
9デフォルトの名無しさん:2011/04/10(日) 17:40:30.68
100倍の結果は出たの?
10デフォルトの名無しさん:2011/04/10(日) 17:40:30.86
>>4
もっとよく思い出してみなよ。
11デフォルトの名無しさん:2011/04/10(日) 20:46:06.41
MSILの勉強をしたいのですが、C#のコード或いはexeからMSILのコードを生成する方法はありますか?
12デフォルトの名無しさん:2011/04/10(日) 20:49:23.32
ildasm
13デフォルトの名無しさん:2011/04/10(日) 20:51:04.07
>>11
ここは荒らしの雑談所です


C#, C♯, C#相談室 Part65
http://hibari.2ch.net/test/read.cgi/tech/1300611299/
14デフォルトの名無しさん:2011/04/10(日) 20:51:53.75
>>12
最初調べたときに真っ先にそれについて調べたのですが、
ildasm.exeが無いのです。
どこかDLできる場所はありますか?
15デフォルトの名無しさん:2011/04/10(日) 20:54:04.90
Windows SDKには入ってるんじゃないの?
16デフォルトの名無しさん:2011/04/10(日) 20:55:00.05
>>15
ありました。
ありがとうございます!

>>13
次から移動します。ありがとうございます。
17デフォルトの名無しさん:2011/04/10(日) 23:31:13.50
荒らしまわってる当人の犯行声明だから確実だよな。
18デフォルトの名無しさん:2011/04/11(月) 04:36:45.32
これ解決できませんおねがいします

フォームを常に手前に表示にはできたんですが、フォーム上のコントロールをクリックしたりして操作する時
他のアプリから手前に表示中のフォームにフォーカスが移らないでフォームを操作するにはどうすればいいんですか?
19デフォルトの名無しさん:2011/04/11(月) 05:21:33.95
>>18
継承ハンドラでオーバースウェイすればいい
20デフォルトの名無しさん:2011/04/11(月) 12:22:47.08
バインディングについて質問です。

あるコンボボックスの値をバインディングしており、その値をキーに
View内のコンポーネントのVisibleを変化させたいのですが、キーのプロパティが
変わらないので常に同じ動作になってしまいます。
以下ソース一部です。またMPVモデルをしようしています。
どのように修正すればよいのでしょうか?分かり難い説明ですいません;w;

プレゼンター内処理

 _view.コンボボックス名.SelectionChangeCommitted += (x, y) =>_model.ChangeConnection();

 _view.とあるコンポーネント.DataBindings.Add("Visible", _model, "");


モデル内処理
public bool Compornet{ get; set;}//実際にはPropertyChangedイベントを呼び出しています。

public void ChangeConnection()
{
    switch(Conneciton)
{
ViweのVisibleプロパティを変える処理
}
}
21デフォルトの名無しさん:2011/04/11(月) 12:29:54.30
それMVPになってないよ
PがVのクラスに直接依存しちゃいかん
22デフォルトの名無しさん:2011/04/11(月) 12:37:41.75
インターフェイス通してPがVを操作するのがMVPパターン
そのインターフェイスも、コントロールを直接公開するのはダメで
たとえばCanEditNameみたいなプロパティを公開するようにする
そもそもコントロールとかを分離するのが目的だからそこ崩したらパターンの意味がない
バインディングは諦めたほうが
23デフォルトの名無しさん:2011/04/11(月) 12:39:13.09
WPFの話になってるの?
24デフォルトの名無しさん:2011/04/11(月) 12:46:25.81
DataBindings.Addとかどう見てもWinForms
WPFならMVVMにしてVMのプロパティにVのプロパティをバインドしまくればいいだけ
25デフォルトの名無しさん:2011/04/11(月) 12:54:19.55
キーのプロパティが変わらなくて困ってるなら
パターン無視してキーのプロパティを無理やり変える方法をまず考えろ
2620:2011/04/11(月) 13:14:47.22
むむぅ。。。

_view.コンボボックス名.SelectionChangeCommitted += (x, y) =>_model.ChangeConnection();
の文がMVPパターンに沿ってないのでしょうか?
イベントをバインディングする方法はこれかとおもっていましたが・・・
MVPってM(model=>処理内容など) P(Presenter=>バインディングするクラス)
V(View=>ユーザーインターフェイス部)ってことですよね?

なのでプレゼンター部がViewのプロパティやイベントをModel部とバインディングする・・・と
思っているのですが
2723:2011/04/11(月) 13:20:03.66
>>24
そうなのか
WinFormのバインドは使ったことないのでわからんかった
28デフォルトの名無しさん:2011/04/11(月) 16:47:41.95
環境変数のpathの設定って大文字小文字区別するの?
ちゃんと小文字にして再起動したら警告消えたが、VISTAだけ?
29デフォルトの名無しさん:2011/04/11(月) 17:39:00.76
うん
30デフォルトの名無しさん:2011/04/11(月) 18:49:15.45
ああ、また警告でた
Visual Studio2010 VC#のExpressだけど

LIB に C:\Program Files\Microsoft Visual Studio 10.0\VC\lib

を設定するので合ってる?
31デフォルトの名無しさん:2011/04/11(月) 18:49:54.50
節子、それC++のLIBや
32デフォルトの名無しさん:2011/04/11(月) 18:55:01.39
やっぱそうか
C#のLIBが見つからなくてまさかこれ・・・なわけなかったか

ついでにC#のはどこを設定すればいいの?
33デフォルトの名無しさん:2011/04/11(月) 18:56:22.77
設定なんかいらんよ
誰に設定しろって言われたんだ?
34デフォルトの名無しさん:2011/04/11(月) 18:57:51.41
基本的にインストール終わったなら、そのままの状態でなんの設定しなくとも動くはず。
35デフォルトの名無しさん:2011/04/11(月) 18:59:10.19
問題なく動くんだけど警告が気になって消そうとしても上手く行かない感じです
36デフォルトの名無しさん:2011/04/11(月) 19:02:12.37
警告警告うっせえよ
警告の中身を一字一句省略せずに書けカス

コールセンターに電話する時エラーが出るんですけどで解決すると思うのかお前は
37デフォルトの名無しさん:2011/04/11(月) 19:05:41.42
'LIB 環境変数' で指定された無効な検索パス ' ' です -- '指定されたパスが見つかりません。 '
38デフォルトの名無しさん:2011/04/11(月) 19:05:42.33
エスパーしる
39デフォルトの名無しさん:2011/04/11(月) 19:11:42.67
ほんとにC#プロジェクト?
40デフォルトの名無しさん:2011/04/11(月) 19:29:32.38
41デフォルトの名無しさん:2011/04/11(月) 19:34:01.54
2010はC:\Program Files\Microsoft Visual Studio 10.0\SDK\v3.5があるけど、BinだけでLibはないっぽい
しかも中身は空

LIB環境変数が存在してるせいで起きてる気がする
42デフォルトの名無しさん:2011/04/11(月) 19:49:05.96
>>41
あーあるねえ

VC++関連を入れたあとアンインストールしたときに
メッセージでまくったな
43デフォルトの名無しさん:2011/04/11(月) 20:37:52.98
FontDialog.Font プロパティのMSDNのサンプルコードですが
private void button1_Click(object sender, System.EventArgs e)
{
fontDialog1.ShowColor = true;

fontDialog1.Font = textBox1.Font;
fontDialog1.Color = textBox1.ForeColor;

if(fontDialog1.ShowDialog() != DialogResult.Cancel )
{
textBox1.Font = fontDialog1.Font ;
textBox1.ForeColor = fontDialog1.Color;
}
}
== DialogResult.OKじゃなくて
!= DialogResult.Cancel
と紛らわしい!(と感じる)書き方してるのは何故なんでしょうか?
44デフォルトの名無しさん:2011/04/11(月) 20:39:28.20
>>43
コード書いた人の好み?

その紛らわしいと感じるのもあなたの主観だよね
45デフォルトの名無しさん:2011/04/11(月) 20:56:05.32
DialogResult.AlmostOK とかあるかも知れないと思ったんじゃね
46デフォルトの名無しさん:2011/04/11(月) 20:56:05.72
お願いだからコード書いた人に聞いてくれよ

意味は
47デフォルトの名無しさん:2011/04/11(月) 20:57:22.06
ここMSDNのヘルプセンターじゃないんだけどね
ましてやそこらへんのどこの誰が書いたとも分からんブログの質問掲示板でもねえ
48デフォルトの名無しさん:2011/04/11(月) 21:06:32.53
肯定的に書けって言うからDialogResult.OKの方がいいとは思う。
49デフォルトの名無しさん:2011/04/11(月) 21:06:51.39
>>47
すっこんでろよ
50デフォルトの名無しさん:2011/04/11(月) 21:11:12.82
ちょっと質問したら面白そうなサンプルコード探してくる
51デフォルトの名無しさん:2011/04/11(月) 21:14:31.37
>>26
Presenterがコントロールを直接触るのは完全にMVPに反してるんだよ
http://msdn.microsoft.com/ja-jp/magazine/ff955232.aspx
http://msdn.microsoft.com/ja-jp/magazine/ee336019.aspx
どこで知ったのかしらないけどこのへんちゃんと読んで「何が目的なのか」理解しようよ
52デフォルトの名無しさん:2011/04/11(月) 21:15:57.22
DialogResult 列挙体
OK
Cancel
Abort
Retry
Ignore

つまりだ。"中止" とか"無視"でも 構わん!いてまえ!ってコードだわ。わかったか!
53デフォルトの名無しさん:2011/04/11(月) 21:19:50.19
ShowDialogメソッドも同じサンプルだから
元は他のダイアログのサンプルからコピって来た奴なんじゃないかと推測
54デフォルトの名無しさん:2011/04/11(月) 21:34:02.36
動けばいいんですよ
55デフォルトの名無しさん:2011/04/11(月) 21:38:35.55
DialogResultって返す値が実装依存の微妙な設計だよね
どうせ統一して扱えないんだからFormのプロパティじゃなくて各自勝手に実装するようにすればよかったのに
WPFはbool?になってるけど
56デフォルトの名無しさん:2011/04/11(月) 21:42:34.41
IDOKとかの名残だよな
でも上手い方法が思い付かないから妥協しちゃう
57デフォルトの名無しさん:2011/04/11(月) 23:51:03.97
InitializeComponentメソッドで発生するイベントをキャンセルするにはどうしたらよいでしょうか
例えばラジオボタンのCheckedChangedイベントなどです
58デフォルトの名無しさん:2011/04/11(月) 23:54:42.39
+=があるのなら-=もある。つまりそういうことさ。
59デフォルトの名無しさん:2011/04/11(月) 23:56:00.70
適当にフラグでも使ってイベントハンドラの方でチェックすれば
60デフォルトの名無しさん:2011/04/11(月) 23:56:21.57
>>57
貴方にそれを編集する権限があるなら、InitializeComponentメソッドをダイレクトに変更できないかな?
61デフォルトの名無しさん:2011/04/12(火) 00:26:03.72
>>58
それも考えたのですが、例えばラジオボタンであればそのインスタンスが
生成されるのがInitializeComponentメソッド内なので、ちょっと難しいです

>>60
同じくInitializeComponentメソッド内はちょっといじれないのです・・・

>>59
現在はその方法をとっているのですが、何かいい案があればと思い聞いてみました
ありがとうございました
62デフォルトの名無しさん:2011/04/12(火) 00:27:21.24
ていうかInitializeComponentはプロパティ変えた後にイベントハンドラ付けるだろ
なんか別の原因がありそう
63デフォルトの名無しさん:2011/04/12(火) 00:46:31.51
マウスオーバーしたら、あらぬ方向にマウスポインタをワープさせちゃえばクリック出来なくなるぜ?!
64デフォルトの名無しさん:2011/04/12(火) 00:50:29.48
別のプロセスからSendMessageされる
65デフォルトの名無しさん:2011/04/12(火) 00:50:50.96
>>61
イベントの紐付けを、デザイナの機能を使わず自分で書けばOK。
タイミングはOnLoadでもOnShownでもInitializeComponent呼び出しの後でも必用に応じて。
66デフォルトの名無しさん:2011/04/12(火) 01:02:12.45
フレームワークにzipに関する機能が実装されないのはライセンスかなんかの問題?
DotNetZipがあるのはいいけど、そろそろ標準で含めて欲しい・・・
67デフォルトの名無しさん:2011/04/12(火) 01:10:19.52
>>66
ネームスペースがMSにならないのであれば、かなり高度な実装が要求されると思うが。
68デフォルトの名無しさん:2011/04/12(火) 01:16:35.15
とあるゲームでは自由にunzipできると聞いた
69デフォルトの名無しさん:2011/04/12(火) 01:23:00.80
標準に突っ込むんであれば、Zlibあたりに依存した実装って言うのはイレギュラーといわざるをえんだろう。
70デフォルトの名無しさん:2011/04/12(火) 01:26:57.96
うちの会社ではどっかの中学生が自作したライブラリを組み込んでるから問題ない
71デフォルトの名無しさん:2011/04/12(火) 01:37:50.59
うちも幼女が作ったライブラリ使ってるわ
72デフォルトの名無しさん:2011/04/12(火) 01:41:40.11
LINQいいよね〜
73デフォルトの名無しさん:2011/04/12(火) 06:19:17.09
>>70-72
死ねよ
74デフォルトの名無しさん:2011/04/12(火) 07:40:29.21
どういう状況下でZIPを操作する必要性が出るん
75デフォルトの名無しさん:2011/04/12(火) 09:37:06.05
以下のディレクトリの指定の仕方教えて下さい

C:\Documents and Settings\(USER)\Application Data\
76デフォルトの名無しさん:2011/04/12(火) 09:39:34.67
77デフォルトの名無しさん:2011/04/12(火) 09:41:10.92
Environment.SpecialFolderのApplicationDataを同クラスのGetFolderPathに渡す
78デフォルトの名無しさん:2011/04/12(火) 09:49:11.40
>>76
>>77
ありがとうございます
自分のPCだったら
現在の非ローミングユーザーって事でOKですか?
つまり、LocalApplicationData の方ですかね?
79デフォルトの名無しさん:2011/04/12(火) 09:53:33.46
こんにちは

テキストファイルを読み込み表示したいのですが、
普通にStreamReader.ReadToEndやFile.ReadAllTextを使うと、
ファイルサイズが100MBや1GBの場合重く、読み込みに時間がかかり最悪フリーズしてしまいます。
どうやって開いたらいいのでしょうか?

ご教授くださいm(_ _)m
80デフォルトの名無しさん:2011/04/12(火) 09:54:13.63
非ローミングなら>>75じゃないだろ
ありがとうございますと言っておいて提示された情報に目通さずに聞くって舐めてんの?

>LocalApplicationData
>現在の非ローミングユーザーのApplication Dataフォルダ
>C:\Documents and Settings\UserName\Local Settings\Application Data
81デフォルトの名無しさん:2011/04/12(火) 09:54:37.93
自己解決

非ローミングだとこっちでした
C:\Documents and Settings\(USER)\Local Settings\Application Data

失礼しました
82デフォルトの名無しさん:2011/04/12(火) 09:55:20.70
>>80
はい、そうでした
失礼しました
83デフォルトの名無しさん:2011/04/12(火) 09:57:01.87
>>79
それ全部メモリにあげちゃっていいの?
8479:2011/04/12(火) 09:58:40.02
>>83
はい
85デフォルトの名無しさん:2011/04/12(火) 09:59:47.12
怖そうなおじさんがいっぱいいそう
質問したくてもできない
86デフォルトの名無しさん:2011/04/12(火) 10:00:02.71
巨大なファイルで時間がかかる場合はファイルマッピング利用するのがセオリーだが…
87デフォルトの名無しさん:2011/04/12(火) 10:01:05.09
>>79
一括で読み込んでフリーズするなら、分割して読み込めば良いじゃない
88デフォルトの名無しさん:2011/04/12(火) 10:03:43.46
>>84
.netの場合内部管理はUCS-2っていう2バイトコードになるので
テキストデータがS-JISだと読み込みの際に変換もやってるはずなんだよね
速度を言うならテキストデータの文字コードも考えた方がいいかもしれない
89デフォルトの名無しさん:2011/04/12(火) 10:05:30.33
VSのセットアッププロジェクトでインストーラ作ったけど
デスクトップアイコンにファイルをドロップしても正常に起動しないんだけど
なんで?
別のインストーラだと普通に起動できる
ワケワケメ?
9079:2011/04/12(火) 10:06:22.09
>>86
ファイルマッピングについて詳しく教えてください!
こちらもさっそく調べてみます

>>87
非同期で読み込めばいいのでしょうか?
9179:2011/04/12(火) 10:07:08.58
>>88
テキストファイルはutf-8になってます
92デフォルトの名無しさん:2011/04/12(火) 10:08:01.46
93デフォルトの名無しさん:2011/04/12(火) 10:10:00.61
>>92
おおおお、mjdsk
ありがとう

VSのセットアッププロジェクトはやめとくわ
94デフォルトの名無しさん:2011/04/12(火) 10:10:28.96
自動アプデで圧縮ファイルを解凍→上書きとかじゃね?
95デフォルトの名無しさん:2011/04/12(火) 10:15:56.45
>>91
テキスト読み込み部分の内部を覗いたことないので
実験してみることをお勧めだが

テキストデータをUTF-16に変えると多少マシになるかも・・・
96デフォルトの名無しさん:2011/04/12(火) 10:45:02.13
>>90
とりあえず簡単にフリーズを回避したいのなら、さらに遅くなるがReadLineやReadBlockで少しずつ読み込む
目的次第だが、一度に1GBのテキストデータを表示する必要は無いと思うから、スレッドやDoEventsでお茶を濁しとけ

テキストファイルを高速に処理したい場合は話は別だが
97デフォルトの名無しさん:2011/04/12(火) 11:00:08.55
もうちょっと大きな範囲で何をやろうとしてるのかがわかれば
こうやればいいんじゃね?って案を出せるんだがなあ

テキストデータが自前の物なのか、他人も絡んでる物かで
>>95みたいな方法も厳しくなるしなあ・・
98デフォルトの名無しさん:2011/04/12(火) 11:00:33.47
DataContractSerializer で xml にしたとき、下記のように出力されるのですが、
xmlns:i を出力されないようにする方法はあるのでしょうか?

<?xml version="1.0" encoding="utf-8"?>
<person xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
 (略)
</person>
9979:2011/04/12(火) 11:14:28.75
最終的にはテキストエディターのようなものを作りたいと思っています。
一先ず、ファイルを読み込んでそれを表示するところまで目標としており、
必ずutf-8で吐き出される巨大なテキストファイルを対象としています。

>>96さんのReadLineも試した事はありましたが数分掛かって応答なしになってしまいました

現在ファイルマッピングを調べていて、読み込んだテキストどうやって文字列(?)にして表示するかで詰まっていますが、
頑張ります
100デフォルトの名無しさん:2011/04/12(火) 11:16:20.18
ファイルマッピングは手抜きのためで、速度向上にはならん。
シーケンシャルアクセスが分かっているなら、独自で読み書きした方が速い。
101デフォルトの名無しさん:2011/04/12(火) 11:16:27.22
可変長エンコーディングだとファイルマッピングでの対処は厳しいんじゃねえかなー知らんけど
102デフォルトの名無しさん:2011/04/12(火) 11:18:14.19
>>99
まあメモリ上にバイナリで読み込んでそこからストリームで読み込めばいいんだけどさ・・
103デフォルトの名無しさん:2011/04/12(火) 11:20:43.37
あと表示側の仕様がわかればうまい「ごまかし読み」もあるんだろうけどな・・・

表示はテキストボックスとか使ってるの?
104デフォルトの名無しさん:2011/04/12(火) 11:23:20.65
ReadLineで応答無しって、どんな行だよwww
なんか他に問題があるような気がする
10579:2011/04/12(火) 11:23:47.52
>>102
よかったら参考コードを教えて頂けませんか?

>>103
はい、テキストボックスです
106デフォルトの名無しさん:2011/04/12(火) 11:24:25.83
>>104
改行ないんだろう
107デフォルトの名無しさん:2011/04/12(火) 11:24:35.75
>>105
参考もくそもその通りじゃねぇか
10879:2011/04/12(火) 11:27:20.70
>>104
試しに319MBのファイルを確認したら約49万行ありました

確認で開いてるソフトはxyzzyというソフトです
高速で良いですね・・・これのように開いて表示してみたいです
109デフォルトの名無しさん:2011/04/12(火) 11:29:04.96
どのレベルのものを作りたいのかわからんが
まず小さいファイルからやれよ

本気で作りたいならオープンソースのエディタのソースとか
参考にすればいいんじゃないか
110デフォルトの名無しさん:2011/04/12(火) 11:30:02.63
>>106
そしたらReadBlockで良いかと
111デフォルトの名無しさん:2011/04/12(火) 11:56:52.52
たかだか49万程度でどうしてそうなる・・・・
ソース晒してみ?
11279:2011/04/12(火) 12:16:31.68
>>111
http://ideone.com/97ept
該当部分だけですが、こちらに書いてみました
間違いがあれば指摘お願いします
113デフォルトの名無しさん:2011/04/12(火) 12:21:12.71
textBoxがどんなクラスかわからんが
すごい勢いで再描画してないかそれ
11479:2011/04/12(火) 12:34:23.88
textBoxはSystem.Windows.Forms.TextBoxです
一度stringに収め終わってから代入するととまっている様にみえてしまうのでこうしてみました

皆さんはどういう処理を書かれるのですか?
115デフォルトの名無しさん:2011/04/12(火) 12:39:52.34
全行読み込んで書き出すとかテキストエディタをなめてるだろ。
それで数ギガ、数テラ扱えたら開発簡単だなあ。
11679:2011/04/12(火) 12:41:43.56
具体的なソースで教えて頂けませんでしょうか?
117デフォルトの名無しさん:2011/04/12(火) 12:46:36.69
基本的な考え方としてはこんな感じ?
http://ideone.com/ziQkH
118デフォルトの名無しさん:2011/04/12(火) 12:50:36.56
ググれ

テキストエディタ 巨大 ソース
11979:2011/04/12(火) 12:51:01.15
>>117
ありがとうございます

聞く前に検索して沢山のサイトを見ましたが、出てくるサイトでは解決しないので困っていました
なのでソースで教えて貰えると凄く助かります

さっそく試してみたいと思います
120デフォルトの名無しさん:2011/04/12(火) 12:52:29.07
>>116
 += で足しこむより
textBox1.AppendText(sr.ReadLine() + System.Environment.NewLine);
がいいかも
121デフォルトの名無しさん:2011/04/12(火) 12:55:13.43
Be.HexEditor (SourceForge プロジェクト ページ)は C# で書かれた軽量なバイナリエディタです。
オープンソースで開発されていて、バイナリエディタ部分を C# や VB.NET 等から利用できます。
基本的なバイナリの編集から、文字列検索、16進数検索を利用できます。
中でも特に気に入っているところは巨大ファイルを瞬時に開くことができる点です。
そのような状況でもスクロールはスムーズで、メモリ使用率は低くいままです(15,424 KB ほど)。
http://d.hatena.ne.jp/wwwcfe/20091231/behexeditor
122デフォルトの名無しさん:2011/04/12(火) 12:57:14.62
>>121
バイナリエディタとマルチコードを扱うテキストエディタでは
メモリの扱いが違うと思うよ

UTF-8って1バイト〜3バイトくらいの幅があったような

ブロック単位とかで扱いにくいのがこの文字コードの問題
123デフォルトの名無しさん:2011/04/12(火) 13:05:06.36
とりあえずStringBuilderにでも突っ込んでからやってみたらかわると思うんだけど・・・

StringBuilder sb = new StringBuilder();

do
{ 
sb.AppendLine( sr.ReadLine());
}
while (sr.Peek() != -1);

this.textBox.Text = sb.ToString();


こんなんでどれだけ速度違うか測ってみたら?
124デフォルトの名無しさん:2011/04/12(火) 13:05:13.29
うる
125デフォルトの名無しさん:2011/04/12(火) 13:12:06.21
全部読むなら、ReadAllLinesとかReadAllTextでいいと思う。
126デフォルトの名無しさん:2011/04/12(火) 13:13:31.94
そして>>79に戻る
12779:2011/04/12(火) 13:15:13.01
>>120
ありがとうございます
そういう細かい所も大事ですよね
気をつけます

>>121
ありがとうございます

>>123
ありがとうございます
66MBのファイルで試したところ、開くのに2分程掛かりましたがこれは良い結果です!
>>117さんのやり方に応用してやってみたいと思います
128デフォルトの名無しさん:2011/04/12(火) 13:18:28.08
いや>>117みたいにマルチスレッドにするなら、readLine()にしたり
それで重いからってStringBuilder()を使おうってほうがよくわからんけど。
12979:2011/04/12(火) 13:19:44.67
>>128
もうよくわからなくなってきた
今コード書いてて気づきました
俺のアホ!
130デフォルトの名無しさん:2011/04/12(火) 13:40:13.50
メモリに読み込むのを速くしても無理。1テラでも読むのか?
1000行目を表示編集するには、nバイト目を読み込めばいいと記録しておけばいい。
131デフォルトの名無しさん:2011/04/12(火) 13:43:17.57
巨大ファイルを例えば先頭から順に2メガ程度に分割して
記録して編集があったブロックだけを書き換えて
ファイルの保存がえらばれたら、先頭から順に連結すればいい。
132デフォルトの名無しさん:2011/04/12(火) 13:48:55.69
continue;
133デフォルトの名無しさん:2011/04/12(火) 13:50:54.21
>>121
いいね
134デフォルトの名無しさん:2011/04/12(火) 14:15:22.92
LINQ使えよ
135デフォルトの名無しさん:2011/04/12(火) 14:30:02.92
>>134
とろくさいお前らはすっ込んでろ
必要ないから
136デフォルトの名無しさん:2011/04/12(火) 14:35:10.78
釣れたw
137デフォルトの名無しさん:2011/04/12(火) 14:39:58.93
なぜに複数形?
138デフォルトの名無しさん:2011/04/12(火) 14:43:35.04
100倍になるからね



連れるかな><
139デフォルトの名無しさん:2011/04/12(火) 14:44:50.53
Javaの質問していいですか?
140デフォルトの名無しさん:2011/04/12(火) 14:46:16.95
いいよ
141デフォルトの名無しさん:2011/04/12(火) 14:49:29.43
>>140
デシリアライズのときに警告がでます
142デフォルトの名無しさん:2011/04/12(火) 15:00:08.98
警告の内容は?
143デフォルトの名無しさん:2011/04/12(火) 15:08:07.61
なんか安全でないとかそんな感じです
144デフォルトの名無しさん:2011/04/12(火) 15:14:19.90
そいつは危険だ。今すぐPCを窓から投げ捨てるんだ。
145144:2011/04/12(火) 15:18:52.32
ちんこ
146デフォルトの名無しさん:2011/04/12(火) 15:19:23.28
100倍になるからね



連れるかな><
147デフォルトの名無しさん:2011/04/12(火) 15:34:23.13
>>122
大きなファイルを編集するって観点ではメモリの扱い方は似たようなもんだろ
148デフォルトの名無しさん:2011/04/12(火) 15:36:01.41
>>147
マルチバイトコードだと適当にブロックを決めても
きっちり収まらないケースができる

2バイトコードだと区切りがしっかりしてるので扱いやすい
149デフォルトの名無しさん:2011/04/12(火) 15:42:48.77
サロゲ…いやなんでもないです
150デフォルトの名無しさん:2011/04/12(火) 15:45:28.62
100倍になるからね



連れるかな><
151デフォルトの名無しさん:2011/04/12(火) 15:46:16.82
もうすでに2匹
152デフォルトの名無しさん:2011/04/12(火) 15:50:39.11
釣れたw
153デフォルトの名無しさん:2011/04/12(火) 15:53:41.69
めんどくせーーーーーー
http://codezine.jp/article/detail/1592

まあ普段何気なく使ってるテキストも処理側を書こうとすると結構めんどくさいよな
いい加減4バイト固定長とかでやってくれ
154デフォルトの名無しさん:2011/04/12(火) 15:55:38.48
155デフォルトの名無しさん:2011/04/12(火) 15:56:55.16
おまけに1匹
156デフォルトの名無しさん:2011/04/12(火) 15:58:51.17
釣れたw
157デフォルトの名無しさん:2011/04/12(火) 16:02:32.95
var hone = new XElement("items", (from u in new[] { 1, 2, 3 }
select new WebClient().DownloadString(@"http://www.exploader.net/page/" + u) into n
from Match k in Regex.Matches(n, @"http://www.exploader.net/download/[^>?]+")
select k.ToString()).Distinct().Select(o => new XElement("item", o)));
Debug.WriteLine(hone);

LINQ最強だわ
158デフォルトの名無しさん:2011/04/12(火) 16:33:29.42
ウホッ
159デフォルトの名無しさん:2011/04/12(火) 16:43:39.19
LINQは遅いから使えない
160デフォルトの名無しさん:2011/04/12(火) 16:44:56.35
それはお前の書き方が
161デフォルトの名無しさん:2011/04/12(火) 16:56:21.90
100倍になるからね
162デフォルトの名無しさん:2011/04/12(火) 17:06:14.01
ほね」。
163デフォルトの名無しさん:2011/04/12(火) 17:08:29.13
質問します。
List<T>にはlistBoxのようなselectedIndexがありませんが、
インデックスを指定して要素を取り出すにはどうするのでしょうか?
164デフォルトの名無しさん:2011/04/12(火) 17:13:16.81
ん?インデクサという事ではないの?
165デフォルトの名無しさん:2011/04/12(火) 17:21:06.68
166デフォルトの名無しさん:2011/04/12(火) 17:25:10.38
>>164>>165
ああ、なるほど。配列と同じ書式にすればいいのか。ありがとうございました。
167デフォルトの名無しさん:2011/04/12(火) 18:17:19.72
>>157
これくらいなら100倍も可能かも
168デフォルトの名無しさん:2011/04/12(火) 18:28:48.26
ほね」。
169デフォルトの名無しさん:2011/04/12(火) 19:19:07.90
100倍と言うだけなら誰でもできる
170デフォルトの名無しさん:2011/04/12(火) 19:22:14.40
またおまえか
171デフォルトの名無しさん:2011/04/12(火) 19:25:35.91
またお前と言うだけのなんとか
172デフォルトの名無しさん:2011/04/12(火) 19:27:03.78
ブルータスなんとか
173デフォルトの名無しさん:2011/04/12(火) 20:13:55.33
>>163の質問には素質を感じる
174デフォルトの名無しさん:2011/04/12(火) 20:23:28.69
せやな
175デフォルトの名無しさん:2011/04/12(火) 20:28:56.62
>>163
var unko = List<T>.ToArray()[index];
176デフォルトの名無しさん:2011/04/12(火) 20:30:31.64
わんくま同盟なら解決できるんじゃね?
177デフォルトの名無しさん:2011/04/12(火) 20:39:57.16
>>175
無理すんなよw
178デフォルトの名無しさん:2011/04/12(火) 20:42:46.24
var unko = list.Skip(index).Take(1).Single(); だろ
179デフォルトの名無しさん:2011/04/12(火) 20:48:51.54
もうMainにLINQ一行でいいだろ・・・
180デフォルトの名無しさん:2011/04/12(火) 21:03:40.53
NyaRuRu
181デフォルトの名無しさん:2011/04/12(火) 21:17:55.93
>>179
それなんて難読化?
182デフォルトの名無しさん:2011/04/12(火) 21:19:13.96
LINQ読めないのか・・・
183デフォルトの名無しさん:2011/04/12(火) 21:20:41.77
LINQ一行なんだぜ?
184デフォルトの名無しさん:2011/04/13(水) 01:18:11.15
冗長
ゼロ行にしろ
185デフォルトの名無しさん:2011/04/13(水) 01:21:22.46
>>184
できるよ
186デフォルトの名無しさん:2011/04/13(水) 02:48:39.24
初心者の質問で申し訳ありません。

フォームを作り、1つのパネルにいくつかのコントロールを登録し、そのパネルをフォームにドッキングさせて
画面サイズが変わったらパネル内のコントロール(ラベルやリストやボタンなど)をWindowサイズに自動で変更させたいのですが
単純にTableLayoutPanelにパネルをaddし、フォームにそれをaddしただけではダメなのでしょうか?
187デフォルトの名無しさん:2011/04/13(水) 08:15:29.57
うん。それじゃ足りない。
Form以下のコントロール全てにAnchorかDockプロパティの指定が必要。
188デフォルトの名無しさん:2011/04/13(水) 09:26:30.45
WinFormsはサイズ可変にしても文字のサイズとかの問題が結局残るけどね
189デフォルトの名無しさん:2011/04/13(水) 10:12:23.43
教えてください。
BindingList<T>をdataGridViewのソースにした場合、
dataGridView側で編集したデータはBindingList<T>に反映してるのですか?
190デフォルトの名無しさん:2011/04/13(水) 10:15:51.02
デバッグで確認しようとは思いませんか?
191デフォルトの名無しさん:2011/04/13(水) 10:18:36.32
まったく思いませんね。
192デフォルトの名無しさん:2011/04/13(水) 10:22:17.91
>>189
ちょっとコード書けばテストできるやん
193デフォルトの名無しさん:2011/04/13(水) 10:22:59.71
Go on
194デフォルトの名無しさん:2011/04/13(水) 10:24:21.31
デバッグで変数見る方法が分からんかもしれんじゃん
195186:2011/04/13(水) 10:33:11.76
>>187
ありがとうございます

ボタンなどコントロール全てにDock指定したのですが、
一つのボタンだけがパネルサイズになってしまいました。。

複数のコントロールを1つのパネルに置いているのがダメなんでしょうか?
196デフォルトの名無しさん:2011/04/13(水) 10:33:52.21
>>194
デバックわからなくてもdataGridViewで変更した後ボタンをクリックすれば
BindingListの中身を表示するようにすればいいだけじゃん
197デフォルトの名無しさん:2011/04/13(水) 10:36:55.69
>>195
TableLayoutPanelはどこに逝った?
198デフォルトの名無しさん:2011/04/13(水) 10:45:32.44
>>195
これでも見ながらやってくれ
http://msdn.microsoft.com/ja-jp/library/ms171691.aspx
199186:2011/04/13(水) 10:50:44.28
>>197
複数のコントロールを置いたパネルを
TableLayoutPanelにaddしてます。

>>198
ありがとうございます、見てみます
200デフォルトの名無しさん:2011/04/13(水) 10:53:31.51
使い方が分かってないだけか
201デフォルトの名無しさん:2011/04/13(水) 10:58:42.02
TableLayoutPanelにButtonとかLabelとかを追加するのよ
Panelはお呼びでない
202186:2011/04/13(水) 11:32:37.24
>>201
理解!
ありがとうございました!
203デフォルトの名無しさん:2011/04/13(水) 15:13:38.97
検索ボックスのようなコントロールで、右端に虫眼鏡のアイコンが付いていて
文字を入力するとそれが×になってクリア出来るコントロール
(Windows7のプログラムとファイルの検索)
が便利そうなのですが、そういうコントロールはC#でも利用できますか?
204デフォルトの名無しさん:2011/04/13(水) 15:52:51.79
俺今年C#はじめたばっかりの初心者だけど
自作しないといけないんじゃないかな?
205デフォルトの名無しさん:2011/04/13(水) 16:36:46.87
>>203
UserControlで自作すればいい。
普通にTextBoxとButton(イメージのみ)を設置して
TextBoxのTextChangedイベントか何かで監視して何か入力されていれば、
Buttonの画像を×に、そうでないなら虫眼鏡の画像にすればいい。
んでButtonがクリックされたらTextBoxをClear()。
206デフォルトの名無しさん:2011/04/13(水) 16:41:08.26
ついでに同じような見た目にするならテキストボックスの枠線を消して
UserControl側に書いてやるとかすると見た目同じようになるかもね
ボタンの替りにPictureBox使う手もあるかな?この辺は人それぞれだと思うけど
207デフォルトの名無しさん:2011/04/13(水) 16:43:01.13
Windows ApiCodePackのサンプルに入っているよ。但しwpfだが
208デフォルトの名無しさん:2011/04/13(水) 17:02:18.43
HttpWebRequestの使い方をぐぐると、
みんなHttpWebRequest.GetResponse()で得たHttpWebResponseをCloseで閉じてるのばかりなんですが
Close呼ばずにusing(var res = HttpWebRequest.GetResponse())ってするのは何か問題ありなんですか?
インテリセンスにDisposeがでないのと関係あるのかな。
209デフォルトの名無しさん:2011/04/13(水) 17:08:19.84
>>203
ざっくり作りかけたけど張替える画像がなかったりテキストボックスの挙動が不明なので
ほかの人にバトンタッチ

所望のことができそうなユーザーコントロール
http://ideone.com/lj611

とそのクラスを使う方法
http://ideone.com/ArP80
210デフォルトの名無しさん:2011/04/13(水) 17:09:15.08
>>208
どんどんusingしておk
211デフォルトの名無しさん:2011/04/13(水) 17:33:40.22
using ステートメントで使用される型は、暗黙的に 'System.IDisposable' への変換が可能でなければなりません。

って出ると思うけどな
212デフォルトの名無しさん:2011/04/13(水) 17:41:27.93
>>208
そこでのusgigの意味は、万が一のときに安全にDispose() つまりリソースを解放する。
という意味がある。一方は、HttpWebRequestやファイルのClose()は、切断や閉じるといった働き。
リソースを解放すれば、そのリソースで使用されたファイルやネットワークは、解放されるから
usginで問題ない。但し、Close() も忘れずに。

あくまでusgigは、最悪の場合でもリソースを解放するというもの。
213デフォルトの名無しさん:2011/04/13(水) 17:43:53.72
誤字り過ぎwww
214デフォルトの名無しさん:2011/04/13(水) 18:19:53.20
WPFの話題すっかりなくなったね
215デフォルトの名無しさん:2011/04/13(水) 18:21:20.58
2時間前に出てる
216デフォルトの名無しさん:2011/04/13(水) 18:23:30.84
プログラミング全くの初心者だけどわかりやすいC#の入門書ってない?
217デフォルトの名無しさん:2011/04/13(水) 18:25:35.80
2001 C# Stdのパケ版についてきた
C#をはじめようって冊子が一番わかりやすかった
218デフォルトの名無しさん:2011/04/13(水) 18:37:11.68
c#ってポインタ使えんの?
219デフォルトの名無しさん:2011/04/13(水) 18:37:44.34
>>212
間違ってるよ。0点。
220デフォルトの名無しさん:2011/04/13(水) 18:49:26.93
>>218
unsafe限定だけど使える
221デフォルトの名無しさん:2011/04/13(水) 20:29:46.72
ただたんに、サンプル書いてる人がショボいからってだけだね、usingじゃないのは
222デフォルトの名無しさん:2011/04/13(水) 20:38:07.11
>>221
サンプルだからあえてusing使ってないってのもあるのかもよ
223デフォルトの名無しさん:2011/04/13(水) 20:41:26.88
でも最小構成という考え方からすると、エラー処理割愛とかと同じレベルで
using割愛もあるかも。
そんなトコ割愛しちゃう事がショボいんだけどな。
224デフォルトの名無しさん:2011/04/13(水) 20:46:36.30
>>217
ありがと
225デフォルトの名無しさん:2011/04/13(水) 20:57:34.20
VB.NETのサンプルコードとか見てると
try-finally使わずにCloseやDisposeを呼んでるのがよくあるけどアレは害悪
これでいいんだと思ってしまう
CloseやDisposeを書きたかったらfinallyの中で書く
using使うならCloseやDisposeは不要で >>212 は間違い
226デフォルトの名無しさん:2011/04/13(水) 21:05:01.42
サンプルくらい好きに書かせてやれよw
227デフォルトの名無しさん:2011/04/13(水) 21:14:42.03
MSDNのサンプルだとusingどころかDisposeしてなかったりするのが結構あるな
228デフォルトの名無しさん:2011/04/13(水) 21:29:42.89
>>216
今までで一番役に立った本は「作って覚えるC#入門」って奴。
これの延長のような本かサイトが欲しい。とC#歴8ヶ月の俺が言ってみる。
どこか初心者向けに、完パケしたアプリをオープンソースで解説してるようなの無いかな?
「未確認飛行C」のような文法中心だと、実際何が出来るのかイメージ出来るまでに時間かかるし、
「Dobon」のTipsだけじゃ、部分的過ぎてそれらをまとめる方法が分からなかったりするし。
どっちもすごくお世話になってるけど。
229デフォルトの名無しさん:2011/04/13(水) 21:32:07.21
>usginで問題ない。但し、Close() も忘れずに。

なんでusing使ってるのにClose()忘れちゃいけないの?
230203:2011/04/13(水) 21:48:19.85
>>204-207
皆さん。ありがとう。UserControlでがんばってみます。
231デフォルトの名無しさん:2011/04/13(水) 22:20:47.29
HttpWebRequestもHttpWebResponseもIDisposable実装してねーっつうの
どうやってusingすんだよ
232デフォルトの名無しさん:2011/04/13(水) 22:25:42.10
HttpWebResponseはその基底のWebResponseからしてIDisposableだが?
233デフォルトの名無しさん:2011/04/13(水) 22:26:28.09
>>231
WebResponse : MarshalByRefObject, ISerializable, IDisposable
まさか明示的実装を知らないとか言わないよな
234208:2011/04/13(水) 23:01:49.15
ありがとう
usingしてもいいってことねー

インテリセンスに出ない理由も
>>233さんの明示的実装をググって分かりました
235デフォルトの名無しさん:2011/04/13(水) 23:27:10.69
>>225
Disposeは、usingが代わりにやってくれるから不要ってのはわかるけど、
Closeも不要なのか。じゃあ何故、Closeが用意されているんだろう。
Disposeだけで良いような気もする。
236デフォルトの名無しさん:2011/04/13(水) 23:30:47.51
またopenする可能性があるからだろ
237デフォルトの名無しさん:2011/04/13(水) 23:32:50.91
ああ、なるほど。
残りの疑問は、ググるか・・・。
238デフォルトの名無しさん:2011/04/13(水) 23:33:46.27
どうせ

void IDisposable.Dispose()
{
 this.Close();
}

とかな実装だろ
たしかClose()はOpen()との整合性を取るみたいな感じで
Disposeと等価にすべき、みたいなMSのガイドラインがあった気がする
239デフォルトの名無しさん:2011/04/13(水) 23:48:39.22
>>238
気になるところは、そういうふうにDisposeでCloseが呼ばれる実装なのか、
ただ単にオブジェクトのリソースだけ解放してCloseは、呼ばれないのかってところだなぁ。
ここらへんは、ライブラリによって違っていそうだ。行儀の良いライブラリだと、だいたいCloseしてそうな予感だけど。
240デフォルトの名無しさん:2011/04/13(水) 23:55:35.20
接続自体が共有リソースだから、CloseせずにDisposeなんて有り得ない
241デフォルトの名無しさん:2011/04/14(木) 00:02:59.65
http://msdn.microsoft.com/ja-jp/library/system.idisposable.dispose(v=VS.90).aspx
>割り当てられている状態と解放されている状態を示すために、リソースの種類に応じて
>特別な規則を使用する場合があります。 たとえば、ストリーム クラスは従来から
>オープン状態またはクローズ状態と見なされています。 そのような規則を持つクラスを
>実装する場合、Dispose メソッドを呼び出すパブリック メソッドに、Close などのカスタム名を
>付けて実装することもできます。
つまり気分の問題
Disposeした後にオブジェクトを再利用できるような実装も別に構わない
242デフォルトの名無しさん:2011/04/14(木) 00:22:07.51
>>241
Dispose()でリソースの開放。
それにClose()などの別名をつけることもOKってことでしょ?

> Disposeした後にオブジェクトを再利用できるような実装も別に構わない
どこを読んでそう解釈できるんだろう。
243デフォルトの名無しさん:2011/04/14(木) 00:38:55.31
>>242
…Disposeしたあとに再利用なんかしたくないな。
244デフォルトの名無しさん:2011/04/14(木) 00:40:56.02
だって勿体無いじゃん
245デフォルトの名無しさん:2011/04/14(木) 00:41:40.38
だったら開いたままにしたほうがよくね?
246デフォルトの名無しさん:2011/04/14(木) 00:43:36.25
>>217
2001 C# Stdってなに?検索しても分からん・・・。
247デフォルトの名無しさん:2011/04/14(木) 05:04:25.39
>>228
それわかるなー
どのサイトも実用性がないからな
ゲーム制作本は作っていく工程が
書かれているから参考になるかも
ゲーム特有の部分は飛ばし読めばいいし
でも、プログラミング自体初心者の人には敷居が高いな

人のソースみるのが結局一番参考になるのかも

>>246
一番最初に出たC#STDの単体売りしてたやつ
継承とは何かとかコードの記述の仕方など
できるだけわかりやすく書いていて
これがC#やり続ける助けになったな
248デフォルトの名無しさん:2011/04/14(木) 05:10:56.94
実用ベースの解説は、Code Recipe が一番近いかなぁ。
http://msdn.microsoft.com/ja-jp/ff363212.aspx

これに、もうちょっと規模大きいサンプルアプリをベースにした記事が増えてくれれば・・・
249デフォルトの名無しさん:2011/04/14(木) 05:11:41.40
URL、↓こっちの方が適切か。
http://code.msdn.microsoft.com/
250デフォルトの名無しさん:2011/04/14(木) 08:02:15.75
MSのアプリケーションサンプルといえばpatterns&practicesシリーズがあるよ
結構大きいサンプルに相当な量の英語の解説ドキュメントが付いてる
新しいのだとPrism4はわかりやすいから見てみたら
251デフォルトの名無しさん:2011/04/14(木) 11:10:07.85
便乗質問で、usingとtry〜catchって、速度は同じくらいと思って良いのかな?
自分で作って試せってレベルの質問ですがw
252デフォルトの名無しさん:2011/04/14(木) 11:13:31.08
わかってるならするんじゃねえ

コードをさくっと書いて動かしたら終わることじゃないか
25379:2011/04/14(木) 11:41:15.16
みなさんこんにちは。
再び行き詰ったのでお知恵を拝借させてください。

ファイルを読み込む所まではいけたのですが、
文字をテキストボックスへ表示するのに時間が掛かり困っています。
また、時間を掛けて読み込んでも窓をリサイズすると同じくらいの待ち時間が掛かってしまいます。

どうしたらいいでしょうか?
254デフォルトの名無しさん:2011/04/14(木) 11:54:29.34
つ >>115
255デフォルトの名無しさん:2011/04/14(木) 11:57:00.90

メモリに読み込むのを速くしても無理。1テラでも読むのか?
表示するために、nバイト目を読み込めばいいと記録しておき、画面表示に時だけ読み込めばいい。


他に巨大ファイルを、例えば先頭から順に2メガ程度に分割して編集されたブロックだけ書き換えて
ファイル保存されたとき連結すればいい。
256デフォルトの名無しさん:2011/04/14(木) 12:05:20.85
やっぱり>>103で書いたことに突き当たったか
257デフォルトの名無しさん:2011/04/14(木) 13:10:29.35
ググったらこんなのあったけど、試して無いし高速大容量なのがあるかは知らん

C# から使えるテキストエディタ部品
http://sgry.jp/pgarticles/cs_editor_component.html
258デフォルトの名無しさん:2011/04/14(木) 13:18:59.38
>>251
usingは、try〜finallyを自動生成しているだけ。
ちなみにcatchは、ない。
259デフォルトの名無しさん:2011/04/14(木) 13:39:10.31
VC#2010Expressですが、
ユーザーがコントロールに設定したパラメータを保存・呼び出しできるように
List<T>に格納し、そのソースをProperties.Settings.Default.xxxで保存したいのですが、
設定の型とか、どうしたらよいのか分かりません。
List<T>の型は、クラスを作りパラメータの数だけ{get,set}でプロパティを作りました。
XMLで外部ファイルに保存する方法は分かったのですが、内部的に済ませたいのですが、
どうすればいいのでしょうか?
260デフォルトの名無しさん:2011/04/14(木) 14:10:36.05
>>258
中身は同じなのね、ありがとう
261デフォルトの名無しさん:2011/04/14(木) 15:06:35.18
>>259
プロジェクトプロパティ→設定→型で任意の型を設定
List<T>のままでは使えないので何かに継承させる

勘違いしているようだがこのデータはAppData以下のXMLに保存されるんで内部的に完結してはいない
262デフォルトの名無しさん:2011/04/14(木) 15:14:27.47
気になったのでStreamクラスの実装を.NET Reflector使って調べてみた。
省略して書くとこんな感じ。結論として、DisposeとCloseは、同じ処理。

public abstract class Stream : MarshalByRefObject, IDisposable{
public void Dispose(){
this.Close();
}
protected virtual void Dispose(bool disposing){
if (disposing && (this._asyncActiveEvent != null)) {
this._CloseAsyncActiveEvent(Interlocked.Decrement(ref this._asyncActiveCount));
}
}
public virtual void Close(){
this.Dispose(true);
GC.SuppressFinalize(this);
}
}


263デフォルトの名無しさん:2011/04/14(木) 15:22:12.08
そういえばReflectorって無償版なくなったんだよね
264デフォルトの名無しさん:2011/04/14(木) 15:29:51.68
>>261
>プロジェクトプロパティ→設定→型で任意の型を設定
「任意」というのが見当たりません。

>List<T>のままでは使えないので何かに継承させる
よく分かりません。
265デフォルトの名無しさん:2011/04/14(木) 19:08:02.38
Hit Any Keyと指示されたんですが、
Any Keyというキーが見当たりません。
どこにあるのでしょうか
266デフォルトの名無しさん:2011/04/14(木) 19:09:27.07
それが精いっぱい頭をひねったギャグなのか?
267デフォルトの名無しさん:2011/04/14(木) 21:32:05.12
すいません。助けてください。
C言語で組み込みのプログラミングしかやったことのない人間が
webアプリをC#で作ることになりました。
C言語で作ったDLLを、なんとかブログ等を参考にして
C#の.NET Frameworkでバインディングすることができました。
(unmanagedなDLLのネイティブバインディングというんでしょうか)
テスト環境に持っていって試したところ、単独でブラウザから
アクセスすると正常に動作しますが、複数のパソコンから
ほぼ同時にアクセスするとエラーになります。
複数のパソコンでも同時にアクセスしなければ、正常に動作します。
こういう時はどのように対処するのが常套手段なのでしょうか?
C言語で作られたDLLの使用は諸事情により必須です。
無能なもので、検索しても解決策を見つけることができませんでした。
よくわかっていないので、トンチンカンな質問かもしれませんが、
よろしくお願いします。
268デフォルトの名無しさん:2011/04/14(木) 21:38:05.25
>>267
非同期プログラミングもできないのかこのバカは
269デフォルトの名無しさん:2011/04/14(木) 21:38:52.59
>>267
ここは無能な荒らししかいませんので
こちらへ移動してください

C#, C♯, C#相談室 Part65
http://hibari.2ch.net/test/read.cgi/tech/1300611299/
270デフォルトの名無しさん:2011/04/14(木) 21:49:21.37
>>267
なにが原因でどういうエラーになるか突き止めて、それを回避するように修正する
271デフォルトの名無しさん:2011/04/14(木) 22:14:38.25
「エラーになります」ってセリフはC使いのセリフとは思えんな
272デフォルトの名無しさん:2011/04/14(木) 23:43:04.05
>>267
複数同時にアクセスされることを想定するのかしないのかがわからない。
ロック用のオブジェクト変数例えば、Object SyncLock = new Object() なんかを作って
lock( SyncLock ){
// ここでCのDLLをごにょごにょ
}
ってやれば良いんじゃないか。
こうすれば、lockブロックの間は、排他制御されるだろうし
273デフォルトの名無しさん:2011/04/14(木) 23:47:46.75
C#やwebと関係ないんだろ。
再入可能でないDLLなんだろ。
274デフォルトの名無しさん:2011/04/15(金) 00:08:11.72
>>272
ワロタww
275デフォルトの名無しさん:2011/04/15(金) 01:39:16.09
>>272
ASPもやったことがないのバレバレ
276デフォルトの名無しさん:2011/04/15(金) 02:54:27.49
>>263
ILSpyを使えばいい
277デフォルトの名無しさん:2011/04/15(金) 09:46:10.52
C#でWindowsFormアプリケーションを作成しています。
DataGridViewのFontColorの設定がうまくいかないのでご教示ください。

DataGridViewに商品の一覧を表示させ、ある条件の場合に全行のFontColorを朱色にしたいと思っています。
しかし、そのようにコードを記述しても、なぜか1行目のみ朱色にならず、2行目以降が朱色に変わります。
なぜ、1行目のFontColorが変わってくれないのか、ご教示ください。

--- コード ---

DataGridViewである "dgv_SHOHIN"に値を格納(コードは省略)

for (int i = 0; i < dgv_SHOHIN.Rows.Count; i++)
{
dgv_SHOHIN.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
}

------------
よろしくお願いいたします。
278デフォルトの名無しさん:2011/04/15(金) 09:52:02.52
C++のテンプレートとC#のジェネリクスがこんがらがってきた
誰か解説頼む
279デフォルトの名無しさん:2011/04/15(金) 10:06:03.47
どっか別の所で色変えてたりしてw
ミニマムコードで試してみた?
280デフォルトの名無しさん:2011/04/15(金) 10:28:57.67
>>279さん、ありがとうございます。
DataGridViewに値を格納するところからコードを記載します。

---------------------

dgv_SHOHIN.Rows.Clear();

for (int i = 0; i < 3; i++)
{
dgv_SHOHIN.Rows.Add();
dgv_SHOHIN.Rows[i].Cells[0].Value = "あ";
dgv_SHOHIN.Rows[i].Cells[1].Value = "い";
dgv_SHOHIN.Rows[i].Cells[2].Value = "う";
}

for (int i = 0; i < dgv_SHOHIN.Rows.Count; i++)
{
dgv_SHOHIN.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
}

---------------------

1行目だけ別途、描画するようなコードは記載していません。
なぜ、1行目だけRedになってくれないのでしょうか…。
281デフォルトの名無しさん:2011/04/15(金) 10:37:47.36
試したけど色変わるぞ
http://ideone.com/MAoVg

確認したいんだけど、1行目ってColumn格納行のことじゃないよね?
282デフォルトの名無しさん:2011/04/15(金) 10:48:25.82
俺はLoadイベントに書いてみたがちゃんと3行とも赤くなったぞ
ただし、そのコードで朱色になることは絶対にないが
283デフォルトの名無しさん:2011/04/15(金) 11:01:25.59
>>281さん
ColumnについてはデザイナーのColumnsプロパティの「コレクション」にて予め3つの列を作成しています。
281さんのコードのようにAddメソッドを使用していません。
これが原因でしょうか。
ヘッダーを除く1行目の"あ""い""う"
が黒のままです。
284281:2011/04/15(金) 11:02:51.33
デザイナで作っても同じだったのでそこが原因ではない
285デフォルトの名無しさん:2011/04/15(金) 11:05:02.92
>>278
C++ template: ソースコードジェネレータ
C# generics: 実行時に型を適用
286デフォルトの名無しさん:2011/04/15(金) 11:07:25.46
>>285
さんくす
287デフォルトの名無しさん:2011/04/15(金) 11:12:13.91
>>283
dataGridView1.Rows[0].Cells[0].Style.ForeColor = Color.BlueViolet;
dataGridView1.Rows[0].Cells[1].Style.ForeColor = Color.BlueViolet;
dataGridView1.Rows[0].Cells[2].Style.ForeColor = Color.BlueViolet;

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
}

こんな感じに書けば1行目だけ赤にならずに紫になるけどね
まさかやってないと思うし・・・
288デフォルトの名無しさん:2011/04/15(金) 11:50:54.18
oracleから数値項目を取得したいのですが非常にダサいです。
while (odr.Read())
{
  int total = int.Parse(odr["total"].ToString());
}

もう少しスマートな方法はないでしょうか?
289デフォルトの名無しさん:2011/04/15(金) 11:57:31.21
ないですぜ
290デフォルトの名無しさん:2011/04/15(金) 12:06:10.15
マジっすか
すげー
291デフォルトの名無しさん:2011/04/15(金) 12:34:21.82
>>288
toString()する前のodr["total"]の型はなんなだろう。
292デフォルトの名無しさん:2011/04/15(金) 12:38:55.85
強いて言えばobject型
293デフォルトの名無しさん:2011/04/15(金) 12:43:59.74
型を表示してみたところInt64でした。
294デフォルトの名無しさん:2011/04/15(金) 12:44:26.65
DBに数値型で入っていたらdecimalとかintで取れそうだけど。
295デフォルトの名無しさん:2011/04/15(金) 12:45:47.39
サンプルコードに従いColumnsをコードで作成するよう記述し実行してみて、原因が分かりました。
デザイナーでColumnsのDefaultCellStyleプロパティを設定する中で、
SelectionBackColorをWhite、SelectionForeColorをBlackに指定していました。

DataGridView表示時に1行目が選択状態にあるのが、自分が仕掛けた設定が原因で気づきませんでした。
DataGridView.ClearSelectionメソッドを入れることで、全行の色が変わっていることが分かりました。

大変愚かな質問をしてしまい申し訳ありません。
ご回答くださった方、ありがとうございました。
296デフォルトの名無しさん:2011/04/15(金) 12:46:26.81
>>293
それなら文字列に変換しなくても直で整数型にキャストできるんじゃないの。
297デフォルトの名無しさん:2011/04/15(金) 12:47:49.37
>>296
(int)(odr["total"])
だと例外エラーが出てしまいました。
298デフォルトの名無しさん:2011/04/15(金) 12:51:39.46
>>297
odr["total"] as int64; とかは?
299デフォルトの名無しさん:2011/04/15(金) 12:51:52.85
お!
(long)(odr["total"])
ならいけました。
longでいきます。
300デフォルトの名無しさん:2011/04/15(金) 13:06:24.84
>>298
おい・・・参照型だぞ?
301デフォルトの名無しさん:2011/04/15(金) 17:53:09.53
いいかげん いいかげん いいかげんげんげんげんげん
302デフォルトの名無しさん:2011/04/15(金) 18:42:59.27
面白いねー
303デフォルトの名無しさん:2011/04/15(金) 18:52:21.12
throw new ArgumentNullExceptionを書くのにも飽きて来たんですが
どうしたらいいですか?
304デフォルトの名無しさん:2011/04/15(金) 18:53:39.36
値型なら物理的にnullにならないよ
305デフォルトの名無しさん:2011/04/15(金) 19:33:17.48
なるほど〜これからは構造体を使うようにしますね
306デフォルトの名無しさん:2011/04/15(金) 19:37:55.99
C#では特別な理由がない限り構造体使ってればいい
最近の組み込みOSは構造体で実装されるのが一般的になってるし
307デフォルトの名無しさん:2011/04/15(金) 19:44:01.17
またお前か
308デフォルトの名無しさん:2011/04/15(金) 19:45:27.76
またお前かと書き込むだけの簡単なお仕事ですね
309デフォルトの名無しさん:2011/04/15(金) 19:48:51.22
ブルータス、お前もか
310デフォルトの名無しさん:2011/04/15(金) 19:52:13.08
おっさんのネタはつまらんしひつこい
311デフォルトの名無しさん:2011/04/15(金) 19:56:40.17
ほね」。
312デフォルトの名無しさん:2011/04/15(金) 20:23:06.34
全部構造体とかねーよww
コピーのコスト見えるようになってから構造体使って。
313デフォルトの名無しさん:2011/04/15(金) 20:33:12.18
質問者がnullチェックしとうない!ってのが趣旨ですので代替案をどうぞ
314デフォルトの名無しさん:2011/04/15(金) 20:39:09.72
Refactorにそんなの無かったか
315デフォルトの名無しさん:2011/04/15(金) 20:40:11.96
じゃあこんな感じで
http://www.codeproject.com/KB/cs/maybemonads.aspx

string postCode = this.With(x => person)
    .If(x => HasMedicalRecord(x))
    .With(x => x.Address)
    .Do(x => CheckAddress(x))
    .With(x => x.PostCode)
    .Return(x => x.ToString(), "UNKNOWN");
316デフォルトの名無しさん:2011/04/15(金) 20:42:13.30
止めろ

止めろ
317デフォルトの名無しさん:2011/04/15(金) 20:50:55.05
確かにこれならnullチェックはなくなる・・・
318デフォルトの名無しさん:2011/04/15(金) 21:06:28.38
>>315
すごいなこれ、さっそく今やってるプロジェクトに組み込むは
319デフォルトの名無しさん:2011/04/15(金) 21:27:31.58
>>315
やるじゃん
320デフォルトの名無しさん:2011/04/15(金) 21:45:28.96
>>313
non-nullable 型とか、null伝搬メンバー呼び出しは頻繁に「言語仕様に入れてくれ」って要望入るらしいんだけどもねぇ。
321デフォルトの名無しさん:2011/04/15(金) 22:09:25.17
nullを代入したら例外が発生するようにすればいい
322デフォルトの名無しさん:2011/04/15(金) 22:15:42.10
>>315
LINQのお供にいいね
323デフォルトの名無しさん:2011/04/15(金) 22:29:03.54
|>で連結しまくってるF#っぽいな
324デフォルトの名無しさん:2011/04/15(金) 22:34:18.08
|>|>|>|>|>|>|>|>
<|<|<|<|<|<|<|<|
325デフォルトの名無しさん:2011/04/16(土) 08:32:07.71
バーションが5になるのっていつ頃?
326デフォルトの名無しさん:2011/04/16(土) 09:48:39.42
上のほうで、disposeやcloseのことやってたけど、
disposeが必要なオブジェクトって何か決まりでもあるの?
それともクラスやメソッド個別に調べて覚えるの?
327デフォルトの名無しさん:2011/04/16(土) 09:49:26.53
とりあえずusingしてみれば分かる
できないならコンパイラがエラーで弾く
328デフォルトの名無しさん:2011/04/16(土) 09:53:16.58
>>327
using(var x = new X()) は X が IDisposable 実装必須だけども、
using(x) って書き方なら別に IDisposable 不要だったりする。
x as IDisposable が null なら特に何もしない。
329デフォルトの名無しさん:2011/04/16(土) 10:04:21.41
disposeは、元々アンマネージドコードを解放するために用意されていた筈なんだけどね
ピュアC#ならGCが勝手に解放するから
330デフォルトの名無しさん:2011/04/16(土) 10:11:03.73
デスクトップ画面上の指定したスクリーン座標の色の変化を変化でスタートし元の色に戻るまでの時間を測定したいんだがどうすればいい?
331デフォルトの名無しさん:2011/04/16(土) 10:11:39.74
ファイルを閉じるのはアンマネージリソースとか関係ないぞ
単にすぐに閉じたいからDisposeする
332デフォルトの名無しさん:2011/04/16(土) 10:17:24.84
>>331
いや、Disposeって物自体がアンマネージドリソースの解放目的で用意された物だって話
333デフォルトの名無しさん:2011/04/16(土) 10:23:30.24
その場合のアンマネージリソースは開放のタイミングをGCに任せることができないリソースという意味な
必ずしもGCの管理外のメモリ領域やハンドルとかを指すわけじゃない
334デフォルトの名無しさん:2011/04/16(土) 12:26:08.68
>>330
ポーリングして見張っていればいい
335デフォルトの名無しさん:2011/04/16(土) 13:28:33.44
MySQLのデータをGridViewなどで使用方法などが
書かれてるサイトなどありませんでしょうか?
336デフォルトの名無しさん:2011/04/16(土) 13:43:07.13
>>335
ググれば一番上に出るけど、それは試したの?
337デフォルトの名無しさん:2011/04/16(土) 18:04:09.34
>>336
ググってません
338デフォルトの名無しさん:2011/04/16(土) 18:21:02.83
>>337
bingでおk
339デフォルトの名無しさん:2011/04/16(土) 19:34:28.00
>>338
ワロタwwww
340デフォルトの名無しさん:2011/04/16(土) 19:45:27.57
>>338
ワロタリウスV世wwww
341デフォルトの名無しさん:2011/04/16(土) 21:17:15.42
>>338
wwwwwwww
342デフォルトの名無しさん:2011/04/16(土) 22:02:25.04
何が面白いんだ?
343デフォルトの名無しさん:2011/04/16(土) 22:09:47.85
ここまで俺の自演、と
344デフォルトの名無しさん:2011/04/16(土) 22:10:53.11
これは酷い
345デフォルトの名無しさん:2011/04/16(土) 22:26:28.45
>>342-344
君たち気が合うんだね
346デフォルトの名無しさん:2011/04/16(土) 22:35:05.12
IDねーんだよな……
俺は338だが面白くねーだろ別に。
347デフォルトの名無しさん:2011/04/16(土) 22:44:35.94
本気でウケてると思ってたのかw
348デフォルトの名無しさん:2011/04/16(土) 23:00:01.16
いずれにせよ、普通の人の感覚とズレてるのは確か。
何度も言うけど、釣っただの釣られただのワロタだのやってる奴って
今時2chくんだりに書き込むことがそんなに非日常的な楽しみなんかね理解不能。
349デフォルトの名無しさん:2011/04/16(土) 23:11:56.34
>>348
ほね」。
350デフォルトの名無しさん:2011/04/16(土) 23:16:08.37
ほね」。
これなに?
351デフォルトの名無しさん:2011/04/16(土) 23:19:09.82
しっくりこないんです!!
352デフォルトの名無しさん:2011/04/16(土) 23:32:23.77
LINQいいよね〜
353デフォルトの名無しさん:2011/04/16(土) 23:52:48.57
スレッドとかループにboolフラグ使って脱出組むとコードがこんがらがってきます
なにかいい方法はありませんか?
354デフォルトの名無しさん:2011/04/16(土) 23:56:22.44
フラグ変数を使わないように組みなおすかループ内の処理を関数化する。
355デフォルトの名無しさん:2011/04/17(日) 00:23:14.83
>>353
Thread.Abort()
356デフォルトの名無しさん:2011/04/17(日) 02:50:21.90
aspxファイルに<asp:TextBox ID="txt" runat="server"></asp:TextBox>
を追加しても designer.csに定義されません。
定義されるためにはどうしたらよいでしょうか?
357デフォルトの名無しさん:2011/04/17(日) 03:09:08.91
デリゲートを使う
358デフォルトの名無しさん:2011/04/17(日) 11:30:51.45
var b =
from p in a
where p.X > 2
from q in p.Z
select new { p.X, Z = q };

こういう書き方でクエリ式のSelectManyに相当するものないの?
359デフォルトの名無しさん:2011/04/17(日) 12:02:18.70
>>358
どういう意味?
a.Where(p => p.X > 2).SelectMany(p => p.Z, (p, q) => new { p.X, Z = q });
ではダメなの?
360デフォルトの名無しさん:2011/04/17(日) 13:34:40.79
static void Show<T>(IEnumerable<T> a)
{
foreach (var x in a)
Console.Write("{0} ", x);
Console.Write("\n");
}

エラー 1 } が必要です。
エラー 2 型、名前空間の定義、またはファイルの終わりが必要です。

どこをどう直せばいいんだ?
361デフォルトの名無しさん:2011/04/17(日) 13:38:09.86
foreachさんのループする範囲を指定してあげて
362デフォルトの名無しさん:2011/04/17(日) 13:41:09.41
using System;
using System.Collections;
using System.Linq;
using System.Collections.Generic;

class Program
{
static void Main(string[] args)
{
var a = new[] { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4 };
var b = new[] { 0, 2, 4, 6, 8, 10, 12 };

Show(a.Take(5));
Show(a.Skip(5));
Show(a.TakeWhile(x => x != 2));
Show(a.SkipWhile(x => x != 2));
}

static void Show<T>(IEnumerable<T> a)
{
foreach (var x in a)
Console.Write("{0} ", x);
Console.Write("\n");
}
}

メインから外に出したらうまく行きましたが、
なんで外に出さなきゃいけないの?
363デフォルトの名無しさん:2011/04/17(日) 13:43:09.38
そりゃおまえ性的なものは中に出すと妊娠しちゃうからだよ
364デフォルトの名無しさん:2011/04/17(日) 13:44:14.52
static void Show<T>(IEnumerable<T> a)
{
foreach (var x in a)
//ここから
Console.Write("{0} ", x);
Console.Write("\n");
//ここまで
}
365デフォルトの名無しさん:2011/04/17(日) 13:45:50.25
>>362
はっきり言うけど、お前プログラミング向いてないわ
366デフォルトの名無しさん:2011/04/17(日) 13:49:22.76
VBからコピペするとこうなるだけだと思うよ
最近このスレ低学歴が多いから
367デフォルトの名無しさん:2011/04/17(日) 13:50:38.50
>>364
ここからここまでを{}でくくるってこと?
挙動かわっちゃうじゃん。
368デフォルトの名無しさん:2011/04/17(日) 13:51:53.74
>>361
foreachって{}省略できなかったっけ。
369デフォルトの名無しさん:2011/04/17(日) 13:58:17.69
{}で括っても>>362のエラーは消えないよ
370デフォルトの名無しさん:2011/04/17(日) 14:05:39.90
そもそも「メインから外に出したらうまく行きましたが」ってのが理解不能。
Mainメソッドの中にstaticメソッド書いてたのか???
371デフォルトの名無しさん:2011/04/17(日) 14:21:25.32
何をやりたいのか、
どこからお題をもってきてそうなったのかよくわからんけど

スコープとか勉強した方がいいぞ
372デフォルトの名無しさん:2011/04/17(日) 14:28:58.15
このスレって回答者も初心者なの?
373デフォルトの名無しさん:2011/04/17(日) 14:31:43.87
>>365
お前だろいつもこのスレ荒らしてるの
低学歴はお帰りください
374デフォルトの名無しさん:2011/04/17(日) 14:35:04.79
学歴コンプレックスでもあるのか?w
375デフォルトの名無しさん:2011/04/17(日) 14:36:05.65
VS2008 でエラーになんないけど。
376デフォルトの名無しさん:2011/04/17(日) 15:22:59.90
>>360
この時点でのソースコードを全部出してね。部分的に出されても回答できないよ。
377デフォルトの名無しさん:2011/04/17(日) 16:09:41.32
ブレースの個数があってないエラーが解決できないってのは単なるメクラだろ
Cでマクロ使ってるわけじゃあるまいし
378デフォルトの名無しさん:2011/04/17(日) 19:50:34.50
質問者ですが>>363で大体解決しましたw

皆さんどうもです
379デフォルトの名無しさん:2011/04/17(日) 20:00:30.90
>>372
C/C++は玄人ですがC#は素人です。っていっても信用しないでしょ??
正直どっちも初心者だ。
380デフォルトの名無しさん:2011/04/17(日) 20:07:57.04
C++も2chで学んだので自信があります
381デフォルトの名無しさん:2011/04/17(日) 20:22:10.38
俺は高脳だから
382デフォルトの名無しさん:2011/04/17(日) 20:31:52.83
初心者をむやみに煽るやつもアホだと思うけど、
回答が間違ってたら煽る質問者もだいがいだわな。

「これで解決しない?」とか「こういう方向性で調べたら?」とか
ヒントをだしたら「いいかげんwwww」とか煽るようなやつ。
なんで赤の他人がそこまで親身になってきっちり調べてくれるとか
思ってるんだろうな。
383デフォルトの名無しさん:2011/04/17(日) 20:37:55.29
ここ騙りも多いからそういうの気にしないほうがいいよ
384デフォルトの名無しさん:2011/04/17(日) 20:47:11.00
>なんで赤の他人がそこまで親身になってきっちり調べてくれるとか
>思ってるんだろうな。

日本人はとにかく性格が悪いからな
そりゃ無理だわ
385デフォルトの名無しさん:2011/04/17(日) 20:50:35.93
職場でクソ真面目な分、鬱憤溜まってネットで吐き散らすのが日本人だからな
2chも空想世界の一部という認識なんだろう
386デフォルトの名無しさん:2011/04/17(日) 20:57:09.54
ヒント出されて煽ってくる質問者は、コピペしてそのまんま使えるような
回答を期待してんだろな。

ちょっとやり取りして分からないなりに理解しようって姿勢が見えたら
教えてやろうって物好きもいるもんだけどいきなり煽りだすからな。
コミュ力なさすぎでなにやらせてもダメそうな感じ。
387デフォルトの名無しさん:2011/04/17(日) 21:00:20.12
そんなまどろっこしいことしないで最初から答えだせばいいだろw
何でここをチャットみたいに使おうとするんだよw
388デフォルトの名無しさん:2011/04/17(日) 21:02:51.59
>>386
お前勉強できないだろ?
389デフォルトの名無しさん:2011/04/17(日) 21:06:08.29
>>387
うろ覚えのこととか、コード書いて確認が必要なこととかそんなきっちり
調べて回答するの面倒だろ。お前の母ちゃんじゃないんだしそんな親身じゃない。

390デフォルトの名無しさん:2011/04/17(日) 21:07:42.90
>>388
おまえ勉強できなさそうだな。
391デフォルトの名無しさん:2011/04/17(日) 21:58:58.21
それ以前に、こことかで回答してるヤツはべつに質問者のためにやってるわけじゃない。
自分の協力してあげたいって気持ちに応えてるだけ。
で、プログラマってのは職人だから、ほとんどの人は質問者に自分で気づいて欲しいと思ってる。

コピペが欲しいんだったら、そう言うスレに行くか作るかするか、
たまたまそう言う答えを返してくれる親切な人が現れるまでひたすら粘ればいいだけ。
回答者に文句をつけるのは自分の品位を低い方に証明するだけだろ。
392デフォルトの名無しさん:2011/04/17(日) 22:05:46.39
>>391
お前も勉強できないだろ
393デフォルトの名無しさん:2011/04/17(日) 22:12:30.50
LINQいいよね〜
394デフォルトの名無しさん:2011/04/17(日) 22:13:15.02
>>391
それはお前の考え
品行方正に訴えるならスルーしろ
395デフォルトの名無しさん:2011/04/17(日) 22:17:18.98
普通のやつ
「これがうまくいきません」
「XXじゃね?」
「それもだめでした」
「それじゃXXかXXかね」
「それです。うまくいきました」

だめなヤツ
「これがうまくいきません」
「XXじゃね?」
「じゃね?って、いいかげんwwww、このスレ素人ばっかしw」

コミュ力が絶望的にないか、ほんとうにコピペで使えるレベルの
答えがこないとだめなんだろうな。ヒントだされて煽ってくるやつ。

396デフォルトの名無しさん:2011/04/17(日) 22:21:33.06
ヒント出す

そのヒントがまったくの見当違い、というかそのヒントから導き出せる答えがそもそも間違ってる

別の回答者がそれを指摘

>>395

こんな感じだと思うよ
397デフォルトの名無しさん:2011/04/17(日) 22:32:11.02
デリゲートを使う
398デフォルトの名無しさん:2011/04/17(日) 22:35:44.13
デザインパターンで解決
399デフォルトの名無しさん:2011/04/17(日) 22:38:28.67
LINQ一択
400デフォルトの名無しさん:2011/04/17(日) 22:39:12.82
例が悪い
両方ダメな奴じゃねえか
401デフォルトの名無しさん:2011/04/17(日) 22:58:01.88
なんかいいラムダありますか?
402デフォルトの名無しさん:2011/04/17(日) 23:06:57.56
答え書けと言ってる奴が答え書けばいいじゃないか。
403デフォルトの名無しさん:2011/04/17(日) 23:18:59.80
>>402
フヒュリカポゥwwwwwwwwwwwwwwwwwwwwwwwww
404デフォルトの名無しさん:2011/04/18(月) 00:32:16.35
SerialPortのコンストラクターで教えてください
SerialPort()と何も指定しないと既定のDataBits 8、Parity None、StopBits 1、ポート名 COM1
SerialPort(String, Int32, Parity, Int32, StopBits)で個別に指定可能。ここまではさすがに解った。
じゃぁSerialPort(IContainer)の書き方はどういうふうに書けばいいの?
IContainer インターフェイスのオブジェクトを指定してって日本語が理解できません。
405デフォルトの名無しさん:2011/04/18(月) 00:40:54.62
>>404
ContainerがIContainerを実装してるみたいだから
SerialPort(new Container())でいいんじゃないの。
406デフォルトの名無しさん:2011/04/18(月) 00:44:13.06
そのコンストラクタはデザイナでフォームにD&Dしたときに使われる奴
フォームが破棄されるときに一緒に破棄してもらうための物
デザイナ使わないなら気にしなくておk
407デフォルトの名無しさん:2011/04/18(月) 00:50:13.17
ああ、そういえばそんなVBチックな仕組みがあったんだよな。
System.Timers.Timerとかもそんな風に出来たっけ。
すっかり忘れていたよ。
408デフォルトの名無しさん:2011/04/18(月) 08:50:24.23
dataGridViewで質問です。
dataGridView1.Rows[1].Selected = true;
としても、dataGridView1.CurrentRow.Index
が変化しません。selectとcurrentは別なんですか?
CurrentRow.Indexを操作する方法を教えてください。
409デフォルトの名無しさん:2011/04/18(月) 09:11:30.65
>>408
DataGridView1.CurrentCell = DataGridView1[DataGridView1.CurrentCell.ColumnIndex, 1];
410デフォルトの名無しさん:2011/04/18(月) 09:39:16.41
>>409
はぁ〜。セルで指定すれば動くのか。
SelectionModeをFullRowにして、行でしか選択できないようにしているので、
直接、行インデックスを弄ることしか考えてませんでした。
でも、それで出来ました。ありがとうございました。
411デフォルトの名無しさん:2011/04/18(月) 22:52:59.63
using System;
using System.Reflection;

class Program
{
static void Main(string[] args)
{
var lib = Assembly.LoadWithPartialName("lib");
var type = lib.GetType("Calculator");
dynamic calc = Activator.CreateInstance(type);

Console.WriteLine(calc.Add(1, 2));
}
}

ハンドルされていない例外: System.NullReferenceException: オブジェクト参照がオブ
ジェクト インスタンスに設定されていません。
場所 Program.Main(String[] args) 場所 C:\Users\aiueo\documents\visual studio
2010\Projects\test\test\Program.cs:行 9


lib.csは同ソリューション内にあるし

var calc = new Calculator();
Console.WriteLine(calc.Add(1, 2));

って書きゃうまく行くんだけど、遅延バインドとdynamicを用いて書きたいです
どうすりゃいいの?
412デフォルトの名無しさん:2011/04/18(月) 22:57:02.15
lib.csはアセンブリじゃないような気がするけどな
413デフォルトの名無しさん:2011/04/18(月) 23:02:01.35
コンパイルすればアセンブリになりますよね?
何言ってるんですか?
414デフォルトの名無しさん:2011/04/18(月) 23:07:21.73
lib.dllはあるの?
415デフォルトの名無しさん:2011/04/18(月) 23:08:09.00
lib.csをコンパイルしてもlib.dllになるとは限らんぜ
416デフォルトの名無しさん:2011/04/18(月) 23:08:24.89
おっと
417デフォルトの名無しさん:2011/04/18(月) 23:12:51.86
>>413
紛らわしいから煽り方変えてくれ

>>414
ああ、lib.dllが必要っぽいですね
今アセンブリについて調べてます
418デフォルトの名無しさん:2011/04/18(月) 23:38:23.01
とりあえずコンソール上で
csc /t:library lib.cs
csc /t:exe /r:lib.dll Program.cs
Program

とやったら無事に出来ました
でもVC#上だとうまくいかないままなんだけど、どうすりゃいいの?
419デフォルトの名無しさん:2011/04/18(月) 23:41:36.88
exeと同じフォルダにdllが存在してないんじゃね
420デフォルトの名無しさん:2011/04/18(月) 23:47:41.38
>>419
存在してます

ちなみにlib.dllをソリューションエクスプローラー上にD&Dしてもダメでした
オブジェクトブラウザーには反映されてるっぽいんだけどなあ・・・
421デフォルトの名無しさん:2011/04/18(月) 23:51:17.54
llb.dll
422デフォルトの名無しさん:2011/04/18(月) 23:52:38.40
プロジェクトに参照を追加ボタンを押してませんでした
さーせん
423デフォルトの名無しさん:2011/04/18(月) 23:53:44.02
こいつ144だろwwwww
424デフォルトの名無しさん:2011/04/18(月) 23:54:38.61
それで解決できたってことは結局>>419が原因だよなぁ
ていうか参照に追加しちゃったらわざわざ動的ロードする意味が
425デフォルトの名無しさん:2011/04/18(月) 23:55:59.31
参照に追加しちゃうと動的にならないのか?
426デフォルトの名無しさん:2011/04/18(月) 23:57:02.55
ならねーよ144君
427デフォルトの名無しさん:2011/04/18(月) 23:58:35.59
お前さんがやろうとしている意味での動的にはならないだろうね
消したら動かないから
428デフォルトの名無しさん:2011/04/19(火) 00:01:45.95
大方bin\debugじゃなくてプロジェクトのルートディレクトリに配置したんじゃねえの?
429デフォルトの名無しさん:2011/04/19(火) 00:05:44.54
俺は>>144じゃないが、

Assembly.LoadWithPartialName("lib");

の部分にAssembly.Loadに変えろって警告が出て、↓にそれぞれ変えてみても

var lib = Assembly.Load("lib.dll");
var lib = Assembly.Load("lib");

ハンドルされていない例外: System.IO.FileNotFoundException: ファイルまたはアセン
ブリ 'lib'、またはその依存関係の 1 つが読み込めませんでした。指定されたファ
イルが見つかりません。

って出ます
430デフォルトの名無しさん:2011/04/19(火) 00:08:42.76
>>428
C:\Users\aiueo\Documents\Visual Studio 2010\Projects\test\test\bin\Release

に配置したらうまく行きました

C:\Users\aiueo\Documents\Visual Studio 2010\Projects\test\test

じゃ駄目なのね
サンクス
431デフォルトの名無しさん:2011/04/19(火) 00:11:36.72
>>427
じゃあ参照してる>>418もダメってことか
432デフォルトの名無しさん:2011/04/19(火) 00:16:30.13
あぁこりゃ144だなw
433デフォルトの名無しさん:2011/04/19(火) 00:20:26.43
434デフォルトの名無しさん:2011/04/19(火) 00:23:21.21
言葉も出ない
435デフォルトの名無しさん:2011/04/19(火) 00:23:31.77
Visual C# でctrl +F5 のときは通常終了
だけど単なる F5 のときは例外投げて終了みたいなのって何が原因として考えられる?
436デフォルトの名無しさん:2011/04/19(火) 00:25:49.24
どこで例外
437デフォルトの名無しさん:2011/04/19(火) 00:26:42.08
GetHashCodeやEqualsやCompareToみたいなのの実装が間違ってるとそういう風になることがある
438デフォルトの名無しさん:2011/04/19(火) 02:13:10.16
テスト
439デフォルトの名無しさん:2011/04/19(火) 08:08:25.40
>>437
それ違くないか?
440デフォルトの名無しさん:2011/04/19(火) 08:21:04.74
このスレ荒らし多いな
441デフォルトの名無しさん:2011/04/19(火) 08:36:44.92
スレッド系の例外ならそういうこともあるけど、
どんな例外が起きてるの?
442デフォルトの名無しさん:2011/04/19(火) 11:12:13.32
ListBoxのItemsにアイテムの移動メソッドを追加したいんですけど
どうやれば追加できますか?
良くありそうなのにググッても出なかったので。。。

class ListBoxPlus : ListBox
{
//ItemsをObjectCollectionPlusにしたい
}

class ObjectCollectionPlus : ListBox.ObjectCollection
{
public void MoveUpAt(int index)
{
// アイテムの内容を1つ上に移動させる
}
}
443デフォルトの名無しさん:2011/04/19(火) 11:17:02.38
一度消してから追加するという方法しかありません
Removeしてから目的の位置にInsert
これ
444デフォルトの名無しさん:2011/04/19(火) 11:24:20.29
>>443
ありがとうございます。

やり方自体はそれでやるんですけど
メソッドを追加をしたいんです。
やりたいのは「Itemsにメソッドを追加」です。
445デフォルトの名無しさん:2011/04/19(火) 11:33:17.63
スーパークラスにメソッドを追加するというのはできません
できると思ったのなら継承の仕組みを根本的に誤解している恐れがあります



拡張メソッドでそのように見せかけることはできます
446デフォルトの名無しさん:2011/04/19(火) 11:37:34.36
CreateItemCollectionのオーバーライドおよびItemsの隠蔽でできないでもない
普通はしないけど 拡張メソッドで十分だし
447デフォルトの名無しさん:2011/04/19(火) 11:41:16.98
>>445
やっぱやるとしたら拡張メソッドになっちゃうんですね・・・。
Addなどと同等の機能なのでObjectCollectionに埋め込めないかと思ったのですが。。。

継承から学び直してきます^^;
ありがとうございました。
448デフォルトの名無しさん:2011/04/19(火) 11:49:26.64
>>443
無理矢理で良いならカスタムソート使えば・・・
449デフォルトの名無しさん:2011/04/19(火) 12:09:42.13
>>442
ListViewItemを継承すりゃいいじゃn
450デフォルトの名無しさん:2011/04/19(火) 12:39:05.64
>>449
ListViewItemにもアイテムを移動させるような
メソッドは無いみたいですけど・・・?
451デフォルトの名無しさん:2011/04/19(火) 12:52:43.11
そもそもListBoxにListViewItem突っ込む意味が判らん
452デフォルトの名無しさん:2011/04/19(火) 15:54:36.87
WindowsFormの周囲の青い部分(閉じるボタン等が表示される部分)の色は、
何ていうプロパティで設定するのでしょう?
453デフォルトの名無しさん:2011/04/19(火) 16:03:16.74
プロパティで設定するもんじゃないな
Windowsのテーマとかで設定するもの
454デフォルトの名無しさん:2011/04/19(火) 16:09:33.59
ウインドウ枠を変えたいのなら枠なしウインドウを作って自前でやるとかするしかないかも
455デフォルトの名無しさん:2011/04/19(火) 17:28:28.66
>>442
同時期に同じようなこと考えてる人がいるもんだw
でも自分でメソッド作ろうとするアンタはおれよりレベル上です。
おれはそういうメソッドが無いものかと質問しようかとオモテた。
そうか、やっぱろRemoveとInsertでやるのが普通なんだ。
456デフォルトの名無しさん:2011/04/19(火) 17:33:35.02
うぜえ
457デフォルトの名無しさん:2011/04/19(火) 19:00:46.77
>>453-454
ありがとうございます。諦めます。

また質問で申し訳ないのですが、最近のWindowsフォーム開発ではバリデーションはどんなものが良く使われているのでしょうか。
色々とコントロールを眺めてたらMaskedTextBoxと言ったものもあるようですが、PromptCharが邪魔で入力しづらいですね。
やはり、登録ボタンクリック、入力値変更などのイベントハンドラで、正規表現やバリデーション用ライブラリを使用して逐一チェック、と言う感じでしょうか?
458デフォルトの名無しさん:2011/04/19(火) 19:12:03.66
横からすいません
自分のクラスの任意のフィールドにアクセスされる度にあるメソッドを実行する、というような挙動を属性として定義することはできますか?
リフレクション調べてみましたがいい方法が見つかりません
今のところ各フィールドのgetの中でメソッド呼んでますが冗長に感じます
459デフォルトの名無しさん:2011/04/19(火) 19:37:08.59
今のところないですん
460デフォルトの名無しさん:2011/04/19(火) 19:55:29.00
そういうAOP的動作はC#方面だと嫌う人多い。
というか、Andersが断固として嫌ってるので入らない。
461デフォルトの名無しさん:2011/04/19(火) 21:37:15.83
>>459-460
ありがとうございます。しっかり定義しておけば.NETで管理できそうな気もするんですが、目指すところと方向性が違うのですかね
メタプログラミングってこういうことなのかなあと思っていたのですが
462デフォルトの名無しさん:2011/04/19(火) 21:50:37.26
属性でそれやるのは、どこで何が実行されるか本気でわけわからなくなるからやめた方がいい。
メタプログラミングするなら、C#コード生成とかの方がおすすめ。
463デフォルトの名無しさん:2011/04/19(火) 22:09:00.63
MSはメタプログラミング大好きだぞ
コード生成やらdynamicやらバインディングやら
AOPの類はハブられてるけど
464デフォルトの名無しさん:2011/04/19(火) 22:24:47.27
MSのメタプログラミングは、
T4使った静的なコード生成か、
プロキシクラスの生成か、
完全にフレームワークの内部に隠す(データバインディング)か、だな。

基本的に、何かが被ってるのが一目でわかるか、
もしくは完全に隠れててユーザーから見えない場所かでやってる。
465デフォルトの名無しさん:2011/04/19(火) 22:33:54.12
処理の仕方にもよるとは思うのですが、
大量の画像(30fpsの動画とか)を早く画像処理するには、
WPFとかXNAを使用したほうが良いのでしょうか?
466デフォルトの名無しさん:2011/04/19(火) 22:35:41.51
画像処理の内容による
CPUがボトルネックならWPFやXNA使っても速くはならん
処理によってはシェーダで代替できる場合はあってその場合は爆速
467デフォルトの名無しさん:2011/04/19(火) 23:28:49.30
>処理によってはシェーダで
くわしく
468デフォルトの名無しさん:2011/04/19(火) 23:31:46.27
それはこっちのセリフだ
何がしたいのか詳しく
469デフォルトの名無しさん:2011/04/20(水) 00:13:10.92
>>467
グラボで処理できることはそっちでやれってことだよ
470デフォルトの名無しさん:2011/04/20(水) 00:54:12.83
グラボで処理しなきゃだめってことって何があるの?
471デフォルトの名無しさん:2011/04/20(水) 00:59:10.20
ピクセル毎のエフェクトなら誇張じゃなく100倍くらい速くなる
472デフォルトの名無しさん:2011/04/20(水) 00:59:16.02
うるせーばか
473465:2011/04/20(水) 00:59:31.93
>>466
単純な二値化や先鋭化みたいな簡単な処理の場合は、シェーダ使わないほうが
速そうですね。

>>469
グラボで出来ることってどんなことがあるのでしょうか?
Taskみたいに処理そのものを渡すことが出来るのでしょうか?
474デフォルトの名無しさん:2011/04/20(水) 01:00:45.01
>>473
うるせーばか
475デフォルトの名無しさん:2011/04/20(水) 01:07:06.47
>>473
ピクセルシェーダは各ピクセルをそれぞれ独立に処理できる場合に最適
>単純な二値化や先鋭化みたいな簡単な処理
こういうのはまさにシェーダが最も得意とするタイプの処理で、とんでもなく速くなる
476デフォルトの名無しさん:2011/04/20(水) 01:50:20.77
>>473
基本的に、floatの積和演算。
画素単位に並列処理が走りまくる感じ。
477デフォルトの名無しさん:2011/04/20(水) 02:07:10.63
>>474static阿呆
478デフォルトの名無しさん:2011/04/20(水) 02:14:35.56
シェーダ
シェーダ
シェーダよ
探って旅を続けよう
479デフォルトの名無しさん:2011/04/20(水) 09:45:20.60
ブレークポイントを設定してブレークした時だけ自動変数のウィンドウに表示されたり、変数の上にカーソルを持っていくと変数の中身が見えるんですが、
変数の中身を常に表示しておくように追跡させるようなことはできないんですか?
480デフォルトの名無しさん:2011/04/20(水) 11:09:03.88
変数を右クリックしてウォッチ
481デフォルトの名無しさん:2011/04/20(水) 15:04:27.57
動的 = リフレクション = むちゃくちゃ遅い

って解釈は大体合ってるのか?
482デフォルトの名無しさん:2011/04/20(水) 15:07:03.32
ウォッチ!ウォッチ!
今日も君をウォッチ!
483デフォルトの名無しさん:2011/04/20(水) 15:09:50.08
>>481
やり方次第ねぇ。
個人的な感覚なんで正確じゃないけど、
型情報取り出すところからやると、静的コードの1000倍くらい
取り出したMethodInfoとかをどこかに保存して使いまわせば100〜500倍くらい
MethodInfoからデリゲートを動的生成して、それをキャッシュしとけば5〜10倍くらい
の遅さ。
484デフォルトの名無しさん:2011/04/20(水) 16:06:08.30
dynamicはけっこう速い
>>483の>MethodInfoからデリゲートを動的生成 に似た方法のキャッシュが行われるので
485デフォルトの名無しさん:2011/04/20(水) 16:11:37.72
ほう
まあ使わないんだけどね
486デフォルトの名無しさん:2011/04/20(水) 16:41:22.47
画像を並べて表示するソフトを作成中なのですが、画像を選択すると回りに色をつけるようにしています。
スクロールバーを下げると画像は表示されるのですが、自分で描画した画像は一度画面から外れると
描画されていません。対応として再描画イベントに着色するコードを入れるとメッチャ遅くなってしまいます。

みなさんは描画系はどのようにされているのでしょうか?

ほとんどのサイトは描画はするけど、そのあとの再描画にはあまり触れていないので・・・
487デフォルトの名無しさん:2011/04/20(水) 17:12:22.98
クリッピングにも限度があるから最終的に妥協する
仕事で妥協できなかった時は最終的にGDIで書き直した
488デフォルトの名無しさん:2011/04/20(水) 17:42:11.17
>>486
似たようなソフトをListViewのTileModeを使って、アイテムの描画はOwnerDrawで作ったこと有るが
その方法なら気になるほど速度低下しなかったと思う
489デフォルトの名無しさん:2011/04/20(水) 18:39:19.20
やっぱりC#て使えないな
490デフォルトの名無しさん:2011/04/20(水) 18:50:30.81
>>486
色が黒でいいのならFlowLayoutPanelの中にPictureBoxを並べて
BorderStyleを変えてるけど

そういうのじゃないっていうのならコピーコストかかりそうだけど
元画像を表示用bmpへコピーして表示用bmpに直接任意の色で線を引いて・・・とかやるとか
491465:2011/04/20(水) 20:00:49.39
>>475-476
ありがとうございます。
C#で使用する場合は、XNAやSlimDX辺りが良いのでしょうか?
とりあえずSlimDXで色々試してみます。

ところで、下記サンプルを参考に動かしてみたのですが、タスクマネージャで見るとCPUの一つにおもいっきり負荷がかかっていました。
もちろんグラフィックボードを積んだマシンで試しました。
GPUを使用するから、CPUに負担がかからないものと思っていたのですが、勘違いでしょうか?
それとも、描画そのものはGPUで行っているけど、それを呼び出す為にCPUに負担がかかっているだけなのでしょうか?
http://www21.atwiki.jp/csharpgamedev/pages/25.html
492デフォルトの名無しさん:2011/04/20(水) 20:05:34.83
DirectXを使うのとシェーダーを使うのは直接関係無いと思ってたけど違うのか
493デフォルトの名無しさん:2011/04/20(水) 20:16:31.89
例えばC++でDirectX使うにしてもシェーダーはTechniqueで差し込むじゃん
勝手に良きに計らってくれることなんてあるのだろうか
494デフォルトの名無しさん:2011/04/20(水) 20:21:38.72
画像処理と言っても色々あるが何を作りたいんだ?
画像や動画の出力時にシェーダでエフェクトかける用途ならWPFでやるのが楽。
http://wpffx.codeplex.com/
もっと高度な画像処理やるつもりならOpenCV使ったりする事になりだろう。
495465:2011/04/20(水) 20:55:18.44
画像処理は>>465にあるように、静止画を連続して加工したいんです。
今はBitmapデータをunsafeで配列に変換して計算したりOpenCVSharpを使用しています。
画像処理そのものは先鋭化や差分等の簡単な物なのですが、動画となるととにかく枚数が多くて時間がかかってしまうので、
他に何か良い方法が無いかと思い、質問してみました。
496デフォルトの名無しさん:2011/04/20(水) 21:38:30.59
>>495
WPFならこんな感じでシェーダ適用済みのBitmapSourceが得られる。
http://stackoverflow.com/questions/545676/save-wpf-image-with-shader-effects-applied
497デフォルトの名無しさん:2011/04/20(水) 22:00:14.30
すばらしい情報だ
よくやった
498465:2011/04/20(水) 22:10:14.27
>>496
WPFプロジェクトを少しいじってみましたが、思った通りに動かなくてちょっと梃子摺りそうですね・・・。
入門書を買ってしっかり勉強してみます。
ありがとうございました。
499465:2011/04/21(木) 00:22:36.46
WPFスレでスルーだったので、こっちでも・・・

WPFについて、何か良い入門書ってあるのでしょうか?
和書では何を見てもエッセンシャルWPFに辿り着くのですが、入門書とするには少し敷居が高いようなので・・・。
すいませんが、よろしくお願いします。
500デフォルトの名無しさん:2011/04/21(木) 00:22:45.02
コントロール、イベントが自動で追加されるwindows1.g.csはどこから開けるんですか?
501デフォルトの名無しさん:2011/04/21(木) 00:25:51.16
>>499
MCTS Self-Paced Training Kit (Exam 70-502)
502デフォルトの名無しさん:2011/04/21(木) 00:29:42.54
>>499
書籍に手を出すよりサンプルコードを入手してあれこれやるとかしかないかなあ

>>500
WPFの話?
確か隠しファイルになってるのでソリューションエクスプローラー窓の
上のアイコンの中にすべてのファイルを表示ってのがあるのでそれをクリックすると
隠れてたファイル群がでてくる
503デフォルトの名無しさん:2011/04/21(木) 00:30:31.51
>>500
InitializeComponentを右クリックして定義へ移動
WinFormsみたいにコントロールを作成するコードは存在しなくて
イベントハンドラの紐付けとフィールドへの代入を行うコードだけだから見ても面白くないけど
504デフォルトの名無しさん:2011/04/21(木) 01:30:12.69
>>498
学ぼうと頑張ってる姿を見ると少し手伝いたくなるものだね。
なんだか寝付けないんでサンプル書いてきた。
http://ideone.com/pbdEc

あと便利ツール
ShaderPad
http://shaderpad.codeplex.com/
NShader
http://nshader.codeplex.com/
505デフォルトの名無しさん:2011/04/21(木) 02:07:48.66
>>499
WPFはオワコン
506465:2011/04/21(木) 05:35:35.82
>>501
ありがとうございます。
洋書だとたくさんあるのですが、和書となると一気に減りますねー。
面白そうではあるのですが、変わりすぎててどこから手をつけていい物やらって感じです。

>>502
サンプルコードはちょくちょく見るのですが、それだと部分的にしかわからず、全体が掴めないかなと。
結局はエッセンシャルWPFになってしまいそうですが・・・少し古いのに高いっ。

>>504
サンプルを書いてくださったりツールの紹介、ありがとうございます。
今日はもう遅いので、明日(と、いうか数時間後)に試してみたいと思います。
507デフォルトの名無しさん:2011/04/21(木) 05:37:37.41
>>506
お前はいいな
俺の時は誰も教えてくれなかった
508デフォルトの名無しさん:2011/04/21(木) 07:07:39.44
流れが速い時はスルーされがちだよね。
今一度初心を思い出そうではないか。
>このスレッドは「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
509デフォルトの名無しさん:2011/04/21(木) 08:58:22.10
>>507
その時々でWPF触ってない人しかいないとかあるしな
510デフォルトの名無しさん:2011/04/21(木) 18:32:58.20
これについてなんですが、

Directory.Existsのバグ的なもの
http://d.hatena.ne.jp/ogiogi3/20080926/1222409987

ファイル名やフォルダ名の末尾にスペース文字が入ってもエラーにならないDotNetの
ファイル関係クラスはないでしょうか。どうしても無理の場合はAPIなどでなら
可能でしょうか?その場合は何を検索すればよいか教えてください。よろしくです。
511デフォルトの名無しさん:2011/04/21(木) 18:39:54.52
どうしても無理ってなにが無理なん?主語が無い
512デフォルトの名無しさん:2011/04/21(木) 18:42:39.26
>>510
Win32APIなどに同様の物はあるんだろうけど
そもそも末尾に半角や全角のスペースをつけるって仕様がどうなの?
って感じもするけど

それは自分で決めた仕様なの?それとも他人も絡んで変えられない仕様なの?
まあ他人と絡むにしてもアンダーライン _ にするとかさ・・・
513デフォルトの名無しさん:2011/04/21(木) 18:45:13.53
適当に試したけど末尾の空白は全部消されるな
Win32APIのCreateFile直で呼んでも消える
514デフォルトの名無しさん:2011/04/21(木) 18:47:55.27
>>513
まあ.netってそういうAPIのラッパーみたいな物だから
結果的にそうなるような気がする・・・
515デフォルトの名無しさん:2011/04/21(木) 18:49:07.29
FindFirstFileはワイルドカード使えたりする都合上末尾の空白を削除なんてしないんじゃないかなあと希望的観測を言ってみる
516デフォルトの名無しさん:2011/04/21(木) 19:36:20.31
文字列から指定した文字の最後の位置を調べたいんですが、どうすればいいんでしょうか

static public class stringEX : string
{
/// <summary>
/// 文字列を検索し、最後に見付かった指定文字の位置を返す
/// </summary>
/// <param name="c">指定文字</param>
/// <returns></returns>
 public int ReverseIndexOf (char c)
 {
  int pos = -1;
  for( int i = 0; i < string?.count; i++ )
   {
   if( string?.IndexOf( c, pos + 1 ) == -1 )
    {
     return pos;
    }
   else
   {
     pos = string?.IndexOf( c, pos );
   }
   }

   return pos;
  }
}

string test;
int LastPos = ((stringEX)test).ReverseIndexOf("\\");

という風にしたいのですが、string?の部分をどう書けばいいのかわかりません
517デフォルトの名無しさん:2011/04/21(木) 19:40:41.55
無知は悲惨の実例か?これは、
518デフォルトの名無しさん:2011/04/21(木) 19:41:29.54
>>516
自作しなくてもstring.LastIndexOf()でいいんじゃね?
519デフォルトの名無しさん:2011/04/21(木) 19:43:21.10
>>518
ありがとうございます。
ちなみにこの場合はどうかけばいいんでしょうか
520デフォルトの名無しさん:2011/04/21(木) 19:44:21.70
これはひどい
521デフォルトの名無しさん:2011/04/21(木) 19:45:15.24
MSDN調べて試すぐらいは…
522デフォルトの名無しさん:2011/04/21(木) 19:48:50.63
IndexOfと同じ方法で呼べるだろ?
あんま笑わすなよ
523デフォルトの名無しさん:2011/04/21(木) 19:53:47.75
stringクラスで文字列が格納されている変数名を調べるにはどうすればいいんですか?
あと、LastIndexOfの本体はどこにあるんでしょうか
public int LastIndexOf ( string value );
と書かれてるファイルにしかとべないんです
524デフォルトの名無しさん:2011/04/21(木) 19:59:59.16
LastIndexOfの実体ははmscorlib.dllの中
ソースコードとしては見れません

宿題なら宿題スレへ
525デフォルトの名無しさん:2011/04/21(木) 20:03:08.49
いやソースコードは見れるでしょ
526デフォルトの名無しさん:2011/04/21(木) 20:03:10.76
そもそも

static public class stringEX : string

こんな書き方ねーよ
これC#の話なの?本当に?
527デフォルトの名無しさん:2011/04/21(木) 20:03:31.43
>>524
ということはマイクロソフトのクラスをオーバーライドするときはこう書くしかないってことですか?

static public class stringEX : string
{
/// <summary>
/// 文字列を検索し、最後に見付かった指定文字の位置を返す
/// </summary>
/// <param name="c">指定文字</param>
/// <returns></returns>
 public int ReverseIndexOf (char c, string s)
 {
  int pos = -1;
  for( int i = 0; i < s.count; i++ )
   {
   if( s..IndexOf( c, pos + 1 ) == -1 )
    {
     return pos;
    }
   else
   {
     pos = s.IndexOf( c, pos );
   }
   }

   return pos;
  }
}

string test;
int LastPos = ((stringEX)test).ReverseIndexOf("\\", test);
528デフォルトの名無しさん:2011/04/21(木) 20:04:12.99
>>527
それ以前にStringクラスはsealedなので継承不可能ですよ
529デフォルトの名無しさん:2011/04/21(木) 20:06:21.14
何がしたいんだ一体…。
530デフォルトの名無しさん:2011/04/21(木) 20:06:34.33
オーバーライドの意味を勘違いしてないか?
531デフォルトの名無しさん:2011/04/21(木) 20:08:11.81
>>528
public sealed class String : IComparable, ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, IEnumerable, IEquatable<string>
のsealedを消して保存すれば継承できるようになるんでしょうか?
532デフォルトの名無しさん:2011/04/21(木) 20:08:21.33
そういうのは拡張メソッドの出番だろ…
533デフォルトの名無しさん:2011/04/21(木) 20:08:36.85
ちょっとこれは病的だな
534デフォルトの名無しさん:2011/04/21(木) 20:09:31.31
>>531
貴方の言ってることは実行できないので継承できるようにはなりません
どういう手段を駆使しても不可能です
535デフォルトの名無しさん:2011/04/21(木) 20:11:45.29
>>534
ありがとうございます勉強になりました
stringを継承したい場合どうすればいいんでしょうか
536デフォルトの名無しさん:2011/04/21(木) 20:12:01.62
人の話をきいてねぇw
537デフォルトの名無しさん:2011/04/21(木) 20:12:21.21
>>535
不可能だと申し上げました

もう一度だけ言います
不可能だと申し上げました
538デフォルトの名無しさん:2011/04/21(木) 20:13:06.96
声出してワロタ
我慢できんわww
539デフォルトの名無しさん:2011/04/21(木) 20:17:48.26
>>527のコードが限界ということですか?

int LastPos = ((stringEX)test).ReverseIndexOf("\\", test);

で(stringEXにキャストなくてもスマートに

int LastPos = test.ReverseIndexOf("\\");

というふうにできないのはなぜですか?
540デフォルトの名無しさん:2011/04/21(木) 20:19:26.78
すいませんやっぱりかなりどうでもいいのでLastIndexOfを使って次に行こうと思います
ありがとうございました。
541デフォルトの名無しさん:2011/04/21(木) 20:20:40.77
>>540
次に行く前に、最初の最初に戻って入門書から始めてください
542デフォルトの名無しさん:2011/04/21(木) 20:21:44.27
気になるよな
俺もプレステのコントローラについてるあの円筒形の部分に何の意味があるのかと調べたものさ
543デフォルトの名無しさん:2011/04/21(木) 20:22:51.09
次行ってみようといったらダメだこりゃって言われたでござる
544デフォルトの名無しさん:2011/04/21(木) 20:25:32.79
拡張メソッドで>>539みたいに書くことはできるが、まだ早いね。
545デフォルトの名無しさん:2011/04/21(木) 20:29:49.03
教えてください。
Form1で作成したBindingList<T> mylistを、Form2からdataGridViewのソースとして開きたいのですが、
dataGridView1.DataSource = ((Form1)this.Owner).mylist;と書きましたが、
領域外となります。mylistをpublicにすると、領域はOKなのですが、
デバッグでアクセスに一貫性がないとなりデバッグ通りません。
どのように書けばよいのでしょうか?
546デフォルトの名無しさん:2011/04/21(木) 20:31:44.25
T型がinternal以下だとか言わない?
547デフォルトの名無しさん:2011/04/21(木) 20:35:52.74
例えばこんなんだと通らないよ

internal class Element { }

public class Form
{
public readonly List<Element> Items = new List<Element>();
}

エラー
アクセシビリティに一貫性がありません。
フィールドの型 'System.Collections.Generic.List<Test.Element>' のアクセシビリティはフィールド 'Test.Form.Items' よりも低く設定されています。
548デフォルトの名無しさん:2011/04/21(木) 20:38:20.18
なるほど。T型のクラスをpublicにしたら通りました。ありがとうございます!
549デフォルトの名無しさん:2011/04/21(木) 20:38:24.04
>>525
どこで?
550デフォルトの名無しさん:2011/04/21(木) 20:58:33.45
551デフォルトの名無しさん:2011/04/21(木) 21:01:05.88
552デフォルトの名無しさん:2011/04/21(木) 21:05:13.13
>>549
一昔前はツール使ってソースを復元してたけど
MS本体が.net関連のソースコードを公開してるよ
553デフォルトの名無しさん:2011/04/21(木) 21:14:58.06
>>551
.Net 8.0てなにこれ
554デフォルトの名無しさん:2011/04/21(木) 22:57:33.82
VC# Express 2010使ってるんだけど
音声ファイルをexeに埋め込むのはどうやるの?

wavファイルを鳴らすプログラム作ってるんだけど
いちいち外部ファイル読み込みたくない
555デフォルトの名無しさん:2011/04/21(木) 22:59:31.31
>>554
リソースに突っ込む。
使うときは、プロパティかなんかでストリームが取れるのでそいつを読むとか投げるとかすれば音が出るよ。
556465:2011/04/22(金) 00:20:33.04
>>504
すいません、サンプル作って頂いたのに動作させることが出来ませんでした。
とこか間違っていますでしょうか?
WindowsXP、VS2010、.NET Framework4.0です。
すいませんが、よろしくお願いします。

http://iup.2ch-library.com/i/i0289258-1303398924.jpg
http://iup.2ch-library.com/i/i0289259-1303398924.jpg
http://iup.2ch-library.com/i/i0289260-1303398924.jpg
557デフォルトの名無しさん:2011/04/22(金) 00:40:18.35
まったく分からんがピクセルシェーダーファイル読み込めてないだけの気がする
558デフォルトの名無しさん:2011/04/22(金) 08:43:12.93
$(ProjectDir)/ShaderSource/Embossed.ps
配置とビルドアクションは間違ってないよね?
559デフォルトの名無しさん:2011/04/22(金) 09:34:17.25
MatchCollectionって、なぜLinqが使えないんでしょうか。

MatchCollection mc = Regex.Matches("aa bb", @"(\w+)");
mc.Select(…);
みたいなことができません。

IEnumerableを継承してるクラスなのでできるんじゃないかと予想したんですが。
560デフォルトの名無しさん:2011/04/22(金) 09:45:29.96
IEnumerable<T>じゃないから
561デフォルトの名無しさん:2011/04/22(金) 09:46:20.13
Cast<Match>()
562デフォルトの名無しさん:2011/04/22(金) 09:49:59.01
>>560 >>561
できました。サンキューです。
563デフォルトの名無しさん:2011/04/22(金) 15:13:57.67
教えてください、
List<myT> listAを編集するため、編集用dataGridViewに表示させるのですが、
編集を取り消す時(Undo)のために、前の状態はキープしつつ、
別のlistBにコピーしてBを編集し、リザルトOKならAに上書きしてセーブ
ということを考えたのですが、listBを弄るとlistAも変わってしまいます。
AとBが独立したものとしてコピーを作るのはどうすればいいのでしょうか?

List<myT> listA = new List<myT>();
List<myT> listB = new List<myT>();

dataGridView1.DataSource = listA; //表示用
foreach (myT item in listA)
listB.Add(item); //コピー
dataGridView2.DataSource = listB; //編集用
564デフォルトの名無しさん:2011/04/22(金) 15:35:09.02
ListAが保持しているのは参照型なので、
>>listB.Add(item);
はポインタの付け替えをやっているにすぎない。

で、どうにかしてitemをクローンする方法をさがしてListBに突っ込めば良いよ。
565デフォルトの名無しさん:2011/04/22(金) 16:05:57.13
クローンっていっても浅いほうではなくて深いほうね。ディープコピーがひつようだー。
566デフォルトの名無しさん:2011/04/22(金) 17:10:38.43
ありがとうございます。
シャローコピーとディープコピーかぁ・・・
知らずに難しそうなところに首突っ込んでしまった?
勉強してきマース。
567デフォルトの名無しさん:2011/04/22(金) 17:32:06.39
あ、ちなみにお伺いしたĩですが、
こういう編集用のダイアログを開いて、リザルトCancelのときのために、
編集用データテーブルを用意するって考え方は普通でしょうか?
もっと簡単にキャンセルやUndoができるのでしょうか?
568デフォルトの名無しさん:2011/04/22(金) 18:36:43.94
手はいくつかあるが、たとえは編集の手順をスタックしてって最後に全部適応とか。
でも、特に制約が無いみたいだから編集用バッファをとるというのも正道だと思うよ。
569デフォルトの名無しさん:2011/04/22(金) 19:32:07.16
拡張メソッドで指定したクラスに対してだけインテリセンスが出てくるようにするにはどうすればいいですか?
570デフォルトの名無しさん:2011/04/22(金) 19:38:38.01
すみません、スレ違いかもしれませんが質問お願いします。

現在WinServer2008R2 にてタスクスケジュールを組み、
C#アプリを動かそうとしているのですが、フォームが表示されません。
(タスクマネージャには存在するのですが)
なのでLoadイベントもTimerTickも発生しません。
なにかよい手段はありませんでしょうか?
ちなみにコンソールアプリにはしたくありません。。

宜しくお願いいたします。
571570:2011/04/22(金) 19:42:45.50
ちなみにC#アプリは今まで普通につかっていたもので
動作は問題ありません。
572デフォルトの名無しさん:2011/04/22(金) 19:43:24.86
>>569
できないので諦めてくださいね
できないので諦めてくださいね
573デフォルトの名無しさん:2011/04/22(金) 20:25:29.36
#Regionごとにテキストの背景に色をつけることはできませんか?
574デフォルトの名無しさん:2011/04/22(金) 20:28:44.14
>>571
C#でフォーム表示するだけのプログラムをタスクに登録して試したけど普通に表示されるね
タスクのオプションで何かやってるかアプリの初期化動作でなんかやってるんでしょう

パス関係とかで
575デフォルトの名無しさん:2011/04/22(金) 20:53:42.14
>>574
win7かServer2008ですか?
576デフォルトの名無しさん:2011/04/22(金) 20:59:17.19
Windows7Ultimateです
577デフォルトの名無しさん:2011/04/22(金) 21:15:06.98
>>576
えええええええええええええええっ!!!
なんでなんだろ???

??????です
578デフォルトの名無しさん:2011/04/22(金) 21:17:52.08
何でってこっちが聞きたいわ
579デフォルトの名無しさん:2011/04/22(金) 21:22:31.92
>>578
ははは。でも同様の情報がググっていくつかあるんですよ。

解決策は書いてありませんが(笑
580デフォルトの名無しさん:2011/04/22(金) 21:24:01.81
>パス関係とかで

あれっ?
ファイルを読み込むだけでもだめですか?
581sage:2011/04/22(金) 21:33:10.56
質問です。
visualStudio2005でwindowsMediaPlayerをフォームにはめ込みました。
しかし、再生しても「メディアを読み込んでます」→「準備完了」となり再生が始まりません。
なんででしょうか??
よろしくお願いします。
582デフォルトの名無しさん:2011/04/22(金) 21:38:10.14
>581
あ、解決しました・・・。
583デフォルトの名無しさん:2011/04/22(金) 21:43:38.84
>>581
記憶を頼りに答えると、名前は正確じゃないかも知れないがAutoPlayプロバティーをOnにしないと
読み込み完了でファイルは再生されない
再生するには別途Playメソッドを実行する必要があります

あ、記憶だけだからプロバティー名やメソッド名はちゃんと調べてね
584デフォルトの名無しさん:2011/04/22(金) 23:01:33.45
Mono最強伝説
http://ja.wikipedia.org/wiki/XSP_(Web%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC)
585デフォルトの名無しさん:2011/04/22(金) 23:11:35.86
コピペ君って馬鹿だな、まで読んだ。
586デフォルトの名無しさん:2011/04/23(土) 00:27:00.44
Proberty
587デフォルトの名無しさん:2011/04/23(土) 11:20:32.58
tab controlのページ表題が入る部分の幅って、
入れる文字列で調整するしかないんですかね?スペースとか使って。
幅ポイントで指定して、文字センタリングとかできないんですね?
588デフォルトの名無しさん:2011/04/23(土) 14:23:06.10
WPFならテンプレートでどうにでもなるし、WinFormsなら普通にプロパティがあるはずだが?
589デフォルトの名無しさん:2011/04/23(土) 14:36:33.87
CSV形式で保存したデータを読み込んで

var a = new[]
{
new { X = 0, Y = 3 },
new { X = 1, Y = 4 },
new { X = 2, Y = 5 },
};

上記のような形式のデータテーブルを作成したいです

読み込んだデータをジャグ配列に入れ、ジャグ配列の要素をひとつひとつ指定して
newするのでは要素数が増えたときに対応できないので困っています
590デフォルトの名無しさん:2011/04/23(土) 14:41:14.22
何がしたい
そういう扱いするならどうやったって要素数増えたときに対応できねえよ
591デフォルトの名無しさん:2011/04/23(土) 14:42:58.31
DataTable使っとけば
592デフォルトの名無しさん:2011/04/23(土) 14:47:56.85
LINQの説明で使われていたんですが
わざわざデータをこういった形式に変換することは通常ないということですか?
593デフォルトの名無しさん:2011/04/23(土) 14:51:56.59
いや要素数が増えないから静的に型付けて X = 0, Y = 3 のように扱ってるんでしょ?
普通にそういう扱いはアリだが、どうせコード変えなきゃいけないんだから要素数が増えることを気にするのは無意味
594593:2011/04/23(土) 14:56:16.80
X, Yに加えてZが増えるのかと思ったけど、もしかして要素数って列数じゃなくて行数のことなのか?
それならループ回して一行読むたびにコレクションに入れればいいだけだが
595デフォルトの名無しさん:2011/04/23(土) 14:56:37.61
>>589
配列が面倒ならList<List<T>>で駄目なの?
596デフォルトの名無しさん:2011/04/23(土) 15:18:26.22
>>592
そのURLくれ
597デフォルトの名無しさん:2011/04/23(土) 15:36:55.56
ごめんなさい、行数のことでした
>>596 http://ufcpp.net/study/csharp/sp3_stdquery.html

class Person {
public string Name { get; set; }
public int Age { get; set; }
}
class Program {
static void Main(string[] args) {
List<Person> People = new List<Person>{
new Person{ Name="taro", Age=20},
new Person{ Name="hanako", Age=30}
};
People = new List<Person>{ new Person { Name = "jiro", Age = 40 }};
}
}

同じ名前でnewしているので上書きされちゃうのですがループで追加できるんでしょうか?
598デフォルトの名無しさん:2011/04/23(土) 15:54:45.97
なんでAddせんねん
599デフォルトの名無しさん:2011/04/23(土) 16:00:34.20
おお・・・できました
後は多分何とかなると思います
ありがとうございました
600デフォルトの名無しさん:2011/04/23(土) 16:05:54.12
601デフォルトの名無しさん:2011/04/23(土) 18:18:46.18
ファイルをドロップして他の受付可能なアプリケーションにドロップするにはどうすればいいんですか?
たとえばエクスプローラーからデスクトップにファイルを移動させる時は何を移動させて、デスクトップは何を受け付けるようになってるんdねすか?
602デフォルトの名無しさん:2011/04/23(土) 18:22:12.52
603465:2011/04/23(土) 20:27:58.37
>>557
http://www.dotup.org/uploda/www.dotup.org1560307.jpg

>>504にある通り、psファイルのビルドアクションをresouceにするだけじゃダメなのでしょうか?
604デフォルトの名無しさん:2011/04/23(土) 20:41:28.02
簡易的には>>602のControl.DragDropにDataFormats.FileDropで作ったDataObject突っ込んでってことになるけど
マジでやるならIShellFolder経由でCOMのIDataObject取得する
その場合でもControl.DragDropは使えるが
605デフォルトの名無しさん:2011/04/23(土) 21:43:14.77
こんにちは、誘導してほしいのですが、
自分のコードがスパゲッティ過ぎて泣けてくるんです。
どっかにそういう議論しているスレないですか?
606デフォルトの名無しさん:2011/04/23(土) 21:48:13.04
何の議論だよw
信じられないくらい酷いコード書く人はいるが
そういうこと気にする人は割とそこまで酷いコード書かない気がする
607デフォルトの名無しさん:2011/04/23(土) 21:52:56.20
>>603
配置が間違ってる。>>558に書いたように
$(ProjectDir)/Embossed.ps じゃなくて
$(ProjectDir)/ShaderSource/Embossed.ps

ShaderSourceに配置しないといけない理由はEffectLibrary.cs見れば分かる。
608デフォルトの名無しさん:2011/04/23(土) 21:53:48.59
>>605
この辺かな

「【GoF】デザインパターン 6
http://hibari.2ch.net/test/read.cgi/tech/1141846078/

リファクタリングをただのコード修正と思ってる人へ
http://hibari.2ch.net/test/read.cgi/tech/1275121556/

-OOP限定-プログラム設計相談室
http://hibari.2ch.net/test/read.cgi/tech/1127547359/

でも2chより本読んだほうがいいと思うよ
609デフォルトの名無しさん:2011/04/23(土) 21:54:05.15
>>605
C#の話でソースコードを晒せるなら>>2のサイトを使って
コード見てもらえばいいじゃん
610605:2011/04/23(土) 21:55:01.19
いや〜、
C#の流儀がまったくわからなくて、一応動作してるみたいなんだけどもう拡張は無理とか思うくらいスパゲッティなの。
まだプロトタイプなのに・・・。
611デフォルトの名無しさん:2011/04/23(土) 21:56:22.82
>>610
C#の流儀つーかオブジェクト指向の流儀だろうw

あとはGUI周りにあわせた(縛られた?)書き方になる場合もあるけど
612605:2011/04/23(土) 21:57:07.06
リロード忘れた。Orz

>>608-609
誘導サンキュー。
そうだなー、コード自体は公開してもかまわないからちょっと準備する〜。
613デフォルトの名無しさん:2011/04/23(土) 21:59:36.67
さらにりろー(略

>>611
それ、正解かも。
OOPの真似事はC++でやってたんだけど、new恐怖症だったのでそれが今きいてるのかなー。

ちょっと準備してくる〜。
614605:2011/04/23(土) 22:10:38.73
と、言うわけでUPしたよ。
http://www1.axfc.net/uploader/File/so/61901.zip&key=2ch

ドローソフトの真似事みたいな感じのソフト。
自作のゲームのキャラクタ考えるために作ったんだけど、もう限界・・・。
一番でかいウインドウを3点くらいクリックしたら線引けると思うよ。

作っててstructいらない子じゃね?とか思い始めた。
615デフォルトの名無しさん:2011/04/23(土) 22:32:42.57
タグフィールドを持ってるクラスを作るなとジョシュア・ブロックが言ってた
616デフォルトの名無しさん:2011/04/23(土) 22:35:22.14
そんなにおかしくはないと思う。このスレで見た質問者のコードの中では一番常識的な気が。
細かいことだけどDataはクラスの方がいい。きっとvector<T>と混同してるんだろうけど
List<T>は参照型だからコピーしたら共有されちゃうよ。
617616:2011/04/23(土) 22:39:36.75
すまん寝惚けてるわ
後の2行は忘れて
618デフォルトの名無しさん:2011/04/23(土) 22:45:46.99
>>615
レイヤーのなまえを保持しないといけない気がしたからTag変数作ったんだけど、
最終的にそれで問い合わせはしないつもりだったけどいつ方針転換するかわからないからそれは覚えておきます。

>>616
ほめられたようでうれしいが・・・。うむー。
やっぱdataはクラスのほうが良いよね。
ディープコピーは別に実装すればいいんだし。
619デフォルトの名無しさん:2011/04/23(土) 22:50:17.03
気になるのは無駄にインスタンスメソッドになってるDrawとか
620デフォルトの名無しさん:2011/04/23(土) 22:52:14.53
無意味にパブリックなインナークラスにしない
基本的に名前空間を使う
621605:2011/04/23(土) 22:55:34.77
>>618 も自分です。

>>619
なるほど、こういうのをstaticにするのか。
よく見たら、メンバ変数も使ってないし、なるほどね〜。
622デフォルトの名無しさん:2011/04/23(土) 22:58:45.62
り、りろーど・・・。

>>620
実装がツリーになっていいかなー??と思ってたんだけど、そうでもないのかな・・・。
こういう場合って親クラスと同名のネームスペース定義しても大丈夫なのかな?
それともほかの何かかな??
623605:2011/04/23(土) 23:09:11.87
そういえば、皆さんは再利用って言葉の信憑性ってどんなもんですか?
自分は一応頭の隅にあって、いつも引っかかってるんですよ。
それを無視してちょっと小汚い実装もアリならもうちょっとミニマムになるとおもうんですけども・・・。
624デフォルトの名無しさん:2011/04/23(土) 23:12:00.99
結構無理して書いてるから聞き流していいよ


内部クラスは基本的に外部クラスのプライベートメンバにアクセスする必要がある場合に使う
それと外部クラスの中でのみ使用するクラス

現段階では特別な名前空間を与える必要はないと思う

MakeDataがEVDSystemに定義されているけど、Dataクラスの方に書かれるべき
625デフォルトの名無しさん:2011/04/23(土) 23:13:34.37
再利用というならEVDSystemに依存させたらダメだよ
626デフォルトの名無しさん:2011/04/23(土) 23:15:43.91
再利用しなきゃいけなくなってからリファクタリングする
627デフォルトの名無しさん:2011/04/23(土) 23:16:29.11
これは感想だけどSystemとかDataとか抽象的な名前が嫌だ
628デフォルトの名無しさん:2011/04/23(土) 23:23:06.41
再利用なんて出来たらもうけものくらいの感覚。
ただ、再利用しない前提で再利用可能なプログラムを書くってのはやるかも。
構造化とかそういうのを意識して書いてるだけで、整理されてそのぶん早く書けるから。

‥‥で、標準工数の半分くらいで書いて、無駄に複雑すぎるって怒られる。w
教科書通り程度のこともしてないんだけどね。


>>614 のプログラム見たけど、特に気になる点はなかった。
変数関数の名前付けに違和感あったくらい。
強いて言えば関数単位で何やろうとしてるのかのコメントをさらっと書いてて欲しかった程度?
でもこれは本題とは関係ないし。
629605:2011/04/23(土) 23:30:30.28
>>624
ふむふむ、なるほど。えーっと、まず。structの使い方間違えてました!
で、データクラス(または構造体)は独立してもいいものなのか。ふーむ。
さっきアップしたの明らかに設計ミスなんでちと不味いですな〜。


>>625-626
そもそもそうですね。再利用を履き違えてたか。。。

>>627
それはうーん。すいません。Orz

>>628
やっぱ変数名おかしいですか・・・。考慮します。Orz
でも、確かに何か整理されてるようなきがしないでもないですね。そんな副次効果が!?
あー、そういえばコメント書いてないな最近・・・。気をつけます。
630605:2011/04/23(土) 23:33:25.17
さてさて、皆様色々ご意見ありがとう。
色々聞いてると、不味いところが出てきたのでスクラップ決定っぽいですね。
色々刺激が得られて面白かったし、滅茶苦茶勉強になりました。

そういう感じで今日は落ちますです。
皆様ありがと〜。
631デフォルトの名無しさん:2011/04/23(土) 23:40:43.73
外部から内部の変数を読む時にプロパティにアクセスすると思うんだけれど
今時って、自動実装get;set;だけ用意して内部変数を用意しないのが普通になってきてるのでしょうか?
自分のことは内部変数で、外はプロパティでっていうのがセオリーでしょうか?
過去にVC++6時代の他人が書いたの眺めてるんだけど
プロパティ用に用意したgetとsetの関数が大量にあって逆に見通しが悪い

今ならどうなんだろう?て思ってる、経験1ヶ月目のものぐさ新人です。
もうすでに動いてるものは触るな、言われたコトだけやってろいって先輩からは言われてるし
まぁ、責任分担からしてそりゃ当然だとは思うんだけれど、新規に起こす部分については
.net4の楽できるところはどんどん取り入れて見たいしなぁ。と。
632デフォルトの名無しさん:2011/04/23(土) 23:43:47.38
どんどん取り入れる権限なんて与えれてんのけ
633デフォルトの名無しさん:2011/04/23(土) 23:45:01.39
>>630
いろいろ書いてたらもう寝るようだが一応書き込んでおく

Dataに描画方法をenumで持たせるのではなく、

abstract class Shape { abstract Draw(Graphics g); }
class Polyline : Shape { ... }
class Polygon : Shape { ... }

みたいにするとOOP的に綺麗に纏まる
あと、細かいところでは

・timerのInvalidate()は無駄。というか、Invalidate()だけするのは無意味
・レイヤーの移動などの処理がイベントハンドラに直接書いてあるのが微妙
  → ちゃんとしたコレクションクラスを作ってMoveUp()とかを用意する
・メニューは分ける意味がないのでメインウィンドウにまとめる
  → データごとのウィンドウにメニューを付けるとかなら別だけど、今回のはそうではないので
・627に近いけど(publicな)クラスなどはもう少し意味のある名前を付ける。省略も駄目
  → 描画方法とかの意味ならMethodじゃなくてDrawingMethodみたいにする
  → FillPoly見たいに省略せずFillPolygonにする
634デフォルトの名無しさん:2011/04/23(土) 23:45:14.45
俺は外部から見えなければプロパティにせんわ
635デフォルトの名無しさん:2011/04/23(土) 23:51:52.76
まずその会社は退職しとけ。
636デフォルトの名無しさん:2011/04/23(土) 23:57:58.94
605さんのパソコンのログイン名がYakiyotiさんだとばれたりしないように
個人情報消してプロジェクトソース公開する方法って無いのかなぁ
637デフォルトの名無しさん:2011/04/23(土) 23:59:37.15
誰も触れなかったのに
638デフォルトの名無しさん:2011/04/24(日) 00:00:14.05
>>631
get/set 両方使うときは自動実装プロパティ一択。
明示的実装するのは、単なる代入以外のこと(PropertyChanged イベント起こすとか)するときだけ。
もしくは、バックフィールドをreadonlyにして、getのみにしてimmutableにするとかはよくやる。
639デフォルトの名無しさん:2011/04/24(日) 00:09:13.53
>>636
プロジェクトを作るときにd:\hoge\hogehoge
とか別の場所にすれば確か埋もれないはず

というかあの名前は何かしらで漏れることがあるので
適当な名前にしておくのがベスト
640デフォルトの名無しさん:2011/04/24(日) 00:15:42.42
デバッグ情報をnoneにしないと埋め込まれるんじゃなかったっけ
641デフォルトの名無しさん:2011/04/24(日) 00:22:09.08
adminだから問題無い
642デフォルトの名無しさん:2011/04/24(日) 00:29:29.19
>>638
自動実装使うくらいなら、個人的にはパブリックフィールドで良いと思うんだけどな
setをプライベート等にして、外部から書き込めないようにするとか
オーバーライドするとか理由が有れば別だけど、何となく使っている場合が多い
643デフォルトの名無しさん:2011/04/24(日) 00:29:43.19
個人用設定ファイルやデバッグ情報入りバイナリの他に、AssemblyInfo.csなんてのも
まあ、605が64bit OSを使っている可能性が高い、なんて情報はどうでもいいが

いずれにしても、ユーザー名はownerかuser、作業パスもC:\workなどのありふれた名前にしている俺には関係ないな
644デフォルトの名無しさん:2011/04/24(日) 00:33:38.62
>>642
実装が面倒くさかった時期ならともかく、自動実装で簡単に出来る昨今なのだから
パブリックフィールドにするぐらいならプロパティにすべきだね。
実用的な理由としては、リフレクションの都合が大きい。
ライブラリだったりフレームワークがプロパティ経由でしかアクセス出来ない場合があるから。
645デフォルトの名無しさん:2011/04/24(日) 00:33:57.29
フィールドは使わない方向性になってる
646デフォルトの名無しさん:2011/04/24(日) 00:35:42.22
647デフォルトの名無しさん:2011/04/24(日) 00:38:53.37
全部グローバル
648605:2011/04/24(日) 00:41:27.63
605です〜。

>>633
逆の発想ですな〜。
どうせ書き直し決定なので描画オブジェクトの線も考えて見ます。
で、フォームの更新系はかなり微妙ですね。
メインウインドウをキャンバスにしたのも失策だったと思います。
イベントハンドラに書くのは良くないのか。ふむー。
あと、やっぱ命名方法はみんな引っかかるんだなぁ・・・。Orz

って感じでご意見ありがとうです。参考にしますです。
649デフォルトの名無しさん:2011/04/24(日) 00:48:35.38
WPFなんてプロパティにしないとXAMLからアクセス出来ないし。
650デフォルトの名無しさん:2011/04/24(日) 00:51:50.39
staticフィールドは行ける気がする>XAML
651デフォルトの名無しさん:2011/04/24(日) 00:52:31.28
>>642
public フィールドはダメだろ。
あとから明示的実装足したい時に困る。
652デフォルトの名無しさん:2011/04/24(日) 00:55:11.93
publicフィールドから後になってプロパティが生えることは稀によくある
653デフォルトの名無しさん:2011/04/24(日) 00:55:27.43
必要になってからプロパティにしたらいいんじゃないの
どうせクライアント側から見たときは同じに見えるんだし
654デフォルトの名無しさん:2011/04/24(日) 00:57:16.97
構造体の扱い取ってみてもぜんぜん同じじゃねえw
655デフォルトの名無しさん:2011/04/24(日) 00:59:14.70
構造体の話なんてしてないが
656デフォルトの名無しさん:2011/04/24(日) 01:00:39.77
>>655
お前はフィールドとプロパティの違いを語るには早すぎるな…。
657デフォルトの名無しさん:2011/04/24(日) 01:01:18.87
いや同じじゃないから
658デフォルトの名無しさん:2011/04/24(日) 01:02:48.91
そういえば何でXAMLはプロパティじゃないと駄目なんかな。
659デフォルトの名無しさん:2011/04/24(日) 01:05:02.80
依存関係プロパティはフィールドで代替できないから
660デフォルトの名無しさん:2011/04/24(日) 01:07:20.33
INotifyPropertyChangedが感知しないとこで好き勝手に書き換えられるのは困るよね。
661デフォルトの名無しさん:2011/04/24(日) 01:08:18.66
>>651
いや、その程度の用途なら大して困らん
662デフォルトの名無しさん:2011/04/24(日) 01:09:17.62
川俣さんは継承とかアクセッサとかデザインパターンとか
オブジェクト指向至上主義者の理屈をばっさり切り捨ててくれて気持ちいい
663デフォルトの名無しさん:2011/04/24(日) 01:09:57.66
川俣おつ
664デフォルトの名無しさん:2011/04/24(日) 03:24:13.70
>>653
単一プロジェクト内ならね<後からプロパティにして問題ない。
利用側で再コンパイルが必要になるから、チームまたいだりするとまずい。
665デフォルトの名無しさん:2011/04/24(日) 03:57:26.34
プロのバディ
ちょっと言ってみたかった
666デフォルトの名無しさん:2011/04/24(日) 04:01:37.56
ぷw
667デフォルトの名無しさん:2011/04/24(日) 07:08:05.46
ウェブブラウザのテキストボックスを操作したいと思って
ウェブブラウザコントールからinnertextで文字を送り込むことは成功したのですが
その文字を取り込むことができません。なぜでしょうか

forms[0].InnerText = ”abc”; //文字入力(成功)
label1.Text = forms[0].InnerText;//文字取得失敗
668デフォルトの名無しさん:2011/04/24(日) 11:59:12.53
プロパティとフィールド、上位互換として実装できないものだったのか、と・・・
差別化しなきゃならないのって、速度的な問題とか?
669デフォルトの名無しさん:2011/04/24(日) 12:01:57.33
絶望した!汎用Swap関数が無いことに絶望した!!
無いとないで意外と不便だな。
670デフォルトの名無しさん:2011/04/24(日) 12:06:10.02
値の入れ替えなんて何年に一度必用になるんだ
671605:2011/04/24(日) 12:16:39.38
お い つ い た!!!!!

寝ようと思って床についても設計のこと考えてると寝れなかった605でございます。
一夜漬けで考えた結果、シングルトンは個人的には大嫌いなのだけど、
使わないといけない状況だと思ったので使ったら、コード量が半分位になりました。
とりあえず拡張は残したままで前バージョンと同じくらいの進度まできました。
いやー、刺激を受けるとできないことができるようになってたのしいな〜。
しかしホント寝ないと死んでしまう。
神様、次見たときこれがスパゲッティに変わってるなんて事はないですよね?ね?
と死亡フラグ立てておちまーす。

シングルトンは以下だよ。いろんな型をシングルインスタンスで取り回しというか引きずり回しというかができるよ。
言語仕様的に大丈夫かはしらないけど・・・。
 class Singleton<T> where T : new()
    {
        private static T Instance = new T();

        private Singleton() { }

        public static T Get()
        {
            return Instance;
        }
    }
672デフォルトの名無しさん:2011/04/24(日) 12:23:38.31
・new()制約とシングルトンってのが軽く矛盾してる
・ジェネリック型のstaticメンバはFxCopの警告が出たはず
・.NET的にはpublic static T Default { get{ return Instance; } }のほうが一般的
673デフォルトの名無しさん:2011/04/24(日) 12:24:24.27
なんかずいぶん前にこんなの作って廃棄した覚えがする
674デフォルトの名無しさん:2011/04/24(日) 12:27:50.60
GlobalVariableHolder<T>と名付けようぜ
675デフォルトの名無しさん:2011/04/24(日) 12:31:03.02
>>667
以前2ch専ブラを作って遊んでた時にナビゲート済みの
htmlドキュメントにhtmlタグを差し込んだ際にhtmlの
InnerTextを取得した際に追加で差し込んだ分は
入ってなかったことがあったのでそのままで取得できないかも
676デフォルトの名無しさん:2011/04/24(日) 12:37:02.36
おちますです。またこんど〜。

>>672
C++のテンプレートを独自C#解釈にしてそのまま持ってきた感じだから、やっぱもっとうえがあるんだねぇ。。。
っていうか、VC#2010なんだけど、警告の類は出てないよ。

>>673
俺は車輪の再発明しないと覚えられない人なので、
このみちーはーいーつかーき(ry

>>674
なんかものっすごく、お、大きいです。っていうかごっつくなった。。。
ま〜確かにグローバル変数なんですよね。シングルトンって。


677デフォルトの名無しさん:2011/04/24(日) 12:44:01.91
C#もいろんな子が来るようになったな
678デフォルトの名無しさん:2011/04/24(日) 12:44:48.05
>>676
http://msdn.microsoft.com/ja-jp/library/ms182139.aspx
FxCopはWindows SDKに単体版が付いてるけど、VS組み込み版はPremium以上でないと使えない
679デフォルトの名無しさん:2011/04/24(日) 12:54:21.88
推論できない型引数は使うなというのは知ってたけどstaticがダメなのは知らなかった
staticだからダメというより、メンバ呼び出しの際に型引数を明示的に指定させてはいけないってことなのか
MEFとかこのルール無視しまくってるけど
680デフォルトの名無しさん:2011/04/24(日) 13:09:27.96
>>667
簡単なの書いたけどやっぱとれねーな
http://ideone.com/Qoox0
681デフォルトの名無しさん:2011/04/24(日) 13:35:05.27
>>665
ヘイバディ
682デフォルトの名無しさん:2011/04/24(日) 13:48:38.36
>メンバ呼び出しの際に型引数を明示的に指定させてはいけない

Enumerable.Castェ・・・

地震だぁああああああああああああああああああ
683デフォルトの名無しさん:2011/04/24(日) 15:31:22.18
おはおー。

>>678
expressのライトユーザーには厳しい話ですな。
しかし、上に書いてあるシングルトンは呼び出すときに型指定するから、Tは一意に求まるのに何でダメなんだろう。
個人的には、インスタンスがコンパイル単位を超えるかどうかが結構ドキドキだったんだけど、大丈夫だったし。
684デフォルトの名無しさん:2011/04/24(日) 15:32:16.84
>>667
textBox1.Text = doc.Forms[0].InnerHtml;
として調べてみると、

名前:<INPUT value=abc name=NAME>

と展開されてるからじゃないかなぁ。
INPUTのvalue属性で値をとる必要がある。
685デフォルトの名無しさん:2011/04/24(日) 15:59:36.09
>>683
Expressならツール→外部ツール→追加

タイトル
FxCopなど

コマンド
C:\Program Files\Microsoft Fxcop 10.0\FxCopCmd.exe

引数
/c /f:$(TargetPath) /r:"C:\Program Files\Microsoft FxCop 10.0\Rules"

作業ディレクトリ
"C:\Program Files\Microsoft FxCop 10.0"

オプション
出力ウィンドウを使用する



で使えば十分じゃないかな
686デフォルトの名無しさん:2011/04/24(日) 16:01:55.33
>>685
およ、使えるのか。余裕あったら試してみる〜。
687デフォルトの名無しさん:2011/04/24(日) 20:13:25.61
およって何?
688デフォルトの名無しさん:2011/04/24(日) 20:17:45.56
ぐっすんおよよの略
689デフォルトの名無しさん:2011/04/24(日) 22:01:57.54
Hit&Blowをマルチスレッド化しようと思ってますが、
Parallel.Forって4.0じゃないと使えないんですか?
690デフォルトの名無しさん:2011/04/24(日) 22:15:56.56
CTPは3.5で動いたかな…
意味ないけど
691デフォルトの名無しさん:2011/04/24(日) 22:23:14.24
ふらっと質問ですが行列の内積や外積や逆行列の計算をしたい場合って
.net4.0でも無いのでしょうか?やっぱ自作しないと駄目?検索の仕方が悪い?
ttp://social.msdn.microsoft.com/Search/ja-JP/?Refinement=120&Query=%E9%80%86%E8%A1%8C%E5%88%97&beta=0

ガウスの消去法やLU分解を求めてから計算したりとか
大学1年生の1ヶ月目には、難易度高過ぎて訳解らないや
692デフォルトの名無しさん:2011/04/24(日) 22:27:03.82
.NETの中にはないけどMatrix Libraryとかで検索すれば出てくるから自作の必要性はないでしょ
693デフォルトの名無しさん:2011/04/24(日) 22:27:21.30
したいなら止めないけどね
694デフォルトの名無しさん:2011/04/24(日) 22:36:14.86
DirectXの範疇じゃね?
695デフォルトの名無しさん:2011/04/24(日) 22:46:27.51
RかOctaveかScilabかMaximaつかったら?
.NETならF#でやるのが楽そうな気もする。気になってるけどまだやってないんだけ。。。
696デフォルトの名無しさん:2011/04/24(日) 22:51:08.48
行列なんて簡単じゃん
697デフォルトの名無しさん:2011/04/24(日) 22:54:36.37
つ ILNumerics.Net
698デフォルトの名無しさん:2011/04/24(日) 22:57:54.55
699デフォルトの名無しさん:2011/04/24(日) 22:59:43.20
>>695
ライブラリだけ欲しいのに、言語とかUIまで抱き合わせだからねぇ、その辺りのツールは。

>>698 の Sho は結構いいよ。
Matlab 的感覚で IronPython 上で対話的コマンドライン操作もできるし、
ライブラリだけを C# から参照ってのも可能。
700デフォルトの名無しさん:2011/04/24(日) 23:01:03.61
>>696今の高校普通科って行列計算の仕方なんて教わらないまま卒業すんだぜ?
701デフォルトの名無しさん:2011/04/24(日) 23:21:54.82
7年前はまだ3Cで教えてたと思うけどな
702デフォルトの名無しさん:2011/04/25(月) 00:13:56.84
Stringからintへの変換で、TryParseを使った場合、

Stringが数値でないと0に変換されてしまいますが、そうではなく
そのままintへ変換出来る方法はないでしょうか?
703デフォルトの名無しさん:2011/04/25(月) 00:14:44.99
文字コードが欲しいの?
704デフォルトの名無しさん:2011/04/25(月) 00:16:47.77
またアホが根拠薄弱なゆとり批判を初めそうだから先手打っとくけど、
高校数学の行列なんてもともと2次の正方行列だけだけどね。

あれを行列計算(馬鹿っぽい表現だ)って言ってよいものか
705デフォルトの名無しさん:2011/04/25(月) 00:18:17.99
またお前か。
706デフォルトの名無しさん:2011/04/25(月) 00:37:24.06
理系コースなら数Cでやるから心配しなくていい。
707デフォルトの名無しさん:2011/04/25(月) 00:40:30.91
>>704
そうですか?当時は、二次正方行列とはいえ、写像における不動点・不動直線の概念や、対角化・固有値、固有ベクトルまでしていたような記憶があります。
708デフォルトの名無しさん:2011/04/25(月) 01:00:37.55
ハミルトン=ケイリーの定理にはお世話になったなあ
709デフォルトの名無しさん:2011/04/25(月) 01:02:25.63
>>707
それどう考えても大学1年の教養のレベルじゃん
どういう高校だ?
710デフォルトの名無しさん:2011/04/25(月) 01:23:29.22
ようやくまともな流れになってたのに
板違いの話振ってくる荒らしに釣られるなよ。
711デフォルトの名無しさん:2011/04/25(月) 01:43:33.57
つまりそれが奴だということだね。
712デフォルトの名無しさん:2011/04/25(月) 06:43:14.29
>>702もそうかな?
713667:2011/04/25(月) 09:20:50.29
>>675,680,684
使い方が間違ってるのかと思ったけれど、そうでもないみたいですね。
ありがとうございました
714デフォルトの名無しさん:2011/04/25(月) 19:08:31.72
>>709
>707じゃないけど、俺も対角化、固有値・固有ベクトルは高校でやったよ
別に普通の学校の理系。
715デフォルトの名無しさん:2011/04/25(月) 19:43:35.40
どうでもええがな
716デフォルトの名無しさん:2011/04/25(月) 20:12:26.28
プログラム初心者です。教えてください。
コマンドラインでファイル名を指定するコンソールアプリなんですが、
ファイル名はMain(string[] args)のargsに入るのですよね?
で、これをコマンドラインからではなく、初めからプログラムの中に
ファイルを指定するよう変更したいのですが、
args=ファイル名;はだめでした。@"ファイル名"もだめでした。
どう書けばいいのでしょうか?
717デフォルトの名無しさん:2011/04/25(月) 20:16:47.89
パスをきちんと指定してる?
何するのかはわからんけどファイル名だけじゃだめなんじゃないか
718デフォルトの名無しさん:2011/04/25(月) 20:16:50.46
ごめんちょっとなに言ってるかわかんない
719デフォルトの名無しさん:2011/04/25(月) 20:19:53.57
app.configに書けばいい
720デフォルトの名無しさん:2011/04/25(月) 20:39:06.71
>>716
よく分からんが、こういうことか?
args = new string[] { "ファイル名"};
721デフォルトの名無しさん:2011/04/25(月) 20:39:18.81
args = new string[]{ "ファイル" };

デバッグできねーってんだろ
そのくらいのエスパーはしてやれ
722デフォルトの名無しさん:2011/04/25(月) 20:42:23.25
ありがとうございます!
723デフォルトの名無しさん:2011/04/25(月) 21:04:32.40
これはいいエスパー
724デフォルトの名無しさん:2011/04/25(月) 21:34:37.67
PKデバッグ
725デフォルトの名無しさん:2011/04/25(月) 23:15:02.81
WMIのWin32_Processクラスを使って、プロセスが終了したかどうかを知るのはどうすればいいですか?
本来ならProcessクラスのHasExited辺りで済ませたいところですが、
アクセスが拒否される(Win32Exception)とのことで一部のプロセスのを取得できません。
WMIを使えばすべてのプロセス情報を得られます。
726デフォルトの名無しさん:2011/04/26(火) 00:05:52.98
うわあああああああ!!!!!!!!wwwwwww
727デフォルトの名無しさん:2011/04/26(火) 10:22:46.03
>>716
コンソールアプリのコマンドラインて、配列で受けるんだな。
作ったこと無いんで初めて知った。
そういえばDOS時代、いくつかのオプションスイッチを/とかで区切って入れてたな。
そいつを自動で配列の要素に割り振ってくれるのか。
ファイル名渡すだけなら配列にする必要ないもんな。
728デフォルトの名無しさん:2011/04/26(火) 12:12:45.33
バンドオブジェクトというのを使ってIEのツールバーを作ってみたのですが
得られる値がIWebBrowser2 Interfaceのメンバらしく進むか戻るしかできません
WebブラウザコントロールのgetElementsByNameの様にアクセスするにはどうしたらいいのでしょうか?
http://msdn.microsoft.com/en-us/library/aa752127(v=VS.85).aspx
よろしくお願いします
729デフォルトの名無しさん:2011/04/26(火) 12:17:29.85
ブラウザコントロールだってWebBrowserクラスにGetElementsByNameがあるわけじゃないだろ
730デフォルトの名無しさん:2011/04/26(火) 12:49:38.14
>>728
http://msdn.microsoft.com/en-us/library/aa752116%28v=VS.85%29.aspx

初心者が手を出す部分じゃないと思う
731デフォルトの名無しさん:2011/04/26(火) 13:22:30.37
VC#2010Expressで作ったソフトを公開すると、僕のパソコンのユーザー名がソフトに含まれてバレる可能性ってありますか?
732デフォルトの名無しさん:2011/04/26(火) 13:23:51.70
場合によっては
733デフォルトの名無しさん:2011/04/26(火) 14:29:18.17
デバッグ情報をnoneにすればおk
734デフォルトの名無しさん:2011/04/26(火) 15:02:43.82
C#ってstaticなデストラクタってないのですか?
735デフォルトの名無しさん:2011/04/26(火) 15:26:26.35
無いよ
デストラクタなんて呼ばれる保証のない保険だし
736デフォルトの名無しさん:2011/04/26(火) 20:11:48.17
デストラクタが保険ってマジで言ってんのかよ
ガベージコレクションを実現すんのにデストラクタの仕組みは必要だろ
それに呼ばれる保証が無いってのはどういうことだよ
いつ呼ばれるかは保証されていないだろうがSuppressFinalizeでもしていなきゃ
基本的にいつか呼び出されるだろ
737デフォルトの名無しさん:2011/04/26(火) 20:30:51.13
CriticalFinalizerObjectの派生クラス以外は確実に呼び出される保証は無かった気が
738デフォルトの名無しさん:2011/04/26(火) 20:32:42.38
>>736
お前もうC#さわんの止めろよな
739デフォルトの名無しさん:2011/04/26(火) 20:43:46.43
デストラクタって言葉だけ聞くと知そういう錯覚するわな…。
740デフォルトの名無しさん:2011/04/26(火) 20:58:14.56
デストラクタでデスマーチ
741デフォルトの名無しさん:2011/04/26(火) 20:59:13.97
最後の砦〜♪
742デフォルトの名無しさん:2011/04/26(火) 21:24:33.99
実際、ファイナライザが呼び出されないままプロセスが終わるような状況では
C++のデストラクタでも呼ばれない可能性が高い
743デフォルトの名無しさん:2011/04/26(火) 21:34:46.92
GC走れる状況なのが前提だからね。
744デフォルトの名無しさん:2011/04/26(火) 21:38:36.31
finallyとかusingも確実に呼び出されるとは限らないぞ
ファイナライザが呼び出される保障と同程度だ
ただし、finallyやusingはすぐに呼び出されるから、ファイナライザに比べて
呼び出されないままになる確率はずっと低いけど
745デフォルトの名無しさん:2011/04/26(火) 21:48:46.49
usingって何よ
IDisposable.Dispose()ちゃうんかい
746デフォルトの名無しさん:2011/04/26(火) 21:53:36.17
突然usingとfinallyの話になったな
747デフォルトの名無しさん:2011/04/26(火) 21:55:15.21
CriticalFinalizerObjectって
サーバーなんかで複数のAppDomainをCLRにロードする場合に
大本のCLRが生きてる限りはAppDomainが死亡するときに
ファイナライザが呼び出されないままになることがない保障という認識でいいの?
748デフォルトの名無しさん:2011/04/26(火) 21:56:42.52
>>737
ちょっと気になるんだけどMSDNかどっかで紹介されてた?
749デフォルトの名無しさん:2011/04/26(火) 22:06:31.88
>>748
http://msdn.microsoft.com/ja-jp/library/ms228970.aspx
このへん
でもAppDomainが一つだけのアプリならどうせAppDomain死亡=プロセス死亡
なんだから気にする必要ないよ
当たり前だけどプロセスを強制終了したらCriticalFinalizerObjectのファイナライザも呼ばれない
750465:2011/04/26(火) 23:10:29.85
>>607
返事が遅くなってすいません。
この配置ってことですよね・・・?
こちらも試しましたが、同じエラーが出ました。

http://iup.2ch-library.com/i/i0292539-1303826860.jpg
http://iup.2ch-library.com/i/i0292538-1303826860.jpg
751デフォルトの名無しさん:2011/04/26(火) 23:33:56.23
一次元配列から条件に合った要素を抽出して別の一次元配列を作るときに、
・List<T> に追加していって IEnumerable<T> で返す
・yield return で列挙していく
ではどっちが早いですか?
要素数は元の要素数が1000個くらい、抽出された結果が800個くらいです。
752デフォルトの名無しさん:2011/04/26(火) 23:35:48.84
>>751
つ 実験コード書いてベンチする
こういう実測経験も大事よ
753デフォルトの名無しさん:2011/04/26(火) 23:35:50.83
すぐに出来ることを何で試さないの?
754デフォルトの名無しさん:2011/04/26(火) 23:37:44.68
1000個なんかどうせ一瞬だからどうでもいい
絶対にそんな処理はボトルネックにならない
755デフォルトの名無しさん:2011/04/26(火) 23:41:41.53
すいません、今使ってるPCにVS入ってないもので…
ありがとうございます。今度実測してみます。
756デフォルトの名無しさん:2011/04/27(水) 00:05:31.98
>>751
Linqいいよねー。
757デフォルトの名無しさん:2011/04/27(水) 00:20:48.00
>>750
配置がおかしいやつがあるけど1枚目で問題ないように見える。

考えてもよく分からんので>>504のプロジェクトと実行ファイル
http://www.dotup.org/uploda/www.dotup.org1572873.zip.html
これで動かないならあとは自分で頑張って
758デフォルトの名無しさん:2011/04/27(水) 00:24:30.50
>>756
リテラルを考慮して文字列を分割する関数を考えてたんでLinq使うと逆にめんどいんです。
759デフォルトの名無しさん:2011/04/27(水) 00:33:35.78
>>758
Splitしたいってこと??Regexとか??
760デフォルトの名無しさん:2011/04/27(水) 01:00:29.46
"xxxxxxxx,yyyyyy,zzz",qwerty,uiop@[,"aaaa,b,c,d,e,f", "123456", ....

"xxxxxxxx,yyyyyy,zzz"
qwerty
uiop@[
"aaaa,b,c,d,e,f"
___"123456"

のように、文字列を引用符で囲まれた部分の中では分割しないようにして分割したいと考えてました。
文字列の先頭から走査して、引用符外にある分割用の文字が来たらそれまでの文字列を順次取り出そうと思っていたのですが、
List<string>に追加していくのとyield returnするのではパフォーマンスに差があるのかと思ったのでお聞きした次第です(そもそも
この方法自体が遅いような気もしますが・・・)

お騒がせしました。
761デフォルトの名無しさん:2011/04/27(水) 01:04:49.60
気にするところが変だよ
文字の分割とかの方がずっと重いはずなので、弄るんだったらそっちを弄らないと
全く効果はないよ
762デフォルトの名無しさん:2011/04/27(水) 01:05:15.03
Regexの範疇のような気がするけど、まぁ、いいか。余計なお節介して申し訳ない。
763762:2011/04/27(水) 01:06:33.19
>>762 = >>759 = >>756 ってことでよろしく。
764デフォルトの名無しさん:2011/04/27(水) 01:15:56.48
文字列を一回分割するたびに分割前の文字列と同じ分だけ新しい文字列が作られるんだから
明らかにそっちがボトルネック
一回測ってみて全く変わらないのを実感すればいいんじゃない
765デフォルトの名無しさん:2011/04/27(水) 01:40:30.64
これがいわゆる97%
766デフォルトの名無しさん:2011/04/27(水) 02:58:59.74
C#でDirectShowに代わるのって何がある?
767デフォルトの名無しさん:2011/04/27(水) 03:22:58.02
メディアプレイヤーコントロールとかどうよ。
768デフォルトの名無しさん:2011/04/27(水) 03:43:50.03
comコントロールにチェック入れたんだけどツールボックスに出てこないんだけどなんで?
主導で参照追加したいんだけどwpm.dllt追加したらWPMLIBが追加された
あとwmplib.dllはどこにあるの?
769デフォルトの名無しさん:2011/04/27(水) 10:48:06.59
realplayerの最新版を利用してrm動画を流したいんですがactivexコンポーネントを利用しても音声しか再生されません
昔は動画も取得できたのですが現在は動画の再生方法がよくわかりません
対策でもされたのでしょうか?
770728:2011/04/27(水) 12:03:03.18
>>729,730確かにちょっと難しいですね。ありがとうございました。
771デフォルトの名無しさん:2011/04/27(水) 12:51:03.89
2ヶ月分のカレンダーを表示して、連続していない複数の日付けを選択したいのですが

WPFでは、CalenderのSelectionModeをMultipleRageに指定できましたが、
2ヶ月分を表示させる良い方法がわかりません。
2つ並べてイベントで連動させるとかになるのでしょうか。

Formでは、monthCalenderでCalenderDimensionsで複数月を指定できましたが、
MultipleRangeの機能がありません。
http://hibari.2ch.net/test/read.cgi/win/1298974733/420
http://hibari.2ch.net/test/read.cgi/win/1298974733/420
http://hibari.2ch.net/test/read.cgi/win/1298974733/420

↑負け組・初心者に固執してたホモ精神障害者ってコイツぐらいだろwwww自爆乙wwwwwwwwwwwwwww



IP変えててもバレバレのマヌケ乙wwwwおいおい中途半端に自治気取ってんぞwwww
荒らしもしてねえのにバレる馬鹿ってコイツぐらいのもんだろwwwwwwwwwwwwww
上級者自慢とかwwwww情けねぇデブだなwwwwリアルでもやってそうwwwww必死チェッカー見ながらニヤつくキモヲタwww
頭悪すぎて勝手にファビョってることにしちゃってんだろうなw思考停止の典型wwwww
だから必死こいて顔面沸騰させてレスストップwwwクッソワロタwwww
知能低いから出る発言は突っ込み所しかない朝鮮人ぶりwwwwおもしれーーーwwww
知障レスもわざわざ読んでやる俺に感謝しろよ知的障害者wwwwwwwww
残念なのは顔だけにしとけよホモwwwwwFirefoxと初心者に劣等感抱いてる基地外wwwwwwwww
「「「エラそう」」」なんて言葉をすぐに口にする時点でコンプバレバレの自己紹介だなwwwwwwwww
普通わかんねえなら黙ってるもんなんだがなw白痴のプライド()に突き動かされてんだろなwwww「「「勘違い自称上級者」」」の社交性コンプででちゃった哀れな雑魚wwwwww

773デフォルトの名無しさん:2011/04/27(水) 16:18:39.04
カスタムコントロールとユーザーコントロールの違いって何?
774デフォルトの名無しさん:2011/04/27(水) 16:32:23.08
>>773
http://msdn.microsoft.com/ja-jp/library/yah0tcw1%28v=vs.80%29.aspx

複数のコモンコントロールをパッケージングするために作成するのがユーザーコントロール
コントロールそのものを拡張するのがカスタムコントロール
775デフォルトの名無しさん:2011/04/27(水) 16:38:54.44
>>774
まじかユーザーコントロールにラベル全張りして拡張を作ってしまった
作りなおしたほうがいい?
776デフォルトの名無しさん:2011/04/27(水) 16:59:21.37
>>775
ラベルのカスタムコントロールなら、何もコーディングしなくてもTextやFont等のプロバティーがそのまま使える
全貼りなら作り直した方が後々楽になる事が多い
777デフォルトの名無しさん:2011/04/27(水) 17:30:11.04
VC#2010EEのデザイナがほぼ100%の再現性で落ちるようになってしまった。
凝ったことはまったくやってないんだが。まいったなぁー。
778デフォルトの名無しさん:2011/04/27(水) 17:41:32.59
参れ
779デフォルトの名無しさん:2011/04/27(水) 17:43:53.05
他のクラスに変数を渡す場合なんだけど
元のクラスで変数が変更されたら渡された先の変数も連動するようにするにはどうすればいい?
780デフォルトの名無しさん:2011/04/27(水) 17:45:36.28
元のクラスを渡す
インターフェースを渡す
イベントを介して渡す
ゲッターデリゲートを渡す

好きなのでどうぞ
781デフォルトの名無しさん:2011/04/27(水) 17:50:34.29
>>元のクラスを渡す
すげー頭いいな
使う変数一つずつ全部渡してた
782デフォルトの名無しさん:2011/04/27(水) 17:54:17.05
一番頭の悪い方法だけどな
783デフォルトの名無しさん:2011/04/27(水) 17:54:57.64
どうでもいいけどグーグルで#で検索すると#が無視されるのはなんなの?
784デフォルトの名無しさん:2011/04/27(水) 17:55:49.08
C#は無視されないよ

「C」と「C#」で検索結果違うだろう?
785デフォルトの名無しさん:2011/04/27(水) 18:22:50.82
C#の#は第一級の扱いを受けてるからな
786デフォルトの名無しさん:2011/04/27(水) 18:50:34.10
C++とかも
787デフォルトの名無しさん:2011/04/27(水) 18:56:54.84
googleは実質全てのキーワードを""で括らないと使い物にならないアホ仕様が
昔からずっと気に入らない。

日本語版だけでも分かち書きしない限り""で括ったのと同じ扱いにすりゃいいのに。

あと最近は設定でオフに出来ないプレビューが糞過ぎる。
googleもだんだんMSみたいな体質になってきてるな。
788デフォルトの名無しさん:2011/04/27(水) 19:04:52.40
>>782悪いの?
789デフォルトの名無しさん:2011/04/27(水) 20:25:57.73
あれ?
つい最近までC#でググルとCの記事しか出てこなかったんだだがな。
""でくくっても結果は同じだったと記憶している。
唐ニか∈とかは今でも無視されるから、
最近になって特定の記号は無視しないようにしたのかな?
790デフォルトの名無しさん:2011/04/27(水) 20:37:12.47
少なくとも3年前に検索した時は出てたぞ

タイムマシンで過去から来たのか?
791デフォルトの名無しさん:2011/04/27(水) 20:38:20.98
つい最近って……
Google trendsによると遅くとも2004年には有効だったのだが
792デフォルトの名無しさん:2011/04/27(水) 20:48:24.00
未確認飛行Cの2002年6月の記事に「C# 入門」で検索してきてる人が多いと記述がある
2002年の@ITの会議室にも「Convert C#」でググるよう薦める書き込みがある

それ以前は知らん
793デフォルトの名無しさん:2011/04/27(水) 20:48:57.38
画面のサイズ変更と位置を同時にやりたい時ってサイズ変更と位置どっちを先にやっても画面がちらつくんだけど
どうすればいいと思う?一度hiddenにしてもちらつく
酔ってきた・・・
794デフォルトの名無しさん:2011/04/27(水) 20:53:30.88
プライドが邪魔して知らなかったとは言えない
795デフォルトの名無しさん:2011/04/27(水) 21:21:15.44
>>789-792
C# と C の検索結果が同じなんて、それこそ2000年にC#が発表された後、ほんの数か月だけだったと思う。
796デフォルトの名無しさん:2011/04/27(水) 21:24:56.91
Googleの話はもういいよ
797デフォルトの名無しさん:2011/04/27(水) 23:34:27.99
VSの入力補助で、なんでメソッドの()がついてくれないですか
798デフォルトの名無しさん:2011/04/27(水) 23:37:31.21
>>797
Method と Method() で意味が違って、前者使いたい場合もあるしね。
799デフォルトの名無しさん:2011/04/28(木) 00:05:34.05
window mobileでC#が動く日ってくる?
800デフォルトの名無しさん:2011/04/28(木) 00:09:21.36
>>799
WPなら・・・
ご愁傷様です
801デフォルトの名無しさん:2011/04/28(木) 00:26:07.77
>>798
なるほど、ありがとうございます
設定で変えられないもんですかね

また質問なんですが、WindowsFormのDataGridViewに、下のような選択肢を持つコンボボックスカラムを追加しました
1, 佐藤
2, 山田
ValueMemberが数字、DisplayMemberが名前となるよう設定しました
選択してる時はDisplayMemberが表示されるのですが、値が確定して次のセルに移動するとValueMemberが表示されてしまいます。
何が原因かお分かりでしたら教えて頂けると助かります。
802デフォルトの名無しさん:2011/04/28(木) 00:33:54.77
>>801
無理<()
803デフォルトの名無しさん:2011/04/28(木) 00:41:45.82
Visual C#でProgram.csからForm1やForm2にあるテキストボックスや変数に
アクセスするにはどうすればいいんですか?
804デフォルトの名無しさん:2011/04/28(木) 01:02:03.62
Run前に参照したらいいんじゃないの

Form1 frm = new Form1();
//frmへ何かする
Application.Run(frm);
805803:2011/04/28(木) 01:41:35.25
>>804

すいません大事なことを書き忘れていました
今Form1.csとForm2.csとProgram.csがあるんですが
Form2はForm1からnew Form2で呼び出しているんです

あともう一つ質問なんですが、Visual C#で右にあるcsファイルは最初一つに繋がっているんですか?
それとも完全に別々のファイルになってるんですか?
806デフォルトの名無しさん:2011/04/28(木) 01:44:52.07
>>803
>Program.csからForm1やForm2にあるテキストボックスや変数に
いまいち何をやりたいのかわからん

>あともう一つ質問なんですが、Visual C#で右にあるcsファイルは最初一つに繋がっているんですか?
>それとも完全に別々のファイルになってるんですか?
別だよ
807デフォルトの名無しさん:2011/04/28(木) 02:04:16.56
>>805
program.csは、Form1を起動するために使う物で、通常初心者はここにプログラムを書くことはありません
Form1かForm2のクラスに書くか、新たなクラスを書いてプログラムします
808803:2011/04/28(木) 02:05:30.44
>>806
Form2のTextbox1の内容をProgram.csのT1という変数に代入したいんです
あといまいちForm1.cs、Form2.csとProgram.csの構造がわかんないです・・・
809デフォルトの名無しさん:2011/04/28(木) 02:43:53.38
Program.csの中をみれば下記のようなコードがあると思うんだけど

Form1 frm = new Form1();
Application.Run(frm);

プログラムを実行するとWinFormアプリの場合は
Program.csが実行されてその中でForm1のインスタンスを作って
Application.RunでForm1を呼び出してる

その後Form1のコンストラクタが呼ばれてForm1のIDEがいじる部分を分離した
Form1.Designer.cs中のコードが呼ばれてIDE上で貼り付けた部品とかの
初期化が行われると

その後はLoadイベントとかを登録しておけば呼び出されて自分の書いたコードなど
へと処理が続くと

ちなみにForm2ってプロジェクトに追加しただけだとProgram.csは一つしかないよね?
810デフォルトの名無しさん:2011/04/28(木) 02:44:03.43
自動生成されたProgram.csの中に「アプリケーションのメイン エントリ ポイントです」って書いてあるよね

これの意味を自力で理解するまでProgram.csに触るな
811デフォルトの名無しさん:2011/04/28(木) 02:49:08.79
ああ、>>809
Form1 frm = new Form1();
Application.Run(frm);
この部分は訂正

実際はこうだな
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// アプリケーションのメイン エントリ ポイントです。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
WinFormはここから始まる
812デフォルトの名無しさん:2011/04/28(木) 03:05:27.90
テキストボックスがprivateで見れないって話じゃないのかな
813デフォルトの名無しさん:2011/04/28(木) 03:18:16.54
どのスレッドが終了しないで残ってるのかわからなくなりました
どうすれば追跡できますか?
814デフォルトの名無しさん:2011/04/28(木) 03:28:07.00
作った時に覚えておけよ
815デフォルトの名無しさん:2011/04/28(木) 03:30:06.99
>>813
スレッドを終了させるときにスレッド自身にログを吐き出すようにさせればどう?
816デフォルトの名無しさん:2011/04/28(木) 03:34:22.26
>>812
それ以前にForm2のインスタンスへの参照が取れてない気がするが

>>808
Form2のtextBox1の宣言をpublicに変更する
Program.csにForm2型のパブリック変数(たとえばf)を定義する
Form1.csでProgram.f=new Form2();でForm2のインスタンス生成する
これで、Program.cs内で
T1=f.textBox1.Text; とかできるようになる はず

ただ、こういう方法はプログラムの設計としてよろしくない
まあ、動けば良いというレベル
817デフォルトの名無しさん:2011/04/28(木) 03:37:01.51
Form2からForm1にアクセスしたいはもはやテンプレレベル
818デフォルトの名無しさん:2011/04/28(木) 03:58:45.60
>>817
かなり前に同じ質問があったんだけどねえ
コードも誰か書いてたんだが・・・

で、探すの面倒なので書いた
所望するコードになってるかわからんけど
Form1側
http://ideone.com/zih2k
Form2側
http://ideone.com/roIba
819デフォルトの名無しさん:2011/04/28(木) 04:40:27.49
マルチコア、マルチスレッドの場合ってスレッド複数作った時変数の書き込みと読み込みが別ならまだロック不要?
820デフォルトの名無しさん:2011/04/28(木) 05:37:42.39
そんなの状況によるだろ
821デフォルトの名無しさん:2011/04/28(木) 05:47:51.23
作ったって?
new Threadの時?
Thread.Startの時?
別って何が?
書き込みスレッドと読み込みスレッドが?
ステートメントが?
822デフォルトの名無しさん:2011/04/28(木) 05:55:53.29
状況によるだろってのは

int i = 0;

new Thread(() => { while (true)Console.WriteLine(i); }).Start();
new Thread(() => { while (true)i++; }).Start();

こんなんだったらロックなんて全くいらねーわけよ。
不要かどうかじゃなく必要だからやるんだぞ。
823デフォルトの名無しさん:2011/04/28(木) 10:19:11.92
>>822
それ、ロックいるのでは。
824デフォルトの名無しさん:2011/04/28(木) 11:36:43.00
>>823
書き込みが1スレッドだけならロック要らない。
++ は実際には load, add, store の3命令だけど、
この間の中途半端な状態を WriteLine されても特に困らないと思うし。

int (というか、4バイト以下のデータ)の場合、
add が中途半端な状態(下位バイトだけ書き換わってるとか)になることはないのは保証されてる。
825デフォルトの名無しさん:2011/04/28(木) 13:13:21.75
時代はシングルスレッド
826デフォルトの名無しさん:2011/04/28(木) 14:48:47.81
>>822
必要かどうかって意図したデータの読み書きが必要な時ロック使うってこと?
たとえば複数コアでほんとに同時に同じ変数に書き込みがあってデッドロックになるとかいう話じゃないの?
変数に書き込む時に1ビットずつ書き込んでてその途中のビットまで書き込んでるコアの処理中に他のコアで読みこんだらでたらめな数値になるとかいうのはないの?
827デフォルトの名無しさん:2011/04/28(木) 14:52:52.73
>>826
お前には100年早い
828デフォルトの名無しさん:2011/04/28(木) 14:57:10.20
( ゚д゚)、ペッ
829デフォルトの名無しさん:2011/04/28(木) 15:24:58.67
WindowsForm上に配置した既存のコントロールを、カスタムコントロールに置き換える簡単な方法はありますか?
designer.csで宣言してるクラス名を変えれば動くと思いますが、このファイルを編集するのはちょっと抵抗があるので
830デフォルトの名無しさん:2011/04/28(木) 15:28:13.73
>>829
やっちゃいなよ。ユー
831デフォルトの名無しさん:2011/04/28(木) 15:30:34.14
バックアップ取ってからやってみればいいじゃない
832デフォルトの名無しさん:2011/04/28(木) 15:36:13.43
高度な話のなかすまないが
文字列ないにダブルクォーテーションが含まれる場合どうやればいいんですか
text = "あい"うえ"さ";
あいまでが認識されてエラーになってしまうんです
833デフォルトの名無しさん:2011/04/28(木) 15:38:19.89
エスケープシーケンス
\"
834デフォルトの名無しさん:2011/04/28(木) 15:40:01.41
835デフォルトの名無しさん:2011/04/28(木) 15:43:35.35
>>826
要領を得ないので、ロックが必要かな?とあなたが思うコードを貼ってください
http://ideone.com/ 使って
836832:2011/04/28(木) 15:44:14.34
なるほど。ファイルパスを指定するときに@をつけないとエラーがでるのはそのためなんですね
ありがとうございました
837デフォルトの名無しさん:2011/04/28(木) 16:23:23.63
>>834
彼女が公式のC#たんか・・・
838デフォルトの名無しさん:2011/04/28(木) 16:24:36.44
コードを張るより説明したほうが早いと思うんだけど
スレッド2つあってどちらも延々とループ
片方はひたすらマウス座標書き込み
片方はひたすら他方のマウス座標格納変数読み込み
どっちが先かとかはどうでもいいんだけど読み込んだ時に必ず座標として認識する値になってるのかどうかしりたい
839デフォルトの名無しさん:2011/04/28(木) 16:28:25.07
ググレ
840デフォルトの名無しさん:2011/04/28(木) 16:30:52.55
例えばPoint.XとPointYの2つの変数にMouseGetPositionは入れてるからXだけ書き込んで
そこで読み込むとXはXは新しい座標、Yは古い座標だと困る
Point変数に対してはX,Yともに古い座標か新しい座標である保証はある?
841デフォルトの名無しさん:2011/04/28(木) 16:33:37.36
Pointの実装次第だがまあ普通は保証されない
むしろ何故保証されてると思うのか
842デフォルトの名無しさん:2011/04/28(木) 16:36:03.50
>>838
二つのスレッドにする意味がわからんが
片方のスレッドでマウスの座標を「書き込む」というトリガーがあるんだし
そのとき別スレッドに通知すればいいだけちゃうの?

それかデリゲートを使って渡してやるとか
843デフォルトの名無しさん:2011/04/28(木) 16:38:02.25
>>830-831
やってみます

VisualStudioで、データソース欄からDataGridViewをフォームに配置した際に、自動で定義されるカラムをカスタマイズしたいのですが、
データソース欄のテーブルを展開>カラム名のコンボボックスからカスタマイズを選択>関連付けられたコントロールに自作のカスタムコントロールを追加して、
このカスタムコントロールを適用しましたが、うまく反映されません

カスタムコントロールはテキストボックスで、テストとしてBackColorを赤、TextChangeイベントでForeColorをWhiteに変更するように記述しましたが、
DataGridView上では普通のテキストボックスになってしまいました

データソースからDataGridViewではなく、詳細を選択してフォームに配置した場合は、きちんとカスタムテキストボックスが配置されました
DataGridViewに反映されるにはどうしたらいいでしょうか
DataGridViewTextBoxColumnを継承したクラスのオブジェクトが自動で生成されるような設定方法があるのでしょうか
844デフォルトの名無しさん:2011/04/28(木) 16:42:43.94
そうだったのか壮大に勘違いしてた

>>824
それってaddが内部でロックしてあるからってこと?
自分で使う変数の書き換えはintであっても書き換え中に読み込むとおかしくなるってこと?
例えば
11111111
00000000
この2つを繰り返し入れてる場合この2つの数値のどっちかでなければいけないのに読み込むタイミングによっては
11110000
という数値を取得する場合はある?
もしそうならマルチコアの時は全部ロック使わなきゃいけない気がしてきたんだけど
845デフォルトの名無しさん:2011/04/28(木) 16:49:38.89
プログラミングの適性を計るテストとかある?
846デフォルトの名無しさん:2011/04/28(木) 17:07:26.90
>>844
>>844
> そうだったのか壮大に勘違いしてた
>
> >>824
> それってaddが内部でロックしてあるからってこと?

ロックかどうかなんて関係無い
そういう仕様だと理解しろ

> 自分で使う変数の書き換えはintであっても書き換え中に読み込むとおかしくなるってこと?

int型以下の大きさなら書き換え中の値が読まれたりしないと言ったばかりだろ
話聞いてんのか

> 例えば
> 11111111
> 00000000
> この2つを繰り返し入れてる場合この2つの数値のどっちかでなければいけないのに読み込むタイミングによっては
> 11110000
> という数値を取得する場合はある?

ねえっつてんだろボケ

> もしそうならマルチコアの時は全部ロック使わなきゃいけない気がしてきたんだけど

もう死ね
全部心行くまでロックしまくれ
847デフォルトの名無しさん:2011/04/28(木) 17:09:14.95
動かないDVD-RWWWwww
848デフォルトの名無しさん:2011/04/28(木) 17:13:04.21
まじかdoubleからはクラス内変数でなくても数値がおかしくなるのか
スレッド作りまくってしまったもうだめだ
849デフォルトの名無しさん:2011/04/28(木) 17:13:38.93
始めから「いかなる状況でもロックしろ」と言えば良かったのよ。
それが一番安心(≠安全)でしょ?
850デフォルトの名無しさん:2011/04/28(木) 17:19:06.46
そもそも話聞いてるとスレッド使うような場面じゃないのよね。
その程度の認識で手を出すなって。
851デフォルトの名無しさん:2011/04/28(木) 17:20:35.81
確かに全部DoEventでなんとかなってたけどもう癖だね
まずスレッド作るみたいな
852デフォルトの名無しさん:2011/04/28(木) 17:40:59.66
◆QZaw55cn4c
853デフォルトの名無しさん:2011/04/28(木) 19:26:24.00
>>844
.NET FrameworkのILの「仕様です」としか言えず。
4バイト以下の演算、ロード、ストアはアトミックってことになってる。

例えば、x86系CPUだと、ILのAddはマシン語の加算命令1命令にコンパイルされる。
1命令だからさすがに中途半端な状態でコンテキストスイッチ起きたりはしない。
(ロードもストアも同様)

もしたとえば、加算命令がアトミックじゃないCPUに.NETを移植するなら、
加算命令がアトミックになるようなロックなりなんなりの実装を足さなきゃいけないんじゃないかな。

この仕様があるんで、16ビットCPU上で.NET動かすのは現実的じゃないかも。
854デフォルトの名無しさん:2011/04/28(木) 19:29:13.94
>>848
あっ、たぶん、8バイトデータもだ。

CPU依存でいいなら断言できるんだけど。
現CLRの実装はdoubleの読み書き/加減乗除アトミック。

32ビットCPUでも、doubleがアトミックに操作されるようにできるんだけど、
そうなるようにJIT実装しろってのは仕様になってたかも。
855デフォルトの名無しさん:2011/04/28(木) 19:50:05.43
C#の仕様って言えるんだろうか
C#の仕様は別に中間言語吐けって言ってないよね

CLRの仕様と言ったほうが正しい?
856デフォルトの名無しさん:2011/04/28(木) 19:58:35.43
>>855
そう、CLRの仕様。
仕様の部分はCLRじゃなてCLItって名前だけど(CLRはそれのMS固有実装)。
857デフォルトの名無しさん:2011/04/28(木) 20:07:13.45
CLItなんて聞いたことがない
858デフォルトの名無しさん:2011/04/28(木) 21:23:36.55
4バイトまでのプリミティブ型の読み書きがアトミックなのはC#の言語仕様だぞ
859デフォルトの名無しさん:2011/04/28(木) 22:07:39.71
その話もう終わってんだけど
860デフォルトの名無しさん:2011/04/28(木) 22:37:23.70
ツールボックスのコンポーネントからフォームにSerialPortを投げ込むと
private System.IO.Ports.SerialPort serialPort1;
とdesigner.csに自動で追加されてる状況で質問です。

form1に
string[] ports = serialPort1.GetPortNames();
と書いても通りません。何故でしょうか?

インスタンス参照でメンバー 'System.IO.Ports.SerialPort.GetPortNames()' にアクセスできません。
代わりに型名を使用してください。

どなたか日本語で教えてください。
861デフォルトの名無しさん:2011/04/28(木) 22:41:44.28
インスタンス参照だから

実体に対して呼んでるから

静的関数は型に対して呼ぶ

ちなみにVBはインスタンスに対して静的関数を呼べる
862デフォルトの名無しさん:2011/04/28(木) 22:45:24.12
具体的には
×string[] ports = serialPort1.GetPortNames();
○string[] ports =SerialPort.GetPortNames();
ですね
863デフォルトの名無しさん:2011/04/28(木) 22:51:02.61
F1 押して CS0176 の解説見ればちゃんと例示されてるんだけどなぁ
864デフォルトの名無しさん:2011/04/28(木) 22:52:52.04
「日本語で」だから、コードの例示はむしろダメだろ
865デフォルトの名無しさん:2011/04/28(木) 22:56:33.73
クリックに拒絶反応起こす90年代のおっさんの様だ
866デフォルトの名無しさん:2011/04/28(木) 23:40:36.86
>代わりに型名を使用してください。
型名というのは極めて正確な表現ではあるが、不正確であっても「クラス名」とした方が通じやすいよな
まあエラーメッセージの宿命ではあるが
867デフォルトの名無しさん:2011/04/29(金) 00:34:32.80
コントロールクラスを作って自分で使うときにプロパティの値が変更されたらその値を使って再描画するようにするにはどうすればいいですか?
この変数の値が変わったら報告するように監視する仕組みは用意されてないんでしょうか
868デフォルトの名無しさん:2011/04/29(金) 00:38:26.44
INotifyPropertyChanged
869デフォルトの名無しさん:2011/04/29(金) 01:04:50.46
>>867
頼むから読めば分かる日本語を書いてくれよ。
意味不明すぎる。
870デフォルトの名無しさん:2011/04/29(金) 02:04:56.43
>>867
データバインディングのことを言ってる?
871デフォルトの名無しさん:2011/04/29(金) 02:10:35.70
ESPのくせになさけねえな
872デフォルトの名無しさん:2011/04/29(金) 02:10:49.97
TextBox.BorderStyleのFixedSingleみたいな枠線をComboBoxやDateTimePickerに設定できますか?
873デフォルトの名無しさん:2011/04/29(金) 02:20:09.51
VC#のデザイナが死にまくって困っていたが、思い立ってWEBインストーラ起動して再DL(160mb位)したら直ったようだ。
なんだったんだ・・・。
874デフォルトの名無しさん:2011/04/29(金) 02:21:26.70
ComboBoxはウィンドウハンドルを取得すればテキスト部分のスタイルを弄れた気がするなあ
DateTimePickerは知らん
875デフォルトの名無しさん:2011/04/29(金) 02:21:34.59
>>873
原因不明のオチは俺も経験してる
過去にスレに書き込んだらお前が変なプロジェクト作ってるからだと一喝されたw
876デフォルトの名無しさん:2011/04/29(金) 02:42:25.37
>>875
あらま。。。 ま、今回は直ってよかったさ。
877デフォルトの名無しさん:2011/04/29(金) 02:43:12.80
言ったの俺かもしれん
878デフォルトの名無しさん:2011/04/29(金) 16:25:24.19
親フォーム側
private void OptionsBtn_Click(object sender, EventArgs e)
{
using (OptionsForm optionsForm = new OptionsForm())
{
Hide();
optionsForm.ShowDialog();
Show();
}
}
子フォーム側
private void btnOK_Click(object sender, EventArgs e)
{
Properties.Settings.Default.PlayerName = playerNameTextBox.Text;
Properties.Settings.Default.Save();
this.Close();
}

親側で戻り値DialogResult.OKが来るのを見てから処理するやり方ばっかりしかしたこと無かったんですけど
こんなふうに、親は投げっぱなし、子供のコトは子供が閉めるってやり方が、今後はいいのかな?
879デフォルトの名無しさん:2011/04/29(金) 16:28:29.89
>>878
お好きなように
880デフォルトの名無しさん:2011/04/29(金) 17:38:51.85
Window1でthis.Activate()をしてもアクティブにならないので

while(true){
DoEvents();
this.Activate();
}

としたらアクティブになりました
どうしてですか?
しかし今度はアクティブから抜け出せなくなりました
なぜかというとアクティブになったのかどうかがActivetedで判断できないので抜けられないんです。
881デフォルトの名無しさん:2011/04/29(金) 17:43:54.37
Activateはいろいろデリケートなのよーん
http://d.hatena.ne.jp/tt_clown/20100715/1279195526
882デフォルトの名無しさん:2011/04/29(金) 17:50:13.26
WPFは詳しくないのだけどWindow.IsActiveってありませんでしたっけ
883デフォルトの名無しさん:2011/04/29(金) 17:52:18.77
884デフォルトの名無しさん:2011/04/29(金) 17:55:46.21
SetForgroundWindowの仕様を見るに、MSはフォーカス奪う行為がさぞかし嫌いらしい。
885デフォルトの名無しさん:2011/04/29(金) 17:56:46.20
Labelを継承したクラスを作成し、コンストラクタでAutoSizeをfalseに設定しているのですが、
この自作Labelをフォームに配置するとAutoSizeがtrueになっています。
同様に、DateTimePickerを継承したクラスでfont sizeを10に設定しているのですが、
フォームに配置すると9.75になってしまいます。

どうすれば設定した値になりますでしょうか。
886デフォルトの名無しさん:2011/04/29(金) 18:01:33.66
>>883
WPFでDoEventsもマルチスレッドも使わないでどうやってアプリ作るの?
887デフォルトの名無しさん:2011/04/29(金) 18:02:26.56
あれはDefaultValue属性で指定してた気がする…
うろ覚え
888デフォルトの名無しさん:2011/04/29(金) 18:05:44.18
ありがとうございますアクティブになりました

int me = System.Threading.Thread.CurrentThread.ManagedThreadId
ではアクティブにならなかったので
int me = AppDomain.GetCurrentThreadId()
を使ったんですが、使ってはいけないと言われますなぜですか?
ヘルプを見るとManagedThreadIdを使えと書いてあるんですが使うとアクティブになりませんどうすればいんでしょうか
889デフォルトの名無しさん:2011/04/29(金) 18:05:51.34
>>886
DoEventsがマルチスレッドだという認識を改めた方がいい

DoEventsはメッセージポンプを処理するだけだ
別のスレッドを起動してるわけじゃない

そもそもの問題として、なぜthis.Activateが動かないかを考える必要がある
this.Activateは内部でウィンドウメッセージを送っているが、
this.Activateを呼び出したイベントが処理を完了するまで次のイベントは処理できない
これは平行動作しているわけではないのだから当たり前だ
890デフォルトの名無しさん:2011/04/29(金) 18:10:43.97
DoEventsなんて一度も使ったことないや。
時間がかかるならスレッドプールに投げておしまい。
891デフォルトの名無しさん:2011/04/29(金) 18:13:41.26
>>886
ロックであれこれ考えずにスレッドを使えるBackgroundWorkerオススメ
マジオススメ
892デフォルトの名無しさん:2011/04/29(金) 18:13:44.68
どうしてもわからない


アクティブにならない
int i = 0;
while( i == 10000 )
{
DispatcherHelper.DoEvents();
this.Activate();
i++;
}


アクティブになる
while( true )
{
DispatcherHelper.DoEvents();
this.Activate();

}


この違いはなに?
893デフォルトの名無しさん:2011/04/29(金) 18:15:27.85
>>892
whileの中がboolに限定されてもこういうのは防げないな…
894デフォルトの名無しさん:2011/04/29(金) 18:16:48.06
int i = 0;
while( i == 10000 )

( ゚д゚)
895デフォルトの名無しさん:2011/04/29(金) 18:20:16.41
間違えた

ごく稀にアクティブになる
int i = 0;
while( i < 10 )
{
DispatcherHelper.DoEvents();
this.Activate();
i++;
}

たまにアクティブにならない
int i = 0;
while( i < 20 )
{
DispatcherHelper.DoEvents();
this.Activate();
i++;
}

実験上では100%アクティブになる
int i = 0;
while( i < 100 )
{
DispatcherHelper.DoEvents();

this.Activate();
i++;
}

どういうこと?
896デフォルトの名無しさん:2011/04/29(金) 18:21:43.78
>>892
上は最適化の中で出力されるアセンブラはif文とかいろいろありそうだけど
下は最適化されると無条件に上向きでジャンプしておしまいだからな・・・

>>889
>this.Activateを呼び出したイベントが処理を完了するまで次のイベントは処理できない
とその展開される命令の関係があるのかもね
897デフォルトの名無しさん:2011/04/29(金) 18:22:36.37
>>895
それはループ数が少なすぎて参考にならないんじゃね?
898デフォルトの名無しさん:2011/04/29(金) 18:25:03.43
何このループw
899デフォルトの名無しさん:2011/04/29(金) 18:26:08.79
int me = AppDomain.GetCurrentThreadId()
の使ってはいけない警告を無視して強引にアクティブにするか

int i = 0;
while( i < 1000 )
{
DispatcherHelper.DoEvents();

this.Activate();
i++;
}

でなにかすごく不安定な感じでアクティブにするか

この2択に迫られてるんだけどどっちがいいと思う?
900デフォルトの名無しさん:2011/04/29(金) 18:27:42.97
>>899
>でなにかすごく不安定な感じでアクティブにするか
>この2択に迫られてるんだけどどっちがいいと思う?
いやもっと違う選択肢はあると思うw

どういう処理をした後アクティブにしてるかコードを見てみないことにはw
901デフォルトの名無しさん:2011/04/29(金) 18:28:56.91
>>885
コードをよく見てみないとわからないが
どこかでミスってAutoSizeをtrueにするコードが入ってたりしない?
902デフォルトの名無しさん:2011/04/29(金) 18:30:01.46
>>900
class window1 : window
{
private void Window_MouseEnter ( object sender, MouseEventArgs e )
{
アクティブ処理();
}

}

これだけです
903デフォルトの名無しさん:2011/04/29(金) 18:31:45.95
this.Activateした瞬間メッセージキューに要求が入るわけじゃないから回数に依存するループはダメだと思うなー
904デフォルトの名無しさん:2011/04/29(金) 18:32:37.67
>>899
マジぽかーんとしたわw
905デフォルトの名無しさん:2011/04/29(金) 18:36:54.21
AppDomain.GetCurrentThreadId()〜ってのはAttachThreadInputで使うスレッドIDの話だと思うけど
これはネイティブのAPIだからManagedThreadIdじゃ駄目だわな

AppDomainの警告が見たくなければAPIのGetCurrentThreadId使うとか?
906デフォルトの名無しさん:2011/04/29(金) 18:36:59.07
フォーカス移動じゃだめか?
907デフォルトの名無しさん:2011/04/29(金) 18:37:27.46
>>903
回数にしないで

while( this.activeted == false )
{
DispatcherHelper.DoEvents();
this.Activate();
}

これだとアクティブにならないんです
なぜかというと
フラグ上はアクティブにはなっているのにアクティブになってないんです
908デフォルトの名無しさん:2011/04/29(金) 18:46:53.15
フォーカスは最初やってたんですがだめでした一度もアクティブにできませんでした
909デフォルトの名無しさん:2011/04/29(金) 18:48:17.40
こっちでもやってみたがウインドウは別のウインドウの後ろにいるのに
アクティブになったのかタスクバーのボタンが点滅するだけだな
910デフォルトの名無しさん:2011/04/29(金) 18:49:26.22
GetCurrentThreadIdをもうちょっと調べてみます
あと、
BackgroundWorker

スレッドプール

this.Activateした瞬間メッセージキューに要求が入るわけじゃない
を調べてみます
ありがとうございました
911デフォルトの名無しさん:2011/04/29(金) 18:54:11.39
MSDN読んで理解した
912デフォルトの名無しさん:2011/04/29(金) 18:55:41.39
>>909
AttachThreadInputしてないのならそれが正しい動作
913デフォルトの名無しさん:2011/04/29(金) 18:56:38.35
C#とJavaでプロセス間通信するなら何がいいですか?
とりあえずソケット通信を考えてます。
914デフォルトの名無しさん:2011/04/29(金) 18:59:26.33
JavaならRMIだろ
C#スレであるまじき事だがC#では同じ事をどうやるのか知らない
915デフォルトの名無しさん:2011/04/29(金) 19:01:46.18
>>912
そうなのか
this.Activate(true);
とかでその辺までやってくれるオプション欲しいね
916デフォルトの名無しさん:2011/04/29(金) 19:01:56.68
ってC#とJavaか
917デフォルトの名無しさん:2011/04/29(金) 19:03:56.24
>>915
昔はそういう動作だったんだけど削られたんだ…
今さら元の動作には戻らないだろうね
918デフォルトの名無しさん:2011/04/29(金) 19:04:07.61
C#を主に弄るんなら手を抜いてWCF自己ホストで
919デフォルトの名無しさん:2011/04/29(金) 19:06:35.22
アクティブであるウィンドウは操作しているユーザーが決めるものであって
アプリケーションが決めるものじゃねえってのがMSの見解らしい
920デフォルトの名無しさん:2011/04/29(金) 19:10:22.73
>>917
え、そうなの?
じゃあアクティブにしてもウインドウが表に出ない状態ってのは
たとえば動画のエンコードを裏でシコシコやるソフトが
状態を知るだけのフラグのような扱いなの?
921デフォルトの名無しさん:2011/04/29(金) 19:12:12.71
SetForegroundWindowとSetActiveWindowがまともに動いたのは95だけ
98からは今と同じ動作
922デフォルトの名無しさん:2011/04/29(金) 20:16:48.49
ネームスペースとはなんですか?
毎回WindowsFormsApplication1になるのでプロジェクト名かえれば変更されるかと思ったら全く関係ないみたいだし
923デフォルトの名無しさん:2011/04/29(金) 20:18:48.22
クラスが所属する住所です
924デフォルトの名無しさん:2011/04/29(金) 21:10:07.08
AllowSetForegroundWindow( GetCurrentProcessId() );
925デフォルトの名無しさん:2011/04/29(金) 21:30:45.40
うわもうだめだ

IntPtr hWnd = GetNextWindow( GetForegroundWindow(), 2 );
StringBuilder Caption = new StringBuilder( 1024 );
GetWindowText( hWnd, Caption, 1024 );
System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcessesByName( Caption.ToString() );
while( ps.Length == 0 )
{
hWnd = GetNextWindow( hWnd, 2 );
GetWindowText( hWnd, Caption, 1024 );
}



foreach( System.Diagnostics.Process p in ps )
{
p.CloseMainWindow();
//Interaction.AppActivate( aProcess.Id );
}
自アプリより手前はIMEのプロセスネームを取得できるんだけど
奥(ひとつ前)のハンドルがどうしても0になって取得できない
助けて
926デフォルトの名無しさん:2011/04/29(金) 21:55:36.51
>>878 その書き方で問題なし。
>>43のように書くのはカビの生えた古代種だから、見かけてもそっとしておけ。
近寄ると、祟られるぞ〜
927デフォルトの名無しさん:2011/04/29(金) 22:04:04.88
また訳のわかんないことを....
928デフォルトの名無しさん:2011/04/29(金) 22:22:24.18
毎日簡単な宿題みたいなのを出してくれるサイトとかあればなぁ
929デフォルトの名無しさん:2011/04/29(金) 22:38:12.39
DataSet周りの自動生成されるコードが予期しない動きばかりで折れそうだお・・・
930デフォルトの名無しさん:2011/04/29(金) 22:41:48.20
931デフォルトの名無しさん:2011/04/30(土) 00:49:55.06
変数、関数、クラス名全部日本語で詳しい説明の短文にしたら何か問題ありますか?
932デフォルトの名無しさん:2011/04/30(土) 00:51:33.96
保守性が低下すると思う。そういうコード書く人少ないから。
933デフォルトの名無しさん:2011/04/30(土) 00:54:52.06
>>931
その日本語力ではいろいろ問題が出そうだな真面目な話。
934デフォルトの名無しさん:2011/04/30(土) 00:55:12.39
中国人がカタカナ使うな!保守性が低下するアル!全部漢字で書けって言うだろうから、問題アル。
935デフォルトの名無しさん:2011/04/30(土) 00:56:47.91
コード書いてるときにIMEオンオフを切り替えるのは面倒だ。
936デフォルトの名無しさん:2011/04/30(土) 01:04:28.94
931は要するに日本語の名前を使いたいってことかw
何言ってるのかマジで分からんかったよ。

インテリセンスを使うためにハンガリアンの時代に逆戻りしたような意味不明なプリフィクス付きの
名前で溢れかえることが目に見えてるな
937デフォルトの名無しさん:2011/04/30(土) 01:20:09.54
Thread メインループのスレッド = new Thread(メインループスレッドの処理);
bool メインループスレッド終了分岐のフラグ = true;
メインループスレッド.Start();

void メインループスレッドの処理()
{
int メインウィンドウに渡した回数 = 0;
while(メインループスレッド終了分岐のフラグ)
{
マウスの状態を調べて加工した後、メインウィンドウに渡す処理();
メインウィンドウに渡した回数++;
}
}

こんな感じで書けば///とか//が必要なくなって一目でわかると思うんです
938デフォルトの名無しさん:2011/04/30(土) 01:27:53.30
なんか某@ITの川俣氏の記事の悪趣味なコードを思い出したw
少なくとも俺には「メインウィンドウに渡す」とか言われても何のことだか分からない。

問題は英語か日本語かじゃなくて、命名センスなのでは?
939デフォルトの名無しさん:2011/04/30(土) 01:29:30.37
使えるということは、使ってもいいということだ
好きにすればいい
940デフォルトの名無しさん:2011/04/30(土) 01:30:00.25
meまで打ったらメイン〜を候補に入れてくれれば解決するかもねw
先頭をひらがな片仮名のみにすればできなくもないかも
C#6でたのむ
941デフォルトの名無しさん:2011/04/30(土) 01:39:04.77
作る気は起きないけどIDEの拡張書いたらいけるんじゃね?
942デフォルトの名無しさん:2011/04/30(土) 03:52:35.59
943デフォルトの名無しさん:2011/04/30(土) 04:12:25.47
翻訳サイト使えよ…
944デフォルトの名無しさん:2011/04/30(土) 08:53:34.14
>>937
自分ひとりの趣味プログラムならなにやってもOK
ただ、他人に見られたら失笑の対象になるし、染まるべきでない悪習ではある
945デフォルトの名無しさん:2011/04/30(土) 10:35:31.67
漢字の識別子は要所要所で使うといいよ。
使いすぎるとさすがに読みにくくなるけど。

業務固有の言葉とか、よっぽど英語力がないと直訳とか恥ずかしい訳になるし、
ローマ字使うくらいなら割り切って漢字で書いたほうが読みやすくなる。
946デフォルトの名無しさん:2011/04/30(土) 10:35:43.66
937だと日本語禁止すると余計ひどい名前つけそうだが
947デフォルトの名無しさん:2011/04/30(土) 10:38:59.06
先輩「おい後輩、この変数名のclass1って何?」
後輩「種別を入れる変数なんですけど、種別を辞書で引いたらclassだったので」
先輩「」

ってこともあるから何でも辞書引けってのはおすすめできない
948デフォルトの名無しさん:2011/04/30(土) 11:10:10.83
>>947
俺の黒歴史をなんで知ってる。。。
949デフォルトの名無しさん:2011/04/30(土) 11:23:37.85
種別は普通にclassだぜ
950デフォルトの名無しさん:2011/04/30(土) 11:34:28.21
そこはLivingにして突っ込み待ちするんだよ
951デフォルトの名無しさん:2011/04/30(土) 14:24:53.81
メニューストリップなんか日本語で作るときは、そのイベントハンドラはもう日本語のままだ。
大体、VS自体が新規プロジェクト立ち上げるときのウイザードの名前入力が、
自動的にIME起動しちゃうんだから、日本語でもいいじゃん。
952デフォルトの名無しさん:2011/04/30(土) 14:48:20.20
>>937
カッコいい、コードとコメントが一体化して合理的な感じがする
時代の最先端を言ってる感じのコードだな

おれもいつか日本語名を使えるようになりたいな
今はまだ脳が拒絶反応を起こすので使えない・・・
953デフォルトの名無しさん:2011/04/30(土) 15:01:02.58
全部日本語だとIntelliSenseの呼び出しにも入力切り替えが必要になるのがなぁ
接頭辞を使えばある程度は絞れるが
うーん・・・
954デフォルトの名無しさん:2011/04/30(土) 15:14:43.37
そういうときはclazzとかklassとかつければいいけど
自分以外の人が触れるコードではやめた方がいいな
955デフォルトの名無しさん:2011/04/30(土) 15:24:15.61
釣り針が大きすぎる
956デフォルトの名無しさん:2011/04/30(土) 15:26:54.41
色々悩んだ挙げ句「syubetsu」なんて名前が付いたりするんだよな・・・それなら漢字で書け、と
957デフォルトの名無しさん:2011/04/30(土) 15:59:33.86
釣り針が大きすぎる
958デフォルトの名無しさん:2011/04/30(土) 16:05:11.71
ATOKの英語変換機能はすごく役に立ってる。
他人には理解しにくい変数名になってるかもだけど。
959デフォルトの名無しさん:2011/04/30(土) 16:31:09.57
釣り針が大きすぎる
960デフォルトの名無しさん:2011/04/30(土) 16:40:13.16
縄文時代の釣り針は、ほね」。
961デフォルトの名無しさん:2011/04/30(土) 16:49:05.28
釣り針が大きい=大物を狙ってる

ザコはすっこんでろ
962デフォルトの名無しさん:2011/04/30(土) 16:58:41.44
釣り針が大きすぎる
963デフォルトの名無しさん:2011/04/30(土) 16:59:59.63
クジラとコウモリは哺乳類なんだぜ
964デフォルトの名無しさん:2011/04/30(土) 17:14:13.62
おっとカモノハシを忘れちゃいけねぇ
965デフォルトの名無しさん:2011/04/30(土) 17:33:41.41
釣り針が大きすぎる
966デフォルトの名無しさん:2011/04/30(土) 19:06:20.97
↑撒き餌が多すぎる
967デフォルトの名無しさん:2011/04/30(土) 19:12:03.80
釣り針が大きすぎる
968デフォルトの名無しさん:2011/04/30(土) 19:18:22.08
粘着質な性格は嫌われるよ
969デフォルトの名無しさん:2011/04/30(土) 19:36:58.60
釣り針が大きすぎる
970デフォルトの名無しさん:2011/04/30(土) 19:41:08.30
テキストボックスをコードから入力可能な状態にするにはどうすればいいですか?
971デフォルトの名無しさん:2011/04/30(土) 19:46:56.20
>>970
hogeTextBox.Text = "ほげほげ";
972デフォルトの名無しさん:2011/04/30(土) 19:51:11.40
TextBox.EnableとかReadOnlyを切り替える話かと思った
973デフォルトの名無しさん:2011/04/30(土) 19:51:58.93
hogeTextBox.Enable = true;
974デフォルトの名無しさん:2011/04/30(土) 19:52:12.18
Enabled=true かな??
975974:2011/04/30(土) 19:52:59.04
うおー被りまくった。大事なこと過ぎる。
976デフォルトの名無しさん:2011/04/30(土) 19:57:13.49
ふらっとC#,C♯,C#(初心者用) Part74
http://hibari.2ch.net/test/read.cgi/tech/1304161005/
977デフォルトの名無しさん:2011/04/30(土) 21:10:33.42
できませんでした

public partial class LabelControl : UserControl
{

private void UserControl_MouseDoubleClick ( object sender, MouseButtonEventArgs e )
{
Label.Visibility = Visibility.Hidden;
textBox1.Visibility = Visibility.Visible;
textBox1.IsEnabled = true;
}
}

ダブルクリックした時にtextBox1は出てくるんですが、もう一度クリックしないと入力待機点滅カーソルがでてきません
978デフォルトの名無しさん:2011/04/30(土) 21:18:59.48
試してないけど、フォーカス当てればいけそうだが。
TextBox1.Focus()
979デフォルトの名無しさん:2011/04/30(土) 21:40:19.02
IsEnabled・・・?
980デフォルトの名無しさん:2011/04/30(土) 22:10:16.72
>>979
wpfだからな
981デフォルトの名無しさん:2011/04/30(土) 22:26:37.06
ループをアプリ起動時からスタートさせるにはどうすればいいんでしょうか
InitializeComponent();の後に書いても
Loadedの中に書いてもアプリが起動しません
982デフォルトの名無しさん:2011/04/30(土) 22:30:01.26
static void Main() {
var form = new Form1();
while (form.Created) { /*ここがループ*/ Application.DoEvents(); }
}
確かこんな感じ
983デフォルトの名無しさん:2011/04/30(土) 22:30:47.68
>>981
意味不明。
煽るつもりはないけど、もっと言葉を尽くして人に伝わるような文章を書かないと
話にならんよ。

回答者に甘えるなよ。(エスパー能力を期待するな)
984982:2011/04/30(土) 22:31:12.84
訂正
var form = new Form1();の後に
form.Show();追加
985デフォルトの名無しさん:2011/04/30(土) 22:37:37.75
>>981
ゲームループが欲しいの?

ちなみにWinForm?
986デフォルトの名無しさん:2011/04/30(土) 22:39:31.78
マウスカーソルの位置をポーリングするループがどうたらって奴だろ
いい加減死ねばいいのにな
987デフォルトの名無しさん:2011/04/30(土) 22:43:51.57
メインフォームの正しい表示法はShowじゃなくてApplication.Run
これやらないとイベント発生しないし、終了するのはCreatedになる前に最初のwhileが評価されてんじゃないかな
あと普通はUIスレッドで無限ループなんてする必要はない
988デフォルトの名無しさん:2011/04/30(土) 22:45:05.46
やるとしたらInitializeComponentの後ろでThread.Startだろう
989デフォルトの名無しさん:2011/04/30(土) 22:48:34.21
359 名前:デフォルトの名無しさん[sage] 投稿日:2011/04/29(金) 23:16:21.40
ユーザーコントロールに新規スレッドを追加するとXAML編集のデザイナー画面でエラーが出てますどうしてですか?
メインウィンドウに配置してあるユーザーコントロールの中のスレッド.Start();の行をコメントアウトすると表示できるようになるんです
あとたまにユーザーコントロールが動いてすこしずつ幅が小さくなるんですこんなのプログラムしてないのにどういうことですか?


こんなんだからやっぱUIスレッドでやるかって事になったんじゃね
まるで成長してないな
990デフォルトの名無しさん:2011/04/30(土) 22:52:59.11
>>987
たしかMSのManaged DirectXのサンプルが>>982みたいな感じだった
ゲームループ作るなら定番のやり方らしい
991990:2011/04/30(土) 22:57:31.71
あと、普通にApplication.RunしてApplication.Idleイベントを使う方法もある
ループではないけどゲームならこっちのほうが正当かな
992デフォルトの名無しさん:2011/04/30(土) 23:35:54.52
ありがとうございます!
スレッドはバグりすぎるのでもうやめることにします
993デフォルトの名無しさん:2011/04/30(土) 23:49:18.68
ゲームプログラミングの世界って物凄い先進的なイメージがあるけど、
意外と時代遅れの部分もあるのかね。

組み込みマイコンでもあるまいし今時ポーリングループとかありえんと思うんだが....
何十年前のプログラミングモデルだよ
994デフォルトの名無しさん:2011/04/30(土) 23:51:31.42
ksk
995デフォルトの名無しさん:2011/04/30(土) 23:51:53.84
一言だけ、君に言いたい。これからはXNAだ。
996デフォルトの名無しさん:2011/04/30(土) 23:52:08.61
ゲームプログラマはシステムプログラムが大の苦手ってイメージがあるな。
GUI何それおいしいの??ってかんじ??
997デフォルトの名無しさん:2011/04/30(土) 23:55:35.66
>>993
時代遅れもなにも凝ったエフェクトとかやろうとすると
fpsの縛りから逃れられないよ
998デフォルトの名無しさん:2011/04/30(土) 23:57:50.58
先進的なゲームループとは
999デフォルトの名無しさん:2011/05/01(日) 00:01:01.54
>>993-995
ちなみにXNAはApplication.Idleイベント使ってるよ
ハンドラの中でWinAPIのPeekMessageを呼んでる
ゲームで必要なことって、入力が受け付けられて頻繁にコールバックがもらえて描画ができればそれでいいんだから
わざわざスレッド別にしても無駄に複雑になったり同期でパフォーマンスが落ちたりするだけ
1000デフォルトの名無しさん:2011/05/01(日) 00:15:53.45
>>993
理論は先進的、実装は(パフォーマンスを限界まで求めるなどの都合もあるけど)超絶泥臭い。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。