ふらっとC#,C♯,C#(初心者用) Part57
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/03/20(土) 02:15:38「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
ふらっとC#,C♯,C#(初心者用) Part56
http://pc12.2ch.net/test/read.cgi/tech/1267348401/
関連スレ
C#, C♯, C#相談室 Part55(実質56)
http://pc12.2ch.net/test/read.cgi/tech/1260111240/1
VB.NET質問スレ(Part33)
http://pc12.2ch.net/test/read.cgi/tech/1263738929/1
C++/CLI part3
http://pc12.2ch.net/test/read.cgi/tech/1206447234/1
0002デフォルトの名無しさん
2010/03/20(土) 02:20:14http://codepad.org/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。
0003デフォルトの名無しさん
2010/03/20(土) 10:36:080004デフォルトの名無しさん
2010/03/20(土) 17:31:58関連スレの更新忘れ
C#, C♯, C#相談室 Part55 (実質57)
http://pc12.2ch.net/test/read.cgi/tech/1265283175/
紛らわしい。いつになったら正しいスレ番になるのかと
0005デフォルトの名無しさん
2010/03/20(土) 17:46:26TextChangedイベントみたいな感じ
0006デフォルトの名無しさん
2010/03/20(土) 17:59:350007デフォルトの名無しさん
2010/03/20(土) 18:04:010008デフォルトの名無しさん
2010/03/20(土) 18:06:170009デフォルトの名無しさん
2010/03/20(土) 18:09:43ごちゃごちゃになってどれ使えばできるのかよくわかりません
教えて
0010デフォルトの名無しさん
2010/03/20(土) 18:12:300011デフォルトの名無しさん
2010/03/20(土) 18:16:47addアクセサとremoveアクセサを自分で実装してみるとよく理解できる
0012デフォルトの名無しさん
2010/03/20(土) 18:21:33イベントは呼び出し側は追加と削除しかできない
そういう違いはだいたいわかったんだけど
いざ応用しようとするとまったくわからない
ある変数の値をフォームに表示するために
値が変更されると値を表示するメソッドを毎回書いていたんですけど
もしかしたら、TextChangedのようにデリゲートを使えば
わざわざ表示メソッドを毎回書かなくてもいいんじゃないかと気づいて
調べていたんですが、むじゅかしくて・・・
0013デフォルトの名無しさん
2010/03/20(土) 18:26:450014デフォルトの名無しさん
2010/03/20(土) 18:47:330015デフォルトの名無しさん
2010/03/20(土) 18:51:430016デフォルトの名無しさん
2010/03/20(土) 19:14:08普通にプロパティじゃだめなの?
0017デフォルトの名無しさん
2010/03/20(土) 19:19:36そういえばプロパティで出来そうですね
でもプロパティをそういうふうに使ってもいいんですか?
それとクラス内部で使うだけの変数なので
プロパティをするというのも違うような
やはりイベントだと思うんですよ
0018デフォルトの名無しさん
2010/03/20(土) 19:21:000019デフォルトの名無しさん
2010/03/20(土) 19:41:12結局別のクラスのプロパティでメソッド呼び出して
メインクラスのイベントハンドラ呼び出しているだけですね
ってことはプロパティにそのまま書けばいいだけか・・・
0020デフォルトの名無しさん
2010/03/20(土) 19:45:16他の二つはわかるけど
0021デフォルトの名無しさん
2010/03/20(土) 19:46:01あまり良い設計じゃないな
0022デフォルトの名無しさん
2010/03/20(土) 19:49:150023デフォルトの名無しさん
2010/03/20(土) 19:50:090024デフォルトの名無しさん
2010/03/20(土) 19:52:04クリックされたとかイベントが起きたときに特定の関数を呼んでもらった方が効率がいい
呼んでもらいたい関数を教える際に使うのがデリゲート
Cだとコールバックとか言ってた
0025デフォルトの名無しさん
2010/03/20(土) 19:52:58・イベントハンドラを登録するメソッド
・イベントハンドラを削除するメソッド
をひとまとめにしたもの。プロパティみたいなもん。
addとremoveを省略してevent EventHandler Hoge; の形式で宣言する場合は
自動実装プロパティと同じでデリゲートやメソッドが自動生成される。
0026デフォルトの名無しさん
2010/03/20(土) 19:54:480027デフォルトの名無しさん
2010/03/20(土) 19:55:23デリゲートはメソッドをオブジェクトのように使うもの
そう考えるとすごくわかりやすかった
でも、クラス使えばできることをなぜわざわざするのかというと
やっぱり、マルチスレッドかイベントぐらいしか使い道ないような感じ
0028デフォルトの名無しさん
2010/03/20(土) 20:00:29はじめは>マルチスレッドかイベントぐらいしか使い道ない と想定されてたから
マルチキャストとか変なところがあるけど最近はラムダ式などで積極的に活用されてる
0029デフォルトの名無しさん
2010/03/20(土) 20:02:38知らせることができるのか!!
0030デフォルトの名無しさん
2010/03/20(土) 20:02:50だから、前にも書いたがそれはない。
寝ぼけたことをどや顔で繰り返さないように。
0031デフォルトの名無しさん
2010/03/20(土) 20:04:31とりあえずバックグラウンドワーカーコントロールでも使ってこい
0032デフォルトの名無しさん
2010/03/20(土) 20:08:050033デフォルトの名無しさん
2010/03/20(土) 20:11:29使ってみた!すげーーー!
いつの間にこんなコントロールが!
0034デフォルトの名無しさん
2010/03/20(土) 20:16:030035デフォルトの名無しさん
2010/03/20(土) 20:17:52スレッド作ってメインスレッドからタイマーで見てたよw
0036デフォルトの名無しさん
2010/03/20(土) 20:19:37スレッドからスレッド名前空間のタイマ?
それって二重になってるんじゃ・・・・
0037デフォルトの名無しさん
2010/03/20(土) 20:29:38http://codepad.org/akzX4pKs
0038デフォルトの名無しさん
2010/03/20(土) 20:39:06自動でform.Textの値を変更してくれるのは
どう書けばいいの?
0039デフォルトの名無しさん
2010/03/20(土) 20:46:520040デフォルトの名無しさん
2010/03/20(土) 20:59:27あれって中身が変更された〜とかそんなイベントなかったっけ?
それで監視するしかないよね
0041デフォルトの名無しさん
2010/03/20(土) 21:02:440042デフォルトの名無しさん
2010/03/20(土) 21:06:03メンバ変数つってんだろ
textbox関係ないだろ
0043デフォルトの名無しさん
2010/03/20(土) 21:08:560044デフォルトの名無しさん
2010/03/20(土) 21:16:26お前は寂しい人間だな
昨日から用もないのにこのスレに来ては煽るだけ
お前の人生が不幸だからって他人に八つ当たりするな
0045デフォルトの名無しさん
2010/03/20(土) 21:23:09public partial class Form1 : Form
{
int hoge = 0;
int i = 0;
public Form1()
{
InitializeComponent();
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
textBox1.Text = hoge.ToString();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
backgroundWorker1.ReportProgress(i++);
System.Threading.Thread.Sleep(2000);
hoge = 2;
backgroundWorker1.ReportProgress(i++);
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
backgroundWorker1.WorkerReportsProgress = true;
}
}
0046デフォルトの名無しさん
2010/03/20(土) 21:24:50>>2使えよw
0047デフォルトの名無しさん
2010/03/20(土) 21:25:40頭おかしいんじゃね?
0048デフォルトの名無しさん
2010/03/20(土) 21:25:58おぉ!
すげーーー!
0049デフォルトの名無しさん
2010/03/20(土) 21:26:450050デフォルトの名無しさん
2010/03/20(土) 21:27:440051デフォルトの名無しさん
2010/03/20(土) 21:27:46わざわざスレッド使うとか初心者スレで間違ったやり方出すなよ
0052デフォルトの名無しさん
2010/03/20(土) 21:30:26今度は何か意味のあるコードで頼む。
0053デフォルトの名無しさん
2010/03/20(土) 21:31:030054デフォルトの名無しさん
2010/03/20(土) 21:31:040055デフォルトの名無しさん
2010/03/20(土) 21:32:57そういうの意識しなくていいから初心者にもやさしい
0056デフォルトの名無しさん
2010/03/20(土) 21:33:140057デフォルトの名無しさん
2010/03/20(土) 21:33:170058デフォルトの名無しさん
2010/03/20(土) 21:34:240059デフォルトの名無しさん
2010/03/20(土) 21:40:17これテンプレにしとけ
毎度応えるの面倒
Form間のデータの受け渡しサンプルコード
http://codepad.org/akzX4pKs
スレッド、デリゲート関連のサンプルコード
http://codepad.org/xOdJsJie
Radiko
http://codepad.org/Vvwba6du
0060デフォルトの名無しさん
2010/03/20(土) 21:42:51まあな
0061デフォルトの名無しさん
2010/03/20(土) 21:44:100062デフォルトの名無しさん
2010/03/20(土) 21:45:440063デフォルトの名無しさん
2010/03/20(土) 21:47:130064デフォルトの名無しさん
2010/03/20(土) 21:53:47変数の値が変わるのはサブスレッド側でわかるんだから
>>45でできるやん。
俺って天才かも。
0065デフォルトの名無しさん
2010/03/20(土) 22:01:19スレッドがよく分かってない奴でもなんとなく使える、という以上のメリット(本当にメリットか?)
は何もないだろう
0066デフォルトの名無しさん
2010/03/20(土) 22:03:25ただ馬鹿に仕事取られるということでもあるけどなw
0067デフォルトの名無しさん
2010/03/20(土) 22:05:20時代遅れになっていくやつの典型的な反応だな
0068デフォルトの名無しさん
2010/03/20(土) 22:07:40BackgroundWorkerをC#に、Threadをアセンブラに変えても成立してしまうw
0069デフォルトの名無しさん
2010/03/20(土) 22:15:09むしろ、言いたくないが君のようなのがいわゆる「VB厨」の典型的反応でしょ。
BackgroundWorkerって典型的な「VB厨」向けツールだよ。
彼らは言うんだよ。「便利なものは便利に使わせていただく」ってw
お前便利だから使ってるわけじゃなくて、それしか使えないんじゃねえの、って。
0070デフォルトの名無しさん
2010/03/20(土) 22:16:05はいはいパンチカードに穴あける作業に戻ってねオジーチャン
0071デフォルトの名無しさん
2010/03/20(土) 22:17:39BackgroundWorkerは便利だよ
0072デフォルトの名無しさん
2010/03/20(土) 22:17:470073デフォルトの名無しさん
2010/03/20(土) 22:18:55と標準的なプログラマなら感じると思うけどね俺は。
0074デフォルトの名無しさん
2010/03/20(土) 22:19:45何が標準的(キリッだってのw
0075デフォルトの名無しさん
2010/03/20(土) 22:20:170076デフォルトの名無しさん
2010/03/20(土) 22:20:200077デフォルトの名無しさん
2010/03/20(土) 22:20:550078デフォルトの名無しさん
2010/03/20(土) 22:22:00VBが出た時、beginner's toyと言われていたけど、今や、どれもこれも真似してるよな
そういうハッカー気どってVB馬鹿にするのは、COMコンポーネントをCでストレスなく作れるようになってから言ってくれ
0079デフォルトの名無しさん
2010/03/20(土) 22:22:56スレッド使いこなしてデキるプログラマ目指そう!
モテカワマルチスレッドの嗜み方教えちゃいます特集号
みたいな。
0080デフォルトの名無しさん
2010/03/20(土) 22:23:59VBを馬鹿にしてないって。
「VB厨」を馬鹿にしてるの。だからわざわざカギ括弧付けてるんじゃないの。
0081デフォルトの名無しさん
2010/03/20(土) 22:24:110082デフォルトの名無しさん
2010/03/20(土) 22:25:410083デフォルトの名無しさん
2010/03/20(土) 22:25:480084デフォルトの名無しさん
2010/03/20(土) 22:26:48じゃあさっさと>>62答えろよ
0085デフォルトの名無しさん
2010/03/20(土) 22:28:12お前はイベントとマルチスレッドの違いもわからないカス
0086デフォルトの名無しさん
2010/03/20(土) 22:28:44普通にスレッド起動した場合と比較したメリットをちゃんと言ってみろって。
言えやしないだろうそんなもの。
無い者を言えるわけがない。
さすがにいくら面の皮が厚い馬鹿でも「理屈が分かってない馬鹿なボキュにも使えることがメリット」とは
言いづらいもんねw
0087デフォルトの名無しさん
2010/03/20(土) 22:29:21使いたいの使いなさい
それより仕事をしなさい
0088デフォルトの名無しさん
2010/03/20(土) 22:30:24早く>>68を否定してみろよ
否定できないならC#使うのやめて機械語に帰れ
0089デフォルトの名無しさん
2010/03/20(土) 22:32:54単にフレームとして一連の処理の流れが実装してあることがメリットだろう。
IListそのものがListより便利だとは言わないでしょ。
実装が無いんだから。
0090デフォルトの名無しさん
2010/03/20(土) 22:34:04理屈がわからなければを繰り返していくと、最後は量子力学か神学までいくから理屈がわかってないバカ議論は不毛
もう化石だな
0091デフォルトの名無しさん
2010/03/20(土) 22:34:23簡単に使える、ってのは大きなメリットだろ。
0092デフォルトの名無しさん
2010/03/20(土) 22:35:03馬鹿でも使えるのは超メリットだと初めに言ったはずだが
そこから否定されても困るね
何言ってんのお前
0093デフォルトの名無しさん
2010/03/20(土) 22:35:04意味不明な命題を否定も肯定もしようもないと思うけど。
なぜBackgroundWorkerがC#に、スレッド起動の方法がアセンブリ言語に対応するのか
サッパリ理解できん。
馬鹿の議論はいつもこれだが、馬鹿のお前さんの思いつきを俺が共有してるわけないじゃん。
これがセカイ系か。
0094デフォルトの名無しさん
2010/03/20(土) 22:35:39自分は特別な人間だと思ってるやつの典型だね。
0095デフォルトの名無しさん
2010/03/20(土) 22:35:40死ねよおめーらwww
0096デフォルトの名無しさん
2010/03/20(土) 22:36:090097デフォルトの名無しさん
2010/03/20(土) 22:37:200098デフォルトの名無しさん
2010/03/20(土) 22:37:470099デフォルトの名無しさん
2010/03/20(土) 22:39:14お前も落ち着け
0100デフォルトの名無しさん
2010/03/20(土) 22:39:30勘違い職業マ。
678 名前:以下、名無しにかわりましてVIPがお送りします[] 投稿日:2010/02/08(月) 13:05:38.59 ID:V+MiXXPeP
>>674
その手段を自分で想像出来ないヤツが結果を出せる訳無いよな
>>675
いきなり素人が5つ星のフランス料理作れるとしたら、誰か経験のある人が代わりに作ってあげたキットを再利用するか、
あるいはボタンを押せば出てくる装置を使うしかない。 もともとプログラミングって、技術職の仕事だ。
みんな欲しいのは技術じゃないのかと。 結果が欲しいだけなら巷に転がってる完成品使えばいいだけ
昔も今も見よう見まねから始まるのは変わらないだろうけどな。 でもコピペは見真似にすらならね
0101デフォルトの名無しさん
2010/03/20(土) 22:39:330102デフォルトの名無しさん
2010/03/20(土) 22:40:210103デフォルトの名無しさん
2010/03/20(土) 22:41:080104デフォルトの名無しさん
2010/03/20(土) 22:41:14簡単なことにThreadを生で使った方が問題引き起こすと思うけどな
0105デフォルトの名無しさん
2010/03/20(土) 22:41:22ちょっと苦労するか、沢山苦労するか、逃げ出すか、の違いだしょ?
いいじゃん、選ぶのは自分なのだし。
0106デフォルトの名無しさん
2010/03/20(土) 22:42:42Suspendできないのがちょっと面倒だったカモ
0107デフォルトの名無しさん
2010/03/20(土) 22:43:040108デフォルトの名無しさん
2010/03/20(土) 22:43:390109デフォルトの名無しさん
2010/03/20(土) 22:44:040110デフォルトの名無しさん
2010/03/20(土) 22:45:01使えるものは使う てひとはそれでいいじゃん
まぁ同じくらいのもの実装しても大してめんどくさいものではないけどね
0111デフォルトの名無しさん
2010/03/20(土) 22:45:08ディスプレイとキーボードと部屋掃除しろ
0112デフォルトの名無しさん
2010/03/20(土) 22:46:470113デフォルトの名無しさん
2010/03/20(土) 22:48:06いいじゃんね
0114デフォルトの名無しさん
2010/03/20(土) 22:49:05【超高速】C/C++に代わる低級言語を開発したい
の倍いってるじゃねぇかwwwww
0115デフォルトの名無しさん
2010/03/20(土) 22:53:140116デフォルトの名無しさん
2010/03/20(土) 22:57:260117デフォルトの名無しさん
2010/03/20(土) 23:00:16言わせんな恥ずかしい。
0118デフォルトの名無しさん
2010/03/20(土) 23:01:050119デフォルトの名無しさん
2010/03/20(土) 23:02:190120デフォルトの名無しさん
2010/03/20(土) 23:08:360121デフォルトの名無しさん
2010/03/20(土) 23:10:26の会話ですら赤字になってる人の発言かもしれないと疑ってしまう自分
0122デフォルトの名無しさん
2010/03/20(土) 23:14:400123デフォルトの名無しさん
2010/03/20(土) 23:16:16いや萌えた
0124デフォルトの名無しさん
2010/03/21(日) 00:02:570125デフォルトの名無しさん
2010/03/21(日) 00:58:470126デフォルトの名無しさん
2010/03/21(日) 01:16:21専用スレッドを用意するメリットがあるなら使えばいいだけの話だろ
因みに、ThreadPool、Delegate.BeginInvoke、BackgroundWorker、
Forms以外のTimer、多くのコンポーネントの非同期操作(〜Async)などの
スレッドプールを使っているものなら多用しても問題はない
逆に、なんでもかんでもThreadを使うのは論外
>>106
中断のための機構は自前で用意すべきもの
Threadならイベントオブジェクト使って適当な間隔でチェックするだけだし、
ThreadPoolなら処理を細切れにしてキューに入れるタイミングを制御する
0127デフォルトの名無しさん
2010/03/21(日) 03:13:28あるもの使う方が手っ取り早いだろう。
それにいちいちスレッド作るよりThreadPool使う方が一般に望ましい(常にとは言わない)のは常識。
0128デフォルトの名無しさん
2010/03/21(日) 03:56:43参考になるサイトやこれは買っとけ的な本は何ですか?
0129デフォルトの名無しさん
2010/03/21(日) 03:58:53周辺ツール作る場合はゲーム側の独自仕様をどれだけ集められるかだと思うよ
0130デフォルトの名無しさん
2010/03/21(日) 04:22:070131デフォルトの名無しさん
2010/03/21(日) 05:56:19formでGUIを作っています。
アプリケーション全体からメッセージを表示させるtextboxを追加したいです。
コンソールのプログラムでいう標準出力です。
どうやConcoleクラスがそれに値するようなのですが、これをどうtextboxに表示するのかわからないです。
textBox1.Text = System.Console.Out.ToString();
としても、textboxには「System.IO.TextWriter+SyncTextWriter」と表示されるので違うようです。
何かヒントをください
0132デフォルトの名無しさん
2010/03/21(日) 06:19:390133デフォルトの名無しさん
2010/03/21(日) 06:23:23なんでこの手の話題は繰り返すんだろうw
スレッド、デリゲート関連のサンプルコード
http://codepad.org/xOdJsJie
これの応用でできるんじゃないかな?
0134デフォルトの名無しさん
2010/03/21(日) 06:24:45TextWriterから派生させたクラスを作って、
WriteメソッドとかをオーバーライドしてTextBoxに出力するようにして、
Console.SetOutで設定すればいいけど。
0135デフォルトの名無しさん
2010/03/21(日) 09:03:12誰に言ってんの??
0136デフォルトの名無しさん
2010/03/21(日) 09:05:50ありがとうございます。
単語を調べて一つ一つ確かめてみます
0137デフォルトの名無しさん
2010/03/21(日) 09:09:55お前素人だろ
0138デフォルトの名無しさん
2010/03/21(日) 09:15:19素人専用とでも思いこんでるのか?
素人に使いやすい設計になってるのは事実だが、
別にやりたいことにあってれば普通に使えばいいじゃん。
普通に使えるのにわざわざ自分で同じような処理を実装して、
でそれがThread明示的に作ってとか、マイナスにしかなってない。
0139デフォルトの名無しさん
2010/03/21(日) 09:20:00誰も常にBackroundWorkerがいいなんて言ってないのにな。
まあそれでもThreadを自分で作ることはあまりないが。
0140デフォルトの名無しさん
2010/03/21(日) 10:14:400141デフォルトの名無しさん
2010/03/21(日) 10:16:410142デフォルトの名無しさん
2010/03/21(日) 10:31:310143デフォルトの名無しさん
2010/03/21(日) 10:32:070144デフォルトの名無しさん
2010/03/21(日) 11:01:50簡単といってもBackgroundWorkerとは違ってこちらはアカデミックな感じだが
0145デフォルトの名無しさん
2010/03/21(日) 11:02:220146デフォルトの名無しさん
2010/03/21(日) 11:08:50できました。
継承してオーバーライドって便利ですね。
勉強になりました。
0147デフォルトの名無しさん
2010/03/21(日) 12:50:25いくつかParallel.Forで処理を同時にやってすべてが終わったかどうかのチェックはフラグかなんか持って
自分で管理しないとだめなのかな?
0148デフォルトの名無しさん
2010/03/21(日) 12:56:39もうC++の時代は終わってるな
0149デフォルトの名無しさん
2010/03/21(日) 13:03:03windowsなんかC/C++がなきゃ動かないわけだし
0150デフォルトの名無しさん
2010/03/21(日) 13:03:540151デフォルトの名無しさん
2010/03/21(日) 13:22:21並列ライブラリは直接使うとよほど単純なパターンを除くと非常にややこしいので、
Parallel Linqから使ったほうが簡単。
並列処理の結果を待つかどうかオプションで指定できる。
0152デフォルトの名無しさん
2010/03/21(日) 13:26:30そんなの知ってるよ
0153デフォルトの名無しさん
2010/03/21(日) 13:27:50なるほど
しかし、すげぇな・・・
4.0いろいろ贅沢な機能付きすぎだろ
0154デフォルトの名無しさん
2010/03/21(日) 13:29:06自己紹介乙
0155デフォルトの名無しさん
2010/03/21(日) 13:32:131〜10までを足すだけ。
int sum = 0;
Parallel.For(1, 10+1, option, () => 0,
(i, parallelLoopState, s) => s + i,
s => Interlocked.Add(ref sum, s) );
Console.WriteLine("sum = {0}", sum);
0156デフォルトの名無しさん
2010/03/21(日) 13:34:33Parallel.Forなんて大して使えん
ループ内がそれそれ独立していなければ無理
0157デフォルトの名無しさん
2010/03/21(日) 13:37:160158デフォルトの名無しさん
2010/03/21(日) 13:37:34でも・・・実装したからには何か目的が・・・・メリットがあるんだよな?
0159デフォルトの名無しさん
2010/03/21(日) 13:38:35自分でスレッド作って調整するのは大変だぞ?
0160デフォルトの名無しさん
2010/03/21(日) 13:39:160161デフォルトの名無しさん
2010/03/21(日) 13:42:370162デフォルトの名無しさん
2010/03/21(日) 13:50:06そんな並列の意味が一切無い例出してどうすんのさ
0163デフォルトの名無しさん
2010/03/21(日) 13:52:50お前に言われる筋合いはないから
0164デフォルトの名無しさん
2010/03/21(日) 13:53:040165デフォルトの名無しさん
2010/03/21(日) 14:12:13http://jbbs.livedoor.jp/bbs/read.cgi/news/4988/1269124859/
ICO - 国際著作権機構
ttp://warezer.net/search/user/3201
割れてる人は気おつけて
0166デフォルトの名無しさん
2010/03/21(日) 14:42:40パラレルライブラリはOpenMP型で、MPI型のはAxum。
ttp://msdn.microsoft.com/en-us/devlabs/dd795202.aspx
まだ研究段階っぽい。最終的にはC#に成果を吸収という流れだろうか。
0167デフォルトの名無しさん
2010/03/21(日) 15:21:20ちゃんと Join する。
スレッドいっぱいたつけど、全部のタスクが終わるまで待ってくれる。
>>148
同時に C++ 向けにも並列処理ライブラリが追加されるけどね、VS 2010。
C++ の時代、分野次第だなぁ。
10年は前に終わってるとこもあるし、あと10年は使わなきゃいけないとこあるし。
>>155
そんな処理は Parallel LINQ の方がいいな。
あと、集計部分(+= するとこ)は並列化してもおいしくない。
>>164
pragma だらけってのは、標準化がどうこう言われてしまう C++ の苦肉の策だろ。
0168デフォルトの名無しさん
2010/03/21(日) 16:08:18ほほぅ
キッチリ便利にはやってくれそうだなぁ…
3つの画像を同時に処理して終わったらその結果を判定して処理
とかやってるから単純なマルチスレッドでやるよりイイかもしれねぇ。。。
ちょっと期待したい
0169デフォルトの名無しさん
2010/03/21(日) 16:34:39[Parallel 4]
for(){
}
まぁ文法的に無理ぽ
0170デフォルトの名無しさん
2010/03/21(日) 16:38:361コアの環境でoptionなしで使うとスレッドは使わずにメインスレッドで処理してしまう。
ParallelOptions option = new ParallelOptions() { MaxDegreeOfParallelism = 4 };
Parallel.Invoke(option, () => Worker("aaa"), () => Worker("bbb"), () => Worker("ccc"), () => Worker("ddd"));
0171デフォルトの名無しさん
2010/03/21(日) 16:48:43ここは本当に初心者スレなのか?w
0172デフォルトの名無しさん
2010/03/21(日) 16:50:440173デフォルトの名無しさん
2010/03/21(日) 16:56:300174デフォルトの名無しさん
2010/03/21(日) 20:11:36まあ普通は初心者は並列処理を勉強しないものだけど、
勉強してみれば、このくらいは理解できるレベルだと思う
0175デフォルトの名無しさん
2010/03/21(日) 20:36:370176デフォルトの名無しさん
2010/03/21(日) 20:39:48並列処理の必要性を理解する、ことになるのでしょうね。
必要と思えれば頑張れる、そういうもんでしょ、言語習得ってさ。
0177デフォルトの名無しさん
2010/03/21(日) 20:41:330178デフォルトの名無しさん
2010/03/21(日) 20:48:120179デフォルトの名無しさん
2010/03/21(日) 20:58:050180デフォルトの名無しさん
2010/03/21(日) 21:05:140181デフォルトの名無しさん
2010/03/21(日) 21:16:46初心者ではなく低級者の発言ですね
0182デフォルトの名無しさん
2010/03/21(日) 23:34:27何の意味があるのそれ?
0183デフォルトの名無しさん
2010/03/22(月) 00:34:37DataGridViewで特定のCellから値を参照したいんですけど
方法がわかりません。お願いします。
0184デフォルトの名無しさん
2010/03/22(月) 00:36:04だけじゃね?
さすがにそれはヘルプ見てみようぜ
それとも何か勘違いしてるかな?
0185デフォルトの名無しさん
2010/03/22(月) 01:08:49とくにグローバル変数をどうにかしているときとか
0186デフォルトの名無しさん
2010/03/22(月) 01:14:00シングルトンのクラスに詰め込むの?
0187デフォルトの名無しさん
2010/03/22(月) 01:15:170188デフォルトの名無しさん
2010/03/22(月) 03:31:48いいサンプルはありませんでしょうか。
0189デフォルトの名無しさん
2010/03/22(月) 03:59:50FF11でツールを作ろうと思ってます。
0190デフォルトの名無しさん
2010/03/22(月) 04:12:210191デフォルトの名無しさん
2010/03/22(月) 07:09:130xFF11みたいな
0192デフォルトの名無しさん
2010/03/22(月) 09:49:370193デフォルトの名無しさん
2010/03/22(月) 13:39:33if ( a != null )
{
if ( a.Length > 0 )
{
(処理)
}
}
これ以上にスマートな記述方法は存在しますか?
0194デフォルトの名無しさん
2010/03/22(月) 13:41:26string.IsNullEmpty()
0195デフォルトの名無しさん
2010/03/22(月) 13:43:390196デフォルトの名無しさん
2010/03/22(月) 13:45:57ネストが深くなるのが嫌だから&&でつなぐ
0197193
2010/03/22(月) 13:49:55そうなんです。String.IsNullEmptyOrEmptyは文字列には使えますが文字列の配列には使えませんでして・・
>>196
たしかにネストが深くなるのはイヤなんですが、もし&&でつないでしまうとnullだった場合に
a.Legth のところで例外が発生してしまうんです。
だから泣く泣くネストを深くして対処しました。
0198デフォルトの名無しさん
2010/03/22(月) 13:52:310199デフォルトの名無しさん
2010/03/22(月) 13:55:070200デフォルトの名無しさん
2010/03/22(月) 13:58:020201デフォルトの名無しさん
2010/03/22(月) 14:03:15じゃあ&&でいいじゃないか。変数aがnullなら、他のことをやっても仕方がない。
0202デフォルトの名無しさん
2010/03/22(月) 14:07:00{
if ( a.Length > 0 )
{
(処理)
}
}
catch(ぬるぽ)
{
}
・・・違うの?
0203デフォルトの名無しさん
2010/03/22(月) 14:09:57本気で言ってるの?
ぬるぽをキャッチしようとする奴始めて見た
0204193
2010/03/22(月) 14:10:15> &&で繋ぐと、結果が偽になった時点でそれ以降は評価されない
判定式の順番は重要ですか?
たとえば a がnullのとき
if ( a.Length > 0 && a != null )
{
(処理)
}
とやってしまうと最初の a.Length > 0 で例外が発生したりしませんか?
0205デフォルトの名無しさん
2010/03/22(月) 14:10:21GetDirectoryNameはファイルパスからフォルダパスを求めるもんですし・・・
0206デフォルトの名無しさん
2010/03/22(月) 14:10:550207デフォルトの名無しさん
2010/03/22(月) 14:11:38左から
>>205
DirectoryInfo.Name
0208デフォルトの名無しさん
2010/03/22(月) 14:23:47お前の経験が浅いのではw
>>204
&&の前後が逆
0209デフォルトの名無しさん
2010/03/22(月) 14:25:22ありがとうございます!
0210デフォルトの名無しさん
2010/03/22(月) 14:26:170211デフォルトの名無しさん
2010/03/22(月) 14:28:27{
}
catch(Exception e)
{
}
なんて書いてるソースはよく見るね
0212デフォルトの名無しさん
2010/03/22(月) 14:29:34回答としては無い
0213デフォルトの名無しさん
2010/03/22(月) 14:30:50テストソースとしてならいいんじゃない?
それで納品したら次回はないと思うけど
0214デフォルトの名無しさん
2010/03/22(月) 14:31:09新規プロジェクト作成したくなる衝動に駆られるよね
この衝動に名前つけようぜ
0215デフォルトの名無しさん
2010/03/22(月) 14:31:10まぁそれ自体が間違ってるわけじゃないけど
わかってない臭はするな
0216デフォルトの名無しさん
2010/03/22(月) 14:32:05現実逃避
0217デフォルトの名無しさん
2010/03/22(月) 14:42:190218デフォルトの名無しさん
2010/03/22(月) 14:44:43どんなException出しても同じ対応するの?
0219デフォルトの名無しさん
2010/03/22(月) 14:48:29var notNullEmptyAry = ary.Where(s => !string.IsNullOrEmpty(s));
0220デフォルトの名無しさん
2010/03/22(月) 14:49:49後処理がいるのは別にきまってるだろw
0221デフォルトの名無しさん
2010/03/22(月) 14:51:52配列の各要素にnull/空文字列が含まれているかどうかなんて話、誰もしてないぞ
0222デフォルトの名無しさん
2010/03/22(月) 14:52:22ソースが汚いと思う
0223デフォルトの名無しさん
2010/03/22(月) 15:01:590224デフォルトの名無しさん
2010/03/22(月) 15:02:22処理
0225デフォルトの名無しさん
2010/03/22(月) 15:05:440226デフォルトの名無しさん
2010/03/22(月) 15:05:52さすがに配列のオブジェクトがnullで正常処理とか・・・
そういうのが正常だと言える例あるの?
0227デフォルトの名無しさん
2010/03/22(月) 15:07:58致命的な例外もわざわざCatchするんですね
かっこいい!
0228デフォルトの名無しさん
2010/03/22(月) 15:09:20ローカル変数ならあると思うけど
0229デフォルトの名無しさん
2010/03/22(月) 15:22:370230デフォルトの名無しさん
2010/03/22(月) 15:24:22つまりnullになることあるな。もちろん0件でも正常
0231デフォルトの名無しさん
2010/03/22(月) 15:29:32>>193のような条件判別では普通>>202のようにはしない
0232デフォルトの名無しさん
2010/03/22(月) 15:37:59他の言語ならそうだがC#なら正解
エラー処理のために条件分岐やるのはVB6.0で止まっている奴
条件分岐は何かの処理をさせたいから使うわけでエラー処理のためにするべきではない
つまりこれだけでいい
try
{
//何かの処理
}
catch{}
0233デフォルトの名無しさん
2010/03/22(月) 15:39:56一般的にtry-catch構文はオーバーヘッドが大きいといわれているけど、
C#(clr)でも同じことが言えるの?
なにかこの辺について言及したいい記事はありませんかね。
0234193
2010/03/22(月) 15:41:49>>208
どうもです(´・ω・`)ノ
&&で結ばれた判定式が左から順番に判定されて、条件に合致した時点で残りの判定式の判別は
破棄されるとは知りませんでした。
つまり>>193は
if ( a != null && a.Length > 0 )
{
(処理)
}
と簡潔に記述できるわけですね。
0235193
2010/03/22(月) 15:42:32> そもそも>>193は、正常な処理をif文のブロック内に書いてる時点で
> ソースが汚いと思う
:(;゙゚'ω゚'):!
その件に関しましては常々疑問に思っておりました。
メインとなる処理はif文の中で記述するべきか、外で記述するべきかに関してです。
メインとなる処理はif文の外に書くべきでしたら>>193は
if ( a == null || a.Length == 0 )
{
return false;
}
(処理)
とするべきなんでしょうか?
0236デフォルトの名無しさん
2010/03/22(月) 15:43:390237デフォルトの名無しさん
2010/03/22(月) 15:43:53そういうことはC#ではやらない
0238デフォルトの名無しさん
2010/03/22(月) 15:44:250件とnullは違う意味で使うだろ、常識的に考えて
0239デフォルトの名無しさん
2010/03/22(月) 15:44:27>>224
0240デフォルトの名無しさん
2010/03/22(月) 15:45:38プログラムはケツまで流すものだとか考えてる人なら
正常処理だけif文に入れる
ようは好きにしろ
0241デフォルトの名無しさん
2010/03/22(月) 15:47:20そもそもDBの場合
まず件数引っ張ってからデータ取得しない?
0242デフォルトの名無しさん
2010/03/22(月) 15:48:280243デフォルトの名無しさん
2010/03/22(月) 15:49:16件数そのものを先に欲しい場合はそうするかもしれないが、
普通はカーソル機能を使って最初の1行目だけをもらう。
全部引っ張るようなメモリ食うようなことは避ける。
0244デフォルトの名無しさん
2010/03/22(月) 15:52:120245デフォルトの名無しさん
2010/03/22(月) 15:56:43delegate bool EmptyDelegate(string[] s);
EmptyDelegate emp=IsEmp;
if(emp(s))
{
(処理)
}
private bool IsEmp(int n)
{
if ( a == null || a.Length > 0 )
return false;
}
}
0246デフォルトの名無しさん
2010/03/22(月) 16:00:15普通のメソッドでなくデリゲートを使うのはなんで?
0247デフォルトの名無しさん
2010/03/22(月) 16:11:070248デフォルトの名無しさん
2010/03/22(月) 16:13:10おまえがやれ
0249デフォルトの名無しさん
2010/03/22(月) 16:14:11算術記号も同様に
0251デフォルトの名無しさん
2010/03/22(月) 16:18:22おまえがやれ
0252デフォルトの名無しさん
2010/03/22(月) 16:22:540253デフォルトの名無しさん
2010/03/22(月) 16:40:50外部ってWebサービスでSOAPで受け取ったりするやつもある
0254デフォルトの名無しさん
2010/03/22(月) 17:19:500255デフォルトの名無しさん
2010/03/22(月) 17:22:55C#1.0のような腐った書き方のうえに腐った命名規則
0256デフォルトの名無しさん
2010/03/22(月) 17:30:510257デフォルトの名無しさん
2010/03/22(月) 17:34:240258デフォルトの名無しさん
2010/03/22(月) 17:45:33はいそのとうりでボットを作りたいです。もっと初心者向けのスレないでしょうか。
0259デフォルトの名無しさん
2010/03/22(月) 17:47:090260デフォルトの名無しさん
2010/03/22(月) 19:01:04技能向上に向けたアドバイスをいただけるスレは無いでしょうか?
0261デフォルトの名無しさん
2010/03/22(月) 19:03:520262デフォルトの名無しさん
2010/03/22(月) 19:04:37スクエニ社内のボット対策スレへ行け。
0263デフォルトの名無しさん
2010/03/22(月) 19:32:02> あっても罵倒の嵐になりそうだし。
。・゚・(ノ∀`)・゚・。
0264デフォルトの名無しさん
2010/03/22(月) 19:44:01分かりやすいところでBOT開発の情報共有したら
社員にかぎつけられて対策されちゃうだろw
0265デフォルトの名無しさん
2010/03/22(月) 20:05:450266デフォルトの名無しさん
2010/03/22(月) 20:10:15【超高速】C/C++に代わる低級言語を開発したい
にカエレ
0267デフォルトの名無しさん
2010/03/22(月) 20:24:02ナイスジョーク
0268デフォルトの名無しさん
2010/03/22(月) 21:16:55記事じゃないけどこれとかどうよ
ttp://msdn.microsoft.com/ja-jp/library/x4764854.aspx
0269デフォルトの名無しさん
2010/03/22(月) 21:17:24おまえバカ大将
0270デフォルトの名無しさん
2010/03/22(月) 21:24:02おまえバカ元帥
0271デフォルトの名無しさん
2010/03/22(月) 21:25:49コストを払うのは例外発生時
通常はtrycatchの外とほぼ変わりない
.NET アプリケーションのパフォーマンス関連のヒントとトリック
http://msdn.microsoft.com/ja-jp/library/ms973839.aspx
trycatchを置き換えるというよりは、条件分岐で例外が投げられるケースを減らす
条件分岐の外を大きくtrycatchで括って漏れた奴キャッチするとかそんなんでもいいの
0272デフォルトの名無しさん
2010/03/22(月) 21:26:18WPFの中でDirectX使うのは可能だけど逆は無理
画像に描画するとかすれば無理やりできなくもないけど極めて非効率
0273デフォルトの名無しさん
2010/03/22(月) 22:14:07デバッグ中時間がかかる処理をしているところを確認したいのです。デバッグの再生ボタンがグレーの実行状態のときに、どこで実行しているか知る方法はありますか?
プログラムは約5000行あり、ブレークポイントを設定する候補の箇所が多すぎる場合、いちいち手動で設定するのではたいへんなのです。
こういう場合、どのようにしたらよいものでしょう?
0274デフォルトの名無しさん
2010/03/22(月) 22:20:10毎日どこから質問拾ってるのか?
0275デフォルトの名無しさん
2010/03/22(月) 22:23:32ビデオの一時停止みたいなボタン
0276デフォルトの名無しさん
2010/03/22(月) 22:23:33ってのを何回か繰り返せばすぐわかるだろよ。
0277デフォルトの名無しさん
2010/03/22(月) 22:25:10目安程度かもしれんがブレイクポイント入れるんじゃなく
その場所を通った時間をどこかに出力すればいいかもね
0278デフォルトの名無しさん
2010/03/22(月) 22:27:34ブレークポイントを設定するのと同時にコンソール出力のコードを挿入していく。
恒常的に残すときはTrace呼び出しにする。
以降、ログを見るだけでエラーの発生箇所がだいたい分かるようになる。
0279デフォルトの名無しさん
2010/03/22(月) 22:27:450280デフォルトの名無しさん
2010/03/22(月) 23:04:22なんかプログラムの一部として認識されちゃいます
0281デフォルトの名無しさん
2010/03/22(月) 23:05:50または文字列リテラルの中で使うなら
@"\"でも可
0282デフォルトの名無しさん
2010/03/22(月) 23:09:32この速さ
だから助かる
アリガトス
0283デフォルトの名無しさん
2010/03/22(月) 23:14:31使ってみたけどコードが短くはなるけど
わかりにくいような気がする
0284デフォルトの名無しさん
2010/03/22(月) 23:15:39{
try
{
File.Move(a, textBox1.Text + "\\" + Path.GetFileName(a));
}
catch
{
MessageBox.Show("err");
}
}
これでArgumentExceptionはハンドルされませんでした
とかってエラーが出る
一応ファイルは移動できてるんだけどなんなんでしょう
0285デフォルトの名無しさん
2010/03/22(月) 23:17:580286デフォルトの名無しさん
2010/03/22(月) 23:20:16http://codepad.org/wcT2CmWz
0287デフォルトの名無しさん
2010/03/22(月) 23:20:50foreach (var a in listBox2.Items)
{
try
{
File.Move(a.Text, textBox1.Text + "\\" + Path.GetFileName(a.Text));
}
catch
{
MessageBox.Show("err");
}
}
0288デフォルトの名無しさん
2010/03/22(月) 23:22:38そんなはずかしいことするのはお前だけ
0289デフォルトの名無しさん
2010/03/22(月) 23:26:30>>286なら1つのファイル移動が失敗しても他のはできる可能性があるが
>>284だと一度例外が出るとその時点で作業がストップする
0290デフォルトの名無しさん
2010/03/22(月) 23:28:30通常複数ファイル移動する場合に一部のファイルが存在しなかったりしても続けるからな
0291284
2010/03/22(月) 23:33:44というかそもそも目的のファイルは全部ちゃんと移動できてるのにエラーが発生する意味がわからんのです
0292デフォルトの名無しさん
2010/03/22(月) 23:35:22確認する機能使えばいいんじゃね?
昔ながらのコードで返してくれるのがあったはず
0293デフォルトの名無しさん
2010/03/22(月) 23:36:33型を指定してないからだろ?
listboxの行って確かstring管理だったはず
0294デフォルトの名無しさん
2010/03/22(月) 23:42:580295デフォルトの名無しさん
2010/03/22(月) 23:44:42賢者タイムか・・・
0296デフォルトの名無しさん
2010/03/22(月) 23:48:56{
MessageBox.Show((e.GetTyppe()).FullName+e.Message);
}}
0297デフォルトの名無しさん
2010/03/22(月) 23:56:51Hogeclass hogeclass = new Hogeclass();なんかは冗長なので、
var hogeclass = new Hogeclass();にする。
あとはLINQ関係かな。
0298デフォルトの名無しさん
2010/03/23(火) 00:00:06コレクションのアイテムを入れる変数の型が違うとか
tryステートメント使ってるのにcatchで例外を捕捉しないとか
まず基本を身につけないと例外出る度に自分で対処できないよ
0299デフォルトの名無しさん
2010/03/23(火) 00:08:24treeViewで作るしかないですか?
0300デフォルトの名無しさん
2010/03/23(火) 00:14:12エクスプローラのフォルダツリーを実現するための部品がtreeviewでしょ?
サンプルとかありそうな気もしたけどWPFくらいしかないな
0301デフォルトの名無しさん
2010/03/23(火) 00:16:43例外捕捉するように書いてみたけど問題なく通るからcatchが捕捉するのも何もないようで
ArgumentExceptionはハンドルされませんでした
使用されたパラメータが有効ではありません。
が
Program.csの
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());←ここで起きてる
}
何が悪いんだ?
ちなみにファイルを移動し終わっても異常は無いけどウィンドウを動かしたり最小化したりするとエラーが出てくる
0302デフォルトの名無しさん
2010/03/23(火) 00:18:49プログラム全部が見えないのにw
0303デフォルトの名無しさん
2010/03/23(火) 00:26:00ありがとうございます。
再帰が未熟なのでNodeの追加で悩んでいます・・・。
>>301
映画タイトル決定「この春、Form1で何かが起こる!?」
0304デフォルトの名無しさん
2010/03/23(火) 00:27:01MSの公式サンプル
http://support.microsoft.com/kb/303974/ja
0305デフォルトの名無しさん
2010/03/23(火) 00:33:12ありがとうございます。
見ながらやってみます。
0306デフォルトの名無しさん
2010/03/23(火) 00:33:34どうすればいいでしょうか?
今思いつくのはstring型を特定の文字で引っ付けたり分解するものを利用すること位です
0307デフォルトの名無しさん
2010/03/23(火) 00:35:38Thread thread = null;
private void timer_Tick(object sender, EventArgs e){
thread = new Thread(Thread);
thread.IsBackground = true;
thread.Start();
}
private void Thread(){
textBox.Text = DateTime.Now.ToString("HH:mm");
}
これでデバッグしようとしたら、
InvalidOperationExceptionはハンドルされませんでした。
有効ではないスレッド菅野捜査、コントロールが作成されたスレッド以外のスレッドからコントロールtextBox.Textがアクセスされました。
とエラーになります。
これはどう対処したらよいですか?
0308デフォルトの名無しさん
2010/03/23(火) 00:37:04ほんとだ。これでした。ありがとうございます。
0309デフォルトの名無しさん
2010/03/23(火) 00:38:43http://codepad.org/xOdJsJie
0310284
2010/03/23(火) 00:42:32画像をpictureboxから解放せずにその画像ファイル移動したらそりゃエラーもでるよね
ここに書いたプログラムとは全然関係ありませんでした
ごめんなさい
自己解決しました
0311デフォルトの名無しさん
2010/03/23(火) 00:42:56すごい。速い…。
これ、Classはひとつの場合でも使えるんですか?
0312デフォルトの名無しさん
2010/03/23(火) 00:45:31早いっていうかスレッドネタは最近多かったのでネタだろと半分思ってるので
アドレスを取っておいた
一つの場合っていうか、スレッドから呼ぶならそれ改造すればクラスじゃなくてもいけるでしょ
0313デフォルトの名無しさん
2010/03/23(火) 00:55:58ネタではなく、初心者で困っていての質問であります。
で、すみません、コードを拝見していたんですが、改造できませんでした…。
さきほどの307にあてはめると、どのようにしたらよいでしょう?
Invokeもdelegateもworkerもcallbackもshownも初めてで、かなり手に余っています。
0314デフォルトの名無しさん
2010/03/23(火) 01:06:48http://img.47news.jp/PN/201003/PN2010032201000575.-.-.CI0003.jpg
【春祭り 】また割れ厨のスクショと個人情報が晒されてるぞ避難所17
http://jbbs.livedoor.jp/internet/7847/
本スレはこちら
新たな大物をいっしょに探しましょう
0315デフォルトの名無しさん
2010/03/23(火) 02:49:27実行時までわからなくても、問題なく入れられる方法ってありますか?
デリゲートのオーバーロードを行って、引数のバリエーション分の
デリゲートをあらかじめ用意しておく方法を思いつきましたが、
ほかにいい方法があれば教えてほしいです。
0316デフォルトの名無しさん
2010/03/23(火) 02:52:09できないものならクラス化すればいいんじゃね
0317デフォルトの名無しさん
2010/03/23(火) 02:56:29すべての基底クラスがなにか知ってる?
0318315
2010/03/23(火) 02:57:48ありがとうございました。
0319デフォルトの名無しさん
2010/03/23(火) 03:08:180320デフォルトの名無しさん
2010/03/23(火) 05:10:140321デフォルトの名無しさん
2010/03/23(火) 14:12:240322デフォルトの名無しさん
2010/03/23(火) 15:42:08>>309のSetTextをスレッドタイマのコールバックで呼び出す
30行目以降はいらない
0323デフォルトの名無しさん
2010/03/23(火) 16:03:48邪悪なものを最初に弾くようにしたらものすごくコードが見やすくなった
他にこういうことしたらコードが見やすくなるよというのありますか?
0324デフォルトの名無しさん
2010/03/23(火) 17:42:480325デフォルトの名無しさん
2010/03/23(火) 17:45:51通常の分岐のときは、なるべくelseを書いてifよりもelseの方が長くなるようにする
0326デフォルトの名無しさん
2010/03/23(火) 18:07:410327デフォルトの名無しさん
2010/03/23(火) 18:21:470328デフォルトの名無しさん
2010/03/23(火) 19:48:02{
もし false なら 抜ける;
trueの時のコード
・
・
・
・
};
とかの方がインデントが浅くて良いとかじゃないのん。
0329デフォルトの名無しさん
2010/03/23(火) 20:20:40付けてまわれば逆転するわけで、あまり意味はないわな。
0330デフォルトの名無しさん
2010/03/23(火) 20:22:020331デフォルトの名無しさん
2010/03/23(火) 20:47:19ifでどうのこうのなんてないな
0332デフォルトの名無しさん
2010/03/23(火) 22:34:41> ここで言っていたようにif文内に正常処理を書かないようにし
> 邪悪なものを最初に弾くようにしたらものすごくコードが見やすくなった
やっぱそう思う?
俺も前々からそんな気がしていた・・・
こういうtipsがまとめられたサイトとか本とか無いかな。
初級者以上中上級者未満を対象にした情報源ってあまり無いよな('A` )b
0333デフォルトの名無しさん
2010/03/23(火) 22:38:500334デフォルトの名無しさん
2010/03/23(火) 22:48:06近所の紀伊国屋書店さん3日間も立ち読みしてごめんなさい
0335デフォルトの名無しさん
2010/03/23(火) 22:48:12完全には否定しないけどね。
俺もCの二重インクルード防止のなんかには、一般的な作法じゃないけど
空っぽの#ifdefを書くようにしてるから気持ちは分かる。
ただ、ifのブロックなんてCのインクルードファイルほど行数あるわけじゃないからねえ。
普通は。
0336デフォルトの名無しさん
2010/03/23(火) 22:49:360337デフォルトの名無しさん
2010/03/23(火) 22:52:57のオーバーロードバージョンてどうやって使うんですか?サンプルないですか?
listView1.Items.AddRange(listView2.Items)とかやるとArgumentExceptionになるんですが…
0338デフォルトの名無しさん
2010/03/23(火) 23:00:08実質内部で使う用と考えていい
0339デフォルトの名無しさん
2010/03/23(火) 23:03:02ありがとうございます。CopyToします。
0340デフォルトの名無しさん
2010/03/23(火) 23:08:090341デフォルトの名無しさん
2010/03/23(火) 23:13:58DirectXSDKを使わないとグラボの性能ほとんど使わないのかな?
0342デフォルトの名無しさん
2010/03/23(火) 23:23:00グラボはリアルタイムな処理に使うものであって静的な画像処理にはあまり使われない
シェーダ使えばできるけど面倒で制限が多い割には体感的にそんなに速くなるとは思えない
0343デフォルトの名無しさん
2010/03/23(火) 23:27:040344デフォルトの名無しさん
2010/03/23(火) 23:40:07そんなに変わるのかなと思ったんだけど使い方によるんですね
0345デフォルトの名無しさん
2010/03/23(火) 23:40:460346デフォルトの名無しさん
2010/03/23(火) 23:42:570347デフォルトの名無しさん
2010/03/23(火) 23:46:35画像処理と言っても色々ある。
単純なファイル形式変換ならグラボ関係ないが、
拡大、縮小、色変換、フィルタリングとかかけるならWPFやSilverlight使った方が圧倒的に便利かと。
0348デフォルトの名無しさん
2010/03/23(火) 23:51:01簡単な拡大縮小などで細かい制御を必要としないならともかく
シェーダ書くなら余計に手間かかるよ
0349デフォルトの名無しさん
2010/03/23(火) 23:53:03シェーダー書かんでも代わりに色々やってくれるところがWPFのいいところじゃないの。
0350デフォルトの名無しさん
2010/03/23(火) 23:56:56ビットマップのピクセルをCPUで直接処理するのが嫌ならピクセルシェーダを書くしかない
0351デフォルトの名無しさん
2010/03/23(火) 23:57:02無駄なtrueを書かない。
× if ( flag == true ) { }
○ if ( flag ) { }
0352デフォルトの名無しさん
2010/03/23(火) 23:59:560353デフォルトの名無しさん
2010/03/24(水) 00:01:580354デフォルトの名無しさん
2010/03/24(水) 00:10:45にコンポーネントを追加することはできますか?
同じボタンを1つ増やしたいのですが。
0355デフォルトの名無しさん
2010/03/24(水) 00:11:54おお、今までWPF使ったことなかったけど使ってみようかな
そんな難しい処理じゃなくて画像Viewer的なのを作りたいだけなので
勉強してみようかな
0356デフォルトの名無しさん
2010/03/24(水) 00:18:59> 無駄なtrueを書かない。
> × if ( flag == true ) { }
> ○ if ( flag ) { }
C畑出身の古参か?
時代は可読性を求める時代だぞ。
0357デフォルトの名無しさん
2010/03/24(水) 00:24:06それは「無駄な可読性」というものだ。
ただし、C#はC/C++と比べてif節はbool型しか取らないから、
自然、これまでよりも式が厳格になる傾向があるけどな(式が非ゼロかどうかの判定とか)
0358デフォルトの名無しさん
2010/03/24(水) 00:26:58isHoge
とかならif(isHoge==true)は冗長だろ
0359デフォルトの名無しさん
2010/03/24(水) 00:29:48大切なことなので2回言いましたってことか?
0360デフォルトの名無しさん
2010/03/24(水) 00:29:57まあ無理
どうしてもと言うならタイトルバーなしにしてそれっぽいのを自分で描画する
0361デフォルトの名無しさん
2010/03/24(水) 00:35:13そこで.NET4.0の契約プログラミングですよ。
0362デフォルトの名無しさん
2010/03/24(水) 00:43:42ありがとうございます。
小さいウインドウから元のサイズにするだけなので
コンテキストメニューで代用します。
0363デフォルトの名無しさん
2010/03/24(水) 00:46:41ある種の思い込みがある人たちにとってはそうなんでしょ。
思い込みっていうか、たぶん「ifが取るのはbool型の値」という風に論理的に考えず、
経験的に「ifの後に来るのは2項演算じゃないと気持ち悪い」と感じるタイプ。
そういう人は自分の感覚を修正すべきだね。
0364デフォルトの名無しさん
2010/03/24(水) 00:51:35flag!=true とか !(flag==true) とか !(flag==false) とかいろんなパターンで使われたらもうイライラ。
0365デフォルトの名無しさん
2010/03/24(水) 01:19:50if(n>0)
これはわかりにくいよね
if(n<=0)
でもelseの方の文を長くしたいならこうなる
if(!(n>0))
0366デフォルトの名無しさん
2010/03/24(水) 01:21:31もうねろよ。疲れてんだよ。
0367デフォルトの名無しさん
2010/03/24(水) 01:53:35ボタン4つ作っただけなのにウィンドウサイズ変えると
c2dの使用率50%になっちゃう
0368デフォルトの名無しさん
2010/03/24(水) 01:54:220369デフォルトの名無しさん
2010/03/24(水) 01:59:060370デフォルトの名無しさん
2010/03/24(水) 02:04:15小負荷 の検索結果 約 3,390,000 件中 1 - 100 件目 (0.32 秒)
高負荷 の検索結果 約 2,480,000 件中 1 - 100 件目 (0.27 秒)
低負荷 の検索結果 約 1,260,000 件中 1 - 100 件目 (0.42 秒)
0371デフォルトの名無しさん
2010/03/24(水) 02:09:590372デフォルトの名無しさん
2010/03/24(水) 02:11:12負荷は中というのが正しい。
0373デフォルトの名無しさん
2010/03/24(水) 02:15:40いつ時計を作ってたの?
時計をタイマーで作るの?
0374デフォルトの名無しさん
2010/03/24(水) 02:22:53"小負荷" の検索結果 約 13,500 件中 1 - 50 件目 (0.28 秒)
"高負荷" の検索結果 約 461,000 件中 1 - 50 件目 (0.31 秒)
"低負荷" の検索結果 約 123,000 件中 1 - 50 件目 (0.39 秒)
"中負荷" の検索結果 約 16,500 件中 1 - 50 件目 (0.33 秒)
0375デフォルトの名無しさん
2010/03/24(水) 03:07:34"負荷が小さい" の検索結果 約 1,070,000 件
"負荷が高い" の検索結果 約 69,000 件
"負荷が低い" の検索結果 約 1,600,000 件
"負荷が中い"との一致はありません。
"負荷が中くらい" の検索結果 約 18,600 件
0376デフォルトの名無しさん
2010/03/24(水) 03:19:07という夢を中国が見ていた。
0377デフォルトの名無しさん
2010/03/24(水) 03:36:160378デフォルトの名無しさん
2010/03/24(水) 05:35:51*.exe形式で配布〜ローカルにインストールして使う、
WEB上のXMLを取得して処理したり、
XML-RPCでブログ投稿
などを行うソフトを作りたいのですが、
こういうソフトは、どういう単語で検索すれば情報が集められるのでしょうか
勉強するとっかかりが、全くわかりません。
本1冊と、C#入門、みたいなサイトは一通り勉強してきましたが
この辺の情報はなかったです。
「WEBサービス」では、サーバサイドの話のようで・・・
0379デフォルトの名無しさん
2010/03/24(水) 07:06:030380デフォルトの名無しさん
2010/03/24(水) 08:41:42というのは実行ファイル形式のインストーラーのことだ。
基本的にはこれは.NETで作らない方がいい。
自己解凍書庫、インストーラー作成ツールなどを使う。
0381デフォルトの名無しさん
2010/03/24(水) 11:18:090382デフォルトの名無しさん
2010/03/24(水) 11:41:390383デフォルトの名無しさん
2010/03/24(水) 11:48:42その質問は、カレーとスプーンが構造が同じかと問うていることに等しい。
ちなみに、DirectXはCOMでできている。
0384デフォルトの名無しさん
2010/03/24(水) 11:49:290385デフォルトの名無しさん
2010/03/24(水) 13:48:55自作のアプリケーションでjpgファイルを開くために、
registryValue = programpath + " %1";
として登録しました。
これで、アイコンを選んで、右クリックで登録したメニューを実行すると、
「パスに無効な文字が含まれています」とエラーになります。
どうやら、%1を
C:\DOCUME~1\USERNA~1\MYDOCU~1\data\20EAE6~1\PIC~2.JPG
のように、アプリケーションのショート名(?)に展開しているようです。
これを回避するには、どのようにしたらよいでしょう?
0386デフォルトの名無しさん
2010/03/24(水) 14:39:12あっそう
0387デフォルトの名無しさん
2010/03/24(水) 17:05:370388デフォルトの名無しさん
2010/03/24(水) 17:06:270389デフォルトの名無しさん
2010/03/24(水) 17:08:09StringReader.ReadLine
0390デフォルトの名無しさん
2010/03/24(水) 17:11:51ありがとうございます。
知りたかった情報が見つかりました
0391デフォルトの名無しさん
2010/03/24(水) 17:31:418.3形式のファイル名が問題なんじゃなくて、programpathに半角スペースが入っているせいで実行ファイルが見つかってないんじゃない?
0392デフォルトの名無しさん
2010/03/24(水) 18:34:36コードからウィンドウサイズ変えることすらできない
使えない
0393デフォルトの名無しさん
2010/03/24(水) 18:38:080394デフォルトの名無しさん
2010/03/24(水) 20:56:25みんな始めたばかりだからやさしいぞ
0395デフォルトの名無しさん
2010/03/24(水) 22:17:27通してでないとアクセスできないようにする方法ありますか?
0396デフォルトの名無しさん
2010/03/24(水) 22:20:180397デフォルトの名無しさん
2010/03/24(水) 22:22:23変数名を\uxxxx並べた理解不能なのにしとくとかどう?
0398デフォルトの名無しさん
2010/03/24(水) 22:25:150399デフォルトの名無しさん
2010/03/24(水) 22:35:14複数人で1つのクラスいじってるような場面だとそうはイカンザキ?
0400デフォルトの名無しさん
2010/03/24(水) 22:42:59ここに式を記述してもいいのでしょうか?
そしたら思っているようなことができそうなんですが
public string Name
{
set{ this.Name=valeu;}
}
例えばこんな感じ
0401デフォルトの名無しさん
2010/03/24(水) 22:44:200402デフォルトの名無しさん
2010/03/24(水) 22:45:38そんなフィールド(とプロパティ)が存在しうるとして、
プロパティーのセッターやゲッターは自分自身を呼び出してバッキングフィールドに
値を代入したり取得したりするんだろうか。
それって無限に再帰することになるんじゃないか?
少しは頭を使おうよ。
まあ気持ちは理解できなくもないがw
VBはせっかくメソッド内Static変数があるんだから、ゲッターからもセッターからも
アクセスできる位置にメソッド内Static変数が書ける構文さえ用意してくれれば
バッキングフィールドを不要にできるんだけどな。
ことほど左様に、VBチームはやる気がなさ杉気が利かな杉。
開発者までVB厨っぽい。
0403デフォルトの名無しさん
2010/03/24(水) 22:46:04それって、ごく普通のプロパティ公開のシチュエーションじゃないの?
0404デフォルトの名無しさん
2010/03/24(水) 22:48:030405デフォルトの名無しさん
2010/03/24(水) 22:48:130406デフォルトの名無しさん
2010/03/24(水) 22:50:340407デフォルトの名無しさん
2010/03/24(水) 22:51:34しないでもないでもない
0408デフォルトの名無しさん
2010/03/24(水) 22:54:45フィールドに属性か何かで定義域指定できるようになったら蝶うれしいぞ。
0409デフォルトの名無しさん
2010/03/24(水) 22:55:310410デフォルトの名無しさん
2010/03/24(水) 22:57:150411デフォルトの名無しさん
2010/03/24(水) 23:02:040412デフォルトの名無しさん
2010/03/24(水) 23:02:360413デフォルトの名無しさん
2010/03/24(水) 23:03:49自分のクラスのprivateなメンバ変数に対してアクセスせず、
常にプロパティ越しにアクセスしたい、ということか。
すればいいじゃん。
こういうのはコーディングテクニックじゃなくて、ポリシーで解決すべきことがらだ。
どうしてもこねくり回したいなら
private変数と抽象プロパティを定義した親クラスを作って継承すればいい。
そんな必要性は感じられないが。
だいたい、VSなら特定の変数がどこで参照されてるか全検索は簡単にかけられるんだから、
一括で修正してしまえば済む話。
0414デフォルトの名無しさん
2010/03/24(水) 23:04:340415デフォルトの名無しさん
2010/03/24(水) 23:08:510416デフォルトの名無しさん
2010/03/24(水) 23:12:42あとは>>413の言うようにベースクラスのプロパティをフィールド代わりにするか。
でも一番の方法は、そんな下らないことは考えないこと。
0417デフォルトの名無しさん
2010/03/25(木) 00:34:54否、すべての変数はグローバル変数とするべきだ
0418デフォルトの名無しさん
2010/03/25(木) 02:21:040419デフォルトの名無しさん
2010/03/25(木) 03:19:340420デフォルトの名無しさん
2010/03/25(木) 04:35:11この連載いいねー簡潔でわかり易いし
疑問に思ってたことがいくつか解決した
C#4.0はpythonでやってたようなことができるみたいだな
0421デフォルトの名無しさん
2010/03/25(木) 07:32:33たくさんのデータを含めるし。
0422デフォルトの名無しさん
2010/03/25(木) 07:37:210423デフォルトの名無しさん
2010/03/25(木) 07:40:400424デフォルトの名無しさん
2010/03/25(木) 07:52:000425デフォルトの名無しさん
2010/03/25(木) 07:52:18Indexを呼び出す側でもやっぱり添え字でチェックして2重になってるんだけど
やっぱそういうもんですか?
それとこの場合ゲッターの戻り値どうすればいいでしょうか?
public int Index{set{if(0<=value)_index=value;}}
private void hoge()
{
}
0426デフォルトの名無しさん
2010/03/25(木) 07:55:05private void hoge()
{
++Index;
if(0<=idx && list.Count>idx) a(list[idx]);
}
0427デフォルトの名無しさん
2010/03/25(木) 08:39:59基本的に、添字チェックはCLIのレベルで自動でやってくれるから必ずしもやらなくていい。
(すなわち添字チェックは最悪ひとつも書かなくていい。失敗したら例外が発生する)
で、そのセッターってなんかおかしくね?
0428デフォルトの名無しさん
2010/03/25(木) 09:16:02なんかどこまで例外処理を書けばいいか迷うね
下手したら同じ例外処理をいくつものクラス間で
3重4重やってしまうことになるわけで
続行して問題が出る場合以外は
条件分岐を極力書かずにtryで済ませる方が
いいような気がしてきた
0429デフォルトの名無しさん
2010/03/25(木) 09:22:04GetDirectoriesでもアクセスできないディレクトリを検索してエラー吐くし
.Netで用意されているクラスですらエラー出すんだから
正常な値であるはずという前提で作っていった方がいいのかな
0430デフォルトの名無しさん
2010/03/25(木) 09:30:110431デフォルトの名無しさん
2010/03/25(木) 13:19:43最初の質問の時に「2度も添字チェックが必要なのかと」問われたので
必ずしもやらなくてもいいと答えただけで、
例外処理と明示的な添字チェックと比較して、
より書きやすい方法で書けばいいんだよ。
で、添字処理を自前でやるsetter/getterって、
C#で今まで必要になったことが一度もないんだが。オレだけ?
標準ライブラリのコンテナ使うだけで、困った事無い。
0432デフォルトの名無しさん
2010/03/25(木) 15:12:48↓のようにAddStringでpathに作ったアウトラインをWidenで太くしてやるやり方が
ググッたらシンプルなので使おうとしたのだけど、フォントサイズに対してWidenで太くする
サイズ(コード内でいうwidth)がでかくなるにつれ漢字などの細かい部分で意図しないツノが生えてきてしまうんだ
(このコードで言えば「刷」の左上など)
この現象の回避策や、他のシンプルな縁取り文字作成方法があったら教えて下さい(元からそういうフォントを使えというのは無しで)
// gはGraphics, pathはGraphicsPath
Font font = new Font("メイリオ", 26.25, FontStyle.Bold);
Single sizeInPixels = font.SizeInPoints * g.DpiY / 72F; // ピクセル単位のサイズに変換
Single width = 5.0F;
path.AddString("印刷中", font.FontFamily, (Int32)font.Style, sizeInPixels, new PointF(10, 10), null);
using (Pen pen = new Pen(Color.Black, width)) {
path.Widen(pen);
}
g.FillPath(Brushes.Black, path);
0433デフォルトの名無しさん
2010/03/25(木) 15:50:35Widenに使うPen(コードで言うpen)のLineJoinプロパティをLineJoin.Miter(デフォルト)以外にしたら出なくなった。
ついでにLineJoinの値によっては柔らかい感じにもできることが分かって
さらに得した気分。
お邪魔しました〜
0434デフォルトの名無しさん
2010/03/25(木) 17:06:25原則「発生したらバグ」の類の例外だ
それにIndexOutOfRangeやNullReferenceのような例外は一度出たら
頻繁に出ることが多いので例外で処理すると極端にパフォーマンスが低下することがある
0435デフォルトの名無しさん
2010/03/25(木) 17:12:110436デフォルトの名無しさん
2010/03/25(木) 17:19:05privateな部分では(渡す前に)Length参照した方がスマートじゃないでしょうか
0437デフォルトの名無しさん
2010/03/25(木) 17:24:02おいおい・・・
0438デフォルトの名無しさん
2010/03/25(木) 18:35:00ファイルを取得しstring[]で返すのを作ったとして
そのクラスを利用する側もやっぱりファイルがあるのかないのかチェックし
さらにそのクラス利用する側もファイルがなかった場合を想定してコードを書かないといけない
この同じチェックは永遠に続くの?
0439デフォルトの名無しさん
2010/03/25(木) 18:52:03書きたければ書けばいいし、例外処理で済ますなら済ませればいい。
0440デフォルトの名無しさん
2010/03/25(木) 19:00:47まず、
Up, Scroll, 20
Down, Scroll, -20
Right, Next
Left, Prev
というふうなテキストファイルを読み込んで、キーとメソッドを結び付けたいです。
(この例では、左からキー、メソッド名、パラメータにしてます)
具体的な実装方法として思いつくのが
・キーとメソッド名をもつ連想配列を用いて、switch文で分岐してメソッド呼び出し。
・switch文ではなく、リフレクションでメソッド呼び出し。
なのですが、上のはコードが冗長になりますし、下のはパフォーマンス面で不利かもしれません。
キーとデリゲートを持つ連想配列を用いて呼び出せればスマートだとは思うのですが、
引数が異なると別のデリゲートと、それを入れる連想配列を用意する必要がある(と思う)
ので悩ましいです。スマートにこなす方法なんかがあればアドバイスお願いします。
0441デフォルトの名無しさん
2010/03/25(木) 19:06:18匿名メソッド
0442デフォルトの名無しさん
2010/03/25(木) 19:24:270443デフォルトの名無しさん
2010/03/25(木) 19:38:46その1行分を表現する構造体を作って、XMLSerializerでさくっと読み書き。
アプリ上ではDictionaryか何かの表持たせておく。
キーイベントを受け取ったら表を見て登録したメソッドを呼び出す。
メソッドの登録はdelegateかラムダ式を使えばいい。
0444デフォルトの名無しさん
2010/03/25(木) 20:39:310445デフォルトの名無しさん
2010/03/25(木) 20:52:590446デフォルトの名無しさん
2010/03/25(木) 21:05:06ListViewのチェックボクスのチェックを付けたり、外したりするのは画面からクリックしたときではないと無理なのですか?
ソース内でチェックを書き換えたいのですが、CheckedListBoxのSetItemCheckedメソッドみたいなのが存在しないみたいなので困っています
もともとはCheckedListBoxを使用していたのですが、アイコンを表示するためにListViewに変えました
チェックの状態が変わらないとItemCheckイベントも起きないですし、何か方法はあるのでしょうか
0447デフォルトの名無しさん
2010/03/25(木) 21:23:250448デフォルトの名無しさん
2010/03/25(木) 21:43:06DataColumn.Expression では計算できないので、
DataTable.TableNewRow イベントで値を計算して入れようと思ってます。
これを XML で保存するために WriteXml すると自動で計算した項目も出力されると
思うのですが、自動で計算した項目は出力しないようにする方法はあるのでしょうか?
0449デフォルトの名無しさん
2010/03/25(木) 21:55:30属性をつける
0450デフォルトの名無しさん
2010/03/25(木) 21:58:30listView1.SelectedItems[0].Checkedのことですよね?
これってSelectedItemsには今チェックされている項目が格納されてると思うんですが、
このプロパティではチェックされている項目のチェックを外すことは出来てもチェックが付いていない項目にチェックを付けることは不可能ではないですか?
0451デフォルトの名無しさん
2010/03/25(木) 22:02:17Copyして列をRemoveしたあとでWriteXmlするとか?
>>450
Itemsからアクセスすりゃよかろう
0452デフォルトの名無しさん
2010/03/25(木) 22:03:59ありがとうございました
0453デフォルトの名無しさん
2010/03/25(木) 22:16:13それとあんたうざい
0454デフォルトの名無しさん
2010/03/25(木) 22:31:10ハァ?
無視させたいフィールド、プロパティにXMLIgnore属性をつけておいて、
XmlSerializerに食わせて吐き出させればよい。
0455デフォルトの名無しさん
2010/03/25(木) 22:37:550456デフォルトの名無しさん
2010/03/25(木) 22:43:15なにか方法がありますか?FormとかButtonだとMouseMoveイベントがあったけど、それと
同等の機能がwebBrowserには見当たりません。
0457デフォルトの名無しさん
2010/03/25(木) 23:12:08DataTable のカラムに XMLIgnore 属性つけられるなら
やってみせてくれw
0458デフォルトの名無しさん
2010/03/25(木) 23:14:050459デフォルトの名無しさん
2010/03/25(木) 23:14:56ハァ?
てめーがやれ。
0460デフォルトの名無しさん
2010/03/25(木) 23:17:29それ結局XML吐く処理を全て自前で書くという意味だけどわかってる?
0461デフォルトの名無しさん
2010/03/25(木) 23:18:25おお
0462デフォルトの名無しさん
2010/03/25(木) 23:18:54馬鹿だからできねぇってこと知らないの?
0463デフォルトの名無しさん
2010/03/25(木) 23:20:140464デフォルトの名無しさん
2010/03/25(木) 23:53:40フォルダ数、ファイル数が瞬時に出ますが
こういう機能はありますか?
0465デフォルトの名無しさん
2010/03/25(木) 23:55:37一生懸命カウントしてるのがわかる。
0466デフォルトの名無しさん
2010/03/26(金) 00:06:03あれはGetDirectoriesやGetFilesやるしかないですか?
ファイルやフォルダ検索の進行状況を表示させたいので
まず数を取得してやろうと思っていたんですが
0467デフォルトの名無しさん
2010/03/26(金) 00:17:520468デフォルトの名無しさん
2010/03/26(金) 01:51:45設定ファイルを読み込んだときに、
delegate void Invoke();
Invoke inv = () => Scroll(20);
てな感じのデリゲートをこしらえて辞書に登録すれば、呼び出し時はスマートに済ませそうですね。
こしらえるときは地道にswitchで分岐するとして。
しかしこれは、戻り値を返すメソッドの場合は呼び出し側に値を返せない欠点があります。
でも、戻り値を返すようなメソッドをキーに割り当てる場面は今のところないのでこれでいってみます。
0469デフォルトの名無しさん
2010/03/26(金) 02:26:54void Execute(object[] parameters);
みたいにして、パラメータを配列で渡せばいい
0470デフォルトの名無しさん
2010/03/26(金) 07:19:29http://www.k4.dion.ne.jp/~anis7742/codevault/00110.html
0471デフォルトの名無しさん
2010/03/26(金) 10:40:57以下のこと、教えてください。
VisualStudioにてユーザーコントロールやカスタムコントロールを作成し、ビルドすると、
そのコントロールがツールボックスの”(プロジェクト名)コンポーネント”といったタブ内に
デフォルトで配置されます。
このデフォルトの配置場所を任意のタブ内(該当タブが無ければ新規作成)にすることは可能でしょうか?
属性でなんとかなりそうな予感がしていたのですが、どうにも見つけきれませんでした。
よろしくお願いします。
0472デフォルトの名無しさん
2010/03/26(金) 10:44:25そこは開発側で手をいれるところでなく、運用側で対処すべき問題だと思うんだが、どうよ。
0473デフォルトの名無しさん
2010/03/26(金) 10:58:04WINDOWSフォームを作っていてテストでちゃんと読み込んでいるかチェックしようとしたのですが
chengebox1にチェックを入れるとエラーが起きます。どこがおかしいのでしょうか
0474デフォルトの名無しさん
2010/03/26(金) 11:06:27やはりそこは個人々々でなんとかしてもらうしかないですかね。
ありがとうございました。
0475デフォルトの名無しさん
2010/03/26(金) 11:17:37エラーが出たならエラーの内容書けよカス
0476デフォルトの名無しさん
2010/03/26(金) 11:32:32URLのソースコードを見てみたが、
とりあえずbutton1を押した後じゃないとcheckBox1は押しちゃいけないように見える。
というか、こんなレベルで詰まってちゃ何もできないぞ。
不具合が出たらデバッガで1行ずつ動かしながら再チェックする習慣をつけよう。
0477デフォルトの名無しさん
2010/03/26(金) 14:42:01カス
0478デフォルトの名無しさん
2010/03/26(金) 15:39:08このサンプルを動かそうと思ったのですが
html = ExpandTabs(html);
ネットで調べたのですがExpandTabsの所在がわかりません。
どれをusing指定すればいいのでしょうか?
0479デフォルトの名無しさん
2010/03/26(金) 15:44:31何も考えずにソースをそのまま入れてみて
ExpandTabsにカーソルを合わせてみ
0480デフォルトの名無しさん
2010/03/26(金) 15:46:440481デフォルトの名無しさん
2010/03/26(金) 15:48:07そういう意味じゃなくて・・・
2004年当時と違って場所が変わってるようなので
サンプルソースのusingだけだと
エラー 3 名前 'ExpandTabs' は現在のコンテキスト内に存在しません。
となるんです。
0482デフォルトの名無しさん
2010/03/26(金) 15:51:03失礼しました
sjis使わないので・・と思って頭の方全部すっとばしてみてませんでしたorz
0483デフォルトの名無しさん
2010/03/26(金) 15:57:11> サンプルソースのusing
0484デフォルトの名無しさん
2010/03/26(金) 16:41:260485デフォルトの名無しさん
2010/03/26(金) 19:38:17のカレンダーで遊んでみようと思っています。
このプロジェクトを開くと、
Microsoft.Windows.Controlsと
Microsoft.Windows.Controls.Primitivesの参照が必要なので、
WPFToolkitをダウンロードし、参照を追加しました。
それでもMoonPhaseCalendar/MainWindow.xamlの、
<vsm:VisualStateManager.VisualStateGroups>
の行で、
アタッチ可能なプロパティVisualStateGroupsが、
型VisualStateManagerに見つかりませんでした。
とエラーになります。
これにはどう対処したらよいでしょうか?
0486デフォルトの名無しさん
2010/03/26(金) 21:07:29まず気にせず実行してみる
0487デフォルトの名無しさん
2010/03/26(金) 22:10:49複数のフォームで値を共有するにはどういった方法が適切ですか?
今は1つのフォーム内(Form1.cs)に切り替えられるよう書いていますが、
デザイナが使えないのは何かとても間違っている気がします。
1つのコンポーネントを2つのフォームから参照できるとスマートだと思うのですが・・・
よろしくお願いします。
0488デフォルトの名無しさん
2010/03/26(金) 22:17:53Document-Viewアーキテクチャだね。
Viewから保持するデータ(Document)を分離する。
もたせ方は、コンストラクタで渡そうがプロパティで引き渡そうが好きにすればいい。
それよりも、メインのフォームを切り替えるのがちょっと面倒そうだなー、と心配するかな。
0489デフォルトの名無しさん
2010/03/26(金) 22:35:56ありがとうございます。
Document-Viewアーキテクチャを見ると、
「そのためにWPFがあるのです。」という空耳が聞こえます、気のせいですよね。
ご指摘の通り、そこで悩んでいます。
フォームの値をまとめた構造体Dataなどを作って、
Form2 a = new Form2();
a.Data = this.Data;
this.Close();
みたいにしてもいいのでしょうか?
0490デフォルトの名無しさん
2010/03/26(金) 22:39:22だよね。
その書き方だと、this.Close()を呼び出した直後にProgram.csのMain関数が終わってしまう。
そこでMain関数内をループ構造にして、
Application.Runを複数回呼び出せるようにするとどうだろう。
そのタイミングでメインフォームを切り替えるとか。
0491デフォルトの名無しさん
2010/03/26(金) 22:49:32分業しましょうっていう考え方でDoc-Viewとは違うよ
XAMLはWinFormsのDesigner.cs相当で、コードビハインドとは別にXAMLだけを入れ替えるようなことはしない
そういうのはMVVMとかもっと高次の枠組みでやる
0492デフォルトの名無しさん
2010/03/26(金) 22:50:16bool run = true;
while(run){
Application.Run(new Form1());
Application.Run(new From2());
}
どう・・・なんでしょう。
Program.csにData(Document)保存した方がいいような気もします。
0493デフォルトの名無しさん
2010/03/26(金) 22:55:01ビューと"ロジック"なんですね。 参考になります。
WPFはスケッチブックと色鉛筆渡されたような気持ちになるので触る勇気がまだありません・・・。
ちなみに、Formは大学ノートとシャーペン。
0494デフォルトの名無しさん
2010/03/26(金) 22:56:570495デフォルトの名無しさん
2010/03/26(金) 22:59:110496デフォルトの名無しさん
2010/03/26(金) 22:59:36メモリ×2
でも、それも手段の一つです。
0497デフォルトの名無しさん
2010/03/26(金) 22:59:39そもそも「フォームの値」などというものが存在していることそれ自体がおかしい。
WPFとか関係ない。
聞いた感じクラスを使ったプログラミングが理解できてないようだから
まずそれを覚えないことには話にならないよ。
0498デフォルトの名無しさん
2010/03/26(金) 23:00:18そこじゃないw
WPFでいうビューとロジックの分離っていうのは、デザインとコードをはっきり分離できていれば
デザインはデザイナが担当してコードはプログラマが書くという形で分業できるという考え方。
だからDoc-ViewやMVCでいうならXAMLもコードビハインドもViewに属する。
0499デフォルトの名無しさん
2010/03/26(金) 23:15:20フィールドの受け渡し、と言うべきでしょうか。
0500デフォルトの名無しさん
2010/03/26(金) 23:17:300501デフォルトの名無しさん
2010/03/26(金) 23:24:59Panelか何かに配置して入れ替える
おそらくデザイナ使いたいからその辺を避けようとしてるのだろうけど
だったらUserControlでも継承すればいいんだよ
0502デフォルトの名無しさん
2010/03/26(金) 23:26:52おかしなことせんとApplicationContext使えば?
0503デフォルトの名無しさん
2010/03/26(金) 23:39:01>>502
ありがとうございます。
両方試してみます。
0504デフォルトの名無しさん
2010/03/26(金) 23:41:080505デフォルトの名無しさん
2010/03/26(金) 23:48:20今日の朝生の出演者名簿から
今日の討論の流れをシュミレーションするには
どれぐらいの経験がひつようでしょうか?
0506デフォルトの名無しさん
2010/03/27(土) 00:20:58その方法で解決できました。
ありがとうございます。
0507デフォルトの名無しさん
2010/03/27(土) 03:08:31だろ
継承すればいいだろ
0508デフォルトの名無しさん
2010/03/27(土) 07:26:53朝生視聴歴10年くらい
0509デフォルトの名無しさん
2010/03/27(土) 11:52:38タイマーとか使って一定時間ごとに自動的に保存するようなのを作りたいんだけど。
0510デフォルトの名無しさん
2010/03/27(土) 11:57:57WebBrowserで取ってきて、キャプチャってのもありだね。
0511デフォルトの名無しさん
2010/03/27(土) 12:43:16http://dobon.net/vb/dotnet/internet/downloadfile.html
ほい
0512デフォルトの名無しさん
2010/03/27(土) 15:42:11DataGridViewを置き、
実際に内容が表示されている(値のある)行をクリックしたときはその行を選択状態にさせ
実際に内容が表示されていない下部の余白をクリックしたときは、選択状態を解除したいと考えているのですが、
余白をクリックしたことを検知するにはどのようなイベントを行えばよいのでしょうか。
よろしくお願いします。
0513デフォルトの名無しさん
2010/03/27(土) 15:43:240514デフォルトの名無しさん
2010/03/27(土) 15:46:29欄外をクリックしてChange系イベントをもらったときに
選択中のindexを問い合せると-1が返ってきたりしない?
ListBoxではそういう動きをする。
0515デフォルトの名無しさん
2010/03/27(土) 15:55:190516デフォルトの名無しさん
2010/03/27(土) 17:33:140517デフォルトの名無しさん
2010/03/27(土) 17:43:57private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
if (dataGridView1.HitTest(e.X, e.Y).RowIndex < 0)
{
MessageBox.Show("hoge");
}
}
0518デフォルトの名無しさん
2010/03/27(土) 18:26:200519デフォルトの名無しさん
2010/03/27(土) 18:42:290520デフォルトの名無しさん
2010/03/27(土) 18:45:50フォームの入った.csをエディタでいじってフォーム部分を壊してしまったとき
なんとか復活させる方法ないでしょうか。
Express Editionのフォームデザイナが異常終了しちゃうんです。
ビルドはできるし、できあがったexeも実行出来るんですけど。
フォームデザイナだけ言う事聞いてくれない。
0521デフォルトの名無しさん
2010/03/27(土) 18:47:260522デフォルトの名無しさん
2010/03/27(土) 18:58:490523デフォルトの名無しさん
2010/03/27(土) 19:05:550524デフォルトの名無しさん
2010/03/27(土) 19:11:20一言余計だ
0525デフォルトの名無しさん
2010/03/27(土) 19:15:040526デフォルトの名無しさん
2010/03/27(土) 19:34:250527デフォルトの名無しさん
2010/03/27(土) 19:42:220528デフォルトの名無しさん
2010/03/27(土) 19:50:420529デフォルトの名無しさん
2010/03/27(土) 20:05:060530デフォルトの名無しさん
2010/03/27(土) 20:26:110531デフォルトの名無しさん
2010/03/27(土) 20:30:550532デフォルトの名無しさん
2010/03/27(土) 20:36:43全員はアフリカ人だな
0533デフォルトの名無しさん
2010/03/27(土) 21:11:33うん。そう、それ。
Visual C#でエラーが発生したため終了します。
エラー報告を送信する しない
× データが失われる可能性を防ぐため、デザイナの読み込み前には以下のエラーを
解決する必要があります。
× オブジェクト参照がオブジェクトインスタンスに選定されていません。
0534デフォルトの名無しさん
2010/03/27(土) 21:17:260535デフォルトの名無しさん
2010/03/27(土) 21:39:120536デフォルトの名無しさん
2010/03/27(土) 21:42:030537デフォルトの名無しさん
2010/03/27(土) 21:45:05マウスでクリックしたときのイベントを書くとき、
MouseDown,MouseClick,Click,MouseUp
どれを使うのが適切なの?
イベントの発生順がちがうのは分かるけども、
どれか1つしか書かないときはどれが望ましいのか分からないっす
(-_-;);
0538デフォルトの名無しさん
2010/03/27(土) 21:46:390539デフォルトの名無しさん
2010/03/27(土) 21:47:290540デフォルトの名無しさん
2010/03/27(土) 22:00:13実はVSのデザイナーはいろんな理由で落ちる不完全な代物なので、
そういうものだと思っておこう。
落ちた位置自体はレポートされてるから、
それを参考に修正する。大抵はコンストラクタ周り。
0541デフォルトの名無しさん
2010/03/27(土) 22:27:52特定のディレクトリの配下すべてを
1つのファイルにバックアップ・リストアする機能を作成しています。
(イメージ的には、zip圧縮と解凍)
圧縮はSystem.IO.Packageのクラスでどうにかできたのですが、
解凍がうまくいきません。
今やっている考え方は、
packgeのオープン→ファイルパス取得→取得したファイルパスからファイルをコピー
の流れで、パス取得とコピーを繰り返している状態です。
なぜかコピーできるファイルとコピーできないファイルが存在していて困っています。
なお、ソースで圧縮したzipファイルは、laplusで解凍、ファイルが適切に存在していることを確認しています。
誰か理由を知っていますか?
また、代替案をご存知ですか?
#J#のライブラリによる圧縮・解凍や、フリーのライブラリを利用することは現状考えていません。
よろしくお願いします。
0542デフォルトの名無しさん
2010/03/27(土) 22:29:46左1右3とマス目を取得するプログラムを作りたいのですが
参考になるサイトなどがあったら教えてください
0543デフォルトの名無しさん
2010/03/27(土) 22:30:270544デフォルトの名無しさん
2010/03/27(土) 22:32:24System.IO.Packagingはzipファイル作るためのライブラリじゃないよ
Open Packaging Conventions、つまりxpsとかのためのパッケージ仕様
0545デフォルトの名無しさん
2010/03/27(土) 22:34:16そもそも ZIP 用ってわけじゃないので、ダメかも知らんね。
まっとうなライブラリ使った方が早いと思うよ。
>>542
たかだか 64マスなんだから、PictrueBoxとか配置しちゃうってのもひとつの手。
0546デフォルトの名無しさん
2010/03/27(土) 22:37:03void form_MouseUp(object sender, MouseEventArgs e) {
int x = e.X / マス目の幅;
int y = e.Y / マス目の高さ;
}
0547デフォルトの名無しさん
2010/03/27(土) 22:39:29回答ありがとうございます。
Open Packaging Conventions用のクラスだというのは承知です。
固定のアプリからの圧縮・解凍ができればおkらしいです。
本当ならJ#のライブラリを使ったら簡単というのはわかるのですが、
いかんせん仕様上使わない方向らしいです。
もし完全に無理なら仕様変更を訴えてみます。
0548デフォルトの名無しさん
2010/03/27(土) 22:41:400549デフォルトの名無しさん
2010/03/27(土) 22:43:03回答ありがとうございます。
やっぱり無理そうですか…。
まっとうなライブラリとはどんなライブラリですか?
0550デフォルトの名無しさん
2010/03/27(土) 22:43:36ヘッダにファイル名とサイズさえ書き込んでおけば充分だろ
0551デフォルトの名無しさん
2010/03/27(土) 22:44:44仕様を決めた人は、C#を知らないわけでorz。
無理なら無理と言い切りたいのですが、圧縮だけはできてしまったので困った次第です。
0552デフォルトの名無しさん
2010/03/27(土) 22:44:510553デフォルトの名無しさん
2010/03/27(土) 22:45:46>>549
フリーのライブラリがいろいろ転がってるだろ?
サポート云々とか言うなら、PkZipのがいいな。
0554デフォルトの名無しさん
2010/03/27(土) 22:47:15否定はされないだろ。
0555デフォルトの名無しさん
2010/03/27(土) 22:47:28http://dotnetzip.codeplex.com/
pureC#で使いやすい
0556541
2010/03/27(土) 22:51:09初め、GZipStreamも考えたのですが、
・必須仕様
→アプリ上で圧縮・解凍が可能。
・推奨仕様
→アプリ外でも解凍可能。
という感じだったので、却下した次第です。
あと、フリーのライブラリも検索で引っかかってたのですが、
商用利用のために怖いと上の人間に言われて却下状態です。
無理ぽなら、月曜にでも理由を言って、改善案を作ってもらいます。
0557デフォルトの名無しさん
2010/03/27(土) 23:00:28いくらフリーといってもさすがにzlibを信用できないなら何も使えないでしょ
0558デフォルトの名無しさん
2010/03/27(土) 23:00:400559デフォルトの名無しさん
2010/03/27(土) 23:04:41プログラムの安定性は実績で決まるのであって、
商用かオープンソースなのかは全然関係ないんだけどな。
オレはアーカイブ内のファイル構成はSQLiteで外部で管理してるよ。
データファイル側はただ単に暗号化して連結してるだけ。
0560デフォルトの名無しさん
2010/03/27(土) 23:07:060562デフォルトの名無しさん
2010/03/27(土) 23:09:22ちゃんとzip用のヘッダさえ書いてやれば、
ファイル一つ一つの圧縮はGZipStream使ってもれっきとしたzipファイルが作れるんだぜ
0563デフォルトの名無しさん
2010/03/27(土) 23:09:25ああ、ライセンスね。そのライブラリは調べてなかったな……。
って、Ms-PLじゃねえか!
.NETの世界で一番有名なオープンソースライセンスなのに、
怖いとかモグリだろ。
0565デフォルトの名無しさん
2010/03/27(土) 23:11:260566デフォルトの名無しさん
2010/03/27(土) 23:12:59最近のMSのサンプルやMSがオープンソースで公開してるライブラリもほとんどMS-PL
0567デフォルトの名無しさん
2010/03/27(土) 23:16:210568541
2010/03/27(土) 23:16:46とりあえず結論としては、
・標準ライブラリはやめとけ。
・dotnetzipができるならいい。
・ダメならzlibでどうにかする。
・それでも無理ならあきらめろ。
でおk?
0569デフォルトの名無しさん
2010/03/27(土) 23:18:470570デフォルトの名無しさん
2010/03/27(土) 23:20:170571デフォルトの名無しさん
2010/03/27(土) 23:20:19WPFの新しいコントロールとかDLRとかMEFとか新機能の多くがMS-PL
0572デフォルトの名無しさん
2010/03/27(土) 23:22:200573デフォルトの名無しさん
2010/03/27(土) 23:23:06541が使用している標準ライブラリは必ずしも選択は間違ってないけど、使い方がおそらく間違っている。
dotnetzipで問題ないだろうけどこのスレのやつが実際に確かめたわけではないので、自分で調べて考えろ。
0574541
2010/03/27(土) 23:26:56>>573の言うとおり、使い方が間違っている可能性もあるのでそれも含めつつ。
ダメなら即効白旗揚げて、対策考えてもらいます。
ありがとうございました。
0575デフォルトの名無しさん
2010/03/27(土) 23:29:24どんだけ時間かかると思ってんだよ。
0576デフォルトの名無しさん
2010/03/27(土) 23:31:33当該アプリで伸張できるのは、当該アプリで圧縮したものだけ
という仕様でよければ、自分で実装するのも然程困難ではない
0577デフォルトの名無しさん
2010/03/27(土) 23:36:100578デフォルトの名無しさん
2010/03/27(土) 23:38:24バグだらけの糞自作ライブラリなんかそれこそ怖くて使いたくないわ
0579デフォルトの名無しさん
2010/03/27(土) 23:38:58あれ、レポートされてたっけ。
また今度じっくり向きあってみます。
自分が組み上げたコードじゃなく引き継いだものなので、
どこがどーなってるかさっぱりなんですがねw
0580デフォルトの名無しさん
2010/03/27(土) 23:40:47自分で実装する場合の話ね
0581デフォルトの名無しさん
2010/03/27(土) 23:42:50きちっと筋道建てて論破できない時点で、そいつも同罪。
0582デフォルトの名無しさん
2010/03/27(土) 23:42:56作るのは簡単だが、世間並の圧縮率にするのと、バグがほとんどないと思えるレベルの安定性にするのが大変
0583デフォルトの名無しさん
2010/03/28(日) 02:44:06黙って実装しても問題にならないの?
0584デフォルトの名無しさん
2010/03/28(日) 03:13:13実データはDeflateStreamで済むしヘッダだけ実装すればいいだけだよ
0585デフォルトの名無しさん
2010/03/28(日) 03:22:29http://www.microsoft.com/japan/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx
商用アプリに利用して一緒にバイナリを配布してもOK。詳しくはライセンス原文を参照してくれ。
0586デフォルトの名無しさん
2010/03/28(日) 04:28:120587デフォルトの名無しさん
2010/03/28(日) 04:29:33隠したくても隠せないしねw
0588デフォルトの名無しさん
2010/03/28(日) 04:40:44ライセンスで認められた範囲で堂々と使うといい。
0589デフォルトの名無しさん
2010/03/28(日) 05:17:35ここがよくわからないんだけど、結局配布する場合どうすればいいの?
0590デフォルトの名無しさん
2010/03/28(日) 09:51:03今はこっち
>本ソフトウェアに含まれるすべての著作権…の表示を維持する必要があります。
だから元々そういう表示が含まれている場合は消すなってことだろう
0591デフォルトの名無しさん
2010/03/28(日) 10:23:35隠す方法はいろいろある。ネイティブにもできる。
0592デフォルトの名無しさん
2010/03/28(日) 10:36:10C#で使えるコントロールのライブラリってないでしょうか?
・ゲージやメーター
・Officeっぽい、Vistaっぽいコントロールのスキン表示
・スキン機能
こんな機能があるライブラリがあれば名前だけでもいいので教えてください。
商用ではいくらでもあるのですがライセンス料が高すぎるのでできればオープンソース
のライブラリを教えて頂ければと思います。
日本語・英語は問いませんが、日本語を使用しても問題のない方が望ましいです。
注文だらけですが、もし知っておられる方がいましたらお願いいたします。
0593デフォルトの名無しさん
2010/03/28(日) 10:36:580594デフォルトの名無しさん
2010/03/28(日) 11:02:22お願いします。
というか最初に言い忘れてました、ごめんなさい
0595デフォルトの名無しさん
2010/03/28(日) 11:06:230596デフォルトの名無しさん
2010/03/28(日) 11:17:50.NETのオープンソースが盛り上がりだしたのって最近MSがオープンソースに積極的になってからだからな
WPF使えば一瞬でできる報われないことをわざわざやる人もいないだろ
0597デフォルトの名無しさん
2010/03/28(日) 11:40:38フリーではライブラリはないか、または聞いたことがないぐらいマイナーということですね。
昔はいくつかあったみたいですが、今はすべて商用に変わっていてがっくりですorz
0598デフォルトの名無しさん
2010/03/28(日) 11:46:220599デフォルトの名無しさん
2010/03/28(日) 11:52:050600デフォルトの名無しさん
2010/03/28(日) 11:58:590601デフォルトの名無しさん
2010/03/28(日) 12:32:270602デフォルトの名無しさん
2010/03/28(日) 12:57:250603デフォルトの名無しさん
2010/03/28(日) 13:37:09IE6も10年前でみんな葬り去りたくてウズウズしてるんだから、2000も葬っていいわな。
0604デフォルトの名無しさん
2010/03/28(日) 13:40:24そのタイミングで俺的には終了だな。
0605デフォルトの名無しさん
2010/03/28(日) 14:25:57切っちゃっていいでしょっていうか切っていこうよ。.netなら尚更
0606デフォルトの名無しさん
2010/03/28(日) 14:29:06すごい勇気だなぁ、って思いますよw
0607デフォルトの名無しさん
2010/03/28(日) 14:36:27RoboFormとか、skinstudioかねぇ?
後者はDirectX用だからやや違うかもしれないけど。
他は皆がレスしてるようにWPF自体がスキン機能そのものの(機能とデザインの分離)だから
それを使うのが一番の王道だな。
0608デフォルトの名無しさん
2010/03/28(日) 14:36:450609デフォルトの名無しさん
2010/03/28(日) 14:40:42SPREAD for .NET Windows Forms Edition
AppStylist for Windows Forms
ぐぐったら色々あるみたいね。もちろん、みんな商用プロダクトだが。
0610デフォルトの名無しさん
2010/03/28(日) 14:41:33そんなに手間じゃないだろ
0611デフォルトの名無しさん
2010/03/28(日) 14:42:28一つやったら全部やらないと空気読めてない感じになる
0612デフォルトの名無しさん
2010/03/28(日) 14:42:380613デフォルトの名無しさん
2010/03/28(日) 14:52:17http://weys.codeplex.com/
UIのカスタマイズと言うよりか、Windows Media Playerのスキンっぽい感じだな。
0614デフォルトの名無しさん
2010/03/28(日) 16:00:47私が今開発しているのはとあるゲームなのですが、それがWin2000以降に対応していたもので
Win2000ユーザーを切り捨てるのもどうかと考えてたのです。
数年前ならコントロールのライブラリも意味があったかもしれませんが、今ではWPFが一番
いいみたいですね。
WPF検討してみます。
しかし、日本語だと書籍はないですね...
いろいろとありがとうございました。
0615デフォルトの名無しさん
2010/03/28(日) 16:18:49まあゲームなら問題ないな
0616デフォルトの名無しさん
2010/03/28(日) 16:35:08(1) int[] table = {01, 0, 120, 270};
(2) int[] table = {02, 0, 180, 90};
と2種類の値を入れたいとします。
(1)の場合の条件と、(2)の場合の条件が違う場合、
if(条件) int[] table = {01, 0, 120, 270};
else if (条件) int[] table = {02, 0, 180, 90};
//以下tableを使った処理。
とすると、処理をするところで、
tableがないとエラーになります。
int[] table;
if(条件) table = {01, 0, 120, 270};
else if (条件) table = {02, 0, 180, 90};
//以下tableを使った処理。
とすると、この書き方ではだめだと、大量にエラーになります。
配列の書き方という基本的なことなのですが、書けずに悩んでいます。
アドバイスお願いします。
0617デフォルトの名無しさん
2010/03/28(日) 16:37:17ちょっとそれ詳しくお願いします。
要求スペックが高いから古いマシンでは駄目
XP SP3以降じゃないと駄目
という意味ですか?
0618デフォルトの名無しさん
2010/03/28(日) 16:37:19そりゃあ、その2箇所を通過してしまうような条件が残ってるからだ。
当たり前のことじゃないか。
0619デフォルトの名無しさん
2010/03/28(日) 16:37:580620デフォルトの名無しさん
2010/03/28(日) 16:38:26これはifの前に宣言だけして
table = new int[]{02, 0, 180, 90};
とかでできない?
0621デフォルトの名無しさん
2010/03/28(日) 16:41:40前者
どんな環境でも動くことは動くけどバリバリのDirect3Dで描画されてるから
ハードウェアアクセラレーションが十分に効かない環境では厳しい
0622デフォルトの名無しさん
2010/03/28(日) 16:44:30これで一応エラーでないけどコメントの箇所何かいれないと何も設定されない条件ができないか?
http://ideone.com/JFPMtwVZ
0623デフォルトの名無しさん
2010/03/28(日) 16:44:41int[] table = null;
にするか
if()
〜〜
else
〜〜
とするか
お好きなのをどうぞ
0624デフォルトの名無しさん
2010/03/28(日) 16:46:13回答ありがとうございます。
なるほど、やはりそのような理由ですか。
了解しました。
スレチなのでWPFのことは別スレで聞いてみたいと思います。
みなさん、いろいろとありがとうございました。
0625デフォルトの名無しさん
2010/03/28(日) 16:47:21new int[]でできました。
ありがとうございました。
これをつけるのとつけないのとでは、どう意味が違うんですか?
0626デフォルトの名無しさん
2010/03/28(日) 16:50:23いろいろ短縮したのが
table = new int[]{01, 0, 120, 270};
これね
長くかくと
table = new int[4];
int[0] = 01;
int[1] = 0;
int[2] = 120;
int[3] = 270;
こうなる
0627デフォルトの名無しさん
2010/03/28(日) 16:50:50アホか。エラーメッセージに全部書いてあるだろ。
0628デフォルトの名無しさん
2010/03/28(日) 16:53:15間違えた
table = new int[4];
table[0] = 1;
table[1] = 0;
table[2] = 120;
table[3] = 270;
0629デフォルトの名無しさん
2010/03/28(日) 16:57:27こうやって書くメリット?は
table = new int[4];
table[0] = 1;
table[1] = 0;
table[2] = 120;
table[3] = 270;
この配列に
table[4] = 100;
とか増やしたい場合は
table = new int[4];
これを
table = new int[5];
としないといけないけど
table = new int[]{01, 0, 120, 270,100};
こうするだけで{}で囲った中の要素分だけ勝手に配列を確保してくれる。
数を知りたければ配列の場合.Lengthでわかるはず
0630デフォルトの名無しさん
2010/03/28(日) 17:05:07こっちはまだわかりやすいね
訳が適当だとどうにでも解釈できるよな
0631デフォルトの名無しさん
2010/03/28(日) 17:11:45普通にこれだけでいける
table=new []{0,1,2,3,4}
0632デフォルトの名無しさん
2010/03/28(日) 21:49:36アホか。
0633デフォルトの名無しさん
2010/03/28(日) 23:50:290634デフォルトの名無しさん
2010/03/28(日) 23:51:52もうちょい先だろ
0635デフォルトの名無しさん
2010/03/28(日) 23:53:00配列とか扱うのはメモリ効率悪いwww
0636デフォルトの名無しさん
2010/03/29(月) 00:08:060637デフォルトの名無しさん
2010/03/29(月) 00:13:420638デフォルトの名無しさん
2010/03/29(月) 00:28:060639デフォルトの名無しさん
2010/03/29(月) 00:34:170640デフォルトの名無しさん
2010/03/29(月) 03:59:41簡単なコードでは実感できないような修飾子なのでしょうか。
0641デフォルトの名無しさん
2010/03/29(月) 06:16:010642デフォルトの名無しさん
2010/03/29(月) 06:19:560643デフォルトの名無しさん
2010/03/29(月) 06:39:07ビルドしたらなんとか.exe.configとかいう名前で生成されるやつ。
自分で用意してるから使わないんだけど、生成させないようにするのはどうするの?
0644デフォルトの名無しさん
2010/03/29(月) 06:47:400645デフォルトの名無しさん
2010/03/29(月) 06:51:00おー、サンクス。さっそく除外しとこう。
0646デフォルトの名無しさん
2010/03/29(月) 09:13:16Listとどう違うの?
リスト構造だとインデクサ[]は使えるとしてもアクセス効率
が悪いと思うけど
0647デフォルトの名無しさん
2010/03/29(月) 09:18:19いや配列
配列の容量あふれると別の容量大きめの配列作ってコピーするから時々追加にO(n)かかる
ArrayListはList<object>だった気がするなぁ〜
使わないから覚えてない…
0648デフォルトの名無しさん
2010/03/29(月) 09:20:00ListとArrayListの中身は配列
>ArrayList は、null 参照 (Visual Basic では Nothing) を有効な値として受け取り、要素の重複を許可します。
>Count が既に Capacity に等しい場合には、内部配列を自動的に再割り当てすることにより ArrayList の容量が増加し、新しい要素を追加する前に既存の要素は新しい配列にコピーされます。
>Count が Capacity より小さい場合、このメソッドは O(1) 操作になります。新しい要素を格納するために容量を増やす必要がある場合、このメソッドは O(n) 操作になります。ここで、n は Count です。
0649デフォルトの名無しさん
2010/03/29(月) 09:21:07Silverlightでは切り捨てられた。
0650デフォルトの名無しさん
2010/03/29(月) 10:13:51C#の参考書を見ると、Windows GUIが簡単にできそう。
MFCを整理してより使い易くしているかんじ。
C++のMFCを勉強してきたけど、きっぱりとあきらめて
C#で作り直した方が早いと思う。
0651デフォルトの名無しさん
2010/03/29(月) 10:47:410652デフォルトの名無しさん
2010/03/29(月) 10:54:340653デフォルトの名無しさん
2010/03/29(月) 10:58:070654デフォルトの名無しさん
2010/03/29(月) 11:01:25MFCを使ってる人がまだいたことに驚いた
0655デフォルトの名無しさん
2010/03/29(月) 11:05:19.NETではインデックスでアクセスできるものをlistと呼ぶ
LinkedListもListと付いてるけどIListを実装してない
0656デフォルトの名無しさん
2010/03/29(月) 12:24:01xamlでは、
<Window Height="400" Width="400">
と指定します。
FormのC#では、
this.ClientSize = new System.Drawing.Size(1173, 861);
のようにできます。
WPFのC#の場合がわかりません。
Windowssize = new System.Drawing.Size(1173, 861);
としてみたところ、System.Windows.Window.Windowsizeはアクセスできない保護レベルになっています、
と表示されています。
どこで保護レベルを変更すればよいでしょう?
よろしくお願いします。
0657デフォルトの名無しさん
2010/03/29(月) 12:25:000658デフォルトの名無しさん
2010/03/29(月) 12:26:55this.Height = 861;
これだけ
それとWPFでSystem.Drawingは使うな
0659デフォルトの名無しさん
2010/03/29(月) 12:27:07やりたいことはウィンドウサイズの変更なので、
ウィンドウサイズを変更できればよいです。
0660デフォルトの名無しさん
2010/03/29(月) 12:29:59ありがとうございました。できました。感謝です。
0661デフォルトの名無しさん
2010/03/29(月) 17:27:28また俺が回答してやるよ
どーんとこい!
0662デフォルトの名無しさん
2010/03/29(月) 18:34:080663デフォルトの名無しさん
2010/03/29(月) 18:40:040664デフォルトの名無しさん
2010/03/29(月) 19:08:57俺がやったよ
0665デフォルトの名無しさん
2010/03/29(月) 20:47:38現在、C言語で書かれたDLLが提供する関数を
C#から呼び出そうとしています。
悩んでるが、「引数に構造体の配列を持つ関数」の処理です。
下記URLにソースコードを張りました
http://codepad.org/SnH7gdwI
上でいう所のC側の「//<- ここで落ちる」というコメントのある所で不正アクセスで落ちてしまいます。
(stSample[0]に値が入ってるのは確認できました)
C#側の構造体の渡し方がおかしいとかなと思ってるのですが、
どこがおかしいのか分からず・・・。
ご存知の方いましたら、教えて下さい。
0666デフォルトの名無しさん
2010/03/29(月) 20:52:16public byte cCount;
public fixed byte strBuff[256];
}
こうじゃね
0667デフォルトの名無しさん
2010/03/29(月) 21:18:540668デフォルトの名無しさん
2010/03/29(月) 21:35:23マルチスレッドを利用したプログラムがあります。
このスレッドのうち1本で、ローカルファイルにデータを出力する処理があり、そのファイル名を
ファイル選択ダイアログ(System.Widows.Forms.SaveFileDialog)を利用して求めることにしたいと思います。
実際にプログラムを組んで実行すると、ShowDialog() を実行する箇所でエラー終了します。
メッセージボックスに表示されるエラーの内容は以下の通りです。
>OLE が呼び出される前に、現在のスレッドが Single Thread Apartment (STA) モードに設定されていなければなりません。
main 関数には STAThread の設定もしてあります。(元からついているようですが)
同じプログラムで、main 関数を実行したスレッド(以下、メインスレッドと記述します)でダイアログを表示すると正常に使用できます。
また、メインスレッドで開けばいいのかと、メインスレッドで表示しているフォームに Invoke を掛けて
ダイアログを表示すると正常に使用‥‥出来るのですが、このフォームは最小化&非表示にしているため
この状態でダイアログを表示しようとしても画面には出てきません。
メインスレッド以外からファイル選択ダイアログを正常に開く方法はないでしょうか。
0669デフォルトの名無しさん
2010/03/29(月) 21:44:030670デフォルトの名無しさん
2010/03/29(月) 21:45:430671デフォルトの名無しさん
2010/03/29(月) 21:49:180672デフォルトの名無しさん
2010/03/29(月) 21:50:380673デフォルトの名無しさん
2010/03/29(月) 21:50:490674デフォルトの名無しさん
2010/03/29(月) 21:52:26この3人にtaskkillしてあげてください
0675デフォルトの名無しさん
2010/03/29(月) 21:53:440676デフォルトの名無しさん
2010/03/29(月) 21:56:370677デフォルトの名無しさん
2010/03/29(月) 21:58:40何でtaskkillなんだよ
>ダイアログを表示すると正常に使用‥‥出来るのですが、このフォームは最小化&非表示にしているため
>この状態でダイアログを表示しようとしても画面には出てきません。
ダイアログで出ないとかいうからダイアログに見せかけたForm表示しろっていっただけ
オーナーとの関係で表示がされないだけだろ
0678デフォルトの名無しさん
2010/03/29(月) 21:59:11それともスレッドプールのスレッド?
自分で作ったスレッドなら、差し支えなければ自分でSTAに設定すればいい(Start前しかできないよ)
もしスレッドプールとかなら、これはMTAから変更することはできない。
汚いけど、必要な部分で自分でスレッド作って、STAに設定してメッセージボックス表示、
元のスレッドでは新しいスレッドを勝ち合わせとかするしかないと思う。
最初からUIスレッドにIncvokeする方が無駄はないけど。
0679デフォルトの名無しさん
2010/03/29(月) 22:01:420680デフォルトの名無しさん
2010/03/29(月) 22:02:56未だにマルチスレッドとかよくわからないな
>>679も何のことやら
0681デフォルトの名無しさん
2010/03/29(月) 22:05:410682デフォルトの名無しさん
2010/03/29(月) 22:09:36それ絶版じゃなかったっけ。
0683デフォルトの名無しさん
2010/03/29(月) 22:10:410684デフォルトの名無しさん
2010/03/29(月) 22:11:22VC++でATL使ってIEコンポーネント触ったときにちょっとかじった程度だな
ナビゲーション関連がこの辺を理解してないとメッセージが来ないとかなんとか
0685デフォルトの名無しさん
2010/03/29(月) 22:24:310686668
2010/03/29(月) 22:26:02てか、はやっ。w
>>670
無知ですみません。
ダイアログに見せかけたフォームというのは、Form を継承したファイル選択ダイアログの
ようなフォームクラスを自分で作る、と言うことでしょうか。
だとすると、今回は遠慮できたらいいかな、と。すみません。
>>671
いまの状況からは少し難しく。すみません。
>>678
System.Threading.Thread を利用して自分で作ったスレッドです。
やっとエラーメッセージの意味がわかりました。
あれは必ずしも main 関数でやれってことではなくて、ダイアログを操作するスレッドに
STA を設定しろってことなんですね。
>>672 や >>673 さんの仰ってる方法で出来ると理解しました。明日、確認します。
>>669,676
自分も UI スレッド(この言葉を忘れていました)以外で UI の操作を行うのには抵抗があったのですが。
‥‥気をつけておきます。
0687デフォルトの名無しさん
2010/03/29(月) 22:27:30わかればよろしい
今後も精進しなさい
0688デフォルトの名無しさん
2010/03/29(月) 22:28:100689665
2010/03/29(月) 22:32:50レスサンクス。
バッファの取り方がまずいという事ですか。
今手元に環境がないので試せないですが、
明日試してみます。
良いサイトか何かあれば、いいんですが、
なかなか見つからず・・・orz
ちなみに、環境は
XP,VC# 2008Express
(書き忘れました)
0690デフォルトの名無しさん
2010/03/29(月) 22:37:590691665
2010/03/29(月) 22:42:37サンクス
それで、最初の構造体はアクセスできるけど(たまたま出来てるように見えてるだけ?)、
次の構造体にアクセスしようとしたら落ちると・・・。
0692デフォルトの名無しさん
2010/03/29(月) 22:46:49相談かこっちか忘れたけど以前同じようなdllを呼び出すアプリの相談で
httpでやり取りする形にしてみたら?ってのがあったな
0693デフォルトの名無しさん
2010/03/29(月) 22:52:56よく見たらST_SAMPLE**だったのか
C#側の引数の型をIntPtr[]にしてそれぞれポインタの参照先に
ST_SAMPLEDLL一つ分のメモリを割り当てておかないと
0694デフォルトの名無しさん
2010/03/29(月) 22:53:470695665
2010/03/29(月) 22:58:22時間がたっぷりあって、許されるなら、DLLをC++か何かで
書き換えたいところですが、そうもいかず・・・。
このインターフェースは我慢するしかないですね。
>>693
です。ダブルポインタです。
そこなのですが
http://codepad.org/SnH7gdwI
このサイトに張ったソースの37行目でDLLに渡すメモリの実態自体は用意しているので、
大丈夫かと思ってたのですが、それとは別に確保するという事ですか?
あと、宣言は、こっちの方がいいってことですね。
[System.Runtime.InteropServices.DllImport("MY_Dll.dll", EntryPoint = "test")]
unsafe public static extern int test_call( IntPtr[] pstList);
0696デフォルトの名無しさん
2010/03/29(月) 23:00:44Cでは、基本的に配列はメモリ上に整列するし。
0697デフォルトの名無しさん
2010/03/29(月) 23:04:37しかもC側でポインタの参照先にアクセスしてるから予めそれぞれ実体を割り当てとかないと
0698デフォルトの名無しさん
2010/03/29(月) 23:11:520699デフォルトの名無しさん
2010/03/29(月) 23:12:03私もそう思ってて、そこではまってます。。
>>697
>しかもC側でポインタの参照先にアクセスしてるから予めそれぞれ実体を割り当てとかないと
そこなのですが、
testPtr1 = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(ST_SAMPLEDLL)) * (int)10);
これで、領域を確保して、
次に
test_call(testPtr1);
渡してるので、少なくとも構造体ST_SAMPLEDLLを10個分はメモリとして
確保してると思ってますが、この処理のほかに必要とうい事でしょうか?
その後、取れたのをMarshal.PtrToStructure()で取り出す処理になってます。
0700デフォルトの名無しさん
2010/03/29(月) 23:15:270701デフォルトの名無しさん
2010/03/29(月) 23:21:09並んでるのは実体じゃなくてポインタで,それぞれのポインタがどこか別の場所にある実体を参照してる。
IntPtr[] testPtr1 = new IntPtr[10];
for (int i = 0; i < 10; i++) { testPtr1[i] = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(ST_SAMPLEDLL))); }
test_call(testPtr1);
こうする。
取り出すときはそれぞれの要素に対してMarshal.PtrToStructureを呼べばおk
0702デフォルトの名無しさん
2010/03/29(月) 23:27:480703デフォルトの名無しさん
2010/03/29(月) 23:29:37なんといいますか・・・。
頭が下がるばかりです。
なるほど、納得しました。
0704デフォルトの名無しさん
2010/03/29(月) 23:32:31x⇒x*2;
みたいな感じではなかったのあれ
1バイト文字に⇒がなかったから代用みたいな
よくしらんけど
0705デフォルトの名無しさん
2010/03/29(月) 23:35:16using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, Pack=4)]
public struct ST_SAMPLEDLL
{
public byte cCount;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
public byte[] strBuff;
}
class Hoge
{
[DllImport("u.dll", EntryPoint = "test", CallingConvention=CallingConvention.Cdecl)]
unsafe public static extern int test_call([MarshalAs(UnmanagedType.LPArray), In, Out] IntPtr[] pstList);
static void Main()
{
IntPtr[] stSample = new IntPtr[10];
for (int i = 0; i < stSample.Length; ++i)
{
stSample[i] = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(ST_SAMPLEDLL)));
}
// DLL呼び出し
test_call(stSample);
ST_SAMPLEDLL[] st = new ST_SAMPLEDLL[10];
for (int i = 0; i < st.Length; ++i)
{
st[i] = (ST_SAMPLEDLL)Marshal.PtrToStructure(stSample[i], typeof(ST_SAMPLEDLL));
Marshal.FreeCoTaskMem(stSample[i]);
}
Console.WriteLine((int)st[0].cCount + " " + (int)st[0].strBuff[0]);
Console.WriteLine((int)st[1].cCount + " " + (int)st[1].strBuff[0]);
}}
0706デフォルトの名無しさん
2010/03/29(月) 23:40:060707デフォルトの名無しさん
2010/03/29(月) 23:40:19なんていうか・・・俺って頭の回転速いから自然と先越しちゃうんだよ。(笑)
肩を並べる奴は誰も現れないって感じだ。(笑)
0708デフォルトの名無しさん
2010/03/29(月) 23:41:32おい
俺のフリをするな
0709デフォルトの名無しさん
2010/03/29(月) 23:42:58http://codepad.org/SnH7gdwI で__stdcallが指定されていないから。
まさかコンパイルオプションでstdcallを指定しているなんてオチがあるわけないと思ってCDeclと仮定した。
0710701■Agei32s4
2010/03/29(月) 23:44:050711デフォルトの名無しさん
2010/03/29(月) 23:44:350712665
2010/03/29(月) 23:55:44>>709
具体例、サンクス!
少し話しが出たので、質問なのですが、
DLL側で__stdcallが指定されていた場合、話しは違ってくるのでしょうか?
0713デフォルトの名無しさん
2010/03/29(月) 23:59:110714デフォルトの名無しさん
2010/03/30(火) 00:01:180715デフォルトの名無しさん
2010/03/30(火) 00:02:310716デフォルトの名無しさん
2010/03/30(火) 00:03:150717デフォルトの名無しさん
2010/03/30(火) 00:06:56ネットワーク越しにwebAPI呼び出してxmlなどのテキストで回答を許容できる時代なんだから
スタンドアロンでやっても問題ないだろ
そうすればGUIだけC#で書いて古いDLLは常駐してhttpをリスナーする小さいプログラム書けば
いいのでVC++の無料でも余裕で開発できる
0718デフォルトの名無しさん
2010/03/30(火) 00:07:420719デフォルトの名無しさん
2010/03/30(火) 00:08:00実は、会社の帰り際に「WINAPIは__stdcallで宣言するのが標準」という記事を見つけたので、
淡い期待を抱きながら、「明日試そう・・・」と思っていたところでした。
スタックの開放タイミングの違いとうい事ですか(う〜ん汗)
0720デフォルトの名無しさん
2010/03/30(火) 00:12:450721デフォルトの名無しさん
2010/03/30(火) 00:16:050722デフォルトの名無しさん
2010/03/30(火) 07:25:470723665
2010/03/30(火) 11:56:25無事、思うような動作が出来ました!
(感謝感謝)
私の後ろの初めてを捧げたいぐらいの感動です。
ここの所、ず〜っとこれで悪戦苦闘してましたので・・・。
有難う御座いました。
0724デフォルトの名無しさん
2010/03/30(火) 11:57:01表示させたくない場合はどうすればいいですか?
0725デフォルトの名無しさん
2010/03/30(火) 11:59:17よしではいくぞ
>>724
無理じゃね?
クラスライブラリで分離しておくとかすれば可能かな・・・
0726デフォルトの名無しさん
2010/03/30(火) 12:34:162番目をくれ
0728デフォルトの名無しさん
2010/03/30(火) 12:57:39あたりまえだろ。女なんて嫌だ
0729デフォルトの名無しさん
2010/03/30(火) 12:58:12マジな返答くるとは思わなかった
ばっちこーいのAAでも貼ってくるかと期待したのに
0730デフォルトの名無しさん
2010/03/30(火) 13:05:19それらしい属性探して、無ければ諦めれ
0731665
2010/03/30(火) 13:25:07変態ばっかりだったとは・・・。
0732デフォルトの名無しさん
2010/03/30(火) 13:30:280733デフォルトの名無しさん
2010/03/30(火) 13:58:430734デフォルトの名無しさん
2010/03/30(火) 19:27:290735デフォルトの名無しさん
2010/03/30(火) 21:15:14AutoToolboxPopulate
というのがVSにはあるらしい
でも単独配布のEEにはないんだよな
0736デフォルトの名無しさん
2010/03/30(火) 21:18:19原点0で高さ64なら下の座標は63だとばかり思ってたよ…
0737デフォルトの名無しさん
2010/03/30(火) 21:26:56確認を怠るのが悪い。
0738デフォルトの名無しさん
2010/03/30(火) 21:43:10visual C# 2008を使ってGUIでグラフを表示させたいんですが、どうすればいいんでしょうか?
参考になりそうなサイトなどあれば教えてください。
0739デフォルトの名無しさん
2010/03/30(火) 21:52:02実用的なのはこれ
プログラミングの勉強で関数のグラフを自分で描いたりするんだったら C# paint でググる
0740デフォルトの名無しさん
2010/03/30(火) 22:04:27ありがとうございました。
自己解決しました。
0741デフォルトの名無しさん
2010/03/30(火) 22:32:240742デフォルトの名無しさん
2010/03/30(火) 22:34:130743デフォルトの名無しさん
2010/03/30(火) 22:39:040744デフォルトの名無しさん
2010/03/30(火) 22:40:03その上で動くプログラムを書けるのがVC#とかVB.netなど
0745デフォルトの名無しさん
2010/03/30(火) 22:52:420746デフォルトの名無しさん
2010/03/30(火) 22:53:150747デフォルトの名無しさん
2010/03/30(火) 22:53:590748デフォルトの名無しさん
2010/03/30(火) 22:56:240749デフォルトの名無しさん
2010/03/30(火) 23:00:46言語仕様に最低限必要なライブラリが書いてあるのでそれを一通り実装しさえすれば
C#と名乗れる
0750デフォルトの名無しさん
2010/03/30(火) 23:09:540751デフォルトの名無しさん
2010/03/30(火) 23:10:140752デフォルトの名無しさん
2010/03/30(火) 23:19:030753デフォルトの名無しさん
2010/03/31(水) 00:00:070754デフォルトの名無しさん
2010/03/31(水) 00:12:050755デフォルトの名無しさん
2010/03/31(水) 02:39:38それとも、自動的に組み込んでくれる?
0756デフォルトの名無しさん
2010/03/31(水) 03:26:390757デフォルトの名無しさん
2010/03/31(水) 04:59:13.netその物と同じで相手側にも入ってないとだめかもね
0758デフォルトの名無しさん
2010/03/31(水) 06:15:460759デフォルトの名無しさん
2010/03/31(水) 07:36:45ライブラリの dll ファイルは
標準のアセンブリフォルダーの下か、
exe と同じフォルダーにあれば OK なんで
exe と同梱で配布すれば OK。
0760デフォルトの名無しさん
2010/03/31(水) 10:55:33using System
int Main(void){
System::Console::WriteLine("にちゃんねらー死ね");
}
0761デフォルトの名無しさん
2010/03/31(水) 11:23:17ここはニュー速のプログラミングスレじゃないですよ
0762デフォルトの名無しさん
2010/03/31(水) 11:28:370763デフォルトの名無しさん
2010/03/31(水) 11:37:00include <stdio.h>
using System;も必要ない
0764デフォルトの名無しさん
2010/03/31(水) 11:39:160765デフォルトの名無しさん
2010/03/31(水) 12:45:581枚でも40秒と3分の差があるんですけど、印刷の実行速度は
プリンタドライバも関係してくるんですか?
3分かかるのは9年前発売のプリンタで、40秒かかるのは
最近発売のプリンタですけど。
0766デフォルトの名無しさん
2010/03/31(水) 12:50:170767デフォルトの名無しさん
2010/03/31(水) 12:59:46なるほど。
ありがとうございます。
0768デフォルトの名無しさん
2010/03/31(水) 13:51:04これはプリンタのほうでプレビューってことだよな?
自分でプレビュー画面作るってわけでもなく
だとしたら>>766の通りだけどC#関係なくね?
0769デフォルトの名無しさん
2010/03/31(水) 14:16:030770デフォルトの名無しさん
2010/03/31(水) 14:28:59調べてみると Windowsフォームコントロールライブラリ という別プロジェクトでDLLを作成し、
それを介する方法しか発見できませんでした。
DLLを介する以外に方法があれば教えてください。
0771デフォルトの名無しさん
2010/03/31(水) 14:51:56ツールボックスのAutoToolboxPopulateをTrueにしてもダメかな?
0773765 ◆JdKMFRogo6
2010/03/31(水) 15:25:55C#で作ったプログラムで印刷プレビュー出すときのことです。
出るまでにそれだけ時間がかかるんですよ・・・
ここらへんでプリンタも買い替えないと・・・
0774デフォルトの名無しさん
2010/03/31(水) 15:28:410776デフォルトの名無しさん
2010/03/31(水) 16:12:56上記のコードがあるとします
14行目でリストの0番目のアイテムにGetTypeしてアイテムの型を取得していますが
BindingList<T>のインスタンスが生成された段階でアイテムの型は決まってるので
0番目のアイテムにアクセスしなくても取れるはずです
これの取り方を教えて頂きたいのです
あくまでもテスト用のコードなので「Tから取ればいいだろ」みたいな突っ込みはご容赦下さい
0777デフォルトの名無しさん
2010/03/31(水) 16:13:430778デフォルトの名無しさん
2010/03/31(水) 20:50:18listType.GetGenericArguments()[0]
0779デフォルトの名無しさん
2010/03/31(水) 23:00:29デバッグ用にその関数のパラメータの一覧をログなどに出力したいと考えます。
たとえばなのですが、
System.Diagnostics.StackFrame.GetMethod().GetParameters()
を利用すると、特定の関数のパラメータの一覧を得ることが出来ます。
ただ GetParameters() ではパラメータの型や変数名などの情報を取得することは出来ても
パラメータの値そのものは取得できないようです。当然と言えば当然なのですが。
これと同じような方法で、パラメータの値を取得する方法はないでしょうか。
なにをしたいのかというと、デバッグ用に特定の関数のパラメータの各値をログなどに
出力したいのですが、関数個別に "param1 = {0}", param1 などと書いていくのが手間なので、
関数のパラメータのすべての変数名とその値とを文字列にしてくれる関数を作れないものかと。
0780デフォルトの名無しさん
2010/03/31(水) 23:16:40お答え頂きありがとうございます
質問したかった事とコードが違ってる事に出勤してから気付きました
IBindingListの引数にclass BindingList : BindingList<string>{}のインスタンスを渡して
継承元の型パラメータを取得したいのでした
悩んでる最中は思い至らなかったのですが、単にType.BaseType.GetGenericArguments()すればいいだけでした
下らない質問してすみません
0781デフォルトの名無しさん
2010/03/31(水) 23:19:01無理
0782デフォルトの名無しさん
2010/03/31(水) 23:40:12型名でいいなら
public void Trace(params object[] o)
{
foreach(object obj in o)
{
〜(o.GetType().Name);
〜(o.ToString);
}
}
でいけるとおもうよ〜は出力命令ね
0783デフォルトの名無しさん
2010/03/31(水) 23:40:35「コードファイル」を新規に作成し、コードの一部を作成したソースに移しました。
その後、フォームへコントロールを配置すると、移したはずの コントロール名_イベント名() が
元のソースに関数の中身が空の状態で生成されてしまうようになりました。
コントロールのプロパティ内でイベントの欄をダブルクリックした時以外は
コードが自動生成されないように設定する方法を教えてください。
0784デフォルトの名無しさん
2010/03/31(水) 23:45:550785783
2010/03/31(水) 23:55:44設定がないということは、フォームのコードを複数ソースに分けることをやらない方がいいということでしょうか?
それとも「コードファイル」を作成する以外の方法で別のソースを作成すべきなのでしょうか?
0786デフォルトの名無しさん
2010/03/31(水) 23:58:30> 設定がないということは、フォームのコードを複数ソースに分けることをやらない方がいいということでしょうか?
うん。
0788デフォルトの名無しさん
2010/04/01(木) 00:14:00うん。
0789デフォルトの名無しさん
2010/04/01(木) 00:14:02となっているURLの○○○を抽出するにはどうすればいいでしょうか?
正規表現を使ってみたのですが、うまく抽出されません。
例になるコードとかありませんか?
0791デフォルトの名無しさん
2010/04/01(木) 00:19:40URIクラスとかじゃねーの?
0792デフォルトの名無しさん
2010/04/01(木) 00:22:580793デフォルトの名無しさん
2010/04/01(木) 00:26:07'/'のSplitで[2]でしょ
0794デフォルトの名無しさん
2010/04/01(木) 00:29:170795デフォルトの名無しさん
2010/04/01(木) 00:39:09のようなURLの場合に○○を取得したい場合はどうすればいいでしょうか?
さすがにこれはURIクラスでは処理しきれないと思うんですが
0796デフォルトの名無しさん
2010/04/01(木) 00:43:170797デフォルトの名無しさん
2010/04/01(木) 00:47:17System.Web.HttpUtility.ParseQueryString(string query, System.Text.Encoding encoding)
0798デフォルトの名無しさん
2010/04/01(木) 00:51:19'='のSplitで[1]
0799デフォルトの名無しさん
2010/04/01(木) 00:55:35今までは正規表現でどうにかしようとしてましたがいろいろやり方があることが分かりました。
もうちょっと頑張ってみます。
0800デフォルトの名無しさん
2010/04/01(木) 01:00:14みなさん?全部俺の回答なんだけどw
0801デフォルトの名無しさん
2010/04/01(木) 01:01:480802デフォルトの名無しさん
2010/04/01(木) 01:02:520803デフォルトの名無しさん
2010/04/01(木) 01:03:410804デフォルトの名無しさん
2010/04/01(木) 01:05:510805デフォルトの名無しさん
2010/04/01(木) 01:07:380806デフォルトの名無しさん
2010/04/01(木) 01:08:43人を怒らせるような行為はいただけないな。
0807デフォルトの名無しさん
2010/04/01(木) 01:09:050808デフォルトの名無しさん
2010/04/01(木) 01:47:08正規表現でも別にそう難しくはない気もしますが、まあ、
一番楽で素直で間違いのなさそうな方法を選ぶのが良いね。
0809デフォルトの名無しさん
2010/04/01(木) 02:07:49上の評価はtrueになるんだけどさぁ
それを踏まえてMSDNを見ると
http://msdn.microsoft.com/ja-jp/library/system.type.getgenerictypedefinition%28VS.80%29.aspx
>2 つの構築型が同じジェネリック型定義から同じ型引数を使って作成された場合
>GetGenericTypeDefinition メソッドは両方の型に対して同じ Type オブジェクトを返します。
なんかこの説明おかしくね
この場合「違う型引数を指定して作成された場合でも」になるべきじゃね
同じのは同じなんだから当ったり前だろうそんなの
GetGenericTypeDefinition呼ぶまでもない
と思ったけど英語版もsame type argumentsなんだよなあ
なんでだ
0810デフォルトの名無しさん
2010/04/01(木) 06:33:160811デフォルトの名無しさん
2010/04/01(木) 15:58:00既存の項目で追加とすると、その汎用クラスの変更がそのプロジェクトでしか行われない
汎用クラスの変更がすべての利用しているプロジェクトで反映される方法などありますか?
もしくは他に方法はありますでしょうか?
0812デフォルトの名無しさん
2010/04/01(木) 16:26:28既存の項目として追加するときに出てくるダイアログで、追加ボタンの隣にある三角ボタンを押してリンクとして追加すればいいじゃない。
0813デフォルトの名無しさん
2010/04/01(木) 18:07:35ありがとう
0814デフォルトの名無しさん
2010/04/01(木) 19:34:310815デフォルトの名無しさん
2010/04/01(木) 19:37:400816デフォルトの名無しさん
2010/04/01(木) 20:13:14これだとlistviewitemと認識しないぞM$
0817デフォルトの名無しさん
2010/04/01(木) 20:18:030818デフォルトの名無しさん
2010/04/01(木) 21:54:16なんなのこれは?
まったく使い物にならん
シネ
0819デフォルトの名無しさん
2010/04/01(木) 22:12:440820デフォルトの名無しさん
2010/04/01(木) 22:20:21デザイナーからは設定できないぞ
>>816
varって糞VBじゃねーんだからちゃんと型つけろがボケ
http://ideone.com/jwBy2dbY
.netはいたるところで型が何か分かるようになってるぞボケ
>>818
publicじゃない要素があるとうまく動かん
c# XmlSerializerでぐぐってサンプルみてこい
public classだし中身もpublic付き
0821デフォルトの名無しさん
2010/04/01(木) 22:25:14>.netはいたるところで型が何か分かる
それは>>816の問題に関しては間違ってる。
foreach (ListViewItem item in listView1.Items)は
foreach (object _item in listView1.Items) { ListViewItem item = (ListViewItem)_item; と等価。
だからitemの型がListViewItemでなくてもコンパイルエラーにはならない。実行時エラーが出る。
ジェネリックが無かったころの名残の糖衣構文だ。
0822デフォルトの名無しさん
2010/04/01(木) 22:37:29糖衣構文だとか昔は〜とか言われてもよくわからんけど
現在はこう表示されるんだからそれでええんとちゃうの?
http://uproda.2ch-library.com/231844RNf/lib231844.png
0823デフォルトの名無しさん
2010/04/01(木) 22:46:18それ今も昔もListViewItemCollectionに普通にインデクサが定義されてるだけ。
ListViewItemCollection.GetEnumeratorがIEnumerator(非ジェネリック)を返すので
foreachを使うと要素がobject型扱いになる。だから>>816はvarの自然な挙動。
0824デフォルトの名無しさん
2010/04/01(木) 22:48:34この場合インデクサは関係ないだろ
関係あんのはEnumeratorの方
0825デフォルトの名無しさん
2010/04/01(木) 23:29:26function getValue(Form,Target){
var value = document.getElementById(Form).value; // 変数Form名のIDのフォームの値をvalueに代入
value = window.prompt("文字を入力",value); // 入力フォームを表示。valueを入力プロンプトに渡す。(上の行と1本かできるの事は気にしないで)
document.getElementById(Target).value = value; // 変数TargetのIDのフォームにvalueを代入
}
これをQtで書くとどういう感じになるのかな?
FormとTargetの値(参照元のフォーム名と代入先のフォーム名)が変化するんだけど。
あと、
document.getElementById(Form+'_name').value
みたいな表現ってできない?
C言語は、関数型とかあってわかりにくい・・・。
0826デフォルトの名無しさん
2010/04/01(木) 23:39:480827デフォルトの名無しさん
2010/04/02(金) 08:00:370828デフォルトの名無しさん
2010/04/02(金) 09:22:02バグか?
0829デフォルトの名無しさん
2010/04/02(金) 10:33:00delphi見たいにrichtextbox.line[i].text=・・・なんてもんはないんですかね
0830デフォルトの名無しさん
2010/04/02(金) 11:29:30改行コードでsplitした配列取得して、指定行の文字列を編集
で、それをStringJoinに改行コード指定してやっちゃうとか
0831デフォルトの名無しさん
2010/04/02(金) 11:31:04ちと確認してみる
0832デフォルトの名無しさん
2010/04/02(金) 11:32:10Lengthってことは配列?
0833デフォルトの名無しさん
2010/04/02(金) 11:32:200834デフォルトの名無しさん
2010/04/02(金) 11:44:31http://ideone.com/ojQnOhFF
0835デフォルトの名無しさん
2010/04/02(金) 11:48:500836デフォルトの名無しさん
2010/04/02(金) 11:49:49それは挙動で想像付くが、読み取り専用って書いてる段階か
実行時にエラーになるよな?
これはそれすらないぞw
0837デフォルトの名無しさん
2010/04/02(金) 11:53:350838デフォルトの名無しさん
2010/04/02(金) 11:54:220839デフォルトの名無しさん
2010/04/02(金) 12:19:36デフォルトのフォントの大きさが9なんだけど、ちょっと小さいから
デフォルトのフォントを大きさを変えたいんだけどどうやったらいい?
あとタイマーが一番最初にEnableがfalseになってるのとか変えたい
0840デフォルトの名無しさん
2010/04/02(金) 12:21:340841デフォルトの名無しさん
2010/04/02(金) 12:24:02フォームのフォントサイズを変更しておけばOK。
0842デフォルトの名無しさん
2010/04/02(金) 12:56:03諦めろ
つうか、タイマなんぞ切り替えるのは普通Pgからやんないか?
LoadとかShownでTrueにして
ClosingとかでStop→タイマの内部処理終了待ちして
0843829
2010/04/02(金) 12:59:41-----
あいう
あいうえお
あい
-----
ていうrichtextboxがあるとする。
これの2行目の文章(あいうえお)を変数に代入するにはどうすればいいのかわからないんです。
delphiならa:=Memo1.Line[1];(たしかこんな感じ)て感じで取得できたのですが・・・
0844デフォルトの名無しさん
2010/04/02(金) 13:05:200845デフォルトの名無しさん
2010/04/02(金) 13:08:00別に異常なほど文字が多いわけじゃない時こんな感じでやってた
private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Text = GetInsertedText(richTextBox1.Text, 1, "\r\n" + DateTime.Now.ToString());
}
private string GetInsertedText(string baseText, int index, string inserttext)
{
string[] temp = baseText.Split("\r\n".ToCharArray());
temp[index] += inserttext;
return string.Join("\r\n", temp);
}
0846デフォルトの名無しさん
2010/04/02(金) 13:09:25>>834見て無いのかよ
0847デフォルトの名無しさん
2010/04/02(金) 13:09:370848デフォルトの名無しさん
2010/04/02(金) 13:11:32読み取りすら理解してないのかよ・・・
0849デフォルトの名無しさん
2010/04/02(金) 13:14:370850デフォルトの名無しさん
2010/04/02(金) 13:17:11すいません見落としてました
これです!ありがとうございます
0851デフォルトの名無しさん
2010/04/02(金) 13:29:39List<>でもやってくれりゃあ部分編集もしやすかったのに
0852デフォルトの名無しさん
2010/04/02(金) 13:42:56部分的に書き換えられると整合性で困るとかそんな話の予感
TextBoxならできるんだしね…
0853デフォルトの名無しさん
2010/04/02(金) 14:44:48setterなんかCRLF挟んで連結したものをTextに設定しているだけだし
それにしても、プロパティの型が配列だったり、プロパティでコピーを返したり、
プロパティの中に必要以上の処理を入れていたりと無茶苦茶だなw
0854デフォルトの名無しさん
2010/04/02(金) 16:20:07デザイナやバインディングなどの都合
0855デフォルトの名無しさん
2010/04/03(土) 14:39:53組み込み型には使うなと教えられたんですがこれだけは気になったのでお願いします。
0856デフォルトの名無しさん
2010/04/03(土) 14:43:580857デフォルトの名無しさん
2010/04/03(土) 14:44:33ttp://tsushima.2ch.at/s/news2ch56039.png
ちなみに気になる型とか返り値の型とか知りたければ
標準の物なら大体こうやって確認できるよ
0858デフォルトの名無しさん
2010/04/03(土) 14:45:27カーソル消えてるけど
x.ToString();
のxの上でカーソル止めてるから
0860デフォルトの名無しさん
2010/04/03(土) 14:51:32というかc#で小数点をそのまま書くとdouble,
0.0Fという感じでFをつけるとfloat
0861デフォルトの名無しさん
2010/04/03(土) 14:53:24860の助言を参考にして、ついでにリテラルとその型の概念も把握しておこう。
0862デフォルトの名無しさん
2010/04/03(土) 14:55:24floatの方がdoubleよりも速度が遅くなると聞いたんだけど理由がさっぱりわからん
doubleの方が扱う桁数が大きいんだから遅くなるんじゃないのか?
0863デフォルトの名無しさん
2010/04/03(土) 14:57:43ならない。最近のCPUじゃ割り算以外の処理はどちらも1クロックで終わってしまい、
速度上の差は見られない事の方が多い。
0864デフォルトの名無しさん
2010/04/03(土) 14:59:56それはCPUによるよ
0865デフォルトの名無しさん
2010/04/03(土) 16:58:41もし直リンなどあれば教えてください
0866デフォルトの名無しさん
2010/04/03(土) 17:04:52それは『Parallel Extensions to .NET Framework June 2008 CTP』のことだろう?
Parallel Extensionsが.NET 4.0の機能になったことはMSの公式決定なんだから今更どうにもならんだろう。
ここには「Reactive Extensions を見よ」なんて書いてあるが。
http://blogs.msdn.com/pfxteam/archive/2008/06/02/8567802.aspx
仮にそんなコンパチライブラリがあったとしても、余計な混乱を招く結果にしかならないだろうよ。
0867デフォルトの名無しさん
2010/04/03(土) 18:13:26スマートにやる方法ないかな?
0868デフォルトの名無しさん
2010/04/03(土) 18:16:15名前空間の単位で整理して、
名前空間の単位でクラスモジュール化する。
0869デフォルトの名無しさん
2010/04/03(土) 18:23:170870デフォルトの名無しさん
2010/04/03(土) 18:28:49基本的に自己完結するようにクラスライブラリを書いていれば、
単にプロジェクトを分けて本体側で参照設定するだけで
そのまま動くようになってるんだから、
スマートにやる方法もないだろ。
上手くいかないなら設計が悪いだけ。
0871デフォルトの名無しさん
2010/04/03(土) 18:31:28int a;
string b = a.(メソッド);
みたいにやると、b に "a" って入るみたいな。
無理だと思うけど、C# だとちょっと期待してしまう。w
0872デフォルトの名無しさん
2010/04/03(土) 18:41:00変数の名前というのはプログラミングの都合上便宜的に与えるものに過ぎず、
実行時にはなくなってしまうものだ。
一方、デバッガで止めると表示してくれるが、あれはpdbファイルにその情報が記述されている。
0873デフォルトの名無しさん
2010/04/03(土) 18:42:43クラスになるとNameがあるけどあれもつけなくても内部管理的には問題ないから
おそらくハンドルみたいなので管理されてるんだと思うしなあ
intだとそのハンドルに相当するものくらいしかないんじゃね?
0874デフォルトの名無しさん
2010/04/03(土) 18:52:45プロジェクト作ってフォルダ作って元のソースを移動して
既存の項目としてプロジェクトに入れて・・・という
やり方しかないのかなあって話
あとクラスライブラリとして分離した場合デバック用とリリース用
を別途分けてリンクさせるような設定はないんだろうか?
C++だと普通にあったんだがC#の場合それっぽい項目が見当たらない
0875デフォルトの名無しさん
2010/04/03(土) 19:57:02>プロジェクト作ってフォルダ作って
それのどこに問題が?
むしろ異なるアセンブリのソースコードはフォルダ分けしておかないと不便だぞ。
>あとクラスライブラリ
同じソリューションでクラスライブラリとメインプログラムを管理しておけば、
ビルドモードの切替で勝手にクラスライブラリの切り替えもやってくれる。
0876デフォルトの名無しさん
2010/04/03(土) 20:00:45それ以上のどんなバカチョン機能があれば満足するんだろう。
まあ、ファイルの移動はプロジェクトエクスプローラで
ドラッグ&ドロップしてもできるよ。
あと、ソリューション内のプロジェクトの構成(Release/Debug)の連動は
構成マネージャで設定する。
0877デフォルトの名無しさん
2010/04/03(土) 20:04:24ああ、すまんEEで開発してたのでソリューションの下で複数プロジェクト作れるとは思ってなかった
0878デフォルトの名無しさん
2010/04/03(土) 20:06:10>>877でも書いたけど俺が想像してたのは
ソリューションA プロジェクトA
とあって
プロジェクトAの一部を
ソリューションB クラスライブラリB
として切り出すしかないと思ってたんだ
すまんすまん
0879デフォルトの名無しさん
2010/04/03(土) 20:11:250880871
2010/04/03(土) 20:40:35やっぱり無理なんだね。
0881デフォルトの名無しさん
2010/04/03(土) 22:00:04処理が一律1クロックなのは一部の大型機の話
パソコン用のCPUはそこまで単純じゃないし速くもない
キャッシュがヒットしたという前提で
intの足し算、引き算は0.33クロック、掛け算は0.5クロック、割り算は23クロックかかる
IEEE754形式の浮動小数点だと単精度でも倍精度でも時間は変わらなくて
加減算で1クロック、掛け算が2クロック、割り算が32クロック
0882デフォルトの名無しさん
2010/04/03(土) 23:55:24http://blogs.msdn.com/jmstall/pages/sample-pdb2xml.aspx
pdb2xmlのソースコードから学べるものがあると思うけど。
デバッガ作るわけでもなければそんな必要ない気がする。
0883デフォルトの名無しさん
2010/04/03(土) 23:55:44http://pc12.2ch.net/test/read.cgi/tech/1199424344/
float 使うヤツはドシロートかおぢさん
http://pc12.2ch.net/test/read.cgi/tech/1222048909/
0884デフォルトの名無しさん
2010/04/04(日) 06:01:22結局のところ大容量キャッシュと高クロック化でごまかしてるだけで
x86の本質はそれほど変わってないのか
0885デフォルトの名無しさん
2010/04/04(日) 06:56:580886デフォルトの名無しさん
2010/04/04(日) 10:11:33VS2003.NETのC#を使用してプログラムしています。
参照の追加でdllを読み込み、プロパティでローカルコピーをTrueにして、コンパイル。
この時に、EXEと同じフォルダにdllがコピーされるのですが、
コピーされる場所を変更できるのでしょうか?
EXEと同じフォルダ内に、DLLというフォルダを作成し、
コンパイル時にDLLフォルダにdllがコピーされてほしいのです。
よろしくお願いします。
0887デフォルトの名無しさん
2010/04/04(日) 10:16:490888デフォルトの名無しさん
2010/04/04(日) 10:21:08アプリケーション設定ファイルでアセンブリの読み込みフォルダを指定することができる。
ただし実行プログラムのサブフォルダのみ。
これはユーザーに配布するときの話で、
開発中はそういったことをやると却って話が面倒になるので
exeとdllを開発中にフォルダ分けしてしまうようなことは考え内容がいいと思うよ。
0889デフォルトの名無しさん
2010/04/04(日) 10:25:36考えないほうがいいと思うよ。
失礼。
0890デフォルトの名無しさん
2010/04/04(日) 11:30:53クロックを上げるのは、主にコスト面の問題で限界に来てしまったので
今はパイプラインの段数とコア数の増加とバス幅の拡張でごまかす方向になってきてる。
だから1命令が1/2クロックとか1/3クロックなんていう中途半端な時間で処理できてしまう。
あとは実行環境の64bit化でlong/ulongの計算が一気に速くなったぐらい。
0891デフォルトの名無しさん
2010/04/04(日) 11:33:140892デフォルトの名無しさん
2010/04/04(日) 11:33:460893デフォルトの名無しさん
2010/04/04(日) 11:36:560894デフォルトの名無しさん
2010/04/04(日) 11:39:17ィチュ::ミミ:.:三彡:.:: :.:.:ヽ
/::彡'':.: :.::/:.:{{.::r‐‐ ::_:.: :.:..、
,ィ /:.: /:..: ::{{:..川||::! ヾ::;;:、
,ィ:.: ::.: /:. :: 川:.:ヾ:.:.!{:: ヽ::!
///:.: :.:.:||ll: :.: .::.:.:ヾ::.::.i ':!
!:|:.:::ミ:: :.;;;川:.: :.:巛、ヾ::! 、 l
゙::ミミ h::. :;:.::||l|:.:: :.}}::!l {{ ヾ _,,...ィ r'' 、
゙::ミミ:.: ::.;:.:ミミヾ:.: :.:| ヾ、 '´ , マ
ヾ:: .:.:ミミ三 :.:州リリ _,,..rテ' ヽ
ヾ::;ィ'´ ̄`''ヾ州! ,. ヽ
゙レ '⌒r ィ ,;;. .. .:' ,rィ ’
ヽ し :.: .. 、 ヽ
,,ハ`ー- ..ィ _,.. ィ
ィ:::! \ ヽ. ィ{:::...
/:::::! \ ` - ..__ 丿::::::ヽ
/:::::::ヘ \ ` ーァ-一'::::.:::.:::.::.!ヽ
/:::::.:..:::::::::ヽ \ リ::. :::.:.:.:.:::.:.:.:.::::!:::.::!
轌山相太郎 [そりやまそうだろう]
(群馬.明治一九年〜昭和一七年)
0895デフォルトの名無しさん
2010/04/04(日) 11:50:18さんきゅー
0896デフォルトの名無しさん
2010/04/04(日) 13:37:360897デフォルトの名無しさん
2010/04/04(日) 13:38:440898デフォルトの名無しさん
2010/04/04(日) 13:39:47継続可能なところのエラー程度ならifで判断してもいいだろうけど
継続しても仕方ないようなところは例外でいくとか
0899デフォルトの名無しさん
2010/04/04(日) 13:58:19コールスタックの呼び出し階層から一気に抜け出したい場合は面倒だから
エラーを返さず例外処理で実装してしまう場合もあるよ。
他に、既に例外処理を書いていて、普通にエラーを返すより
エラー自体を例外処理にしてしまった方が楽に実装できる場合か。
そういったことでないなら、通常のエラーを返す実装にしておいた方がいい。
0900デフォルトの名無しさん
2010/04/04(日) 14:03:03俺はpublicメソッドでもなけりゃ自分で投げることは少ないなあ。
引数なんかは渡す前に確認するし。
0901デフォルトの名無しさん
2010/04/04(日) 14:05:51Assert入れてるから。
0902デフォルトの名無しさん
2010/04/04(日) 14:19:340903デフォルトの名無しさん
2010/04/05(月) 11:58:360904デフォルトの名無しさん
2010/04/05(月) 12:01:05ほとんどマイルールだもの
0905デフォルトの名無しさん
2010/04/05(月) 12:03:31ソフトの作りで例外でさくっと処理しちゃう場合もあるし
エラーコードとる場合もあるし
みなさんどうしてますかっていうよりこういうコードなんですがって
晒せる範囲でコードを見せてくれるといいんだけどな
質問の仕方の問題もあるな
0906デフォルトの名無しさん
2010/04/05(月) 12:33:12自分で使い切るのかでも変わってくるし
0907デフォルトの名無しさん
2010/04/05(月) 12:57:19要らん事にばっか口出すからなー。
0908デフォルトの名無しさん
2010/04/05(月) 13:04:44そのときの気分、テキトー
0909デフォルトの名無しさん
2010/04/05(月) 13:06:10なんか人減ってるしすぐ規制するしでw
0910デフォルトの名無しさん
2010/04/05(月) 13:09:170911デフォルトの名無しさん
2010/04/05(月) 13:09:42相談室の方も3日くらい放置状態だわ
0912デフォルトの名無しさん
2010/04/05(月) 13:10:330913デフォルトの名無しさん
2010/04/05(月) 13:33:21日本語でもいくらかある
自分でぐぐってると、そんな質問はありえないと思うんだけど
0914デフォルトの名無しさん
2010/04/05(月) 13:33:25如何せん名前のイメージが良くない…というか悪いんだよな
0915デフォルトの名無しさん
2010/04/05(月) 15:03:50ありがとう
>>913
いやあるにはあるんだが、なんていうかオンラインゲームの古参がいっぱい居るギルドに
入るようなちょっとやりにくさがあるんだよな・・・
その点2chは気軽っていうか
0916デフォルトの名無しさん
2010/04/05(月) 15:04:51Enterイベント・OnEnter・OnGotFocus 内でそれぞれ、
Select(0,Text.Length)・(Controls[1] as TextBox).SelectAll()・OnDoubleClick を
全ての組み合わせで試してみましたが、
フォーカスを得た時にテキストを全選択させることができません。
その他にしていることはTextAlignをRightにすることと、
配置先(元?)で、小数点5桁・変更幅0.001と設定しているのみです。
前述の機能を実装する方法を教えてください。
0917デフォルトの名無しさん
2010/04/05(月) 15:05:37テキストファイルの"大正、昭和、平成、"を読み込んで宣言するにはどうすればいいですか?
0918デフォルトの名無しさん
2010/04/05(月) 15:07:36fileIo関連でwindowsの改行 0x0d0x0aを0x0aにするにはどこいじってましたっけ?
0919デフォルトの名無しさん
2010/04/05(月) 15:21:29TextWriter.NewLine
0920デフォルトの名無しさん
2010/04/05(月) 15:24:02TextWriter.NewLine = "\n";
こんな感じでしたよね?
ありがとうございます。
0921デフォルトの名無しさん
2010/04/05(月) 15:59:43早速の回答ありがとうございました。
結構な手順を踏む必要があり、大変そうですね。
> exeとdllを開発中にフォルダ分けしてしまうようなことは考え内容がいいと思うよ。
なるほど、分かりました。
一通りの開発が完了し、配布する際に読み込み先を指定する事にします。
ありがとうございました。
0922デフォルトの名無しさん
2010/04/05(月) 21:09:42スクロールバーの表示設定を行う ScrollBars だったかがあったと思うのですが、
これで垂直スクロールバーを消すとマウスのスクロールボタン?による
スクロールを行えなくなります。
垂直スクロールバーを消していてもスクロールボタンによるスクロールを行えるようにすることは出来ませんか?
0923デフォルトの名無しさん
2010/04/05(月) 21:11:450924922
2010/04/05(月) 21:20:120925デフォルトの名無しさん
2010/04/05(月) 21:43:34DataGridViewでセルをコピーペーストでデータを移せるようにするにはどうしたらいいの?
できれば縦方向に複数のセルを同時に選択した状態で
コピペできるようになるといいんだけど。
0926デフォルトの名無しさん
2010/04/05(月) 21:57:42クリップボードからはシコシコ実装するしかありません
0927デフォルトの名無しさん
2010/04/06(火) 11:10:24WPFで、使わないテキストボックスを、テキストがからのときには表示しないようにしようと考えました。
if (textBox.Text == null || textBox.Text == "") textBox.Hide();
としたら、textBoxにはHideはないらしいんですけど、
こういう場合どうしたらよいでしょう?
0928デフォルトの名無しさん
2010/04/06(火) 11:13:150929デフォルトの名無しさん
2010/04/06(火) 11:16:19textBox1.Visibility = Visibility.Hidden;
textBox1.Visibility = Visibility.Collapsed;
上二つの違いは要素を表示しない上にレイアウト予約がどうのってあったな
マウスカーソルのせるとざっくりとした説明でたよ
textBox1.Visibility = Visibility.Visible;
0930デフォルトの名無しさん
2010/04/06(火) 12:34:44さすがふらっとC#。
できました。マウスで出ますね。
ありがとうございました。
0931デフォルトの名無しさん
2010/04/06(火) 13:47:13Form1にボタンをふたつ、Form2にブラウザを配置します。
public partial class Form1 : Form
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
form2.web("http://2ch.net");
}
private void button2_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
form2.web("http://asahi.com");
}
public partial class Form2 : Form
public void web(string URL)
{
webBrowser1.Navigate(URL);
}
は動くのですが、
0932デフォルトの名無しさん
2010/04/06(火) 13:50:32Form2 form2 = new Form2();
private void button1_Click(object sender, EventArgs e)
{
form2.Show();
form2.web("http://2ch.net");
}
private void button2_Click(object sender, EventArgs e)
{
form2.Show();
form2.web("http://asahi.com");
}
とすると、ボタン1を押してForm2を閉じて、ボタン2を押したときに、「ObjectDisposedExceptionはハンドルされませんでした。オブジェクト名Form2です」。
とエラーになります。
これを回避するのには、上のように書くしかないんですか?
0933デフォルトの名無しさん
2010/04/06(火) 13:53:58他の手段としては閉じるのをやめて表示を不可視にするとか考えられますが
閉じるのやめるならFormClosing拾って下さい
0934デフォルトの名無しさん
2010/04/06(火) 14:00:39>>931だとForm2が複数作れますけどそれでいいのかな?
Form2は一つしか必要ないなら>>932のようにして
>>933のいうようにForm2のFormClosingイベントで
イベントをキャンセルしてForm2をVisible(もしくはHide)
にしないとだめかなあ
0936デフォルトの名無しさん
2010/04/06(火) 14:10:23コードを晒せるなら晒した方が回答は得やすいよ
プログラマはコードで会話するともいえるし
日本語の説明だと厳しい
0937デフォルトの名無しさん
2010/04/06(火) 14:13:13http://ideone.com/
0938916
2010/04/06(火) 14:36:59ありがとうございます。
以下がそのコードです。
テストしたコードも一緒に載せてあります。
http://ideone.com/OHLQ4
0939デフォルトの名無しさん
2010/04/06(火) 14:59:16ttp://tsushima.2ch.at/s/news2ch56520.png
オーバーライドしなくても一応それっぽい動作はできるな
ただし要求を完全に満たすにはイベントをいくつか試さないとだめだろうけど
Form1.cs
http://ideone.com/VHMBz
numericUpDown1を貼り付けてイベントを追加
Enterだけだと一回目だけで後はクリックしまくらないと駄目なので
MouseDownつけたけどさ・・・
0941デフォルトの名無しさん
2010/04/06(火) 15:40:53なるほど。
>>934
なるほど。おっしゃるとおり、Form2をふたつは作りたくないのです。
なるほどFormClosingでキャンセルすればよかったんですね!
Visible or Hideか。
やってみます。
ありがとうございました。
0942デフォルトの名無しさん
2010/04/06(火) 15:47:49同様のメソッドを複数用意する以外に方法はありませんか?
public void Write<T>( T[] data )
{
foreach( T t in data )
{
Byte[] dat = BitConverter.GetBytes( t );
// ビッグエンディアン == 反対
if( ENDIAN.BIG == Endian ) Array.Reverse( dat );
(以下略)
0943デフォルトの名無しさん
2010/04/06(火) 15:50:460944デフォルトの名無しさん
2010/04/06(火) 15:52:14エラーコードはなんてでてるの?
呼び出し元のコードはどんなの?
0945デフォルトの名無しさん
2010/04/06(火) 15:55:51BitConverter.GetBytesがどのオーバーロード呼び出せばいいか決定できないから
0946デフォルトの名無しさん
2010/04/06(火) 15:59:032byte、4byte、8byteくらいか?
そんなに悩むことかな
0947デフォルトの名無しさん
2010/04/06(火) 16:00:24http://msdn.microsoft.com/ja-jp/library/d5x73970.aspx
http://ufcpp.net/study/csharp/sp2_generics.html#method
0948デフォルトの名無しさん
2010/04/06(火) 16:55:10ポインタ使うしかないな
0949デフォルトの名無しさん
2010/04/06(火) 17:06:270950デフォルトの名無しさん
2010/04/06(火) 17:09:410951デフォルトの名無しさん
2010/04/06(火) 17:14:55http://ideone.com/Ep0gn
0952デフォルトの名無しさん
2010/04/06(火) 17:16:16複数型を取るとか情報だせ
0953942
2010/04/06(火) 17:21:47型制約というものを初めて知りました。
調べてはみたのですが、書き方がよくわからず、以下の書式で書いてみたところエラーになってしまいました。
どういう書式で書けばいいのでしょうか?
public void Write<T>( T[] data ) where T : Byte, Boolean, Char, Double, Int16, Int32, Int64, Single, UInt16, UInt32, UInt64
>>948
やはりポインタですか・・・。
>>949
種別で判断とはどういうことをすればいいのでしょうか?
0954942
2010/04/06(火) 17:27:31GetType() で switch する感じでしょうか?
>>952
複数型というのは何でしょうか?
エラーコードは以下のものです。
> エラー CS1502: 'System.BitConverter.GetBytes(bool)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
> エラー CS1503: 引数 '1': 'T' から 'bool' に変換できません。
0955デフォルトの名無しさん
2010/04/06(火) 17:30:57Tをこれでみたいんでしょ?
Byte, Boolean, Char, Double, Int16, Int32, Int64, Single, UInt16, UInt32, UInt64
0956デフォルトの名無しさん
2010/04/06(火) 17:33:32http://ideone.com/pOHdD
こんな結果になった
ttp://tsushima.2ch.at/s/news2ch56535.png
objectにして渡して中で型判断するってのはどうなんだろ?
0957942
2010/04/06(火) 17:50:45> これでみたい
とはどういう意味なのでしょうか?
それらの型以外の動作は保障しなくても問題ありません。
>>956
以下のコードで思い通りの動作になりました。
ありがとうございました。
Object obj = (Object)t;
Byte[] dat;
switch( obj.GetType().Name )
{
default: throw new Exception( "エラー" );
case "Byte": dat = new Byte[]{ (Byte)obj }; break;
(略)
case "UInt64": dat = BitConverter.GetBytes( (UInt64)obj ); break;
}
0958デフォルトの名無しさん
2010/04/06(火) 17:57:30switch (t.GetTypeCode())が最善だと思う
0960デフォルトの名無しさん
2010/04/06(火) 18:10:17        {
            foreach (T t in data)
            {
                Byte[] dat;
                switch (t.GetTypeCode().ToString())
                {
                    default: throw new Exception("エラー");
                    case "Byte": dat = new Byte[] { t.ToByte(null) }; break;
                    case "UInt64": dat = BitConverter.GetBytes(t.ToUInt64(null)); break;
                }
            }
        }
こんな感じか
0961デフォルトの名無しさん
2010/04/06(火) 18:12:11        {
            foreach (T t in data)
            {
                Byte[] dat;
                switch (t.GetTypeCode())
                {
                    default: throw new Exception("エラー");
                    case TypeCode.Byte:
                        dat = new Byte[] { t.ToByte(null) }; break;
                    case TypeCode.UInt64:
                        dat = BitConverter.GetBytes(t.ToUInt64(null)); break;
                }
            }
        }
ああ、こういうのもOKなのか
0962デフォルトの名無しさん
2010/04/06(火) 18:17:010963デフォルトの名無しさん
2010/04/06(火) 18:20:200964デフォルトの名無しさん
2010/04/06(火) 18:25:05public void Write(byte[] data) {}
public void Write(bool[] data) {}
(略)
public void Write(ulong[] data) {}
みたいに書き出すべきだと思うんだが。
0965デフォルトの名無しさん
2010/04/06(火) 18:28:27それが面倒だから・・・ってことでこうなったw
0966デフォルトの名無しさん
2010/04/06(火) 20:19:47「自分自身と継承先とステートマシンクラス」だけ読み書き可能で、それ以外には
リードオンリってやりたいんだが、どう組んでも恐ろしく複雑になってしまうんだが、
なるべくシンプルに実装する場合どうすればいいんだろう
外からいじられるリスク前提で全部publicにしてしまう他ないのかな
0967デフォルトの名無しさん
2010/04/06(火) 20:40:27protected internalは使いたくない状況なんだろうか
0968デフォルトの名無しさん
2010/04/06(火) 20:43:18別々のアクセス修飾子が付けられるようになってるのは知ってるんだよね?
0969デフォルトの名無しさん
2010/04/06(火) 23:30:26設定値をドコに持たせたらいいとか、呼び出すお作法の書いてあるwebはお勧めありますでしょうか?
参考図書だと、コントロールをフォームにぶち込んで、すぐその場でプロパティに直書き。とか
ComSerialPort.PortName="COM1"
ComSerialPort.BaudRate=9600
とフォーム.loadにベタ書きみたいなものにしか見かけないんです。
脱初心者となりたく、村の書店で立ち読みしてみたけど、多くはフォーム1枚板で完結した内容で
なかなか前に進まずに居ます。
0970デフォルトの名無しさん
2010/04/06(火) 23:36:200971デフォルトの名無しさん
2010/04/07(水) 00:00:19コマンドラインからの起動なら大丈夫なんだけど
エクスプローラからドラッグアンドドロップでファイル渡して圧縮すると
そのエクスプローラが作業完了するまでフリーズしちゃうんだけど
どうすればいいかな?
0972デフォルトの名無しさん
2010/04/07(水) 00:03:090973デフォルトの名無しさん
2010/04/07(水) 00:03:44アイコンに対して?
0974デフォルトの名無しさん
2010/04/07(水) 00:10:29今話題(?)のジェネリック対応版のBitConveterExを作ってみた。
型パラメータは可能な限り制限しているけど最終的には実行時検証。
作っておいてなんだが、ジェネリッククラス/メソッドから呼び出すのでなければ、
>>964の言うようにオーバーロードするのが正解。
特にオーバーロードを書くのが面倒なんて阿呆な理由は論外。
0975971
2010/04/07(水) 00:16:49それを圧縮するという感じです
>>972
多分そういうことなのかなと思うんですが
制御を返す方法がよくわかりません
DragDropイベントリから圧縮するmethodを呼び出しているので
圧縮が完了してやっとDragDropのイベントが抜ける感じになってます
どうすればうまく書けるんでしょうか?
0976デフォルトの名無しさん
2010/04/07(水) 00:17:460977デフォルトの名無しさん
2010/04/07(水) 00:23:59http://www.atmarkit.co.jp/fdotnet/dotnettips/676dragdrop/dragdrop.html
ここの最後のところとか
0978デフォルトの名無しさん
2010/04/07(水) 00:26:15今の時代は普通にワーカースレッドを起こして、メインスレッド(イベント)は
終了、でいいわな。
0979デフォルトの名無しさん
2010/04/07(水) 00:28:070980デフォルトの名無しさん
2010/04/07(水) 00:31:33質問したやつが苦労すべきだろ。
0982デフォルトの名無しさん
2010/04/07(水) 01:08:44みんながんばってください
0983デフォルトの名無しさん
2010/04/07(水) 01:17:50このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
君はもう充分がんばったさ。もう寝ていいんだぜ、逃げてもいいんだぜ?
なんてやさしいおれ。
0984デフォルトの名無しさん
2010/04/07(水) 07:07:220985966
2010/04/07(水) 12:31:53同一の名前空間前提なら最悪それでもいいかもしれないが……。
できればPerlのような紳士協定的な制約はかけたくないなぁ、と。
>>968
public int hoge{ get; private set; } みたいなのだよね?
0986デフォルトの名無しさん
2010/04/07(水) 13:21:11誰が使うか分からないクラスライブラリ作ってるならそれで十分
内部では基本的に契約が通じるはずなので紳士協定で問題ない
コンパイル時に解決できない内部のお約束なんか他にもいくらでもあるだろ
0987デフォルトの名無しさん
2010/04/07(水) 18:52:05このWPFのローカルアプリケーションをWebでサービスする場合について教えてください。
大前提として、WPFからWeb用のアプリケーションに書き換える作業があることはなんとなく理解しています。
疑問点は、次のようなものです。
・サーバーはLinuxでよいのでしょうか?
・クライアントはIEとかのブラウザだけでよいのでしょうか?
・そのWPFのアプリケーションは.NET Framework3.5が必要なのですが、Webサービスの場合、.NET Framework3.5はどこに用意すればいいんでしょうか? サーバー側ですか?
・各種設定がある場合、(たとえばいつも読むフォルダ名を覚えておくとか)、その設定はサーバー側に保存するのですか? それともクライアントに?
というかなり大まかな質問で恐縮です。
ざっくりどんな感じなのか、教えていただけると助かります。
0988デフォルトの名無しさん
2010/04/07(水) 19:04:54windows系のサーバーを提供してるところもあったはず
ちょっと高いけど
0989デフォルトの名無しさん
2010/04/07(水) 21:15:47IIS上でASP.NETを動かす形になる。
当然、サーバー上に.NET Frameworkが必要。
各種設定は、サーバー側に保存。
0990デフォルトの名無しさん
2010/04/07(水) 22:06:350991デフォルトの名無しさん
2010/04/07(水) 22:12:230992デフォルトの名無しさん
2010/04/07(水) 22:13:46なんとなく輪郭がつかめました。
ありがとうございました
0993デフォルトの名無しさん
2010/04/07(水) 22:28:57まずはその辺で雰囲気をつかむといいんじゃね?
0994デフォルトの名無しさん
2010/04/07(水) 23:34:12C#でWebサーバーを作るのには、ASP.NET MVCフレームワークを使って、@ITの
http://www.atmarkit.co.jp/fdotnet/aspnetmvc/aspnetmvc01/aspnetmvc01_01.html
あたりの順番で進めればオーケーでしょうか?
0995デフォルトの名無しさん
2010/04/07(水) 23:38:14MVCは最近できたばっかりで、俺は使ったことがない。
ま、どっちでもいいんじゃね?
ただ、ASP.NET 1.0/1.1/2.0なとこだったりすると、MVCは使えないので、要注意。
0996デフォルトの名無しさん
2010/04/07(水) 23:59:18ASP.NETのWebフォームのほうが動作実績ありってことですね。
ちなみに構成としては、LinuxとWindowsXPを使って、
LinuxのWebサーバーでは、
(1)
<form method="post" EncType=multipart/form-data" ACTION="upload.cgi">
<INPUT TYPE="submit" value="upload" class="button">
</form>
みたいな感じで、ユーザーのファイルのアップロードを受ける。
(2)アップロードされたら、WindowsXPにそのファイルをコピーする。
(3)WindowsXPでは、WPFを使って、ファイルを作り、LinuxのWebサーバーにコピーする。
(4)LinuxのWebサーバーは、そのファイルをhtmlに組み込んで表示する。
(5)クライアントはLinuxのWebサーバーの表示を見てファイルをゲット。
って流れでもオーケーなんでしょうか?
0997デフォルトの名無しさん
2010/04/08(木) 00:08:500998デフォルトの名無しさん
2010/04/08(木) 01:27:150999デフォルトの名無しさん
2010/04/08(木) 01:29:59ふらっとC#,C♯,C#(初心者用) Part58
http://pc12.2ch.net/test/read.cgi/tech/1270657735/
1000デフォルトの名無しさん
2010/04/08(木) 02:50:2410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。