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

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

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

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

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

■関連スレ
C#, C♯, C#相談室 Part71
http://toro.2ch.net/test/read.cgi/tech/1332575004/
    ミスターサタンのC#相談室
http://toro.2ch.net/test/read.cgi/tech/1092656075/
VB.NET質問スレ(Part38)
http://toro.2ch.net/test/read.cgi/tech/1325083428/
くだすれC++/CLI(初心者用)part2
http://toro.2ch.net/test/read.cgi/tech/1268613679/
2デフォルトの名無しさん:2012/04/14(土) 14:28:37.44
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
http://pastebin.com/
コードを貼り付けてrun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます
3デフォルトの名無しさん:2012/04/14(土) 14:43:19.96
Streamを介すると1バイトずつしか読めないって何言ってるのアレは
4デフォルトの名無しさん:2012/04/14(土) 14:44:25.96
ジョークだろ まともに相手するなよ
5デフォルトの名無しさん:2012/04/14(土) 14:44:39.72
基本クラスにキャストすると基本クラスのメソッドが呼ばれるとか思ってんじゃねえかなー。
6デフォルトの名無しさん:2012/04/14(土) 14:57:38.47
基本クラスの実装つってもabstractなのはReadByteじゃなくてReadの方だからなあ
Streamはバッファでまとめて読み書きするのが基本であり普通
7デフォルトの名無しさん:2012/04/14(土) 15:02:00.59
Streamにもbyte[]にコピーするメソッドがあるのね
でそれをunsafeでint*にキャストかなんかして読むわけ?
GCで移動されないようにロックして?
ちょっと考えられませんねえ
実質使えないに等しいでしょう
8デフォルトの名無しさん:2012/04/14(土) 15:03:32.53
っ BitConverter
9デフォルトの名無しさん:2012/04/14(土) 15:04:36.65
>>7
気になるならソース公開されてるんだし中身みてこいよw
内部の細かい実装はどうでもよくてHDDで読み書きするよりは高速だからってことで使う程度だし

今時1バイトアクセスが遅いとかいうのはアセンブラでしこしこ書いてたおっさんくらいだろう
10デフォルトの名無しさん:2012/04/14(土) 15:06:42.19
BinaryReader
BitConverter
Buffer
11デフォルトの名無しさん:2012/04/14(土) 15:08:04.26
どうせまた「やっぱ慇懃に煽るとたくさん釣れるわ」みたいな奴だろ
触るな触るな
12デフォルトの名無しさん:2012/04/14(土) 15:09:26.28
13デフォルトの名無しさん:2012/04/14(土) 15:09:51.68
触ると秋が〜
14デフォルトの名無しさん:2012/04/14(土) 15:10:56.56
>Streamにもbyte[]にコピーするメソッドがあるのね

なんてレベルに語られても…って感じだよね
お前いままで何を前提に喋っていたんだと
15デフォルトの名無しさん:2012/04/14(土) 15:12:26.19
unsafeでキャスト可能ってことは内部的には同じものとして扱えるってことでして
パフォーマンスが必要ならそういうのを利用した設計にしますし、BinaryReaderのような奴は実際そうなってます
16デフォルトの名無しさん:2012/04/14(土) 15:17:13.64
17デフォルトの名無しさん:2012/04/14(土) 15:18:39.50
いやBinaryReaderは普通にビット演算で配列の要素を繋げてるよ
エンディアンの問題があるからC/C++でも普通そうする
18デフォルトの名無しさん:2012/04/14(土) 15:23:26.11
>>16
俺みたいなヘタレなプログラマが自前で実装するより速いわ。
それに、今の実装がそうなんであってブレークスルーがあった時にはお任せしてあったほうがメリット有るぜ。
19デフォルトの名無しさん:2012/04/14(土) 15:27:30.34
>>17
エンディアン嘘つかない
20デフォルトの名無しさん:2012/04/14(土) 16:40:17.00
Graphics.DrawImageで描画速度上げるコツおしえろ
21デフォルトの名無しさん:2012/04/14(土) 16:43:29.84
どんな糞コードなんだよ
22デフォルトの名無しさん:2012/04/14(土) 16:46:24.00
>>21
お前の頭くらい糞なコード
23デフォルトの名無しさん:2012/04/14(土) 16:50:44.79
じゃあ無理だな
24デフォルトの名無しさん:2012/04/14(土) 16:52:47.09
拡大縮小しなければ普通にそこそこ速いんじゃないか
25デフォルトの名無しさん:2012/04/14(土) 16:53:26.95
糞コードも晒せないこんなやつじゃあポイズン
26デフォルトの名無しさん:2012/04/14(土) 17:10:52.62
どう頑張ってもGPUアクセラレーションの足元にも及ばないから
速度が重要なら素直にDirect3DかWPF
27デフォルトの名無しさん:2012/04/14(土) 17:11:35.16
ここの皆さんだけに教えますけど、
描画速度上げるコツは描画しないことです
28デフォルトの名無しさん:2012/04/14(土) 17:16:28.97
必要な部分だけ再描画するとか古典的なテクニックはいろいろあるけど
GPUパワーでピクセルシェーダで派手なエフェクト付けながら毎フレーム全書き換えの方が
圧倒的に速い事実…
29デフォルトの名無しさん:2012/04/14(土) 17:40:32.70
1枚の画像の輝度を変更しようとしたらバイト配列をループで回して
各ドットに対してRGBをそれぞれ取得してHSVに変換して値変更してRGBに戻して格納とかアホくさい
GPUに任せれば動画でも再生中に変更できるというのに
30デフォルトの名無しさん:2012/04/14(土) 17:45:47.79
アナログだけどわかりやすい
DirextXは難しい
31デフォルトの名無しさん:2012/04/14(土) 19:08:40.60
DIBの遅さはどうにもならんな
32デフォルトの名無しさん:2012/04/14(土) 19:52:27.90
RGBをHSVに変換するのって.netのframeworkにあったっけ?自作メソッド書かなきゃ駄目?
33デフォルトの名無しさん:2012/04/14(土) 19:53:36.21
計算ってそんなに大変だっけ?
34デフォルトの名無しさん:2012/04/14(土) 19:55:26.73
35デフォルトの名無しさん:2012/04/14(土) 22:16:00.10
DataGridViewのセルに入力された数値の計算を行いたいのですが
よくわかりません。
dataGridView[0,0].Value + dataGridView[0,1].Valueなどではできませんし
ToIntでint型にしようと思ってもできません。
どのようにすれば計算できますでしょうか?
36デフォルトの名無しさん:2012/04/14(土) 22:30:37.50
int asdf = Convert.ToInt32(dataGridView1[0, 0].Value);
37デフォルトの名無しさん:2012/04/14(土) 22:38:12.09
>>36
このようにすると
int asdf = Convert.ToInt32(dataGridView1[0, 2].Value);
としたところが
[警告]ArgumentOutOfRangeException
インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。
パラメーター名: index

デバック時にセルに入力した値は10です。
38デフォルトの名無しさん:2012/04/14(土) 22:43:18.94
コード晒せよ
39デフォルトの名無しさん:2012/04/14(土) 22:50:59.87
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int asdf = Convert.ToInt32(dataGridView1[0, 2].Value);
int asbf = Convert.ToInt32(dataGridView1[0, 3].Value);
}
}
}
関係ない部分、まだ途中の部分もありますがこんな感じです。
data1とdata2の数値を計算したいのですが。
使っているのはMicrosoft Visual C# 2010 Express です
40デフォルトの名無しさん:2012/04/14(土) 22:52:42.32
で、セルににはなんて入力してるの?
41デフォルトの名無しさん:2012/04/14(土) 22:53:44.68
質問者の心得
・回答者はあなたの席の隣に居る会社の同僚や先輩、学校の先生や同級生ではありません。
 どういう作業を行ってるかわかりませんのでなるべく出せる情報は出しましょう。
・情報を出すと言っても、長々と日本語で解説するのも問題外です。なるべくソースコードを出しましょう。部分的ではなくなるべく全体
・「ご教授ください」とかそんな意味不明な日本語で媚び諂う必要はありません。回答者が怒ってるのは情報が少ないからです。
・場合によってはOSなどに依存することもあるのでその場合は周辺情報も出しましょう。
・ソースコードを出す場合は>>2のサイトを使いましょう。
>>94のような場合はあなたが思ってるイメージを質問者は知ることができません。
脳内を覗き見るエスパーは居ませんので私はこういうイメージにしたいけど実際はこうですと
理想と現実を比較できる画像も提供しましょう
・あとメニューというカタカナではなくコントロール名で質問するほうが早いです
・C#は次の物が開発可能です。ターゲットを明記しましょう。WinForm WPF SilverLight ASP.NET ASP.NET MVC
42デフォルトの名無しさん:2012/04/14(土) 22:58:54.41
質問文に手を抜くような奴がそんなの読むかよ。
っていうかコピペ馬鹿もアホな質問者と同じ程度には鬱陶しい
43デフォルトの名無しさん:2012/04/14(土) 22:59:49.13
>>40
[0,2][0,3]は実行時に自分で入力してます。10とか適当な数字です。
なのではじめからセルに数字が入ってるわけではありません。
いま考えてるのは会計ができるようなプログラムで
収入、支出を入力しそれを計算して収支を出したいんです。

>>41
わざわざありがとうございます。
以後気をつけます。
44デフォルトの名無しさん:2012/04/14(土) 23:00:22.34
>>42
だってヒアリングしないと間抜け行為してるのかどうかの切り分けができないだものw

コピペ貼りたくなるよ
45デフォルトの名無しさん:2012/04/14(土) 23:25:34.02
RowとColumnのインデックスが逆だったりして
46デフォルトの名無しさん:2012/04/14(土) 23:26:08.69
>>41
スレチ
47デフォルトの名無しさん:2012/04/14(土) 23:29:18.17
>>46
スレチじゃないんだよなw

たぶんオチとしてはデータを入れたつもりなんだけど
インデックスを勘違いして設定してるのでデータが入ってないところから
データをひっぱろうとして>>37なんだと思うよ

でもデータを入力してるであろう部分は>>39にはないよね


情報を全部だしてくれればこんな憶測はしなくて済むのに
いちいち確認しないといけない糞さだよね

>>41にまとめられてる通り
48デフォルトの名無しさん:2012/04/14(土) 23:31:45.53
3行の場合、[0,2]までしか扱えないのはわかってる?

http://ufcpp.net/study/csharp/st_array.html
49デフォルトの名無しさん:2012/04/14(土) 23:32:38.08
こちらで予測してコード書いてみた

インデックスを勘違いしていると想定してデータが入ってないところから
>>39のような計算しようとするとデータねーよって怒られる

データが入ってるところであれば>>39のような計算ができる


dataGridView1[

ここまで入力してみてポップアップにどう表示されるか見てみ

順番はColumn,Rowだから
50デフォルトの名無しさん:2012/04/14(土) 23:34:00.38
>>47
コード見なくても大体見当つくだろ
それにあのコピペはテンプレ違反
答えられないなら答えるな

ここはどんな質問にでも答えられる奴がいればいい
それ以外は相談室にいけ
51デフォルトの名無しさん:2012/04/14(土) 23:34:26.23
>>48
データが公開されてないのでその予想はなかったw

0始まりではなく1始まりで勘違いしてるパターンか・・・

もうね
>>41を守れよ

なんで横に居ないアホのためにあれこれエスパーしないといけないだ
52デフォルトの名無しさん:2012/04/14(土) 23:35:13.94
>>50
検討つきませんってw

アホがやることなんてw

どういうデータを設定してるかがわからないかぎりw
53デフォルトの名無しさん:2012/04/14(土) 23:36:02.92
はさみうちだ!
54デフォルトの名無しさん:2012/04/14(土) 23:38:36.90
>>52
アホだからわからないんだよ
55デフォルトの名無しさん:2012/04/14(土) 23:39:40.90
MVC ってなんですか?
56デフォルトの名無しさん:2012/04/14(土) 23:40:31.22
C#やってみたいんだけど
VCじゃないとダメ?
monoとか言うやつあるらしいんだがこれって実用に耐える??
できればGTKあたりのGUIは動いて欲しい
どないでしょ?
57デフォルトの名無しさん:2012/04/14(土) 23:40:37.74
>>54
アホじゃないからこんなのではまらないしうっかりミスってしまっても
確認すればいいだけなので質問すらしませんからw

>>39を見る限りでは問題ないので晒されてないところで何かやらかしてるか
勘違いさんなのでこの辺は隣にいるわけじゃないのでヒアリングしないと
把握できませんがな

エスパーじゃないし
58デフォルトの名無しさん:2012/04/14(土) 23:42:59.07
Form1.Designer.csを公開してもらえば何をやらかしてるかわかるよ
59デフォルトの名無しさん:2012/04/14(土) 23:44:37.79
元くだすれなんだからエスパーレベルを常駐させろよ
60デフォルトの名無しさん:2012/04/14(土) 23:47:09.03
>>57
あなたのような未熟者はこのスレに必要としません
相談室へどうぞ
61デフォルトの名無しさん:2012/04/14(土) 23:48:32.58
で、できたの?
62デフォルトの名無しさん:2012/04/14(土) 23:50:57.01
相談室で好きなだけ暴れろよ
あっちはもう過疎ってて誰も書き込んでないだろ
こっちまできて暇つぶしで荒らしてるんじゃないよ
63デフォルトの名無しさん:2012/04/14(土) 23:54:46.82
>>51
嫌なら答えなければいい
誰もお前に強制させていないんだがな

それと初心者をアホ呼ばわりする神経も理解できない
初心者なんだから知らなくて当然
無知であることがアホだと思うなら
お前はMSDNをすべてを暗記しているのか?
していなければお前もアホ
64デフォルトの名無しさん:2012/04/14(土) 23:57:02.36
大手で働いている人間からしたらお前らなんてみんなアホ
初心者レベルを煽る程度の実力しかお前らにはないってことを
露呈しているだけにすぎない
お前が世間から無能呼ばわりされているからって
初心者を煽って発散するなよ虫けら
65デフォルトの名無しさん:2012/04/14(土) 23:59:27.81
すまん
熱くなってる所申し訳ないが
俺の質問にレスくれよ
てかみんな結構熱いのなw
66デフォルトの名無しさん:2012/04/15(日) 00:00:19.40
虫けら煽ってるレベルと言うのも高が知れてると思うのですが
藁葺きでカエル突いてる子供レベル
67デフォルトの名無しさん:2012/04/15(日) 00:02:58.40
>>65
ID無いのでどの話かわかりません






..
68デフォルトの名無しさん:2012/04/15(日) 00:04:48.21
その空白に何か意味はございますか?
69デフォルトの名無しさん:2012/04/15(日) 00:05:42.67
類は友を呼ぶ
70デフォルトの名無しさん:2012/04/15(日) 00:06:24.58
>>65
datagridviewの人なら、dataGridView1[0.2]は3行目の1列目を示すが、縦横勘違いしていないか?
71デフォルトの名無しさん:2012/04/15(日) 00:07:04.13
wwすまない俺は>>56
やってみたいんだよC#を
俺は熱くなってる人たちが好きだよ
72デフォルトの名無しさん:2012/04/15(日) 00:09:40.48
>>71
グダグダ言わずにやってみろ
73デフォルトの名無しさん:2012/04/15(日) 00:09:46.85
Streamの無駄が多いしC言語がオススメ
74デフォルトの名無しさん:2012/04/15(日) 00:12:52.22
>>72
わかったやってみるよw
ありがとう
俺も仲間になってはよ罵られたいよ
ほどほどに熱く住み着いててくださいw
75デフォルトの名無しさん:2012/04/15(日) 00:28:27.76
便乗です。
Int32 data = Convert.ToInt32(dataGridView1.Rows[0].Cells[0].Value);
これをBOX化解除したい時、Convert.ToInt32(使う以外の方法を教えてください。
Convert.ToInt32のヘルプ見ると
「戻り値は、value に対して Int32.Parse メソッドを呼び出した結果得られる値です。」
だそうですがIFormatProvider の指定の仕方が解らないや
あとtryparseとかも使えたりするの?
(int)dataGridView1はOKなのかな?と思ったらNGでした・・・
76デフォルトの名無しさん:2012/04/15(日) 00:32:15.05
intに代入された段階でどういう状態であれボックス化は解除されてるはずなんだけど

(int)でキャストが通らないのはテキストだからでしょ
77デフォルトの名無しさん:2012/04/15(日) 00:32:51.27
WPFなどのバインディングのように双方向とかないんだっけ?
78デフォルトの名無しさん:2012/04/15(日) 00:37:41.70
>>75
int result = Convert.ToInt32("123")
int result = int.Parse("123");

int result;
int.TryParse("123",out result))

こういったやり方がある
全部文字列を数値に直してるだけでBOX化解除とかじゃない
ちなみにintとInt32は同じもの
79デフォルトの名無しさん:2012/04/15(日) 00:42:09.24
普通にintでキャストしたらいけたが

だから問題の切り分けができてないだって
80デフォルトの名無しさん:2012/04/15(日) 00:44:48.48
結局のところForm1.Designer.csを見ればわかる話
81デフォルトの名無しさん:2012/04/15(日) 00:50:18.05
http://ideone.com/2LuYy
http://ideone.com/moZqT


dataGridViewを知らない五月蝿いおっさんでもちょこっと調べると普通にできるんだけどな
http://code.msdn.microsoft.com/windowsdesktop/WindowsForm-howto-886e7d03
8275:2012/04/15(日) 02:06:39.69
試しに
private void button1_Click(object sender, EventArgs e){
this.Text = ((int)this.dataGridView1[1, 0].Value *(int)this.dataGridView1[2, 0].Value).ToString(); }
0,1
10,11
20,21
と3行3列ぶん入力してみました。

InvalidCastExceptionはハンドルされませんでした。
指定されたキャストは有効ではありません
83デフォルトの名無しさん:2012/04/15(日) 02:09:19.87
だからさー
dataGridviewのColumnなどの枠を作る部分のコード出せって
あとそこへ情報突っ込んでるコード

その辺の違いなどで影響するのかもよ

あと.netのバージョンとかさ

情報が部分的すぎなんだよ
8475:2012/04/15(日) 02:10:39.70
入れた値は
0,1,2
10,11,12
20,21,22
です。はい、馬鹿です。思考力低下の真っ只中です。すいません。なんでだろう?
8575:2012/04/15(日) 02:18:14.24
C#2010EE .net4Clientprofile
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1{
public partial class Form1 : Form {
public Form1() { InitializeComponent(); }

private void button1_Click(object sender, EventArgs e){
this.Text = ((int)this.dataGridView1[1, 0].Value *(int)this.dataGridView1[2, 0].Value).ToString();}}}

Form1.Designer.csは
http://ideone.com/QkB0O
データグリッド右クリック。列を追加、何も変えずOKを3回繰り返しました。
86デフォルトの名無しさん:2012/04/15(日) 02:21:28.03
>>85
最初に教わった>>35さんのレスをもう一度試してみような
今は(int)this.dataGridView1[1, 0].Valueのキャストが上手く行っていない
(int)は元のオブジェクトが数値データじゃないと駄目だからね

string a ="1.1";
int b =(int)a; でも同じエラーとなります

>>83いい加減ウザイ、的外れだしw
87デフォルトの名無しさん:2012/04/15(日) 02:27:48.54
DatatableでCompute使えば終わりじゃないの?
88デフォルトの名無しさん:2012/04/15(日) 02:35:59.00
Convert.ToInt32(dataGridView1.Rows[0].Cells[0].Value);//行と列よく間違えるので普段こっちで書いてます
もちろんConvert.ToInt32使えばうまくいきます。これ以外だとどう書くのかなという問題です。

Convert.ToInt32は Int32.Parse メソッドを呼び出したものだというから
Int32.Parse(dataGridView1.Rows[0].Cells[0].Value)が通るかな?と試すも
オブジェクトをstringに変換できないので、(int)でキャストしてみて行き詰りました。
Parse(String, NumberStyles, IFormatProvider)を読んで更に書式に関するカルチャ固有の情報とかちんぷんかんぷん
89デフォルトの名無しさん:2012/04/15(日) 02:37:47.14
>>86
的外れじゃねーよ

>>85のコードを貼り付けてちょっとコード足したら動くぞ
http://www.dotup.org/uploda/www.dotup.org2865281.png
90デフォルトの名無しさん:2012/04/15(日) 02:40:33.42
なあ的はずれっていうのならなんで俺のところで動いて他所で動かないんだよ

なあ説明しろよ
91デフォルトの名無しさん:2012/04/15(日) 02:45:57.39
>>83
コードも読めないのかお前
どこまでも無能だな
92デフォルトの名無しさん:2012/04/15(日) 02:47:18.48
>>90
手で数値入力できなければ意味無いだろw
93デフォルトの名無しさん:2012/04/15(日) 02:48:12.29
>>90
ばーかしね
94デフォルトの名無しさん:2012/04/15(日) 02:48:27.37
>>90なんでコードで入れて手で入れてみないんだよ?!型が違うのが解らんのかい
95デフォルトの名無しさん:2012/04/15(日) 02:49:11.24
>>90は糖質なので以後放置で
96デフォルトの名無しさん:2012/04/15(日) 02:55:49.22
>>88
俺も似たような処で悩んだこと有ったが、結論は「データバインドしてセル毎型を持てるようにして使わないと使い物にならん」だったw
97デフォルトの名無しさん:2012/04/15(日) 02:57:25.22
>>91
コードが読めない・・・x
説明が悪い・・・○

http://ideone.com/xxdxl
98デフォルトの名無しさん:2012/04/15(日) 03:00:15.87
>>94
型が違うはわかっとるわい

入れた数値

とはあるがデザイナーで指定したのか実行時に手で入力したのかは書いてない


説明不足だって
99デフォルトの名無しさん:2012/04/15(日) 03:04:50.96
>>98
43 名前:デフォルトの名無しさん 投稿日:2012/04/14(土) 22:59:49.13 0回目
>>40
[0,2][0,3]は実行時に自分で入力してます。10とか適当な数字です。
なのではじめからセルに数字が入ってるわけではありません。
いま考えてるのは会計ができるようなプログラムで
収入、支出を入力しそれを計算して収支を出したいんです。
100デフォルトの名無しさん:2012/04/15(日) 03:08:11.80
>>99
入力し

とはあるが

手入力

とは書いてない

プログラム的に流し込みもできるのに

思い込みで意思疎通できて当たり前みたいなのはやめろって

>>41の通り所詮は文字でしかやり取りできないんだし

近くに居れば空気も読めるけど

それと日本語はその場で空気読むのも含めて喋ってることが多いので
掲示板で文字だけにすると情報漏れすることを理解した方がいいよ
101デフォルトの名無しさん:2012/04/15(日) 03:13:44.03
糖質じゃなく分析するとなると情報を集めるのが普通

空気を読むのに慣れすぎて日本人はそういうところを嫌うよね
102デフォルトの名無しさん:2012/04/15(日) 03:15:34.15
>>35さんと、>>75は別ですよ。
35さんの質問があって、その上で75が便乗してますですよ。
あと、無駄な改行やめれ。 行間も空気も読め。以後放置で。
103デフォルトの名無しさん:2012/04/15(日) 03:17:52.59
ヒアリングの結果ご所望の答えは出したろ
情報をちゃんとだしてればもっと早かったんだよ
104デフォルトの名無しさん:2012/04/15(日) 03:44:31.79
コミュ障だからプログラマになった奴らが
人を教育できるわけがない
一生こき使われるタイプだなw
105デフォルトの名無しさん:2012/04/15(日) 06:00:58.80
まず初心者は構文の切り分けとステップ実行を覚えるべき
Hello worldの次ぐらいに重要

int asdf = Convert.ToInt32(dataGridView1[0, 2].Value);
なら
DataGridViewCell cell = dataGridView1[0, 2];
object obj = cell.Value;
int asdf = Convert.ToInt32(obj);
とわけてブレークポイント置いてステップ実行。どの部分が悪いのか調べる
106デフォルトの名無しさん:2012/04/15(日) 08:15:51.49
わかった。90のオツムが悪い
107デフォルトの名無しさん:2012/04/15(日) 10:12:22.92
無断欠勤して電話シカトでも翌日堂々と出てくるしな
欠勤理由はFAXで送りました、届いて無いのはそっちのFAXが悪いからと真顔で言う
電話しろと注意すればよそ見しながらハイハイ
ボーッとしてるから仕事しろと言えば頭の中でやってますとか。中国人は真面目に働くのに
10人が10それ。当然全員クビにして以後韓国人は採らないと決まった
108デフォルトの名無しさん:2012/04/15(日) 10:52:01.66
韓国人は知らないが、中国人は最悪だぞ
仕事は雑だし、飯食わせないと仕事しないし
声でかいし、言うこと聞かない
109デフォルトの名無しさん:2012/04/15(日) 10:56:24.27
日本のテレビの特徴:

・上にタイトルと説明が書かれている
・下に字幕がある
・四隅のどこかの枠でスタジオの芸能人の様子
・スタジオに数〜数十人の芸能人が鎮座している、その大半が一言も喋らない
・韓国の人間・情報が頻繁に登場する
・挿入曲は45秒くらい
・ヘェー、エェー、美味しそう〜、スゴーイという声がよく聞こえる
・SE丸出しの笑い声や拍手
・この後衝撃映像が!→CM数回引っ張る→予告映像に毛の生えた程度
・CMの後もまだまだ続きます→小トーク→次回予告→小トーク→終了
・CM明けに同じ映像をリピート再生する
・半端な時間で始まる・終わる
110デフォルトの名無しさん:2012/04/15(日) 11:11:11.65
リストビューとアイテムから
とあるグループに入ってるものだけ消すにはどうすればいい?
111デフォルトの名無しさん:2012/04/15(日) 11:23:33.61
ループなりなんなり回して
ListViewItem.Groupプロパティが該当グループと一致したら削除したらいいだろ
112デフォルトの名無しさん:2012/04/15(日) 11:31:23.50
しょぼっ
113デフォルトの名無しさん:2012/04/15(日) 11:51:09.32
日曜昼間のマは 月曜日に備えて PCに近付かない
114デフォルトの名無しさん:2012/04/15(日) 12:07:32.46
試験受けに来てるから触りたくてもさわれませんぬ
115デフォルトの名無しさん:2012/04/15(日) 13:15:29.23
今日はjitecの日か
116デフォルトの名無しさん:2012/04/15(日) 19:51:14.77
株式会社 共立総合研究所プレス発表 「韓流消費に関するアンケート」結果
http://www.okb-kri.jp/_userdata/pdf/press/20120305_shufu_hanryu.pdf

≪要約≫
主婦の間に韓流ブームによる韓国製製品の購入意識に変化は確認できず。
韓流好きのきっかけとしては依然“ヨンさま”強し。

1.韓流好きはわずか 11.0%。
・自分自身を「韓流好きと思うか」との質問に対し、「韓流好きと思う」は 11.0%、「どち
らかと言えば韓流好きと思う」が 17.1%、「韓流好きとは思わない」は 71.9%。
・年齢別に見ると「韓流好きと思う」、「どちらかと言えば韓流好きと思う」を合わせた回
答率は 50 歳代が最も高く(35.9%)、20 歳代が最も低い(16.3%)。

2.韓流好きのきっかけは依然“ヨンさま”強し。
・「韓流」に興味を持ったきっかけとしては、約4割が「冬のソナタ」を挙げている。

3.韓流ブームにより韓国製の製品購入意識が変わった主婦は 15.2%。
・「韓流ブームによって、韓国製の製品購入意識が変わったか」と尋ねたところ、「変わっ
た」の回答率は 15.2%、「変わらない」が 84.8%であった。
・商品別では、韓国製の「衣料品」、「食料品」、「テレビ」、「携帯電話」、「自動車」など9
商品のうち、購入することに最も抵抗がない商品は「衣料品」であった。

主婦の間に韓流ブームによる韓国製製品の購入意識に変化は確認できず。
K-POP の台頭、食品、コスメをはじめとする韓国製商品ブームのマスコミでの取り上げ方、新聞の
テレビ欄における韓国ドラマの占有状況からかなりの盛り上がりを予想したが、結果は予想を下回るものであった。

20 歳代の回答者が 7.1%と若年層のウェイトが低かったことによる影響も考えられるが、今回の結
果からは、この地方の主婦の間に「韓流ブーム」といった“熱”を確認することはできなかった。
117デフォルトの名無しさん:2012/04/15(日) 20:49:11.07
ネトウヨきもっ、まで読んだ。
118デフォルトの名無しさん:2012/04/15(日) 21:53:09.08
レスをもらえた>>116大勝利!
119デフォルトの名無しさん:2012/04/15(日) 23:44:47.90
行列ってなんで統一してくれないんだろう?
DataGridView1[3,0]に対応するのは
エクセルVBAでのセル位置はCells(1,4)ですと?むきぃ
120デフォルトの名無しさん:2012/04/15(日) 23:47:33.22
ゼロ始まりが理解できる人と出来ない人がどれだけいるか考えると
仕方ないかと

ただColumnとRowが逆なのは・・・
121デフォルトの名無しさん:2012/04/16(月) 00:41:20.42
いやいや1ベースなのはともかく、[行, 列]なのはむしろ自然。
122デフォルトの名無しさん:2012/04/16(月) 02:03:14.83
>いやいや1ベースなのはともかく、[行, 列]なのはむしろ自然。

123デフォルトの名無しさん:2012/04/16(月) 02:04:38.50
>>88 Int32.TryParse(dataGridView1.Rows[0].Cells[0].Value.ToString())
こうかな?
124デフォルトの名無しさん:2012/04/16(月) 02:04:48.61
座標だとx,yつまり横縦が多いけど配列などで考えると縦横じゃね?
125デフォルトの名無しさん:2012/04/16(月) 02:11:09.62
dataGridViewのことはよく知らんけどValueの中身がstringだからintにキャストできないんでしょ
見た感じValueTypeにtypeof(int)を入れないとintにならないんじゃないの
なんか随分たってるのにまともな回答がないように見える
126デフォルトの名無しさん:2012/04/16(月) 02:15:03.97
列の追加編集ダイアログにValueType欄を入れなかったMSがそもそも悪いんだって
127デフォルトの名無しさん:2012/04/16(月) 02:17:24.52
>>125
手入力すると数字を入力したつもりでもstring扱いで入ってるってだけ

だからValueTypeでカラムごとに動作を決めてあげればいいだけ
そうすれば所望の型で入ってるんだし
128デフォルトの名無しさん:2012/04/16(月) 02:32:42.23
MenuStripとToolStripに同じ機能のアイテムを置くことは多いと思いますが、
同じ機能のアイテムを同時に有効/無効にしたり、チェックをON/OFFする
機能はないのでしょうか。
MFCやWTLではIDが同じアイテムは自動的にまとめて扱えるので、
同じような機能があるとありがたいのですが。
129デフォルトの名無しさん:2012/04/16(月) 02:41:51.00
>MFCやWTLではIDが同じアイテムは自動的にまとめて扱えるので、
こっちってサンプルソースとかどこかにない?
130デフォルトの名無しさん:2012/04/16(月) 03:09:36.60
無ければ作れば良いだけのこと。
131デフォルトの名無しさん:2012/04/16(月) 03:47:11.93
とりあえずこんなのを作ってみました。
private void ToolStripItemAction(string name, Action<ToolStripItem> action)
{
  var strips = new[] { menuStrip, toolStrip };
  var prefixes = new[] { "mi", "btn" };

  Action<ToolStripItemCollection, string> subfunc = null;
  subfunc = (items, prefix) =>
  {
    foreach (ToolStripItem item in items)
    {
      if (item.Name.StartsWith(prefix)
          && item.Name.Substring(prefix.Length) == name)
      {
        action(item);
        return;
      }

      if (item is ToolStripDropDownItem)
        subfunc((item as ToolStripDropDownItem).DropDownItems, prefix);
    }
  };

  for (int i = 0; i < strips.Length; ++i)
    subfunc(strips[i].Items, prefixes[i]);
}

こんなふうに呼び出すと、miUndo というメニューアイテムと btnUndo というボタンを無効にします。
ToolStripItemAction("Undo", x => x.Enabled = false);

でももっと洗練されたやり方がありそうなもの・・・
132デフォルトの名無しさん:2012/04/16(月) 04:18:36.21
ToolStripMenuItemのEnabledChangedイベントとCheckedChangedイベントで
関連するアイテムのプロパティも変更するようにしとけばよくね?
そういうイベントを自動的に設定するメソッドを作ればいい。
133デフォルトの名無しさん:2012/04/16(月) 04:36:44.79
作ってみたやで
http://ideone.com/Abz01
134デフォルトの名無しさん:2012/04/16(月) 04:44:55.92
普通グループ化の機能があるだろ
135デフォルトの名無しさん:2012/04/16(月) 04:48:42.59
>>134
そのやり方を教えてくれよ
136デフォルトの名無しさん:2012/04/16(月) 05:13:03.71
こんなんでだめなん?
普通のbuttonでやってみたけど
http://ideone.com/h5LqX

親は必ずいるからその配下をFindすればいいような
137デフォルトの名無しさん:2012/04/16(月) 05:25:07.34
後は自分でグループ化するクラスでも作っておくとか
でForm_Loadイベントあたりでそのクラスを使ってグループ分けしておくとか
内部は単純にList<T>なんだけどさw

あとは>>136のようにControl.Nameをキー代わりに使うとか
138デフォルトの名無しさん:2012/04/16(月) 05:36:10.14
139デフォルトの名無しさん:2012/04/16(月) 05:39:54.10
140デフォルトの名無しさん:2012/04/16(月) 06:29:46.21
MessageBox
なんだけど

なんでこいつは親フォーム指定しても画面の真ん中に現れるの?
141デフォルトの名無しさん:2012/04/16(月) 06:35:12.41
Windowsの仕様
142デフォルトの名無しさん:2012/04/16(月) 07:03:28.93
専用のフォーム作って自分で場所を指定してあげるとかすればいいんじゃない
143デフォルトの名無しさん:2012/04/16(月) 07:10:58.66
MessageBoxの機能は何だか酷く中途半端に感じるんだよなあ。
CategoryAttributeとかもそうなんだけど、多言語対応を謳ってる割に、
そういうところの実装がいまいち煮え切らん。結局英語以外の文化圏()ってぇ態度なんかなあ。
144デフォルトの名無しさん:2012/04/16(月) 08:59:58.76
ヘルプって一々インターネットを参照するんですが、
自分のPCにインストールし、そこを参照するようにできないんですか?
145デフォルトの名無しさん:2012/04/16(月) 09:21:45.99
VS2010の話?
できるじゃんかよ
146デフォルトの名無しさん:2012/04/16(月) 10:35:03.58
どうやるとできるのかを聞いているんですが・・・
みなまでいわないと分かりませんか?
147デフォルトの名無しさん:2012/04/16(月) 11:30:04.47
ひとつのクラスで300行もあるようなのってどうおもいます?
もっと機能を分割すればいいのに・・・
148デフォルトの名無しさん:2012/04/16(月) 11:44:14.21
今作ってるのは機能別に分割しても1つのクラスで1万行がいくつかあるな
まあ分けたほうがやりやすいなら分ければいいんじゃね
ただ同じような機能なのに長いからという理由だけで分割するのはやめたほうがいい
あとregion使ってないなら使えるようになったほうが管理能力あがる
149デフォルトの名無しさん:2012/04/16(月) 12:21:05.65
リージョンつかうやつは素人。
とまでは言わないがやたら細かくつかうやつはアホ。
邪魔なだけ。
150デフォルトの名無しさん:2012/04/16(月) 12:35:36.04
ユーザ名が空でパスワードは設定されているWebサーバ(ルータ)へ
アクセスするプログラムを作成していますが、
400が帰ってきてしまいアクセスできません。

もし実装方法をぎ存知のかたがいらっしゃればご教授をお願いいたします。

--- ソースここから ---
wc.Credentials = new System.Net.NetworkCredential("", "pass");
wc.DownloadFile(
"http://192.168.0.1/log.txt",
"log.txt");
wc.Dispose();
--- ソースここまで ---

なお、以下の2パターンでは正常動作を確認しました。
+ 認証がないページ
+ Basic認証でユーザ名とパスワードが設定されているページ
151デフォルトの名無しさん:2012/04/16(月) 12:43:57.00
cdekake
152デフォルトの名無しさん:2012/04/16(月) 12:48:30.05
>>136
ToolStripItemはControlじゃない(ウィンドウハンドルも持ってない)から
普通のボタンと同じようには探せないのよね。
153デフォルトの名無しさん:2012/04/16(月) 12:51:31.86
>>151
失礼しました。
抜粋ではなく全てのソースは以下のものになります。

--- ソースここから ---
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;

namespace get
{
class Program
{
static int Main(string[] args)
{
WebClient wc = new WebClient();

wc.Credentials = new System.Net.NetworkCredential("", pass");

wc.DownloadFile(
"http://192.168.0.1/log.txt",
"log.txt");

wc.Dispose();

return 0;
}
}
}
--- ソースここまで ---
154デフォルトの名無しさん:2012/04/16(月) 12:52:56.43
>>2
155デフォルトの名無しさん:2012/04/16(月) 13:00:56.51
韓国 ソウルに次ぐ都市、仁川市が破産か。 仁川ターミナルも売却
http://engawa.2ch.net/test/read.cgi/poverty/1334548216/


破産寸前の仁川市、公務員手当カット程度ではダメ
「仁川ターミナルと松島国際都市の土地50万平方メートルを売却する」としているが、急きょ売りに出された物件がそう簡単に売れるはずもない。
http://www.chosunonline.com/svc/auth/index_login.html?contid=2012033100381&code=news
156デフォルトの名無しさん:2012/04/16(月) 13:04:56.89
accdbにGUIを付けて操作するアプリを作ってます。

Form1にBindingsourceでdatasetに接続してデータを入れているわけですが、訳あって、一部のルーチンを
別のクラスファイルとして分離しました。

すると、これまでthis.dataset.maintable.ImportRow(dr)みたいな形で記述してた部分が機能しなくなりまし
た。Form1はこれまで通り動きます。

別のクラスファイルからこのdatasetにアクセスするためにはどうしたら良いでしょうか?お願いいたします。
157デフォルトの名無しさん:2012/04/16(月) 15:04:46.39
どうしたら良いでしょうって
あんたアクセス修飾子やインスタンスの概念くらい分かって聞いてるの?
158デフォルトの名無しさん:2012/04/16(月) 15:14:55.76
>>157
>>1のテンプレ2行目ちゃんと読んだ?
159デフォルトの名無しさん:2012/04/16(月) 15:19:20.66
ひとつのメソッドで300行もあるようなのってどうおもいます?
もっと機能を分割すればいいのに・・・
160デフォルトの名無しさん:2012/04/16(月) 15:20:34.21
>>159
何のメソッドかもわからないのに答えようがない。
分割するべきかしないべきかは、内容による。
161デフォルトの名無しさん:2012/04/16(月) 15:29:52.91
>>159
俺は一つのメソッドは一画面(40行くらい)に納まるようにできるだけ機能を分割してる

機能を分割できないか分割すべきではない場合は何百行になろうと無理に分割はしない
162デフォルトの名無しさん:2012/04/16(月) 15:37:40.28
>>158
キーワード教えてやってんだから十分優しいだろバァカ
163デフォルトの名無しさん:2012/04/16(月) 15:41:08.38
>>162
>>1のテンプレ2行目ちゃんと読んだ?
164デフォルトの名無しさん:2012/04/16(月) 15:44:06.94
>>160
ですよねー
>>161
機能を分割できないか分割すべきではない場合ってどんなふうに判断してるの?
165デフォルトの名無しさん:2012/04/16(月) 16:08:26.72
>>164
そんなん一言で言えないよw

例えば、特定のHTMLを作るメソッドで、リンクデータがあればaタグ付けるが
なければaタグは付けないという複数行のコードが含まれてる場合には、その
コードをget_a_tag(content, href)とかのメソッドに分割して使うとか
166デフォルトの名無しさん:2012/04/16(月) 16:20:10.91
もうこれ以上無理って思えるまで分割するべき
167デフォルトの名無しさん:2012/04/16(月) 16:27:42.26
複数人で再利用しながら開発して、いつの日か、
同じような機能を実装することを夢見て、そのときに楽できるように仕込んでおくという思考で開発する。

分割する必要性が感じられなくても、分割可能なように作っておく。
必要なときに切り離す。

168デフォルトの名無しさん:2012/04/16(月) 16:37:33.48
メソッド名が一言で何をしてるか表せるようになるまで分割すればいいんだと思うよ

条件をチェックして満たせばAをして満たさなければBをするっていうメソッドがあったとしたら
長すぎて何をしているかわからないメソッド名になってしまうので

if(条件()) A();
else B();
の3つに分割すると分かりやすくなる

たとえばAが飯を食うっていうメソッドだったら

if(金が無い()){ 牛丼を食う(); }
else if(金が有り余っている()){ フランス料理を食う(); }
...

といった感じで抽象概念を徐々に具体的にしていって最終的に実行可能になるまで具体化すればいい
169デフォルトの名無しさん:2012/04/16(月) 16:45:33.88
>>152
管理する方法が違うだけで手間はそれほどかわらんよ
http://ideone.com/GBAM0
170デフォルトの名無しさん:2012/04/16(月) 16:47:39.10
>>169
デザイナー上からToolStripをD&Dして
ToolStripButton ToolStripButton ToolStripSeparator ToolStripLabel ToolStripLabel

と設置してある
171:2012/04/16(月) 16:53:05.93
>>159
例として、減価償却を計算1月づつレコードを生成するようなプログラムの場合

減価償却費といっても、4種類の方法がある。

基本の計算して、レコードを生成部分はメインルーチンとなるが、ここに4種類を入れるのは
アレなわけだ。ということで、4つはそれぞれ別のルーチンに分割するのが適切。

しかし、減価償却費というのは、残存価額が終わった後、残り1円になるまで償却すること
ができるので、この部分をそれぞれ4つのルーチンに書くのは勿体無い。ということで、これを
分割して独立させる。

要するに全く同じか、ちょっとしたパラメータが違う程度のもので殆ど同じルーチンの場合、
重複して書くのを無くす為に分割するというわけさ。しかし、それが他で使うこともないという
タイプで連続するものであるならば、分割の必要性はない。
172:2012/04/16(月) 16:54:29.82
>>156
フォームにdatasetコントロールを配置。Form1と同じものを指定すれば、共有できる。
173デフォルトの名無しさん:2012/04/16(月) 17:16:01.47
1クラス300行が多いとは思えないんですが・・・
174デフォルトの名無しさん:2012/04/16(月) 17:21:27.42
1クラス100行以内1メソッドは30行以内は死守するなぁ
175:2012/04/16(月) 17:29:01.51
>>173
これって、コメント行とか抜かしての話でしょ?

ゲームとかならどうか?とか、用途にもよるでしょ。長いなって感じるのは
176デフォルトの名無しさん:2012/04/16(月) 17:34:25.04
ただ長いってだけで分割するのも不合理な話やで。
177デフォルトの名無しさん:2012/04/16(月) 17:46:41.86
WinFormでもデザイナーやイベント含めて300行は死守なの?
178デフォルトの名無しさん:2012/04/16(月) 17:55:54.23
partialで分割するんだろw
179デフォルトの名無しさん:2012/04/16(月) 17:58:28.36
つうか行制限ってクラスじゃなくてメソッドの長さとかだよな
クラスで少なくするべきなのはパブリックのメソッドとかプロバティーの数じゃないの?
180133:2012/04/16(月) 17:59:07.26
改良してみた。
http://ideone.com/6lhnx
自分で言うのもなんだけど、結構使い勝手がいいなこれ。>>128に感謝する。
181デフォルトの名無しさん:2012/04/16(月) 17:59:20.42
動けばいい
182デフォルトの名無しさん:2012/04/16(月) 18:02:18.17
>>181
正解
183デフォルトの名無しさん:2012/04/16(月) 18:03:24.17
>>180
それって動的に調べて状態変えるんだろ

起動時にグループ化しておいて実行時にはわざわざそんなことしない方がいいんじゃね?
184デフォルトの名無しさん:2012/04/16(月) 18:26:04.59
行数にこだわりすぎて全て1行で書き出す奴
185デフォルトの名無しさん:2012/04/16(月) 18:32:23.12
>>166
素人プログラマだけどそうしてる
いままで作ったメソッドは1メソッド10行以内と10〜20行がほとんど、40行超えるメソッドはわずかだな
186133:2012/04/16(月) 18:37:38.41
>>183
起動時(というか)フォーム生成時に1回やるだけ。
187デフォルトの名無しさん:2012/04/16(月) 18:47:23.13
なるほど、みんないろいろ工夫してるんだなあ
>>165
なるほど、判例ありがとう
>>171
なるほど、スレ主さんありがとう
188デフォルトの名無しさん:2012/04/16(月) 18:52:58.55
○ ●


どっちが黒丸?
189デフォルトの名無しさん:2012/04/16(月) 18:58:29.66
どっちかが黒丸でどっちかが白丸だよ
190デフォルトの名無しさん:2012/04/16(月) 19:44:13.43
>>188
俺的には背景色、文字色に関わらず○が白丸で●が黒丸

でも、背景色が黒で文字色が白だと他の人は逆に考えるかもなw

○がただの丸で●が塗りつぶし丸と呼んだほうが誤解がないかもな
191デフォルトの名無しさん:2012/04/16(月) 19:52:15.02
待てよ
C#にどう関係があるんだ?
192デフォルトの名無しさん:2012/04/16(月) 19:57:51.86
●# or○#開発について
193デフォルトの名無しさん:2012/04/16(月) 20:06:33.21
>>173
おれも思えない
194デフォルトの名無しさん:2012/04/16(月) 20:16:22.41
メソッド10行なんてありえないな
多くても5行
それ以上必要なのは設計がおかしい
195デフォルトの名無しさん:2012/04/16(月) 20:18:13.59
いくらなんでもそれはありえない。
その程度のプログラムしか組んだことがないのか?
196デフォルトの名無しさん:2012/04/16(月) 20:19:00.73
5行じゃ動的SQL書けないオワタ
197デフォルトの名無しさん:2012/04/16(月) 20:22:44.27
全てライブラリにおんぶに抱っこなら10行もあるかもな
ロジック実装したら終わる
198デフォルトの名無しさん:2012/04/16(月) 20:41:18.14
if( ... ){
}

のスタイルと

if( .. )
{
...
}

の人とで違うしな
199デフォルトの名無しさん:2012/04/16(月) 20:43:31.45
三項演算子使いまくりで1行に収めようぜ
200デフォルトの名無しさん:2012/04/16(月) 20:46:38.15
if文書いている時点で、もう問題外って感じっす
201デフォルトの名無しさん:2012/04/16(月) 20:56:52.79
んだんだ
202デフォルトの名無しさん:2012/04/16(月) 21:01:10.80
そういうクソみたいなネタ話はやめろや低能
203デフォルトの名無しさん:2012/04/16(月) 21:02:26.06
確かに、ネタを真に受けるのとはタイプの違うクソさだね
204デフォルトの名無しさん:2012/04/16(月) 21:04:13.68
ifは投機実行で遅くなる
205デフォルトの名無しさん:2012/04/16(月) 21:09:07.46
だったら分岐処理したいときにどう書けば良いんだ?
206デフォルトの名無しさん:2012/04/16(月) 21:10:45.00
ポリモーフィズムで無理やり
207デフォルトの名無しさん:2012/04/16(月) 21:13:32.15
行数を減らすため
メソッド名は1文字
a();b();c();d();

なんてどうよ

セキュリティゼロのC#には難読化の意味でもいいんじゃね
208デフォルトの名無しさん:2012/04/16(月) 21:14:08.46
WebBrowserクラスでリンクがクリックされたときNavigatorメソッドが呼ばれるみたいなんですが
Cookieが設定できないため、ログイン情報が消えてしまいます
どうにかしてCookieを保持して呼び出したいんですが、リンクがクリックされたときに他のメソッドを呼び出すようにできないでしょうか?
209デフォルトの名無しさん:2012/04/16(月) 21:21:56.40
>>207
死ねよ低能
210デフォルトの名無しさん:2012/04/16(月) 21:48:15.39
昨日から始めたんだけどC#で保守ツールみたいの作れる??
211デフォルトの名無しさん:2012/04/16(月) 21:49:03.24
何を保守するんだ
212デフォルトの名無しさん:2012/04/16(月) 21:50:08.38
このコードでなんで行の高さが変わらないのか教えてくれ

http://ideone.com/UbCbm
213デフォルトの名無しさん:2012/04/16(月) 21:53:17.52
>>212
コントロールが作成されるまではDataGridViewRowも作られない
Form.Loadイベント辺りでやる
214デフォルトの名無しさん:2012/04/16(月) 21:56:36.90
>>212
var grid = new DataGridView();を生成したとして、
コンストラクタ抜けたらどこからも参照されていない。
フォームにも、他のコントロールにも生成されたDataGridViewが挿入されていない。
215デフォルトの名無しさん:2012/04/16(月) 22:03:44.40
C#で2chに自動で書き込むスクリプトみたいの作れる??
216デフォルトの名無しさん:2012/04/16(月) 22:04:05.90
>>213
できた。ありがとう

>>214
>grid.Parent = this;
してるからフォームには参照されてるよ
217デフォルトの名無しさん:2012/04/16(月) 22:04:42.14
>>215
ここ見てがんばれ

http://monazilla.org/index.php?c=6-20
218デフォルトの名無しさん:2012/04/16(月) 22:12:40.31
今からでもスクリプト言語に切り替えた方がいいんじゃねえか
VIPのプログラミングWikiにPHP、Ruby、Pythonあたりのコピペするだけで使えるサンプルが転がってるはず

臭いからこのスレで相手したくないってことじゃないよ
219デフォルトの名無しさん:2012/04/16(月) 22:14:38.62
PHP(笑) Ruby(笑) Python(笑)
220デフォルトの名無しさん:2012/04/16(月) 22:16:04.07
臭いからこのスレで相手したくないってことだろ
221デフォルトの名無しさん:2012/04/16(月) 22:16:33.13
やかましい
222デフォルトの名無しさん:2012/04/16(月) 22:28:31.19
おれ鼻詰まってるんだけどさ、このスレどんな匂いがするんだ?
223デフォルトの名無しさん:2012/04/16(月) 22:32:30.20
鼻切り落としてからまた来い
224208:2012/04/16(月) 23:20:33.16
誰か教えてくれ
自分でWebBrowserクラス継承して、自分で書くしかないの?
225デフォルトの名無しさん:2012/04/16(月) 23:22:48.76
>>224
webBrowser.Document.Cookieってあるけどこれを保存しておけばいいんじゃね?
226デフォルトの名無しさん:2012/04/17(火) 00:00:53.08
ポリモーフィズムが速いと勘違いしてるバカって多いよね。
227デフォルトの名無しさん:2012/04/17(火) 00:03:07.92
C#で細かい違いでどっちが速いみたいな議論してる時点でナンセンスだな
228デフォルトの名無しさん:2012/04/17(火) 00:10:28.62
行数の話が出ていたので、手元にあったnet2.0のソースの行数をリストにしてみた

ttp://www.dotup.org/uploda/www.dotup.org2872592.txt
229デフォルトの名無しさん:2012/04/17(火) 00:10:54.78
>>967
おまえがばーかたれなだけ。

日本人がアフガンやアラブ圏から嫌われないのは、どの部族であっても
戦前から民間団体が緑化などで友好的関係だから。
単に政府と政府の良好な関係で成り立っているわけじゃない。
タリバン含めな。
230デフォルトの名無しさん:2012/04/17(火) 00:12:30.19
C#で音声入力(PCのLine入力)を扱おうとしているものです。
音声入力関係のライブラリや検索するためのキーワードなどを教えていただけないでしょうか?
231デフォルトの名無しさん:2012/04/17(火) 00:17:27.84
音声なんて、16ビットを44.1kHzでサンプリングしたとし
その膨大なデータ量を処理するにはC#みたいなインタプリタじゃなくて
C/C++のネイティブコードじゃなきゃ使い物にならんぞ
232デフォルトの名無しさん:2012/04/17(火) 00:18:29.31
C#は、インタプリタとは違うだろ
233デフォルトの名無しさん:2012/04/17(火) 00:18:58.06
>>231
やっぱりC言語じゃないと扱えないですか…
ありがとうございます
234デフォルトの名無しさん:2012/04/17(火) 00:30:41.11
10284 Net/System/Net/Sockets/Socket.cs
19549 WinForms/Managed/System/WinForms/Control.cs
21878 xsp/System/Web/Configuration/BrowserCapabilitiesFactory.cs
29501 WinForms/Managed/System/WinForms/DataGridViewMethods.cs

万超えとかw
235208:2012/04/17(火) 00:57:35.70
>>225
HttpRequest使ってソース取得して、それを整形してwebBrowserに流し込んでるのでその手は使えない…
やっぱり継承してオーバーライドするしか・・・ないのか・・・
236デフォルトの名無しさん:2012/04/17(火) 01:11:15.13
>>235
クッキーコンテナをHttpRequestでやり取りできたはずだが
237208:2012/04/17(火) 01:38:21.14
>>236
最初の画面はHttpRequestにCookie食わして取得してWebBrowser流しこんでokだけど、WebBrowser上でリンクを踏んだりして
別のページに飛ぶと、Navigateメソッドで移動するみたいだから、Cookieが無効になる
やりたいことはwebBrowser上でリンクとかページジャンプが起こったときに、一番最初のHttpRequestの処理を呼び出したいんだ
238デフォルトの名無しさん:2012/04/17(火) 01:42:52.48
>>237
Navigatingイベントを拾って自分で対策すればいいだけだろ
239デフォルトの名無しさん:2012/04/17(火) 02:10:27.50
Encodingの何たるかをよく分かってないんだな、と自分でも思うんですが、
Zipファイルの中身を読み込むために、DotNetZipをちょいと改造して使ってるんですが、
文字化けしてしまったファイル名を、元の正しい文字列に戻す方法ってあるんですかね。
お前は何をryって言われるかもしれないですが、次のような現象を起こしていると思われ。
(推測なので、具体名がなくて分かりづらいかもだが・・・すまん。)

・アプリ@で、何らかのエンコード(A)で付けられたファイル名で、書庫ファイルを作成。
・正しいエンコードで読み込めないアプリAで、異なるエンコード(B)であるかのように
  書庫ファイルを読み込み、解凍
   → 解凍されたファイル名は文字化けを起こしている。
・文字化けを起こしているファイルから、アプリ@、A、または全く違うBで、
  エンコード(C)の書庫ファイルを作成。

一度、何らかのアプリで文字化けを起こしたまま解凍→圧縮したせいで、
文字化けしたまんま保存されている様なんです。

DotNetZipのライブラリをちょいといじって、中身のファイル名をSystem.Stringじゃなく
System.Byteの配列としてバッファで取得できるようにしたんですが、
そいつをあらん限りの(Encoding.GetEncodingsで得られるすべての)Encodingで
GetStringしてみても、正しく読めてる文字列が一つも無いんです。
Zipファイル→【FileStream.Read()】→ファイル名(byte[])→【Encoding.GetString】→string
の時点で、どんなEncoding使ってもダメだとすると、どんな手が考えられますかね。

Zipファイル→ファイル名(byte[])→Encoding(C).GetString
 →string→Encoing(B).GetBytes()→byte[]→Encoding(A).GetString()→string
とか、A、B、C色々試してみたけど、今のところ甲斐無し・・・。

圧縮・解凍のアプリはフラフラと色々使うもんじゃないな・・・。
240デフォルトの名無しさん:2012/04/17(火) 02:18:17.20
そもそも解凍しようとしてるzipファイルのエンコードは何か理解してるの?

dotnetzip 文字化け
で検索するといっぱいでてくるけどね

この辺とかどうよ
http://ispin.blog32.fc2.com/blog-entry-221.html
241デフォルトの名無しさん:2012/04/17(火) 02:52:23.57
その解凍しようとしているzipファイル(に含まれるファイル名のbyte列)の文字列を調べるために、こんなことをやってたりします。

単にEncoding指定して解凍するだけだと、ファイル名がイってしまう。
それはいかなるEncodingを指定しても変わらない。要するに、byte列は単純なEncodingじゃなくて、
上述したように、byte列を、間違ったEncodingで解釈した後にそのまま別のEncodingを使って
さらにbyte列に戻したような値なんじゃないか、と考えたわけです。

なかなか説明が難しくて分かってもらえないと思うんですが・・・。
Encodingの説明ってほんと難しい。

「ファイルが壊れています」じゃ意味がないんです。
壊れたファイルを直したい、という着眼点なので。

Encodingにアタリをつけて、10個くらいにしぼって
10×10×10の組み合わせで読み込んでみるか・・・。
UTF-8フラグの解釈なんかも含めたらさらに8倍か・・・しんどいなあ
242デフォルトの名無しさん:2012/04/17(火) 02:56:18.32
>>239
いちいちプログラミングするのも面倒だろうから
テキストエディタに表示して文字コードいろいろ試してみたら
それで無理なら何やっても無理だと思うけど

それとnull文字、Invalid文字としてファイル名から削除されているかもね
そんなに入手しづらい同人誌だったの?
243デフォルトの名無しさん:2012/04/17(火) 03:00:21.79
ファイル名も圧縮されているんだからまず解答しなきゃだめでしょ
244208:2012/04/17(火) 03:50:39.24
>>238
ありがとう。どうにかそれでできそうだ
245デフォルトの名無しさん:2012/04/17(火) 06:20:09.16
>>241
俺もそういう機能のzipやrarの復元ツールないかと思ったけどないんだよな
UTF-8ならExplzhが直してくれるけど。だからすべてが可逆的じゃないとか難しいとか判別面倒くさいのかと思った
あと化ける理由はセパレータが'/'じゃなくて'\'な圧縮ツールだとか
246デフォルトの名無しさん:2012/04/17(火) 07:59:54.33
>>242
やってみた。全部目で追ってたら死んじゃう量なんで、
TreeViewにして・・・とやってたら、実行時間と目視の時間込みでこんなことに。眠い。しぬ。

@デコード:SJIS(UTF8フラグ判定あり)
Aエンコード:IBM437
Bデコード:SJIS(UTF8フラグ判定なし)

で、パスの”一部”が見えるようになった。おぞましいことが起きているぞ・・・!
 【文字化け】/【正常】/【文字化け】/・・・
といった感じに、パスセパレータ単位で文字化けしてる階層と、正常に読める階層が入り乱れている。(交互、というわけではない)
恐らく、一度解凍した時にフォルダの階層を作るようなアプリが、
 A. ZIPファイル名からフォルダ名を作成 → フォルダ名は正常。
 B. 中身は正しく読めずファイル名を作成 → ファイル名はダメ。
という動作をした結果だな。Invalid文字なんかも削除されてるだろうから、こりゃあほぼ不可逆だな。

デコ→エンコ→デコだって、今回は3重だったけど、一般化したら何重化されてるかわかんねえからな・・・。
【想定できる文字コード数m】^【文字化け回数】^【パスの深さ】
とか手に負えん。目視せずに判定できるかもほとんど怪しいし。

>>243
DotNetZipのソースちっとばかし読めばいい。ファイル名の処理追うだけなら10分いらなかった。

>>245
セパレータの問題も頭痛いけど、さすがにそんな馬鹿なツールは使ってないと・・・自分を信じたい。
自機の定期バックアップに、ころころアプリ変える自分の頭が悪いから、無いとは言い切れないけど。
247デフォルトの名無しさん:2012/04/17(火) 08:04:21.17
ん、でもまてよ・・・PKWareの仕様に従うソフトならUTF8かIBM437でエンコ/デコするだろうし、
独自の、といってもMacとWin環境しか使ってないし、SJIS(MAC)、SJIS(Win-3J)、EUCくらいが関の山か。
ある程度絞り込んでやれば行けそうだな・・・
248デフォルトの名無しさん:2012/04/17(火) 08:12:08.17
日本語で問題が出るツールって大抵EUだな
249デフォルトの名無しさん:2012/04/17(火) 08:18:58.53
【ワシントン=石元悠生】東京都の石原慎太郎知事は16日午後(日本時間未明)、ワシントン市内で講演し、
「尖閣諸島を(東京都が)購入する」と明らかにした。すでに、地権者サイドとも交渉し、合意を得たもようだ。沖縄県石垣市とも協力する方針という。

石原知事によると、昨年末に、交渉を開始。購入エリアは「尖閣諸島のほぼすべのエリアになるだろう。国のために買う」と言及した。
今年度中に、都議会に諮り、東京都が尖閣諸島を所有する予定にしているという。

http://sankei.jp.msn.com/politics/news/120417/plc12041704580005-n1.htm
250デフォルトの名無しさん:2012/04/17(火) 09:29:51.06
J#使っちゃうとか
251デフォルトの名無しさん:2012/04/17(火) 09:39:38.57
>>248
Encodingの問題は、必要に迫られて考えてもえらい混乱し易い問題だからな・・・
大した必要も感じない英語圏の人間が安易な方向へ逃げたとしても、強く糾弾しがたい。
252デフォルトの名無しさん:2012/04/17(火) 10:34:16.61
世界中の言語と記号をサポートした大統一エンコードがほしい
253デフォルトの名無しさん:2012/04/17(火) 10:47:49.84
世界中の言語と記号をサポートした大統一エンコードを考えるより
世界中の言語と記号を廃止して新規文字に世界統一するほうが簡単
254デフォルトの名無しさん:2012/04/17(火) 10:48:35.59
つユニコード
255デフォルトの名無しさん:2012/04/17(火) 11:14:35.09
ユニコードの持つ問題は多いけど、思想の出発点としては大事だよな。
半角カナだの全角英数だのは、本気で廃止して欲しかったけど。
256デフォルトの名無しさん:2012/04/17(火) 12:11:44.45
C#でSQLite.NETを使ってます
%を含む可能性のある文字列(name)で前方一致したいのですがうまくSELECTできません
どのように記述すればよいでしょうか?

SQLiteCommand command = con.CreateCommand()
command.CommandText = "SELECT * FROM HOGE WHERE NAME LIKE @name + '%'";
command.Parameters.AddWithValue("@name", name);
257デフォルトの名無しさん:2012/04/17(火) 12:12:45.57
後で読み返すと、どれが自分のレスかすぐわかるなあ
特徴ある
258デフォルトの名無しさん:2012/04/17(火) 12:14:21.32
>>256
どうせ後で色々悩むだろうから、SQLインジェクションでググっておくことを勧める。
259デフォルトの名無しさん:2012/04/17(火) 12:44:39.03
>>256
たぶん
command.CommandText = "SELECT * FROM HOGE WHERE NAME LIKE @name";
command.Parameters.AddWithValue("@name", name + "%");
260デフォルトの名無しさん:2012/04/17(火) 13:01:26.27
ナルト使うとメタ文字になるけど、言語の話ではないのか・・・。
261デフォルトの名無しさん:2012/04/17(火) 13:13:08.93
LIKE @name ESCAPE '$'
name.Replace("%","$%") + "%"
262256:2012/04/17(火) 13:31:34.85
>>261
LIKE 〜 ESCAPEでESCAPEに指定した文字の直後にあるワイルドカード文字はリテラルとして処理されるんですね
ありがとうございました
263デフォルトの名無しさん:2012/04/17(火) 14:19:48.83
いえいえ
264デフォルトの名無しさん:2012/04/17(火) 16:29:58.07
11
265デフォルトの名無しさん:2012/04/17(火) 16:30:44.68
11
266デフォルトの名無しさん:2012/04/17(火) 19:43:02.52
難しいロジックを考えているとすごく脇汗が出て
しかもすごく臭いんですけど、みなさんはどうですか?
267デフォルトの名無しさん:2012/04/17(火) 19:46:40.99
難しいこと考えてる時はだいたい自分がバグってるから考えなおすかな。
もっとシンプルになるはずだ〜。
268デフォルトの名無しさん:2012/04/17(火) 20:51:15.02
難しいこと考えて、こういうクラスが必要、ああしてこうして……と
コード量が爆発してきたときはたいてい何か間違ってることが多いからリセット。

>>266
あせわきパッドおすすめ
269デフォルトの名無しさん:2012/04/17(火) 21:08:47.08
宇宙の方程式を一行で書ける人が世の中にはいるのに
お前らときたら、冗長で糞みたいなクラスを設計しているんだな
270デフォルトの名無しさん:2012/04/17(火) 21:10:56.82
宇宙の方程式とかどうでもいいからさー
271デフォルトの名無しさん:2012/04/17(火) 21:10:57.24
お前のコードを見せてくれよ 一行でいいから
272デフォルトの名無しさん:2012/04/17(火) 21:13:32.43
宇宙、それは、最後のフロンティア
273デフォルトの名無しさん:2012/04/17(火) 21:17:51.12
・とりあえず、動くものを作って、それから効率を考えようと始める
・とりあえず、動いたので修正しようとするが、データ型を変更しなければならないと気づき面倒になる
・また、いつかやろうと放置する
・しばらくして、よいアイデアが開いめいたので、改良しようとするが、
難読化されたようなコードで読解不能になる
274デフォルトの名無しさん:2012/04/17(火) 21:24:19.06
he Answer to life, the universe, and everything
275デフォルトの名無しさん:2012/04/17(火) 21:27:23.34
Tがぬけてるぞ
276デフォルトの名無しさん:2012/04/17(火) 21:40:01.57
>>273
あるある。
結局作りなおして、同じサイクルにハマるんだよな。納得するまで。
277デフォルトの名無しさん:2012/04/17(火) 21:43:47.91
2つ目のコロンは要らないな
278デフォルトの名無しさん:2012/04/17(火) 21:55:19.67
C# 、ToolStrip内にコンボボックスを置いたんですが、
ユーザーがリサイズできるようにするには何をしたらいいんでしょうか?

サイズが固定のままで困ってます。
ギコナビの上にある「フィルターみたいなやつ」みたいに、サイズ変更できるコンボボックスが作りたいなーと
279デフォルトの名無しさん:2012/04/17(火) 22:01:47.40
AutoSize = false;
280デフォルトの名無しさん:2012/04/17(火) 22:13:44.44
( ・ω・)y─┛〜〜
281デフォルトの名無しさん:2012/04/17(火) 22:25:56.38
パッと思いつくのはAutoSize切ってMouseDownでフラグ立てて座標が右端ならMouseMoveでWidthを変えるとかか?
282デフォルトの名無しさん:2012/04/17(火) 22:54:38.81

俺、今からSlimDXはじめる。
283デフォルトの名無しさん:2012/04/17(火) 23:07:23.23
dxlibだろ
284デフォルトの名無しさん:2012/04/17(火) 23:19:41.99
スリムドカン
285デフォルトの名無しさん:2012/04/17(火) 23:22:32.68
王道のXNAをわすれてもらってわこまりゅー。
286デフォルトの名無しさん:2012/04/17(火) 23:26:44.18
directwrite早く簡単に使えるようになるといいなぁ
287デフォルトの名無しさん:2012/04/17(火) 23:32:41.81
可愛い幼女に教えてもらいながらプログラミングしたら捗るのになぁ
288デフォルトの名無しさん:2012/04/17(火) 23:36:21.62
幼女なのに俺より頭いいのか・・・。すげー幼女すげー。
289デフォルトの名無しさん:2012/04/17(火) 23:41:24.70
集中できません
290デフォルトの名無しさん:2012/04/17(火) 23:48:09.77
おまえらが想像してる部分は、privateメンバーでアクセスできないから心配すんなっ
291デフォルトの名無しさん:2012/04/18(水) 00:09:54.55
おにいちゃん、またまちがってるぅ
C++とちがって、デストラクタの保障がないから
自分でDisposeしなきゃだめでしょ!
292デフォルトの名無しさん:2012/04/18(水) 00:36:39.34
>>291
意味がさっぱりわけわかめだよ
さわりっこに例えて説明してね
293デフォルトの名無しさん:2012/04/18(水) 00:45:50.47
>>290
MyThirdFootクラスのStatusプロパティがMaximizedになってるのにそりゃないよw
294デフォルトの名無しさん:2012/04/18(水) 00:47:58.65
その前にTaiihoフラグが立つから気をつけろ
295デフォルトの名無しさん:2012/04/18(水) 00:56:34.23
www
296デフォルトの名無しさん:2012/04/18(水) 01:03:05.65
イベント駆動
297デフォルトの名無しさん:2012/04/18(水) 01:05:04.59
>>290
Insertメソッド公開してもらおう
298デフォルトの名無しさん:2012/04/18(水) 01:11:47.90
+を使った結合より
System.out.println(new StringBuilder().append(str1).append(str2).append(str3).toString());
StringBulder使った方が速いんですよね?
299デフォルトの名無しさん:2012/04/18(水) 01:16:37.92
自分で試して計測しろよ。圧倒的な差に棚から牡丹餅。
300デフォルトの名無しさん:2012/04/18(水) 01:17:31.37
Javaかよ…。
というのはともかくC#ではプラス連結でも変わらん or プラス連結のほうが速い。
301デフォルトの名無しさん:2012/04/18(水) 01:19:06.70
>プラス連結のほうが速い。
>プラス連結のほうが速い。
>プラス連結のほうが速い。
>プラス連結のほうが速い。
>プラス連結のほうが速い。
302デフォルトの名無しさん:2012/04/18(水) 01:20:55.79
>>298
実測して外から観測するかソースを見てみろ
なんでも情報が出てくるわけじゃねーぞ
303デフォルトの名無しさん:2012/04/18(水) 01:22:50.28
>>301
300だけど、何か気に障った?
298の例のような単純な結合のコンパイル結果わかってる?
もちろん、ループで結合とかだと話は別だけどね。
304デフォルトの名無しさん:2012/04/18(水) 01:27:32.98
文字列何回も足すとボトルネックになるレベルで遅くなるな
305デフォルトの名無しさん:2012/04/18(水) 01:33:00.87
駄目だ…SlimDXは敷居が高すぎた
素直にXNAにしよう
306デフォルトの名無しさん:2012/04/18(水) 01:35:36.54
+連結だと、stringのインスタンスを作り直すから
あれやこれやするならStringBuffer使った方が速いと思うけど、
単純に2つの文字列結合するぐらいなら+のほうが速いと思う。
307デフォルトの名無しさん:2012/04/18(水) 01:41:10.22
+連結が一番速いよ。
大量に足す場合でもね(もちろん、一文全部の+を書いた場合だけど)。

StringBuilder使わんとまずいのは、ループで累積的に足し続けていく場合(どんどん長くなっていく場合)だけと言っていい。

+よりStringBuilderが速いと思ってるのはあほ。
いや、騙されてるやつが多いからあほは言い過ぎか。
308デフォルトの名無しさん:2012/04/18(水) 01:42:38.27
文字列変数を大量に足すと内部ではどういうコードになるんだ
309デフォルトの名無しさん:2012/04/18(水) 01:43:06.10
正直どっちでもいいよw
310デフォルトの名無しさん:2012/04/18(水) 01:44:17.85
>もちろん、一文全部の+を書いた場合だけど
>もちろん、一文全部の+を書いた場合だけど
>もちろん、一文全部の+を書いた場合だけど
>もちろん、一文全部の+を書いた場合だけど
>もちろん、一文全部の+を書いた場合だけど
311デフォルトの名無しさん:2012/04/18(水) 01:45:34.67
結局、+は糞遅いということじゃねーか。
312デフォルトの名無しさん:2012/04/18(水) 01:46:28.13
A+BとA+B+C+Dみたいに複数連結するのは同速か微差なの?
313デフォルトの名無しさん:2012/04/18(水) 01:47:07.23
一文で全部の+を書いた場合の言い間違いだが、それ以外に何かおかしいか?

s = a + b + c + d;
とか
s = a +
b +
c +
d;
とかって意味だぜ。
314デフォルトの名無しさん:2012/04/18(水) 01:47:40.76
>A+BとA+B+C+D
最速だよ。
315デフォルトの名無しさん:2012/04/18(水) 01:48:05.27
>>311
意味不明
316デフォルトの名無しさん:2012/04/18(水) 01:49:11.66
体感で話すんじゃねえ
ちゃんとしたサンプルコードで数字出すかソース見て語れ
317デフォルトの名無しさん:2012/04/18(水) 01:50:26.17
文字列を一文であんまり+する場合はStringBuilderに最適化されるって聞いたような気がする
318デフォルトの名無しさん:2012/04/18(水) 01:51:45.61
基本的に+連結はString.Concatになる。
特に4引数までは速い。
5引数以降は可変長引数経由になるので理屈上は4引数までより遅くなる。
無駄がないのでStringBuilderよりは速い。
319デフォルトの名無しさん:2012/04/18(水) 01:52:32.03
>>313
おまえの脳内条件なんかどうでもいいよw

StringBuilderが速くて当り前。
320デフォルトの名無しさん:2012/04/18(水) 01:55:59.42
ちゃんとした根拠なしで早い遅いって小学生のxxが最強話かよw
それでよくIT関連で仕事できるな
321デフォルトの名無しさん:2012/04/18(水) 01:58:31.13
int totalLength = str0.Length + str1.Length + str2.Length + str3.Length;

string result = FastAllocateString(totalLength);
FillStringChecked(result, 0, str0);
FillStringChecked(result, str0.Length, str1);
FillStringChecked(result, str0.Length + str1.Length, str2);
FillStringChecked(result, str0.Length + str1.Length + str2.Length, str3);

ふうん、こうなのか
322デフォルトの名無しさん:2012/04/18(水) 01:59:47.65
IL見れば明らかなのに根拠がないってアホ杉。
そもそもMSDNライブラリにStringBuilderが速い理由も書いてる。
それすら読まずに根拠なし〜ってどんだけアホなんだ。

遅い理由はJAVAと同じ。誰でも知ってる。知らないおまえが小学生以下。
323デフォルトの名無しさん:2012/04/18(水) 02:02:12.43
>>322
見れば明らかなのに・・・x
この辺を見ればわかるのにとURLを出すなどサンプルも一緒にだして説明する・・・○
324デフォルトの名無しさん:2012/04/18(水) 02:03:18.01
もっと慇懃に煽れよ
325デフォルトの名無しさん:2012/04/18(水) 02:04:01.69
実測してみた。8連結の場合の実行時間ms(ループで10万回分)。

+:248
StringBuilder:369
+:256
StringBuilder:367
+:204
StringBuilder:349
+:257
StringBuilder:312

+のが速いなwww
326デフォルトの名無しさん:2012/04/18(水) 02:05:37.76
ttp://ideone.com/UTDiO
上げといた。
327デフォルトの名無しさん:2012/04/18(水) 02:05:58.25
ほんとILを見ればどちらが速いか明らかだよね、+のほうが速いって。
328デフォルトの名無しさん:2012/04/18(水) 02:10:36.55
>>323
MSの説明もソースも自分のPCで見れるのに、理解できないのは当人の問題。
URLだそうとサンプル出そうと本人は自分の間違いを絶対に認めない。
説明するだけ無駄。馬の耳に念仏。
329デフォルトの名無しさん:2012/04/18(水) 02:12:44.10
もう可読性で選べばいいんじゃないかと。
使いやすいほう使っておけばいい。
330デフォルトの名無しさん:2012/04/18(水) 02:12:47.40
ワロタw
完全にStringBuilderの使い方間違ってるじゃねーかw

どんだけ素人だよw
331デフォルトの名無しさん:2012/04/18(水) 02:14:07.64
何が間違ってるの?
ループは計測できるように繰り返してるだけだぜ。
しかも8連結とまで説明もしてるのに、コード見て意味も理解できないほど素人なのか?
332デフォルトの名無しさん:2012/04/18(水) 02:14:13.40
なんだ。StringBuilderの使い方が理解できず遅いって言ってたのか。

困った奴だ。
333デフォルトの名無しさん:2012/04/18(水) 02:14:37.25
>>328
主張するほうが資料出したほうが早いだろ


ちなみに俺はどちらでもいい方だよw
334デフォルトの名無しさん:2012/04/18(水) 02:15:23.13
そもそもループで累積的に繰り返す場合はStringBuilderって最初に言ったろうが。
どんな場合でも常に+が速いなんて誰が言ってんだか。
335デフォルトの名無しさん:2012/04/18(水) 02:15:33.37
適当なこと言って煽ってるだけなんだから相手すんのやめようぜ
初心者スレ汚しすぎ
336デフォルトの名無しさん:2012/04/18(水) 02:16:37.43
まさかコードの意味も理解できない素人ばかりとは…
337デフォルトの名無しさん:2012/04/18(水) 02:18:18.95
>>330
これじゃStringBuilderの意味ないな。

338デフォルトの名無しさん:2012/04/18(水) 02:19:25.81
荒らしにしても初心者だますのはやめろよ
339デフォルトの名無しさん:2012/04/18(水) 02:19:26.56
>>331
newを何度もすんな。ど素人かよ。
なんのためのStringBuilderだよ。
MSDNの解説を理解できてない典型的な馬鹿だな。
340デフォルトの名無しさん:2012/04/18(水) 02:20:26.38
ここまで俺一人の自演
341デフォルトの名無しさん:2012/04/18(水) 02:23:37.61
>>339
8回連結の計測だって言ってんだろうが。笑わすな。
繰り返してるのは計測可能な程度時間かかるように引き伸ばしてるだけだ。
計測するのに使いまわしたら計測に並んだろうが。

て多分真面目に答えても意味ないだろうな、わざとか本当に理解できないあほかどっちかじゃ。
342デフォルトの名無しさん:2012/04/18(水) 02:26:01.07
短すぎて計測できない処理を計測するために、繰り返すってやり方自体理解できないんだろう。
まともな計測とかしたことないんだろ、こういうやつは。
343デフォルトの名無しさん:2012/04/18(水) 02:26:04.32
相手は煽れればなんでもいいんだから相手したら負けやで
344デフォルトの名無しさん:2012/04/18(水) 02:30:30.34
+:156
StringBuilder:24
+:177
StringBuilder:23
+:164
StringBuilder:23
+:179
StringBuilder:25

正しい使い方に変更してやったらこんな感じ。これが現実。
345デフォルトの名無しさん:2012/04/18(水) 02:31:58.31
>>298
だまされるなよ、無理かもしれんがw
346デフォルトの名無しさん:2012/04/18(水) 02:35:26.09
>>344
条件の違う処理を比較をして何が楽しいんだか。
ってかそれどういう計測だよ、いろんな意味でおかしくないか?
意味のある計測なら、もっと圧倒的に差が出るか、差が出ないかどっちかでないとおかしいぞ。
347デフォルトの名無しさん:2012/04/18(水) 02:39:11.85
+ 3596150 tick
StringBuilder 1652 tick
+ 3661712 tick
StringBuilder 1251 tick
+ 3711753 tick
StringBuilder 1408 tick

http://ideone.com/sMBKd

ちょっとやってみた。
348デフォルトの名無しさん:2012/04/18(水) 02:40:11.33
>>346
StringBuilderって名前のとおりそういう用途だもの。
newしまくるコードをしないようにして高速化するのが目的。

ループごとにnewするテストコード書いて遅いとか釣り針でか杉。

>bulder.ToString();
349デフォルトの名無しさん:2012/04/18(水) 02:43:17.11
+:216
StringBuilder:179
+:254
StringBuilder:158
+:273
StringBuilder:202
+:240
StringBuilder:173

StringBuilder使いまわしてもうちではこんなもんだな
>>344はデタラメだわ
350デフォルトの名無しさん:2012/04/18(水) 02:45:32.06
>>349
まだ使い方が間違ってるということだなw
351デフォルトの名無しさん:2012/04/18(水) 02:50:21.97
>>346
だからそういう用途であって、+を置き換えるだけじゃ意味ねーよって同じこと言ってんのに、
っていうかそれを示してるコードなのに意味を取り違えてることも理解できない屑。

>ループごとにnewするテストコード書いて遅いとか釣り針でか杉。
計測できる時間に引き延ばすためのループって何回説明しても理解できない屑。
352デフォルトの名無しさん:2012/04/18(水) 02:50:33.12
>>350
ああ、bulder.ToStringを削ったのね
もはやなんの比較にもなってないな
353デフォルトの名無しさん:2012/04/18(水) 02:50:34.84
実験したソースも出さないで
354デフォルトの名無しさん:2012/04/18(水) 02:51:19.74
あの程度の計測コードの意味も理解できない程度のおつむなのさ。
355デフォルトの名無しさん:2012/04/18(水) 02:51:52.97
>>352
糞噴いた。
356デフォルトの名無しさん:2012/04/18(水) 02:52:21.74
+ 2426348032 tick
StringBuilder 3208992 tick
+ 2420498544 tick
StringBuilder 3220864 tick
+ 2364107064 tick
StringBuilder 3132504 tick

おれのPC遅いなぁ。
357デフォルトの名無しさん:2012/04/18(水) 03:04:27.99
+のほうが速いと言ってたのに、>>347 のこの圧倒的な差をスルーするのはどうかと思う。
358デフォルトの名無しさん:2012/04/18(水) 03:05:32.66
                     /j
                   /__/ ‘,
                  //  ヽ  ', 、
                    //    ‘     
                /イ       ', l  ’     …わかった この話はやめよう
               iヘヘ,       l |  ’
               | nヘヘ _      | |   l    ハイ!! やめやめ
               | l_| | | ゝ ̄`ヽ | |〈 ̄ノ
               ゝソノノ   `ー‐' l ! ¨/
            n/7./7 ∧        j/ /     iヽiヽn
              |! |///7/:::ゝ   r===オ        | ! | |/~7
             i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ..     nl l .||/
             | | | | l {':j`i::::::::::::::::`ーr '         ||ー---{
              | '" ̄ ̄iノ .l::::::::::::::::::::::∧       | ゝ    ',
      , 一 r‐‐l   γ /、::::::::::::::::::::::::〉ー= ___  ヘ  ヽ   }
    / o  |!:::::}     / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ     ノ
   / o    ノ:::::∧   /ヽ  o  ヽ::::::::| o i::::::::ヽ、 /   /
   /    ノ::::::/    /::::::::ヽ  o  ヽ:::| o {::::::::::::::Υ   /
359デフォルトの名無しさん:2012/04/18(水) 03:08:57.60
>>347
我が軍は圧倒的ですね。
360デフォルトの名無しさん:2012/04/18(水) 03:10:28.03
+の方が早いってのは>>298が発端だろ?
>>347の扱い方をするべきなのは判ってるけど、論点が違うって言ってんだろ。

ただ、>>326じゃnewしまくりなのが酷いから変えてみた。
ttp://ideone.com/qEj7w
これでもうStringBuilderの方が早いな。

>>318を受けて、dまででも比べてみたけど、まだStringBuilderの方が早かった。
更に2つまで、つまりbまでで比べてみたら、ループ3回目までは+の方が早かったけど、
最後だけ+の時間が倍くらいに増えて、StringBuilderの方が早かった。
361デフォルトの名無しさん:2012/04/18(水) 03:12:10.50
StringBuilderにClearなんて出来てたんだ
362デフォルトの名無しさん:2012/04/18(水) 03:13:44.74
>>357
>+のほうが速いと言ってたのに
8連結程度ならStringBuilderより+の方が速いっていみじゃね?(>>325)
>>347>>352だから論外。

>>360
newしまくってる意味わかってる?
363デフォルトの名無しさん:2012/04/18(水) 03:17:59.81
>>362
ごめん、分からない。
今回のような使い方するなら連結用のBuilder1つ用意しておけばいいんじゃね、って思ってるから。
364デフォルトの名無しさん:2012/04/18(水) 03:20:08.47
お前らもう寝ろ
365デフォルトの名無しさん:2012/04/18(水) 03:23:56.49
+の連結とStringBuilderの比較であって
ベンチを早くするのが目的じゃないからな
Builderを使いまわせるケースもないわけじゃないけど
StringBuilderでToString()しないっていうのはありえない
366デフォルトの名無しさん:2012/04/18(水) 03:25:35.38
・・・+派、StringBuilder派双方ともに論点が微妙にずれてるから気を付けろ。
集団どうしで論じると、個々の頭の中では正しいことでも、
全体でずれたこと論じてるコトが良くあるって言うからな・・。

本来は「派」なんてもの関係なく答えはあるんだけどさ。

var builder = new StringBuilder();
for (int i = 0; i < 10000; i++)
  builder.Append(A);
var result = builder.ToString();
と、
var result = "";
for (int i = 0; i < 10000; i++)
  resulult += 'A';

と、どっちが早いか。要するに一定のインスタンスに大量の文字(列)を追加する場合、
そんでもって、も一つは

var a = "012";
var b = "345";
var c = "678";
var result = a + b + c;

var a = "012";
var b = "345";
var c = "678";
var result = new StringBuilder().Append(a).Append(b).Append(c);

と、どっちが早いかって話。要するに、追加する文字列の数自体は固定である場合。
ミニマムな性能テストコードを書いた場合、テストの(性能差を感覚的に有意にする)ためのコードと、
性能試験したい対象のコードをごっちゃにしないようにしないと混乱するぞ。
367デフォルトの名無しさん:2012/04/18(水) 03:25:45.04
ループ内でToString()したらStringBuilder使う意味がない。というかただのアホ。
newがなぜ遅いか理解してないか、newの意味自体理解してないか。
368デフォルトの名無しさん:2012/04/18(水) 03:26:27.44
あ、実際組んだワケじゃなくてこの場で書いてるから動かんコードだったらすまん。
369デフォルトの名無しさん:2012/04/18(水) 03:27:40.93
+派がおかしい。MSDNに書いてあるとおり。StringBuilderはnewしないから速い。
StringBuilder使ってnewしまくるコード書いて遅いと言ってる奴はPGに向かない。
370デフォルトの名無しさん:2012/04/18(水) 03:30:58.31
var str = "A" + "B" + "C" + "D" + "E";
これはまあ早いんだけども

var str = "A";
str += "B";
str += "C";
str += "D";
str += "E";

これと比べたら

var str = new StringBuilder().Append("A").Append("B").Append("C").Append("D").Append("E").ToString();

こっちのほうが早いはず


なんにしても>>367は荒らしたいだけだから無視したほうがいい
371366:2012/04/18(水) 03:31:01.97
あ、366だけども、上の場合の比較はStringBuilder、
下の場合の比較は+が高速、ってことで合ってるよね?
動かせる環境がありゃすぐ動かしてみるんだが、俺の認識間違ってたら色々やばいな。
372366:2012/04/18(水) 03:31:24.55
>>370
それホントか?ちょっと試しに動かしてみて欲しい。
373デフォルトの名無しさん:2012/04/18(水) 03:32:42.58
>>370
>>372
多分、コンパイル字に最適化されて比較の意味がない
374デフォルトの名無しさん:2012/04/18(水) 03:35:46.85
>>370
荒らしおまえだろ。そのIL比べてみろよ。
ループ内でToString()を使うのはただのアホ。
stringをnewしまくってることに気づいてないアホ。

>>347 の結果が証左。
375デフォルトの名無しさん:2012/04/18(水) 03:38:03.63
>>374
StringBuilderをToStringせずにClearするコードなんて現実的にありえないから
そんなことする意味がない
376366:2012/04/18(水) 03:39:20.10
>追加する文字列の数自体は固定である場合。
これはちと表現間違ったな。やっぱりいかんな、気を抜いては。
377デフォルトの名無しさん:2012/04/18(水) 03:41:26.08
>>372
>>326を元に試した。ときどき遅くなるけど、ほとんどBuilderの方が早かった。
378デフォルトの名無しさん:2012/04/18(水) 03:41:53.14
>>375
>>374 が正しい使い方。ToString()はループの外。ループ内とかただのアホ。

せっかくバッファ使ってnewしないようにしてるのにいちいちnewして何したいの、ボク?
379デフォルトの名無しさん:2012/04/18(水) 03:46:35.51
>>378
ループさせたのは1回じゃ計測できないからってだけで、
本来は連結からstring型への格納までが1回。
ここでのToString()にループの内外関係ないだろ。
380366:2012/04/18(水) 03:48:15.90
>>377
マジか。認識改めるわ。
このコードは>>366の後者にあたるテストだが、その場合だけは+の方が早いと思ってた。

ループ内にToString()があるのは、それが性能テスト対象だから当然だと思うんだが、
俺と認識あってるよな・・・?
381デフォルトの名無しさん:2012/04/18(水) 03:50:44.66
>>378
>>326を読め
ループの中でToStringしなかったら文字列配列を作るっていう同じ結果が出せなくなるんだから比較にならない

StringBuilderの正しい使い方の話をしてるんじゃなく
+の連結とStringBuilderのどっちが早いかを話してるってことを理解しろ
StringBuilderの時だけインスタンスを使いまわしたりToStringを省略することが
+の連結とStringBuilderを正しく比較するのにどう有用なのか説明してみろ
382デフォルトの名無しさん:2012/04/18(水) 03:51:32.15
>>379
処理時間の大半がToString()に費やされてるテストに何の意味があるんだ?
連結のテストではなかったのか?

そのテストで分かったことはstringをnewすることは糞遅いということ。
すなわちその糞遅い処理をバッファにしてnewを端折れるStringBuilderが速いということ。
383デフォルトの名無しさん:2012/04/18(水) 03:51:50.41
>>326 はさ
s = a + b + c + d + e + f + g + h;

StringBuilder bulder = new StringBuilder();
bulder.Append(a).Append(b).Append(c).Append(d).Append(e).Append(f).Append(g).Append(h);
s = builder.ToString();
を比べてるんだよ。ループは速度たしかめる為のもんだから、この際あんまり関係ないよ
384デフォルトの名無しさん:2012/04/18(水) 03:54:05.52
>>382
お前はStringBufferをToString()せずに使うのか?
385デフォルトの名無しさん:2012/04/18(水) 03:55:24.08
>>381
文字配列を作る時間を計るテストだったのか? テストの意図が随分違うね。
+もStringBuilderもstring配列を作る時間が大半じゃテストとしては不適当だね。

>>347 がテストとしては正しいテストだね。stringとStringBuilderの明確な違いが出てる。
386デフォルトの名無しさん:2012/04/18(水) 03:56:09.81
>>384
ループ内ではと何度言ったら理解できるんだ? 認知症か?
387デフォルトの名無しさん:2012/04/18(水) 03:58:16.12
文字列処理を高速に行う
http://dobon.net/vb/dotnet/string/stringbuilder.html

すごいサイト見つけた。こいつ詳しすぎ。天才ハッカーだね。
388デフォルトの名無しさん:2012/04/18(水) 03:58:41.63
StringBuilder のToStringってバッファをstringに変換するメソッド。
つまりは、文字列を出力したりするときに使う物で文字列を生成するときに使う物ではないと思う。

+:519
StringBuilder:354
+:376
StringBuilder:406
+:454
StringBuilder:304
+:380
StringBuilder:361

http://ideone.com/CtEwi
389デフォルトの名無しさん:2012/04/18(水) 04:01:08.47
>>377のコードも一応上げておく。
こういうことを聞いてたんで合ってるよな?
http://ideone.com/0lEHf

>>382 >>385
論点を理解してないみたいだからもう黙っておけよ。
390デフォルトの名無しさん:2012/04/18(水) 04:03:29.55
敗軍が論点ずらしを始めた模様。
391デフォルトの名無しさん:2012/04/18(水) 04:20:59.58
いったいToStringしないStringBuilderで計測してるやつは何がやりたいんだw
392デフォルトの名無しさん:2012/04/18(水) 04:21:52.18
>>388
いったい何と何を比較してるんだそれはw
393デフォルトの名無しさん:2012/04/18(水) 04:27:04.05
事の発端は>>298
複数の文字列をちゃっちゃと連結して扱いたいわけよ。

そこでStringBuilderのnewからの計測をしたのが>>326
newを省いて計測したのが>>360

>>326では+の方が早いが、
>>360ではStringBuilderの方が早い。
つまり、使いまわせるStringBuilderがあるなら、そっちで連結した方が早いわけだな。
394デフォルトの名無しさん:2012/04/18(水) 04:27:36.48
s = a + b + c + d + e + f + g + h;

StringBuilder bulder = new StringBuilder();
bulder.Append(a).Append(b).Append(c).Append(d).Append(e).Append(f).Append(g).Append(h);
s = builder.ToString();

を比べてるんだからStringBuilderを使いまわすとかそもそも想定してない。
文字列を連結しようとしたときに、そこにStringBuilderのインスタンスがあるわけじゃないんだから。
最初からそれだけのことなのに何をうだうだ言ってるのか。

本当に>>326の意味が理解できないやついっぱいいるんだなあ。
395デフォルトの名無しさん:2012/04/18(水) 04:30:13.28
>>386
じゃあ両者の比較をするのに、どこでToString()するんだよw
396デフォルトの名無しさん:2012/04/18(水) 04:32:52.74
低レベル・・・と言いたいけど、こういう基礎的な議論は自分の基礎を改めて確認したり、
意外なところにあった勘違いを見直したりする良い機会だから良い議論だ。
397デフォルトの名無しさん:2012/04/18(水) 04:32:56.06
>>386
ループ内で文字列がほしいときはどうするんだよw
最初からそういう話なのに分からないんだよなあw
398デフォルトの名無しさん:2012/04/18(水) 04:34:34.63
>>382
www
いやいやいやwww
399デフォルトの名無しさん:2012/04/18(水) 04:35:26.81
「ループ」っていうのが、ロジック上のループなのか
時間計測のため(に大量処理を疑似的にするため)のループなのか見抜けないと、
(StringBuilderの早さを論じるのは)難しい。
400デフォルトの名無しさん:2012/04/18(水) 04:36:15.19
>>386
おいおい・・・ソース出してくれよ
401デフォルトの名無しさん:2012/04/18(水) 04:37:25.38
低脳+派は、
>>347 の連結のテストじゃなぜダメなのか説明してもらわないとwww
402デフォルトの名無しさん:2012/04/18(水) 04:39:12.57
>>326のソースコードは、ある意味正しいけど、
ちと分かりづらいな。
必要ない配列使ってたり、どこが試験対象のコードなのか分かりづらかったり。

時間計測(delegate)
 for() // 時間計測のための疑似ループ {
 }
string 試験対象A() { ... }
string 試験対象B() { ... }
みたいなのが望ましい。
403デフォルトの名無しさん:2012/04/18(水) 04:45:58.79
インスタンス使いまわす場合でも、連結数4個なら、
微妙にだが+の方が速いっぽいぜ?
まあほとんど変わらんけどな。
http://ideone.com/GAbR5

+:1090
StringBuilder:1132
+:1155
StringBuilder:1180
+:1153
StringBuilder:1155
+:1119
StringBuilder:1177
+:1083
StringBuilder:1261
+:1137
StringBuilder:1205
+:1110
StringBuilder:1171
+:1133
StringBuilder:1122
404デフォルトの名無しさん:2012/04/18(水) 04:48:50.70
配列使ったりしてるのは最適化の影響をできる限り避けるため。
まあ多分使わなくても大丈夫だとは思うが。
初期化をメソッドに外出ししてるのも同じ理由。
計測範囲はStopwatchの開始からStopでわかるだろ常考。
比較処理をデリゲートにしたら、デリゲート呼び出しのオーバーヘッドがでかすぎる。
405デフォルトの名無しさん:2012/04/18(水) 04:50:56.91
>>401
基地外。
「計測対象処理内」でToStringしないコードにいったい何の意味があるというのか。
まあ実際はどこにもToStringがないわけだが。
ToStringしないStringBuilderにいったい何の意味があるのかw
406デフォルトの名無しさん:2012/04/18(水) 04:52:23.88
>>394
現実的に考えて、一括連結が複数あるならStringBuilder使いまわせるだろ、
って思ってたんだけど、30個位ないと速度逆転しなかったわ。
環境差もあるかもしれんが。
http://ideone.com/p4kYx

一度につなげる分には+の方が早いってことでいいのかな。
407デフォルトの名無しさん:2012/04/18(水) 04:55:53.48
>計測範囲はStopwatchの開始からStopでわかるだろ常考。
ああ、まあ時間稼ぎのループの意味が分かりにくいことは認める。
でもわかるだろ?普通。
こんなに理解されないとは思わなかったよ。
408デフォルトの名無しさん:2012/04/18(水) 04:58:22.63
単純に引数だかで文字列受け取って連結するなら + で
大きなサイズだったり、不特定多数ならStringBuilderで良いと思うんだが。
409デフォルトの名無しさん:2012/04/18(水) 04:59:46.65
>>407
いや、俺も当然分かるだろ?と思ったんだけどさ。
こうまで伝わりにくいのを見ると、ああ、やっぱりプログラムのソースコードって奴は
「人に伝わるように書かなきゃいけない」んだなあ、と思ったわけよ。
みんながみんな分かると思ったら大間違いだ!っていう原則を思い出しただけ。

あなたのソースは決して間違ってないし、あながち悪いもんでもない。
まあ、コメントつけてやるくらいが妥当な線なのかな。
410デフォルトの名無しさん:2012/04/18(水) 05:02:00.89
あながち悪いモンでもない、って完全に上から目線だな。
オーバーヘッドの考慮とか、プログラムとして考慮すべきところは考慮されてる、
適切なソースだと思います。
411デフォルトの名無しさん:2012/04/18(水) 05:04:56.16
>>405
>>347 にToString()をつけてもよかとよ?wwww
結果はほとんど変わらないけどwww

低脳は反論も低脳だなぁwww
412デフォルトの名無しさん:2012/04/18(水) 05:05:35.38
まあ実際には、ある程度の量の文字連結が必要になるシーンって、
こんなミニマムなソースコードになることは稀だし、
StringBuilderの使い方には気を付けろ、って意味では勉強になる
413デフォルトの名無しさん:2012/04/18(水) 05:06:55.45
>>411

StringBuilderが圧倒的であることには変わりないが、
本当に「ほとんど」変わりないか?時間自体は結構な差があるぞ。
414デフォルトの名無しさん:2012/04/18(水) 05:07:43.94
まあ5分かもうチョイ程度で書いたコードだ勘弁してくれ。
415デフォルトの名無しさん:2012/04/18(水) 05:08:08.29
>>411
Stringに何回も+=するよりStringBuilderが効率的だなんて
C#が生まれる前から分かりきってた話で今問題にしてるのはそこじゃないからな
416デフォルトの名無しさん:2012/04/18(水) 05:09:56.94
>>411
そもそも本題はループ内でToStringしなきゃ意味がない、計測対象はループの中なんだからって話。
外にすらないじゃんって言っただけであって、外でのToStringなんざ何の意味もない。
417デフォルトの名無しさん:2012/04/18(水) 05:10:58.71
>>411こいつ未だに何を比較してるのか理解してないのか?それともごまかし続けるのか?
418デフォルトの名無しさん:2012/04/18(水) 05:13:17.17
419デフォルトの名無しさん:2012/04/18(水) 05:14:03.46
>>411に対する指摘は、「string の +演算子」と「StringBuilderによる組み立て」どちらが速いか、
 という本題にとっては横やりでしかないんだが、
それにしたって>>411の論点に気づけない浅はかさと、レスの子供っぽさは特筆に値する頭の悪さだな、と思う。
420デフォルトの名無しさん:2012/04/18(水) 05:15:02.17
>>411の人気に嫉妬
421デフォルトの名無しさん:2012/04/18(水) 05:15:38.52
422デフォルトの名無しさん:2012/04/18(水) 05:15:54.90
>>417
ならはっきりとなにを比較してるか説明してみろよ。
文字連結の速度じゃないのか?

ちなみかにToString()は文字連結と何の関係もないぞ。型変換だ。
423デフォルトの名無しさん:2012/04/18(水) 05:17:20.63
もうこいつにさわんなうっとおしい
424デフォルトの名無しさん:2012/04/18(水) 05:17:46.26
>>422
ほ、本気で言ってるのか・・・?
425デフォルトの名無しさん:2012/04/18(水) 05:20:29.08
朝からなにやってんの?
>>347>>387 で結論で出る。

文字列処理する場合 StringBuilder は圧倒的に速いでOKだろ。馬鹿かおまえら。
426デフォルトの名無しさん:2012/04/18(水) 05:21:20.38
>>422みたいなのが、
上司「君に性能改善してもらったのに、全然改善しないじゃないか!」
422「それは俺が悪いんじゃないッスよwwww文字連結とは関係ない型変換が悪いんスよwww」

とか言っちゃうんだろうな。
全く間違ってることを言ってるんじゃない、ってところが尚タチわりい
427デフォルトの名無しさん:2012/04/18(水) 05:22:46.14
>>425
それで満足するかどうかは別問題だな
結論の出た話について別の視点から話題が発生してる。
428デフォルトの名無しさん:2012/04/18(水) 05:23:47.46
>>425
だな。+派はなにを比較してるのか未だに理解できない。
説明しろと言ってもこの通り説明しないで逃げのレスばかり。
ソース出せと言ったら、処理時間の大半がToString()の糞ソース。
429デフォルトの名無しさん:2012/04/18(水) 05:34:48.99
朝っぱらから自演乙
430デフォルトの名無しさん:2012/04/18(水) 05:39:08.66
勧められたdxlibやってみた
これすごく楽
しばらくこれで遊んでみよう
431デフォルトの名無しさん:2012/04/18(水) 05:39:45.50
+が速いって言ってる人は何が論点なの?
負けを認めたくないだけで荒らしてんの?
432デフォルトの名無しさん:2012/04/18(水) 05:47:17.02
string a = "";
for (int i = 0; i < 100000; i++)
a += "a";

string b = "";
StringBuilder bulder = new StringBuilder();
for (int i = 0; i < 100000; i++)
bulder.Append("a");
b = bulder.ToString();


+:4733
StringBuilder:2

ToString()つけようが使い方が正しければ同じことだ。アホらしい。
433デフォルトの名無しさん:2012/04/18(水) 05:47:39.61
+が速いって言ってる奴いるか?ここ数十レスちかく見かけない気がするんだが・・・
434デフォルトの名無しさん:2012/04/18(水) 05:50:07.20
>>432
そういうことが言いたかったんだよ。
ToString付けずに議論してもあまり意味がない、と。
余談だが、string b = ""; じゃなくて string b で十分じゃね。
435デフォルトの名無しさん:2012/04/18(水) 05:55:19.38
>>434
ループ内でToString()してるアホソースと
ループ内でToString()しないと意味がないというアホレスだらけだが?
436デフォルトの名無しさん:2012/04/18(水) 06:02:19.09
>>435
よく読め・・・>>432のループは、ロジカルなループだろ。100000っていう数字に意味は無いだろうが、
実際の処理でもループの中で文字列を連結するような処理について論じてるんだろ。
>>347は、ソース的に一定の個数(たとえば、a, b, c, ... hの8個)を連結する場合を論じてるんだよ。

ToString()が中か外か、っつーのはそこの話であって、
+の方が速いなんてこたー書いてないぞ。
437433=434=436:2012/04/18(水) 06:13:54.14
よく見たら>>366に書いてあるじゃんか。

前者を検証するのが>>432のソース。
後者を検証するのが>>347のソースだ。
438デフォルトの名無しさん:2012/04/18(水) 06:27:17.39
たった8個の差を計測だと!?wwww

全くもってどうでもいいwww どっちでも勝手に使えwww

絶対に体感できる差はないと断言できるwww

というかStringBuilder使う意味がねぇwwwww アホらし
439デフォルトの名無しさん:2012/04/18(水) 06:59:59.67
俺なんかStringBuilderなんてあるの知らなかったし( ・ω・)y─┛〜〜
440デフォルトの名無しさん:2012/04/18(水) 07:08:43.53
今北
StringBuilderが速いなんて1年生の教科書の最初の方に書いてあるような話題で
屁理屈や話題逸らし論点のすり替えをしまくって自分が正しいと主張し続けている朝鮮人がいるとこまで分かった
441デフォルトの名無しさん:2012/04/18(水) 07:15:26.70
C#がスクリプト言語として利用される時代がきたのかぁ
442433=434=436:2012/04/18(水) 07:32:16.93
>>438
・・・うわぁ・・・
443デフォルトの名無しさん:2012/04/18(水) 07:37:31.77
>>438

>>298が発端。
最初からずっとそういう話。
ずっとごまかし続けてごくろうさん。

ループでの大量連結でStringBuilderの方が速いってことを否定してるやつは一人もいない。
そんな当たり前のことを今更議論する必要もない。
444デフォルトの名無しさん:2012/04/18(水) 07:38:16.23
お前らよく長時間寝ずに>>438みたいなのを相手にしていたな 感心するわ
こいつこのスレに常駐してる荒らしだから触るなよ
445デフォルトの名無しさん:2012/04/18(水) 07:41:01.49
ブログ参考にさせてもらっているんだけど
コメントがまったくついてないのに、どうやってモチベ維持しているの?
446デフォルトの名無しさん:2012/04/18(水) 07:57:10.10
IL、JITコンパイルで最適化されるレベルの差の測定に
大量のString配列を生成したり、ToString()入れるとか狂気。
相手する以前に相手する側が素人丸出しなんだが。

まぁ、ふらっとだからいいか。
447デフォルトの名無しさん:2012/04/18(水) 07:59:58.54
>>445
実際やってみると、書くこと自体でも再認識できることっていっぱいあるし、
後々備忘録としても使えるし、意外と続くモンだよ
448デフォルトの名無しさん:2012/04/18(水) 08:06:48.29
>>446
ど素人ご苦労さん。
何のために配列に結果入れてるか分からないんだな。
ToStringに至っては基地外の言い種。
おまえもしToStringに今の100倍時間掛かるとしても、
ToStringは連結に関係ないから速度に影響無いとでもいう気かw
449デフォルトの名無しさん:2012/04/18(水) 08:07:56.77
String配列は一回の計測で1個しか作ってないんだぜw
450デフォルトの名無しさん:2012/04/18(水) 08:08:55.40
ああ、1個でも大量って言うんだなw
451デフォルトの名無しさん:2012/04/18(水) 08:12:56.82
>>446
微妙な差を計測するから何回も同じ処理を繰り返すんだよw
同じ処理を繰り返さなきゃ意味がないんだよw
452デフォルトの名無しさん:2012/04/18(水) 08:14:50.44
馬鹿は無視しろよ
453デフォルトの名無しさん:2012/04/18(水) 08:38:13.79
奇数個のオブジェクト<T>を保持するリストを作ろうと思ったが、
Listで内部に持つのと、1個の<T>、または2個の<T>と同じクラスのオブジェクト1つを持つことで実現するのと、
どっちが良いかわかんねえな・・・
454デフォルトの名無しさん:2012/04/18(水) 09:11:39.98




  す っ げ ー 有 意 義 な ス レ だ な こ こ は  
455デフォルトの名無しさん:2012/04/18(水) 09:16:32.75
>>454
いや、普通に外部の相談掲示板のほうが有意義だよ。
456デフォルトの名無しさん:2012/04/18(水) 09:22:09.14
>>451
9割無駄なコード入れてどうやってその微妙の差を測定するのかと。
しかも毎回いくら時間かかるか分からないヒープ確保を大量に放り込むとか意味不明。
キミはIL読めない以前にOSの仕組みを理解していないのではないか。
457デフォルトの名無しさん:2012/04/18(水) 09:22:17.77
>>453
nhngdok
458デフォルトの名無しさん:2012/04/18(水) 09:23:20.32
>>455
いえいえ、あなたのようなレスの真意を洞察した適切なレスをなさる方もいらっしゃいますし
459デフォルトの名無しさん:2012/04/18(水) 09:24:06.79
>String配列は一回の計測で1個しか作ってないんだぜw
>String配列は一回の計測で1個しか作ってないんだぜw
>String配列は一回の計測で1個しか作ってないんだぜw

>ああ、1個でも大量って言うんだなw
>ああ、1個でも大量って言うんだなw
>ああ、1個でも大量って言うんだなw

なにこのスレのレベル
460デフォルトの名無しさん:2012/04/18(水) 09:38:46.52
大丈夫、この中にアホは一人だけのはず
461デフォルトの名無しさん:2012/04/18(水) 09:55:56.29
>>456
>>459
一体なにを言ってるんだお前は?
462デフォルトの名無しさん:2012/04/18(水) 10:02:22.77
>>262
誰も指摘してくれてないけど、検索文字中に _ とか $がありえる場合は
それもエスケープするんだよ。
463デフォルトの名無しさん:2012/04/18(水) 10:23:45.77
違った、計測時は1回も配列なんか作ってないな。
1回もやってない処理は大量って言うんだな。
464デフォルトの名無しさん:2012/04/18(水) 11:19:28.68
アホなことで盛り上がっててワラタ
465デフォルトの名無しさん:2012/04/18(水) 13:55:42.33
十分な機能を実装したあとはデザインにも凝りたいよね
ソフトのデザイン規則なんてものがあるのか知らないけど
見た目の色や形は最新OSに近いもの
比率はディスプレイサイズを考慮して4:3や16:9のオブジェクトの組み合わせで作るとか
1:1.1618の黄金比で作るとか
そうか興味ないか
466デフォルトの名無しさん:2012/04/18(水) 14:07:48.81
典型的なコミュニケーション能力欠如のプログラマが暴れててワラタ
計測の為のループなのに何度言っても理解できないなんて低脳すぎるだろw

8つの文字列を連結する速度は+とStringBuilderでどちらが早いかの話であって
ループ内で8つの文字列を連結する速度は+とStringBuilderでどちらが早いかの話ではないだろw
467デフォルトの名無しさん:2012/04/18(水) 14:21:44.28
結論

文字列連結ならStringBuilderの方が高速で低コストだな
1万回連結するような処理じゃなければどっちでもいい
468デフォルトの名無しさん:2012/04/18(水) 14:22:29.43
この業界はコミュニケーション能力欠如のプログラマが大勢いる

低脳すぎる人にも理解できるように説明できない人にも問題ありだ
469デフォルトの名無しさん:2012/04/18(水) 14:24:13.83
>>468
渦中にいたけど、
ホントコミュ障治したいなあ、と実感したよ・・・
470デフォルトの名無しさん:2012/04/18(水) 14:24:21.02
>>468
>低脳すぎる人にも理解できるよう
なんでこんなのが業界にいるのかが謎だけどなw
471デフォルトの名無しさん:2012/04/18(水) 14:27:21.14
小学校で子供に勉強教えるくらい理解してくれない
472デフォルトの名無しさん:2012/04/18(水) 14:28:24.71
>>467も多分わかってないしな
473デフォルトの名無しさん:2012/04/18(水) 14:29:01.40
474デフォルトの名無しさん:2012/04/18(水) 14:29:43.39
問題定義って大事だな。
475デフォルトの名無しさん:2012/04/18(水) 14:32:19.67
>>457
public class OddList<T> {
 private T obj1; // always not null
 private T obj2;
 private OddList<T> list;
 public OddList<T>(T obj1, T obj2, OddList<T> list) {
  if (obj1 == null)
   throw new ArgumentNullException("obj1");
  if (obj2 == null && list != null)
   throw new ArgumentNullException("obj2");
  if (obj2 != null && list == null)
   throw new ArgumentNullException("list");
 }
}

こんな片方向リンクリストなオブジェクトを作るかなあ、と。
476デフォルトの名無しさん:2012/04/18(水) 14:33:19.88
>>470
だって人事部のアホが立派な資格を持ってるだの学歴だの何だの言って入社させ
ちゃったんだもん
477デフォルトの名無しさん:2012/04/18(水) 14:36:11.44
>>476
そもそも専門的な業界なのに素人にレクチャーするくらい噛み砕かなければ
理解出来ない人がいるのって異常だよ
478デフォルトの名無しさん:2012/04/18(水) 14:39:28.44
>>473
だから、それは+とStringBuilderのパフォーマンスの話であって、8つの文字列
を連結する速度は+とStringBuilderでどちらが早いかのじゃないだろが
ちゃんと論点を把握しろよ

8つの文字列を連結する速度は+とStringBuilderでどちらが早いかの話の結論は
+が早い
479デフォルトの名無しさん:2012/04/18(水) 14:41:16.16
>>477
周りの会社を見ている限り、その異常者がこの業界ではまかり通ってると思う。
入社してきた時点で基本的な話がきちんとできる人、って1割いれば良い方、ってのが手応え。

基礎的な専門知識なんて入社した時点で持ってるのが当たり前で、
会社に入って勉強することは、そういう「PG上の基本的な原則」と、
「経済的コスト」と「客の要求」にどう折り合いを付けるか、だと思ってたら、
「PG上の基本的な原則」すら分かってない池沼ばっかりでびっくりした。

まあ社畜SE()だった自分の周りだからこそそんな状況なのかもだけど。
480デフォルトの名無しさん:2012/04/18(水) 14:42:48.63
>>478
×早い
○速い

じゃね?
481デフォルトの名無しさん:2012/04/18(水) 14:45:10.71
>>479
社畜SEは部下の面倒みろよw

問題は土建業界と同じシステムを採用してるので
派遣などで送り込む人までそういうのが混ざってるからややこしくなるw
482デフォルトの名無しさん:2012/04/18(水) 14:47:27.98
ここは初心者スレだからな
業界雑談スレじゃないんだ
>>1を読み直してくれ
483デフォルトの名無しさん:2012/04/18(水) 14:48:28.66
>>481
見切れなくなって、クビ切られてニートさ!ハハッ負け組さッ!

土建業界と同じシステム、についてはホントどうにかして欲しいなあ。
ウォーターフォールの適用限界を実感する日々だったよ・・・。
484デフォルトの名無しさん:2012/04/18(水) 14:48:35.49
>>477
確かに異常だな

まあIT業界は歴史が浅くて伝統がないから、試行錯誤を繰り返してる最中なので
異常な状態でも仕方ないけどな
485デフォルトの名無しさん:2012/04/18(水) 14:49:51.35
これはC#スレを攻撃して普及を阻害しようとするOracleの陰謀に違いない
486デフォルトの名無しさん:2012/04/18(水) 14:51:09.05
>>480
ああ、そうだな、間違えた、添削ありがとう
487デフォルトの名無しさん:2012/04/18(水) 14:54:03.99
>>485
Oracleって優秀な工作員がいるんだなw
488デフォルトの名無しさん:2012/04/18(水) 14:55:20.63
8個ぐらいの連結ならどっち使おうが、1ミリも変わらんだろw
489デフォルトの名無しさん:2012/04/18(水) 14:55:34.66
オラ!クール!
490デフォルトの名無しさん:2012/04/18(水) 14:57:28.06
気持ちの悪いプログラマと一緒に仕事がしたくないからプログラマになるのはやめた
この選択は正解だった
プログラミングは趣味でやるのが楽しい
491デフォルトの名無しさん:2012/04/18(水) 14:58:45.35
ってかここってマな人々は、居るの?
ちなみに俺は、マじゃないけどな
492 忍法帖【Lv=40,xxxPT】 :2012/04/18(水) 15:01:52.04
>>490
だな
>>491
俺は素人で玄人のマじゃない
493デフォルトの名無しさん:2012/04/18(水) 15:01:56.25
>>488
その8こぐらいの連結をしているメソッドが、何回も呼ばれる可能性については考えないのか?
494デフォルトの名無しさん:2012/04/18(水) 15:05:06.67
>>493
低脳マがそんなこと考えられるわけないだろw
495 ◆ctrmjOHDMc :2012/04/18(水) 15:05:45.21
http://toro.2ch.net/test/read.cgi/tech/1197620454/759
で質問したんだが、あっち完全に止まっちゃってることに気づいてなかった
(自分の質問が悪いのかもしれないけど。)
マルチポストで質問したくない、とは思いつつ進まないんじゃしょうもない、とあっちは取り下げさせてもらったので、こっちで改めて聞いても良いだろうか
496デフォルトの名無しさん:2012/04/18(水) 15:05:46.26
>>491
荒らしているのは、プロで病気になっている人か首になった人
俺も素人だから楽しくやりたいだけなのに
業界では常識、そんな奴仕事で使えない、などと言っている人は何なのかと思う
497デフォルトの名無しさん:2012/04/18(水) 15:09:19.78
>>493
その可能性があれば、StringBuilderを使う。
それに俺は、文字列連結は、StringBuilderを使う派だ。+派ではない。
498デフォルトの名無しさん:2012/04/18(水) 15:09:36.81
>>496
ここにもそういう奴が紛れ込んでくるね。
あれはどういうつもりなのだろうか。
499デフォルトの名無しさん:2012/04/18(水) 15:11:44.74
>>497
俺もStringBuilder派だ。まあ、うん。ならいいや。
俺は一体何に噛みついたんだろう。
500デフォルトの名無しさん:2012/04/18(水) 15:13:44.43
>>495
役立たずのスレを見つける才能はあるようだね
C#本スレで聞いたほうがいいよ
501デフォルトの名無しさん:2012/04/18(水) 15:14:42.83
>>498
会社で「そんなの常識だろ」とか「使えねえな」とか言われてる人がストレス発散してるんだろ
502 ◆ctrmjOHDMc :2012/04/18(水) 15:15:12.75
>>500
マジか。そんな才能いらねえ・・・
じゃ、本スレで聞いてきますわ。
503デフォルトの名無しさん:2012/04/18(水) 15:15:15.16
こんなド素人を相手に見下しているレベルの人って
社会的にどういう待遇を受けている人なんだろうと心配になる
成功者と呼ばれるような人が、初心者見下すようなことはまずしないよね
504デフォルトの名無しさん:2012/04/18(水) 15:20:02.42
うーん、ここで聞いた以上、相談室に書くと完全にマルチポストだなあ。いくら取り下げようと。
もう諦めるか・・・
505デフォルトの名無しさん:2012/04/18(水) 15:21:16.69
>>502
荒らしは多いけど親切な人が答えてくれるよ
ソースが読めない
506デフォルトの名無しさん:2012/04/18(水) 15:21:24.35
大学の情報処理で周り見渡したら、なんか暗そうなのばっかり
こんな奴らと一緒に仕事しても人生楽しくなさそうだなと思った
小学生の頃からプログラミングはやっていたので
大学の授業もつまらなかったし、何より教授も人として終わってて出るのをやめた
今はアパレル関係で働いているけど良かったと思う
こっそりエロい同人作っているのはみんなには秘密だけどね
507デフォルトの名無しさん:2012/04/18(水) 15:22:54.94
>>503
>成功者と呼ばれるような人が、初心者見下すようなことはまずしないよね

俺が見てきた成功者には初心者見下すような奴はいなかった
たぶん心に余裕があるから初心者に優しいんだろう、しかも謙虚だったりするし
508デフォルトの名無しさん:2012/04/18(水) 15:25:06.01
たぶんだけど、D&Dとか非同期とかは、Reactive Extensions使えば、結構スマートに書けるんじゃない?
まだあんまり情報が揃ってないから入りにくいかもしれないけど。
509 ◆ctrmjOHDMc :2012/04/18(水) 15:27:02.16
>>505
それ、このスレの話かな
それとも相談室の話かな

ソース読めないな、ホントに。失態だ。アップローダじゃ読みづらくてしょうがないな・・・。
Ideonとやらを使ってみるか・・・
510 ◆ctrmjOHDMc :2012/04/18(水) 15:28:54.59
>>508
Rxかー。一度挫折してるんだよなあ。
一応、モノが宿題で、インターフェース定義がある程度決まってる(Taskを使う)んで、
Rxだと答えられない希ガス。その辺も詳しく書き起こしてみる。
511デフォルトの名無しさん:2012/04/18(水) 15:29:46.33
出来る人間は謙虚だよね。
プロが素人煽って満たされる程度の自尊心というのが情けない
というか、そんなのでプロやっていけるのか?って思うがな
512デフォルトの名無しさん:2012/04/18(水) 15:34:05.78
このスレには親切な人と荒らしが同居している
親切な人のためにも荒れないでいて欲しい
513デフォルトの名無しさん:2012/04/18(水) 15:34:21.03
>>511
そんなのでもITドカタと言われながら30歳くらいまでプロでやっていけるのがこの業界
514デフォルトの名無しさん:2012/04/18(水) 15:39:31.73
間違えてマ板に来てしまったのかと思ったぜw
515デフォルトの名無しさん:2012/04/18(水) 15:52:38.15
どのボタンクリックしたときにイベントハンドラが呼び出されたか判別する方法教えろ
516デフォルトの名無しさん:2012/04/18(水) 15:54:13.83
日本語でおk
517デフォルトの名無しさん:2012/04/18(水) 15:55:11.05
>>515
var senderControl = sender as Control;
if (senderControl != null)
 Debug.WriteLine(senderControl.Name);

ぱっと思いついたところ。ソースに誤字脱字あったらごめん
518デフォルトの名無しさん:2012/04/18(水) 15:59:02.54
button1_Clickが呼び出されるんだからbutton1がクリックされたんだなって分かるだろ
519デフォルトの名無しさん:2012/04/18(水) 16:00:49.06
どこで判別できるのか作りが知らんが
var senderControl = sender as Control;
switch(senderCotrol.Name)
{
 case "":〜

>>518
イベントハンドラを共有してるんだろ
ボタン1000個置いて同一のメソッド呼んでるとか
520デフォルトの名無しさん:2012/04/18(水) 16:02:30.96
void button_click(object sender, EventArgs e)
{
 if(sender == button1) MessageBox.Show("button1がクリックされました");
}

っていうこともできるけどな
521デフォルトの名無しさん:2012/04/18(水) 16:02:46.73
イベントの発生元は、大方、senderだからキャストすれば、良いけど、あまりお勧めしない。
Rxだと、そもそもsender使わず、イベントデータ表す、eだけで基本おkじゃね?って流れ。

そもそもボタンなどのUIと処理自体、切り離すべきだろうし、
どのボタンが〜と言ってる時点で設計に難があると思う。
処理自体は、GUIを意識しないようにするのが良いかと。


522デフォルトの名無しさん:2012/04/18(水) 16:06:46.65
>イベントハンドラが呼び出されたか判別する方法

private void button1_Click(object sender, EventArgs e)
{
 System.Diagnostics.Debug.WriteLine("イベントハンドラが呼び出されたよ");
}
これが一番要求満たしてるだろ。場合によってWriteLineをMessageBoxに変えるとかしてくれ
523デフォルトの名無しさん:2012/04/18(水) 16:08:30.04
>>521
何言ってんのか全然分からんね
UIと処理を切り離すというお題目はよく聞くけどC#はそういう設計じゃないし
そういう設計じゃないほうが実用的だし
ボタンのイベントハンドラを共通化することも有用なケースはあるわな
この場合切り離すとか何をどう切り離すのやらさっぱり分からん
524デフォルトの名無しさん:2012/04/18(水) 16:09:08.99
同人、絵描き板の荒れ具合と比べたらまだマシだな
525 ◆ctrmjOHDMc :2012/04/18(水) 16:15:50.86
http://pastebin.com/w3G5rv6E

これの「IDirectoryTask」インターフェースに対する実装をしたいんだ。
例はGUIだけど、同じクラスをCUIから呼び出す場合は、Enter(path, token).Wait()とすることで同期にしたいらしい。
526デフォルトの名無しさん:2012/04/18(水) 16:18:17.87
正直言って+ではなくStringBuilder派というのがよく分からん。
StringBuilder使うべき場面て割と明確に限定的で、
それ以外の箇所じゃ見にくいだけ遅くなるだけなのに、
わざわざ+じゃなくてStringBuilder派ってのはどういうことなの?
527 ◆ctrmjOHDMc :2012/04/18(水) 16:19:51.75
【やりたいこと】
 ユーザのフォルダ、ファイルのD&Dに対し、渡されたフォルダ&ファイル内の特定パターンのファイルすべてに
 時間のかかる処理をしたい。

 ・Cancellationの実装。
  → 現在キューイングされているタスクをすべて停止し、Complete(Reason=Cancel)を呼び出す。

 ・Progressイベントの実装。
  → フォルダ・ファイルの進行状況を、別々に表示する。
    また、ファイルの進行状況は、「現在キューイングされているフォルダ・ファイルに含まれるすべてのファイル数」に基づく値とする。
    さらに、進行中にユーザのD&Dがあった場合は、即座にそのフォルダ、ファイルも進行状況に反映する。

 ・Completeイベントの実装。
  → キューイングされているすべてのフォルダ・ファイルを処理しおえた段階で、1度だけ呼び出す。
    Complete(Reason=Complete)

 ・Exceptionイベントの実装。
  → 現在キューイングされているすべてのタスクの内で、例外が発生した場合は
    即座に残りのキューをキャンセルし、Complete(Reason=Fault)を呼び出す。

 ・CUIからの呼び出し。
  → CUIから呼び出した場合、呼び出したメソッドの戻り値であるTaskに対してWait()を呼び出すことで、
    当該処理の終了を待機できるようにする。

【許容範囲】
 Completeが呼び出された直後(最中)に、ユーザのD&Dが行われた場合、
 Progressはリセットされた状態から始まっても構わない。
528デフォルトの名無しさん:2012/04/18(水) 16:20:22.30
ボタンやドロップダウンリストを動的に作成するときってあるからな
>>521はまだそういう経験を積んでいないんだろう
529デフォルトの名無しさん:2012/04/18(水) 16:21:09.67
>>523
他は兎も角、ボタンのハンドラを共有しても殆ど意味無いだろ
ボタン毎に機能が違う場合が殆どだし、テンキーみたいのならTextプロバティーを読めば済む
530デフォルトの名無しさん:2012/04/18(水) 16:21:55.97
>>528
その言い方はどうかと思うが、実際今回の要求の動機はそれだろうな。
開発時にデザイナで追加したButtonなら、あんまり意味ないし。
推定だからなんともいえんけど。
531デフォルトの名無しさん:2012/04/18(水) 16:22:14.29
StringBuilderは兎に角見にくいのが嫌すぎるので使うべき場面以外では使いたくない。
532デフォルトの名無しさん:2012/04/18(水) 16:22:41.49
>>528
動的に生成するのもViewの役目だろバカ
533デフォルトの名無しさん:2012/04/18(水) 16:24:21.80
>>529
そのボタンが動的に生成される場合を考えてみてくれないか?
あるボタンをクリックすると、新しいボタンが画面上に作られて、
そのボタンをクリックするとまた新しいボタンが・・・みたいな感じ。
まあ、そんなインターフェース使うシーンが咄嗟に思いつかないけど。
534デフォルトの名無しさん:2012/04/18(水) 16:24:54.14
>>527
MainForm.Designer.csも頂戴
535デフォルトの名無しさん:2012/04/18(水) 16:25:59.38
>>533
メニューとかなら有るけど、ボタンの動的生成って滅多にないでしょ
536デフォルトの名無しさん:2012/04/18(水) 16:27:26.07
void addButton(object sender EventArgs e)
{
  var newButton = new Button("新しいボタン");
  newButton.Click += new EventHandler(addButton);

  var senderButton = sender as Button;
  senderButton.Enabled = false;

  floatView.Items.Add(newButton);
}
良い例じゃないけど、こんなことじゃね。
537デフォルトの名無しさん:2012/04/18(水) 16:27:57.20
>>529
だからすべてのケースで共有はしてはいけない、お前もするな ってこと?
ブラウザのようにタブを動的に作ってタブが選択されたらとか予め最大タブ数ぶんのイベント作って記述するとかやりたくないなぁ
538 ◆ctrmjOHDMc :2012/04/18(水) 16:28:47.05
>>534
あ、うっかり。
VSの自動生成だから見づらいけど構わないか。
http://pastebin.com/dwE2mu0S
539デフォルトの名無しさん:2012/04/18(水) 16:29:16.79
>>535
滅多にない、なんてこの際かんけいなくね
540デフォルトの名無しさん:2012/04/18(水) 16:33:43.04
>>537
例えばButtonのTagに何らかのオブジェクト載っけて、押されたらそれを処理するってハンドラはあり得るが
ボタン自体を区別するって、例えばOKボタンとCancelボタンのハンドラ共有みたいなケースじゃないの?
541デフォルトの名無しさん:2012/04/18(水) 16:34:57.54
>>540
まあ、どうやら質問した人間も顔出さないみたいだし、どっかのレスで解決したんじゃね。
542デフォルトの名無しさん:2012/04/18(水) 16:37:01.77
タグでファイル管理するソフト作っているけど
タグをボタンで表現しているから動的にボタン作るよ
543デフォルトの名無しさん:2012/04/18(水) 16:38:36.06
そういうことする場合もあるんだな、でいいじゃん。ここじゃ。
>>515のレスだけじゃ何ともいえん。
544デフォルトの名無しさん:2012/04/18(水) 16:39:00.99
自分がその用途を想像できないからそんなことをする奴はいない、いてはいけない
という考え方は極力持たないようにしている
545デフォルトの名無しさん:2012/04/18(水) 16:43:47.92
>>538
フォルダに対する処理(フォルダの中身をファイルに展開する処理)
は、ファイルと同じスレッドでいいのか?
546 ◆ctrmjOHDMc :2012/04/18(水) 16:49:06.27
>>545
同じスレッド上で実現できるか分からないですが、(多分無理)
処理するべきファイルをキューイングする、って意味なら、
フォルダを追加された(D&Dされた)時点で、対象ファイルのキューにどんどん追加してもらいたいです。
教授の例示したモノだと、フォルダのプログレスとファイルのプログレスは同時に動いてたんで、多分非同期。

キューに、とは言ってるけど、Queueをつかえって話じゃないらしい。
「ContinueWithを使えば簡単にできます」とかって言われたけど、
キャンセルとか進捗表示とかするのにそれで上手く動くのか甚だ疑問なんですわ。
547デフォルトの名無しさん:2012/04/18(水) 17:37:06.44
もぐら叩きゲームを作るときにボタンをランダムに生成するといいぞ。
548デフォルトの名無しさん:2012/04/18(水) 17:41:46.18
button.Text = "もぐら";

せめてPictureBoxでやろうぜ・・・
549デフォルトの名無しさん:2012/04/18(水) 17:43:04.19
>>546
FolderProgressってどうしても必要なの? これ
面倒だから実装したくないんだけど
550デフォルトの名無しさん:2012/04/18(水) 17:44:55.28
>>548
buttonでもええやん
画像設置できるだんし
551デフォルトの名無しさん:2012/04/18(水) 17:46:32.83
ファイル一個一個入れるinterfaceしかないんじゃどのフォルダが選ばれたのか知ることが出来ないしプログレスもクソもないと思うんだけど
552 ◆ctrmjOHDMc :2012/04/18(水) 17:51:50.94
>>549
俺もそう思う。本気でこれさえ無ければ・・・と思う。
そう言ったら、「それなくしたら課題の要がなくなってしまう」って一蹴された。
そこが課題なんだって。クソ−、むずい。
553デフォルトの名無しさん:2012/04/18(水) 17:54:02.68
WebBrowserのNavigatingイベントがNavigateメソッドで呼ばれたか、DocumentTextプロパティに値が挿入されたか
どっちで呼び出されたか判別する方法ってないですか?


554デフォルトの名無しさん:2012/04/18(水) 17:54:06.87
このスレに宿題やらせてんのかw
宿題スレは別にあるだろ。
555 ◆ctrmjOHDMc :2012/04/18(水) 17:56:04.75
どぅあー!全然ダメだ!できねえ!

何が悔しいって、教授の作ったデモは、触らしてもらった限りにおいて、
確かに処理中でD&Dしようが、キャンセルしようが、ちゃんと動いてたコトなんだよな・・・。
持ち帰って良いですか?と聞いたら、「逆コンパイルすりゃILレベルでわかっちゃうからダメ」とさらりと返されたわ
QueueとThreadなら分かるのに・・・Task+ContinueWith+Cancellationってコレマジかよ・・・
556デフォルトの名無しさん:2012/04/18(水) 17:56:27.96
デリゲートってどんな時に使うんですか?
557 ◆ctrmjOHDMc :2012/04/18(水) 17:56:32.18
>>554
その通りなんだが、最初宿題スレ言ったらスレがほぼ死んでた。すまん。
558デフォルトの名無しさん:2012/04/18(水) 17:58:13.11
>>553
e.url
559デフォルトの名無しさん:2012/04/18(水) 17:58:45.82
>>555
今じゃILどころかC#のソースそのまま出てくるからな。ILSpyで。
560デフォルトの名無しさん:2012/04/18(水) 18:02:59.11
宿題ここでやるのはどうかと思うが、これ難易度高くておもしろい
ニートのぼくも、久々に頭使うテーマだ
561デフォルトの名無しさん:2012/04/18(水) 18:03:25.00
Reflectorも個人利用に限り無料で使えるよね
たまに変なおっさんの顔が出てくるけど
562デフォルトの名無しさん:2012/04/18(水) 18:06:12.08
おいらが0から作ってみるお
563デフォルトの名無しさん:2012/04/18(水) 18:06:20.09
>>561
一応、無料で使えるけど、ILSpyのほうが使いやすいと思ったから乗り換えた。
登録とかする必要もないし
564デフォルトの名無しさん:2012/04/18(水) 18:10:08.71
Reflectorは最近起動したらアップデートの選択肢に騙されて
自己exe削除されて呆然としたわ・・・
探しても結局ないしILSpy使ってる
565デフォルトの名無しさん:2012/04/18(水) 18:14:50.82
【社会】 "韓流男性アイドルグループのメンバー2人にも指示" 芸能事務所社長が強姦容疑 韓流アイドルも加担か…韓国
http://uni.2ch.net/test/read.cgi/newsplus/1334733459/

【韓流】「男性アイドルにも性暴行するよう指示」〜練習生性暴行の企画会社代表[04/14]
http://awabi.2ch.net/test/read.cgi/news4plus/1334367954/

【韓流】「大国男児」に性的暴行疑惑 アルバム発売中止に 所属芸能プロ代表の常習的強姦疑惑が飛び火★2[04/16]
http://awabi.2ch.net/test/read.cgi/news4plus/1334589194/685

【韓国】与党セヌリ党、実弟の妻への性的暴行疑惑の当選者を除名へ テレビ朝鮮の報道受け方針転換[04/18]
http://awabi.2ch.net/test/read.cgi/news4plus/1334727280/

【韓流】「子役にもわいせつ行為」〜芸能プロの実態[04/18]
http://awabi.2ch.net/test/read.cgi/news4plus/1334718205/

【韓流】「アイドル性暴行」〜現役アダルト歌手も加担[04/17]
http://awabi.2ch.net/test/read.cgi/news4plus/1334627087/
566デフォルトの名無しさん:2012/04/18(水) 18:19:21.84
ネトウヨ王に、俺はなる!まで読んだ。
567デフォルトの名無しさん:2012/04/18(水) 18:23:44.69
Int16とShortとか、stringとStringって、全く同じものだと思うのですが、
普通はどっちを使うものなんですか?
混在すると気持ち悪いので、どちらかに統一したいなと思うのですが、
それについて言及しているようなサイトがイマイチ見つからないので
良ければ教えていただければと思います。
568デフォルトの名無しさん:2012/04/18(水) 18:25:24.06
shortも青になるのあったような
stringも青になる方

つまり頭が小文字
569デフォルトの名無しさん:2012/04/18(水) 18:27:20.04
>>567
好きなのほう使って統一しておけば良いんじゃ?
ただ複数言語と統一させたりするなら、Stringとかの.NETのほうで定義されてるほうを使えばいいかと。
570デフォルトの名無しさん:2012/04/18(水) 18:27:33.45
青になるのは大文字だろ
571デフォルトの名無しさん:2012/04/18(水) 18:28:50.13
配色変えてる俺には、青とか言われても (´・ω・`)
572デフォルトの名無しさん:2012/04/18(水) 18:28:56.33
>>570
大文字はクラスと同じなのでちょっと暗めの水色だろ
573デフォルトの名無しさん:2012/04/18(水) 18:29:36.97
>>571
デフォルトの色だよ

痛IDEにするから悪いだ



さあ晒せ
574デフォルトの名無しさん:2012/04/18(水) 18:30:32.35
使っちゃいけない明確な理由や動作の違いがあるなら使わないけどさ
575デフォルトの名無しさん:2012/04/18(水) 18:32:06.76
>>571
俺もson-of-obsidianのセッティング使ってる
576デフォルトの名無しさん:2012/04/18(水) 18:32:20.85
俺ルール:

変数の宣言等は小文字

ex:
int i = 0;


型の静的なメソッド呼び出しは大文字

ex:
i = Int32.Parse(...);
577 ◆ctrmjOHDMc :2012/04/18(水) 18:34:27.50
うーん、こりゃいかんわ。今日24時が期限だが、間に合いそうにない。
付き合ってもらってる面々には申し訳ないが、諦めることになりそうだ・・・(´・ω・`)
578デフォルトの名無しさん:2012/04/18(水) 18:34:35.37
>>576
俺はこのとおり
http://msdn.microsoft.com/ja-jp/library/ms229043(v=vs.80).aspx
579デフォルトの名無しさん:2012/04/18(水) 18:36:18.37
580デフォルトの名無しさん:2012/04/18(水) 18:37:26.28
デリゲートってどんな時に使うんですか?
581デフォルトの名無しさん:2012/04/18(水) 18:37:30.07
>>579
おっさん乙www
究極のおっさんは黒バックに緑文字かな?
582デフォルトの名無しさん:2012/04/18(水) 18:37:52.63
>>580
デートしてるときにお腹がゆるゆるになったとき
583デフォルトの名無しさん:2012/04/18(水) 18:39:28.35
584デフォルトの名無しさん:2012/04/18(水) 18:39:35.03
白バックだと目疲れるだろ
おっさんじゃないけど俺も黒バック
585デフォルトの名無しさん:2012/04/18(水) 18:41:36.45
>>579
配色は好きにすればいいと思うけど
ただ、MSゴシック使っているのは負けかなと思う
586デフォルトの名無しさん:2012/04/18(水) 18:41:41.02
目が疲れにくいから黒バック好きなんだけど、
ともすれば中二っぽく見えるから、公には使わない・・・。
我ながらナルシズムだなあ。
587デフォルトの名無しさん:2012/04/18(水) 18:42:10.15
俺は>>583のRagnarok Dark使ってるわ
おっさんとかバックとか言われるとちょっとイヤラシイ気分になってくる
588デフォルトの名無しさん:2012/04/18(水) 18:42:16.01
>>585
お勧めのフォントあったらおせーて
589デフォルトの名無しさん:2012/04/18(水) 18:42:31.23
>>584
白バックで目が疲れるような人は瞳孔が正常の働いてない人。
そういう人が黒バックに白の文字を凝視して、本当に目に優しいと思う?w
590デフォルトの名無しさん:2012/04/18(水) 18:43:22.70
>>589
短い時間なら大丈夫なんだけどねえ。
長時間使って疲れてくると瞳孔が鈍くなるんかなあ
591デフォルトの名無しさん:2012/04/18(水) 18:44:44.83
完全黒に完全白文字、ポスターカラーな色合いだと目も疲れるし厨っぽいので
少しパステル調に落とした感じがベスト
592デフォルトの名無しさん:2012/04/18(水) 18:45:12.00
デリゲートってどんな時に使うんですか?
593デフォルトの名無しさん:2012/04/18(水) 18:45:47.86
>>592
デリケートな気分のときに使うんだよ。
594デフォルトの名無しさん:2012/04/18(水) 18:46:14.20
595デフォルトの名無しさん:2012/04/18(水) 18:46:14.76
>>592
色んな時。
596デフォルトの名無しさん:2012/04/18(水) 18:47:05.25
>>581
おっさんじゃねぇよwwまだ20代だ。
いやもう、後半だからおっさんかも知れぬ…
597デフォルトの名無しさん:2012/04/18(水) 18:47:50.75
>>596
25の俺が断言する。25歳以上はオッサンだ。
598デフォルトの名無しさん:2012/04/18(水) 18:48:36.14
599デフォルトの名無しさん:2012/04/18(水) 18:49:33.16
dxlibきたw
600デフォルトの名無しさん:2012/04/18(水) 18:52:39.21
年寄りくせえ
601デフォルトの名無しさん:2012/04/18(水) 18:56:42.18
>>598
フォント名はよ
602デフォルトの名無しさん:2012/04/18(水) 18:56:51.84
603デフォルトの名無しさん:2012/04/18(水) 18:57:26.63
プロポーショナルフォント使わないと負けかなと思ってる
604デフォルトの名無しさん:2012/04/18(水) 18:57:32.77
デリゲートってどんな時に使うんですか?
605デフォルトの名無しさん:2012/04/18(水) 18:59:32.00
>>604
コントロールのイベントとかデリゲートでしょ
606デフォルトの名無しさん:2012/04/18(水) 19:03:18.40
>>604
フレームワークに処理投げたりする時。
607デフォルトの名無しさん:2012/04/18(水) 19:05:23.86
デリゲートってどんなときに使うんですか?
608デフォルトの名無しさん:2012/04/18(水) 19:06:18.85
デリゲートってどんなときに使うんですか?
609デフォルトの名無しさん:2012/04/18(水) 19:06:24.78
汎用的な自作ライブラリでも作れば、嫌でも使うことになる代物。
610デフォルトの名無しさん:2012/04/18(水) 19:06:26.83
デリゲートってどんなときに使うんですか?
611デフォルトの名無しさん:2012/04/18(水) 19:06:32.74
デリゲートってどんなときに使うんですか?
612デフォルトの名無しさん:2012/04/18(水) 19:06:49.18
毎日毎日荒らしの相手をしてやってるからガキが調子づいてるんだよ
もう触るな
613デフォルトの名無しさん:2012/04/18(水) 19:08:42.86
馬鹿にはその忠告が理解できないのでループします
614デフォルトの名無しさん:2012/04/18(水) 19:10:04.95
フォームに書き込んだ後リロードするんじゃねー!!!
615デフォルトの名無しさん:2012/04/18(水) 19:21:57.20
は?
616567:2012/04/18(水) 19:22:04.07
皆様ありがとうございます。
こんな短時間で反応がいただけるとは思っていませんでした。
>>569で示された複数言語での統一や、.NETのほうで定義されてるというところもなるほどと感じましたが、
当面は複数言語を扱う予定はないことと、
確かにshortとかstringは青色になり、C#の基本のデータ型としてはこちらだと感じられるので、
当面はshortとかstringとかを使用していこうと思います。
ありがとうございました。
617デフォルトの名無しさん:2012/04/18(水) 19:23:11.30
618デフォルトの名無しさん:2012/04/18(水) 19:27:30.62
C#みたいに記号がわりと多めの言語だと、
とうふくメイリオなんかも見慣れた形してる分わるくねえな。
619デフォルトの名無しさん:2012/04/18(水) 20:01:09.14
>>558
すいません。e.Urlをabout:blankと比較してe.Cancel = trueとしてみましたが、どうしてもループしてしまい
正常なリクエストが返ってきません
620デフォルトの名無しさん:2012/04/18(水) 20:30:04.56
派生クラスのメソッドが呼ばれた場合
まず基底クラスの同じメソッド名が実行されるような
処理をしたいんだけど方法ありますか?

public void hoge()
{
base.hoge();
}

こうするしかない?この部分を削ってスマートにしたいんだけど
621デフォルトの名無しさん:2012/04/18(水) 20:32:41.10
暗黙的なら何でもスマートかって言われるとそうでもないと思うが
622デフォルトの名無しさん:2012/04/18(水) 20:42:51.44
>>620
そうするしかない
C#にもデコレータ関数みたいのがあったらどうにかなったかもなー
623デフォルトの名無しさん:2012/04/18(水) 20:47:59.13
>>620
それで十分スマートだと思うが。

基底が呼ばれたくなければ書かなきゃいいんだし
624デフォルトの名無しさん:2012/04/18(水) 20:50:03.63
デコレータならIronPython
625デフォルトの名無しさん:2012/04/18(水) 20:50:34.99
思うが思うがうっせーんだよ
心に秘めておいてください
626デフォルトの名無しさん:2012/04/18(水) 20:52:26.49
>>625
死ねばいいと思うが
627デフォルトの名無しさん:2012/04/18(水) 20:58:15.05
ぬるぽ
628デフォルトの名無しさん:2012/04/18(水) 20:59:38.58
i think i think
629620:2012/04/18(水) 21:02:36.93
そうでしたか、何かあったような気がしたけど気のせいだったか

public virtual void Run()
{
//事前にさせておきたい初期化処理
//ループ開始
//キー入力受付
Logic();//派生クラスの実装部分
//ループ終了
//終了処理
}
protected abstract void Logic();

一応こんな感じで基底クラス作ったらいけた。
外部から基底クラスのRunを呼んでもらう感じ
変かな?
630デフォルトの名無しさん:2012/04/18(水) 21:04:38.45
別に
631デフォルトの名無しさん:2012/04/18(水) 21:13:26.04
どうでもいい
632デフォルトの名無しさん:2012/04/18(水) 21:15:58.34
そうだね
633デフォルトの名無しさん:2012/04/18(水) 21:20:23.56
なんか意味あんのかそれ
634デフォルトの名無しさん:2012/04/18(水) 21:33:29.51
表示に関わる部分や毎回書くコードを削りたいなと
だめですか?
635デフォルトの名無しさん:2012/04/18(水) 21:36:26.00
別に
636デフォルトの名無しさん:2012/04/18(水) 21:37:18.28
>派生クラスのメソッドが呼ばれた場合



>ら基底クラスのRunを呼んでもらう感じ

ここの整合性は?
637デフォルトの名無しさん:2012/04/18(水) 21:41:11.01
結論: 自分しか使わないコードなら好きにしろ
638デフォルトの名無しさん:2012/04/18(水) 21:43:41.85
Invalidateの中でOnPaintが呼ばれるようなもんだと思えば別に
639620:2012/04/18(水) 21:45:57.84
派生クラス呼ばれたら、基底クラスの同じメソッドが呼ばれる方法があると思ったのに
それがなかったので基底クラスを呼んでもらうことにしたわけです
そういう流れだったはずですが

簡単なFormクラスのようなものを作りたいなと
form1でクリックイベントを取得できるのと同じような感じで
640デフォルトの名無しさん:2012/04/18(水) 21:47:35.17
「基底クラスのほうを呼ばなきゃダメ」という俺ルールが適用できる範囲以外にコードが流出しなければ別に問題ないよという話
641デフォルトの名無しさん:2012/04/18(水) 21:49:21.37
>>619
ループの意味がわからんしあなたのコードがどんなのかわからんけど
たとえばこのスレをブラウザでアクセスするとNavigatingは三回起きるけど
そういうのは理解してる?
642デフォルトの名無しさん:2012/04/18(水) 21:49:48.08
いいんじゃないですか別に
643デフォルトの名無しさん:2012/04/18(水) 21:55:23.43
馬鹿の一つ覚えか痴呆か?
644620:2012/04/18(水) 21:56:27.90
>>640
そこは気になります
自分専用って感じですね
645デフォルトの名無しさん:2012/04/18(水) 22:03:56.90
>>473
そこに
-------
「文字列を連結する」では、複数の文字列を連結する時、連結演算子(または、String.Concatメソッド)で一度に連結した方が、StringBuilder.Appendメソッドで連結するよりも高速であることを紹介しました。
-------
って書いてあって笑えるぞ。
646デフォルトの名無しさん:2012/04/18(水) 22:05:57.85
>>643
はい馬鹿一名様ご案内>>613
647デフォルトの名無しさん:2012/04/18(水) 22:06:36.45
>>645
蒸し返すな低能ww
648デフォルトの名無しさん:2012/04/18(水) 22:40:56.08
>>641
ごめんなさい
Navigatingイベントが3回あるのは盲点でした

対象のページは1回しか起きませんでした
この3回というのはframeの数ですか?
649デフォルトの名無しさん:2012/04/18(水) 22:48:58.04
>>648
簡単な調査用コード書いてデータ収集しろよ・・・

http://ideone.com/xrM83

得られたurl
http://toro.2ch.net/test/read.cgi/tech/1334380881/
http://p2.2ch.io/getf.cgi?http://toro.2ch.net/test/read.cgi/tech/1334380881/
http://p.asks.jp/fd2ch.jps?http://toro.2ch.net/test/read.cgi/tech/1334380881/

一番上がhtmlの入手だろうね
その後は解析してくれ
650デフォルトの名無しさん:2012/04/18(水) 23:00:29.55
>>645
IL見比べれば分かる話。どうでもいい差にいつまでこだわってんだか。
StringBuilderはそんなくだらない差を縮めるためにあるんじゃない。
バッファを利用して重いインスタンス生成を端折るためのクラス。

間違った使い方をして速いだの遅いだのどうでもいい。
651デフォルトの名無しさん:2012/04/18(水) 23:08:34.13
また今日も +派とStringBuilder派の争いがはじまるの?
勘弁してくれよ…
652デフォルトの名無しさん:2012/04/18(水) 23:10:09.48
ほんとどうでもいい。

+派はどうでもいい差に拘ってる馬鹿。

StringBuilder派はMSDNに書いてる当り前のことを繰り返す馬鹿。
653デフォルトの名無しさん:2012/04/18(水) 23:19:51.54
文字列処理がネックになるアプリってなんだよ
654デフォルトの名無しさん:2012/04/18(水) 23:39:44.21
数ヶ月前に質問が出てたログをTextBoxに吐かそうとしてるプログラム
655デフォルトの名無しさん:2012/04/18(水) 23:40:28.40
>>649
コードまで書いてもらって、ありがとうございます
インラインフレームの数だけ+α増えるんですね
656デフォルトの名無しさん:2012/04/19(木) 00:03:47.43
>>653
テキストエディタ
657298:2012/04/19(木) 00:42:44.03
【マ】プログラミング初心者あるある
http://kohada.2ch.net/test/read.cgi/prog/1333855029/32-35
で、面白そうだから・・・ココに燃料投下して、、、そのまま寝たら忘れてて
今見たら燃料がメッチャ燃えてたw びっくらこいた。放火魔じゃん俺。
658デフォルトの名無しさん:2012/04/19(木) 00:47:53.89
燃料は、燃料でもガソリンと灯油を間違えんな!
659デフォルトの名無しさん:2012/04/19(木) 00:51:20.59
>>552
Taskの勉強がてら書いてみたけど合ってるかどうかわからない
見た感じちゃんと動いてるような雰囲気はあるけどどうだろう

http://ideone.com/gG1tU
http://ideone.com/cWICp
660 ◆ctrmjOHDMc :2012/04/19(木) 01:04:59.87
>>659

す、すげえ、確かに動いてる・・・!
期限は過ぎちゃったんで、もはや点にはならないけど・・・

そうか、IsCancelledで馬鹿正直にやるから混乱するのか・・・
それを契機に内部のフラグを立てて、それに応じてあっちこっちの処理を止めるわけだ。

なるほど、すごい参考になりました。遅い時間までおつきあいありがとうございます。
CancellationTokenの使い方の難しさは凄まじい・・・。
661 ◆ctrmjOHDMc :2012/04/19(木) 01:15:18.67
ちなみにこちらの実装は、
妥協に妥協を重ねて、独自実装(フォルダは先入れ、ファイルは後入れ)のQueueを作って、
シングルスレッドでファイルとフォルダを処理する(ので、厳密にはファイル処理中にはフォルダが処理されない。ファイル処理とファイル処理の間でフォルダの処理をする)
ようにして、そのスレッドをグルグル回してる。
スレッドはManualResetEventで止めておいて、Entryした時にSet、動き出したスレッド側で即座にReset、
キューされてるファイルをすべて処理し終わったらまたWait・・・としてる。
おまけにCancellationTokenが全然思い通りにならないんで、処理するクラス自体に「Cancel」メソッド追加してて、
元々の課題には全然そぐわないものに・・・

ダメだなあ。「課題にぴったりそえば得点」って言ってたし、俺のじゃ全くダメだ。
>>659の方が適切かも。
662デフォルトの名無しさん:2012/04/19(木) 01:27:56.94
CancellationTokenさえ入れとけばCancellationTokenSouceでCancelしたら
Token入ってるとこみんなキャンセルされる
っていうだけじゃないの?
663デフォルトの名無しさん:2012/04/19(木) 02:32:30.06
>>662
「だけ」なんだが、その「だけ」を、色んな処理が入り乱れてる中で
あるべき姿に持っていくのはなかなか骨が折れるぞ
非同期処理系は、毎回毎回結構色々考えさせられる。
664デフォルトの名無しさん:2012/04/19(木) 06:57:21.47
ExpressEditionでもチームプロジェクトって使えますか?
665デフォルトの名無しさん:2012/04/19(木) 07:36:43.50
666デフォルトの名無しさん:2012/04/19(木) 09:04:05.70
stringとString
どっち使ったほーがいい?
667デフォルトの名無しさん:2012/04/19(木) 09:15:50.15
まーた上司に無能って言われて憂さ晴らしか?
668デフォルトの名無しさん:2012/04/19(木) 10:28:49.71
正恩氏冒涜と韓国非難=「無慈悲な報復」と威嚇−北朝鮮

 【ソウル時事】朝鮮中央通信によると、北朝鮮の人民軍最高司令部報道官は18日、声明を出
し、韓国の団体や報道が平壌での軍事パレードに出席した金正恩第1書記を冒涜(ぼうとく)した
として「挑発者に無慈悲な報復の洗礼を与える」と威嚇した。
 声明は「挑発の原点がソウルの中心であっても、その全てを吹き飛ばすための措置が取られ
る」と主張。「閲兵式で示された強力な手段がそのまま攻撃へとつながる」と警告した。

http://www.jiji.com/jc/c?g=int_30&k=2012041801062
669デフォルトの名無しさん:2012/04/19(木) 10:53:34.76
>>666
stRingしか使ったことない
670デフォルトの名無しさん:2012/04/19(木) 10:58:11.50
ふーーん
671デフォルトの名無しさん:2012/04/19(木) 11:06:43.06
このレスが役に立った?
 うん
→うんこ
672デフォルトの名無しさん:2012/04/19(木) 12:13:42.82
vb2010です。

フォーム上にあるkinokoというデータベースセットコントロールのなかに[キノコ]というテーブルが参照
できるようになっています。

このキノコテーブルは、"ID", "キノコ名", "食毒" と3つのカラムであり、食毒には0なら食用、1なら毒
といったふうにステータスコードが入ってます。

この時、このデータベースセットコントロールのこのテーブルに直接アクセスして、食毒が1のものを削除
するコードが書きたいです。
どのようなコードを書くと、削除できるようになりますか?

ちなみにSQLでのDBからの直接削除はNGとなってます。(保存ボタンを押して初めて、データセットの
内容がDBに反映されるように仕組まれている為)
673デフォルトの名無しさん:2012/04/19(木) 12:20:26.85
頭削除して死ね
674デフォルトの名無しさん:2012/04/19(木) 12:26:27.35
>>672
宿題丸投げするなよ、しかもVBはスレ違い
675デフォルトの名無しさん:2012/04/19(木) 12:40:36.15
>>674
すみません。vbじゃなくc#でした。

ちなみに宿題じゃありません。
676デフォルトの名無しさん:2012/04/19(木) 12:44:15.75
DataAdapterにSQL定義するのも駄目なの?
677デフォルトの名無しさん:2012/04/19(木) 12:52:29.72
>>675
仮にDB直接だろうが、トランザクション使えば問題無いでしょ
678デフォルトの名無しさん:2012/04/19(木) 14:40:19.48
C#からエクスプローラーのファイルプロパティを表示する方法ありますか?
VisualStudio内のプロパティの話しか見つからなかったんで
Alt+ダブルクリックで出てくる奴です
679デフォルトの名無しさん:2012/04/19(木) 14:53:11.26
>>678
こんなのでどう?
http://ideone.com/RFYfa
680デフォルトの名無しさん:2012/04/19(木) 15:11:54.02
>>679
できました!ShellExecuteEx使うんですね
ありがとうございました
681デフォルトの名無しさん:2012/04/19(木) 16:49:44.82
>>676
SQLでの読み書きはできます。
メモリ上にロードしたデータセットの中で、色々データを弄って最終的に保存ボタンを押すと
MDBにマージするようにしなくてはいけないことになりまして。
直接読み書き以外のぶぶんでは、DataAdapterとBindingSourceによるデータの呼び出し
とデータセットへの書き込みを実現してます。

ちなみにプログラマーではありませんし、そういう会社でもありません。

>>677
それも考えたのですが、プログラムの仕様が、例えば、顧客台帳ならば、それにまつわる様々
なサブテーブルの内容を顧客IDでフィルタしたものを表示しなおしていたり、またその他の部分
では、なんとかかんとか、SQLをいかに使わないで実現するか?をやれてきたのですが、今回の
ところで壁にぶつかってしまいました。

この数時間個人的に考えたのが

・なんとか、関連するテーブルにある削除したいレコードのユニークIDをデータセット取得する
・ユニークID取得の為だけにdatarow[] rowsを定義してselectで該当レコード取り込む仕組み
・rows[0]["ID"]でUIDを取り出す。
・そのユニークIDをデータテーブル作って取込み、datarow.delete()で消す

書くには書いたのですが、汚いコード故見せるのも恥ずかしい限りです。
datasetへ直接レコードの固まりを入れる時にimportrowで入れられるのに、逆に条件で抽出
して削除なんてできる手段があればと思って相談しました。

ちなみに、保存する時は、TableAdapterManager.UpdateAll(this.mafdbset)みたいな感じで
一括で実行してまう。
682デフォルトの名無しさん:2012/04/19(木) 17:26:55.33
何が分からないのか分からない。もう解決してんじゃないの?
683デフォルトの名無しさん:2012/04/19(木) 17:44:47.45
お前は回線切ったほうがいいんじゃないの。
俺のほうが頭良いし。
684デフォルトの名無しさん:2012/04/19(木) 18:26:07.32
汚いコード晒したら馬鹿にするやつがここには何人もいるからなあ
685デフォルトの名無しさん:2012/04/19(木) 18:32:38.12
>>681
訳分からん
初めの言い分である
> この時、このデータベースセットコントロールのこのテーブルに直接アクセスして、食毒が1のものを削除
> するコードが書きたいです。
なら、単に目的のDataTableに対してDataTable.Selectで食毒=1の
DataRow取り出して一通りDeleteしてくだけだが

関連するテーブルだのユニークIDだのどっから出てきた
686デフォルトの名無しさん:2012/04/19(木) 18:41:58.52
これに限ったことではないが
問題が再現する範囲で新規作成したプロジェクトに最小限のコードを書くと
問題の単純化や言語化が楽になるしソースもすぐに提示できる
そうしているうちに自分で解決する場合も多いしね
687デフォルトの名無しさん:2012/04/19(木) 19:09:07.29
「ソウル吹き飛ばす」 北朝鮮が韓国非難 正恩氏の顔写真切り裂きに 2012.4.19 08:19


 北朝鮮の朝鮮人民軍最高司令部報道官は18日、金日成主席生誕100年の15日前後に韓国の保守系団体が
金正恩第1書記の顔写真を切り裂くパフォーマンスをソウルで行ったことなどを非難し、「たとえソウルの真ん中だといっても、
そのあらゆるものを吹き飛ばすための特別行動措置が講じられる」との声明を発表した。

 朝鮮中央通信が伝えた。

 最高司令部の声明は、韓国軍部隊で故金正日総書記と正恩氏の写真が2人を中傷する文言と共に掲示されていると
韓国で報じられた直後の3月2日以来。

 この時は「聖戦を展開する」と主張し、その後李明博政権非難を続けた。
 今回もパフォーマンスを口実に非難を続けそうだ。

 18日の声明は「われわれの最高の尊厳」に手を出したと非難。
 ほかに、韓国メディアの報道も正恩氏を冒涜したとし、世界で李政権だけが「祝いの雰囲気に冷水を浴びせた」とした。(共同)

http://sankei.jp.msn.com/world/news/120419/kor12041908200002-n1.htm
688デフォルトの名無しさん:2012/04/19(木) 19:12:41.47
度々天皇陛下や総理大臣の顔や日の丸を
割かれたり焼かれたりしている日本も
本来はこのくらい強く出てもいいはずなんじゃないか
689デフォルトの名無しさん:2012/04/19(木) 19:18:28.48
さあ
690デフォルトの名無しさん:2012/04/19(木) 19:21:24.78
米国―日本を訪れた印象「どこも清潔で、治安が良い」
「pearceonearth」では、家族で関西地方に滞在した米国人女性が訪日の印象をつづっている。
筆者らが旅行を通して共通に感じたことは、日本の至るところが清潔で安全で効率的だという。多くの家では
鍵があるにもかかわらず、自宅に鍵をかけないことや、自分で出したゴミは道路などに捨てず家に持ち帰ること、電車が時間通りに来るなどに驚いた様子。
次にいつ訪日できるか分からないが、京都や温泉など行きたい場所がたくさんあるので、またぜひ来日したいと抱負を語っている。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0417&f=national_0417_012.shtml
691デフォルトの名無しさん:2012/04/19(木) 19:22:00.84
野田政権とStringBuilderはどっちが早いかって聞かれてもなぁ
692デフォルトの名無しさん:2012/04/19(木) 19:23:01.83
IDのある板に移動しないか(提案)
693デフォルトの名無しさん:2012/04/19(木) 19:26:32.96
いやぁ、スレが盛り上がってなにより


この啓蒙活動の趣旨はマスコミと政治家の関係を知らせる、
という目的の為に行われるものです。
ご覧の方はチラシの一読をお願いします。

http://www31.atpages.jp/ujitv/images/demof3_1.jpg
http://www31.atpages.jp/ujitv/images/demof3_2.jpg

wiki
http://www31.atpages.jp/ujitv/
694デフォルトの名無しさん:2012/04/19(木) 19:27:49.33
>>692
どこか移動先あったっけ?
695デフォルトの名無しさん:2012/04/19(木) 19:28:27.94
シベリア
696デフォルトの名無しさん:2012/04/19(木) 19:34:38.92
自分のメアドが業者に流れて迷惑メールきまくった気分だ
一時期毎日200件近く来てたけど
697デフォルトの名無しさん:2012/04/19(木) 21:05:53.55
暗いと不平を言うよりも
すすんで透明あぼーんしよう
698デフォルトの名無しさん:2012/04/19(木) 21:27:54.90
ToolStripTextBoxのWidthが伸びないんだけどどうすればいい?
ついでにHeightが高すぎてダサい
699デフォルトの名無しさん:2012/04/19(木) 21:28:14.86
【UOエミュ】AKALABETH Part11【国内最大】
http://kohada.2ch.net/test/read.cgi/mmominor/1332153291/
UOやろうぜ
700デフォルトの名無しさん:2012/04/19(木) 21:28:19.67
AutoSize = falseかな
701デフォルトの名無しさん:2012/04/19(木) 21:36:06.12
>>698
Fontサイズを8以下にしてみ
702デフォルトの名無しさん:2012/04/20(金) 00:22:33.60
>>693
ネトウヨ殺すぞ
703デフォルトの名無しさん:2012/04/20(金) 00:24:44.98
自首しろ
704デフォルトの名無しさん:2012/04/20(金) 00:25:32.03
俺もうプログラミングやめる
705デフォルトの名無しさん:2012/04/20(金) 00:50:41.01
じゃ俺がやる
706デフォルトの名無しさん:2012/04/20(金) 00:58:11.70
いやいや俺が

って言えばいいの?
707デフォルトの名無しさん:2012/04/20(金) 01:14:05.78
if(x+y<600 && x+y>0){} ;

i=x+y;
if(i<600 && i>0){};

だとどっちがいい?
708デフォルトの名無しさん:2012/04/20(金) 01:19:17.30
どっちでもいい
709デフォルトの名無しさん:2012/04/20(金) 01:30:14.96
C#のコンソールアプリで、ユーザからの1文字のキー入力を改行を待たずに受け取る、
getch相当の処理は何を使えばいいでしょうか?
環境が.NET1.1という制限があるため、.NET2.0以降から追加されたConsole.ReadKeyが使えません。
Console.ReadやReadLineだとユーザが改行を押すまで処理が戻ってきません。
よろしくおながいします。
710デフォルトの名無しさん:2012/04/20(金) 01:37:52.17
DX.WaitKey() ;
711デフォルトの名無しさん:2012/04/20(金) 01:40:28.38
環境が.NET1.1という制限
なんかの罰ゲーム?
712デフォルトの名無しさん:2012/04/20(金) 01:41:03.83
いまどき、.NET 1.1を使ってる時点で、まずそこを改善すべきだと思う。
MSも古いバージョンの.NETは、非推奨なのに。
713デフォルトの名無しさん:2012/04/20(金) 01:41:58.15
>>707
当然後者。保守性が高いから。
この程度を即座に答えられるようでないとダメだな。

速度を最優先するならさらに高等テクニックがあるけど、
ふらっとスレでは気にする必要はない。
今日日のCPUで数クロック稼いでも仕方ないしな。
714デフォルトの名無しさん:2012/04/20(金) 01:47:18.80
GetAsyncKeyState
715デフォルトの名無しさん:2012/04/20(金) 01:51:20.91
>>713
すっきりしました
ありがとう
716デフォルトの名無しさん:2012/04/20(金) 02:22:13.66
オレの周りには、割り算を嫌ってシフトと引き算とかつかって書く人がいる…。
そんなのより見た目でわかりやすくなるように素直に割り算で書いてくれって言ってるのにやめない。
そのコード、一生お前がメンテしろよ。マジで。
717デフォルトの名無しさん:2012/04/20(金) 02:27:26.72
コプロついてるから割り算のほうが速いと言ってやれ。
718デフォルトの名無しさん:2012/04/20(金) 02:46:32.21
C#でそんなところにこだわったところで1ミリの差にもならんだろw
719デフォルトの名無しさん:2012/04/20(金) 02:48:33.37
100万回ループしても?
720デフォルトの名無しさん:2012/04/20(金) 02:52:35.08
100万回ぐらいループすりゃ別にしろ、
かけ算とわり算ごときの差を気にするならC#なんか使わずC++とか使えということだ。
721デフォルトの名無しさん:2012/04/20(金) 03:03:58.79
ちなみに掛け算と割り算は糞思い処理な。
だから今時のCPUはどれもそれ専用のロジックが入ってる。c++使っても大して変わらん。
オープンソースとか見れば分かるが高速化が必要な部分は今でもアセンブラ。
722デフォルトの名無しさん:2012/04/20(金) 04:04:07.04
質問をさせてください。

Doxygenを使用して、ドキュメント生成を行なっているのですが、enum型の個々の値
の説明が表示されないのはバグなんでしょうか?

C++で試してみたところ、簡単に表示できたのですが、C#ではenum型の説明しかでず、個々の値の説明が無視されてしまいます。
723デフォルトの名無しさん:2012/04/20(金) 04:11:51.07
Doxygenのスレってどこかになかったっけ?
724デフォルトの名無しさん:2012/04/20(金) 04:12:42.69
725デフォルトの名無しさん:2012/04/20(金) 04:25:09.42
納品用だろ? 表示されなくてもどうせ客は誰も読みやしないよ。
726デフォルトの名無しさん:2012/04/20(金) 07:59:43.94
public string Count
{
  public get;
  protected set;
}

エラーが出るんだけど
727デフォルトの名無しさん:2012/04/20(金) 08:38:55.87
>>692
そういえば、なんでここIDが未だにナイんだろう
728デフォルトの名無しさん:2012/04/20(金) 09:24:35.33
自演君でもってるようなもんだかんなこのスレ
729デフォルトの名無しさん:2012/04/20(金) 09:26:13.28
ニコ生思想地図「『アーキテクチャの生態系』とその後」濱野智史×東浩紀
http://live.nicovideo.jp/watch/lv70969615

『「2ちゃんねる化」する世界のなかで、
「先進国」日本が果たすべき役割とはなにか?』

2010年創刊の新感覚言論誌『思想地図β』。
9月に刊行されたvol.2「特集:震災以後」は、
発行5日目にして2万7000部を達成し、
思想を扱う書籍としては異例の売り上げを記録中です。

同誌とニコ生とのコラボレーション番組『ニコ生思想地図』では、
編集長・東浩紀が、詩人の和合亮一氏、ジャーナリストの津田大介氏、
ドワンゴ代表取締役会長の川上量生氏など、
各界の著名人をお招きし、思想の未来を探る対談をお届けしてきました。

今回のゲストは日本特有の匿名集団による創造性に注目し、
その構造を分析した『アーキテクチャの生態系――情報環境はいかに設計されてきたか』(NTT出版)の著者で、
情報環境学者の濱野智史氏です。

『アーキテクチャの生態系』から3年。
ウィキリークス、ノルウェーテロ事件、反ウォール街デモなど、
ソーシャルネットワークの発達によって、世界が大きく揺れ動きつつあります。
2ちゃんねるに代表されるネットの匿名文化は、もはや日本だけの問題ではありません。

「2ちゃんねる化」する世界のなかで、
「先進国」日本が果たすべき役割とはなにか?
2ちゃんねるやニコニコ動画に代表される「匿名的・集団的な創造性」の未来は?
2012年刊行予定の『日本2.0 思想地図βvol.3』への展望を込め、徹底的に議論します。

知の最前線がここにある!
ニコ生思想地図をお楽しみに。
730デフォルトの名無しさん:2012/04/20(金) 12:10:53.80
恥の最前線
731デフォルトの名無しさん:2012/04/20(金) 13:17:04.41
>>726
public string Count
{
  get;
  protected set;
}

こうやろ
732デフォルトの名無しさん:2012/04/20(金) 13:22:11.43
C#をつかっているのに、妙に速度にこだわってる奴いるな

速度がきになるなら、アセンブラ、Cで書けよ

インタプリタは遅いのはしかたない
733デフォルトの名無しさん:2012/04/20(金) 13:24:13.09
空っぽのcsファイルに、オリジナルの関数やらサブルーチンを詰め込んでいます。

Form1からこれらを呼び出す時に、このcs内のルーチンでForm1のコントロールを参照できるように
したいのですが、Form1インスタンス生成時に、以下の様な形で、サブルーチン側でもForm1上の
コントロールにアクセスできるようにすることはできるでしょうか?

public pepsiman(Form1 fm) ⇒ サブルーチン側

Form1 kessaiman = new Form1(this) ⇒ Form1側呼び出しの部分

fmをPublicなFM1に格納して、FM1.cocacola.textといったようにアクセスしたいのでふ。
734デフォルトの名無しさん:2012/04/20(金) 13:24:37.27
釣り?
735デフォルトの名無しさん:2012/04/20(金) 13:27:15.90
あー>>734>>732に対してな。
736デフォルトの名無しさん:2012/04/20(金) 13:34:45.55
サブルーチンってなんですか?
737デフォルトの名無しさん:2012/04/20(金) 13:46:00.18
>>736
よくつかうコードなので、Formに書かずに単体のcsファイルに分離したものです。

Form1の内容をForm2からいじくるときはいつもこうやってthisで丸ごと渡してあげ
て、object型変数であるFM1に格納すると、直接いじれて便利だったのですが、
Formじゃない場合もこれでいいものなのだろうか?と考えたのです。
738デフォルトの名無しさん:2012/04/20(金) 13:48:15.81
インタプリタw
739デフォルトの名無しさん:2012/04/20(金) 14:14:28.92
新旧両方のそれぞれの固定資産に置ける減価償却費の計算をして、月毎にそれらを
DBにレコードで突っ込んでくれるコードを自作しました。全部で2000行ほどのコードなの
ですが、これをDLL化ってできますか?
740デフォルトの名無しさん:2012/04/20(金) 14:14:42.96
痛いプリンタ
741デフォルトの名無しさん:2012/04/20(金) 14:16:46.73
Perlのほう速いってものwのポイント灘
742デフォルトの名無しさん:2012/04/20(金) 14:21:34.49
>>732
機械語で書けよ
なぜ自分のコードに特化したCPUを作らない?
743デフォルトの名無しさん:2012/04/20(金) 14:32:14.84
Graphicsじゃ点を書くの用意されていないのか…
744デフォルトの名無しさん:2012/04/20(金) 14:46:51.53
実行速度を早めたいが、生産速度は落としたくない
745デフォルトの名無しさん:2012/04/20(金) 15:24:37.40
C#が生産性が高いなんていってる奴は、所詮フォームに既存のコンポーネントをポトペタしてる奴だろ

ちょっと凝ったアプリを作ろうと思ったら、UIはほぼ  Controlから派生させてつくることになるから
VC++MFCと大差はない

746デフォルトの名無しさん:2012/04/20(金) 15:35:41.31
それはどうかな
747デフォルトの名無しさん:2012/04/20(金) 15:41:31.15
そりゃ凝ろうと思ったら何の言語だって手間かかるだろ
ドット単位で見た目を通常・選択・ホバー・押下時それぞれ作るとか
748737:2012/04/20(金) 16:02:12.11
class simcalc : Form1
{

public void pepsiman()
{

}
}

という具合に、Form1を継承させたら、Form1のコントロールにアクセスが簡単にできました。
ご迷惑おかけしますた。
749デフォルトの名無しさん:2012/04/20(金) 16:04:23.14
VC#にDoc/ViewなりMVCなりを用意してほしかったな
自前で準備するのは結構手間だし・・・

MFCはその部分を作ることが不要だから、どっちが生産性が高いなんていえないだろ

Form内にいろんなコレクションや配列なりをおいて、全てFormで完結させる人にはいいだろうけどw
750デフォルトの名無しさん:2012/04/20(金) 16:05:21.58
>>748
笑った

Form1を継承って・・・
751デフォルトの名無しさん:2012/04/20(金) 16:05:36.05
>>745
こんな感じで自分で作られるってことでしょうか?
http://d.hatena.ne.jp/machi_pon/20090509/1241841494

参考までに、どんなコントロールをよく作りますか?
752デフォルトの名無しさん:2012/04/20(金) 16:09:16.42
>>750
他に考えつかなかったもので。

というのも、Form1にあるpepsiDataSetというコントロールがあるんですが(他にもテキストボックスなど)
の値を取得して、空で作ったクラスファイルの中で使いたいなって思ったもので。

そのままだと、Form1にあるpepsiDataSetにデータをimportrowできなかったので、これでいいかなって
思って。

Form2からForm1のを参照する時は、newで新しくForm2インスタンスを生成して、その時に引数とし
てForm1自身を渡せたのですが・・・クラスファイルの時は駄目でした。

なんか、本当はこうするっていういい手ってありますか?
753デフォルトの名無しさん:2012/04/20(金) 16:13:29.72
>>750
ちなみにいま、C#を勉強し始めて、2週間くらいです。
754デフォルトの名無しさん:2012/04/20(金) 16:13:38.93
>>752
なにがしたいのかな?
755デフォルトの名無しさん:2012/04/20(金) 16:15:21.29
TabPageを継承したクラスを作ってそれのデザインを
フォームみたいにペタペタ貼り付けてする方法はないの?
756デフォルトの名無しさん:2012/04/20(金) 16:16:58.67
Form1もForm2も別々のものと捉えたほうが良いので
直接、オブジェクトの引き渡しは、あまり良くないかもな。
757デフォルトの名無しさん:2012/04/20(金) 16:17:02.17
1度やってみれば継承なんて数十秒で作れるくらい簡単なもんだけどな
値を1個追加で保持するだけでも
無理にTag使って作るよりはずっと楽だし拡張性もあるし
758デフォルトの名無しさん:2012/04/20(金) 16:20:04.50
>>752
ユーザーコントロールを作って
ユーザーコントロールの中にペプシデータセット実装して
Formにそのユーザーコントロールを配置してあげればいいんじゃないかな
759デフォルトの名無しさん:2012/04/20(金) 16:22:44.63
INotifyPropertyChangedとかデータバインドとか使えば・・・
760デフォルトの名無しさん:2012/04/20(金) 16:27:23.09
何かめんどくさいことをやるにしても
ゴミ言語でやるか神言語でやるかで
生産性に圧倒的な差が出てくるよね
761デフォルトの名無しさん:2012/04/20(金) 16:29:27.26
なにを持って神というのか、なにをもってゴミというのかさっぱりわからんがな。
762デフォルトの名無しさん:2012/04/20(金) 16:29:34.85
C#でゲーム作りって無謀なのかな
SlimDX,DXLib,XNA,SharpDXスレどこも過疎ってる
趣味でちょっとしたもの作るならDxLibが多い感じ
763デフォルトの名無しさん:2012/04/20(金) 16:31:08.09
C#/WindowsFormを使ってます。
ボタンを常にフォームの中央に表示したいのですが、どうしたらいいんでしょうか?

フォームをリサイズされても、常にサイズを計算して中央にくるボタンです。
Resizeイベントを実装すればいいのは分かるのですが、できれば、Anchorプロパティみたいに簡単に実装できる方法を
764デフォルトの名無しさん:2012/04/20(金) 16:31:10.64
765デフォルトの名無しさん:2012/04/20(金) 16:32:58.89
>>763
TableLayer使うとか
766デフォルトの名無しさん:2012/04/20(金) 16:34:02.53
>>762
無謀ということはないが、XNAならMSだし、たぶん安定?だと思うが、
何しろ情報がそんなに無いのがボトルネック。あってもMSDNぐらいだな。
DxLibとかは、一応C#でも使えるってところだけど、それなりに情報は、多い。
他は知らん。
767デフォルトの名無しさん:2012/04/20(金) 16:34:43.66
>>762
Unity3D C# iPhone うはうは
768デフォルトの名無しさん:2012/04/20(金) 16:35:39.67
ぶひひ
769デフォルトの名無しさん:2012/04/20(金) 16:40:11.58
こういう時英語が読めれば大抵情報は集まる
770デフォルトの名無しさん:2012/04/20(金) 16:42:14.85
高度なアルゴリズムの参考サイト探していたけど
日本じゃほとんどなく、海外で探したらサンプルソース付きで
丁寧な解説がすぐ見つかった
771デフォルトの名無しさん:2012/04/20(金) 16:43:11.94
>>762
最近XNA始めたところだよ。
DX9で挫折した自分でも3角形書けたので、これからガシガシ作りたいよ。
現状、コード量C++の半分くらいですむし。

XNAの資料はWisdomSoftっていうページの奴を参考にしてる。
結構基礎のところで知らないといけないところから解説してるから、
自分は回り道しなくてよくてありがたい。

んで、C#でゲームを作りたがらないのは逆コンパイラ関係からじゃないかな。
初心者ほどコードを秘匿したがる。
772デフォルトの名無しさん:2012/04/20(金) 16:47:58.18
ファームの上端にToolStripがあって左から順に

ToolStripLabel  ToolStripComboBox  ToolStripButton

と並べてある。フォームの幅が伸び縮みすると
773デフォルトの名無しさん:2012/04/20(金) 16:48:14.82
>>771
恥ずかしいってのがあるのかもな。
自分のコードに確かな自信がないと公開したくなくなる。
特にこんなところで安易に公開しちゃった日には、どこからともなく、
叩きにくる人が這い寄ってくるからなw
774デフォルトの名無しさん:2012/04/20(金) 16:49:00.69
ゲームの基本的な流れはあんまりかわらんからなあ
めんどくさいのは環境依存の手続きだったりするし
775デフォルトの名無しさん:2012/04/20(金) 16:49:33.87
俺は動けばいい派だから気にしない
776デフォルトの名無しさん:2012/04/20(金) 16:50:51.92
>>773
勉強中なら恥はかき捨てでええやん
ログインIDがばれるわけでもないんだしましてや自演しまくれる
IDなしの板だぜ

まともな回答者がもっといい方法を教えてくれるかもしれないし

777デフォルトの名無しさん:2012/04/20(金) 16:51:15.81
真ん中が伸び縮みするにはどうすればいい?
778デフォルトの名無しさん:2012/04/20(金) 16:54:19.78
アンカーの設定で可能なんじゃね?
779デフォルトの名無しさん:2012/04/20(金) 16:56:12.53
780デフォルトの名無しさん:2012/04/20(金) 17:00:59.32
>>771
自分はC++はやったことがないのでどれぐらい楽かわからないけど
C++&DirectXの場合、デバイスの初期化などゲーム本体以外の部分で手間がかかるようですね
一応DxLibではクォータービューを作って、キャラを動かすぐらいはやった

XNAはゲームに特化していて面倒な手続きがライブラリで自動化できるようだし
何より今頑張ってるって人がいると自分もやりたくなった
XNAでやってみます
781デフォルトの名無しさん:2012/04/20(金) 17:03:32.86
Form1_SizeChangedはフォームが出来上がる時のサイズ変更では呼ばれないの?
782デフォルトの名無しさん:2012/04/20(金) 17:06:08.66
呼ばれない。というか、その時点で呼ばれる保証は、ない。
Loadイベントが発生した後でサイズが変更されれば呼ばれる。
それ以前は、フォーム自体が生成されていないのでサイズの変更イベントをキャッチしようがない。
783デフォルトの名無しさん:2012/04/20(金) 17:07:19.15
なるほど
784デフォルトの名無しさん:2012/04/20(金) 17:32:08.73
785デフォルトの名無しさん:2012/04/20(金) 17:34:00.84
>>753
もう2週間勉強してください
それからまたいらっしゃい
786デフォルトの名無しさん:2012/04/20(金) 17:35:17.13
>>785
>>1を読んだ後死ね
787デフォルトの名無しさん:2012/04/20(金) 17:36:26.89
>>786
すっこんでろ池沼
788デフォルトの名無しさん:2012/04/20(金) 17:45:17.74
ソフトウェア板に移動できないか?
789デフォルトの名無しさん:2012/04/20(金) 17:53:31.68
あっちは、プログラミングは、論外じゃない?
790デフォルトの名無しさん:2012/04/20(金) 18:28:23.13
あっち使う人
こっち作る人
791デフォルトの名無しさん:2012/04/20(金) 18:36:59.00
よく知らないんだけど、頼んだら付けてくれるとかはなくて板ごとにあるなしが決まってるだけ?
この話題はIDなし、他の板に移住したら板違いと批判されると
792デフォルトの名無しさん:2012/04/20(金) 18:38:36.04
checkBox1.Checked == true ? "yes" : "no";
ってどういうことですか?
==があるから条件分岐かと思うのですが・・・
793デフォルトの名無しさん:2012/04/20(金) 18:41:12.26
>>792
checkBox1.Checked == true が正しいなら"yes"正しくないなら"no"
三項演算子でググるといい
794デフォルトの名無しさん:2012/04/20(金) 18:41:15.90
三項演算子
795デフォルトの名無しさん:2012/04/20(金) 18:45:52.90
TreeViewをオーナードローしてます
TreeNodeはDrawNodeイベントがあるのでそこで描画できますが
それ以外のアイコンとか点線とか+-はどこでやってるんですか?
Paintイベントもないようだし
796デフォルトの名無しさん:2012/04/20(金) 18:46:40.24
ありがとうございました
条件分岐で探しても出て来なかったので助かりましたです
797デフォルトの名無しさん:2012/04/20(金) 18:54:29.44
ID欲しけりゃ自分だけ節穴でもしとけよw
798デフォルトの名無しさん:2012/04/20(金) 18:55:14.80
痛い子が識別できるかできないかじゃないか?
799デフォルトの名無しさん:2012/04/20(金) 18:57:39.02
>>797
毎日荒らしてるお前をNG登録するためにみんな必死なんだよ^^
800デフォルトの名無しさん:2012/04/20(金) 20:03:15.89
移動したい奴だけしてろ
回答する気があるのなら特に気にならん
801デフォルトの名無しさん:2012/04/20(金) 20:10:42.12
下のようにマウスオーバーの色を変えるようなことをしたいんですが
チラつかないようにするにはどうすればいいでしょうか?
http://ideone.com/Qqq7l
802デフォルトの名無しさん:2012/04/20(金) 20:18:47.88
1ピクセルでも動くたびにマウスオーバー受け取ってればそりゃあもう
803デフォルトの名無しさん:2012/04/20(金) 20:23:17.79
>>801
TreeViewで使った事無いけどDoubleBufferedを使ってみたらどうだろう?
protectedだからサブクラス化してセットする必要有るが
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.treeview.doublebuffered%28v=vs.80%29.aspx
804デフォルトの名無しさん:2012/04/20(金) 20:34:50.90
>>802
マウスオーバーイベントというのはそういうもの
805デフォルトの名無しさん:2012/04/20(金) 20:38:36.44
いやですからね
毎回描画する必要性ないでしょという
806デフォルトの名無しさん:2012/04/20(金) 20:44:40.74
よく見ると引数無しのInvalidate連打じゃん豪気すぎる
807801:2012/04/20(金) 20:49:10.34
>>803
this.DoubleBuffered = true;と
this.SetStyle(ControlStyles.DoubleBuffer, true);の2種類試してみましたが残念ながら変化なしでした

>>805
マウスオーバーのノードが変化した時のみ
if文にてInvalidateをかけるようにしています
808801:2012/04/20(金) 20:56:54.17
>>806
自分まだまだなんでInvalidateの引数ありのものは使ってませんでした
なんかぐちゃぐちゃの汚いコードになりましたが一応思った通りに動きましたありがとうございます
http://ideone.com/muqJt
809デフォルトの名無しさん:2012/04/20(金) 21:04:24.90
Rx使えばいいよ。
810デフォルトの名無しさん:2012/04/20(金) 21:07:43.50
下のサイトにあるようにしたいのですが
どうしても戻り値がNULLになります。
どうしたら良いでしょうか?
URL長かったので短縮しました
http://goo.gl/IKhFN
811デフォルトの名無しさん:2012/04/20(金) 21:23:33.56
>>810
ステマっていうかステルスでも無いし。
カエレ!(-_-
812デフォルトの名無しさん:2012/04/20(金) 21:32:22.93
Finalizeされてしまえ!
813デフォルトの名無しさん:2012/04/20(金) 21:34:11.46
>>810.Dispose();
814デフォルトの名無しさん:2012/04/20(金) 21:37:53.48
見てないけどやっぱり短縮は業者か何かか
こんな数人しかいそうにないところに文章考えて貼って大丈夫なの?
815デフォルトの名無しさん:2012/04/20(金) 21:39:10.04
ステマじゃなくてさ、大音量で聞いて欲しかったわけよ


まぁステマだと思われてもこの御時世じゃあしゃあないわな
816デフォルトの名無しさん:2012/04/20(金) 21:46:40.39
Windowsソフトを作って一般に公開したいと思ってるんですが
Express版って不特定多数に公開するソフトは作れるんでしょうか?

ユーザー登録は済ませて評価版云々みたいな表示は消えたんですが
明確な許諾範囲の記述が見つからずこのまま学習を進めて良いのか不安です。

817デフォルトの名無しさん:2012/04/20(金) 21:48:48.11
別に良かろうと悪かろうとExpressで作ったかとかわかるのかwww
818デフォルトの名無しさん:2012/04/20(金) 21:49:55.75
特に問題ない。フリーでもシェアウェアでも問題なかったはず。
商業なら知らん。
819デフォルトの名無しさん:2012/04/20(金) 21:51:21.91
enum Banana
{
  irony, nexus, connect, naisho
};


これって二つ以上の項目指定して渡したりできないの?
820デフォルトの名無しさん:2012/04/20(金) 21:52:12.60
っ ビットフィールドフラグ。
821816:2012/04/20(金) 22:03:05.13
>817,818
ありがとうございました。
822デフォルトの名無しさん:2012/04/20(金) 22:23:52.43
|=
この演算子は一体どういう意味なのでしょうか
823デフォルトの名無しさん:2012/04/20(金) 22:26:14.05
論理和して代入
824デフォルトの名無しさん:2012/04/20(金) 22:32:13.64
ありがとうございます
こんな演算子を日常的に使って初めてプロなんですね・・・難しい
825デフォルトの名無しさん:2012/04/20(金) 22:50:43.89
>>819

var oreimo = Banana.irony | Banana.nexus;
826デフォルトの名無しさん:2012/04/20(金) 23:56:02.53
void string or int hoge()
こんなメソッドがほしい
827デフォルトの名無しさん:2012/04/20(金) 23:56:57.62
hogeってどういう意味なん?
828デフォルトの名無しさん:2012/04/20(金) 23:59:02.12
>>827
サンプルソースなどを書く際に変数に名称をその場限りでつける際に
よく使われてるだけ

なんでそうなったかっていうのはおっさんに聞いて
829デフォルトの名無しさん:2012/04/21(土) 00:10:30.56
VB6かよw
830デフォルトの名無しさん:2012/04/21(土) 00:13:14.54
>>826
オーバーライドで2つ作ればええんとちゃうの?
831デフォルトの名無しさん:2012/04/21(土) 00:13:43.60
>>827
意味はない。という意味を持ったワード。
832デフォルトの名無しさん:2012/04/21(土) 00:13:55.90
オーバーライドちゃうw
オーバーロードや

同じ名前のメソッドで引数とか微妙に変更できるやろ
833デフォルトの名無しさん:2012/04/21(土) 00:17:03.17
varじゃ駄目なの?
834デフォルトの名無しさん:2012/04/21(土) 00:36:49.29
varはコーディングの時に型が決まっているから違うだろ
てか、型が決まっているからバグが減らせるんだし、それに併せてコーディングするべきだわ
835デフォルトの名無しさん:2012/04/21(土) 00:47:18.83
このスレに解答として出されるソースに高頻度でvarが使われてるけど
自分はC#じゃvarは全く使わないから なんでそんなに使いまくるのかわからない
JavaScriptなら使いまくってたけど
836デフォルトの名無しさん:2012/04/21(土) 01:01:33.95
C#のVarは万能型じゃなくて記述の省略だから、頻繁に記述しても破綻することはない
万能型はdynamicってのが.net4.0から導入された

public dynamic hoge()ってメソッドなら、好き勝手な型を返すことが出来るけど、その使い方は余りお奨めできませんね
837デフォルトの名無しさん:2012/04/21(土) 01:31:55.04
hoge = 名状しがたい
838デフォルトの名無しさん:2012/04/21(土) 01:38:15.47
型名が書いてあるとレイアウトが見づらくなるし
型名は本質的な情報じゃないからソースの情報密度が下がってボヤける
839デフォルトの名無しさん:2012/04/21(土) 01:40:24.27
そのかわり、変数名に intTmp などとするべき
840デフォルトの名無しさん:2012/04/21(土) 01:41:06.07
dynamicを使う前に適切な型を使用可能かどうか、検討してみよう。
キャストしがたいならdynamicよりは、objectにでもしといたほうが…
841デフォルトの名無しさん:2012/04/21(土) 01:50:14.61
変数名で数値だとわかるようにすればいいだけ
システムハンガリアンとかただの害悪
842デフォルトの名無しさん:2012/04/21(土) 01:58:12.85
ただでさえ変数名を詳しく書いて長くなる人は型名を名前に含めたくないんじゃないか
843デフォルトの名無しさん:2012/04/21(土) 01:58:23.46
いや、判らなくなるほど変数を沢山使うなって方向で・・・
844デフォルトの名無しさん:2012/04/21(土) 02:00:29.47
var BokuHaMosikasitaraStringGatakamosirenai=HelloWorld;
845デフォルトの名無しさん:2012/04/21(土) 02:04:15.16
インターフェイスを使えばいいと思うんだ
そしたら型に依存しないコードが書ける
846デフォルトの名無しさん:2012/04/21(土) 02:05:53.21
まあ、インターフェースが無難だな。
847デフォルトの名無しさん:2012/04/21(土) 02:14:17.71
abstractは今一人気無いな。俺は割りと使うが
848デフォルトの名無しさん:2012/04/21(土) 02:15:36.39
意味不明
インターフェイスも型ですよw
それにどういう文脈で唐突にそういう話になるの
849デフォルトの名無しさん:2012/04/21(土) 02:22:27.26
型に付加できる型だから。
850デフォルトの名無しさん:2012/04/21(土) 04:29:54.59
intTmp、なんて一番避けたい変数名だな。

・悪しきシステムハンガリアン。
・悪しき略語。Tempならまだしも・・・(Tmp・・・Temporary?Temperature?Temperament?)
・Temporary、だったとして、一時的な・・・?一時的ななんだよ。

そんな名前使って良い場面なんてそうそうねえだろ。
851デフォルトの名無しさん:2012/04/21(土) 05:02:16.67
スコープの大きさによると思う
852デフォルトの名無しさん:2012/04/21(土) 05:44:18.00
VB6のソースで、モジュール変数(1ファイル限定のグローバル変数)で1,j、jを割り当てて
カウンター変数を共用しているの見たときは仰天したわw
853デフォルトの名無しさん:2012/04/21(土) 07:08:49.59
>>852
For用でしょ?初期化されるから問題ないんじゃね

for i = 0 to 9
next i
854デフォルトの名無しさん:2012/04/21(土) 07:25:44.68
海外の反応!日本は犯罪が少ないのになぜアメリカは犯罪が多いの? 

・なんで日本は犯罪がとても少ないの?



・日本は警察国家だから。

・なんてたって日本には全米ライフル教会がないからな(笑)

・そもそも日本は人をとても尊重する文化の国だからだな。逆にアメリカは憎しみから築かれた文化もあるからな・・・。

・日本は戦争反対の超平和国家だからな。やっぱ戦争ばっかやってる争い好きなどっかの国(アメリカ)とは大違いだよな(笑)

・日本人は金持ちで裕福だから犯罪が少ないんじゃないの?

・裕福だから犯罪が少ない?いいや違うな。人を尊重する心を持ってるからだと思う。

・日本って世界最高の国だと思わない?
高度なテクノロジー、素晴らしい車、エレクトロ二クス、健康的なライフスタイル、ファッション、エンターテイメント、近代的な都市!
日本のアニメや漫画も素晴らしいよね。
さらに肥満の人の数はアメリカが30%に対して日本は3%だし、高校の卒業率も日本の方が上だし、とある調査によればアメリカ人の平均IQは95に対して日本人の平均IQは105なんだとか、日本は教育も素晴らしいんだよ。
そして物凄く低い犯罪発生率。日本は世界で最も治安の良い国だし。

・確かに日本は非常に素晴らしい民族性と先進的な社会を持ってるって事は認めるしかないよね。
でも日本に住みたいとは思わないなぁ。日本人は素晴らしい人達だけどちょっと人が多すぎだから(笑)
http://livedoor.blogimg.jp/zzcj/imgs/4/3/438a7c5e-s.jpg
http://livedoor.blogimg.jp/zzcj/imgs/8/9/89a3a179-s.jpg
http://livedoor.blogimg.jp/zzcj/imgs/5/c/5cdedfb1-s.jpg
http://blog.livedoor.jp/zzcj/archives/51768909.html
855デフォルトの名無しさん:2012/04/21(土) 07:36:21.06
>>853
呼び出し元でその i, j を使ってない保証がないのと、
スレッド安全性ェ…
856デフォルトの名無しさん:2012/04/21(土) 07:46:27.83
VB6でスレッド? 何を言っているんだ
857デフォルトの名無しさん:2012/04/21(土) 08:19:08.68
>>850
for(int i
i・・・iってなんだよ、愛?合い?空い 意味がありすぎるな
省略だとしてiから始める単語は
858853:2012/04/21(土) 08:19:51.41
>>855
あぁそうか。呼び出し元で使ってたら大変なことになるな。
859デフォルトの名無しさん:2012/04/21(土) 10:29:30.96
変数のスコープは、できるだけ狭いほうが良い。
860デフォルトの名無しさん:2012/04/21(土) 11:33:49.02
>>855
何故、それすっ飛ばしてグローバルのi,j,kが成立したかと言えば、
元コボラーの奴は、関数という概念を余り理解していなかったから、処理一つを巨大関数で組んでいたから・・・ああビックリした
861デフォルトの名無しさん:2012/04/21(土) 11:47:22.24
俺なんてモジュールどころか完全にグローバルでループ変数あったぞ。
しかも呼び出し側と呼び出される側の両方の関数でFORで使ってんだよ、モジュールも別の関数で。
連携して変数書き換えて全体としてひとつのビジネスロジックになってんだ。
もちろんFOR以外の場所でも変数書き換えてて、
単純な2重ループとも全く違うループもどきの制御になってて。
きちがいかと思ったわ。

しかもそのループ変数は用途別に定義されてんだ。
例えば得意先コードでのループ専用ループ変数みたいに。
特定用途用のループ変数はそれひとつしかないから、
同じ対象での2重ループ以上のループは全部ひとつの変数できちがいじみた制御してた。
862デフォルトの名無しさん:2012/04/21(土) 12:05:34.51
構造化プログラミング論争があったのってもう40年くらい前の話よね?
その時代のコードでも現存してたの?
863デフォルトの名無しさん:2012/04/21(土) 12:12:46.13
>>862
いや、その40年前に作ったコボラーのコードを、そのままVB6に移植したというコードが
偶にこの業界には存在するんだわ
864デフォルトの名無しさん:2012/04/21(土) 12:19:29.20
>>836
>万能型はdynamicってのが.net4.0から導入された

初めて知ったw、情報ありがとう
そのdynamic型ってVBのvariant型と同じようなものなの?
865デフォルトの名無しさん:2012/04/21(土) 13:04:01.97
どちらかというと、Javascriptのプロトタイプみたいなもの
866デフォルトの名無しさん:2012/04/21(土) 13:05:11.08
>>684
C#の構文上は型に見えるけど、実際には動的コード生成してる。
一度生成したコードはキャッシュされてて、2回目からは結構高速。
あと、元々C#にない文字列→数値みたいなのの変換が自動でかかるわけではない。
867デフォルトの名無しさん:2012/04/21(土) 13:06:13.59
>>865
節子それちがう!
868デフォルトの名無しさん:2012/04/21(土) 13:10:40.04
864だけど、ちょっとググってみた

↓ここにいろいろ情報載ってた、いろいろと便利に使えそうだね
ttp://ufcpp.net/study/csharp/sp4_dynamic.html

>>865
そうなんだ、なかなか面白そうな型だね、いまJavascriptで開発してて、
JavascriptのプロトタイプみたいなものがC#にもあったら面白いのにと思ってたw
情報ありがとう
869デフォルトの名無しさん:2012/04/21(土) 13:13:42.30
>>863
>コボラーのコード
870デフォルトの名無しさん:2012/04/21(土) 13:15:21.28
>>866
そうなんだ、情報ありがとう

>>867
え?、ちがうのかいw

暇ができたら>>868のサイトをよく読んでみるわ
871デフォルトの名無しさん:2012/04/21(土) 13:29:50.56
なんでも入るというより「動作はオブジェクトに任せる」型だな
実行時に生成されるコードをMOPで自由に制御できるから
かなりなんでもありなメタメタな型
872デフォルトの名無しさん:2012/04/21(土) 13:40:12.54
本格的に使うなら、型にIDynamicMetaObjectProviderを実装して、
DynamicMetaObjectを継承したクラスのインスタンスを返す
このDynamicMetaObjectが実行時のコード生成を制御する役割を担ってて、
JavaScriptのプロトタイプのようなことができる(プロトタイプより遥かに強力だけど)
873デフォルトの名無しさん:2012/04/21(土) 13:44:57.75
というかプロトタイプのような仕組みを自分で定義できる仕組みなんだよな
やろうと思えばJavaScriptのオブジェクトシステムを模したものを
C#で実現することもできる
874デフォルトの名無しさん:2012/04/21(土) 13:50:39.75
StringBuilderの実行速度を気にしてた奴らの意見とは思えないな
875デフォルトの名無しさん:2012/04/21(土) 13:51:29.67
しかし、インテリセンスの恩恵を受けられなくなるのが難点…
876デフォルトの名無しさん:2012/04/21(土) 14:07:03.82
C#から透過的にExcelやブラウザ内のJavaScriptのオブジェクトを操作したり
関数呼んだりできるのにはちょっと感動する
877デフォルトの名無しさん:2012/04/21(土) 15:15:04.70
dynamicキーワード自体は、 >>866 のように、動的コード生成。
多分、 >>865 の言う、JSのプロトタイプ的ってのは、
dynamicと一緒に使えば便利なIDynamicMetaObjectProviderとか、
その実装のExpandoObjectのこと。
878デフォルトの名無しさん:2012/04/21(土) 15:55:04.40
クラスだけど値型にするにはどうするんだっけ?
879デフォルトの名無しさん:2012/04/21(土) 15:58:57.93
IConvertibleの実装?ちょっと違うか?
880デフォルトの名無しさん:2012/04/21(土) 16:06:08.29
値型はstruct(とenum)。
で、やりたいのはStringとかFontみたいな不変オブジェクト?
881デフォルトの名無しさん:2012/04/21(土) 16:19:05.49
あ、structで定義してあるのかー
サンプルいじってて、クラスと思ってnullにしたら値型ですと言われたんでブチギレちゃいました
882デフォルトの名無しさん:2012/04/21(土) 16:26:57.46
昨日の相談室のMouseHoverの人とかもそうだけど、よく分かってない人は
手段(だけ)じゃなくてその目的から説明した方がいいよ。

初心者なんて手段の選択も間違ってるんだから。
>>878なんか手段の話でしょ。
なんでそんなことをしたいと思うのかという目的を最初から書いた方が話が早い。
883デフォルトの名無しさん:2012/04/21(土) 16:32:17.17
おk
884デフォルトの名無しさん:2012/04/21(土) 16:32:28.42
「エロゲーで人間性失う」 円議員掲示板に批判数百件

「アダルトゲームで青少年は心を破壊され、人間性を失う」−。民主党の円より子参議院議員らが提出した
アダルトゲームの規制を求める請願に対し、同議員のインターネットサイトの掲示板に、数百件の批判的な意見が寄せられている。
http://mediajam.info/topic/493309
885デフォルトの名無しさん:2012/04/21(土) 16:34:44.19
目的言うのは難しいなぁ
そもそもなぜ値型なのかわかんないし
上の人が言っているように不変的だから?
886デフォルトの名無しさん:2012/04/21(土) 16:40:18.85
通常、structになってるのは、サイズが小さくてコピーコストが低いもの。
パフォーマンス上の判断。

で、structなものに対してnull使いたければNullable型使う。
Tに対してT?ってやればOK。
887デフォルトの名無しさん:2012/04/21(土) 16:49:09.11
understood
888デフォルトの名無しさん:2012/04/21(土) 16:52:53.21
ソース出せとしつこく初心者に粘着して、ソースを出せば他の文句を言い出す
彼って何者なの?
889デフォルトの名無しさん:2012/04/21(土) 16:54:28.31
ただのキチガイでしょ
890デフォルトの名無しさん:2012/04/21(土) 16:57:37.63
>>888
それは、小学生時代とかにち○こ出せとか言いはってた奴らです。
891デフォルトの名無しさん:2012/04/21(土) 16:58:41.96
>>888
という文句。
どっちかって言うと、あんたみたいな批判拒否症が一番馬鹿っぽい。
892デフォルトの名無しさん:2012/04/21(土) 17:34:02.45
あるクラスを利用するために設定する場合、手順を使う側に強制することってできないのかな?
コンストラクタに必要なすべての引数を渡せばいいけど、格好わるいし
使う側にインターフェイスを設定して実装するようにさせればいけるっぽい?
893デフォルトの名無しさん:2012/04/21(土) 17:36:52.03
コンストラクタに入れずにパブリックセッターで入れるとか最高にかっこわるい
入れ忘れたらどうすんのって感じ
894デフォルトの名無しさん:2012/04/21(土) 17:37:10.44
>>892
ファクトリーメソッドを実装。
コンストラクタは、private。
895デフォルトの名無しさん:2012/04/21(土) 17:37:43.62
一時の不格好と、バグの可能性を天秤に掛けると自ずと解ると思うけど。
896デフォルトの名無しさん:2012/04/21(土) 17:50:06.30
インターフェースを設定してどうすると手順を強制できるんだ?

class Start{
 public IDSetter SetID(int id){ return new IDSetter(id); }
}

class IDSetter{
 int id;

 public IDSetter(int id){ this.id = id; }

 public NameSetter SetName(string name){ return new NameSetter(id, name); }
}

new Start().SetID(id).SetName(name)...

こんな感じ?
897デフォルトの名無しさん:2012/04/21(土) 17:54:07.49
SplitContainerのような子コントロールを持ったカスタムコントロールMyControlを作りました。
デザイン時にMyControlをフォームに貼り付けて子コントロールの背景色を変えたときに、
Ctrl+ZでUndoできないのですが、どうすればできるようになるのでしょうか?
ちなみにSplitContainerの場合はPanel1の背景色を変えてもUndo出来ます。

ttp://ideone.com/VPhnm
898デフォルトの名無しさん:2012/04/21(土) 18:38:17.60
>>892
一般的には、オプションセットなパラメータを受け取るコンストラクタを用意するか、
ビルダークラスを別途用意する。
899デフォルトの名無しさん:2012/04/21(土) 18:41:18.52
ファクトリーメソッドの記事を読んできた
引数として渡される型は不変だけど、工程が場合によって変わるので使えるかもしれない
工程の違いごとにサブファクトリを作っていく感じかな
900デフォルトの名無しさん:2012/04/21(土) 18:41:30.67
ああ、あんま強制にはならんな。
901デフォルトの名無しさん:2012/04/21(土) 18:42:46.01
>>898
その方が楽そうですね
とりあえずそれでやってみます
902デフォルトの名無しさん:2012/04/21(土) 18:49:36.82
使う側が必用に応じて設定するパラメータなら強制する意味がない。

それがないと正常に動作しないパラメータ(恐らく他のオブジェクトへの参照)
がコンストラクタの引数にするのに躊躇するほど多数あるなら、たぶん設計が間違ってるんじゃないの?
903デフォルトの名無しさん:2012/04/21(土) 18:53:04.11
パラメータが多い!パラメータを全部まとめて一つのクラスにせんか!
って発想「だけ」でクラスが山のようにあるプロジェクトを思い出した。
パラメータが異常に多い時点で何かに気づいて欲しかったなあ。
904デフォルトの名無しさん:2012/04/21(土) 19:00:43.53
MassageBox.Show()フルで指定すると長すぎ
905デフォルトの名無しさん:2012/04/21(土) 19:11:16.19
メインクラスをサブクラス化して、データを個々のサブクラスで共有して
処理工程だけを別にしてみることにした
906デフォルトの名無しさん:2012/04/21(土) 19:13:00.29
>>903
何にきづけばよかったのか‥‥‥
907デフォルトの名無しさん:2012/04/21(土) 19:32:12.83
>>906
パラメータの指定をカンマの後で改行すればいいだけと気がつけばよかっただけじゃね?
908デフォルトの名無しさん:2012/04/21(土) 19:37:02.81
パラメータが多いからクラス作れって横長うぜーってだけだろうしねw
こんな感じ
http://ideone.com/Nq2et
909デフォルトの名無しさん:2012/04/21(土) 19:38:03.42
環境ごとにほぼ固定なパラメータまで引数にしてたとか?
クラスのプロパティやコンストラクタで変更できるようにすればすればすむじゃん、とか。
910デフォルトの名無しさん:2012/04/21(土) 19:39:37.47
デフォルト引数使えば?
.NET 4.0からだけど。
911デフォルトの名無しさん:2012/04/21(土) 19:48:14.19
そういう簡単な問題じゃないんだよね
パラメータが多いというよりも、作業工程が多いんだよ
パラメータを全部渡すと、そのクラスが抱える作業工程が多くなる
しかし一部だけ渡すと、作業工程は減るがクライアント側に適切な手順が求められる
このパラメータは一連の作業の過程で得られるものなので

ソースデータを処理して、結果を出し
その結果から、また結果を出しという感じで
最終的にオブジェクトが大量にできる
一連の作業をメインクラスで全部やってから渡すか
ソースデータを渡して、その結果をメインクラスで受け取って処理して
それを作業クラスのメソッドに渡して、結果をもらうという感じになる
912デフォルトの名無しさん:2012/04/21(土) 19:54:28.74
モデルクラスがソース受け取る

ソースを元にモデルクラスが処理する

それをViewへと送る

Viewは表示する

という一連の過程があって
メインクラスは、この各工程ごとに適切なメソッドを呼び出さないと
Viewに送った時にエラーが出る
この一連の工程をメインクラスに強制するような何かか、
ソースを渡して、処理も表示もすべてやらせるかという話
913デフォルトの名無しさん:2012/04/21(土) 20:02:48.75
モデルクラスのメソッドに作業をさせる場合
メインクラスではこのような処理になる
でもこんな手順なんてすぐ忘れてしまう

new model(source);
model.処理1();
model.処理2();
model.処理3();
model.Show();

あと、考えられるのは、処理2に渡すオブジェクトを
処理1で返した特別な型のオブジェクトでないと受け取れないようにするとかしか思い浮かばない
914903:2012/04/21(土) 20:09:59.20
異常に、の一言で片付けてるから伝わりづらいけど、
メソッドはすべてstatic in static class。
static classはメンバを持ってはならない。
static メソッドの引数が多く(具体的な基準値はない)なるなら、
それらをすべてclassで内包しろ、とかいうルールでやらされたんだわ。
そら普通にやったら引数も多くなるわ、と思いながら。
915903:2012/04/21(土) 20:14:16.86
ああ、そういや「パラメータのカンマ区切りで改行禁止」なんてルールもあったな。
「どこからどこまで一つの処理か分からなくなるだろう!」とかなんとか。
916デフォルトの名無しさん:2012/04/21(土) 20:16:00.09
>>915
それ大手メーカーの仕事を請け負ってるか、上司が大手メーカー出身とかじゃないの?
917903:2012/04/21(土) 20:17:04.69
>>916
うんそうだよ
918デフォルトの名無しさん:2012/04/21(土) 20:23:08.44
マッサージボックスでフル
919903:2012/04/21(土) 20:23:20.40
IDない板だと偽称も容易だねえ。ま。いいや。
920903:2012/04/21(土) 21:32:32.09
ん?
921デフォルトの名無しさん:2012/04/21(土) 21:40:40.41
>>914
classで内包もいいけど
そのクラスのコンストラクタがどうせエライことになるんだろ?
922デフォルトの名無しさん:2012/04/21(土) 22:54:08.18
日本海呼称めぐり請願合戦 米政府HPが一時ダウン
http://sankei.jp.msn.com/world/news/120421/amr12042122340005-n1.htm

お前らあまり他所の国に迷惑をかけんなよw
923デフォルトの名無しさん:2012/04/21(土) 23:13:37.79
てst
924デフォルトの名無しさん:2012/04/22(日) 02:43:01.04
>>921
甘いな。
コンストラクタはデフォルトコンストラクタのみ。
publicメンバー変数しか持たない。
925デフォルトの名無しさん
Facadeクラスでも作ればいいのに