ふらっとVisual C#,C♯,C#(初心者用) Part92
1 :
デフォルトの名無しさん :
2012/04/29(日) 21:50:25.79
2 :
デフォルトの名無しさん :2012/04/29(日) 21:50:57.63
4 :
デフォルトの名無しさん :2012/04/29(日) 21:58:11.10
質問に対して、あなたが望む回答を得られないことがあります。 意図しない回答を得られない場合でも常識を持った言動で対応してください。 あなたの質問に対して、100%的確な回答ができるエスパーは、居ません。
private Action<object,byte[]> m_action; m_action("test",dummy_bytes); m_action先にtestは届くのですがdummy_bytesの方がnull になってしまいます。ブレイクポイントで見ていると m_action("test",dummy_bytes);の時点だとdummy_bytes は存在しています。 どうしてでしょうか?
dummy_bytesをnew byte[]{ 0, 1, 2 }とかにしても届かないの?
では質問します インターフェイスの継承の仕方がわかりましたが 継承されたクラスを利用する側(PresentationModel)に対して 必ずインターフェイスを通して利用するように強制する方法はないでしょうか? つまり、キャストさせない方法です
>>7 さきほどそれをためしてみたら届きました。
もしかしてWebClient.DownloadDataAsyncを別classで実行すると
データのダウンロードが終わる前にDownloadDataAsyncが呼ばれて
しまいます?
>>9 DownloadDataASyncだとダウンロードが完了するまで待たずに次にいっちゃうからdummy_bytesに入ってないっていうことなんじゃないかね
Asyncを外したDownloadDataだとどうなの
11 :
デフォルトの名無しさん :2012/04/29(日) 22:49:54.38
>>8 継承じゃなくて実装な。
端的に言えば、キャストを制約する術自体は無い。
明示実装とそうでないメソッド両方用意して、そうでないメソッドの方をNotSupportedExceptionしちゃうとかかな。やるとすれば。
12 :
デフォルトの名無しさん :2012/04/29(日) 22:53:19.75
C#は実装も継承と読んだりする。
>>8 内部クラスにしたり、internalクラスにしたりしてクラスを外部から見えなくすれば
キャストはできないだろう、多分
:
14 :
デフォルトの名無しさん :2012/04/29(日) 22:58:47.36
>C#は実装も継承と読んだりする。 そうなのか。C#からVB.NET系列に一時移ったもんで・・・ ほんでもってはずかしわー。ちゃんと実現する方法あったやん・・・private classなー。
>>10 間違えました。
X データのダウンロードが終わる前にDownloadDataAsyncが呼ばれて
○ データのダウンロードが終わる前にDownloadDataCompletedEventHandlerが呼ばれて
同一クラス内だとうまく動いたのですが残念です。
DownloadDataにするとDownloadDataCompletedEventHandlerすら呼ばれないようです。
>>15 さすがにダウンロードする前にCompletedEventHandlerが呼ばれることはないと思うよ
別クラスとか関係なく
>>16 たぶんmonoを使っているせいかも?
コンソールにログを出しながら追いかけてみるとDownloadDataCompletedEventHandler
が2回呼び出され2回目がnullになってしまうようです。
ずっとWindowsでVSを使っていたのですが何となくLinuxしようとしたのが間違いだった
かもw
18 :
デフォルトの名無しさん :2012/04/29(日) 23:14:51.63
Monoのことはよく知らないけどそんな基本ライブラリにバグがあるとは思えないなあ
20 :
デフォルトの名無しさん :2012/04/29(日) 23:25:36.15
実際にバグかどうか、というよりも、何を契機に発生させてるのかは 内部コード追っちゃうのが早い・・・と俺は個人的に体感している。 まあ、多分ちょっとしたミスだとは思うから、面倒ならまず自分のプログラムの挙動を疑うべきだろうが。
21 :
6 :2012/04/30(月) 00:26:32.44
解決しました。 エラー表示されないで動作がおかしくなる点と、 DownloadDataCompletedがダウンロード完了時に 一度だけ呼ばれると思い込んでいたのが間違い だったようです。 お騒がせしました。
WindowsFormの使い方で纏まってるサイトおしえてください GWの時間使って勉強してみようかなと思います
23 :
デフォルトの名無しさん :2012/04/30(月) 00:41:30.99
今更、winformの使い方を覚えてなにになる? 次VSで切り捨てられてるのにw
25 :
デフォルトの名無しさん :2012/04/30(月) 00:42:33.87
>>24 そう思うなら、そういうサイト教えてあげたらいんじゃない?
26 :
デフォルトの名無しさん :2012/04/30(月) 00:45:51.54
28 :
デフォルトの名無しさん :2012/04/30(月) 00:48:59.35
ListViewにTreeView機能を追加したい ウォッチウィンドウみたいな奴 どやって作るの?
30 :
デフォルトの名無しさん :2012/04/30(月) 00:52:37.35
あそこまで行くと自作コントロールなんじゃないのかな。 あるいはTreeViewを継承してカスタムコントロール作って、ある程度似たところまで持っていくか。
あれを作れる奴はそうそういないと思うぞ
PropertyGridである程度のことはできるんじゃない?
TreeListViewとかで検索すると色々
34 :
デフォルトの名無しさん :2012/04/30(月) 01:05:15.46
カスタムするなら、DataGridViewの方がやりやすそうだな
これから勉強するならWPFでしょうか?
C/C++で間違いない C#なんていつ見限られてもおかしくない C/C++にかわる言語は、少なくとも我々が生きている間にはでてこないよ
仕事で使うわけじゃないので 速度より楽な方がいい WPFかWinFormかどちらがいいですか?
>>36 いい加減にしろよ?
おまえが使わなければ良いだけの話だ。
foreach (string hage in Directory.GetHages(hoge)) { if (hage.Hair == null) { hageList.Add(hage); break; } } これを並列処理にするとどのようなコードになりますか?
41 :
デフォルトの名無しさん :2012/04/30(月) 07:13:19.25
string である hage に Hair なんてプロパティはねえよ、って突っ込めばいいんかな。
42 :
デフォルトの名無しさん :2012/04/30(月) 07:16:15.94
そっとしておいてやれよ・・・面白いと思ってやってるんだから・・・
2009.08.28 |l \:: | | |、:.. | [], _ .|: [ニ]::::: |l'-,、イ\: | | ∧,,,∧ . |::.. ヘ ̄ ̄,/:::(__):: |l ´ヽ,ノ: | | (´^ω^`) ,l、:::  ̄ ̄:::::::::::::::: |l | :| | |,r'",´ ̄ ̄ ̄ ̄ ̄`ヽ、l::::: |l.,\\| :| | ,' :::::... ..::ll:::: いよいよ明日は選挙 民主党に入れるんだ♪ |l | :| | | :::::::... . .:::|l:::: 民主党が勝てば景気回復して株も高値安定 |l__,,| :| | | ::::.... ..:::|l:::: 就職口も沢山できて |l ̄`~~| :| | | |l:::: 最低賃金も上がって派遣は正社員になれる |l | :| | | |l:::: 増税はしないで色々な手当がついて |l | :| | | ''"´ |l:::: 年金や貯金の心配もなくて結婚もできるんだ♪ |l \\[]:| | | |l:::: テレビがそう言ってるから間違いない! |l ィ'´~ヽ | | ``' |l:::: 早く明日にならないかなー! 2011.05.30 |l \:: | | /⌒ヽ . |、:.. | [], _ .|: [ニ]::::: |l'-,、イ\: | | l_ 0..0 |::.. ヘ ̄ ̄,/:::(__):: |l ´ヽ,ノ: | | }{ l冊 ,l、:::  ̄ ̄:::::::::::::::: |l | :| | |,r'",´ ̄ ̄ ̄ ̄ ̄`ヽ、l::::: |l.,\\| :| | ,' :::::... ..::ll:::: |l | :| | | :::::::... . .:::|l:::: |l__,,| :| | | ::::.... ..:::|l:::: |l ̄`~~| :| | | |l::::
アドイン作るの楽しいな
45 :
デフォルトの名無しさん :2012/04/30(月) 11:11:27.06
ファイルのパスから親フォルダのパスを返してくれる関数はありますか? ちなみにパスは絶対パスです
System.IO.Pathクラスに色々
ラストの\\までを抽出するだけ
最近、企画会社A社が日本進出を打診して落ち込んだ。所属アイドルグループの日本での活動を控え、
日本企画会社が提示した契約金が昨年水準に大きく至らなかった。既に昨年から日本でラブコールを受けていたが
国内でさらに実績を積んだ後に進出するという計画に支障をきたした。
K-POPが日本市場で萎縮する兆しを見せている。日本はアジアの最大規模の音楽市場だ。
日本エンターテインメント業界でK-POPを見つめる目が昨年に比べ熱気が冷めているという兆候が次から次へ感知されている。
今年の初めに日本で開かれた大規模公演のチケット販売率も大きく落ちた。
問題はこのような雰囲気がK-POPに否定的な影響を及ぼす恐れがあるというところにある。
既に今年開かれたいくつかのK-POP公演では赤字を記録したと伝えられた。先月に日本でアルバムを発売したいくつかの歌手の場合、
期待値にはるかに至らない成果を上げて関係者たちを落胆させた。
(中略)
ついこの前まではK-POPという看板だけ掲げれば韓国で存在感がない歌手でも日本では注目をあびた。
もう日本進出に対する方法の変化が必要だという声が出てきている。
歌手らの実力とスター性を整えるのはもちろん、企画会社と放送会社全てが日本国内のK-POP市場をさらに拡張できる方法を模索し、
徹底したビジネスマインドで接近をしなければならないという指摘だ。
K-POP日本で何が?…放送会社主導公演「憂慮が現実に」(韓国語)
http://starin.edaily.co.kr/news/NewsRead.edy?newsid=01092246599498088&DCD=A10202&SCD=EA21
最近もっぱら、C#ばっか書いてたら、C++のコード書けなくなってきた・・・ 特に、ガンガン テンプレート使ってるようなもの。 これで、MSがC#切り捨てたらどう責任とってもらおうかな
>>51 今のところ、MSが.NETとC#切り捨てることは、無いと思うけどな。
数十年先は、知らんが…
在日韓国人は多く見積もっても約100万人しか居ない(帰化も含め) 対して日本人は1億以上 その差を埋める為に、在日韓国人が 考えたのがイメージ戦略 要するに、自分たちの影響力を、実態以上に大きく見せる戦法 それをするのに、一番良い方法は? ・マスコミを牛耳る ⇒ 広告代理店支配 ・教育を牛耳る ⇒ 日教組 ・大企業を牛耳る ⇒ 各労組 ・大政党を牛耳る ⇒ 民主党 社民党 公明党
winformを切り捨てたら.netは開発者から切り捨てられる
WinForm使っているのなんてC#ユーザーだけだから問題ない
WindFormって.netのネームスペースだけの話じゃないよ?
.net使っているのなんてc#ユーザだけだから問題ない
.NETがC#だけと思い込んでる無能様の登場かw
>>51 MSはC#じゃなくてC++を切ったんでしょ。
自演で修正ですか
62 :
デフォルトの名無しさん :2012/04/30(月) 12:31:30.91
J#のことも忘れんな
C++最強のMSコンパイラが他に抜かれたなどという事実はない。
CLじゃなくてICCですよ。最強は。
ちょっと質問していいですか? Process.Startでバッチファイルを実行したんですが、そのバッチファイルのなかでxcopyコマンドが実行できません。 誰か解決できる人いますか?
>>66 どうなるの?
出来ませんてのはエラーなのか起動できないのかスルーするのか固まるのか
>>54 winformはVS11ではなくなってるけど
.net終了のお知らせ
やっぱりxamlよりwinformがいいのんか?
まるでWinFormがなかったら.NETの価値がないみたいな言い方じゃないか
winformなんてもっさり感満点だからなw 結局、まったく世に出ることなく、終了w
WinFormなくしたら誰もバージョンアップしないだろw
だったら、VS11beta入れてみろよ
Vista以降の糞UI導入で未だにXP使い続けるユーザーが大勢いる。 WinFormのシンプルで且長年使われてるUIは本当に神UIなんだよ。
未だに、VC++6 MFCを使ってる・・・
>>76 速ければな
あれでネイティブ吐ければ、マジ神だろうな
馬鹿だろこいつ
ここはこういう流れでいいのだ
全部自演だけどな 嵐に否定的なのまで含めてな
コード皿せ
コード見せろ、暇だから修正してやんぜ
バッチファイルのほうでecho onにすりゃメッセージ見れんじゃないの
>>86 ProcessStartInfo makeinfo = new ProcessStartInfo();
makeinfo.FileName = Program.profiles + "\\" + SelectedProfiles[i] + "\\make.cmd";
//Program.profiles=実行ファイルのあるフォルダ\Profiles
//SelectedProfiles[i]=ICS用モトヤフォントというディレクトリ
makeinfo.CreateNoWindow = true;
makeinfo.ErrorDialog = true;
makeinfo.RedirectStandardError = true;
makeinfo.RedirectStandardOutput = true;
makeinfo.UseShellExecute = false;
makeinfo.WorkingDirectory = Program.path; //Program.path=実行ファイルのあるフォルダ
Process make = Process.Start(makeinfo);
make.cmd
XCOPY /E /H /Y .\profiles\ICS用モトヤフォント\system .\work\system
WinFormsに関しては俺も動く 抗議デモだよ
もうベータで公開してるのに、今さら講義しても遅いだろw
みんなカキコがとまってるってことは考えてくれているのかな?
WINFORMってMFC以上に短い寿命だったなw
shellexecuteをtrueにしてみ
M$がWPFとやらをゴリ押してるだけのことだ。
WPFなんて未だに未熟児のままだぜ。
>>97 その後StreamReaderで読み込んでいるので無理です。
>>100 んじゃ起動するのはバッチファイルじゃなくてcmd.exeにしてバッチ渡せ。
後出し多すぎるぞ。
どうせ ファイル名ですか、またはディレクトリ名ですか が、出て止まってるとかいうオチだろ
105 :
デフォルトの名無しさん :2012/04/30(月) 14:24:23.67
まさかとは思うが念のため確認しておくけど、 そのバッチファイル自体は手起動できちんと動くんだよね
Java使いの俺がエスパーの真似事してみよう 最後に Process.WaitForExit(); すればいんじゃね?
で、xcopyができません、はミスリードなんだろ?
>>103 すいません。他にやったことは特にないと思います。
109 :
デフォルトの名無しさん :2012/04/30(月) 14:25:27.05
初心者は、自分が「これだけ言えば伝わるだろう」と思った情報の 3倍、4倍の情報をあらかじめ出さないと正しく伝わらないと思って欲しい。
質問からしてバッチファイルは単体での動作は確認済みだろう。 c#のスレだし。
回答する側も初心者と思えるのは俺だけか?
>>104 違います。
>>105 しっかり動きました。
>>106 StreamReaderのところで
while(make.HasExited == false)
{
ストリームリーダー
}
としているので、先には進みません。
やる気が出ないだけさ
StreamReader切って makeinfo.RedirectStandardError = false; makeinfo.RedirectStandardOutput = false; makeinfo.UseShellExecute = true; にしたら動きました。原因究明中です。
バッチファイルを echo hoge > c:\temp\test.txt にしたら、動くの?
117 :
デフォルトの名無しさん :2012/04/30(月) 14:30:58.72
なんだ。入力待ちしてるだけじゃないか。
121 :
デフォルトの名無しさん :2012/04/30(月) 14:33:47.80
>>114 .
>>112 みたいな情報があとから出てくるのが大変なの。
今のところ「コンパイルできる」ソースコードは一度も出してもらえてないから、
それ以外のところでどんな不味い処理をやってるのか、想像するしかない。
んで、その「ストリームリーダー」と書かれた場所には、どんな処理が書かれているのかな。
やっぱり、回答側も初心者だったかw
まずShellexecute使わずバッチファイル動かそうとしたら動く訳ない。 そしてcmd.exe起動しろって言われて「できませんでした」としか返せないってどうよ。せめて何が駄目だったのか書け。
>>123 makeinfo.FileName に指定するバッチの中身を
>>116 の2行目にして、実行しろ
そのレベルすら検査してないとかありえんわ
>>121 コンパイルできるっていったら多すぎます。
とりあえずストリームリーダーのソース書きます。
StreamReader reader;
while (make.HasExited == false)
{
while (!reader.EndOfStream)
{
Console.AppendText(reader.ReadLine() + "\r\n");
}
}
reader.Close();
>>125 バッチファイル動きますよ。
他のexeファイルは読めてます。
>>128 バカそうじゃない
お前のバグが再現する「最小限のコード」を完全に皿せ
ながいなら、再現する状態を保ちながら削れ
それが質問者の義務だ
>>126 普通に動きますよ。他の処理ができることは確認しています。
>>131 それが一番最初のコードだと思うんですが…
>>132 じゃスレチじゃねーの?
バッチがダメなんだろ
もう
>>2 のやつに全部貼って付けて晒してくれれば良いのに。
139 :
デフォルトの名無しさん :2012/04/30(月) 14:44:31.50
>>131 そこまで期待するのはこれには無理なきがする。
いっそ全部圧縮してうpして見せてくれよ。って言った方が早いような。
>>135 githubにバックアップとしてあげているので、そこに今のコード上げますか?
そうしてくれ
>>140 あげろよ
だれが最速で修正するか、勝負しようぜ
>>129 バッチファイルはexeじゃないんだよ。
>>138 バッチファイルですか?
バッチファイルなら、最初に書いたmake.cmdの内容です。
こちらで再現しないとデバッグは難しい。 .netのバグかもしれないしな。
>>143 バッチファイルの中でexeが読めたということです。
147 :
デフォルトの名無しさん :2012/04/30(月) 14:48:45.81
AppendTextってことは、TextBoxに吐いてる?
エスパーすると、Releaseモードで動く。
>>144 どこだよw
スレ番位示よ。こっちに探させるなよめんどくせーよ
要はバッチファイル走らせて入出力乗っ取りたいだけだろ。そして.batとか.cmdを.exeと同じように扱えると思い込んでハマってるだけだろ。
>>145 大抵の不具合は再現しないぞ
っていうか、再現性のあるのようなものは猫で修正可能
んなこたーない
おまえらw 結論すぐ出るだろ? バッチが下手くそなだけだ スレチだから解散ー
>>154 >>136 >
>>134 >コマンドプロントで動作確認しました。
こういう謎の省略せずに、どういう確認の仕方したか
具体的に完全に皿せば一発で答え貰えてたよ
159 :
デフォルトの名無しさん :2012/04/30(月) 14:58:25.76
>>154 はい。じゃねえよ。そういうのを情報の小出しだ、って言ってるの。
「できませんでした」「ダメでした」じゃなくて、何が起きているのか示せよ。
「フォーム上のTextBoxに動作結果が出力されません。」
「プロセスが開始したまま、沈黙しています。」
とかさ。あなたにとっての「ダメでした」は唯一無二でも、俺たちにとっては様々な可能性を検討する必要が発生するの。
回答が遅れるのも道理だろ。
TextBoxへのAppendは、Form.Invokeされたメソッド内で実行されてるか?
>>157 だから、それがお前の頭のバグなんだよ
失敗させることができるの
で、そーいう動き方してるの
まースレチだからbatすれいけ
質問する身なんだからいちいち食い下がるのやめた方がいいぞ。 あまりにもテンプレ通りの初心者的な行動するから釣りじゃないかと思えて来た。
>>158 コマンドプロントで
cd "C:\Users\ユーザー\Documents\Visual Studio 2010\Projects\Android_Custom_ROM_Modifier\bin\Debug"
"C:\Users\ユーザー\Documents\Visual Studio 2010\Projects\Android_Custom_ROM_Modifier\Android_Custom_ROM_Moidfier\bin\Debug\Profiles\ICS用モトヤフォント\make.cmd"
しました。
>>159 フォーム上のTextBoxにXCOPYのどうさっ結果が返ってこず、ファイルもコピーされていません。
From.Invokeされてます。
>>156 「戻すようにしてます」じゃなくて「戻すようにしたいです」でしょうが。戻せてないんだから。
なんでそんなに自信たっぷりなの。思った通りに動かせてないからここで質問してるんでしょが。
ところで、率直な疑問なんだが、 XCOPYとかバッチファイルでやらずにC#でファイルのコピーするコード書いてしまえば 良いんじゃないの?わざわざバッチファイルにしてる理由は?
167 :
デフォルトの名無しさん :2012/04/30(月) 15:08:44.03
全部晒せ、って言っても動かないもんしか寄こさないしな・・・ プロファイルが見つかりません、だとよ。 例外も2,3発生。
>>164 処理結果は戻ってきています。
でもXCOPYのは無視されたように何も帰ってきませんし、コピーもできていません。
>>166 他の人がバッチファイルを使って動作を変えられるようにするためです。
170 :
デフォルトの名無しさん :2012/04/30(月) 15:12:20.13
>>168 http://pastebin.com/R3i99XJ8 D:\DEV\TEST\DATA\XCOPYBATCH
+---profiles
| \---ICS用モトヤフォント
| | make.cmd
| |
| \---system
| test.txt
|
\---work
| \---system
| test.txt
上のミニマムな状態(コマンドラインプログラム)にしたら動いたし、処理結果も出力されたぞ。
ハナからこのレスくらいの情報は晒せ。
>>167 プロファイルは
githubの直下にある"Profiles"というフォルダなので、バイナリと同じフォルダに移してください。
あと、"tools"というフォルダも移してください。
まだファイルがなかった場合など予想するように作っていないので、ファイルがかけていたりするとエラーはきます。
>>162 回答の時間だ
cd "C:\Users\ユーザー
.\Documents\Visual Studio 2010\Projects\Android_Custom_ROM_Modifier\bin\Debug\Profiles\ICS用モトヤフォント\make.cmd
ってやってみ
あるいは、バッチの中身を次の一行にしてみ
chdir
174 :
172 :2012/04/30(月) 15:14:45.77
つまりバッチのバグ
c#スレに質問する前に、C#の問題であることを確認しないからグダる
>>172 でわからんかったら諦めろ
どのみちスレチだ
>>172 cdコマンドで
カレントディレクトリがプログラムのあるフォルダにうつっているのは確認済みです。
カレントディレクトリは makeinfo.WorkingDirectory = Program.path; で移しています。
177 :
デフォルトの名無しさん :2012/04/30(月) 15:17:14.17
はずかしい172がいるスレはここですか
まだやっとんのかいな〜
>>170 確かにコマンドラインプログラムにしてしまえば既に標準入出力があるから多少難易度が下がるな。
180 :
デフォルトの名無しさん :2012/04/30(月) 15:19:01.80
なあ、なんかさ。 ソースコードダウンロードしたら、「tools」フォルダの中に「xcopy.exe」なるプログラムがあるんだがこれはなんだ?
>>180 試しに移してみたものです。もちろん意味ありませんでしたが。
183 :
デフォルトの名無しさん :2012/04/30(月) 15:22:40.12
XCOPY /I /E /H /Y .\profiles\ICS用モトヤフォント\system .\work\system にしてもうごかんか。
どうしてもバッチのバグにしたい奴がいるけど、バッチのバグ「だけ」ではないな。 ただしxcopyは場合によって「上書きしますか?」とか「フォルダですかファイルですか?」と聞いて来てこういう場合処理がそこで止まってハマることが結構あるのでxpで動作する保証がなくてもいいならrobocopyとかの方がいい。
185 :
デフォルトの名無しさん :2012/04/30(月) 15:23:10.46
>>182 何も変えてない。つまり、晒された部分には何の問題もないってこと。
186 :
デフォルトの名無しさん :2012/04/30(月) 15:24:03.42
元ROMが見つかりません、だとさ。元ROMとやらは何なんだね。 チェック処理外しても良いけど、なるたけ同じ動作させて再現したいんだが。
188 :
デフォルトの名無しさん :2012/04/30(月) 15:27:11.84
元ROMはここ一年位ROMってたけど この春からレスするようになった人達のことです
190 :
デフォルトの名無しさん :2012/04/30(月) 15:27:47.79
workフォルダ削除とかやってるが、これでまともに動くのか?
バッチが起動出来てる時点でもはやC#関係ないだろー
>>190 一時ファイルが入ったフォルダなので、元からあるなら消してください。
193 :
デフォルトの名無しさん :2012/04/30(月) 15:29:46.69
しかし汚えソースだな。この程度やりようによっちゃバッチでも出来るんじゃねえの。
>>191 バッチが動くのでプログラムに問題があるはずなのですが…
>>193 殴り書きです。バッチでもできます。というかもとがバッチファイルのプログラムです。
C#スレなのに誰もC#で書かないのな
198 :
デフォルトの名無しさん :2012/04/30(月) 15:31:59.49
解凍中はUI沈黙すんのなw 横やりでわりーけど、こんなもんCUIで作れよ。
質問者も回答者も実はC#で書くのあんまり好きじゃないんだよ
>>198 まだマルチスレッドにしていないので。製作途中です。
202 :
デフォルトの名無しさん :2012/04/30(月) 15:33:26.19
>>195 じゃそのバッチで満足しとき。
殴り書きにしたって、こんなソース書いてる様じゃ、
人様に晒す様なプログラム書くレベルに達していない。
ナギ様によろしくな。
ナギさまって誰よ?
205 :
デフォルトの名無しさん :2012/04/30(月) 15:36:16.03
あープロファイル一個一個ダウンロードするのだりい。 まとめてZipであげてくれりゃ一発なのに。
>>194 だからその発想が間違ってる
バッチのxcopyの前に書いたコマンドは動作するんだろ?
なら、後はバッチの問題だよ
ngenについて教えて Formにボタンとラベルだけを配して private void button1_Click(object sender, EventArgs e) { Stopwatch sw = new Stopwatch(); label1.Text = ""; sw.Start(); float f,f1 = 1.0f, f2 = 2.0f; for (int i = 0; i < 1000000000; i++) f = f1 * f2; label1.Text = string.Format("{0} ms",sw.ElapsedMilliseconds); } とだけ書いてReleaseでビルド ngen install WindowsFormsApplication.exe としたら、ngen前の方が速いんですが、なぜですか?
209 :
デフォルトの名無しさん :2012/04/30(月) 15:38:40.77
>>203 あなた、自分が思っている以上に質問者としての最低限の能力を持ってないから、
次回から質問するときは、全部動かせる状態にして、ソースコード付けてZIPでうpしてから質問に来てね。
普通の質問者にはこんなこと頼まないけど、あなたのコミュニケーションレベルは低すぎる。
>>207 コマンドプロントでバッチを実行したら正常動作するので。
211 :
デフォルトの名無しさん :2012/04/30(月) 15:39:26.77
>>206 githubのZIPダウンロードで日本語フォルダのファイルがまともに展開されると思ってるのか
>>211 UTF-8だからだと思います。
それと日本語のフォルダはProfilesのサブフォルダだけです。
214 :
デフォルトの名無しさん :2012/04/30(月) 15:42:07.11
>>213 そのProfilesのサブフォルダがなくてもこのプログラムは動くのか?
215 :
デフォルトの名無しさん :2012/04/30(月) 15:43:02.24
>>213 UTF-8だからだと思います。じゃねえよ。んなこた知ってるんだよ。どうでもいいよ。
Profilesとやらの中身をそろえるのが面倒くせえから寄こせ、って言ってるんだよ。
>>210 RPGのNPCかよw
レス読み直してこいよ
218 :
デフォルトの名無しさん :2012/04/30(月) 15:45:41.39
コミュニケーション能力の破綻した初心者を相手するのがここまで大変だとは・・・ 対応してる面々には頭が下がります。
220 :
デフォルトの名無しさん :2012/04/30(月) 15:48:00.62
「文字化けするからZIPでくれ」 「文字化けするのはProfilesフォルダの中だけだと思います」 「そんなこと聞いてるんじゃねえ。いいから寄こせ」 RPGのNPCでもこんな唐変木はいねえよ。 勇者様も盗賊にジョブチェンジしたくなるだろ。
221 :
デフォルトの名無しさん :2012/04/30(月) 15:48:57.28
これもしかして、人工無能のテストなんじゃね? 質問者のレスがサル以下。
>>219 一回の起動じゃなく、
統計的に遅くなること確認したん?
もしおしなべて遅くなるなる、つまり誤差じゃないなら
JITよりしょぼいコンパイラ使ってんのかもね。しらんけど。
行き詰まったら↓ ・綺麗なコードで書き直してみる。 大抵、ごちゃくごちゃしたコードのまま読むと、すんなり状況が掴めない。 ・フォームではなく、コンソールアプリケーションで作り直し、最小限にコードを書く。 ・コーヒーでも飲んで落ち着く その上で問題点を洗い直すべし。
225 :
デフォルトの名無しさん :2012/04/30(月) 15:55:28.47
makeinfo.FileName = "cmd.exe"; makeinfo.Arguments = "/k \"" + Program.profiles + "\\" + SelectedProfiles[i] + "\" \\make.cmd"; ZIPがこねーから何となくソース見てたけど、これ何? 最初に言ってたソースと違うんだけども。こんなん動き得ない。
226 :
デフォルトの名無しさん :2012/04/30(月) 15:57:45.94
/* makeinfo.FileName = "cmd.exe"; makeinfo.Arguments = "/k \"" + Program.profiles + "\\" + SelectedProfiles[i] + "\" \\make.cmd"; /*/ makeinfo.FileName = Path.Combine(Program.profiles, SelectedProfiles[i], "make.cmd"); //*/ これでいけるんじゃねえの。
>>214 名前書き換えられませんか?あとプロファイルはICS用モトヤフォントだけで十分です。
>>225 cmd.exeはフルパスで指定しないとなあ。
やっぱその程度でやったけど動きませんとか言ってたのか。
>>225 cmdでやれといわれたので書き換えたものです。
最初に言ったソースに書き換えてください。
>>223 んーなのわかってる
統計的に優位な差が出る形で、実行速度が遅くなるか尋ねてるの
232 :
デフォルトの名無しさん :2012/04/30(月) 16:01:21.40
>>227 もういいよ。わかったから。
>>228 そこじゃねえwwww makeInfo.Argumentsを脳内で展開してみ。"\" \\make.cmd"って変だろ。
まさかと思って、make.cmdみたら分かった。
>echo ファイルを確認しています…
>IF NOT EXIST .\work\system\build.prop EXIT 1
動くわけねえだろ。
make.cmdの中身も質問者の言っている内容と違うじゃないか。
無理ゲーにもほどがある。
>>228 cmdは動きました。でもそのコードだとバッチファイルは実行できません。
最初に言ったコードに書き換えてください。
234 :
デフォルトの名無しさん :2012/04/30(月) 16:04:03.15
>>227 その手間を俺たちに強いるの?いいから黙ってうpしろよ。
オウム返しならいらねえんだよ。
> でもそのコードだとバッチファイルは実行できません。 > でもそのコードだとバッチファイルは実行できません。 > でもそのコードだとバッチファイルは実行できません。 はい解散
236 :
デフォルトの名無しさん :2012/04/30(月) 16:04:58.93
> でもそのコードだとバッチファイルは実行できません。 なんだ、原因分かってるんじゃねえか。 帰れ帰れ
ばかばっかだな、本当w
なんだ? 「動かないことがわかった」ということで解決?
>>232 そこも確かに変だと思ったが、フルパスで指定しないとPATHなんか考慮されないからプロセスそのものが作られない方が先だろと思った訳よ。
>>232 >そこじゃねえwwww makeInfo.Argumentsを脳内で展開してみ。"\" \\make.cmd"って変だろ。
最初に言っていたコードに書き換えてください。
>まさかと思って、make.cmdみたら分かった。
>>echo ファイルを確認しています…
>>IF NOT EXIST .\work\system\build.prop EXIT 1
現在はしっかりチェックするために
XCOPY /E /H /Y .\profiles\ICS用モトヤフォント\system .\work\system
この一行のみのバッチファイルでテストしています。
243 :
デフォルトの名無しさん :2012/04/30(月) 16:10:06.16
>>240 112: zip.ExtractAll(Program.work);
これ、本題とは関係ないけど、間違いなく変。
>>235-236 ,238,241
間違えて動かないソースコードをあげてしまいました。
makeinfo.FileName = Program.profiles + "\\" + SelectedProfiles[i] + "\\make.cmd";
この一行に書き換えてください。
>>243 変ですか?
DotNetZipというライブラリを使っています。
Librariesフォルダにあります。
246 :
デフォルトの名無しさん :2012/04/30(月) 16:13:44.08
>>245 これをやると、どこに解凍されるか考えて、後続のバッチのIF〜と見比べて見ろよ。
247 :
デフォルトの名無しさん :2012/04/30(月) 16:15:08.56
史上最低レベルのお脳の質問者だな。キレないだけが取り柄。
回答側に回ってるつもりのおまえらも負けてないぞw
>>246 何か問題ありますか?
Program.workは.\workのことです。
IFは.\work\system\build.propがしっかり展開されたか確認するコードです。
251 :
デフォルトの名無しさん :2012/04/30(月) 16:19:49.22
>>250 do
{
while (!reader.EndOfStream)
{
Console.AppendText(reader.ReadLine() + "\r\n");
}
} while (make.HasExited == false);
解決。
>>249 やれといわれるまで上げていませんでした。
ム板で最強の勢いだなw C#も意外と捨てたもんじゃないな
254 :
デフォルトの名無しさん :2012/04/30(月) 16:20:18.32
>>250 ステップ実行で動かしてみたら?それこそ。
>>251 何も変わらないと思いますが。
Console.AppendText(reader.ReadLine() + "\r\n");
はしっかり実行できてます。
>>254 何の問題もありませんよ。そのあとに実行しているsed.exeとかtr.exeは動いてますし。
>>257 見てげんなり
やっぱりバッチの問題でした
そうですね。自己解決しました。ありがとうございました。さようなら。
260 :
デフォルトの名無しさん :2012/04/30(月) 16:48:24.27
なんかな。オチもこのザマか。手伝うんじゃなかった。
始めからバッチの問題だって答え出てたじゃん
262 :
デフォルトの名無しさん :2012/04/30(月) 16:54:48.42
初心者にも色々あるけど、ここまで程度の低いのは初めてだ。
さっきの人は違います。 別のエラーが出て今困ってます。 Process make = Process.Start(makeinfo); で「アクセスが拒否されました。」と出てきます。
265 :
デフォルトの名無しさん :2012/04/30(月) 16:56:55.05
そもそも、バッチのエラー出力を拾わないでどうするんだろうな。 バッチ内でエラーが発生しても分かりやしない。
>>264 何を変えたんだよ
そんな報告されてもまわりが困るわ
267 :
デフォルトの名無しさん :2012/04/30(月) 16:58:39.70
と出てきます、とは、そう出力されるのか、 例外が発生するのか、(この場合はあり得ないが)コンパイルエラーなのか、書け。 出てきます、じゃ何も伝わらん。
268 :
デフォルトの名無しさん :2012/04/30(月) 17:00:13.21
いるよなあ、こういう奴。 「いつどこでだれが何をどうやって」が言えない奴。
>>264 だーかーらーバッチの問題だってずーーーっと言ってるでしょーに
バッチファイルのmake.cmdの問題だよ
自分の環境をろぬに理解せずぐちゃぐちゃにして
その結果自ら落とし穴に落ちてるだけ
>>267 例外です。
「Win32Exceptionはハンドルされませんでした。」ネイティブエラーコード5
888888888888888888888888888888 8888888888 wwwwwwwwwww 8888888888888888 wwwwwww
273 :
デフォルトの名無しさん :2012/04/30(月) 17:02:36.08
xcopy リターンコード: 5 =ディスク書き込みエラーが発生した よかったじゃん。xcopy動いてるじゃん。おめでとう。あとは頑張ってね。
>>270 めんどくさいから、指示に従ってくれないか?
まず、 窓+Rってタイプしてエンター押してくれ
275 :
デフォルトの名無しさん :2012/04/30(月) 17:04:19.15
「自己解決しました」で解決策の提示もなくいなくなった奴に、 答えてやる義理はない。散々付き合わされて、「あ、もう解決したんで良いです」と砂をかけるような真似をしておいて、 次も付き合えるようなお人好しは、そういない。
>>264 の問題自己解決しました。
makeinfo.FileNameの値が間違ってセットされてました。
277 :
デフォルトの名無しさん :2012/04/30(月) 17:07:27.89
> 間違ってセットされてました
いつ、どこで、どう間違ったか、には一切触れないのが
>>276 クオリティ
確認しましたが、やはりxcopy以外のsed,trはしっかり動作していました。
>>278 "\\make.cmd"が" \\make.cmd"になっていたせいでファイルが読み込めていませんでした。
>>280 それよりもコマンドプロントでバッチファイル動かしたほうがいいと思いますが。
283 :
デフォルトの名無しさん :2012/04/30(月) 17:10:27.48
>>281 やっぱりそれだけかよ・・・
>>225 , 226読めよ。自己解決?よく聞こえないんだが。
285 :
デフォルトの名無しさん :2012/04/30(月) 17:10:59.15
「何もわかりません><」って言ってるくせに、 指示には従わない。いいから黙ってやれよ
>>283 >>225 とは違います。あれはcmd.exeを実行ファイルに指定していますが今はバッチファイルを直接指定しています。
>>225 のはたぶんmake.cmdのパスを直接指定したときに間違えたのかと。
そろそろ収拾をつけたほうが良いと思う makeinfo.RedirectStandardInput = true; sedスクリプトでエラーが出てるのは知らん
>>288 sedスクリプトはエラーをはいていません。
makeinfo.RedirectStandardInput = true;
書き換えてみます。
290 :
デフォルトの名無しさん :2012/04/30(月) 17:15:19.94
>>286 お前ホント頭来るな。
>>225 , 226をよく読めよ。お前のミスに気づいてるだろうが。
>>287 notepad
エンター
メモ帳が立ち上がったのを確認してくれ
292 :
デフォルトの名無しさん :2012/04/30(月) 17:17:02.96
人様のレスを勝手に関係ないと思い込んで、きちんと読むこともしない。何も分かってないのに。 勝手にソースを書き換えて、動かないと騒ぐ。何も分かってないのに。 これで回答してもらえるんだから、ホントここは優しいスレだわ。
295 :
デフォルトの名無しさん :2012/04/30(月) 17:19:55.47
何も分かってないから、バッチで十分動く代物を、 訳の分からんGUIにしようとするんだろ。 クズはどこまでいってもクズだからそっとしておくが吉。
297 :
デフォルトの名無しさん :2012/04/30(月) 17:21:34.16
で、あなたはソースコードを1文直す度にここで質問されるつもりですか? 端的に申し上げて、あなたはこのプログラムを作成するに能いません。 もっと初歩的な勉強と、日本語によるコミュニケーションを勉強してから、 再チャレンジしてくださいね。
>>293 次の行(
>>89 の内容と完全に同一)を、どこからもコピペせずに正確にタイプしてくれ
XCOPY /E /H /Y .\profiles\ICS用モトヤフォント\system .\work\system
299 :
デフォルトの名無しさん :2012/04/30(月) 17:22:58.31
ここで「それならもうやりました」とか言いそうだな、この質問者は。
301 :
デフォルトの名無しさん :2012/04/30(月) 17:24:29.27
しなくていいからやれ
>>300 さっきら起動したメモ帳に、正確にタイプしてくれ。cdはいらない。、
305 :
デフォルトの名無しさん :2012/04/30(月) 17:27:37.43
>>302 なんでいつのまにかコマンドラインでやってるんだ。
なんのためにメモ帳を立ち上げたんだ。
306 :
デフォルトの名無しさん :2012/04/30(月) 17:28:19.09
>>304 >>298 よく読め。よく読め。よく読め。よく読め。よく読め。よく読め。よく読め。よく読め。よく読め。よく読め。よく読め。よく読め。よく読め。よく読め。よく読め。よく読め。
>>296 じゃあ、他にも問題があるんだろう。俺のところでは動いたし
とりあえず、xcopyは標準入力もリダイレクトしないと動作しない仕様だから
コピペせずにですか?分かりました。
309 :
デフォルトの名無しさん :2012/04/30(月) 17:29:44.93
>>307 ちょ、ちょっとまってくれ。横やりだが、そうなのか?
だとすると
>>170 ってなんで動いたの?
ちなみに標準出力はリダイレクトしています。
しっかりXCOPY /E /H /Y .\profiles\ICS用モトヤフォント\system .\work\system書き写しました。
>>311 メモ帳のステータスバーに「一行、59列」となっているのが確認できたら、
メモ帳のメニューから、「ファイル → 名前をつけて保存」を選らんで
make.cmd
の名前でデスクトップに保存してくれ
万が一ステータスバーの表示が違うなら、メモ帳の起動からタイプまで、再度やり直してくれ
>>312 あ、すまん。Endきー押してからステータスバー確認
保存しました。
>>313 末尾に移動してから確認したので大丈夫です。
316 :
デフォルトの名無しさん :2012/04/30(月) 17:38:43.72
リモートデスクトップでも繋いだ方が早そうなやりとりだな
>>309 多分、コンソールアプリだから標準入力はコンソールに接続されている
コードそのままでWindowsアプリに変更すると動かなくなると思う
兎に角、標準入力がどこかに接続されていないことには動かないと
>>317 了解しました。標準入力できるように書き換えます。
>>314 デスクトップに保存したmake.cmdを、元々の
>>89 > makeinfo.FileName = Program.profiles + "\\" + SelectedProfiles[i] + "\\make.cmd";
のパスにあるファイルに上書きしてくれ。
ただし、元々あったファイルは後から検証するために名前を変えて残しておいた方がいいだろう。
320 :
デフォルトの名無しさん :2012/04/30(月) 17:43:32.31
>>319 以上で動く・・・可能性が半々。
騙されたと思って、C#プログラムを実行してくれ。
chdirだけ書いたbatがC#から起動できていたなら動く・・・はずだ。
>>317 シェルを出さないと動作しないことを確認しました。あたりなようです。
325 :
デフォルトの名無しさん :2012/04/30(月) 17:48:56.01
>>324 それでダメか・・・
よし、窓を開けて、天に向けてこう誓ってくれ。
「神よ、私は罪深き者です。
今後一切、プログラミングを自力でやろうなどとは思いません。
神より授かった、この身一つで生きて参ります。」
326 :
デフォルトの名無しさん :2012/04/30(月) 17:49:51.95
>>323 おい、報告と違うぞ
C#からbat起動の確認したはずだが
330 :
デフォルトの名無しさん :2012/04/30(月) 17:52:56.55
331 :
デフォルトの名無しさん :2012/04/30(月) 17:54:50.05
>>327 すみません、間違えていました。C#が別のものでした。
やはり動きませんね。
332 :
デフォルトの名無しさん :2012/04/30(月) 17:56:06.79
シェルとはCUIの画面のことだと思って言ったのですが、間違ってますか? Linuxではshファイルのことをシェルスクリプトといっていましたが、Windowsでもそういうのですか?
違う人とかどうとか言う前にトリップでも付けて書き込めよ?
335 :
◆d8nUHyTyTc :2012/04/30(月) 17:59:29.47
>>334 わかりました。どうすればいいでしょうか。
336 :
デフォルトの名無しさん :2012/04/30(月) 18:00:26.14
>>335 偽者さん、さようなら
私も解決したのでここを去ります。皆さん本当にありがとうございました。
>>335 次の1.〜6.を試してそれぞれの結果を教えてくれ。
1.make.cmdを
>>162 の方法でコマンドラインから実行する
2.make.batの中身を次の3行に変更してC#から実行する
@chdir
@dir .\profiles\ICS用モトヤフォント\system .\work\system
@timeout /T 8
3.
2.のまま1.の方法で実行する
4.5.6.
上記を1.2.3.を、パス名から日本語部分「用モトヤフォント」を削ったフォルダ構成、C#、バッチ、を全て書き換えた上で実行する
じわじわくる。
全部読むの面倒なので どういう問題が起きて質問して、何が原因だったかを誰か教えて。
>>339 >>317 なら、事前のやりとりに嘘があることになる
事前のやりとりで正直に報告してたなら、
>>317 は解ではない。他の要因が解決したから解決したはず。
343 :
◆d8nUHyTyTc :2012/04/30(月) 18:28:19.31
>>342 ほかのプログラムは標準入力がいらないので動いていたわけです。
GWは2ch満喫ですか?
346 :
デフォルトの名無しさん :2012/04/30(月) 18:34:07.43
明日明後日は仕事だけど 昨日今日は三浦半島一周してきましたよ 3日からは房総半島一周に行きます 7と8は有給です
>>344 それなら、コマンドラインから起動しても、途中で止まらなければおかしい
>>345 明日あさって学校、しかも特待だから宿題どっさり出るからな。
なめんな。
さすが、GW 害虫が蠢き出したな
>>351 標準入力待ちになるからだろ
他に何があるんだ
つまり、どういうこと
ちなみに脳障害ですけど何の話をしているんです?
>>353 xcopyは入力すべきことがなくても標準入力がどこかに接続されていなければ実行できないんです。
358 :
◆d8nUHyTyTc :2012/04/30(月) 18:45:36.18
>>358 画像編集もお得意なようですね。どうしましょうか?
そうだ!あなたはgithubのアカウントを持っているはずだからgithubにプッシュできるはずですよね?
361 :
◆d8nUHyTyTc :2012/04/30(月) 18:49:05.88
作ろうとしているのは、画像編集プログラムではありません。
363 :
◆d8nUHyTyTc :2012/04/30(月) 18:49:55.06
>>360 やっと気づいたかw
可能なら、アップしたプログラムも動かして見て欲しかったなあ。
結構面白いことやったつもりだったのに、ダウンロードしてもらえなかったよ。
スカイラインの伝統はR34で終了しました。 現在販売されているスカイラインはネームバリューを利用して 車に無知な情弱を騙している単なるV6エンジンのオヤジ車です。
>>363 だからReadme.md書き換えるか何とかしてみろってんだよ!
366 :
デフォルトの名無しさん :2012/04/30(月) 18:50:50.94
以上、#てにをは がお送りしました。 弟がスレに迷惑をおかけしていたようで、申し訳ありませんでした。
国も仁川空港、釜山市、K-POOP、F1はすべて大赤字。 過剰な自爆投資で破産街道まっしぐら。 まあせいぜい外国人のために奴隷労働しれくれよ〜www
もしシステムファイル以外のファイルをすべて削除するようなソフトを作って ここで晒したら逮捕されるの?
369 :
デフォルトの名無しさん :2012/04/30(月) 18:58:11.43
さらし方によるんじゃねえの。
作成罪の要件って何だっけ
371 :
デフォルトの名無しさん :2012/04/30(月) 19:01:29.74
おまえらなにをやってんの? 違うほうにいってねーか?
373 :
デフォルトの名無しさん :2012/04/30(月) 19:05:36.41
ウィルスって増殖するからウィルスでしょ? 自己複製しないで単体で機能して、システムファイル以外削除するソルトは 罪になるのかな? readmeにちゃんと、責任を負いません、みたいなことも書いて
なに、結局釣りだったのか。
セキュリティソフトってシステムファイルにアクセスしたり、ネットにアクセスする場合は反応するけど システムファイル以外を削除するソフトに関しては全く反応しないよね? それに実行するときは、注意ダイアログが出ておkしているんだし
378 :
デフォルトの名無しさん :2012/04/30(月) 19:19:09.70
ダブルバッファを有効にしていて オフスクリーン用のGraphicsを取得したい どうすればいいですか?
プログラマはどんな2ちゃんブラウザ使ってるの?
>>379 バッファ用のimageからGraphics.FromImageで生成とか?
よくわからんけど
>>380 > プログラマはどんな2ちゃんブラウザ使ってるの?
rep2だよ
383 :
デフォルトの名無しさん :2012/04/30(月) 19:37:58.74
>>380 俺はV2Cだが・・・設定がゴチャゴチャしてて使いにくい、
どこに何の機能があるか分かりづらい、etc, etc...
不慣れなOfficeのリボンの方が快適に感じるくらいだから移行を検討中かな
V2Cよさそうだなぁ 自分のレスにマークできるのがいい
次VSでformがなくなるって本当なの?
ブラウザ変更した場合、ログをどうするかだけど ログの移植ツールがなかったら、自前で作ったりするの?
わざわざ移植したいようなログが無いので問題ない
389 :
デフォルトの名無しさん :2012/04/30(月) 20:49:16.68
webアプリにC#は向いてるんですかね
脱原発にC#は向いているんですかね
剥き剥き
次期windows8にVS2010がインスコ出来ないてホントですか?
ざまみろ
サイクル的にwindows8は外れだから問題ない
交互最強
偶数は2軍チームが作るんだっけ?
ヘルプミー。
ttp://ideone.com/mGBXm MEFいいよMEFって前このスレだったかで見たので、実験してるのですがうまくいきません。
Items = Container.GetExportedValues<T>();
を実行すると、
基になるエクスポートされた値の型 'MefHello.Hello (ContractName="MefPlugin.IHello")' を 'MefPlugin.IHello' 型にキャストできません。
という例外がとびます。
この型変換は何を指しているのでしょうか。
どなたかご回答お願いします。エスパー歓迎!!!
class Hoge<T> これの<T>ってなに? たまに class Hoge<T>:Where<T> こういうのも見かけるけど意味がわからない
>>398 ジェネリックスだよ。
Tをユーザープログラマが任意に決められるように設計するんだ。C++と違って実行時決定だったと思う。
Whereはしらない・・・。
ちょw
凶変ハンペンあたりじゃないかな?
List<int>みたいに 中に型を入れたい時に使う
Hoge<T_T>
404 :
398 :2012/04/30(月) 22:13:13.77
よくわかなんだけど、Hoge<T>とするとコレクションになるってことじゃないんだよね? クラスに入れるってどういうこと? class Hoge<string>にしておくと Hoge hoge="文字列しか入らなくなる?";
whereは、ジェネリックの制約。 つまり、Tに適応できる型の一定のルール。 例えば、これは、T型は、Controlクラスを継承したものに限定される。インターフェースでもok。 Controlクラス自身でもok。これの便利なところは、T型に対してControlクラスのメンバーにアクセスできる。 class Hoge<T> where T : Control{ } また、このようにしておけば、Tは、クラスのみに限定される。 class Hoge<T> where T : class { } これは、structな型に限定される。 class Hoge<T> where T : struct{ } こうしておけば、内部でT型のクラスからインスタンスをnewできる。 ただし引数なしのコンストラクタに限られる。 class Hoge<T> where T : class , new() { }
>>404 それは、Hogeクラスの実装によるのでコレクションかどうかは、また別の話。
398のWhereはそっちよwhereじゃないよね
>>404 ならないかな。
そういう要望だったら、引数と初期化子を厳密に適応すれば叶うと思う。
Tは型タイプ
そして
>>403 を見ればわかるとおり涙を表現してる
その証拠にタイプパラメータの命名はTから始まるようになってる
ジェネリックの型制約にオペランドが実装されてるかどうかを持たせたいところだ・・・
412 :
398 :2012/04/30(月) 22:21:53.61
413 :
デフォルトの名無しさん :2012/04/30(月) 22:24:00.28
>>411 オペレータのこと?なら同意
>>404 たとえば、
public class EqualityComparer<T>
where T : IComparable{
public bool Compare(T v1, T v2){
return v1 != null && v1.CompareTo(v2) == 0;
}
}
というようなクラスを宣言すると、
var stringComparer = new EqualityComparer<string>();
って宣言すれば、
stringComparer.Compare(ex1, ex2);
のように呼び出したとき、あたかも
public bool Compare(string v1, string v2){
/* 以下略 */
というメソッドが定義されているかのように、ex1とex2に対して型チェックが行われる。
故に、ex1とex2がそれぞれstring(に暗黙的に変換可能な)型でないと、コンパイルエラーになる。
オペランドっていうか void Method<T>(T t1, T t2, Func<T,T,T> add) { var result = add(t1, t2); ... } 足し算がしたいなら足し算のラムダを一緒に渡せばいい
415 :
397 :2012/04/30(月) 22:25:12.60
うーん。わから〜ん。 Interfaceにnew制約付けれないみたいだし。どうしようかなぁ・・・。
>>413 まあ、いったん、dynamicな変数に入れてやれば、演算も比較もできるので
staticコンストラクタで実行時にT型を検査して演算と比較が可能な型かどうかのチェックを入れて、
実行時例外吐く感じで対処したけど、どうにも釈然としないが今のところ仕方ないか。
417 :
398 :2012/04/30(月) 22:32:46.85
>>413 なんとなくわかった気が
T型で引数設定した場合、そのすべてのメソッドを利用する側が型指定できるってことか
何に使えるのかよくわからないがおもしろいね
Action<T>みたいにメソッドを渡して動作を変えるんじゃなくて
変数で内部動作を変える感じ?かな
>>417 そのAction<T>もジェネリックスでしょ?
419 :
デフォルトの名無しさん :2012/04/30(月) 22:39:35.82
>>414 それ使うところ想像したけど、呼び出し元でadd使えばいいじゃん。
int v1, v2, v3;
v3 = Method(v1, v2, (t1, t2) => t1 + t2);
ってやるくらいなら、素直に
v3 = v1 + v2;
って書くでしょwそれとも何か他にメリットがあるのんか?
>>415 Interfaceのnew制約がなんのことかは分かりかねるが、
Hoge<T> where T : new()
って制約は可能だよ
420 :
デフォルトの名無しさん :2012/04/30(月) 22:40:30.78
>>418 ジェネリクスのクラス(インタフェース)と、ジェネリクスのデリゲートは違うもののように見えるんだろう。
421 :
397 :2012/04/30(月) 22:42:56.99
>>419 レスありがと。本題はそっちじゃないんだ。
とにかく、MefでDLLからクラスを取得したいんだ。
そのためにInterfaceを設定してそのインターフェースを使いまわしてるのに、変換できないと怒られる・・・。
プラグインシステムを作りたいんだよね。
422 :
デフォルトの名無しさん :2012/04/30(月) 22:46:11.01
>>417 何に使えるか、っていうと、たとえばList<T>なんかその恩恵を最大限受けてるんじゃないか?
ArrayListなら、
ArrayList arrayList;
int item;
/* 中略 */
item = (int)arrayList[0];
みたいになるけど、
List<T>なら、
List<int> genericsList;
int item;
/* 中略 */
item = arrayList[0];
のように、キャストが不要になる。
ジェネリクスがないArrayListでは、「何でも格納可能な」という「object」型でリストを保持することしか出来なかったけど、
ジェネリクスであるList<T>なら、Tに型アーギュメントを与えることで、リストが保有するオブジェクトの型を、
一定にすることができるわけだ。
だから凶変とはんぺん
424 :
デフォルトの名無しさん :2012/04/30(月) 22:47:29.44
>>421 interfaceを「使い回している」ってニュアンスに違和感を覚えた。
同じ名前のインターフェースを、本体側とプラグイン側で二重定義してるだけなんじゃない?
425 :
424 :2012/04/30(月) 22:51:12.03
>>421 Main.csproj
public class PluginManager {
[ImportMany(typeof(IPlugin))]
private List<IPlugin> plugins;
/* catalogだの何だのは中略 */
}
PluginInterface.csproj
public interface IPlugin {
/* 中略 */
}
PluginAlpha.csproj
[Export(typeof(IPlugin)]
public class PluginAlpha : IPlugin {
/* 中略 */
}
で、PluginAlphaとMain.csproj、両方の参照設定にPluginInterfaceを追加する。
これでいけない?
426 :
398 :2012/04/30(月) 22:55:12.03
>>422 なるほど、キャストしなくていいのは楽ですね
でも、そのクラスの内部は結構複雑になるんじゃないですか?
int,string,DateTimeなどに対応するようなComparerクラスを作ろうとした場合
if文が多くなると思うんだけど
それとも実装部分は多態性で解決させるのかな?
内部で、引数の型に対応したComparerクラスにやらせるみたいな感じ?
そんな文法的な使い方だけ覚えても何の役にも立たないよ
428 :
デフォルトの名無しさん :2012/04/30(月) 22:58:17.64
>>426 ゆえに、そういうメソッドを作る場合は、where T : IComparable
って縛る。
そうすりゃ、Tは常にIComparableを実装していること、という制約が付くため、
さっきの
public bool Compare(T v1, T v2){
return v1 != null && v1.CompareTo(v2) == 0;
}
みたいに、本来正体不明のT型であるv1オブジェクトに対して、CompareToメソッドが使えたりするわけ。
>>419 別になんでもいいんだけど
たとえば任意の型の平均が作りたい時
T Average<T>(IEnumerable e, Func<T,T,T> add, Func<T,int,T> div)
{
T total = e.First(); int count = 1;
foreach(var item in e.Skip(1)){ total = add(total, item); ++count; }
return div(total, count);
}
あまりいい例じゃないな・・・
まあ計算したい時に使える
431 :
398 :2012/04/30(月) 23:03:21.43
432 :
デフォルトの名無しさん :2012/04/30(月) 23:09:52.47
>>427 最初はそれだけでもいいじゃんか。
文法だけ覚えて「何だかよく分からないけど便利らしい」で終わるか、
きちんと使いこなすかはその後次第だろ。
「よく分かんないけどインタフェースなんていらなくね」
とか言ってるどこかの池沼とは違うんだから。
インタフェース論議には「分かって」言ってる人と「よく分かんないけど」言ってる人がいて、困りもんだが。
433 :
デフォルトの名無しさん :2012/04/30(月) 23:10:43.30
>>430 数値計算系なら、Expression使って組み立てた方が、
見通しよくないか?
434 :
デフォルトの名無しさん :2012/04/30(月) 23:12:21.87
>>430 なる。平均だと確かに伝わりにくいけど、
足し算とかけ算を色々使ってする複雑な計算のジェネリックメソッド、っていうニュアンスなら、
確かにありかもなー。
>>433 Expressionは遅いでしょ
普通にDelegate.CreateDelegateで作ったほうが早いはず
436 :
デフォルトの名無しさん :2012/04/30(月) 23:15:33.87
>>435 そゆこっちゃなくて、たとえば、Average<T>の引数にDelegate渡さなくても、
内部でExpressionで組み立てた方が、外から見たメソッドの使い勝手はよくね?って話。
ま、だったらdynamic使えって話になるだろーけど。
>>436 Expressionで組み立てるのはわかりにくいわ実行速度遅いわで一理なしだと思うけど
まあ基本演算は事前に準備しておいて使うのもアリだろうなあ
438 :
デフォルトの名無しさん :2012/04/30(月) 23:27:50.65
>>437 分かりにくいかな・・・
式木って考え方は、とてもシンプルで分かりやすいものだと思うんだけど
まあ見た目があんまりスッキリしないのと、実行時に組み立ててコンパイルするのに時間かかるのは事実だから、
事前準備しておくにしたって忌避されたいのは事実かもなあ。
>>438 いやコンパイルじゃなくて実行すると遅いんだよExpressionで作ったデリゲートはなぜか
俺のやり方が間違ってるのかもしれないけど
組み立てるコード見ても何のことやらわかりにくいと思うし
CreateDelegateならわかりやすくて実行速度も早いからオススメ
>>432 昔よくあったのが、C/C++の言語的なことばっかりやって
いざアプリ書こうとする、ウィザードが吐くコードの前に圧倒されて
どこに何を書けばいいのかさっぱり・・・
言語的なことは、ある程度覚えたら
ライブラリの使い方なり、使用するOSのシステムコールの使い方を
覚えたほうがよっぽど実用的
441 :
デフォルトの名無しさん :2012/04/30(月) 23:40:11.82
>>440 だからその「ある程度」を今覚えてるんだろ。
>>424-425 できた!!!まじ、できた!!!
肝は共通のインターフェースをソースで持たないことか・・・。
インターフェースの同一性の問題は感じてたけど、手軽さがちょっと減りましたなぁ。まぁいい!
しかし、初めてVC# 3並列で作業したよ。ソリューション理解しないとなー。
さて、念願かなったので次を進めたいと思います。
>>424-425 はほんっと有り難う!!!
余談だけど、何でこれを作ってたかというと、3Dダンジョンゲームの穴掘り機能拡張用だったんだ。アッー!
迷路のコアとXNAの表示周りはすでにできてるから、後はこれだけだったんだ。
夢ひろがりんぐ!!ありがとう!!
プラグイン機構ってC#ないんだぁ
???
448 :
デフォルトの名無しさん :2012/04/30(月) 23:57:16.33
>>442 Type、の仕様を眺めてみることを進めるよ。
名前空間と型名だけでTypeが決まるワケじゃなくて、
ModuleもまたType決定要素の一つなんだよ。
Module+名前空間+型名+αで決まる。
プラグインモジュールと、
本体モジュールの両方で同じ名前空間・同じ型名のクラス(インタフェース)を定義しても、
同じクラス(インタフェース)であるとは言えない。
MEFだけじゃなくて、リフレクションするときなんかも間違えている人がいるから、
そのへんは注意かなあ。
449 :
デフォルトの名無しさん :2012/04/30(月) 23:57:44.77
Moduleじゃねえ。Assemblyか。
MEFって何て読むの? めふ?
おめこ
そっちのExpressionじゃぁねぇよw
ああすまん出来ないんだな基本型の足し算とかのリフレクション呼び出しは だからやりたきゃExpressionでも使うしかないのか
今、WPFの普及率ってどれぐらいなの? WinFormとWPFどっちが多い?
>>443 売りたいとは思うが売ってくれるつてが無い。自分には器量もない・・・。Orz
まー、まだ製作中だからクオリティもまだまだだし。欲しかったらソース上げるけど。
ゲー作版でバザールしようとかとも思ってたし。
>>444 Yes!! PG始めた動機もそうだからね。
>>445 実はよく知らないんだ。C#初心者だから。
>>448 仕様書は読めない人間なのそういう情報はありがたい。
自分の範囲でぐぐって、出てこないことにはマッタク無頓着なんだ。Orz
どうにかしたいと思いつつ・・・。
456 :
デフォルトの名無しさん :2012/05/01(火) 00:17:31.44
457 :
デフォルトの名無しさん :2012/05/01(火) 00:20:35.26
>>457 無頓着でもいんじゃないの。興味持ったときに調べる力を付ければ。
全てのことに興味を抱けって方が無理だし、関係ないことばっかやってると散漫になる。
それに今回の件は、確かに意識しないとなかなか気づかんことだから、しょうがないと思う。
検索しようにも、日本語で該当する情報が少ないしな。MEFなんかは。
>>455 C#初心者のソースなんて誰が欲しがるかよw
>>454 どっちも見たことない
誰もが知ってるような有名なアプリは
大抵C++で書かれてるし。
めふんまふん
俺はそろそろ寝るぜ!
>>457 あんた良い人だな。色々有り難う。
>>458 へっへっへ。
バグは潰したけど、3Dは初心者なんだぜ。
これまでどれだけ挫折してきたか!Orz
と、言うわけでおやすみなさ〜い!ノシ
463 :
デフォルトの名無しさん :2012/05/01(火) 00:30:34.68
>>454 客観的なデータが欲しいなら、検索してみ。
検索しても出てこないんなら、ここで聞くだけ無駄。
>>462 できるの早いな、まだ数ヶ月だろ?
俺はUnityにすることにした
あれはすごい
海外版の@ITみたいなサイトってあるの? 外人は一体どこで情報収集しているのか気になる
外人ならMSDN(英語版)をネイティブレベルで読めるだろうし・・・ 他にも英語ソースの情報は、腐る程あるんじゃ?
467 :
デフォルトの名無しさん :2012/05/01(火) 00:33:54.08
@ITで収拾できる情報なんて高が知れてるだろ・・・ C#だってキーワードだけで検索すりゃあ大抵が英語のページじゃないか。 そういうページたちを検索して収集してるんだろうよ
@ITみたいなぐちゃぐちゃなサイトは海外では作られませんセンス的に
MSDNの油断できないところは 英語サイト自体が間違っててもそれが何年も直されないこと
470 :
デフォルトの名無しさん :2012/05/01(火) 00:41:00.51
グチャグチャかどうかは置いておくとしても、 作りっぱなしの放置状態で、アレで「IT」を名乗ってるんだから、 日本のITの実態をよく表した素晴らしい状態だと思います。
外人は2chをソースにしてるって聞いたよ ソースは2ch
適当にY@IT
473 :
デフォルトの名無しさん :2012/05/01(火) 00:43:48.88
IBindingListViewのFilterって、 DataTableくらいしか実装例をしらんのだけど、 他にList<T>みたいなジェネリックリストに対して 実装してる例というか、実装するのに役立つ情報ってないかな。 BindingList系のインターフェースで、あれだけ唯一難易度高すぎるし、 情報が少なすぎて困っている。
>>473 データバインドとかそこらへんは、あまり情報無くて苦労したなー。
というか未だにほとんどわからん。
それと複雑過ぎる。
>>464 2Dのアフィン変換書いて色々と拡大縮小回転してると目覚めるよ。
自分はベクタのシューティング試作して色々覚えた。
そう、以下の数行が自分を変えたのだ!!これ結構マジな話。
ttp://ideone.com/jxyWV あと。
C#自体は2年くらいかな。XNAは3ヶ月くらいかな。
C++歴はもっと長いし、あと、DXの挫折歴は長いよ!!!Orz
んで、C#の生産性はすごいよ。マジで。
っと。ねるんだった。おやすみなさ〜い。
2年は初心者とはいわないな
ExpressionBlendの文字をみると ネタかと思ってしまう
textBox1.Name = "これはラベルです"; textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; textBox1.ReadOnly = true; もうこれからはラベルに存在意義は無いw
こんな感じで外人に質問したら教えてくれるかな? Where did u gettin What about Tutorial of ur source code on the WEB site
想像を絶するめちゃくちゃさ 何語?
何人に聞くつもりだ?w
483 :
デフォルトの名無しさん :2012/05/01(火) 01:44:25.47
中学生とかだろ。とりあえずそれで聞いてみれば? 通じなかったら相手が何か言ってくれるよ。
if u want tell me. let me know.
485 :
デフォルトの名無しさん :2012/05/01(火) 01:50:06.38
プログラム書くのも苦労しそうな英語力だなw
添削まだですか?
How did u grow up great Programer.tell me What u been reference the sweet Tutorial site. これでどうかな?
我想故我在
プログラミング言語に国境無し!
ものすごく失礼な聴き方になってるのに、気取ってuとかやめれ
491 :
デフォルトの名無しさん :2012/05/01(火) 11:38:17.85
英語出来ないくせに、ブロークンイングリッシュ使おうとする阿呆がいると聞いて
>>492 馬鹿が面白いことを言おうとか思わない方が身のためだと思うw
String型と同じように利用できる独自の型は作れないですか? CustomString cs=""; メソッドの引数がstringなんだけど、URLだったり、名前だったり様々なので 間違った文字列が入力されないようにしたいんですが
イミフ
496 :
デフォルトの名無しさん :2012/05/01(火) 13:36:04.62
>>494 間違った文字列が入力されたら例外じゃ遅くなるし、実装としては代入してエラーならfalseが返るメソッドってのが実用的だよね
そうすると普通のクラスで実装した方が現実的だと思うよ
戻り値があるんですが、nullでもいいですか?
ええよぉ〜
500 :
デフォルトの名無しさん :2012/05/01(火) 13:48:45.89
>>464 Validating/Validatedでおk、ってなりそうだな。
CUIなら別だけど。
>>497 これで正確な答えを出せる奴がいるのんかw
501 :
デフォルトの名無しさん :2012/05/01(火) 13:50:53.30
>>494 enum StringValidationType {
// 割愛
}
interface IValidationString {
bool IsValid { get; }
StringValidationType { get; set; }
string Value { get; set; }
}
このインターフェースを実装するイメージでおk
ObservableCollection<T>の存在を今日はじめて知ったよ 今まで自分でこつこつイベント実装してたのが馬鹿らしい C#初心者の皆さんは標準ライブラリをどこまで網羅しているんですか
そんなもの網羅するより検索が上手くなった方が100倍いい
この何かとググレなんていうけど、実際に仕事でやってる奴からすれば お客様のもとでデバッグさせて頂いているときなんて、かんたんにインターネッツに接続できないんだぞ
IT土方の話はしていない お前らは土に埋まって死んでろ
>お客様のもとでデバッグさせて頂いているときなんて、かんたんにインターネッツに接続できないんだぞ だからなんだとしか言いようがない。 だから何なんだ。
だから検索ばっかりやってても、書けるようにはならないってこと みなまで言わなきゃわからんか・・・
かんたんにインターネッツに接続できないけど2chで質問はできるということを言いたいのでは?
そうやっていつまでも自分で答えを見つけられるようにはならんのですねえ 他人を利用して書けるようになる 実に素晴らしいですね
みながインターネットにアクセスできない職場で働いてるわけではないでよ。 そんな極一部を考慮する必要性はない。
少なくともこんなスレで質問するよりはマシ
嫌なら転職しろよ。 いつお前にそんな仕事しろと頼んだ。 自分が選んだ境遇を関係ない人間に対しての言い訳に使うな。
昔デルファイスレに質問するだけで作り上げたツールをフリーソフトで公開して大人気になったことがあるw
ちょっと高度になるとどーせお前ら答えられないもんな 聞くだけ無駄過ぎる
昨日の釣りは見事だった
Bitmapオブジェクトに展開せずに画像を読み込む方法はありませんか? 画像を大量(1万枚/日)に処理したいのですが、Bitmapを使うとGCがすごい勢いで動いてしまいます
>>510 お客様のもとでっていってんじゃん
部外者に接続させてくれるような会社はまずないよ > 学生さんw
語彙の乏しい奴ほど学生認定したがる。これ豆な。
まぁ、検索して他人の書いたコードを紹介するぐらいしかできない奴なんて学生以下だがなw
>>516 無い
嘘じゃないぞ
本当にそれ以外の方法は無い
libjpegとかgiflibとかlibpngで読み込むしかない
学生笑ってられるなら幸せだな
まあ土方なんて学生未満だよね 学生はまだ新卒カードが切れるからね
>>520 どれも検索したらC言語みたいで難しそうですね。
とりあえずやってみます。
インターレースpng以外はそんなに難しくない…はず 最近同じ質問多いような気がする
画像処理は初心者向けプログラムとしては定番。
1万枚/日って言うほど大量じゃない気がするが、どうか。
526 :
デフォルトの名無しさん :2012/05/01(火) 21:23:44.91
どうでもいいわ
一枚一秒で三時間ちょいか。余程画像がでかいのか?
GCがガンガン動くって言うくらいだから10スレッドくらい起動してやってんじゃないか。
でっていう。
/ニYニヽ /( ゚ )( ゚ )ヽ /::::⌒`´⌒::::\ | ,-)___(-、| | l |-┬-| l | \ `ー'´ /
ほ〜らクソスレだよ〜
触るな
超スクープ
群馬県警によると、自動車運転過失致死傷容疑で逮捕された河野化山(こうの・かざん)容疑者(43)は
元中国籍で93年12月に来日、94年に日本国籍を取得したと供述している。通常の日常会話はできるが、
難しい日本語は理解できないといい、取り調べは中国語通訳を通じて行っている。中国残留孤児の家族という情報もある。
住民基本台帳上の自宅は千葉市中央区の住宅街にある。3階建ての1、2階は中国料理店。だが県警に
よると、現在の居住実態は不明。近所の女性は「あいさつをしてくれておとなしい人だった」と話す。
この女性らによると、以前は妻が料理店を切り盛りしていた。だが現在は店を賃貸しているとみられるという。
同店と取引がある千葉県内の男性によると、河野容疑者は自身の職業を「バスを所有し旅行会社も経営
しているオーナー」と説明していた。この男性は事故後初めて「バスの運転手」との報道に接し、驚いたという。
http://mainichi.jp/select/news/20120502k0000m040075000c.html
まとめ
【ツアー会社】
大阪府豊中市の旅行代理店「ハーヴェストホールディングス」は創価企業。
乗務員の1日の運転時間が基準を超えていたなど行政指導を過去に受けているブラック企業。
http://long.2chan.tv/jlab-long/s/long1335787424046.jpg (創価三色旗)
【バス会社】
千葉県印西市のバス会社「陸援隊」は過去2度も白バス営業で摘発されたことがある。
この会社は中国人ツアー向けで繁盛してた。震災で中国人ツアー客の仕事が8割減り、急遽夜行バスに進出。
【運転手】
バスの運転手も日本語が不自由な元中国人(1994年に日本国籍を取得)。
本業は中華料理屋経営(あるいは内装業?)。
名前が変だと思ったら帰化人か まあでも多分反日だから乗客殺したったとか無いだろ
538 :
デフォルトの名無しさん :2012/05/01(火) 23:47:25.91
ファイル名で"c:\test\test.txt"みたいな時に 前後の"も文字列に含めたいときはどう表現すればいいのですか?
var res = string.Format( @""{0}"", "c:\ggrks\\sine.txt" );
@"c:\test\test.txt"
@"""c:\test\test.txt""";
@を使わないなら
"\"c:\\test\\test.txt\"";
>>540 >>541 カスはすっこんでろ
C#なんでもできるけど、特化と比べると物足りない 非常に中途半端
用途が決まってるならそれに特化した物の方が便利でないとおかしいだろ。
なんだ? RPGツクールとC#を比べて、C#だとRPG作りにくいと言ってるようなものか?
「東海」署名殺到でホワイトハウスのHPダウン 米が韓国からのアクセス禁止に
http://news.nicovideo.jp/watch/nw252021 4月下旬、韓国のネットユーザーが、米国のホワイトハウスHPに日本海から「東海」に表記を変更するよう求めて大量アクセスをし、
サーバーをダウンさせた問題で、米国側が一時韓国のアクセスを遮断していたことが分かった。
騒動は、在米韓国人が組織する「バージニア韓国人会」が3月22日、ホワイトハウスHPに日本海から東海への表記変更を求める
請願書を寄せたことがきっかけとなった。在米韓国人らは、国内外の韓国人にこの請願書に署名するよう呼びかけ、
4月4日までに2万5000人以上の署名が集まった。
しかし、4月13日にミシガン州の「ナリヒラ」と称する人物が、韓国の主張に反論する請願書を掲載。
そのため韓国では署名活動に火が付き、韓国の各メディアも記事を通じて署名を誘導するなどしたことから、
ホワイトハウスHPには前代未聞のアクセスが殺到することになった。
産経新聞の報道によると、サーバーは4月20日にダウン。
ホワイトハウスが書き込みの発信元のIPアドレスを調べたところ、大半が韓国だったことから一時韓国からのアクセスを禁止したという。
そういうことだが何か? 今C#やっているやついるのか? サンプルもフリーソフトも少ないし みんなどこいったのよ
できましたーと思って間に文字列の変数挟んだら " + filename + "ってなってしまいました
WinAPIのRegCreateKeyExを使いたいのですが、エラー6(ハンドルが無効)が帰ってきます。 コードですが以下のように定義しています。どうすれば正常に動作できるのでしょうか・・・? RegOpenKeyExとRegQueryValueExとRegCloseKeyはうまく動いたのですが・・・ [DllImport("advapi32.dll", EntryPoint = "RegCreateKeyExW")] public static extern uint RegCreateKeyEx (IntPtr hKey, string lpSubKey, int Reserved, string lpClass, uint dwOptions, uint samDesired, ref IntPtr lpSecurityAttributes, out IntPtr phkResult, ref int lpdwDisposition); IntPtr hKey = IntPtr.Zero; int disposition = 0; IntPtr sec = IntPtr.Zero; RegCreateKeyEx( new IntPtr(unchecked((int)0x80000002)), _registrySubName, 0, null, 0x00000000, 0x0100 | 0xF003F, ref sec, out hKey, ref disposition)
format c:
2005年当時はケータイも貧弱でPC使用者はあくまでの一部勢力でしかなく ネットの影響力などテレビの数分の1だった しかし昨今のスマホ普及はネット住民を過去最大のペースで激増させている 基本的にスマホはPCでありネット環境なので、 スマホ普及はそのまんまネット人口を増やし既存メディアを削いでいく ガラケーもPCといえなくもないがインタフェースが貧弱すぎた 新聞発行部数は4000万部、 テレビHUTが60%で7000-8000万程度、 ニコニコ動画の会員は現在2600万人だが、 数年後にはスマホ台数がテレビ視聴人口を超えて国内最大メディアに躍り出る 既存メディアがネットに食いつくされる時代はもうすぐそこに来ている
C#スレで何を言ってるんだw
50代くらいの人が最近気づいて書いた文章っぽい
ニコニコ会員数ってどうやって計測したんだろうな 今まで入会した人すべてだとしたら、実際いるのは10万人程度だろう
さすがに株主総会で人数言ってるだろ そっからじゃねえの
人数とか言ってるけど、正確には、アカウント登録数だしなw
ニコ生番組数が同時刻に5000ぐらいある それを見ている奴はせいぜい平均5人程度 ニコ生以外のネタ動画も見ているのはそいつらだろうしな 規制が厳しくなってからはほとんどみなくなったな たまにゲーム実況見るぐらいだ
OpenFileDialogを使用して取得したファイル名をTextBoxに表示させて そのTextBoxはデータバインディングで txtBox1.DataBindings.Add(new Binding("Text", data , "FileName")); としているんだけど、このままだとデータが連動せずに data.FileNameはnullになってしまうんだけど、なんでだろう? txtBox1.Textにはちゃんとデータは入っている で、一度TextBoxをクリックするとちゃんとデータが連動して data.FileNameにもデータが入るんだけど、TextBoxをクリック せずにちゃんとデータを連動させるにはどうしたらいい?
>>558 PropatyChanged()はプロパティに追加してる?
いい加減な回答すんなよ PropatyChangedってなんだよ まじうぜー
>>559 PropatyChangedがわかりません
検索してみると、ほとんどひっかからないのですが
フォーカスを一度TextBoxに移すとちゃんとデータバインディングされるのは
一体どういう理屈なのかよくわからない
Textに値を代入しただけではデータバインディングされない?
DataBindings.AddにDataSourceUpdateMode.OnPropertyChangedを追加 TextBoxは既定でOnValidationになってる
以上のことが書いてあるサイトを探してください。
データバインディングの仕組みは、INotifyPropertyChangedというインターフェースが 実装されていること。 実装に必要なメンバーは、基本的にこれだけ。 public event PropertyChangedEventHandler PropertyChanged; 一般的なコントロールは、デフォルトで実装されてるので敢えて実装する必要は、ない↑ 内部クラスからPropertyChangedを発火させることでプロパティの変更を通知することができる。 if( PropertyChanged != null ) PropertyChanged( this , new PropertyChangedEventArgs( propertyName ) ); コントロールをデータバインディングするときは、だいたいこんな感じ textbox1.DataBindings.Add( "Text" , dataSource , "TextSource", true , DataSourceUpdateMode.OnPropertyChanged ); dataSourceは、データソースとなるオブジェクト。 これは、textbox1.TextをdataSource.TextSourceにバインドさせる。更新のタイミングは、プロパティが変更されたとき。
>>563-565 OnPropertyChangedを設定することで出来ました
ありがとうございました
568 :
デフォルトの名無しさん :2012/05/02(水) 18:16:20.18
dataGridView1 に配列データを格納させるプログラムで苦戦してます。 以下のコードで問題ないと思ったのですが、なぜか最終行しかデータが入力されません。 最初のforループ内の行追加は問題なく行われてます。なにか忘れているんでしょうか。 識者の方、どうかご助力願います。 ****以下コード**** var Arr = Rng; //配列データ int RCount = Rng.Rows.Count; //データ数 string v; //格納用文字列データ for (int r = 1; r <= RCount; r++) { this.dataGridView1.Rows.Add(); //行追加 for (int c = 1; c <= 12; c++) { v =Arr[r, c].value == null ? null : Arr[r, c].value.ToString(); //データ入力 this.dataGridView1.Rows[r].Cells[c-1].Value = v; } };
TVタレントから政治家への転身 外国人には実に奇妙との声
TVタレントから政治家への転身 外国人には実に奇妙との声- NEWSポストセブン(2012年5月2日16時01分)
現在の日本の改革者の象徴ともいえる橋下徹・大阪市長だが、この「橋下人気」を海外の識者はどう分析するのか。
30年以上にわたり日本政治、日本と国際社会の関係を取材し続けてきたオランダ人ジャーナリストの
カレル・ヴァン・ウォルフレン氏(アムステルダム大学名誉教授)が読み解く。
* * *
既存の政治に対して有権者の不満が高まった時、人々は特定の政治家もしくは政治グループに対し、そのはけ口を求めがちだ。
そこで台頭するのが「ポピュリズム」である。現在、橋下徹という政治家が、
大阪のみならず日本全国で期待を集めているのも、まさにポピュリズムの典型だ。
私はポピュリズムを全面否定はしない。有権者が政治に不満を抱くのは、将来に不安が大きいからだ。
ポピュリズムに乗って登場する政治家にも、その不安と真摯に向き合い、解決策を見つけようと努力する者がいる。
だが、日本では哲学や理念が感じられない「偽りのポピュリズム(False Populism)」が広がりやすい。
外国人の目に映る日本政治は、実に奇妙なものだ。テレビを通じて有名になった“タレント”たちが、
いとも簡単に政治家へと転身していく。こんなことは欧米ではまずない。一方で、政治家自身もテレビを利用し、
自らの知名度を高めようとする。テレビは「偽りのポピュリズム」を増幅し、人々を間違った方向へと導く元凶である。
http://www.news-postseven.com/archives/20120502_105588.html
>>568 試して欲しかったら貼り付けるだけで動くコード貼れよ
わざわざデータ用意すると思うのか
当てずっぽうで回答されて大幅に遠回りになるだけだぞ
つか添え字を1から使ってるからだろ 動かすまでもない
添え字ってwwwwwwwwwwwwwwwwwwwwwwwwwww
AllowUserToAddRowsをfalseにすればどういうことか分かると思うよ
576 :
568 :2012/05/02(水) 19:11:46.88
すみません。長くなりますが改めて、以下コードです。 指定したエクセルファイルからデータを配列として取得しています。 Form1にはdataGridView1のみが存在し、これにはテキスト型のカラムを12設定しています。 using Excel = Microsoft.Office.Interop.Excel; //Excel をインポート 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(); //対象ファイルの指定 string FName = "D:\\test\\test.xls"; string ShName = "testdata"; Excel._Application oXls; //Excel オブジェクト Excel.Workbook oWBook; //Workbook オブジェクト Excel.Worksheet oSheet; //Worksheet オブジェクト
577 :
568 :2012/05/02(水) 19:12:06.07
oXls = new Excel.Application(); //oXls.Visible = true; //Excel ウインドウ表示 //Workbookオブジェクトの取得 (Excelファイルオープン) oWBook = (Excel.Workbook)(oXls.Workbooks.Open( FName, // オープンするExcelファイル名 Type.Missing, // (省略可能)UpdateLinks (0 / 1 / 2 / 3) Type.Missing, // (省略可能)ReadOnly (True / False ) Type.Missing, // (省略可能)Format // 1:タブ / 2:カンマ (,) / 3:スペース / 4:セミコロン (;) // 5:なし / 6:引数 Delimiterで指定された文字 Type.Missing, // (省略可能)Password Type.Missing, // (省略可能)WriteResPassword Type.Missing, // (省略可能)IgnoreReadOnlyRecommended Type.Missing, // (省略可能)Origin Type.Missing, // (省略可能)Delimiter Type.Missing, // (省略可能)Editable Type.Missing, // (省略可能)Notify Type.Missing, // (省略可能)Converter Type.Missing, // (省略可能)AddToMru Type.Missing, // (省略可能)Local Type.Missing // (省略可能)CorruptLoad )); //指定したシート名のインデックス取得メソッドにより、 //インデックスを指定してシート取得 oSheet = (Excel.Worksheet)oWBook.Sheets[getSheetIndex(ShName,oWBook.Sheets)];
578 :
568 :2012/05/02(水) 19:12:39.28
//予定データシートのデータ領域を配列取得 Excel.Range sRng = (Excel.Range)oSheet.get_Range("L2"); Excel.Range eRng = (Excel.Range)oSheet.get_Range("A1").get_End(Excel.XlDirection.xlDown); Excel.Range Rng = oSheet.get_Range(sRng, eRng); var Arr = Rng; //dataGridView に配列格納 int RCount = Rng.Rows.Count; string strA = Arr[RCount, 2].value == null ? null: Arr[RCount, 2].value.ToString(); dataGridView1.Rows.Clear(); string v; for (int r = 1; r <= RCount; r++) { this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[r].Cells[12 - 1].Value = "Test"; for (int c = 1; c <= 12; c++) { v = Arr[r, c].value == null ? null : Arr[r, c].value.ToString(); //this.dataGridView1.Rows[r].Cells[c-1].Value = v; } };
579 :
568 :2012/05/02(水) 19:13:43.17
//Excel 終了 oWBook.Close(Type.Missing, Type.Missing, Type.Missing); oXls.Quit(); //セルの自動調整 this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells; } //指定したワークシート名のインデックスを返すメソッド private int getSheetIndex(string ShName, Excel.Sheets shs) { int i = 0; foreach (Excel.Worksheet sh in shs) { if (ShName == sh.Name) return i + 1; i += 1; } return 0; } } }
580 :
デフォルトの名無しさん :2012/05/02(水) 19:14:17.27
リロードしろよ
582 :
568 :2012/05/02(水) 19:22:09.09
>>572 もう少し詳しく教えてもらえますか?
ヘッダーを含んだ配列データの性質上、1から始めた方がよいと思ったのですが、
よろしくないのでしょうか?
>>575 AllowUserToAddRowsにしたら、インデックスが範囲を超えています、というエラーが出ました
すみません。msdnを探ってみたのですが、どういうことなのかまだちょっと内容がよく呑み込めてません。
ちなみにデータのバインディングはしていません。
>>581 すみません。うっかりしてました。
元の配列とデータグリッドは区別して考えろ データグリッドはお前の配列がヘッダを含んでるかどうかなんて知ったこっちやない
DataGridViewのRow番号は0から始まるんですよ そう難しい話ではない
585 :
デフォルトの名無しさん :2012/05/02(水) 19:27:42.93
for (int r = 0; r < RCount; r++) { this.dataGridView1.Rows.Add(); for (int c = 0; c < 12; c++) { v = Arr[r+1, c+1].value == null ? null : Arr[r+1, c+1].value.ToString(); this.dataGridView1.Rows[r].Cells[c].Value = v; } }; これで満足か。
てきとーな、回答だなw
587 :
デフォルトの名無しさん :2012/05/02(水) 19:35:28.05
588 :
忍法帖【Lv=2,xxxP】 :2012/05/02(水) 19:42:22.17
適当=ふさわしい
591 :
568 :2012/05/02(水) 20:25:05.16
>>583 >>584 >>585 ありがとうございました。頂いたアドバイスをもとにコードを直したら、うまく表示できました。
すごく助かりました。
DataGridView はこれからも使いそうなコントロールなので、もっと勉強します。
>>590 まさに私にとって役立ちそうな情報ありがとうございます。
調べてみます。
いいよお礼なんて わからない事があったらまた質問しに来なさい
韓国 「イギリスは日本の味方だということが分かった」 世界が「日本海」単独表記を維持 国際水路機関、韓国側の反応は?―「韓国海にしてほしい」 韓国はこれまで加盟国に「東海」呼称の正当性を訴えるなど、積極的な活動を展開。韓国国民もインターネットを通じて さまざまな活動を繰り広げ、最近では米政府のHPに請願書を送ったりもしていた。 日本海」の単独呼称が維持されることについて、韓国のインターネット上はどのような反応を示しているのだろうか。 「なぜ英国は韓国の見方をしないんだ」 「もう面倒だから日本海以外の名前にしよう」 「韓国海とか大韓民国海が良いと思う」 getnews.jp/archives/198939
韓国の紙幣に韓国海が登場
http://imgnews.naver.com/image/032/2012/05/02/l_2012050201000282300018161_0_20120502165204.jpg ,,fヽy
rヽ__)`~ i'" ・ ゚
* / ,,ノ *
. <'" ,ィ'~
` >∧__∧ヽ ウェー、ハッハッハ !!!
・ <ヽ`∀´>ヽ 世界中が ウリナラ から
~ヽ, ヽ, 孤立してるニダ !!!! *
. ・ < } 。
* ) 〉 ゚
〈 _,,,/
゚ ´‐'"~ . ・
。 *
_,..-‐''''""~´ ̄ ̄ ̄ ̄~"'''‐-,.、
. ,.-‐''" ──‐‐''",.、.:.:.:.:.:.:.:\、.:.:.:.:.:.:.:~"'‐-、
,.‐''"''''""~´::::::::::::::::::::::\\:::::::::::::::"'''''\"''--、.:.:.゙''‐.、
,.‐'":::::::::::::::::::::::::::::::::::::::::::::::::゙''‐、''l:::::__,....-‐'''" ''.:.:.:::゙'ヽ、
,.‐'"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~"‐--‐‐, ''.:.:.:. \
/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/" .:.:.:. ヽ、
,."::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/ .ヽ
595 :
デフォルトの名無しさん :2012/05/02(水) 22:09:48.61
最近のコピペの中では一番ワラタ
へー、日本は普段使うのは1万までなのに韓国は10万なんてあるんだw
597 :
デフォルトの名無しさん :2012/05/03(木) 01:21:03.36
貨幣価値が・・ほら・・・
598 :
デフォルトの名無しさん :2012/05/03(木) 01:33:41.70
MEFで、プラグインをバージョン対応したい場合、どういう構造にすればいいだろうか。 普通に展開すると、アセンブリのバージョンが違うインタフェースは読み込めないけど、 読み込みだけはできるようにして、バージョンが古いからこのプラグインはDisable、みたいな一覧を表示したい。 プラグイン毎にWebサイトへのリンクを吐かせて、一覧にそのリンクを表示しておく、みたいな対応が出来たらうれしいんだけど、 実装方法が全く思いつかない。 PluginCore.dll + interface IPlugin // プラグインの共通インタフェース。バージョンにより変化する可能性がある。 PluginMeta.dll + interface IPluginMetadata // プラグインのメタ情報(開発されたPluginCode.dllのバージョン、作者、プラグイン名、WebサイトURLなど みたいな感じにして、GetExports()でメタ情報だけ受け取ろうと思ったけど、 どっちみちIPluginのTypeが、アセンブリのバージョン違いで一致しないから、 GetExportsに乗ってくれなくて表示できないかTypeLoadException起こすんだよね・・・
あんまりいい方法じゃないけど、 インターフェースのバージョン全部をホストが一応持ってる。っていうのしか思いつかない。 じゃないと読み込めなくね?
600 :
デフォルトの名無しさん :2012/05/03(木) 01:56:45.88
>>599 やっぱそうなるか・・・
ある意味邪道にして正攻法だよな。
それ以外の方法が思いつく人がいれば、出して欲しいだけども・・・
iniファイルでdll管理
アセンブリバージョンは固定でファイルバージョンだけ上げる
void IEnamerable<string> Hoge() { var str=""; bool result=pakeratta(str); if(result) yield return str; } これ普通「値を返さない」とエラーが出そうなもんだけどそうじゃないんですね これやって何か問題あったりしますか?
うわあ if(result) yield return str; else //ここの値の設定が完全に無視されてるorz
よくわかりませんが、result == falseになってるのでは? ちなみにyield使ったIEnamerable<T>は、値を返す必要はない。 空のIEnamerableが返されるだけ。
falseの時も処理して欲しかったんです ツリー構造を記録したtextを読み込ませたいんだけど イテレーターを使った再起表現が難しすぎる IEnumerable<Folder> folders; IEnumerable<SubFolder> SubFolders; folders.SubFolders;//こういう構造 textはこういう内容 folder名 ..subfolder名 folder名 ..subfolder名 ..subfolder名 void Main() { folders=Hoge(text); } IEnamerable<string> Hoge(string text) { //StringReaderで一行づつ読んでやろうとしたけど、 どう考えても再起表現に使えないとわかり悩んでます }
何悩んでるのかさっぱり
608 :
デフォルトの名無しさん :2012/05/03(木) 08:34:56.03
>>606 再帰を使いたいのならIEnamerable<string>じゃなくて、普通にList<string>でも返せばいいだろ
foreachなりLinqから使うとしても、使い勝手は大して変わらない
>>608 内容が変更されない場合は書き込めないようにIEnumerableを使ったほうがいいとのことなので
それに習った次第です
まず列挙のイデオムを列挙以外に使うなよ邪道な…
612 :
デフォルトの名無しさん :2012/05/03(木) 08:39:17.25
string返すだけじゃフォルダなのかサブフォルダなのか分からんと思うけど大丈夫なのか?
内容が変更されない場合に使うべきなのはReadOnlyCollectionだろ… 誰だそれ教えた奴 C#の#を頭に突き刺して死ぬべき
>データ列に対して、前から順に1要素ずつ読む操作だけしかしないことが多いです。 > そういう場合、List<T> クラスや配列ではなく、IEnumerable<T> インターフェイスを使うようにしましょう。 どこにもそんなこと書いてないように見える
616 :
606 :2012/05/03(木) 08:43:56.54
yield returnを使った場合実際のコードは見た目通りになってないからな 見た目で判断してはいかん
618 :
606 :2012/05/03(木) 08:48:08.59
>>615 どう違うんでしょうか?読み取り専用というふうなニュアンスに思えるんですが
string返すんじゃなくて、一旦、構造体にでも入れて フォルダかファイルかサブフォルダかわかるようにしとけば良いんじゃ?
620 :
デフォルトの名無しさん :2012/05/03(木) 08:53:19.76
>>614 List<T>でもIEnumerable<T>でもどちらでも良い場合は、IEnumerable<T>を使えってだけで
List<T>を返した方が良い場合も当然ある
もし再帰が必要ならList<T>返せば良い
読み取るだけなら、IEnumerable<T>で良い。 追加・削除が必要ならIList<T>を返す。
あとインデクサ使いたい場合、何度も読み取る場合もイテレータじゃ駄目 正確にはyield returnで生成したイテレータじゃ駄目 Resetをサポートしないから
いやそんな抽象論はどうでもいいんだよ 今回の場合はyield return使う必要あんのかって話で 別に return (IEnumerable<Folder>)folders; としてもいいだろ
データソースがファイルから読み取ったデータだとすると、 yieldなり使って、IEnumerable<T>で返しておいて、 必要なら.ToList()とか.ToArray()すれば良い。
//ここが実行されないのでサブフォルダーがnullのまま ってあるけどさ yield returnは値が返された時点で処理をいったん中断するから foreachなんかでFoldersを処理するとき、そのFolderのSubFoldersがまだ処理されてないだけじゃないの
626 :
606 :2012/05/03(木) 09:08:30.34
>>621 >>609 は最初に一回データを初期化するときに処理するだけで
その後このクラスを利用する場合は
public IEnumerable<SubFolder> GetSubFolders(string folderName)
こういう感じで読み取れるようにしたいんです
>>619 Folderクラスで返しています
>>624 ちょっと気になるんですが、イテレーターを使うと
Foldersを利用するたびにファイルからtextを読み込んだりはしませんよね?
(逆にファイルが更新されたら反映されるから便利?)
あと、質問の内容はイテレーターを使うかどうかじゃなくて
else以降が実行されないためにフォルダ構造を作れないことです
フォルダ構造を作って返すにはどうすればいいでしょうか?
>>626 おたくが尋ねたいのがイテレータを使うかどうかじゃないにしても
イテレータを使ってることでおたくが尋ねたい問題が発生してるんだから仕方ない
628 :
606 :2012/05/03(木) 09:15:18.87
>>625 テキストの一行目がフォルダの場合、一旦返却されるから
mainメソッドでforeachで書きだしたとき、subfoldersがnullのままってことですね
>>627 イテレータだと無理ということなんでしょうか?
だから普通にList<Folder>を返すように書けと 別に戻り値の型は変更しなくていいから
>>628 書き方による
SubFoldersが処理する前にyield returnを呼ぶ構造になっているのが問題なわけだから
SubFoldersを処理してからyield returnを呼べばいい話だ
631 :
606 :2012/05/03(木) 09:19:44.35
>>629 1行目と2行目が逆のことを言っているようなんですが
632 :
606 :2012/05/03(木) 09:21:37.31
>>630 そう思ったのですが、そのやり方がわからないので悩んでいるんです
sr.ReadLine()をすると次の行を読み込んでしまうので
次がフォルダ文字列の場合、その時点で繰り返し失敗します
解決策まとめ
1・Folderに所属するSubFoldersを読み取ってからFolderをyield returnする
2・yield returnを使用せず、List<Folder>に構成をすべて格納してからreturnする
>>631 List<T>はIEnumerable<T>を実装してるから逆でもなんでもないよ
>>632 フォルダの行を読み込んだときに、1個前に処理したフォルダを返せばいいだけだ
最初と最後は特別扱いする
このくらいは10秒で思いつけ
どうでも良い時に思いついて肝心な時に思いつかないのは、デフォだ。
噛み砕いた方がいいレベルのような気がするので解説する フォルダをf、サブフォルダをsで示す フォルダのリストが ffssfs と並んでいたとして、直前に処理していたフォルダをpとし、pの初期値はnullとする 1つ目のfを処理する。この時はpがnullなのでyield returnしない。1つ目のfを処理したらpに格納する 2つ目のfを処理する。この時はpが1つ目のfなのでyield returnする。2つ目のfを処理したらpに格納する 3つ目のsを処理する。pの子供に格納する。 4つ目のsを処理する。pの子供に格納する。 5つ目のfを処理する。この時はpが2つ目のfなのでyield returnする。5つ目のfを処理したらpに格納する 6つ目のsを処理する。pの子供に格納する。 ここでループを抜ける pに5つ目のfが残っているのでyield returnする
637 :
606 :2012/05/03(木) 09:38:45.04
>>633 1はやり方がわかりません
2の場合,反復子は値を返すことは出来ません。yield returnで返して下さいとなります
>>636 >3つ目のsを処理する。pの子供に格納する。
サブフォルダもIEnumerableなのでできないです
IEnumerable<Folder> GetFolders(string text) var subFolders = new List<SubFolder>(); } 提示されたコードではサブフォルダはListになっているように見えますが 幻覚か何かですかね
よく分かってもいないのに調子こいてイテレータ何か使うからこうなるんだという良い例 くだらんポリシーに縛られず初めからListか何かで書き直してれば既に話は終わってコーヒーブレイクしてたよな
面倒くさくなったからそろそろ止めとくわ 楽な方法が他にあるのに、なんでわざわざポリシーで苦行を選んだ奴のフォローしてんだって話だよね
641 :
606 :2012/05/03(木) 09:51:36.23
>>638 あれは試行錯誤中のもので一度に代入する場合のものです
class Folder
{
public string Name;
public Folder() { }
public Folder(string name)
{
this.Name = name;
}
public IEnumerable<SubFolder> SubFolders;
}
>>606 IEnumerable<Folder> folders;
void Main()
{
folders=Hoge(text);
}
最終的にはこのようにしたいです
>>639 イテレータの学習のためにあえて使っていますし
読み取りだけのコレクションの場合はこの方がいいとのことなので
VB使い「yield?ふざけんな!VB.NETには、yieldなんて無いんだぞ。」
643 :
636 :2012/05/03(木) 09:53:44.43
じゃあ死ぬまで試行錯誤しててくれ。 俺もさすがにパスだわw
644 :
デフォルトの名無しさん :2012/05/03(木) 09:57:42.78
>>641 イテレーターの動作をちゃんと勉強すれば、この課題では使っちゃ行けないことが理解出来ると思うよ
イテレーターはコレクションを作るんじゃなくて呼び出されたタイミングで一回分のデータを作ってyieldで一端動作を停止する
で、もう一度呼び出されると次のyieldまで実行って動作を繰り返す
だからフォルダをyieldで返したタイミングではサブフォルダは絶対作られません
yieldにしろ、イテレータにしろ、何処で使うべきかを 考慮せずにただ学習のためってなら何れ転ける。
終わりがないのが終わり それが黄金週間
647 :
606 :2012/05/03(木) 10:04:51.64
>>644 再帰処理と最初に言ったのはまさにそこで
イテレータからサブフォルダを作成するようのイテレータを呼び出せば
コレクションを作るということにはならないと思ったからです
ただ難しすぎて出来なかったので、知恵を借りようかと思ったわけです
>>645 どういう場面でないを使うかが最初からわかればいいんですが
今は学習中です
よろしければ、イテレータではできない理由を教えて下さい
648 :
デフォルトの名無しさん :2012/05/03(木) 10:11:15.33
>>647 だから636さんの書いた通りに作ればイテレーターでも作れるよ
でも、それが理解出来ずに作れないのなら無理せずにList<T>使ってくれ
ここまで誰もできないと言ってないんだけど 適切でないと言ってる人はちらほらいるけどね 基本的に迷うような使い方は適切でないんだよ あなたみたいにね
650 :
606 :2012/05/03(木) 10:14:24.98
>>648 サブフォルダもIEnumerableなので、1回のループごとに
1つの要素を追加していくのは無理じゃないのかなと思ったのですが
できるようですので教えていただけないでしょうか?
これは人によって笑いで腹が痛くなるか不快で頭痛がしてくるか分かれるな
652 :
606 :2012/05/03(木) 10:16:37.86
>>649 そうでしょうか?
別にListを作るほうが無駄であると、さっきのサイトでも書いてありましたので
読み取り専用で無駄にメモリを消費させないためにイテレータで書くのは適切かと思ったのですが
そこはどうなんでしょうか?
余談だけど、 var sr = new StringReader(text); こうしてStream作ったは、良いけど、Disposeしてないな。 まあ、文字列がデータソースだし特に問題ないだろうけど、ファイル・ネットワークから読み取る場合、 必ず閉じる必要がある。これを簡単にするための構文が using( var sr = new StringReader(text) ){ // } こんなふうにusingブロックで囲むと抜けたときに必ずDisposeメソッドが呼ばれる。(極々一部例外あり)
>>652 無駄になるメモリって何キロバイトだ?具体的にいってみろ
プログラム起動しただけで何キロバイトメモリを消費している?確認してみろ
程度を考えずに無駄無駄言うのならあんたの学習がよほど無駄です。
IEnumerable<Folder> GetFolders(string text)メソッド読んでみたけど、 3行目と4行目で必要の無いnewしてるほうが無駄だな。 そこは、ローカル変数の宣言だけを行うべきで必要な時にnewしたほうが良い。 ちなみにAsEnumerable使ってる理由は?
それとyieldで作成したイテレータはResetして再利用できないので、 毎回インスタンスを作成することになる。 何回も呼び出した上で効率を考えるなら、1度読み取ってリストにしておく方が良いに決まっている。
何分無駄にしているのやら…。
目的と手段が逆転してるよねw
661 :
606 :2012/05/03(木) 10:48:57.68
>>653 ありがとうございます。忘れていました。
>>654 解りやすく問題点を指摘してもらえるように書き換えただけで
実際は画像ファイルや動画ファイルからの読み取りにも使う汎用的なクラスです
例ではファイルパスしか取得していないですが、これで実ファイルの読み取りもしようと思っています
>>656 あのコードの前にif文外からyield returnを使用してコンパイルエラーが出たので
試行錯誤段階ということもあり、ああいった形になりました
>ちなみにAsEnumerable使ってる理由は?
FolderクラスのSubfoldersはIEnumerableだからです
>>657 イテレータで再起をしてもですか?
いえいえ
663 :
デフォルトの名無しさん :2012/05/03(木) 11:16:16.44
>>661 だからイテレーターは仕組みから言って再帰は不可能だって
後、再起じゃなくて再帰だからな
あ?
665 :
デフォルトの名無しさん :2012/05/03(木) 11:24:16.53
誰だイテレータで再帰は不可とか抜かしてるのは
666 :
606 :2012/05/03(木) 11:37:12.63
回答が得られないようなので取り下げます
うむ
668 :
636 :2012/05/03(木) 11:49:43.62
まだやっていたのか
>>618 C#うんぬんより
お前はまず日本語を勉強しなおせ
あとイテレータは再帰じゃなくて継続だから
671 :
606 :2012/05/03(木) 11:59:51.46
いらつくやつらだな 一部の暇人は相手して欲しいがために 遠まわしに言ったり、かき乱すようなレスばかりして ソース晒せというくせに、ソース晒しても答えもしない がっかりだわ
勝手にがっかりしてろw
673 :
606 :2012/05/03(木) 12:01:17.20
答える気がないなら最初に言えよ お前らの暇つぶしの相手してらんねーんだよ おとなしくしてりゃいい気になりやがって 気色悪い変態野郎ども 氏ね
勝手に状況限定して首絞めてる奴が何を言うw そのまま窒息してろよバァカ
675 :
606 :2012/05/03(木) 12:02:11.37
お前どうせ友達もいないんだろ? 一日中2ちゃん巡回して相手してくれる人探しているんだろ? 気色悪いゴミ人間 生きている価値ねーよ
さあ、隣のスレに移動して煽ろうかねw
677 :
606 :2012/05/03(木) 12:02:53.29
>>674 答えられないのはお前がバカなだけ
自分が答えられないレベルだからって何が無理だよバカ
君子危うきに近寄らずと言うでよ 賢い人間は土壷にはまりそうな選択を初めからせんのだ
さあ火がついた。
680 :
606 :2012/05/03(木) 12:05:49.28
答える気がないならこのスレから出ていけよ ここはなんでも答えるスレなんだよ 答える気がないのにレスするな迷惑 気持ち悪いんだよ、初心者の邪魔ばっかりして お前能なしで会社でもいじめられているんだろ? もしかしたら、仕事もしてないんじゃないか?
だいたい当人が一番コンプレックス抱えてるものが真っ先に出てくるよね こういうのって
>>673 自分で解決する気ないなら最初に言えよ
スレが汚れるだろ
683 :
デフォルトの名無しさん :2012/05/03(木) 12:08:36.55
List<T>使えば良いと言ったら後出しで試行錯誤中に書いたもので本来は消したいとか来るんですもん 資料は質問前にそろえとけって仕事で教わらなかったか?
>>680 みんな答えてるだろ正解かどうかな知らんがw
まーでもお前以外は困ってない問題ないんだよ
686 :
606 :2012/05/03(木) 12:09:35.30
>>682 質問してるんだから、答えを委ねているんだろ
当たり前のこと言わすな
ていうか、うれしそうにレスしているなお前ら
やっぱり図星なんだな気色悪い死ね
688 :
606 :2012/05/03(木) 12:10:39.11
689 :
606 :2012/05/03(木) 12:11:32.48
>>665 お前ほんと無能だから黙ってろ
お前は答えられるようなレベルじゃない
606でそんな前提条件まで読み取れってとんでもねえ質問者様だなw
>>686 天は自ら助く者を助ける
資格のないお前は助からない
答えに繋がるヒントは充分でてるのにね
606は間違いだって自分で言ってるのにこんなもの前提にされても困るでしかし
616 名前:606[sage] 投稿日:2012/05/03(木) 08:43:56.54
>>612 すいませんあれは間違いでした
正しくはこれ
>>609
693 :
606 :2012/05/03(木) 12:13:02.62
>>690 型もわからないのかアホ
とにかくあとは暇なやつ同士でやりあってろ
気色悪いドブ人間どもは死ね
694 :
606 :2012/05/03(木) 12:13:57.81
>>692 文脈もわからないのかバカ
気持ち悪い、お前らほかにやることないのか?
死ねよまじで
最後くらい釣り宣言しとけよ 少しは気が晴れるぞ
おいwwwどこの誰だよww
責任もって
>>606 をFinalizeしとけよw
697 :
606 :2012/05/03(木) 12:14:53.72
おれもこれだけバカにされたからには これからここで質問する奴片っ端から邪魔してやるわ どうせおまえらは暇つぶしできればいいだけだし 文句ないよな?
完全に暴走しているな
699 :
606 :2012/05/03(木) 12:15:25.08
なーんてね! キレ芸でした(^-^)/ みなさん教えてくださいよー
文句なんてないない 気にせず回答するし
あなたが最適な解と思った物が最適な解です。 ただし他人の同意を得られるとは、限りません・・・。
さあ昼飯にするか。
703 :
606 :2012/05/03(木) 12:19:13.52
一日中こういうことしている奴らって生きている価値ないよ
704 :
606 :2012/05/03(木) 12:22:06.19
ほらどんどん書き込めよ暇人ども 俺が相手してやらないと書き込めないのか?糞が
生きてる価値ない人間にまで頭を足れる人生ってのもオツなものですね
706 :
606 :2012/05/03(木) 12:22:55.85
実はIDのあるソフトウェア板のスレのステマ
うん
左様ですか
上様です
711 :
606 :2012/05/03(木) 13:02:57.51
この時間は基地外しかいないな
712 :
606 :2012/05/03(木) 13:04:27.11
readonlyはフィールドにしか使えないんだよバカ
PanelにVScrollBarとHScrollBarを配置して Dockでそれぞれ右と下に一杯に表示しているのですが 右下の角(スクロールバーが交差する場所)が空白にならずに VScrollBarがその場所まで表示されてしまいます どうしたら通常の両スクロールバーが表示されているときのように 角を空白にできますか?
一杯に表示しなけれないい
一杯に表示しなければいい
コントロールの配置順序
荒れてるなあ ソフトウェア板しか見てなかったよ どれどれ俺が606に答えてやるとするか
おいおい
>>606 の質問なんかより広告の TreeGridの方が興味あるんだけど
あれ、C#にはないよな
作れるのか?
そうだな
>>606 の質問なんかよりTreeGridについて語った方が有益だな
>>713 というか、FormもPanelもScrollableControlなんだから
可能なら(たぶん特別な事情がなければ可能だと思うけど)その機能を
利用した方が簡単だと思うんだけど
>>714-715 Dockで貼り付けないとなると、自前で全部サイズを計算するってことですか?
>>716 順番をどう変えても角が空白になりません
>>720 AutoScrollで出来たら楽なんですけどPanelに表示されてる
コントロールの大きさに関係無く移動範囲を設定したいので
自前でないと無理でした
DockしないでAnchorで設定したらいけたよ
Dockの機能は指定した辺を埋めることだから、Dock以外のアプローチしかないよね Anchorは駄目なん?
あああ書く前にリロードするんだった
>>721 だからさ、例えばそのPanelのAutoScroollをtrueにして、
中に自分より大きいPanelを入れるとか、方法はいろいろあるよ。
>>722-723 え、Anchorでできました?
自分もずっと試してたんですけど、ちゃんと端一杯まで
表示してくれないんですけど上下左右のどこを設定したらいいですか?
>>725 なるほど、そういう方法は全然考え付きませんでした
>>726 Anchorで上下左右すべてに適応しておけばいい。
728 :
606 :2012/05/03(木) 14:15:53.06
>>717 あなただけが頼りです
よろしくお願いします
>>727 それだとスクロールバーがとんでもなく太くなってしまいます
な〜んてな
732 :
デフォルトの名無しさん :2012/05/03(木) 15:08:46.61
>>729 右下の空白にしたい部分に小さなpanel配置して下と右のアンカー打って
その後VScrollBarを配置して左以外アンカー、HScrollBarを上以外アンカーでどうだ?
>>732 多分その方法で出来ると思いますが
色々と試した結果普通に設定でどうにかできる問題じゃないようですね
検索しても実現しているコードが全く見つからないし
このスレの過去スレでも同じ質問がありましたが、解決していないようでした
これは
>>732 さんのように角に何か配置するか
>>725 さんのように
AutiScrollを工夫して使うしかないようです
それかリサイズの度に自前でスクロールバーを計算して再配置かですね
>>733 細かい話だけど、そもそもスクロールバーの幅や高さは連動してるコントロールの
クラアント領域の幅や高さのメタファなんだから、別に
>>725 の方法でなくてもいいけど
クライアント領域にスクロールバーが含まれるようなデザインはちょっと不自然だと思う。
結局何が言いたいかっていうと、ScrollableControlの機能を使わずに自前で実装するなら、
スクロールバーはパネルの外に置く方が自然だと思う。
>>713 あー分かるわ。
俺もそれずっと悩んでてDockで寄せたまま仕方なく使ってるわ。
やっぱり解決方法無しか。
>>725 の方法があるんだな。でも使わないパネルをぶち込むって
なんとなく気分が悪いな。
AutoScrollにしてみると角にフォームのサイズが変更されるのが 表示されてるからやっぱり何かのPanel貼り付けてる臭い 実装見たわけじゃないから知らんけどな
Microsoft Visual C# 2010 Expressを使用しているのですが、 ブレイクポイントの一覧表示をすることは出来ないのでしょうか。 VC++等では、一覧からブレイクポイントの有効/無効の設定ができたりしたので、 同じような機能があると思うのですが、どうやって表示させるのかよくわかりません。 ご存知のかたがいらっしゃるようでしたら教えていただけませんでしょうか。
738 :
606 :2012/05/03(木) 20:21:42.38
>>731 さすが、口先だけのやつらとは違いますね
でも、イテレータだけだとかなり無理っぽいですね
利用するときも注意が必要だし
せっかく作ってくれたけど別の方法考えます
急に強気w
なるほど、これが質問者様という奴かw
741 :
606 :2012/05/03(木) 20:25:14.10
一日かけても出来ませんでした><
742 :
606 :2012/05/03(木) 20:26:28.51
いぢわるしないで教えてくださいよー みなさんみたいな天才なら余裕ですよね?
743 :
606 :2012/05/03(木) 20:28:06.77
さっさと教えろやごらーーー!
744 :
606 :2012/05/03(木) 20:30:42.28
無能が考えるネタはつまらない なりすまししている奴全員しね
ぷっ
746 :
606 :2012/05/03(木) 20:33:03.34
けっかく質問してやってるのに 答え教えてくれねえお前ら全員しね
747 :
606 :2012/05/03(木) 20:33:38.06
ごきぶりしね障害者しね
C#歴半年未満だけど 30分くらいでかけた(´・_・`)
749 :
606 :2012/05/03(木) 20:35:05.93
イテレータで再帰できないって言ってたバカはどこいった? 死ねカス
750 :
606 :2012/05/03(木) 20:35:39.79
おまえらクズばっかだ! さっさと死ねええ
751 :
606 :2012/05/03(木) 20:35:42.81
一生試行錯誤してて構わないのに〜w
754 :
606 :2012/05/03(木) 20:40:42.20
>>748 本当に出来たかわからないので
ここに書き込んでください
本当に出来てるか判断してあげますよ
このスレはこの流れでいいのだ
756 :
606 :2012/05/03(木) 20:42:45.96
さっさとおしえろやあああ!グズが
賑やかしいね
私は真に驚くべき証明を見つけたが、この余白はそれを書くには狭すぎる。
759 :
デフォルトの名無しさん :2012/05/03(木) 20:43:28.23
簡単だったw
取り下げたんだしいいじゃん 相談室で聞けば
761 :
606 :2012/05/03(木) 20:48:20.32
相談室は俺をしかとすんだよおおお どいつもこいつも俺をバカにしやがって! 許さねえぞ死ねカス おまえら本当はできないんだろ? 無能ばっかだな
762 :
606 :2012/05/03(木) 20:50:34.50
>>761 おい、障害者
お前そんなことして楽しいと思っているのか?
友達もいないんだろ?
毎日毎日荒らしやがって
どうせおまえ生活保護で暮らしているだけなんだろ?
プログラミングなんてお前みたいな低学歴には無理だから
さっさとしね
763 :
606 :2012/05/03(木) 20:51:36.05
764 :
606 :2012/05/03(木) 20:59:34.74
まだ誰も出来ねーのかよ? このスレ本当カスばっかだな
765 :
606 :2012/05/03(木) 21:00:24.46
>>764 お前一人だけだね
その遊びしているの
一生そうやって惨めな人生歩んでろ
よく荒れるスレだなw C#は遅いといっちゃ〜荒れ 質問が来ても 荒れ どうなっちゃってるですかね
767 :
606 :2012/05/03(木) 21:02:46.70
>>765 クソが!俺のフリすんな
おまえは障害者だ
いつものことだよ
769 :
デフォルトの名無しさん :2012/05/03(木) 21:05:56.54
いつもの流れで安心した
人にシネは無いだろう。アウトー!!
どうしてほしいのよ・・・
>>606 んー、まじめに答えると、小学生からやり直したほうがいいと思う
頭の中で軽くシミュレーションしたけど
>>731 がまともに動くとは思えん
遅延評価まわりが滅茶苦茶に見える
Folders(sr).ElementAtOrDefault(2)
しただけで死なないか?
頭の中で軽くシミュレーションしたけど〜 っているかw
もうさ、ファイルフォーマットをxmlに変えてやれば、 いちいち変な解析構文書かなくても既存のXmlDocumentクラスでもつかって 読み込めばいいんじゃねーの?少なくとも仕様変更に耐えれない糞なフォーマットより良いと思うんだが…
仕様が変更になったらその分だけ、NETアップを要求しますから ご心配なく
>>776 661 名前:606[sage] 投稿日:2012/05/03(木) 10:48:57.68
>>654 解りやすく問題点を指摘してもらえるように書き換えただけで
実際は画像ファイルや動画ファイルからの読み取りにも使う汎用的なクラスです
例ではファイルパスしか取得していないですが、これで実ファイルの読み取りもしようと思っています
当初の問題は大して大きくないのに制限が増えて問題クラスが増大していくww できの悪いプロジェクトに配属されたときこんな感じよね 問題は隠されている、と
>>776 俺が作ったフォーマットじゃないから変えられません
xmlとか言うと速度厨が泡吹いて痙攣するぞ
782 :
デフォルトの名無しさん :2012/05/03(木) 22:16:45.58
例外の処理方法について まず、大原則を覚えてください。 よほどのことがない限り、アプリケーションで try-catch を書いてはいけません。 もう一度繰り返します。 よほどのことがない限り、アプリケーションで try-catch を書いてはいけません。 もう一度(ry、すみませんしつこいですね^^。でもこれ、めちゃめちゃ重要なのです。 C# や VB を学習すると、割と早い段階で try-catch 構文による例外処理方法を学習すると思います。 が、実際のアプリケーションコードでは、特殊な事情(後で説明します)がない限りは、 try-catch を記述してはいけないのです。 では try-catch を書かずにどうやって例外の後処理をすればよいのか....というと、 通常、集約例外ハンドラと呼ばれる機能を利用します。 質問です。使うべきですか?
>>782 適切な場所に適切に使うなら問題ない
M$のライブラリは殆ど使ってる
>>782 ネットワークとかハードが絡む異常系では使うべき。
普通の処理だと、エラーを握りつぶすくらいにしか使えない。そして握りつぶすのは不味い方法だしな。
俺は例外でアプリが落ちてくれる方がデバッグ楽だからtryは書かないな。
個人でC#使うことってある? 大抵のツールはぐぐればあるし 小回り利くものがほしいならスクリプト言語でやったほうが手軽だし C#使ってなにか作ろうと思えるものが思いつかない
>>784 確かにどこに問題があったかわからないですよね
大抵のことはtryなくてもできると思う
WinForm切り捨てちゃったからBorland死んじゃったね
>>788 WinFormは再設計してほしい。floatのdouble化とかハード支援強化とか。
俺は、依存関係プロパティの意味がわからんからWPFは使えないんだぜ。
>>782 例外処理は、コストが掛かると言われるが、コストが掛かるのは、
実際に例外が発生した場合に限られる。そのため、事前に例外を回避できる場合、
例えば、引数のnull判定などを組み込んでおいて、例外の発生は、極力避ければいい。
もしくは、早いうちに例外を帰してしまえば、無駄な処理をせずに済む。
しかし、このような判定が事前にできないケース(ネットワーク・ファイル等)は、例外処理を入れるべき。
>>784 ただ、配布するときは、ぶっちゃけ握り潰して止まらないようにすることもある。
その場合でもログを吐かせたりは、する。
>>782 少なくとも現実的には、そんなに特殊な事情なんて無くてもtry...catchは
使わざるを得ないと思うけど。
あと、集約例外ハンドラって普通は後処理の必要がない(後処理でリカバーできない)
例外以外使わないと思うんですが...
>>785 C#もスクリプトみたいなものですけど。
全然ちがう 手軽さがないだろ
>>795 テキストエディタで書いてコマンド実行
みたいに出来ない時点十分に手間だよ
たぶん、CSharpCodeProviderのことを言っているのでは、なかろうか? おぞましく手間だと思うがな…
798 :
デフォルトの名無しさん :2012/05/03(木) 23:31:15.31
ここはC#のスレなので・・・。 C#自体の有り様については問うておりません。
C(怒)
>>793 C#はコンパイルしないと動かないじゃん
つまり最初からやり直しになる
スクリプト言語だと、Webのエロ動画を落とそうとごにょごにょするとき
エラーで失敗しても、間違った箇所を書きなおして中断したところから何度もリトライできる
これが明らかに違う
他の言語ってプロセスでもyieldできるのか・・・。 自分普通にデバッグするときはブレークポイントで引っかかるまで通常起動するけど。 Main関数と言う名のユニットテストで!!
Webのボタンクリックするコード書いてー あ、押すボタン間違った、書きなおしてボタン押してー テキストボックスに書き込むコード書いてー あ、書き込めない、訂正してテキストボックスに書き込んでー 検索ボタンを押すコードを書いてー あ、押すボタン間違った、書きなおして検索ボタン押してー ってできる。
>>802 のようなことをやったあと、GUIにしたかったらC#に書き起こすんだけどねw
>>805 最初から繰り返してたら、テキストボックスに同じ文字が2回入るでしょ
でもそうはならない、途中から始められる
807 :
デフォルトの名無しさん :2012/05/04(金) 00:36:57.30
どうでもいい
C#には出来ないからどうでもいいな
● 交わした約束 忘れないよ ┠〜〜〜┐ 目を閉じ確かめる ┃ ● ∫ 押し寄せた闇 振り払って進むよ ┠〜〜〜┘ いつになったら なくした未来を ┃ 私ここでまた見ることできるの? ┃ 溢れ出した不安の影を何度でも裂いて ┃ この世界歩んでこう とめどなく刻まれた 時は今始まり告げ ┃ 変わらない思いをのせ 閉ざされた扉開けよう ┃ 目覚めた心は走り出した未来を描くため ┃ 難しい道で立ち止まっても 空はきれいな青さでいつも待っててくれる ┃ だから怖くない もう何があっても 挫けない
>>774 フォルダ→サブフォルダと全部順番に列挙しないと死ぬよ
せめてサブフォルダをToArray出来ればそんな意味不明の制約はなくなるんだけど
ただの木構造を全部再帰で列挙するだけならyieldで簡単にできるんだけど フォルダとサブフォルダに分けるとこんな意味不明なことになると初めて知ったわ
数人の方が、フォルダとサブフォルダを分けないほういいといっていますが わけないということはどういうことですか? フォルダクラスだけにして階層構造をフルパスで保持するんですか? そうすると同じ親フォルダ名をサブフォルダが保持することになって無駄じゃないでしょうか?
それとシリアライズするときも分けていたほうが階層構造が反映されて楽だと思うんですけど
別にフルパス持たなくても親子関係が辿れればフルパスも作れるし 列挙するだけなら親方向に辿れる必要もないよ
シリアライズに何を使うのかしらないけどフォルダとサブフォルダに分かれていることが使い勝手に影響するとは思えないな まあ木構造を扱うには再帰のテクが必要だからそこはハードルになるかもわからんけど
816 :
デフォルトの名無しさん :2012/05/04(金) 06:51:48.34
>>790 >コストが掛かるのは、実際に例外が発生した場合に限られる。
さらっと嘘書くなよ。
817 :
デフォルトの名無しさん :2012/05/04(金) 06:51:49.80
folder1 sub1
A ├B └C └D この木構造を作るのにノードに当たるクラスは一種類でいいし ノード自身が親の名前を持つ必要もない。親へのリンクを持ってるだけでいい ルートノードであるかどうかは、親が設定されているかどうかを見ればいい
819 :
デフォルトの名無しさん :2012/05/04(金) 06:55:26.25
folder1 folder2 folder3 folder4 folder5 folder6 となっていた場合 folder1\folder2 folder1\folder3 folder4\folder5 folder4\folder6 の4行が列挙された方が使い勝手が圧倒的に良いだろうに 作るのも簡単だよな
それは木からSelectManyすればいいんじゃないか 使い勝手がいいかどうかはそれを使ってする処理にもよるだろう
>>818 つまり、フォルダークラスにParentやChildプロパティを用意して参照を渡しておくんですね
そういえばC言語の授業で習ったことある
>>819 は?
別クラスじゃなくて、TreeNodeのような構造でもいけますね また書き直してみます ありがとうございます
http://nimg.nate.com/orgImg/sg/2012/05/02/20120502022316_0.jpg [世界日報] “世界初、世界最高”と軍が誇っていたK11複合型小銃(写真)が全量回収される。
防衛事業庁は、「昨年10月に陸軍37師団で発生したK11小銃の爆発事故の原因調査の結果、射撃
統制装置と撃発装置、弾薬起爆装置のプログラムの複合的な問題として表れ、現在、軍に配備している
K11小銃246挺全量をリコールする」と2日明らかにした。
K11は、2008年に185億ウォン(約13.1億円)を投入し、国内技術で開発した複合型小銃で、弾薬が
一定の距離を飛んだ後、爆発するようになっており、壁の後ろに隠れた敵も攻撃することができる武器である。
しかし、昨年10月14日のK11小銃野戦運用評価時、20mm弾薬が銃内部で爆発して兵士1人が負傷する
事故が発生した後、安全性論議が提起された。
国防部は、事故原因究明のために特別監査団を構成し、昨年10月21日から今年の2月25日までに監査を
行っていた。
防衛事業庁関係者は、「監査の結果、爆発事故は、20mm知能型空中炸裂弾を発砲する時、撃発信号が
信管に伝達される過程で電磁波干渉により、弾薬が事前に炸裂したことが起こったことが明らかになった」と説明
した。
これにより、防衛事業庁は、K11小銃を全量リコール後、生産業者が撃発装置の設計変更、射撃統制装置・
弾薬起爆装置のプログラム修正、電磁波干渉による誤動作の要因除去などをするように指示した。
防衛事業庁は、6月までに問題を補完した後、性能実証試験と技術検討委員会確認を経て、今後の戦力化を
再開するかを判断する計画。
世界日報: 2012-05-02 19:24
http://news.nate.com/view/20120502n31698?mid=n0204
825 :
デフォルトの名無しさん :2012/05/04(金) 08:54:43.47
>>821 そんな馬鹿な、と思うかも知れないが、実際
>>819 みたいな形式で保存されてる方が、圧倒的に処理はし易いよ。
サブフォルダの概念含め。
テキストの中身含め、きちんと見直した方が良い。
>>825 ではバインディングはどうするんですか?
取り出し用の別のクラスを作らないといけないでしょ?
ツイッターで10万人超のフォロワーを抱えていたNHKの番組の公式アカウントが3月末に
急に閉鎖された。つぶやいていたのは人気アナウンサーの堀潤さんだ。
堀さんは3月までNHK総合「Bizスポ」(現・Bizプラス)を担当。番組情報や
ニュースの内容をつぶやいていた。東日本大震災の後は、積極的に震度情報や被災者への
支援情報などをきめ細かくツイートしていた。
人気の理由は率直な物言いだ。原発問題にも触れ、「どうしてこんなに大切な情報が
原発事故から半年になって発表されるのか。僕らメディアの責任も本当に重たい」
「国や組織に期待してはだめだ……(中略)……僕らでこの国を変えよう」などとつぶやいた。
閉鎖を惜しむ声が相次ぐ中、本人は4月、都内であったメディア関連のシンポジウムで思いを語った。
「色々な顛末(てんまつ)があった。局内で色々ありました」「ハレーションが大きかった」。
ツイートの後、「『君はアジテーションしているのか』『国家を転覆するつもりなのか』と
言われた」として、局内で問題になったこともほのめかした。
以下
http://www.asahi.com/culture/news_culture/TKY201205020143.html
ネトウヨ王に、俺はなる!まで読んだ。
831 :
デフォルトの名無しさん :2012/05/04(金) 11:06:36.16
例外が発生してもコストなんてかからないよな
定期的に涌くよな。例外は遅くないという奴。 例外がどういう実装か知らないのは、機械語を経験してないからか?
ネットワークやファイルにおいては取得失敗は当然考えられることであり例外じゃないから 列挙値を返すべきというのはまさに同感だね
処理が続行不可能なときに例外を使うんだよ。 メモリ確保失敗とかファイル作成失敗とかね。
機械語てw
ILでいいよ。
機械語コンプレックスがある奴がいるのか。
通常のエラーなんか例外にしたらキャッチにミスったり何がどこに飛んでくるかわけわかんなくなったりするから 列挙値を返したほうが安全で分かりやすい それ以外でも思わぬところで失敗するんだからそういうのだけ例外にしとけばデバッグも楽になる
はいはい機械語機械語
ググったら例外は遅いという結果ばかりなのが気に食わないらしい。
だから極力例外は、使用せずにエラー値。bool値などで対応する。 ユーザーからの不正な入力なんかは、事前にチェック可能なわけだし、そういうのは、例外を使わない。 一方でDB接続エラー、ファイル作成、ネットワーク接続等は、例外として処理する。 ちなみに機械語とか言ってるオッサンは、アセンブラでも弄ってろよw
>>816 >コストが掛かるのは、実際に例外が発生した場合に限られる。
try-catch自体はコストかからないよって意味だろ低能
>>835 一応突っ込んどくけど、まさかライブラリもその考え方で作るべきって言ってるんじゃないよね?
アプリはその考え方でもいいと思うけど。
>>844 throw new Exception() が呼ばれてcatchブロックに移動したときにコストが掛かるんであって、
単純にtryブロックに入るだけでは、コストは、気にするほど掛からない。
それに既存のフレームワークやライブラリだと、IO系は、接続エラーや書き込みエラーなどは、
例外を発生させるわけだし、嫌でもtry/catchで囲む必要がある。
アプリごと落ちたりしても良いなら別としてだ。
>>843 仕様上想定されたエラーに例外を使うのはいついかなる時であろうと間違いだと思うわ
>>844 そう、だから(理屈はともかく)少なくとも現実的にはtry...catchを使わない、
なんて選択肢はないわけだよね。
あと、例外機構のそもそもの主目的はプログラムを強制終了させることだ、
ってことが分かってないと
>>843 みたいにちょっと勘違いが入ると思う。
極力エラーコードを返せ、ってそのエラーコードの処理を呼び出し側がちゃんと
やってくれることをいつでも期待できるわけじゃないでしょ。
そういうことだから例外機構ってものが発明されたのに。
> あと、例外機構のそもそもの主目的はプログラムを強制終了させることだ、 え?
>>844 加算の単純ループ。例外は発生させてない。
機械語もできないど素人が混じってるようで。
tryスコープなし:3757
tryスコープあり:26290
852 :
デフォルトの名無しさん :2012/05/04(金) 13:01:40.14
>>847 throwには大域ジャンプって機能もある(昔のsetjump,longjump)
深い階層でエラーが起きて、エラー処理まで一気に戻るという目的の場合もある
hoge() の中で piyo()を呼んで、その中で fuga() メソッドを呼び出してて fugaの中で例外が発生したときに、hoge -> piyo -> fuga っていう呼出履歴を取得したいんだけど、 void fuga() { try { // 処理 } catch { throw } } みたいにそれぞれのメソッドの処理を に try...catchで囲って throw する方法以外になんかいい方法ある?
try-catchでコストが掛からないとか言ってる奴はEffectiveJava読め try-catch外のブロックだからできる最適化というものがあるんだよ C#perはそんなことも分からんのか?
>>852 大域ジャンプ使っちゃいけないとされた昔のGotoそのもの
アカンアカン
>>854 デバッガで呼び出し履歴を見ればいいじゃん
機械語とかいってるオッサンは、標準のフレームワークを使ったことがないのかよww 使わないという選択肢は、.NET使う以上、無い。特にIO系のクラス使う場合、 フレームワークが例外発生してくるし、どうやってtry/catch使わずに対応すれば良いんだ?
そういうことじゃないか 例外のスタックトレースを見れば分かるんじゃねえの
LL言語のイテレータは大抵終端を例外で示すよね
世界一使われているjpegライブラリとpngライブラリは大域ジャンプ多用しています エラー処理ももちろんlongjmp
>>858 フレームワークって語の意味わかってる?
864 :
デフォルトの名無しさん :2012/05/04(金) 13:11:28.46
>>858 テストコード書けばtryは例外が発生しなくても遅くなることは分かる。
だがその原因は機械語レベルの話。機械語なしで説明できない。
フレームワークとか恥ずかしすぎるぞ、おまえ。
865 :
デフォルトの名無しさん :2012/05/04(金) 13:12:27.84
>>856 例外はそれで良いんだよ。何しろ例外だw
コストを語るときには頻度を考慮することが大事ですよ
まあ、他値返せれば話はまた違うんだろうけど
世界で何番目に使われてるか分からない言語の分際で プログラミング論などゴチャゴチャ抜かさない欲しいものですじょ
>>866 昔、ループの末端で使われると分かってるのに、
文字列から数値に変換するときに例外出す馬鹿なライブラリがあってな。
データファイルの読み込みにアホみたいな遅くて使い物にならなかったんだ。
>文字列から数値に変換するときに例外出す馬鹿なライブラリ いまだに数値文字列の解析にはNumberFormatExceptionを捕まえなければいけない某言語が馬鹿にされたような気がしました! いやあの仕様は馬鹿だけどね
>>864 なんか二人とも話が噛み合ってない気がするけど、少なくとも例外機構に
機械語は直接関係ないと思うけど....
勘違いしてるかも知れないけど、今話してる例外はCPUネイティブな例外を
使ってるわけじゃないですよ?w
873 :
デフォルトの名無しさん :2012/05/04(金) 13:18:50.39
>>867 ファイルI/Oとか通信の例外で一々強制終了するソフトって余り見たことありませんよw
874 :
デフォルトの名無しさん :2012/05/04(金) 13:20:23.76
>>872 例外発生してないのになぜtryスコープに入って出るだけで遅くなるんですか?w
お前の存在が例外
JITの掛ける最適化に違いがでるからです
つかね、遅いから使う使わないじゃなくて ボトルネックになってるから使う使わないって考えるんだよ 初心者に理解しろとは言わないが… アムダールの法則くらいは分かるでしょう?
>>873 言っちゃ悪いが馬鹿かよ。
だから例えばIO処理でエラーが発生した時、その呼び出し側がそのエラーを
想定して適切な処理を行ってないのなら、プログラムはそこで停止してくれた方が安全でしょ。
安全側に倒すのは工学の基本ですよ。
>>874 ちょっと何言ってるのか分からないんですが
883 :
デフォルトの名無しさん :2012/05/04(金) 13:26:54.78
例えばtryブロック中では命令語の順序を入れ替えて局所化するようなことができません
まじで
>>874 の質問が答えられない素人ばかりなの?
889 :
デフォルトの名無しさん :2012/05/04(金) 13:29:17.10
>>878 I/O処理で例外を発生させるのは.netフレームワークだから、適切な処理って必ず例外が絡んでくるんだがw
まあエラーの頻度を少なくするための工夫はプログラミングするべきだが全部はカバーできないだろ
>>889 だから俺は例外を使うな論に反対してる立場なんですが....
パターン1 Stopwatch sw = new Stopwatch(); sw.Start(); int t = 0; for( int i = 0 ; 100000> i ; i++ ) try {t++;} catch {} sw.Stop(); Console.WriteLine( sw.ElapsedTicks ); // 700 パターン2 Stopwatch sw = new Stopwatch(); sw.Start(); int t = 0; for( int i = 0 ; 100000 > i ; i++ ) t++; sw.Stop(); Console.WriteLine( sw.ElapsedTicks ); // 614 機械語だとか言ってる速度厨は、ともかく、そんなに差は、無い気は、しますがw ループの中でtry/catchしてるのは、検証のためで実際は、こんな書き方は、しないけど。
できないのはtryでも無理なケースです
俺も遅いから使うな論は単なる馬鹿の一つ覚えで相手にする価値がないと思ってます
また、速度厨か・・・
生まれつきのスピード狂ならIA-32/64でも書いてればいいじゃない
機械語レベルなんかで速度云々言うぐらいなら、そもそもC#(.NET)使うのが間違ってる。
>>891 おれのマシンだと、
700592
100704
どんな設定で計ったんだ?圧倒的にtryが遅い。
お前こそどんな設定で何を測ったんだよたわけ
>>893 昔、文字列から数値変換で例外使っていて遅すぎて、
例外なし版を追加したライブラリがあってだな。
そういうライブラリは相手にしないほうがいいぞ。
いまだに数値文字列の解析にはNumberFormatExceptionを捕まえなければいけない某言語が馬鹿にされたような気がしたああああああ
try-catchは遅くならない→素人未満 例外遅いから使うな→無能の典型 例外を使うな論→バカの一つ覚え
902 :
デフォルトの名無しさん :2012/05/04(金) 13:42:45.16
割りと例外が頻発する糞仕様のソフトだけが問題だろうに
>>900 c#の話を必死にJavaにしたがる馬鹿乙。
さてこの辺でお開きかな
>>901 語弊があるかも知れんが、tryブロックに入る以上、全く遅くならないということはなく、
わずかに遅くなる。なんでもかんでも例外で対処すれば、良いってことではなくて、
適切な箇所で使えば良いのではと思うんだが。C#使う以上、まったくtry-catch使わないで良いわけではないし。
それ以上気にするならC#使う選択がそもそものマチガイだ。
>>891 何度やってもパターン1が遅いんだが・・・
言語様にユーザーが合わせてやるんだよ 言語様に文句を言っても聞き入れてくれません
横柄やなー
>>891 デバッグモードでやったら、似たような速度になったわ。
おまえ馬鹿だろw
>>910 リリースもデバッグモードですから問題ありませんw
ここからはデバッグ/リリース論に移行しまぁす
リリースはデバッグモードでした方が色々捗る パフォーマンス?知らんがな
>>891 なんでリリースだとパターン2が圧倒的に速くなるんですか?
上のほうレスで遅くならないって言ってますた。
VCの例でいくと-ODは-O0なのさ 通常は-O2
>>914 言ってました
じゃねーよ。自分の手を動かせすらしないカスは黙ってggrks
(ノ∀`)アチャー
手を動かしたらtryは例外発生しなくても遅かったです。
tryを外したら速くなりました。遅い原因はtryでした。
try-catchブロックとそうでないものと比べれば、前者が遅くなるのは、 当然のことだ。そんなものは、動かさなくても予測できる。
そーっすね
ILや機械語できないと予測は無理だろう。
予測できないなら予測できる人の言うこと黙って聞いてりゃいいんだよ口ごたえせずに
遅くならないと誤った予測した人がここには大勢いてだな。 しかも素人なのに自分の過ちを受け入れられないほどプライドが高くてだな。
例外発生時に比べれば遅くならない
C#っていうか.net使ってて遅いなんていっててもな〜 だったら、ネイティブ吐けるC/C++にいけよ 所詮は中間コードを随時翻訳しているインタプリタみたいものだぞ C#は
プライドが高いんじゃなくて 思い込みが強いだけです
ngenが何しているか知っているならインタプリタっていう語は出てこない気がするけどな
インタプリタとしては微妙だ
根拠出して喋る癖が付いてねエンだろ
言葉遊びしドル
もはやJITとは言えない。
無能は暇そうでいいな
tryの速度低下が気になるようならC#を選択した事自体間違いだわな
それは間違いない
C++でnativeで吐こうがtryは糞遅いわけだが・・・
>>928 ngenが全中間コードを一気にネイティブに変換してるとでも?w
馬鹿は含みを持たせて喋らなくていいよ
まったくもって、その通り。というか、それに尽きる。 いくら足掻いたところでtry自体の改善は、C#には、できないわけだし、 使い方で改善は、できるけど、言語仕様そのものに手を加えることは、できない。
↑自己紹介乙
w
はさまったか
c++だろうがc#だろうがtryは遅い。これはガチ。
そもそも仕組み上、遅くなるのは言語に依存しないはずだ
これからはもうtryしないことにするわ 疲れちまったんだよ……
なんだか疲れたんだ…パトラッシュ
今までの流れ 例外は遅くない ←馬鹿にされる。 tryがあっても例外が発生しないなら遅くならない ←また馬鹿にされる tryは遅いからC++使え ←また馬鹿にされる。今ココ
速度厨が吠えてるだけだろ
速度がどうでもいいならJavaでも使ってな。
trycatchの問題は大域ジャンプが制御不能になることだから速度低下とか言ってるのは的外れ
速度がどうでもよくない人がC#って・・・
質の高いライブラリとインテリセンス、デバッガ 言語仕様もハイセンスで使いやすいからC#なんであって 速度とかどうでもいいです
>>951 制御不能って
どうやったらそんなことになるんだよw
今日もC#スレは平常進行!
>>951 実際、MSは例外の速度問題でライブラリを改善したので、その指摘こそ的外れ。
例外は本質的に大域ジャンプだから制御可能なシロモノではないのです
782 名前:デフォルトの名無しさん[] 投稿日:2012/05/03(木) 22:16:45.58 例外の処理方法について まず、大原則を覚えてください。 よほどのことがない限り、アプリケーションで try-catch を書いてはいけません。 もう一度繰り返します。 よほどのことがない限り、アプリケーションで try-catch を書いてはいけません。 もう一度(ry、すみませんしつこいですね^^。でもこれ、めちゃめちゃ重要なのです。 C# や VB を学習すると、割と早い段階で try-catch 構文による例外処理方法を学習すると思います。 が、実際のアプリケーションコードでは、特殊な事情(後で説明します)がない限りは、 try-catch を記述してはいけないのです。 では try-catch を書かずにどうやって例外の後処理をすればよいのか....というと、 通常、集約例外ハンドラと呼ばれる機能を利用します。 質問です。使うべきですか? 制御がどうこうなどハナから論点ではない
世界一使われているjpegライブラリとpngライブラリは大域ジャンプを多用しています エラー処理ももちろんlongjmp
>>965 大域ジャンプだけど立派に制御されているようですよ?
使う人間の技量が腐ってるのではないでしょうか?
なるほど、それじゃ改善は見込めませんね。お可哀想に。
大域ジャンプしたら全部ひとつの関数に書いてgoto使いまくってんのと変わんねーし 単純な画像処理だからできることって感じだよね
なにを作るかにもよっても違うんじゃねーの?
ああ、問題を単純に分解できないから制御しきれないってことですね。 こいつは重症だ。
w
>>967 gotoだろうが多重継承だろうが制御できないというのは、PGの髪のことだよ。
使えばハゲる。
例外は大域ジャンプだから制御出来ない!君は 勉強し直してきてくれ
いやもうプログラミングから離れてろよ 邪魔すぎ
977 :
737 :2012/05/04(金) 15:00:39.37
次スレはソフトウェア板でいいのけ? それとも立てた方がいいの?
立てる必要もないだろw
大域ジャンプってなんだよ。farジャンプのことか? いつまで8086の亡霊引きずってんだよ。
頭が20年前なんだよ
setjmp longjmpみたいなやつだろ Cの封印された機能の
VCのsetjmpとlongjmpはマネージコードにもジャンプできて地味にすごいのよ
VS11からは削除されるけどね>ネイティブからマネージへのジャンプ
tryの機能を関数化しただけか。C言語のほうが先だけど。
986 :
854 :2012/05/04(金) 15:30:12.21
>>854 すいません、質問の仕方が適当すぎでした。書き直します。
ttp://pastebin.com/CzAxx3f2 配布したアプリでの話です。
例外が発生したとき一番上の階層で try..catch して Hoge -> Piyo -> Fuga という呼出履歴を取得したいんです。
各メソッドに try..catch { throw; } と書けば取得できるのですが、
すべてのメソッドに try..catch { throw; } を書くのはなんかスマートじゃない気がするんです。
なにか他にいい方法はありますか?
VSでやるなら、Releaseモードでデバッグ無しで実行したときに呼出履歴を取得出来ればいいのですが。
それ以上にスマートな方法はありません。
別にReleaseモードだって例外のStackTrace見りゃ書いてあるでしょう
989 :
デフォルトの名無しさん :2012/05/04(金) 16:02:35.45
その例外捕まえるのを楽したいって話だよな でも、地道にやるしかないんですわ
うめ
うめ
各メソッドにtrycatch書かなくたってそのまま登ってきた階層分ぜんぶスタックトレースに書いてあるでしょう
うめしゅ
さっさと埋めろや
あびらへんやぁーーーーーーーーーーー!!!
うえm
C#はVB6より遅いw
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。