トップページ⇒tech
1001コメント301KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2012/04/14(土) 14:21:21.83
このスレッドは
「どんなにくだらない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/
0002デフォルトの名無しさん2012/04/14(土) 14:28:37.44
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
http://pastebin.com/
コードを貼り付けてrun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます
0003デフォルトの名無しさん2012/04/14(土) 14:43:19.96
Streamを介すると1バイトずつしか読めないって何言ってるのアレは
0004デフォルトの名無しさん2012/04/14(土) 14:44:25.96
ジョークだろ まともに相手するなよ
0005デフォルトの名無しさん2012/04/14(土) 14:44:39.72
基本クラスにキャストすると基本クラスのメソッドが呼ばれるとか思ってんじゃねえかなー。
0006デフォルトの名無しさん2012/04/14(土) 14:57:38.47
基本クラスの実装つってもabstractなのはReadByteじゃなくてReadの方だからなあ
Streamはバッファでまとめて読み書きするのが基本であり普通
0007デフォルトの名無しさん2012/04/14(土) 15:02:00.59
Streamにもbyte[]にコピーするメソッドがあるのね
でそれをunsafeでint*にキャストかなんかして読むわけ?
GCで移動されないようにロックして?
ちょっと考えられませんねえ
実質使えないに等しいでしょう
0008デフォルトの名無しさん2012/04/14(土) 15:03:32.53
っ BitConverter
0009デフォルトの名無しさん2012/04/14(土) 15:04:36.65
>>7
気になるならソース公開されてるんだし中身みてこいよw
内部の細かい実装はどうでもよくてHDDで読み書きするよりは高速だからってことで使う程度だし

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

なんてレベルに語られても…って感じだよね
お前いままで何を前提に喋っていたんだと
0015デフォルトの名無しさん2012/04/14(土) 15:12:26.19
unsafeでキャスト可能ってことは内部的には同じものとして扱えるってことでして
パフォーマンスが必要ならそういうのを利用した設計にしますし、BinaryReaderのような奴は実際そうなってます
0016デフォルトの名無しさん2012/04/14(土) 15:17:13.64
>>8
BitConverterじゃ中身これだし〜

http://ideone.com/zZGA1
http://labs.developerfusion.co.uk/SourceViewer/browse.aspx?assembly=SSCLI&namespace=System&type=BitConverter&member=716

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

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

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

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

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

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


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

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

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

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

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


dataGridView1[

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

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

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

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

もうね
>>41を守れよ

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

アホがやることなんてw

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

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

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

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






..
0068デフォルトの名無しさん2012/04/15(日) 00:04:48.21
その空白に何か意味はございますか?
0069デフォルトの名無しさん2012/04/15(日) 00:05:42.67
類は友を呼ぶ
0070デフォルトの名無しさん2012/04/15(日) 00:06:24.58
>>65
datagridviewの人なら、dataGridView1[0.2]は3行目の1列目を示すが、縦横勘違いしていないか?
0071デフォルトの名無しさん2012/04/15(日) 00:07:04.13
wwすまない俺は>>56だ
やってみたいんだよC#を
俺は熱くなってる人たちが好きだよ
0072デフォルトの名無しさん2012/04/15(日) 00:09:40.48
>>71
グダグダ言わずにやってみろ
0073デフォルトの名無しさん2012/04/15(日) 00:09:46.85
Streamの無駄が多いしC言語がオススメ
0074デフォルトの名無しさん2012/04/15(日) 00:12:52.22
>>72
わかったやってみるよw
ありがとう
俺も仲間になってはよ罵られたいよ
ほどほどに熱く住み着いててくださいw
0075デフォルトの名無しさん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でした・・・
0076デフォルトの名無しさん2012/04/15(日) 00:32:15.05
intに代入された段階でどういう状態であれボックス化は解除されてるはずなんだけど

(int)でキャストが通らないのはテキストだからでしょ
0077デフォルトの名無しさん2012/04/15(日) 00:32:51.27
WPFなどのバインディングのように双方向とかないんだっけ?
0078デフォルトの名無しさん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は同じもの
0079デフォルトの名無しさん2012/04/15(日) 00:42:09.24
普通にintでキャストしたらいけたが

だから問題の切り分けができてないだって
0080デフォルトの名無しさん2012/04/15(日) 00:44:48.48
結局のところForm1.Designer.csを見ればわかる話
0081デフォルトの名無しさん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
0082752012/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はハンドルされませんでした。
指定されたキャストは有効ではありません
0083デフォルトの名無しさん2012/04/15(日) 02:09:19.87
だからさー
dataGridviewのColumnなどの枠を作る部分のコード出せって
あとそこへ情報突っ込んでるコード

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

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

情報が部分的すぎなんだよ
0084752012/04/15(日) 02:10:39.70
入れた値は
0,1,2
10,11,12
20,21,22
です。はい、馬鹿です。思考力低下の真っ只中です。すいません。なんでだろう?
0085752012/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回繰り返しました。
0086デフォルトの名無しさん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
0087デフォルトの名無しさん2012/04/15(日) 02:27:48.54
DatatableでCompute使えば終わりじゃないの?
0088デフォルトの名無しさん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)を読んで更に書式に関するカルチャ固有の情報とかちんぷんかんぷん
0089デフォルトの名無しさん2012/04/15(日) 02:37:47.14
>>86
的外れじゃねーよ

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

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

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

入れた数値

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


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

とはあるが

手入力

とは書いてない

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

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

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

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

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

空気を読むのに慣れすぎて日本人はそういうところを嫌うよね
0102デフォルトの名無しさん2012/04/15(日) 03:15:34.15
>>35さんと、>>75は別ですよ。
35さんの質問があって、その上で75が便乗してますですよ。
あと、無駄な改行やめれ。 行間も空気も読め。以後放置で。
0103デフォルトの名無しさん2012/04/15(日) 03:17:52.59
ヒアリングの結果ご所望の答えは出したろ
情報をちゃんとだしてればもっと早かったんだよ
0104デフォルトの名無しさん2012/04/15(日) 03:44:31.79
コミュ障だからプログラマになった奴らが
人を教育できるわけがない
一生こき使われるタイプだなw
0105デフォルトの名無しさん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);
とわけてブレークポイント置いてステップ実行。どの部分が悪いのか調べる
0106デフォルトの名無しさん2012/04/15(日) 08:15:51.49
わかった。90のオツムが悪い
0107デフォルトの名無しさん2012/04/15(日) 10:12:22.92
無断欠勤して電話シカトでも翌日堂々と出てくるしな
欠勤理由はFAXで送りました、届いて無いのはそっちのFAXが悪いからと真顔で言う
電話しろと注意すればよそ見しながらハイハイ
ボーッとしてるから仕事しろと言えば頭の中でやってますとか。中国人は真面目に働くのに
10人が10それ。当然全員クビにして以後韓国人は採らないと決まった
0108デフォルトの名無しさん2012/04/15(日) 10:52:01.66
韓国人は知らないが、中国人は最悪だぞ
仕事は雑だし、飯食わせないと仕事しないし
声でかいし、言うこと聞かない
0109デフォルトの名無しさん2012/04/15(日) 10:56:24.27
日本のテレビの特徴:

・上にタイトルと説明が書かれている
・下に字幕がある
・四隅のどこかの枠でスタジオの芸能人の様子
・スタジオに数〜数十人の芸能人が鎮座している、その大半が一言も喋らない
・韓国の人間・情報が頻繁に登場する
・挿入曲は45秒くらい
・ヘェー、エェー、美味しそう〜、スゴーイという声がよく聞こえる
・SE丸出しの笑い声や拍手
・この後衝撃映像が!→CM数回引っ張る→予告映像に毛の生えた程度
・CMの後もまだまだ続きます→小トーク→次回予告→小トーク→終了
・CM明けに同じ映像をリピート再生する
・半端な時間で始まる・終わる
0110デフォルトの名無しさん2012/04/15(日) 11:11:11.65
リストビューとアイテムから
とあるグループに入ってるものだけ消すにはどうすればいい?
0111デフォルトの名無しさん2012/04/15(日) 11:23:33.61
ループなりなんなり回して
ListViewItem.Groupプロパティが該当グループと一致したら削除したらいいだろ
0112デフォルトの名無しさん2012/04/15(日) 11:31:23.50
しょぼっ
0113デフォルトの名無しさん2012/04/15(日) 11:51:09.32
日曜昼間のマは 月曜日に備えて PCに近付かない
0114デフォルトの名無しさん2012/04/15(日) 12:07:32.46
試験受けに来てるから触りたくてもさわれませんぬ
0115デフォルトの名無しさん2012/04/15(日) 13:15:29.23
今日はjitecの日か
0116デフォルトの名無しさん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%と若年層のウェイトが低かったことによる影響も考えられるが、今回の結
果からは、この地方の主婦の間に「韓流ブーム」といった“熱”を確認することはできなかった。
0117デフォルトの名無しさん2012/04/15(日) 20:49:11.07
ネトウヨきもっ、まで読んだ。
0118デフォルトの名無しさん2012/04/15(日) 21:53:09.08
レスをもらえた>>116大勝利!
0119デフォルトの名無しさん2012/04/15(日) 23:44:47.90
行列ってなんで統一してくれないんだろう?
DataGridView1[3,0]に対応するのは
エクセルVBAでのセル位置はCells(1,4)ですと?むきぃ
0120デフォルトの名無しさん2012/04/15(日) 23:47:33.22
ゼロ始まりが理解できる人と出来ない人がどれだけいるか考えると
仕方ないかと

ただColumnとRowが逆なのは・・・
0121デフォルトの名無しさん2012/04/16(月) 00:41:20.42
いやいや1ベースなのはともかく、[行, 列]なのはむしろ自然。
0122デフォルトの名無しさん2012/04/16(月) 02:03:14.83
>いやいや1ベースなのはともかく、[行, 列]なのはむしろ自然。
…
0123デフォルトの名無しさん2012/04/16(月) 02:04:38.50
>>88 Int32.TryParse(dataGridView1.Rows[0].Cells[0].Value.ToString())
こうかな?
0124デフォルトの名無しさん2012/04/16(月) 02:04:48.61
座標だとx,yつまり横縦が多いけど配列などで考えると縦横じゃね?
0125デフォルトの名無しさん2012/04/16(月) 02:11:09.62
dataGridViewのことはよく知らんけどValueの中身がstringだからintにキャストできないんでしょ
見た感じValueTypeにtypeof(int)を入れないとintにならないんじゃないの
なんか随分たってるのにまともな回答がないように見える
0126デフォルトの名無しさん2012/04/16(月) 02:15:03.97
列の追加編集ダイアログにValueType欄を入れなかったMSがそもそも悪いんだって
0127デフォルトの名無しさん2012/04/16(月) 02:17:24.52
>>125
手入力すると数字を入力したつもりでもstring扱いで入ってるってだけ

だからValueTypeでカラムごとに動作を決めてあげればいいだけ
そうすれば所望の型で入ってるんだし
0128デフォルトの名無しさん2012/04/16(月) 02:32:42.23
MenuStripとToolStripに同じ機能のアイテムを置くことは多いと思いますが、
同じ機能のアイテムを同時に有効/無効にしたり、チェックをON/OFFする
機能はないのでしょうか。
MFCやWTLではIDが同じアイテムは自動的にまとめて扱えるので、
同じような機能があるとありがたいのですが。
0129デフォルトの名無しさん2012/04/16(月) 02:41:51.00
>MFCやWTLではIDが同じアイテムは自動的にまとめて扱えるので、
こっちってサンプルソースとかどこかにない?
0130デフォルトの名無しさん2012/04/16(月) 03:09:36.60
無ければ作れば良いだけのこと。
0131デフォルトの名無しさん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);

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

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

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

なんでこいつは親フォーム指定しても画面の真ん中に現れるの?
0141デフォルトの名無しさん2012/04/16(月) 06:35:12.41
Windowsの仕様
0142デフォルトの名無しさん2012/04/16(月) 07:03:28.93
専用のフォーム作って自分で場所を指定してあげるとかすればいいんじゃない
0143デフォルトの名無しさん2012/04/16(月) 07:10:58.66
MessageBoxの機能は何だか酷く中途半端に感じるんだよなあ。
CategoryAttributeとかもそうなんだけど、多言語対応を謳ってる割に、
そういうところの実装がいまいち煮え切らん。結局英語以外の文化圏()ってぇ態度なんかなあ。
0144デフォルトの名無しさん2012/04/16(月) 08:59:58.76
ヘルプって一々インターネットを参照するんですが、
自分のPCにインストールし、そこを参照するようにできないんですか?
0145デフォルトの名無しさん2012/04/16(月) 09:21:45.99
VS2010の話?
できるじゃんかよ
0146デフォルトの名無しさん2012/04/16(月) 10:35:03.58
どうやるとできるのかを聞いているんですが・・・
みなまでいわないと分かりませんか?
0147デフォルトの名無しさん2012/04/16(月) 11:30:04.47
ひとつのクラスで300行もあるようなのってどうおもいます?
もっと機能を分割すればいいのに・・・
0148デフォルトの名無しさん2012/04/16(月) 11:44:14.21
今作ってるのは機能別に分割しても1つのクラスで1万行がいくつかあるな
まあ分けたほうがやりやすいなら分ければいいんじゃね
ただ同じような機能なのに長いからという理由だけで分割するのはやめたほうがいい
あとregion使ってないなら使えるようになったほうが管理能力あがる
0149デフォルトの名無しさん2012/04/16(月) 12:21:05.65
リージョンつかうやつは素人。
とまでは言わないがやたら細かくつかうやつはアホ。
邪魔なだけ。
0150デフォルトの名無しさん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認証でユーザ名とパスワードが設定されているページ
0151デフォルトの名無しさん2012/04/16(月) 12:43:57.00
cdekake
0152デフォルトの名無しさん2012/04/16(月) 12:48:30.05
>>136
ToolStripItemはControlじゃない(ウィンドウハンドルも持ってない)から
普通のボタンと同じようには探せないのよね。
0153デフォルトの名無しさん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;
}
}
}
--- ソースここまで ---
0154デフォルトの名無しさん2012/04/16(月) 12:52:56.43
>>2
0155デフォルトの名無しさん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
0156デフォルトの名無しさん2012/04/16(月) 13:04:56.89
accdbにGUIを付けて操作するアプリを作ってます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

のスタイルと

if( .. )
{
...
}

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

なんてどうよ

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

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

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

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

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

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

日本人がアフガンやアラブ圏から嫌われないのは、どの部族であっても
戦前から民間団体が緑化などで友好的関係だから。
単に政府と政府の良好な関係で成り立っているわけじゃない。
タリバン含めな。
0230デフォルトの名無しさん2012/04/17(火) 00:12:30.19
C#で音声入力(PCのLine入力)を扱おうとしているものです。
音声入力関係のライブラリや検索するためのキーワードなどを教えていただけないでしょうか?
0231デフォルトの名無しさん2012/04/17(火) 00:17:27.84
音声なんて、16ビットを44.1kHzでサンプリングしたとし
その膨大なデータ量を処理するにはC#みたいなインタプリタじゃなくて
C/C++のネイティブコードじゃなきゃ使い物にならんぞ
0232デフォルトの名無しさん2012/04/17(火) 00:18:29.31
C#は、インタプリタとは違うだろ
0233デフォルトの名無しさん2012/04/17(火) 00:18:58.06
>>231
やっぱりC言語じゃないと扱えないですか…
ありがとうございます
0234デフォルトの名無しさん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
02352082012/04/17(火) 00:57:35.70
>>225
HttpRequest使ってソース取得して、それを整形してwebBrowserに流し込んでるのでその手は使えない…
やっぱり継承してオーバーライドするしか・・・ないのか・・・
0236デフォルトの名無しさん2012/04/17(火) 01:11:15.13
>>235
クッキーコンテナをHttpRequestでやり取りできたはずだが
02372082012/04/17(火) 01:38:21.14
>>236
最初の画面はHttpRequestにCookie食わして取得してWebBrowser流しこんでokだけど、WebBrowser上でリンクを踏んだりして
別のページに飛ぶと、Navigateメソッドで移動するみたいだから、Cookieが無効になる
やりたいことはwebBrowser上でリンクとかページジャンプが起こったときに、一番最初のHttpRequestの処理を呼び出したいんだ
0238デフォルトの名無しさん2012/04/17(火) 01:42:52.48
>>237
Navigatingイベントを拾って自分で対策すればいいだけだろ
0239デフォルトの名無しさん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色々試してみたけど、今のところ甲斐無し・・・。

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

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

この辺とかどうよ
http://ispin.blog32.fc2.com/blog-entry-221.html
0241デフォルトの名無しさん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倍か・・・しんどいなあ
0242デフォルトの名無しさん2012/04/17(火) 02:56:18.32
>>239
いちいちプログラミングするのも面倒だろうから
テキストエディタに表示して文字コードいろいろ試してみたら
それで無理なら何やっても無理だと思うけど

それとnull文字、Invalid文字としてファイル名から削除されているかもね
そんなに入手しづらい同人誌だったの?
0243デフォルトの名無しさん2012/04/17(火) 03:00:21.79
ファイル名も圧縮されているんだからまず解答しなきゃだめでしょ
02442082012/04/17(火) 03:50:39.24
>>238
ありがとう。どうにかそれでできそうだ
0245デフォルトの名無しさん2012/04/17(火) 06:20:09.16
>>241
俺もそういう機能のzipやrarの復元ツールないかと思ったけどないんだよな
UTF-8ならExplzhが直してくれるけど。だからすべてが可逆的じゃないとか難しいとか判別面倒くさいのかと思った
あと化ける理由はセパレータが'/'じゃなくて'\'な圧縮ツールだとか
0246デフォルトの名無しさん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
セパレータの問題も頭痛いけど、さすがにそんな馬鹿なツールは使ってないと・・・自分を信じたい。
自機の定期バックアップに、ころころアプリ変える自分の頭が悪いから、無いとは言い切れないけど。
0247デフォルトの名無しさん2012/04/17(火) 08:04:21.17
ん、でもまてよ・・・PKWareの仕様に従うソフトならUTF8かIBM437でエンコ/デコするだろうし、
独自の、といってもMacとWin環境しか使ってないし、SJIS(MAC)、SJIS(Win-3J)、EUCくらいが関の山か。
ある程度絞り込んでやれば行けそうだな・・・
0248デフォルトの名無しさん2012/04/17(火) 08:12:08.17
日本語で問題が出るツールって大抵EUだな
0249デフォルトの名無しさん2012/04/17(火) 08:18:58.53
【ワシントン=石元悠生】東京都の石原慎太郎知事は16日午後(日本時間未明)、ワシントン市内で講演し、
「尖閣諸島を(東京都が)購入する」と明らかにした。すでに、地権者サイドとも交渉し、合意を得たもようだ。沖縄県石垣市とも協力する方針という。

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

http://sankei.jp.msn.com/politics/news/120417/plc12041704580005-n1.htm
0250デフォルトの名無しさん2012/04/17(火) 09:29:51.06
J#使っちゃうとか
0251デフォルトの名無しさん2012/04/17(火) 09:39:38.57
>>248
Encodingの問題は、必要に迫られて考えてもえらい混乱し易い問題だからな・・・
大した必要も感じない英語圏の人間が安易な方向へ逃げたとしても、強く糾弾しがたい。
0252デフォルトの名無しさん2012/04/17(火) 10:34:16.61
世界中の言語と記号をサポートした大統一エンコードがほしい
0253デフォルトの名無しさん2012/04/17(火) 10:47:49.84
世界中の言語と記号をサポートした大統一エンコードを考えるより
世界中の言語と記号を廃止して新規文字に世界統一するほうが簡単
0254デフォルトの名無しさん2012/04/17(火) 10:48:35.59
つユニコード
0255デフォルトの名無しさん2012/04/17(火) 11:14:35.09
ユニコードの持つ問題は多いけど、思想の出発点としては大事だよな。
半角カナだの全角英数だのは、本気で廃止して欲しかったけど。
0256デフォルトの名無しさん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);
0257デフォルトの名無しさん2012/04/17(火) 12:12:45.57
後で読み返すと、どれが自分のレスかすぐわかるなあ
特徴ある
0258デフォルトの名無しさん2012/04/17(火) 12:14:21.32
>>256
どうせ後で色々悩むだろうから、SQLインジェクションでググっておくことを勧める。
0259デフォルトの名無しさん2012/04/17(火) 12:44:39.03
>>256
たぶん
command.CommandText = "SELECT * FROM HOGE WHERE NAME LIKE @name";
command.Parameters.AddWithValue("@name", name + "%");
0260デフォルトの名無しさん2012/04/17(火) 13:01:26.27
ナルト使うとメタ文字になるけど、言語の話ではないのか・・・。
0261デフォルトの名無しさん2012/04/17(火) 13:13:08.93
LIKE @name ESCAPE '$'
name.Replace("%","$%") + "%"
02622562012/04/17(火) 13:31:34.85
>>261
LIKE 〜 ESCAPEでESCAPEに指定した文字の直後にあるワイルドカード文字はリテラルとして処理されるんですね
ありがとうございました
0263デフォルトの名無しさん2012/04/17(火) 14:19:48.83
いえいえ
0264デフォルトの名無しさん2012/04/17(火) 16:29:58.07
11
0265デフォルトの名無しさん2012/04/17(火) 16:30:44.68
11
0266デフォルトの名無しさん2012/04/17(火) 19:43:02.52
難しいロジックを考えているとすごく脇汗が出て
しかもすごく臭いんですけど、みなさんはどうですか?
0267デフォルトの名無しさん2012/04/17(火) 19:46:40.99
難しいこと考えてる時はだいたい自分がバグってるから考えなおすかな。
もっとシンプルになるはずだ〜。
0268デフォルトの名無しさん2012/04/17(火) 20:51:15.02
難しいこと考えて、こういうクラスが必要、ああしてこうして……と
コード量が爆発してきたときはたいてい何か間違ってることが多いからリセット。

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

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

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

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

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

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

StringBuilderが速くて当り前。
0320デフォルトの名無しさん2012/04/18(水) 01:55:59.42
ちゃんとした根拠なしで早い遅いって小学生のxxが最強話かよw
それでよくIT関連で仕事できるな
0321デフォルトの名無しさん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);

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

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

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

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

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

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


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

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

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

正しい使い方に変更してやったらこんな感じ。これが現実。
0345デフォルトの名無しさん2012/04/18(水) 02:31:58.31
>>298
だまされるなよ、無理かもしれんがw
0346デフォルトの名無しさん2012/04/18(水) 02:35:26.09
>>344
条件の違う処理を比較をして何が楽しいんだか。
ってかそれどういう計測だよ、いろんな意味でおかしくないか?
意味のある計測なら、もっと圧倒的に差が出るか、差が出ないかどっちかでないとおかしいぞ。
0347デフォルトの名無しさん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

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

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

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

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

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

おれのPC遅いなぁ。
0357デフォルトの名無しさん2012/04/18(水) 03:04:27.99
+のほうが速いと言ってたのに、>>347 のこの圧倒的な差をスルーするのはどうかと思う。
0358デフォルトの名無しさん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 {::::::::::::::Υ   /
0359デフォルトの名無しさん2012/04/18(水) 03:08:57.60
>>347
我が軍は圧倒的ですね。
0360デフォルトの名無しさん2012/04/18(水) 03:10:28.03
+の方が早いってのは>>298が発端だろ?
>>347の扱い方をするべきなのは判ってるけど、論点が違うって言ってんだろ。

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

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

>>360
newしまくってる意味わかってる?
0363デフォルトの名無しさん2012/04/18(水) 03:17:59.81
>>362
ごめん、分からない。
今回のような使い方するなら連結用のBuilder1つ用意しておけばいいんじゃね、って思ってるから。
0364デフォルトの名無しさん2012/04/18(水) 03:20:08.47
お前らもう寝ろ
0365デフォルトの名無しさん2012/04/18(水) 03:23:56.49
+の連結とStringBuilderの比較であって
ベンチを早くするのが目的じゃないからな
Builderを使いまわせるケースもないわけじゃないけど
StringBuilderでToString()しないっていうのはありえない
0366デフォルトの名無しさん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);

と、どっちが早いかって話。要するに、追加する文字列の数自体は固定である場合。
ミニマムな性能テストコードを書いた場合、テストの(性能差を感覚的に有意にする)ためのコードと、
性能試験したい対象のコードをごっちゃにしないようにしないと混乱するぞ。
0367デフォルトの名無しさん2012/04/18(水) 03:25:45.04
ループ内でToString()したらStringBuilder使う意味がない。というかただのアホ。
newがなぜ遅いか理解してないか、newの意味自体理解してないか。
0368デフォルトの名無しさん2012/04/18(水) 03:26:27.44
あ、実際組んだワケじゃなくてこの場で書いてるから動かんコードだったらすまん。
0369デフォルトの名無しさん2012/04/18(水) 03:27:40.93
+派がおかしい。MSDNに書いてあるとおり。StringBuilderはnewしないから速い。
StringBuilder使ってnewしまくるコード書いて遅いと言ってる奴はPGに向かない。
0370デフォルトの名無しさん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は荒らしたいだけだから無視したほうがいい
03713662012/04/18(水) 03:31:01.97
あ、366だけども、上の場合の比較はStringBuilder、
下の場合の比較は+が高速、ってことで合ってるよね?
動かせる環境がありゃすぐ動かしてみるんだが、俺の認識間違ってたら色々やばいな。
03723662012/04/18(水) 03:31:24.55
>>370
それホントか?ちょっと試しに動かしてみて欲しい。
0373デフォルトの名無しさん2012/04/18(水) 03:32:42.58
>>370
>>372
多分、コンパイル字に最適化されて比較の意味がない
0374デフォルトの名無しさん2012/04/18(水) 03:35:46.85
>>370
荒らしおまえだろ。そのIL比べてみろよ。
ループ内でToString()を使うのはただのアホ。
stringをnewしまくってることに気づいてないアホ。

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

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

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

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

そのテストで分かったことはstringをnewすることは糞遅いということ。
すなわちその糞遅い処理をバッファにしてnewを端折れるStringBuilderが速いということ。
0383デフォルトの名無しさん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();
を比べてるんだよ。ループは速度たしかめる為のもんだから、この際あんまり関係ないよ
0384デフォルトの名無しさん2012/04/18(水) 03:54:05.52
>>382
お前はStringBufferをToString()せずに使うのか?
0385デフォルトの名無しさん2012/04/18(水) 03:55:24.08
>>381
文字配列を作る時間を計るテストだったのか? テストの意図が随分違うね。
+もStringBuilderもstring配列を作る時間が大半じゃテストとしては不適当だね。

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

すごいサイト見つけた。こいつ詳しすぎ。天才ハッカーだね。
0388デフォルトの名無しさん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
0389デフォルトの名無しさん2012/04/18(水) 04:01:08.47
>>377のコードも一応上げておく。
こういうことを聞いてたんで合ってるよな?
http://ideone.com/0lEHf

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

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

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

時間計測(delegate)
 for() // 時間計測のための疑似ループ {
 }
string 試験対象A() { ... }
string 試験対象B() { ... }
みたいなのが望ましい。
0403デフォルトの名無しさん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
0404デフォルトの名無しさん2012/04/18(水) 04:48:50.70
配列使ったりしてるのは最適化の影響をできる限り避けるため。
まあ多分使わなくても大丈夫だとは思うが。
初期化をメソッドに外出ししてるのも同じ理由。
計測範囲はStopwatchの開始からStopでわかるだろ常考。
比較処理をデリゲートにしたら、デリゲート呼び出しのオーバーヘッドがでかすぎる。
0405デフォルトの名無しさん2012/04/18(水) 04:50:56.91
>>401
基地外。
「計測対象処理内」でToStringしないコードにいったい何の意味があるというのか。
まあ実際はどこにもToStringがないわけだが。
ToStringしないStringBuilderにいったい何の意味があるのかw
0406デフォルトの名無しさん2012/04/18(水) 04:52:23.88
>>394
現実的に考えて、一括連結が複数あるならStringBuilder使いまわせるだろ、
って思ってたんだけど、30個位ないと速度逆転しなかったわ。
環境差もあるかもしれんが。
http://ideone.com/p4kYx

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

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

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

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

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

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

とか言っちゃうんだろうな。
全く間違ってることを言ってるんじゃない、ってところが尚タチわりい
0427デフォルトの名無しさん2012/04/18(水) 05:22:46.14
>>425
それで満足するかどうかは別問題だな
結論の出た話について別の視点から話題が発生してる。
0428デフォルトの名無しさん2012/04/18(水) 05:23:47.46
>>425
だな。+派はなにを比較してるのか未だに理解できない。
説明しろと言ってもこの通り説明しないで逃げのレスばかり。
ソース出せと言ったら、処理時間の大半がToString()の糞ソース。
0429デフォルトの名無しさん2012/04/18(水) 05:34:48.99
朝っぱらから自演乙
0430デフォルトの名無しさん2012/04/18(水) 05:39:08.66
勧められたdxlibやってみた
これすごく楽
しばらくこれで遊んでみよう
0431デフォルトの名無しさん2012/04/18(水) 05:39:45.50
+が速いって言ってる人は何が論点なの?
負けを認めたくないだけで荒らしてんの?
0432デフォルトの名無しさん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()つけようが使い方が正しければ同じことだ。アホらしい。
0433デフォルトの名無しさん2012/04/18(水) 05:47:39.61
+が速いって言ってる奴いるか?ここ数十レスちかく見かけない気がするんだが・・・
0434デフォルトの名無しさん2012/04/18(水) 05:50:07.20
>>432
そういうことが言いたかったんだよ。
ToString付けずに議論してもあまり意味がない、と。
余談だが、string b = ""; じゃなくて string b で十分じゃね。
0435デフォルトの名無しさん2012/04/18(水) 05:55:19.38
>>434
ループ内でToString()してるアホソースと
ループ内でToString()しないと意味がないというアホレスだらけだが?
0436デフォルトの名無しさん2012/04/18(水) 06:02:19.09
>>435
よく読め・・・>>432のループは、ロジカルなループだろ。100000っていう数字に意味は無いだろうが、
実際の処理でもループの中で文字列を連結するような処理について論じてるんだろ。
>>347は、ソース的に一定の個数(たとえば、a, b, c, ... hの8個)を連結する場合を論じてるんだよ。

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

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

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

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

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

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

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

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




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

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

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

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

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

低脳すぎる人にも理解できるように説明できない人にも問題ありだ
0469デフォルトの名無しさん2012/04/18(水) 14:24:13.83
>>468
渦中にいたけど、
ホントコミュ障治したいなあ、と実感したよ・・・
0470デフォルトの名無しさん2012/04/18(水) 14:24:21.02
>>468
>低脳すぎる人にも理解できるよう
なんでこんなのが業界にいるのかが謎だけどなw
0471デフォルトの名無しさん2012/04/18(水) 14:27:21.14
小学校で子供に勉強教えるくらい理解してくれない
0472デフォルトの名無しさん2012/04/18(水) 14:28:24.71
>>467も多分わかってないしな
0473デフォルトの名無しさん2012/04/18(水) 14:29:01.40
↓本当の結論
ttp://dobon.net/vb/dotnet/string/stringbuilder.html
0474デフォルトの名無しさん2012/04/18(水) 14:29:43.39
問題定義って大事だな。
0475デフォルトの名無しさん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");
 }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

これの「IDirectoryTask」インターフェースに対する実装をしたいんだ。
例はGUIだけど、同じクラスをCUIから呼び出す場合は、Enter(path, token).Wait()とすることで同期にしたいらしい。
0526デフォルトの名無しさん2012/04/18(水) 16:18:17.87
正直言って+ではなくStringBuilder派というのがよく分からん。
StringBuilder使うべき場面て割と明確に限定的で、
それ以外の箇所じゃ見にくいだけ遅くなるだけなのに、
わざわざ+じゃなくてStringBuilder派ってのはどういうことなの?
0527 ◆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はリセットされた状態から始まっても構わない。
0528デフォルトの名無しさん2012/04/18(水) 16:20:22.30
ボタンやドロップダウンリストを動的に作成するときってあるからな
>>521はまだそういう経験を積んでいないんだろう
0529デフォルトの名無しさん2012/04/18(水) 16:21:09.67
>>523
他は兎も角、ボタンのハンドラを共有しても殆ど意味無いだろ
ボタン毎に機能が違う場合が殆どだし、テンキーみたいのならTextプロバティーを読めば済む
0530デフォルトの名無しさん2012/04/18(水) 16:21:55.97
>>528
その言い方はどうかと思うが、実際今回の要求の動機はそれだろうな。
開発時にデザイナで追加したButtonなら、あんまり意味ないし。
推定だからなんともいえんけど。
0531デフォルトの名無しさん2012/04/18(水) 16:22:14.29
StringBuilderは兎に角見にくいのが嫌すぎるので使うべき場面以外では使いたくない。
0532デフォルトの名無しさん2012/04/18(水) 16:22:41.49
>>528
動的に生成するのもViewの役目だろバカ
0533デフォルトの名無しさん2012/04/18(水) 16:24:21.80
>>529
そのボタンが動的に生成される場合を考えてみてくれないか?
あるボタンをクリックすると、新しいボタンが画面上に作られて、
そのボタンをクリックするとまた新しいボタンが・・・みたいな感じ。
まあ、そんなインターフェース使うシーンが咄嗟に思いつかないけど。
0534デフォルトの名無しさん2012/04/18(水) 16:24:54.14
>>527
MainForm.Designer.csも頂戴
0535デフォルトの名無しさん2012/04/18(水) 16:25:59.38
>>533
メニューとかなら有るけど、ボタンの動的生成って滅多にないでしょ
0536デフォルトの名無しさん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);
}
良い例じゃないけど、こんなことじゃね。
0537デフォルトの名無しさん2012/04/18(水) 16:27:57.20
>>529
だからすべてのケースで共有はしてはいけない、お前もするな ってこと?
ブラウザのようにタブを動的に作ってタブが選択されたらとか予め最大タブ数ぶんのイベント作って記述するとかやりたくないなぁ
0538 ◆ctrmjOHDMc 2012/04/18(水) 16:28:47.05
>>534
あ、うっかり。
VSの自動生成だから見づらいけど構わないか。
http://pastebin.com/dwE2mu0S
0539デフォルトの名無しさん2012/04/18(水) 16:29:16.79
>>535
滅多にない、なんてこの際かんけいなくね
0540デフォルトの名無しさん2012/04/18(水) 16:33:43.04
>>537
例えばButtonのTagに何らかのオブジェクト載っけて、押されたらそれを処理するってハンドラはあり得るが
ボタン自体を区別するって、例えばOKボタンとCancelボタンのハンドラ共有みたいなケースじゃないの?
0541デフォルトの名無しさん2012/04/18(水) 16:34:57.54
>>540
まあ、どうやら質問した人間も顔出さないみたいだし、どっかのレスで解決したんじゃね。
0542デフォルトの名無しさん2012/04/18(水) 16:37:01.77
タグでファイル管理するソフト作っているけど
タグをボタンで表現しているから動的にボタン作るよ
0543デフォルトの名無しさん2012/04/18(水) 16:38:36.06
そういうことする場合もあるんだな、でいいじゃん。ここじゃ。
>>515のレスだけじゃ何ともいえん。
0544デフォルトの名無しさん2012/04/18(水) 16:39:00.99
自分がその用途を想像できないからそんなことをする奴はいない、いてはいけない
という考え方は極力持たないようにしている
0545デフォルトの名無しさん2012/04/18(水) 16:43:47.92
>>538
フォルダに対する処理(フォルダの中身をファイルに展開する処理)
は、ファイルと同じスレッドでいいのか?
0546 ◆ctrmjOHDMc 2012/04/18(水) 16:49:06.27
>>545
同じスレッド上で実現できるか分からないですが、(多分無理)
処理するべきファイルをキューイングする、って意味なら、
フォルダを追加された(D&Dされた)時点で、対象ファイルのキューにどんどん追加してもらいたいです。
教授の例示したモノだと、フォルダのプログレスとファイルのプログレスは同時に動いてたんで、多分非同期。

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

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


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

何が悔しいって、教授の作ったデモは、触らしてもらった限りにおいて、
確かに処理中でD&Dしようが、キャンセルしようが、ちゃんと動いてたコトなんだよな・・・。
持ち帰って良いですか?と聞いたら、「逆コンパイルすりゃILレベルでわかっちゃうからダメ」とさらりと返されたわ
QueueとThreadなら分かるのに・・・Task+ContinueWith+Cancellationってコレマジかよ・・・
0556デフォルトの名無しさん2012/04/18(水) 17:56:27.96
デリゲートってどんな時に使うんですか?
0557 ◆ctrmjOHDMc 2012/04/18(水) 17:56:32.18
>>554
その通りなんだが、最初宿題スレ言ったらスレがほぼ死んでた。すまん。
0558デフォルトの名無しさん2012/04/18(水) 17:58:13.11
>>553
e.url
0559デフォルトの名無しさん2012/04/18(水) 17:58:45.82
>>555
今じゃILどころかC#のソースそのまま出てくるからな。ILSpyで。
0560デフォルトの名無しさん2012/04/18(水) 18:02:59.11
宿題ここでやるのはどうかと思うが、これ難易度高くておもしろい
ニートのぼくも、久々に頭使うテーマだ
0561デフォルトの名無しさん2012/04/18(水) 18:03:25.00
Reflectorも個人利用に限り無料で使えるよね
たまに変なおっさんの顔が出てくるけど
0562デフォルトの名無しさん2012/04/18(水) 18:06:12.08
おいらが0から作ってみるお
0563デフォルトの名無しさん2012/04/18(水) 18:06:20.09
>>561
一応、無料で使えるけど、ILSpyのほうが使いやすいと思ったから乗り換えた。
登録とかする必要もないし
0564デフォルトの名無しさん2012/04/18(水) 18:10:08.71
Reflectorは最近起動したらアップデートの選択肢に騙されて
自己exe削除されて呆然としたわ・・・
探しても結局ないしILSpy使ってる
0565デフォルトの名無しさん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/
0566デフォルトの名無しさん2012/04/18(水) 18:19:21.84
ネトウヨ王に、俺はなる!まで読んだ。
0567デフォルトの名無しさん2012/04/18(水) 18:23:44.69
Int16とShortとか、stringとStringって、全く同じものだと思うのですが、
普通はどっちを使うものなんですか?
混在すると気持ち悪いので、どちらかに統一したいなと思うのですが、
それについて言及しているようなサイトがイマイチ見つからないので
良ければ教えていただければと思います。
0568デフォルトの名無しさん2012/04/18(水) 18:25:24.06
shortも青になるのあったような
stringも青になる方

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

痛IDEにするから悪いだ



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

変数の宣言等は小文字

ex:
int i = 0;


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

ex:
i = Int32.Parse(...);
0577 ◆ctrmjOHDMc 2012/04/18(水) 18:34:27.50
うーん、こりゃいかんわ。今日24時が期限だが、間に合いそうにない。
付き合ってもらってる面々には申し訳ないが、諦めることになりそうだ・・・(´・ω・`)
0578デフォルトの名無しさん2012/04/18(水) 18:34:35.37
>>576
俺はこのとおり
http://msdn.microsoft.com/ja-jp/library/ms229043(v=vs.80).aspx
0579デフォルトの名無しさん2012/04/18(水) 18:36:18.37
>>573
http://s1.gazo.cc/up/s1_20555.png

こんなんだよw
0580デフォルトの名無しさん2012/04/18(水) 18:37:26.28
デリゲートってどんな時に使うんですか?
0581デフォルトの名無しさん2012/04/18(水) 18:37:30.07
>>579
おっさん乙www
究極のおっさんは黒バックに緑文字かな?
0582デフォルトの名無しさん2012/04/18(水) 18:37:52.63
>>580
デートしてるときにお腹がゆるゆるになったとき
0583デフォルトの名無しさん2012/04/18(水) 18:39:28.35
http://studiostyl.es/
0584デフォルトの名無しさん2012/04/18(水) 18:39:35.03
白バックだと目疲れるだろ
おっさんじゃないけど俺も黒バック
0585デフォルトの名無しさん2012/04/18(水) 18:41:36.45
>>579
配色は好きにすればいいと思うけど
ただ、MSゴシック使っているのは負けかなと思う
0586デフォルトの名無しさん2012/04/18(水) 18:41:41.02
目が疲れにくいから黒バック好きなんだけど、
ともすれば中二っぽく見えるから、公には使わない・・・。
我ながらナルシズムだなあ。
0587デフォルトの名無しさん2012/04/18(水) 18:42:10.15
俺は>>583のRagnarok Dark使ってるわ
おっさんとかバックとか言われるとちょっとイヤラシイ気分になってくる
0588デフォルトの名無しさん2012/04/18(水) 18:42:16.01
>>585
お勧めのフォントあったらおせーて
0589デフォルトの名無しさん2012/04/18(水) 18:42:31.23
>>584
白バックで目が疲れるような人は瞳孔が正常の働いてない人。
そういう人が黒バックに白の文字を凝視して、本当に目に優しいと思う?w
0590デフォルトの名無しさん2012/04/18(水) 18:43:22.70
>>589
短い時間なら大丈夫なんだけどねえ。
長時間使って疲れてくると瞳孔が鈍くなるんかなあ
0591デフォルトの名無しさん2012/04/18(水) 18:44:44.83
完全黒に完全白文字、ポスターカラーな色合いだと目も疲れるし厨っぽいので
少しパステル調に落とした感じがベスト
0592デフォルトの名無しさん2012/04/18(水) 18:45:12.00
デリゲートってどんな時に使うんですか?
0593デフォルトの名無しさん2012/04/18(水) 18:45:47.86
>>592
デリケートな気分のときに使うんだよ。
0594デフォルトの名無しさん2012/04/18(水) 18:46:14.20
>>592
https://www.google.co.jp/search?q=delegate
http://oshiete.goo.ne.jp/qa/6365687.html
0595デフォルトの名無しさん2012/04/18(水) 18:46:14.76
>>592
色んな時。
0596デフォルトの名無しさん2012/04/18(水) 18:47:05.25
>>581
おっさんじゃねぇよwwまだ20代だ。
いやもう、後半だからおっさんかも知れぬ…
0597デフォルトの名無しさん2012/04/18(水) 18:47:50.75
>>596
25の俺が断言する。25歳以上はオッサンだ。
0598デフォルトの名無しさん2012/04/18(水) 18:48:36.14
うちのはこんなかんじ
http://www.dotup.org/uploda/www.dotup.org2878005.jpg
0599デフォルトの名無しさん2012/04/18(水) 18:49:33.16
dxlibきたw
0600デフォルトの名無しさん2012/04/18(水) 18:52:39.21
年寄りくせえ
0601デフォルトの名無しさん2012/04/18(水) 18:56:42.18
>>598
フォント名はよ
0602デフォルトの名無しさん2012/04/18(水) 18:56:51.84
http://www.dotup.org/uploda/www.dotup.org2878030.png
0603デフォルトの名無しさん2012/04/18(水) 18:57:26.63
プロポーショナルフォント使わないと負けかなと思ってる
0604デフォルトの名無しさん2012/04/18(水) 18:57:32.77
デリゲートってどんな時に使うんですか?
0605デフォルトの名無しさん2012/04/18(水) 18:59:32.00
>>604
コントロールのイベントとかデリゲートでしょ
0606デフォルトの名無しさん2012/04/18(水) 19:03:18.40
>>604
フレームワークに処理投げたりする時。
0607デフォルトの名無しさん2012/04/18(水) 19:05:23.86
デリゲートってどんなときに使うんですか?
0608デフォルトの名無しさん2012/04/18(水) 19:06:18.85
デリゲートってどんなときに使うんですか?
0609デフォルトの名無しさん2012/04/18(水) 19:06:24.78
汎用的な自作ライブラリでも作れば、嫌でも使うことになる代物。
0610デフォルトの名無しさん2012/04/18(水) 19:06:26.83
デリゲートってどんなときに使うんですか?
0611デフォルトの名無しさん2012/04/18(水) 19:06:32.74
デリゲートってどんなときに使うんですか?
0612デフォルトの名無しさん2012/04/18(水) 19:06:49.18
毎日毎日荒らしの相手をしてやってるからガキが調子づいてるんだよ
もう触るな
0613デフォルトの名無しさん2012/04/18(水) 19:08:42.86
馬鹿にはその忠告が理解できないのでループします
0614デフォルトの名無しさん2012/04/18(水) 19:10:04.95
フォームに書き込んだ後リロードするんじゃねー!!!
0615デフォルトの名無しさん2012/04/18(水) 19:21:57.20
は?
06165672012/04/18(水) 19:22:04.07
皆様ありがとうございます。
こんな短時間で反応がいただけるとは思っていませんでした。
>>569で示された複数言語での統一や、.NETのほうで定義されてるというところもなるほどと感じましたが、
当面は複数言語を扱う予定はないことと、
確かにshortとかstringは青色になり、C#の基本のデータ型としてはこちらだと感じられるので、
当面はshortとかstringとかを使用していこうと思います。
ありがとうございました。
0617デフォルトの名無しさん2012/04/18(水) 19:23:11.30
>>601
Consolas


http://office.microsoft.com/ja-jp/word-help/HA010214159.aspx
0618デフォルトの名無しさん2012/04/18(水) 19:27:30.62
C#みたいに記号がわりと多めの言語だと、
とうふくメイリオなんかも見慣れた形してる分わるくねえな。
0619デフォルトの名無しさん2012/04/18(水) 20:01:09.14
>>558
すいません。e.Urlをabout:blankと比較してe.Cancel = trueとしてみましたが、どうしてもループしてしまい
正常なリクエストが返ってきません
0620デフォルトの名無しさん2012/04/18(水) 20:30:04.56
派生クラスのメソッドが呼ばれた場合
まず基底クラスの同じメソッド名が実行されるような
処理をしたいんだけど方法ありますか?

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

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

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

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

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

と

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

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

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

対象のページは1回しか起きませんでした
この3回というのはframeの数ですか?
0649デフォルトの名無しさん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の入手だろうね
その後は解析してくれ
0650デフォルトの名無しさん2012/04/18(水) 23:00:29.55
>>645
IL見比べれば分かる話。どうでもいい差にいつまでこだわってんだか。
StringBuilderはそんなくだらない差を縮めるためにあるんじゃない。
バッファを利用して重いインスタンス生成を端折るためのクラス。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ちなみに宿題じゃありません。
0676デフォルトの名無しさん2012/04/19(木) 12:44:15.75
DataAdapterにSQL定義するのも駄目なの?
0677デフォルトの名無しさん2012/04/19(木) 12:52:29.72
>>675
仮にDB直接だろうが、トランザクション使えば問題無いでしょ
0678デフォルトの名無しさん2012/04/19(木) 14:40:19.48
C#からエクスプローラーのファイルプロパティを表示する方法ありますか?
VisualStudio内のプロパティの話しか見つからなかったんで
Alt+ダブルクリックで出てくる奴です
0679デフォルトの名無しさん2012/04/19(木) 14:53:11.26
>>678
こんなのでどう?
http://ideone.com/RFYfa
0680デフォルトの名無しさん2012/04/19(木) 15:11:54.02
>>679
できました!ShellExecuteEx使うんですね
ありがとうございました
0681デフォルトの名無しさん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)みたいな感じで
一括で実行してまう。
0682デフォルトの名無しさん2012/04/19(木) 17:26:55.33
何が分からないのか分からない。もう解決してんじゃないの?
0683デフォルトの名無しさん2012/04/19(木) 17:44:47.45
お前は回線切ったほうがいいんじゃないの。
俺のほうが頭良いし。
0684デフォルトの名無しさん2012/04/19(木) 18:26:07.32
汚いコード晒したら馬鹿にするやつがここには何人もいるからなあ
0685デフォルトの名無しさん2012/04/19(木) 18:32:38.12
>>681
訳分からん
初めの言い分である
> この時、このデータベースセットコントロールのこのテーブルに直接アクセスして、食毒が1のものを削除
> するコードが書きたいです。
なら、単に目的のDataTableに対してDataTable.Selectで食毒=1の
DataRow取り出して一通りDeleteしてくだけだが

関連するテーブルだのユニークIDだのどっから出てきた
0686デフォルトの名無しさん2012/04/19(木) 18:41:58.52
これに限ったことではないが
問題が再現する範囲で新規作成したプロジェクトに最小限のコードを書くと
問題の単純化や言語化が楽になるしソースもすぐに提示できる
そうしているうちに自分で解決する場合も多いしね
0687デフォルトの名無しさん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
0688デフォルトの名無しさん2012/04/19(木) 19:12:41.47
度々天皇陛下や総理大臣の顔や日の丸を
割かれたり焼かれたりしている日本も
本来はこのくらい強く出てもいいはずなんじゃないか
0689デフォルトの名無しさん2012/04/19(木) 19:18:28.48
さあ
0690デフォルトの名無しさん2012/04/19(木) 19:21:24.78
米国―日本を訪れた印象「どこも清潔で、治安が良い」
「pearceonearth」では、家族で関西地方に滞在した米国人女性が訪日の印象をつづっている。
筆者らが旅行を通して共通に感じたことは、日本の至るところが清潔で安全で効率的だという。多くの家では
鍵があるにもかかわらず、自宅に鍵をかけないことや、自分で出したゴミは道路などに捨てず家に持ち帰ること、電車が時間通りに来るなどに驚いた様子。
次にいつ訪日できるか分からないが、京都や温泉など行きたい場所がたくさんあるので、またぜひ来日したいと抱負を語っている。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0417&f=national_0417_012.shtml
0691デフォルトの名無しさん2012/04/19(木) 19:22:00.84
野田政権とStringBuilderはどっちが早いかって聞かれてもなぁ
0692デフォルトの名無しさん2012/04/19(木) 19:23:01.83
IDのある板に移動しないか(提案)
0693デフォルトの名無しさん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/
0694デフォルトの名無しさん2012/04/19(木) 19:27:49.33
>>692
どこか移動先あったっけ?
0695デフォルトの名無しさん2012/04/19(木) 19:28:27.94
シベリア
0696デフォルトの名無しさん2012/04/19(木) 19:34:38.92
自分のメアドが業者に流れて迷惑メールきまくった気分だ
一時期毎日200件近く来てたけど
0697デフォルトの名無しさん2012/04/19(木) 21:05:53.55
暗いと不平を言うよりも
すすんで透明あぼーんしよう
0698デフォルトの名無しさん2012/04/19(木) 21:27:54.90
ToolStripTextBoxのWidthが伸びないんだけどどうすればいい?
ついでにHeightが高すぎてダサい
0699デフォルトの名無しさん2012/04/19(木) 21:28:14.86
【UOエミュ】AKALABETH Part11【国内最大】
http://kohada.2ch.net/test/read.cgi/mmominor/1332153291/
UOやろうぜ
0700デフォルトの名無しさん2012/04/19(木) 21:28:19.67
AutoSize = falseかな
0701デフォルトの名無しさん2012/04/19(木) 21:36:06.12
>>698
Fontサイズを8以下にしてみ
0702デフォルトの名無しさん2012/04/20(金) 00:22:33.60
>>693
ネトウヨ殺すぞ
0703デフォルトの名無しさん2012/04/20(金) 00:24:44.98
自首しろ
0704デフォルトの名無しさん2012/04/20(金) 00:25:32.03
俺もうプログラミングやめる
0705デフォルトの名無しさん2012/04/20(金) 00:50:41.01
じゃ俺がやる
0706デフォルトの名無しさん2012/04/20(金) 00:58:11.70
いやいや俺が

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

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

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

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

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

エラーが出るんだけど
0727デフォルトの名無しさん2012/04/20(金) 08:38:55.87
>>692
そういえば、なんでここIDが未だにナイんだろう
0728デフォルトの名無しさん2012/04/20(金) 09:24:35.33
自演君でもってるようなもんだかんなこのスレ
0729デフォルトの名無しさん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』への展望を込め、徹底的に議論します。

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

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

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

インタプリタは遅いのはしかたない
0733デフォルトの名無しさん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といったようにアクセスしたいのでふ。
0734デフォルトの名無しさん2012/04/20(金) 13:24:37.27
釣り?
0735デフォルトの名無しさん2012/04/20(金) 13:27:15.90
あー>>734は>>732に対してな。
0736デフォルトの名無しさん2012/04/20(金) 13:34:45.55
サブルーチンってなんですか?
0737デフォルトの名無しさん2012/04/20(金) 13:46:00.18
>>736
よくつかうコードなので、Formに書かずに単体のcsファイルに分離したものです。

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

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

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

public void pepsiman()
{

}
}

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

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

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

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

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

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

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

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

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

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

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

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

ToolStripLabel  ToolStripComboBox  ToolStripButton

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

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

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

XNAはゲームに特化していて面倒な手続きがライブラリで自動化できるようだし
何より今頑張ってるって人がいると自分もやりたくなった
XNAでやってみます
0781デフォルトの名無しさん2012/04/20(金) 17:03:32.86
Form1_SizeChangedはフォームが出来上がる時のサイズ変更では呼ばれないの?
0782デフォルトの名無しさん2012/04/20(金) 17:06:08.66
呼ばれない。というか、その時点で呼ばれる保証は、ない。
Loadイベントが発生した後でサイズが変更されれば呼ばれる。
それ以前は、フォーム自体が生成されていないのでサイズの変更イベントをキャッチしようがない。
0783デフォルトの名無しさん2012/04/20(金) 17:07:19.15
なるほど
0784デフォルトの名無しさん2012/04/20(金) 17:32:08.73
Formのこれをやってみたら?
http://dobon.net/vb/dotnet/control/refreshupdateinvalidate.html
0785デフォルトの名無しさん2012/04/20(金) 17:34:00.84
>>753
もう2週間勉強してください
それからまたいらっしゃい
0786デフォルトの名無しさん2012/04/20(金) 17:35:17.13
>>785
>>1を読んだ後死ね
0787デフォルトの名無しさん2012/04/20(金) 17:36:26.89
>>786
すっこんでろ池沼
0788デフォルトの名無しさん2012/04/20(金) 17:45:17.74
ソフトウェア板に移動できないか?
0789デフォルトの名無しさん2012/04/20(金) 17:53:31.68
あっちは、プログラミングは、論外じゃない?
0790デフォルトの名無しさん2012/04/20(金) 18:28:23.13
あっち使う人
こっち作る人
0791デフォルトの名無しさん2012/04/20(金) 18:36:59.00
よく知らないんだけど、頼んだら付けてくれるとかはなくて板ごとにあるなしが決まってるだけ?
この話題はIDなし、他の板に移住したら板違いと批判されると
0792デフォルトの名無しさん2012/04/20(金) 18:38:36.04
checkBox1.Checked == true ? "yes" : "no";
ってどういうことですか?
==があるから条件分岐かと思うのですが・・・
0793デフォルトの名無しさん2012/04/20(金) 18:41:12.26
>>792
checkBox1.Checked == true が正しいなら"yes"正しくないなら"no"
三項演算子でググるといい
0794デフォルトの名無しさん2012/04/20(金) 18:41:15.90
三項演算子
0795デフォルトの名無しさん2012/04/20(金) 18:45:52.90
TreeViewをオーナードローしてます
TreeNodeはDrawNodeイベントがあるのでそこで描画できますが
それ以外のアイコンとか点線とか+-はどこでやってるんですか?
Paintイベントもないようだし
0796デフォルトの名無しさん2012/04/20(金) 18:46:40.24
ありがとうございました
条件分岐で探しても出て来なかったので助かりましたです
0797デフォルトの名無しさん2012/04/20(金) 18:54:29.44
ID欲しけりゃ自分だけ節穴でもしとけよw
0798デフォルトの名無しさん2012/04/20(金) 18:55:14.80
痛い子が識別できるかできないかじゃないか?
0799デフォルトの名無しさん2012/04/20(金) 18:57:39.02
>>797
毎日荒らしてるお前をNG登録するためにみんな必死なんだよ^^
0800デフォルトの名無しさん2012/04/20(金) 20:03:15.89
移動したい奴だけしてろ
回答する気があるのなら特に気にならん
0801デフォルトの名無しさん2012/04/20(金) 20:10:42.12
下のようにマウスオーバーの色を変えるようなことをしたいんですが
チラつかないようにするにはどうすればいいでしょうか?
http://ideone.com/Qqq7l
0802デフォルトの名無しさん2012/04/20(金) 20:18:47.88
1ピクセルでも動くたびにマウスオーバー受け取ってればそりゃあもう
0803デフォルトの名無しさん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
0804デフォルトの名無しさん2012/04/20(金) 20:34:50.90
>>802
マウスオーバーイベントというのはそういうもの
0805デフォルトの名無しさん2012/04/20(金) 20:38:36.44
いやですからね
毎回描画する必要性ないでしょという
0806デフォルトの名無しさん2012/04/20(金) 20:44:40.74
よく見ると引数無しのInvalidate連打じゃん豪気すぎる
08078012012/04/20(金) 20:49:10.34
>>803
this.DoubleBuffered = true;と
this.SetStyle(ControlStyles.DoubleBuffer, true);の2種類試してみましたが残念ながら変化なしでした

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


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

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

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


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

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

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

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

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

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

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

for i = 0 to 9
next i
0854デフォルトの名無しさん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
0855デフォルトの名無しさん2012/04/21(土) 07:36:21.06
>>853
呼び出し元でその i, j を使ってない保証がないのと、
スレッド安全性ェ…
0856デフォルトの名無しさん2012/04/21(土) 07:46:27.83
VB6でスレッド? 何を言っているんだ
0857デフォルトの名無しさん2012/04/21(土) 08:19:08.68
>>850
for(int i
i・・・iってなんだよ、愛?合い?空い 意味がありすぎるな
省略だとしてiから始める単語は
08588532012/04/21(土) 08:19:51.41
>>855
あぁそうか。呼び出し元で使ってたら大変なことになるな。
0859デフォルトの名無しさん2012/04/21(土) 10:29:30.96
変数のスコープは、できるだけ狭いほうが良い。
0860デフォルトの名無しさん2012/04/21(土) 11:33:49.02
>>855
何故、それすっ飛ばしてグローバルのi,j,kが成立したかと言えば、
元コボラーの奴は、関数という概念を余り理解していなかったから、処理一つを巨大関数で組んでいたから・・・ああビックリした
0861デフォルトの名無しさん2012/04/21(土) 11:47:22.24
俺なんてモジュールどころか完全にグローバルでループ変数あったぞ。
しかも呼び出し側と呼び出される側の両方の関数でFORで使ってんだよ、モジュールも別の関数で。
連携して変数書き換えて全体としてひとつのビジネスロジックになってんだ。
もちろんFOR以外の場所でも変数書き換えてて、
単純な2重ループとも全く違うループもどきの制御になってて。
きちがいかと思ったわ。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

お前らあまり他所の国に迷惑をかけんなよw
0923デフォルトの名無しさん2012/04/21(土) 23:13:37.79
てst
0924デフォルトの名無しさん2012/04/22(日) 02:43:01.04
>>921
甘いな。
コンストラクタはデフォルトコンストラクタのみ。
publicメンバー変数しか持たない。
0925デフォルトの名無しさん2012/04/22(日) 03:37:16.73
Facadeクラスでも作ればいいのに
0926デフォルトの名無しさん2012/04/22(日) 10:46:08.78
コマンドラインでコンパイルしようとしてるんですけど、環境変数を設定するためのバッチファイルってどこにあります?
Visual C# Expressをインストールしてあります。
0927デフォルトの名無しさん2012/04/22(日) 11:08:51.00
VCと勘違いしてないか
0928デフォルトの名無しさん2012/04/22(日) 11:11:57.32
>>926
バージョンによって違うと思うけどこの辺にないか?
C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat
0929デフォルトの名無しさん2012/04/22(日) 11:18:38.48
C#でコマンドラインでビルドしたいなら、VC#のプロジェクトファイルをそのままmsbuildに渡す
一からコマンドとか何の意味もないし事実上MSBuild通さないと使えないよ
0930デフォルトの名無しさん2012/04/22(日) 11:32:00.26
>>929
>一からコマンドとか何の意味もないし事実上MSBuild通さないと使えないよ

意味があるかはお前さんが決めることじゃないし、
MSbuild なんて通さなくても普通にコンパイルできるし。

http://msdn.microsoft.com/ja-jp/library/78f4aasd.aspx
0931デフォルトの名無しさん2012/04/22(日) 11:39:44.02
>>928
Visual C# 2010 Expressをインストールしてあります。
C:\Program Files\Microsoft Visual Studio 10.0\Common7
のフォルダはありますけど、その中にToolsフォルダはないです。
持ってる本にもvsvars32.batファイルを使えと書いてあるんですけど、C:\フォルダ全体を検索しても出てこないんで、最新の.NET Frameworkはできない仕組みになっちゃってるんですかね。

Visual C#使って作っていきますわ。
皆さんどうも。
コマンドラインを使いたくなったら、前のversionをインストールします。
0932デフォルトの名無しさん2012/04/22(日) 11:55:39.79
書名を書いておいて貰えるとすごく助かる
0933デフォルトの名無しさん2012/04/22(日) 11:59:19.73
MSBuildはXMLじゃなかったら使ってもよかったなー
もうAntでこりごり
nmakeも中途半端だし
結局gnu make使ってたりする
0934デフォルトの名無しさん2012/04/22(日) 12:04:23.14
xml に挫折したんだな、かわいそうに。
0935デフォルトの名無しさん2012/04/22(日) 12:12:04.11
10行20行なら折れないけど
100行越えるとちょっと嫌
0936デフォルトの名無しさん2012/04/22(日) 12:21:28.46
>>931
最低限なら以下みたいなバッチファイル自分で作ればコンパイルくらいできるんじゃないか?
PATH=C:\Windows\Microsoft.NET\Framework\v3.5;C:\Windows\Microsoft.NET\Framework\v2.0.50727;%PATH%
0937デフォルトの名無しさん2012/04/22(日) 12:24:10.21
バッチ呼ぶ前と後の環境変数を比べても、
大したものを設定されていないことに気づく。
0938デフォルトの名無しさん2012/04/22(日) 12:27:33.13
>>937
>バッチ呼ぶ前と後の環境変数を比べても、

普通にバッチの中身見たほうが早くね?
0939デフォルトの名無しさん2012/04/22(日) 12:32:44.71
そう思うならそうすればいいんじゃない。
止めないからどうぞご自由に。
0940デフォルトの名無しさん2012/04/22(日) 12:34:41.82
なにこいつ不快
0941デフォルトの名無しさん2012/04/22(日) 12:42:59.49
UnicodeCategory 列挙体は、CharUnicodeInfo クラスで簡単に取得できますが、
UnicodeのCategoryの粒度が荒すぎて使えませんでした。
charからUnicodeのBlockを取得するには、どうしたらいいんでしょうか。

参考:Unicode-Blocks
http://www.unicode.org/Public/UNIDATA/Blocks.txt
0942デフォルトの名無しさん2012/04/22(日) 12:45:01.50
自慢の自分のやり方否定されたと感じてファビョってるだけだろ。
0943デフォルトの名無しさん2012/04/22(日) 12:46:55.98
まず.NETの中に存在しているか分からんな
どうなんだろう

取得するの自体は簡単だろう
そのファイルから検索すればいい
0944デフォルトの名無しさん2012/04/22(日) 12:57:12.04
こうしてみるといろいろ文字種があることが分かるが、Domino Tilesとか何に使うのかな
0945デフォルトの名無しさん2012/04/22(日) 13:03:09.12
>>943
string から utf32でデコードして、
4バイト毎に int 化、Blocks.txt を参考に、範囲からBlock名を求めるという感じですか

Javaだともっと容易にできた気がするんですけど、このくらいしかやりようないんですかね

範囲から、マッチするかどうか調べてBlock名を求めるのも、
効率良いアルゴリズムじゃないとちと辛いですねえ。
何か良いアルゴリズムあったかなあ・・・。
0946デフォルトの名無しさん2012/04/22(日) 13:09:48.31
良いも何もこの場合二分探索以上のものあんの?
0947デフォルトの名無しさん2012/04/22(日) 13:15:14.18
そうなんですけど。
二分探索をいちいち実装するのもめんどくせえなあ、という思い。
0948デフォルトの名無しさん2012/04/22(日) 13:15:27.70
出現頻度はべらぼうに高いのに、二分探索だと最後まで検索してしまうLatinを先に取り除くくらいはしてもいいかも
0949デフォルトの名無しさん2012/04/22(日) 13:16:01.15
>>947
Arrayクラスよく見ろ
0950デフォルトの名無しさん2012/04/22(日) 13:16:34.86
Tuple<int, int>[] に対して、Array.BinarySearch<Tuple<int, int>>すりゃいいのか。
0951デフォルトの名無しさん2012/04/22(日) 13:17:02.42
>>949
まったくですね。SortedListとか色々さがしてしまtあ。
0952デフォルトの名無しさん2012/04/22(日) 13:18:22.32
別にintの配列でもいいと思う
あるブロックの最後尾は次のブロックの先頭の一つ前でしょ
Tuple使うならTuple<int,string>にして名前入れとけば
0953デフォルトの名無しさん2012/04/22(日) 13:26:31.70
最後尾の要素だとそれは成り立たない。
まあ番兵でも入れておけばいい話だけど。
09549432012/04/22(日) 13:28:53.39
実装するという話で進んでるけど、まずそういう機能があるのかないのかはっきりさせなくていいのか?
0955デフォルトの名無しさん2012/04/22(日) 13:44:17.52
>>954
あるのかないのかハッキリさせたいです。
でも、今のところ情報は出てこないので、実装の方も進めています。

現時点での実装:
http://pastebin.com/F24HYb9U
0956デフォルトの名無しさん2012/04/22(日) 13:50:55.84
>>946
配列使って一発で引くとか。
0957デフォルトの名無しさん2012/04/22(日) 13:54:52.99
>>956
0x110000 × 文字数 バイト分だと、大体30MB弱のメモリってとこか。

初期化時にメモリ上に展開するコストが大きそうだから、
頻繁に呼び出す、かつ、それだけのメモリコストが許されるのであれば、
それもアリだな。
0958デフォルトの名無しさん2012/04/22(日) 13:56:37.00
あ、stringは単純に文字数分のメモリ食わないのか
容量はもっと少ないな
0959デフォルトの名無しさん2012/04/22(日) 14:10:33.68
配列に文字列自体を入れる必要はなくて、文字列へのポインタを入れておけばいいだけ。
さらに下位 4bit は、見なくていいから 0x11000 × ポインタサイズ (4) だから 300KB 程度で OK.
0960デフォルトの名無しさん2012/04/22(日) 14:17:12.98
>>959
ポインタ、っていうかstring自体クラスなんだから、
配列に格納されるのはそもそも参照でしょう。
下位4bitみなくていいのは確かにそうだな。
0961デフォルトの名無しさん2012/04/22(日) 14:21:38.73
結構現実的なような
0962デフォルトの名無しさん2012/04/22(日) 14:24:06.72
珠玉のプログラミングにこんな話あったような気がする
0963デフォルトの名無しさん2012/04/22(日) 14:35:48.36
>>960
>配列に格納されるのはそもそも参照でしょう。

ああ説明がまずかったな。

要するに配列の要素毎に「(同じ内容の文字列を) 別々な文字列として」持つ
必要はないと言いたいだけ。
0964デフォルトの名無しさん2012/04/22(日) 14:47:00.68
>>963
あれ。.NET Frameworkの文字列って、そもそもそういう風にできてませんでしたっけ。

ってことで、両方作ってみました。メモリ使用量とか速度的な検証はしとりません。
http://pastebin.com/eSFzXvLv
0965デフォルトの名無しさん2012/04/22(日) 14:57:27.28
>>943
>>954
あるかないか、というそもそも論を気にかけていただき、ありがとうございます。
ここまで待ってみましたが、どうやら情報が出てこないので、
先の通り実装したものでパフォーマンス検証の上で利用したいと思います。

皆様、種々すばらしいご提案・ご教示本当にありがとうございました。
0966デフォルトの名無しさん2012/04/22(日) 14:59:42.27
こういうところで質問する連中が、全員こういう風に
自助努力と謙虚さを持ち合わせていてくれたらいいのに。
0967デフォルトの名無しさん2012/04/22(日) 15:05:00.11
http://msdn.microsoft.com/ja-jp/library/20bw873z%28v=VS.90%29.aspx

今更かもしれんが、これの一番下の表のことだよな
0968デフォルトの名無しさん2012/04/22(日) 15:05:44.25
>>964
>あれ。.NET Frameworkの文字列って、そもそもそういう風にできてませんでしたっけ。

定数文字列だと同じ文字列は一つにまとめられたりするけど、外部から読み込んだら
まとめ様がないとかあるでしょ?

そもそも発端は >>957 の 「0x110000 × 文字数 バイト分」 だから、>>957 に聞いて
みればいいと思うよ。
0969デフォルトの名無しさん2012/04/22(日) 15:10:23.71
>>967
そうですね。正規表現にはあるのに、そういうクラス名を端的に取得する術が無いなあ、と思ってたんです。
いちいち正規表現でやるのも馬鹿馬鹿しいですし。

>>968 >>957
>>964みたいに実装すれば、リテラル文字列で書いてる以上、
あまり気にしなくても良い、という認識ですが間違いないですかね。
string.Internとかあの辺がよく分かっていません。
0970デフォルトの名無しさん2012/04/22(日) 15:12:24.14
と、書いていて思い至ったことが・・。
stringで配列に持つって効率悪いなあ。
列挙体定義すればもっと良いなあ。
0971デフォルトの名無しさん2012/04/22(日) 15:36:08.87
>>969
> リテラル文字列で書いてる以上、あまり気にしなくても良い

リテラル関係なく、同じ文字列を複数の要素に代入しているから、気にしなくていい。
0972デフォルトの名無しさん2012/04/22(日) 15:39:05.50
列挙体にしたらメモリ使用量若干減ったなあ。
当然っちゃ当然か。Mappedでいいや。
0973デフォルトの名無しさん2012/04/22(日) 15:48:17.68
Unityはあれだけ多機能でもメモ帳ぐらい軽いのに
VSはなんでこんなに糞重いの?
0974デフォルトの名無しさん2012/04/22(日) 15:54:14.89
うん、満足出来ました。
http://pastebin.com/WKdxThXK
0975デフォルトの名無しさん2012/04/22(日) 15:55:36.46
画像編集とかできますか?
0976デフォルトの名無しさん2012/04/22(日) 15:58:18.87
>>973
じゃあUnity使えば?
0977デフォルトの名無しさん2012/04/22(日) 16:25:15.50
多重継承勘違いしてた
一度に複数の継承はダメってだけで
継承の継承はいけるのか!!
0978デフォルトの名無しさん2012/04/22(日) 17:27:21.37
それだとControlクラスすら作れねえ
0979デフォルトの名無しさん2012/04/22(日) 17:27:40.13
ワロタ
0980デフォルトの名無しさん2012/04/22(日) 17:45:14.27
日本語おかしくないですか?
多重継承って
積み重ねるの禁止って思っちゃうじゃないですか!
ずっと継承の継承を使わないでがんばってきたのに
やっぱり最初の思い込みって怖いですね
0981デフォルトの名無しさん2012/04/22(日) 17:48:58.31
>>968
外部から入力される文字列はSet使ってまとめてってやった事あるな
当然だけどメモリ節約効果は高かったよ
0982デフォルトの名無しさん2012/04/22(日) 17:49:47.13
じゃあ、どういう表記すれば良かったんだ?
0983デフォルトの名無しさん2012/04/22(日) 18:08:11.66
multiple inheritanceだから…?
0984デフォルトの名無しさん2012/04/22(日) 18:14:32.23
アタッチメント継承
フュージョン継承
0985デフォルトの名無しさん2012/04/22(日) 18:18:54.14
>>980
まあ言いたいことはわからないでもない。
個人的には複数継承とかの方が近いような気もする。

>>981
> 外部から入力される文字列はSet使ってまとめてってやった事あるな

ん?
興味あるから、具体的に教えて頂戴。
0986デフォルトの名無しさん2012/04/22(日) 18:24:55.78
並列継承
0987デフォルトの名無しさん2012/04/22(日) 18:27:56.78
それだとサブクラスって感じだな
0988デフォルトの名無しさん2012/04/22(日) 18:28:43.13
例えば、多重継承は禁止になっているが、多段継承は可能
みたいな言い方をしてほしい
09898972012/04/22(日) 18:33:49.84
回答がないみたいなので相談室の方で聞いてみたいと思います。
0990デフォルトの名無しさん2012/04/22(日) 18:45:14.54
>>985
CSV取り込みとかでValue1って値が10000個含まれるとする。
通常Value1がインスタンス12バイト?+参照4バイト×10000個で160000バイト必要なはず。
でもValue1のインスタンスを1個に抑えれば40012バイトで済むよって事。
Setがあれば同値インスタンスの有無は簡単に分かるしね。
0991デフォルトの名無しさん2012/04/22(日) 18:48:11.01
>>989
問題点はmyControlが何を継承しているかだな
0992デフォルトの名無しさん2012/04/22(日) 19:01:35.11
>>990
あーString.Internってのがあって…

ともかくそれより次スレ
0993デフォルトの名無しさん2012/04/22(日) 19:03:00.55
立ててくる
0994デフォルトの名無しさん2012/04/22(日) 19:05:36.38
ふらっとC#,C♯,C#(初心者用) Part91
http://toro.2ch.net/test/read.cgi/tech/1335089085/

立ったぞオラァ
0995デフォルトの名無しさん2012/04/22(日) 19:11:01.69

 ○  乙 もうお前に用はない 
 く|)へ
  〉   ヽ○ノ
 ̄ ̄7  ヘ/
  /   ノ
  |
 /
 |
/
0996デフォルトの名無しさん2012/04/22(日) 19:13:39.19
>>974の
int i = 0;
foreach (var map in EnumGroups()) {
g++;
for (; i <= map; i++) array[i] = g;
}
なんか、生理的にオツムが拒否反応して思考停止してしまう。(要するに馬鹿)
他にも書き方あるような気がするんだけれど・・・賢い人プリーズ
0997デフォルトの名無しさん2012/04/22(日) 19:18:27.03
>>992
その案はMSDNの注意事項みてやめた
0998デフォルトの名無しさん2012/04/22(日) 19:20:14.14
止めたって時点で理解していないな
0999デフォルトの名無しさん2012/04/22(日) 19:23:22.37
面倒くせえから自分が納得する方法とりなよ
その代わり正しいかどうか聞くなよ
答えはお前が決めろ
1000デフォルトの名無しさん2012/04/22(日) 19:25:13.29
1000!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。