15/10/25 18:02:49.45 MN19GUGi.net
>>348 みたいなレスしてる奴が何言ってるんだか w
370:デフォルトの名無しさん
15/10/25 21:16:15.50 0CUh0fF8.net
たぶん他の奴に言われてくやしかったから自分も使ってみたかった言葉なんだろ
使いどころ間違えて自爆してるけど
371:デフォルトの名無しさん
15/10/25 23:23:12.66 hQyThWO7.net
>>353
エクスプローラでコピーした場合です
372:デフォルトの名無しさん
15/10/25 23:41:15.34 RC9wdhkQ.net
個人レベルの制作だとオブジェクト指向のメリットって
カプセル<多様性だな
カプセル化意識し過ぎると処理速度(特にゲーム)とかが酷くなる
373:デフォルトの名無しさん
15/10/26 00:36:32.71 qJuY+u/q.net
多態性?
374:デフォルトの名無しさん
15/10/26 00:42:27.84 0a7DJh5E.net
あれ、多態性だったのか
多様性と思ってた
375:デフォルトの名無しさん
15/10/26 00:47:33.11 pea7EB//.net
そんなレベルでカプセル化すると遅くなるとか言われてもな
多分まともに動くものを作り上げたことがないんだろう
376:デフォルトの名無しさん
15/10/26 01:13:26.64 jSFkYHTf.net
問題の分析もできないだろうし
ベンチすら見ないで物言ってそうな空気
377:デフォルトの名無しさん
15/10/26 03:25:47.91 vCh8HvqX.net
ゲームとか複雑にオブジェクトが絡むものはオブジェクトに仕事させないで、関数ベースの方がスムーズにいくな。
エンジンにもよるが副作用がいつ起きるか把握できん。
378:デフォルトの名無しさん
15/10/26 07:47:01.63 7G3hAEBt.net
関数ベースで大量のフィールドとフラグでいつ副作用が起こるか分からないようなものを作っているわけですね
379:デフォルトの名無しさん
15/10/26 08:17:31.68 C98YS4z/.net
int x = 1;やx = a+b;みたいな普通の代入式も破壊的代入と呼びますか?
380:デフォルトの名無しさん
15/10/26 16:05:25.14 ewlzRHbI.net
非同期のタスクを途中で止めたいのですが
この場合tokenはInterruptMethod内でどのように記述すればよいですか?
~~~
if(_tokenSource == null) _tokenSource = new CancellationTokenSource();
var token = _tokenSource.Token;
await Task.Run(()=>InterruptMethod(), token).ContinueWith(t => {
_tokenSource.Dispose();
_tokenSource = null;
});
~~(略)~~
private void InterruptMethod()
{
}
381:デフォルトの名無しさん
15/10/26 16:18:23.55 0a7DJh5E.net
>>363
配列をcloneして渡したりしてたら時間かからない?メモリ的にも不利だし
382:デフォルトの名無しさん
15/10/26 16:24:50.69 SRHIhdAJ.net
>>368
Task.Run(()=>InterruptMethod(token), token).以外略;
private void InterruptMethod(CancellationToken token) {
}
やはり多態と多様を間違って覚えていた人の発言は一味違う
木を見てなんとやら
383:デフォルトの名無しさん
15/10/26 17:01:46.79 pea7EB//.net
>>369
ReadOnlyCollectionでも使え
384:デフォルトの名無しさん
15/10/26 17:08:48.73 AGAQ9bh1.net
>>359
インポートできないかな、ってC#関係ないな
385:デフォルトの名無しさん
15/10/26 17:23:46.84 0a7DJh5E.net
>>371
凄い
こんなのあったのか
386:デフォルトの名無しさん
15/10/26 19:09:46.32 F0ZP2A+2.net
2.0の時代から普通にあるよねw
387:デフォルトの名無しさん
15/10/26 19:42:21.44 7G3hAEBt.net
コレクションを外部に公開したいときによく使う
388:デフォルトの名無しさん
15/10/26 19:42:28.57 SRHIhdAJ.net
2006年頃の世界から書き込んでるんじゃないの
389:デフォルトの名無しさん
15/10/27 00:16:23.97 8C7djFoA.net
え?
390:デフォルトの名無しさん
15/10/27 06:35:15.42 vxRkO0y7.net
/// <summary>
/// ビットマップ(Bitmap)を回転する
/// </summary>
/// <param name="bmp">ビットマップ</param>
/// <param name="angle">回転角度</param>
/// <param name="x">中心点X</param>
/// <param name="y">中心点Y</param>
/// <returns></returns>
public Bitmap RotateBitmap(Bitmap bmp, float angle, int x, int y)
{
Bitmap bmp2 = new Bitmap((int)bmp.Width, (int)bmp.Height);
Graphics g = Graphics.FromImage(bmp2);
g.Clear(Color.Black);
g.TranslateTransform(-x, -y);
g.RotateTransform(angle, System.Drawing.Drawing2D.MatrixOrder.Append);
g.TranslateTransform(x, y, System.Drawing.Drawing2D.MatrixOrder.Append);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
g.DrawImageUnscaled(bmp, 0, 0);
g.Dispose();
return bmp2;
}
このコード少し中心がずれてさらになぜか1.2倍ぐらい拡大されてるんですが、いったいどうなってるんですか?
致命的なバグでもあるんでしょうか
391:デフォルトの名無しさん
15/10/27 07:31:28.81 AF18ul7Z.net
DrawImageUnscaledは5cmの画像を5cmで表示するメソッドだ
おそらくお前が期待しているものとは違う
普通にDrawImage使えばいい
関係ないけどDisposeなんか書くなusing使え
392:デフォルトの名無しさん
15/10/27 13:03:01.43 nTHAaiUE.net
また命令口調バカか
393:デフォルトの名無しさん
15/10/27 13:29:17.45 LyVSHq6d.net
また命令口調指摘厨か
394:デフォルトの名無しさん
15/10/27 13:43:42.84 oZ3zd0d4.net
テンプレートから外れたレスをするのをやめてください
「命令口調君って馬鹿だな」
です
正しくレスしましょうね
395:デフォルトの名無しさん
15/10/27 14:19:38.50 gDs0OAHt.net
Windowsフォームアプリケーションを使うとき
コンストラクタとLoadイベントと
usingとDisposeって
皆さんはどちらを使っているんですか?
396:デフォルトの名無しさん
15/10/27 14:24:46.83 g1+/LNmd.net
unity使ってたらバカにされるらしいけど
ここの人たちは自分でunityから作るような人たちなの?
397:デフォルトの名無しさん
15/10/27 15:10:56.72 oZ3zd0d4.net
はぁ?なに?被害妄想?
質問する前に病院行って問診してもらえよ
398:デフォルトの名無しさん
15/10/27 15:16:17.66 LyVSHq6d.net
>>383
コンストラクタとLoad/OnLoadは用途が別でしょ
>>382
命令口調君って馬鹿だな、まで読んだ
じゃなかったっけか
399:デフォルトの名無しさん
15/10/27 15:42:59.19 sDzKh5al.net
ウィンドウが生成される前にやれることならコンストラクタ。
ウィンドウが生成された後じゃないとやれないならLoadイベントなりOnLoadをオーバーライドしたりで。
usingが使える場面は、原則using。
適材適所で使えばいい。
400:デフォルトの名無しさん
15/10/27 16:09:37.28 scBMsQMX.net
なるほど分かりました
401:デフォルトの名無しさん
15/10/27 16:11:53.68 scBMsQMX.net
あれ?ID変わった
>>388は>>383です
402:デフォルトの名無しさん
15/10/27 17:27:59.94 vxRkO0y7.net
>>379
thx
403:デフォルトの名無しさん
15/10/28 04:40:41.67 wj9WG103.net
地震警報アプリを作りたいんですが
どうやって作ったらいいの?
(´・ω・`)
404:デフォルトの名無しさん
15/10/28 06:39:54.32 1FF+1WKV.net
Managerって名称をクラスに付けるな死ねって言われたんですが
やっぱり付けるとマズいですか?(WindowManagerとかViewManagerとか)
Manage(管理)って言われても具体的に何を、ど�
405:フような機能を管理してるのか分からないって言われました
406:デフォルトの名無しさん
15/10/28 07:21:56.07 8s7NCB3J.net
>>391
緊急地震速報は気象庁に問い合わせないとダメ
予報だからいい加減なソース使うと捕まるよ
>>392
その通り
407:デフォルトの名無しさん
15/10/28 08:37:02.75 UYNcQBr4.net
うん、プロジェクトマネージャーとか意味が分からんよな。
もっと具体的な名称にしてもらいたい
408:デフォルトの名無しさん
15/10/28 09:12:53.06 JFpDXlQ+.net
>>392
どのような機能を管理してるのかは知らんが
何とかManagerってクラス名なら、「何を」はわかるだろう
その命名がまずいかどうかはお前のとこの命名規則次第
409:デフォルトの名無しさん
15/10/28 09:22:50.56 Djn1jnu+.net
クラスの機能が名前を見ただけでわかるのは理想だけど、
思いつかなければ適当でも構わんと思うがな
設計書さえちゃんとしていればいい
410:デフォルトの名無しさん
15/10/28 18:54:27.94 8zJiOHJK.net
>>392
> Manage(管理)って言われても具体的に何を、どのような機能を管理してるのか分からないって言われました
で、それに対してちゃんと説明できるの?
説明できないなら、クラスの作り方がまずいか君がきちんと理解できてないってこと
説明できるならそれを端的に示す名前をつければいい
ただ、所詮数単語分しか使えないから >>396 の言う様にあまり凝ってもしょうがないので、コメントなり設計書を充実させた方がいい
411:デフォルトの名無しさん
15/10/28 19:04:19.10 UYNcQBr4.net
マネージャーが具体的になにやるかなんて説明する必要あるか?
タスク管理や、営業や、自ら作業を行うし、色々やる。
いわば、コンポーネント群にアクセスするためのAliasのようなもんで、自身はそれを受け持つ器にすぎないのだから、なんのインスタンスを持つかだけ書けばいいと思うが。
逆に言えば、マネージャー自身になるべくメソッドを持たせてはいけない。
412:デフォルトの名無しさん
15/10/28 19:22:16.11 se9H+oL4.net
マネージャー自身になるべくメソッドを持たせてはいけない。
マネージャー自身になるべくメソッドを持たせてはいけない。
マネージャー自身になるべくメソッドを持たせてはいけない。
初心者でよくわからんがなんか感動した。タイミングだろうが 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
413:デフォルトの名無しさん
15/10/28 20:32:14.12 3O8Xwln/.net
>>399
マジで若年性アルツハイマーの疑いがあるから病院で診てもらえ。
普通の人間はお前さんがやってるような繰り言を好まない(むしろ嫌悪感を感じる)が、脳にダメージがあると
お前さんのように繰り言や同じことの繰り返しに快感を感じるようになる。
414:デフォルトの名無しさん
15/10/28 21:17:58.21 se9H+oL4.net
>>400
そうなのか
最近おかしいので脳梗塞かと思ってたけど・・・その考えはなかった
しかし精神病だと言われて言ってみら正常だからもうくんなとか言われて恥をかいたので鵜呑みにできない
415:デフォルトの名無しさん
15/10/28 21:36:02.28 3nTbM/Mv.net
他人のアルツハイマーの疑いを指摘するより先に
自分の人格障害を疑えよ
416:デフォルトの名無しさん
15/10/28 21:40:04.01 N4hu8nHh.net
│↑
└┘
417:デフォルトの名無しさん
15/10/28 23:07:28.64 3O8Xwln/.net
>>401
真面目にそうだよ。
反復行動や繰り言はボケの初期症状。
2chでも実況とかで毎日同じレスを繰り返してる奴がいるけど、ああいう奴の何割かは確実にヤバい。
418:デフォルトの名無しさん
15/10/28 23:20:01.88 zTRdryA5.net
上のケツ穴からなにを偉そうなこと抜かしてんだ
糞して寝ろゴミ
419:デフォルトの名無しさん
15/10/29 00:05:27.68 y57Q0DlA.net
俺も毎日会社行く反復行動してるわ
ボケないように無職にならないと
420:デフォルトの名無しさん
15/10/29 19:46:57.90 3XC8GuXY.net
10万件程度のレコードをQueueで流しながら中身を色々処理したいのですが、多次元配列で格納してLinqToSqlで処理するか、DB連携してテーブル作成してSQLで処理するのと、どちらが良いでしょうか?メンテナンス性よりもどちらかというと処理スピードを重視しています。
421:デフォルトの名無しさん
15/10/29 20:34:52.83 QT8b22UI.net
Sparkでも使えば
422:デフォルトの名無しさん
15/10/30 01:22:44.08 wTNAYNO/.net
両方やってみて速い方にすれば?
423:デフォルトの名無しさん
15/10/30 04:36:04.75 9YpT7G8L.net
実行中にコードを書き換えたいんだが、変更しようとすると
アセンブリが読み込まれていない場合変更が許可されていないと出るんだがどうすればいい?
同一ソリューション内にクラスライブラリプロジェクトを作ってメインプロジェクトに参照設定したのでクラスライブラリーのコードを書き換てビルドするだけで
呼び出し先コードを動的に変化させられると思ったんだが甘かった
424:デフォルトの名無しさん
15/10/30 04:42:47.45 opwym8fe.net
動的コード生成はいくつか方法はあるけど
今ならLINQの式ツリーを使うのがベストかと思う
425:デフォルトの名無しさん
15/10/30 05:22:30.47 9YpT7G8L.net
式ツリーとか意味わからなすぎる
もっと簡単でいいんだけど
VS二つ立ち上げてdllの中実行するたびにdll自体を再読み込みする設定とかないの?
HDDぶっ壊れるから無理なのかな
426:デフォルトの名無しさん
15/10/30 05:47:54.39 opwym8fe.net
ライブラリは読み込んだら最後、アプリケーションドメイン単位でしかアンロードできないのでちょっとメンドクサイ事になるかもね
どういう事をしたいのか分かれば、どの方向性がいいか答えられるかもしれないけど、掲示板越しではちょっと難しいかもしれない
427:デフォルトの名無しさん
15/10/30 06:28:44.46 9YpT7G8L.net
アプリの起動と終了の時間が長すぎるのでゲームスクリプトとかいうのにたどり着いたんだが
簡単な式の変更だけでいいんだけど
HP -= attackポイント-defenseポイント
を
HP -= attackポイント-defenseポイント*スキル1
とかに細かく変更してバランスを取りたい
とりあえずCSharpCodeProviderとかいうのは全く意味がわからなかった
Assembly.LoadFrom(DLLのフルパス);をボタンに設定したが、DLL側のVSでアクセス拒否でコンパイルできない。
動的式変更ってみんなどうやってんだよ
428:デフォルトの名無しさん
15/10/30 06:32:27.31 opwym8fe.net
粒度が細かい変更なのでアプリケーションドメイン越しだと、問題が起こりそうですね
難解かもしれませんが、無理してでも式ツリーがベストだと思います
429:デフォルトの名無しさん
15/10/30 06:35:41.31 opwym8fe.net
ところで、ゲームという事は調整をする段階だけ使用して、製品版では固定となるという事はありますか?
それで良いなら、やり方はあるかもしれない
430:デフォルトの名無しさん
15/10/30 06:36:30.12 9YpT7G8L.net
>>415
了解
LINQの勉強から始めますw
ありがとね
431:デフォルトの名無しさん
15/10/30 06:48:24.54 9YpT7G8L.net
そこまで考えてなかった
速度が遅くなるならスクリプトってのは本体に戻すものなのかな
わからん
432:デフォルトの名無しさん
15/10/30 06:57:18.47 opwym8fe.net
遅くていいならdllなど使わず、いっそアプリケーション間通信とか使ってみれば良いのでは?
WFCとか
433:デフォルトの名無しさん
15/10/30 07:26:27.95 mUvrP2A4.net
そんなもん適当に沢山の式のパターン用意してからswitch(ファイルの値)で分岐したらいいだろ
もしくは 結果 = 係数1 * ポイント * ポイント + 係数2 * ポイント
みたいな行列の計算式として一般化して係数行列だけファイルから読むとかな (スキルの値もポイント行列に含める)
沢山変える場所があるから自由にソース弄りたいというなら小細工するよりいっそLuaでも組み込んだほうがいい
434:デフォルトの名無しさん
15/10/30 07:44:32.17 opwym8fe.net
>そんなもん適当に沢山の式のパターン用意してからswitch(ファイルの値)で分岐したらいいだろ
二度と見たくないコードになりそうw
435:デフォルトの名無しさん
15/10/30 08:10:06.51 mUvrP2A4.net
決まったら消すんだからどうでもいいでしょ
式ツリーって自分で言ってること分かってるんだろうか
自分でDSL作ってパースしてそれに従って式組み立てるんだぞ?
んなクソ面倒な再発明するくらいならスクリプト組み込むわ
436:デフォルトの名無しさん
15/10/30 08:16:59.27 opwym8fe.net
>>422
XMLで式書いて、式ツリーに変換してしまえば、数行の再帰ルーチン一個でできますが?
437:デフォルトの名無しさん
15/10/30 08:23:13.87 opwym8fe.net
式ツリーを提案したのは、dllでリンクの必要がある→かなりパフォーマンスにシビアな要求があると理解したからですので
速度いらないなら、式ツリーは無視でいいですよ
438:デフォルトの名無しさん
15/10/30 08:32:26.67 mUvrP2A4.net
>>423
それをDSLという
パラメータの値はどこから取ってくるの?それもXMLにいちいち書くの?
現実的にはいろいろ柔軟性を捨てて決め打ちすることになるだろうから、非常に限定的なDSLになると思うよ
どうせ限定的な使い捨てコードなんだったらそんな大袈裟なことはしたくないね俺なら
439:デフォルトの名無しさん
15/10/30 08:35:17.46 opwym8fe.net
>>425
何が言いたいのかよくわからんけど、知識なさすぎじゃねぇのw
お前、ずっとここに居座っているキティ回答者なんだろうけど、死ねばいいと思います
440:デフォルトの名無しさん
15/10/30 10:35:59.08 v/tjtbaN.net
いまどきXMLはねーよ
441:デフォルトの名無しさん
15/10/30 11:08:18.70 opwym8fe.net
XML嫌なら正規表現あるし式程度なら完全パースしても2000行には収まるだろうし
まぁ、知識なければ無理でしょうけどね、バカはバカなりにして回答者にならずに引っ込んで下さいって感じです
ゴミ回答でレスどんどん流れていくのは迷惑です
スラドで暴れるMS工作員といい、昨今MS周辺にキチガイ多すぎだよ
442:デフォルトの名無しさん
15/10/30 11:28:28.02 5k9fNgvi.net
正規表現なんか使ってパースするぐらいならXMLで良いわw
443:デフォルトの名無しさん
15/10/30 11:34:54.86 opwym8fe.net
やたら式ツリーに拘ってる流れですが、パフォーマンスはいならいみたいだから
アプリケーション間通信お勧めです
とだけ最後に
これなら独立してコンパイルもできるし、部分再起動もデバッグも容易
式ツリーは、パフォーマンスはでるがデバッグがファッキンな事になるので
444:デフォルトの名無しさん
15/10/30 11:38:18.84 opwym8fe.net
通信というと大げさに思えるかもしれないけど、結構ライブラリはそろっているし
なにより、WEBに情報量が多いので
キーワードはWFC
445:デフォルトの名無しさん
15/10/30 11:40:32.84 opwym8fe.net
×WFC
○WCFでした
446:デフォルトの名無しさん
15/10/30 11:41:56.65 mUvrP2A4.net
パフォーマンスいらないんならそれこそスクリプト組み込めばいいだろ
.NETアプリに簡単に組み込めるのはいくらでもあるし、COMでJScript呼んでもいい
WFC()なんかより遥かに簡単だよ
447:デフォルトの名無しさん
15/10/30 11:44:51.01 opwym8fe.net
>>433
まぁ、式の話だけならそれでもいいとは思うけど、dllでかつパフォーマンス要らないというのだから
言語を共通化しておきたい理由があるのかなと思っただけです
448:デフォルトの名無しさん
15/10/30 11:47:11.41 opwym8fe.net
話を意図を全く考えないで、次々と回答する人の話聞かない回答者は迷惑
と、ずっと流れを見ていて思う所
449:デフォルトの名無しさん
15/10/30 13:00:36.70 GDTU3KP4.net
言ってることはまともだけど
平日の午前中だけで15回もレスしてる奴がまともとはとうてい思えない現実
450:デフォルトの名無しさん
15/10/30 14:05:02.67 PGAJ1OT+.net
>>348と同一人物だろ
451:デフォルトの名無しさん
15/10/30 14:20:18.47 zaAGkshB.net
msdnにいる変人だろ
452:デフォルトの名無しさん
15/10/30 15:58:51.03 5vqzX8bU.net
コード中にリテラルべた書きするのって辞めた方がいいですか?
453:デフォルトの名無しさん
15/10/30 16:00:13.93 opwym8fe.net
そう思うのなら止めとけ、そんなの人に聞くような話ではないでw
454:デフォルトの名無しさん
15/10/30 16:13:31.41 5vqzX8bU.net
素人だし現場経験ゼロで友人もいないので
ネット掲示板以外で聞ける場所がないんです
455:デフォルトの名無しさん
15/10/30 17:05:36.71 GDTU3KP4.net
図書館でプログラミング作法でも借りて来て読めよ
456:デフォルトの名無しさん
15/10/30 17:45:05.20 5vqzX8bU.net
すみません、分かりました。
最後に、作法の本でお勧めのタイトル教えて下さい
457:デフォルトの名無しさん
15/10/30 17:58:32.30 PGAJ1OT+.net
同じ文字列とか定数値を複数の箇所で使うのならconstやそれ相当にしたほうがいいのは分かるでしょ?
定数としてまとまってると変更するとき楽だし
書捨てコードならそんなことはしないけど
458:デフォルトの名無しさん
15/10/30 18:09:03.11 5vqzX8bU.net
それは分かります
ただ、一度しか使わない判定文とかはローカル変数切るの面倒くさいなと思って
適当なリテラル書いちゃう事もあるんですが、どうなのかなと思って
459:デフォルトの名無しさん
15/10/30 18:18:01.14 TILHDHb5.net
>>445
リテラルを避ける動機として変更の容易さはよく挙げられるけど実際はむしろ多いケースじゃない。
リテラルを避ける動機は、プロパティやメソッドにちゃんとした名前を付けるのと同じ。
それが何を意味しているのかのメタ情報を付け加えるため。
だからたとえ一回しか出てこない定数でも、それが何を意味しているのかをコード上で明示する必要が
あると思えば、それがちゃんとした名前を与える動機になる。
460:デフォルトの名無しさん
15/10/30 18:36:25.26 5vqzX8bU.net
>>446
なるほど、よく分かりました
ありがとうございました。
461:デフォルトの名無しさん
15/10/30 19:51:46.37 MYsCE15E.net
#define ZERO (0)
462:デフォルトの名無しさん
15/10/30 20:12:53.58 qxv1tbgN.net
その場限りでしか使わないような定数で、なおかつ変更する必要もないようなものは、直接指定する。
463:デフォルトの名無しさん
15/10/30 20:13:36.95 FKezdCzi.net
>>443
ソフトウェア作法
ついでにプログラム書法も読め
464:デフォルトの名無しさん
15/10/31 01:16:24.67 rX+RYEJQ.net
読みやすいコードを書く努力は、他人のみならず「未来の自分」という別人に向けた優しさだ
465:デフォルトの名無しさん
15/10/31 10:34:56.02 bc83RtfA.net
3日後の自分は他人
466:デフォルトの名無しさん
15/10/31 13:16:21.42 Yq2ZBfqO.net
リファクタリングって部屋掃除する程度の当然のことなのに、優しさどうとかレベル低すぎだろ。
467:デフォルトの名無しさん
15/10/31 13:46:46.22 CR8bSv/n.net
高レベラーはこんなところにいなくていいんですよ
468:デフォルトの名無しさん
15/10/31 19:22:29.59 qtS/NLO9.net
VS2010で.net4.0ClientProfileをターゲットプラットフォームとして作成したアプリケーションを、
VS2015で同様に開発を継続しても不具合とかないですよね?
469:デフォルトの名無しさん
15/10/31 21:27:12.40 aiNNK1Xk.net
>>455
C#のバージョンが違うから出ないとも限らない
470:デフォルトの名無しさん
15/10/31 22:30:49.30 nJia6E4E.net
VS2015はなんかIDE不安定なんで用心しといた方が良いかもしれない
471:デフォルトの名無しさん
15/10/31 23:44:21.04 XeEgNn+4.net
結構落ちるよな2015のIDE
Roslynのお陰か起動やたら遅いし
472:デフォルトの名無しさん
15/11/01 00:43:39.73 ak4S1goK.net
Windows8が出て、合わせて登場した2013あたりから
マイクロソフト製品はどれも品質がひどく悪くなっている
今は、学生はともかく業務の人は別途マシンを用意して試験期間を経てからにしたほうが無難
473:デフォルトの名無しさん
15/11/01 00:46:56.25 ak4S1goK.net
URLリンク(it.srad.jp)
こういうのマジで勘弁してほしいんだけどな
474:デフォルトの名無しさん
15/11/01 03:12:33.04 dH8H+Y8O.net
多次元配列にテーブルみたく、フィールド毎、違う型とか格納できますか?
475:デフォルトの名無しさん
15/11/01 03:21:18.28 ak4S1goK.net
何をしたいのかよくわかりませんが、フィールドにobject型かdynamic型を使えば目的は達成できるでしょう
476:デフォルトの名無しさん
15/11/01 08:56:11.81 xZAu8pjv.net
ツールストリップ内のコンボボックスのサイズをフォームのサイズ変更時に自動調節しようとしているのですが
サイズを拡大する時は正常ですが、縮小時に変化幅が小さいと正常に表示されるのですが
変化幅が大きいと表示されませんが何故でしょうか?
private void Form1_SizeChanged(object sender, EventArgs e)
{
toolStripComboBox1.Width = (toolStrip1.Width - 300);
}
以下も同じ
private void toolStrip1_SizeChanged(object sender, EventArgs e)
private void toolStrip1_Resize(object sender, EventArgs e)
private void Form1_SizeChanged(object sender, EventArgs e)
private void Form1_ResizeEnd(object sender, EventArgs e)
private void Form1_Resize(object sender, EventArgs e)
477:デフォルトの名無しさん
15/11/01 11:39:20.34 I6OT07I5.net
アプリケーションの実行フォルダをApplication.StartupPath プロパティで取得する事は判ったのですが
dobonに載っていた下記のコードの何処に追加したらよいのか判りません
よろしくお願いします
//ファイルを上書きし、Shift JISで書き込む
System.IO.StreamWriter sw = new System.IO.StreamWriter(
@"C:\test\1.txt",
false,
System.Text.Encoding.GetEncoding("shift_jis"));
//TextBox1.Textの内容を1行ずつ書き込む
foreach (string line in TextBox1.Lines)
{
sw.Write(line + sw.NewLine);
}
//閉じる
sw.Close();
478:デフォルトの名無しさん
15/11/01 12:06:14.89 VEmEMCzM.net
>>464
1.txtを"C:\test\"じゃなくてアプリケーションの実行フォルダに出力したいってことなら
「@"C:\test\1.txt"」を「Path.Combine(Application.StartupPath,"1.txt")」に置き換えればいいんじゃね
479:デフォルトの名無しさん
15/11/01 12:06:43.65 iCjS0aFW.net
メソッド内。
480:デフォルトの名無しさん
15/11/01 14:05:43.27 EzyPWtsW.net
C#はクラス数約3000
付随のプロパティーやメソッドが
どのような便利機能があるのかを知るだけでも大変
更に
詳細を調べ
実装するに至るまでがまた大変
Microsoft 地獄
481:デフォルトの名無しさん
15/11/01 14:11:08.59 8yFkftFr.net
へー、すごいね
帰っていいよ
482:デフォルトの名無しさん
15/11/01 16:19:50.04 aracFvq3.net
非同期に来るネットワークストリーミングデータを
ファイル出力(またはDBに出力)したいんだけど
一番良い実装方法ってないでしょうか
自分の頭だと
1.ストリームデータが到来するたびにFile.Open(Mode.Append)で書き込んでFileCloseする
ぐらいしか思いつかないんです
483:デフォルトの名無しさん
15/11/01 16:46:54.21 8wBAqxRo.net
>>469
> 一番良い実装方法ってないでしょうか
お前の「一番良い」の定義によるわな
484:デフォルトの名無しさん
15/11/01 17:19:43.69 gG04aPZk.net
出力する関数だけ作っておいて、その先は差し替えられるようにしとけばいいんじゃないかな
485:デフォルトの名無しさん
15/11/01 17:25:41.75 qxPDGDEe.net
unityC#の話なんですが
・Aをした後Bをして、Bの後にCをしてCの後にDをする
・A~Dまではメソッド化してMethA~MethDがある
これを
void Main()
{
MethA();
MethB();
MethC();
MethD();
}
ではなく
MethA(){ (の終端で)MethB();}
MethB(){ (の終端で)MethC();}
MethC(){ (の終端で)MethD();}
とメソッド内で次々メソッドをコールしていくのってアンチパターンですか?
486:デフォルトの名無しさん
15/11/01 17:34:19.28 OsaYEXf6.net
メソッドの使い方として…
void Main()
{
ご飯を食べる();
歯を磨く();
着替える();
家をでる();
}
ではなく
ご飯を食べる(){ (の終端で)歯を磨く();}
歯を磨く(){ (の終端で)着替える();}
着替える(){ (の終端で)家をでる();}
}
とメソッド内で次々メソッドをコールしていくのってアンチパターンですか?
487:デフォルトの名無しさん
15/11/01 17:34:31.06 fyC3CDzJ.net
>>472
やめなさい。メソッドはgotoではない。
中で呼んでるメソッドの処理も含めてそのメソッドの処理だ。
コボラーはよくそういうコード書くよ。
PERFORM INPUT_CHECK.で全ての処理が終わるの。
488:デフォルトの名無しさん
15/11/01 17:35:49.13 OsaYEXf6.net
中級以上の人でもメソッドが何かわかってない人がけっこいる
489:デフォルトの名無しさん
15/11/01 17:36:57.57 qxPDGDEe.net
>>474
ありがとうございます。
それってメソッド内で別メソッドをコールする事自体ダメって事ですか?
それとも基本ダメだけどケースバイケースという意味ですか?
490:デフォルトの名無しさん
15/11/01 17:38:25.26 OsaYEXf6.net
歯を磨くがご飯を食べるというメソッドの中の行為だと思うか?
さらに言うとご飯を食べたら必ず家を出ることになるけどそれでいいのか?
491:デフォルトの名無しさん
15/11/01 17:38:34.51 qxPDGDEe.net
>>473
すみません・・・よく分かりません・・・
492:デフォルトの名無しさん
15/11/01 17:40:21.93 OsaYEXf6.net
ゆ、ゆとってるな…
493:デフォルトの名無しさん
15/11/01 17:42:33.30 VEmEMCzM.net
なんでコールしたいのかを説明した方がいいんじゃないの
494:デフォルトの名無しさん
15/11/01 17:42:55.19 OsaYEXf6.net
メソッドは単に手順の塊だけにするべきじゃない
意味的にまとまった単位にすべき
495:デフォルトの名無しさん
15/11/01 18:28:41.58 tijcq3hU.net
納期があるから無理。
496:デフォルトの名無しさん
15/11/01 18:43:27.56 NUcI8Hig.net
>それってメソッド内で別メソッドをコールする事自体ダメって事ですか?
NO
メソッド内で別メソッドをコールしても良い
>それとも基本ダメだけどケースバイケースという意味ですか?
NO
基本的にOKだがケースバイケースでだめな場合がある
>>472などはだめな場合の典型だ
このようなコードを書くと、テスト担当者や将来これをリファクタリングする者が、
ぶち切れて君を殴りに来るだろう
497:デフォルトの名無しさん
15/11/01 19:07:02.64 qxPDGDEe.net
理由とかそれ以外の事は分かりませんが、とにかくダメだという事だけは分かりました
ありがとうございます
498:デフォルトの名無しさん
15/11/01 19:16:41.45 SU1ih8K9.net
>>484
>>473とかの説明は分かりやすいと思うけどね。
茶化すだけではなくて、本当に学びたいのなら、
>>480の指摘通り、君のコードを晒してみるべきだよ。それは473のように日本語でもいい。
俺は多分 MethA,B,C,D の切り方に間違いがあるのだと思うが。
499:デフォルトの名無しさん
15/11/01 19:28:16.61 ps5s1FTp.net
別にそうスケジュール決まってて、必ずそのフローになるならいいじゃん。
仕様変更がないならね
500:デフォルトの名無しさん
15/11/01 22:15:26.87 nfigy2gy.net
すみません。質問なのですが、Visual StudioでWindowsフォームを作成したとき、
○○.vb
○○.Designer.vb
○○.resx
の3つが作成されますが、○○.resxはどういったときに使うのでしょうか?
501:デフォルトの名無しさん
15/11/01 22:29:30.44 yv99Jyne.net
>>484
ひとつのメソッドで完結してなきゃダメだよ。
その後の動作に一貫性があるなら内包すべき
502:デフォルトの名無しさん
15/11/01 22:36:12.65 qJZnh0GV.net
>>487
vbスレで聞けと言いたい所だが、テキストエディタで中身開いてみれば大体分かるよ
503:デフォルトの名無しさん
15/11/01 22:55:30.95 nfigy2gy.net
ごめんなさい。resxファイルの中身を見てもよくわかりません。
○resheaderってなに?
○xsdってなに?
○xsd要素内に長々と設定が書かれているけどこれはなに?
疑問が増えてしまったのですが…。
504:デフォルトの名無しさん
15/11/01 23:01:09.49 nfigy2gy.net
ごめんなさい。疑問が湯水のように湧き上がるので、続いて質問いたします。
C#では大文字で始まるStringと小文字で始まるstringがありますが、
この2つに何か違いなどはあるのでしょうか?
505:デフォルトの名無しさん
15/11/01 23:01:58.94 83j3eZbo.net
無い
506:デフォルトの名無しさん
15/11/01 23:02:53.98 nfigy2gy.net
>>492
ありがとうございます
507:デフォルトの名無しさん
15/11/01 23:07:00.98 nfigy2gy.net
まだ疑問があります。すみません…。
object型に存在しないメソッドを記述してもIDEがエラーを検出してくれないのですが、
これは正しい挙動なのでしょうか?
他の型ではIDEがきちんとエラーを検出してくれます。
508:デフォルトの名無しさん
15/11/01 23:11:08.80 83j3eZbo.net
拡張メソッドがある時はエラーにならない
それ以外はエラーになるはず
509:デフォルトの名無しさん
15/11/01 23:14:10.19 nfigy2gy.net
今Visual Studio Communityをダウンロード中なので、
拡張メソッドがない時にきちんとエラーが出るかどうかを試してみます。
回答ありがとうございます。
510:デフォルトの名無しさん
15/11/01 23:19:27.21 qJZnh0GV.net
>>490
タグは別に理解しなくていい、した方がいいかもだけど
ファームにコントロール追加してプロパティを設定してからresxの中身見てみろ
>>494
vbの話じゃないだろうな…
511:デフォルトの名無しさん
15/11/01 23:19:40.79 nfigy2gy.net
今僕は、exeファイルやdllファイルがILで記述されているという認識を持っているのですが、
これであっているでしょうか?
できればexeやdllのILを読んでみたいのですが、おすすめのツールなどはありますでしょうか?
もう本当に、何度も質問してすみません…現実に質問できる人がいなくて…
512:デフォルトの名無しさん
15/11/01 23:21:32.65 qJZnh0GV.net
まずgoogleで検索しような
513:デフォルトの名無しさん
15/11/01 23:24:36.60 MnKC4BnX.net
>>498
.NET Frameworkに同梱のildasm.exeで読める
本格的に解析するならオープンソースのILSpyが便利
514:デフォルトの名無しさん
15/11/01 23:24:42.06 nfigy2gy.net
Googleで検索して答えを得ても、あまり楽しくないんですよね。
できれば同じプログラマの方から直接答えをいただきたいというか…
この気持ちわかりませんか?
515:デフォルトの名無しさん
15/11/01 23:28:37.70 ak4S1goK.net
分からないし、そういう質問はハタ迷惑だね
516:デフォルトの名無しさん
15/11/01 23:42:15.83 2F0TVXaS.net
調べるのが楽しくないようなら、プログラマは向いてないかも
517:デフォルトの名無しさん
15/11/01 23:46:40.91 SU1ih8K9.net
>>501
お前、向いてないと思うぞ。
プログラミングは探求心と好奇心があって自己完結できる奴じゃないと上達しにくい。
ググレばすぐに出てくることを質問されても、迷惑でしかない。
構ってちゃんは死ねの世界だよ。
518:デフォルトの名無しさん
15/11/01 23:49:41.32 OsaYEXf6.net
>同じプログラマの方
なにか君は違う分野の人だと思うよ
519:デフォルトの名無しさん
15/11/02 00:10:01.74 lz5NDAKO.net
自分で調べて、とりあえず試す、そして理解することができないやつにプログラミングは無理。
520:デフォルトの名無しさん
15/11/02 00:52:00.08 LDPQCdy0.net
全否定にワロタ
521:デフォルトの名無しさん
15/11/02 01:41:06.91 w3sTMEno.net
ここじゃなくてteratailとかで聞けよ
プログラマーの皆さん助けて…とか広告出してるから
如何にクソな質問でも答えるんだろ?たぶん
stackoverflowは止めとけ
お前なんか顔面にグーパンぶち込まれて終わりだから
人間的なリアクションすら期待できないぞ
522:デフォルトの名無しさん
15/11/02 01:55:56.07 ZkM1wHMy.net
自分で調べて解決できないことだけを質問して。
そういう質問には答えが返ってこないことが多いけどな。
523:デフォルトの名無しさん
15/11/02 02:06:35.75 lz5NDAKO.net
良い方法があるぞ。
ニコ生でプログラミング放送すればいい。
「初心者です。C#勉強してます。アドバイスください」みたいにしてさ
暇な教えたがりが丁寧に教えてくれるよww
524:デフォルトの名無しさん
15/11/02 02:27:46.08 2uUBRP/w.net
良い方法があるぞ、だとさ。
誰に威張ってるつもりなのかね。馬鹿じゃなかろうか。
525:デフォルトの名無しさん
15/11/02 02:33:52.94 mV+KRjUE.net
フォームにGDIで描画したあとなにに、その上に貼ってあるコントロールinvarid()とtranslateで透過しない仕組みを俺に教えてみろ
526:デフォルトの名無しさん
15/11/02 02:47:30.12 mV+KRjUE.net
>>509
なるほど
527:デフォルトの名無しさん
15/11/02 03:21:28.27 8j1BqD6a.net
>>512
国語の勉強から始めようか
528:デフォルトの名無しさん
15/11/02 06:18:48.27 K38GcwBv.net
>>463
自己解決しました
if (toolStrip1.OverflowButton.Visible)
{
toolStrip1.Width = toolStrip1.Width - toolStrip1.OverflowButton.Width - toolStrip1.OverflowButton.Margin.Horizontal;
}
でうまく行きました。
529:デフォルトの名無しさん
15/11/02 07:45:31.68 jIDLqNeP.net
googleで調べないからウゼーじゃなくて
かまってちゃんウゼェーなんだけどな
キチガイ回答者死ねと同じ理由で、どっか行きやがれって事だ
同一人物の自演くせぇけどw
530:デフォルトの名無しさん
15/11/02 11:09:13.20 /Om+5HJh.net
>>516
なんか、精神レベル14歳だな。
別にそれでも知ったことじゃないけど、わざわざこんなところで開陳して嬉しいのか?
531:デフォルトの名無しさん
15/11/02 11:58:16.38 jIDLqNeP.net
話の流れ無視して自分のしゃべりたい事ばかり回答する
強引に話題を正しい方向にもっていったら、頭おかしい初心者が現れる
この掲示板は以下それがずっとループしている、同一人物以外には見えない
本物の初心者が来たとき間違って叩いて掲示板が荒れると具合が悪いからとっとと死んでくださいって感じだね
532:デフォルトの名無しさん
15/11/02 14:57:34.97 lyk3EOWa.net
久しぶりにmsdnでクラスのドキュメント見てると
えらい見づらくなってる ていうか、バグってる
なんで、IEで表示して、重なって表示してまともに操作できないのか理解できない
一番 右に表示されるべき 「解決策はありますか」等が左に重なって表示されてて
まともに、クリックにも反応しないし
533:デフォルトの名無しさん
15/11/02 15:00:31.80 9+4jFg/5.net
プログラマがIEなんか使うな
IEはテストのときだけ使うもんだ
534:デフォルトの名無しさん
15/11/02 15:15:44.14 lyk3EOWa.net
いや、余計なソフトインストールしたくないし
しかし、最近IE使って、スクリプトエラーでHP見れなかったりいいことないわ
(Webサイトのせいにしてるけど、他のブラウザなら見れるだろうしw)
MSの本気が見たい
535:デフォルトの名無しさん
15/11/02 16:23:32.54 ysex+PeP.net
IE11で普通に見れるが
IE8使ってるならご愁傷様
536:デフォルトの名無しさん
15/11/02 17:05:07.62 lyk3EOWa.net
IE11なんだけど
互換性表示にしてみたけど、変わらず
なんかの設定があるのかな?
ともあれいろいろ試してみます
537:デフォルトの名無しさん
15/11/02 17:40:45.22 lyk3EOWa.net
原因判明
拡張保護モードに
538:よるものだった msdnの表示も、HPが見れない件も(Web サイトに問題が発生したため…) 拡張保護モードはそのままで、信頼済みサイトの登録したら両方とも治った >>522さんのおかげだね あと、スレチ悪かった
539:デフォルトの名無しさん
15/11/02 20:30:30.83 6BSNMQg5.net
昔のHelpViewerみたいなのはもうないのかね
ローカルにヘルプインストールするやつさ
540:デフォルトの名無しさん
15/11/02 21:09:41.05 lyk3EOWa.net
ホントそう 10Gぐらいあったけど
今のmsdnに比べれば天国
541:デフォルトの名無しさん
15/11/02 21:20:07.89 KsZtwWae.net
>>525
ヘルプ→ヘルプ設定の変更→ヘルプビューアーで起動
メニューぐらいしっかり見よう
542:デフォルトの名無しさん
15/11/02 21:20:21.31 i/oY4D53.net
URLリンク(msdn.microsoft.com)
オフラインのヘルプ コンテンツをインストールする
Visual Studio をインストールした後、オフラインで使用できるように、
追加のヘルプ コンテンツをダウンロードすることができます。
目が節穴なのか、
目のドライバをインストールするのを忘れているのか、
頭のサポートが切れているのか
543:デフォルトの名無しさん
15/11/02 21:23:00.50 6BSNMQg5.net
>>527
>>528
おー
機能2015インスコしたばっかだったので
544:助かりましたわー
545:デフォルトの名無しさん
15/11/02 21:23:06.26 5XQF34dG.net
「インターネットで正しい答えを得る最良の方法」を実行したにすぎない。
現に成功している。
546:デフォルトの名無しさん
15/11/02 21:33:44.76 6BSNMQg5.net
いけずおっしゃらんと。
だけどダウンロード速度おっそ!
547:デフォルトの名無しさん
15/11/02 22:42:45.43 oXEakMpl.net
>>497
おっしゃるように、C#ではなくVBでした。勘違いしてしまって誠に申し訳ありません。
.resxのほうは、「リソースの追加」をすることで.resxファイルが書き換えられることはわかりました。
でもいくらフォームにコントロールに追加してそのプロパティを変えても、
.resxの内容は書き換わりません…。どういうことなのでしょうか?
548:デフォルトの名無しさん
15/11/02 22:47:53.10 oXEakMpl.net
>>500
丁寧に教えていただきありがとうございます。
まさか既にデコンパイラプログラムがパソコン内に入っているとは思いませんでした。
これからはildasm.exeでILを読むことにします。
549:デフォルトの名無しさん
15/11/03 09:42:13.71 Lrk43gML.net
>>532
そういうのは*.designer.csのInitializeComponentの中に書かれる
550:デフォルトの名無しさん
15/11/03 11:55:19.90 zP0KaUIs.net
IL読んでも全く理解できなそう
551:デフォルトの名無しさん
15/11/03 12:03:03.87 VtUJC+iX.net
初心者って知らなくても良い(その時点で到底理解できないこと)までやろうとするよなw
.resxは、リソース(画像とか音声・テキストデータ)関係のファイルでVSが自動生成しているんだが、別に中身がどうとか気にする必要はない。
そういうのを真剣に気にして終いには、ILを読むとかわけのわからないことに手を出そうとする。
552:デフォルトの名無しさん
15/11/03 12:34:16.13 56qTwYt/.net
doubleをdblと省略する表記方法はありますか?
553:デフォルトの名無しさん
15/11/03 12:35:33.64 iiu9ggf5.net
100MB程度のテキストファイル整形して読みたいのですがWebBrowserではちょっと重過ぎます
分割で読み込めればいいのですがいい方法ありませんか?
554:デフォルトの名無しさん
15/11/03 14:08:45.19 zP0KaUIs.net
exeファイルがILだからILを読むとかプログラミング言語の存在理由を理解してなさそう
コンピュータは全部機械語での動作だから機械語の勉強した方がいいと思うよ
555:デフォルトの名無しさん
15/11/03 14:33:19.93 HNCOBt+u.net
皆様に不快な思いをさせて申し訳ありません。
リソースファイルについてですが、Lockedプロパティの値を変えたときにリソースファイルが書き換えられました。
どうやら、コントロールが持てない情報はリソースファイルが利用されるみたいです。
>>497さんの言っていることが分かりました。
お答えいただいた方々には本当に感謝しています。ありがとうございます。
また一つ疑問が生まれたので質問いたします。
var table = new DataTable();
...
table.Rows.Where(...
このように記述したとき、RowsにはWhereメソッドがないとIDEに怒られます。
DataRowCollectionクラスはIEnumerableインターフェースを実装しているのに、なぜWhereメソッドが使えないのでしょうか?
556:デフォルトの名無しさん
15/11/03 14:41:50.95 VtUJC+iX.net
Whereが必要としているのは、IEnumerableではなく、IEnumerable<T>だから
557:デフォルトの名無しさん
15/11/03 17:08:20.36 wuOw+s8i.net
日本語解説サイト少ないね。最新の情報知るには海外サイト見ていくしかないのか
558:デフォルトの名無しさん
15/11/03 17:17:21.05 VtUJC+iX.net
日本語の解説サイトなんて、2008年ぐらいのまま止まってるのばかりだろ。
559:デフォルトの名無しさん
15/11/03 17:19:13.97 nnAxfjVL.net
C#とmysqlでアプリ作っていてるけどサーバーが外部でセキュリティ的に心配なので
すくなくてもSSLで接続したいのだが、mysqlサーバ側のsslを有効にする方法が見つかるのだけど
visualstudio側でデータソースに設定したいときにどうしたよいかの手段が見つからない
C# mysql ssl あたりでぐぐってもこれといって方法が見つから
560:ないのだけど、 なにかヒントになるものがあればアドバイスください
561:デフォルトの名無しさん
15/11/03 17:58:17.90 UfQouXyC.net
>>537
using dbl = System.Double;
でもこんなことすんなアホって絶対言われる
自分も絶対後悔する
562:デフォルトの名無しさん
15/11/03 17:59:19.49 6ritcPOX.net
今はどうやってつないでんの?
MySQL Connector/Net の場合ならここでなんとかならんかね
URLリンク(dev.mysql.com)
563:デフォルトの名無しさん
15/11/03 18:06:03.76 6ritcPOX.net
sshのが楽とは思うし、サーバ側で完結させてデータだけSSLでRESTfullとかでやるのもいいかと
564:デフォルトの名無しさん
15/11/03 18:29:46.19 VtUJC+iX.net
>>545
>>537
意味不明に略したら自分も他人もわからなくなるから、略してはいけない。
誰もが知ってるような単語は、略式を使う。
565:デフォルトの名無しさん
15/11/03 18:44:00.86 /yUCkyPR.net
間違いさえなければ別にforだろうがforeachだろうが好きなの使え派だったけど、他人のfor文終了条件ミスで半日潰したりすると流石に撲滅したくなるね
つーか皆いい加減LINQ使おうよ・・・
566:デフォルトの名無しさん
15/11/03 19:27:35.29 LOZNcNC7.net
>>549
自分はLINK禁止にされたから辛かった。
567:デフォルトの名無しさん
15/11/03 19:28:02.46 LOZNcNC7.net
間違ったLINQだな。
568:デフォルトの名無しさん
15/11/03 19:39:28.03 VtUJC+iX.net
LINQってそんなに難しいか?
むしろ、forとかwhile使うよりわかりやすいと思うんだが…
569:デフォルトの名無しさん
15/11/03 19:40:37.51 RYOZjHqX.net
LINQってforやwhileの代わりに使うものだったか?
570:デフォルトの名無しさん
15/11/03 19:47:07.94 CJf+XPA2.net
C#のlambdaは関数型から来た人が使うものであって
命令型の延長から来た人には理解できん類のもの
実際C#のlambdaシンタックスは初見からするとノイズが多すぎて、理解できないだろう
オブジェクト指向なのになんでここまで関数がでしゃばるのか
述語デリゲートが、なぜ普通のbooleanでダメなの?
っていらん疑問ばかりついてまわる
571:デフォルトの名無しさん
15/11/03 19:51:39.65 UfQouXyC.net
ラムダ式とLINQは関係ない
572:デフォルトの名無しさん
15/11/03 19:57:46.67 Lrk43gML.net
LINQアレルギーな奴ってろくに使ってないだけだから
そこにラムダ絡めちゃってさらに異質なもの認定してるだけ
573:デフォルトの名無しさん
15/11/03 20:05:19.20 56qTwYt/.net
>>545
ありがとうございました。
574:デフォルトの名無しさん
15/11/03 20:07:11.40 sXl2Uj86.net
すいません質問なんですけど
ほかのアプリのクライアント領域を取得したいんですが
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
こっちを使うとそれっぽい値がはいってるんですが
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);
こっちを使うと 座標(0,0) しか入ってないんですよね…
原因に心当たりのある人いらっしゃいませんか?
よろしくお願いします
575:デフォルトの名無しさん
15/11/03 20:18:09.71 QAKXUKz2.net
C#の拡張の歴史をみると >>554 の人が誤解していると思われる
実はLINQとラムダ式は大いに関係がある、式ツリーの実装のために作られたようなものだし
それがなければ、無名デリゲートで十分だった
むしろラムダ型という用語にも関わらず関数型とは関係はなくはないが実質関係無いという印象
関数型が好きな人は、C#におけるこの用語は勘違いしやすいかもしれない
まぁ、哲学的に考えればの話だけど
576:デフォルトの名無しさん
15/11/03 20:25:04.88 UfQouXyC.net
>>558
クライアント矩形だから位置は(0,0)に決まってますねー
親ウィンドウに対する相対位置を知りたいなら
GetWindowRectしてからMapWindowRectしないとー
577:デフォルトの名無しさん
15/11/03 20:30:37.38 sXl2Uj86.net
すばやい返事ありがとうございます
Mapの仕方がよくわからないんですけど
とりあえず単独で使うだけではだめなんですね
もう少し調べてみます
ありがとうございました
578:デフォルトの名無しさん
15/11/03 20:30:43.03 UfQouXyC.net
LINQなんて最初はコレクションに対する便利機能てんこ盛りの拡張メソッドという認識でOKじゃね?
罠とかあるから習熟してから突っ込んで考えればいいんであってー
579:デフォルトの名無しさん
15/11/03 20:32:31.59 VtUJC+iX.net
いちいち、delegate() { return x * 2; } とか書いてられないから、() => x * 2 のように簡潔に書けるようになったのではないか。
式ツリーのラムダ式とLINQのWhereとかで使われるラムダ式は、別物だと思う。
ラムダとか言ってるけど、所詮、デリゲートだし、シグネチャさえあえばメソッドを渡すこともできる。
() => x * 2 こういう表記の仕方をラムダ式と呼んでる程度でしかない。
580:デフォルトの名無しさん
15/11/03 20:53:44.50 QAKXUKz2.net
>>563
内部的な型が違うんだよ int a; の a と 3 はどちらもint型だが、後者には定数という属性も内部的には付与されている
コンパイラを作る側の人は意識しているが、使う側の人には意識させないように作られている
ある種の自動変換が入っているんだ
ラムダ式をデリゲートとしてしようしようとすると、自動的にラムダ式についているCompile()メソッドが発動してデリゲート型に変換してしまう
581:デフォルトの名無しさん
15/11/03 20:54:59.02 HNCOBt+u.net
>>541
ありがとうございます。解決しました。
しかし、なぜDataRowCollectionクラスがIEnumerable<DataRow>の実装でないのか疑問ではあります。
まあ歴史的な理由だとは思いますが…。
(例えばDataRowCollectionクラス実装時はジェネリックという概念がなかったとか…)
582:デフォルトの名無しさん
15/11/03 20:56:16.62 56qTwYt/.net
asp.netで
DataTable dt = new DataTable();
GridView1.DataSource = dt;
とやって、2次元のテーブルの中身をグリッドビューにEXCELの画面みたいに
出しているのですが、セルの中で改行させる方法が分かれば教えて下さい。
583:デフォルトの名無しさん
15/11/03 20:59:48.89 QAKXUKz2.net
DataSetクラスはジェネリックスの無かった.NET1.0の頃からあるからね
ジェネリックのDataSet欲しいね・・・
584:デフォルトの名無しさん
15/11/03 21:10:25.83 VtUJC+iX.net
>>565
ジェネリックができたのは、.NET 2.0。それ以前は、ジェネリックそのものがなかった。
DataRowCollectionあたりができたのは、.net 1.0だから当然、ジェネリックではない。
後からがIEnumerable<DataRow>ぐらい付け足せるだろうと思うかも知れないが、既存の古いコードを破壊しかねないという危険性がある。
非ジェネリックなものは、rows.OfType<DataRow>() でがIEnumerable<DataRow>に変換して利用するのが吉だろう。
585:デフォルトの名無しさん
15/11/03 21:25:41.32 Q+Hc78/A.net
URLリンク(ideone.com)
すみません...
このプログラミングの実行順序?というか解説を
お願い致します..
586:デフォルトの名無しさん
15/11/03 21:32:28.64 VtUJC+iX.net
>>569
断る。スレタイの言語名1000回読んで出直してこい。
587:デフォルトの名無しさん
15/11/03 21:36:42.56 Q+Hc78/A.net
あ、Cじゃないスレでしたね
すみませんでした
588:デフォルトの名無しさん
15/11/03 21:37:56.39 Qi78cw7w.net
どうでもいいけどヘタクソなサンプルだなあ
これ見て再帰スゴイとか思う学生がいるとは思えない
589:デフォルトの名無しさん
15/11/03 21:41:06.36 QAKXUKz2.net
キチガイ回答者のかまってちゃん発動かいな
死んでおけ
590:デフォルトの名無しさん
15/11/03 21:42:15.24
591: ID:Q+Hc78/A.net
592:デフォルトの名無しさん
15/11/03 22:07:18.95 UfQouXyC.net
aより前の文字コードがきたらどうすんだろ
593:デフォルトの名無しさん
15/11/03 22:40:42.74 UVzGbDip.net
サンプルなんだから特定の条件下で動けばいいんだろ。
この程度は自分なりにでも解析をしてから分からないところだけを質問して欲しいがな。
594:デフォルトの名無しさん
15/11/03 22:42:31.39 /yUCkyPR.net
DataTableExtensionsでいいんじゃね?
595:デフォルトの名無しさん
15/11/05 22:45:40.69 6rpVQh8a.net
超初歩的な質問ですみません
インターフェイスクラスを実装した構造体クラスがあって、その構造体クラスのインスタンスをあるメソッドに渡すとします。
そのメソッドの仮引数の型はインターフェイスクラスにしておきます。
このときに、メソッドの仮引数が値渡しであればコンパイルエラーとならないのに、参照渡しにするとエラーとなる理由はなぜなのでしょうか?
596:デフォルトの名無しさん
15/11/05 23:10:16.20 ExWVN0qD.net
>>578
構造体なのかクラスなのかはっきりせい
597:デフォルトの名無しさん
15/11/05 23:15:59.04 WQByrXLp.net
何言ってるかさっぱり分からん
598:デフォルトの名無しさん
15/11/05 23:17:05.85 JipnsoZF.net
>>578
参照渡しはメソッド側で引数に値を代入して書き換えできる
同じインターフェイスを実装した別の型の値を代入される可能性がある
また、値型をインターフェイスにキャストするにはボックス化が必要なのでコピーが発生するから参照渡しは不可
インターフェイス通したいならジェネリックのwhere使う
599:578
15/11/05 23:56:44.30 6rpVQh8a.net
>>579
すみません、構造体です。
まだあやふやな理解で申し訳ないです。
>>581
ボックス化というのがいまいちわかっていないですが、
値型を参照渡ししようとしてもコピーしないと出来ないということですか?
ジェネリックとは?ちょっと調べてみます。
ありがとうございます。
600:デフォルトの名無しさん
15/11/06 00:22:51.45 v3nYR+i3.net
intを渡すとして、
不可 → void Hoge(ref IComparable<int> cmp){}
可 → void Hoge<T>(ref T cmp) where T : IComparable<int>{}
601:デフォルトの名無しさん
15/11/06 00:31:22.76 dWA72Rvv.net
>>582
構造体(struct)にもインターフェースは、指定可能。
すべての型は、object型として扱えるため、object型に代入可能で、構造体(値型)も当然、objectとして扱える。
object型というのは、言い換えればobjectクラスなので、objectは、参照型。
構造体など値型を参照型として扱うとき必要なのがボックス化と呼ばれるもの。
また、インターフェースも参照型なので、インターフェースとして受けてしまうとボックス化が発生する。
イメージ的には、 ボックス化されるとき、new object( 10 ) のような感じで値型をラップした新しいオブジェクトが作成されている。
void Foo( IHoge x ) のようなインターフェースを受け取るメソッドに値型を渡しても、Fooメソッドでは、別のオブジェクトになっているのでいくら書き換えたところで無意味。
値型でなく、最初からクラスとして作っておけば、そういう問題は起きないが構造体を使いたい場合、下記のように制約付きのジェネリックメソッドを使うと良い。
static void Foo<T>( ref T arg ) where T : IHoge {
arg.Value = 100;
}
こうすれば、ボックス化は、発生しないで、IHogeインターフェースのメンバーを呼び出すことが可能となる。
refは、参照渡しさせるために必要。
602:578
15/11/06 00:42:25.19 pjudYN7I.net
>>583-584
教えていただいた通りに修正したらエラー解消しました。
詳細な解説ありがとうございます。
納得できました。
603:デフォルトの名無しさん
15/11/06 09:12:45.36 MQ0OQAyt.net
1つのプロジェクトから2つ以上のアセンブリを出力するようにってできる?
こんな感じにA.csproj → A.x86.dll A.x64.dll
604:デフォルトの名無しさん
15/11/06 12:16:37.98 955qm0wN.net
プロジェクト構成を追加する
605:デフォルトの名無しさん
15/11/06 12:19:39.17 dWA72Rvv.net
Any CPUじゃダメなの?
606:デフォルトの名無しさん
15/11/06 15:32:24.63 guayBMf4.net
ダメだろ
607:デフォルトの名無しさん
15/11/06 15:39:55.16 KrpwsfQj.net
クラスライブラリプロジェクトでEntityFrameworkを利用する
メインのプロジェクトではEFに直接関わるようなコードは一切書いていないのに
エラーが出て、どうやらApp.configをクラスライブラリのそれと同じように書き
EFもインストールしないといけないみたいですがなぜですか?
メインのコンソールアプリでは、
ClassLibrary1.Run();
としか書いていないのに
608:デフォルトの名無しさん
15/11/06 16:20:31.16 hUa1dWCf.net
>>588-589
dllならAny CPUで良い気がするけどな
>>590
そのクラスライブラリがEF使ってるからだろ
609:質問者
15/11/06 19:15:27.36 n93wU3zk.net
public const string[] names = { "abe", "kume", "ume"};
は何故できないの?
C#っておかしい
610:デフォルトの名無しさん
15/11/06 19:45:53.50 DdHE3j1N.net
歴史のある言語だし、配列のconstを許すと何か不都合があるんじゃないかな
知らんけど
611:デフォルトの名無しさん
15/11/06 19:49:11.59 JLRIGyKN.net
一般的な業務システムにEF使うのってお前ら的にどう思う?
DB周りに中間テーブル勝手に作られたり
とかどうなんかなーって思うんだけど
612:デフォルトの名無しさん
15/11/06 19:49:47.56 H8/mSBf4.net
C#のconstはmutabilityを示す修飾子ではない
mutabilityはクラス特性の一つにすぎない
613:デフォルトの名無しさん
15/11/06 19:52:12.27 O+3ivu6x.net
>>594
テーブル管理をきっちりして、メンテナンスが面倒な糞長いクエリ作らないことさえ心がければ問題ないと思う
それが出来るなら何でもOKだろと言われたらそれまでだが
614:デフォルトの名無しさん
15/11/06 20:01:54.19 hUa1dWCf.net
>>594
コードファーストで、プログラマがモデル変更したらDBレイアウト変わるとか
DB層とアプリ層と分離するような業務システムだとあり得ん
EFはコードファーストしかないわけじゃないけど
最近、既存DBからコードファーストとかいうわけわからんオプションも追加されたけど
EDM作らんで良いし、マッピングの自由度上がるから、これが結構いい感じだぞ
俺はこれをコードセカンドと呼ぶ事にしたw
615:デフォルトの名無しさん
15/11/06 20:02:50.21 Vl4Fajoj.net
構造体のconstもできないよね
あとIntPtr(これは仕方ないか)
616:デフォルトの名無しさん
15/11/06 20:04:07.68 v3nYR+i3.net
>>594
DBファーストなら中間テーブルは作られない(たぶん)
パフォーマンスに引っかからなければ採用していいと思う
617:デフォルトの名無しさん
15/11/06 20:07:22.09 v3nYR+i3.net
>>592
ミュータブルなら配列があれば許されたかもね…
618:デフォルトの名無しさん
15/11/06 20:11:37.63 VIb2xLBB.net
constはコンパイル時にリテラルを埋め込むからnewで生成するインスタンスはconstへ代入できない。
C#で配列を定数扱いしたければReadOnlyCollectionを使う。
619:デフォルトの名無しさん
15/11/06 22:35:43.69 ZOMBif/U.net
readonlyにするとそのメンバの参照を変えることはできなくなりますが、そのメンバのメンバの値は変えれますよね?
そのメンバのメンバもreadonlyにすることはできないんですか?
620:デフォルトの名無しさん
15/11/06 22:45:54.70 v3nYR+i3.net
メンバをreadonlyプロパティにすればいい
コレクションならIReadOnly~インターフェースがある
621:デフォルトの名無しさん
15/11/06 23:10:20.05 lDi+bZZ1.net
C#のmutabilityはクラス特性で備えるもので
修飾子で指定するものじゃないと言ってんだろ
理解力が不足しているのか?
622:デフォルトの名無しさん
15/11/06 23:18:27.60 dWA72Rvv.net
こんな感じでプロパティ作れば、初期化以外で変更できないようにできるけど…
shield class Hoge {
public int Property1 {
get;
} = 10;
public int Property2 {
get;
} = 20;
}
623:デフォルトの名無しさん
15/11/06 23:25:34.03 ZOMBif/U.net
>>603
ありがとうございます。使ってみます。
>>604
ちょっと調べたけどよくわかりませんでした。
久しぶりに会った友達に、おめ
624:ぇずいぶんとミュータブルなぁーって使う感じでしょうか?
625:デフォルトの名無しさん
15/11/06 23:28:23.63 x7E/To5I.net
>>605
もうちょっとこの構文は何とかならなかったのかと思うな…
626:デフォルトの名無しさん
15/11/06 23:42:18.13 KrpwsfQj.net
>>591
そこがよくわからないんです
クラスライブラリでしか使ってないEFが
なぜメインプロジェクトでもインストールして
App.configまで書き換えないといけないのか
例えば、zipライブラリやその他ライブラリを
ライブラリプロジェクトで使っていても
メインプロジェクトでそれらライブラリを参照しなくてもいけてます
同じように分離できないんでしょうか?
627:デフォルトの名無しさん
15/11/06 23:51:07.90 MmN1hyKF.net
>>604
その説明は、誤解を生みまくる
const言っているなら C++ のアレを意識しているんだろうから
C++のmutableとゴッチャになる
628:デフォルトの名無しさん
15/11/06 23:55:31.99 MmN1hyKF.net
Java全盛期の時代に、政治的な都合でJavaクローンとして生まれたC#ゆえ
書き換えに関する制御は基本的に期待しないほうが良い、というか諦めたほうが良いでしょう
当時constなど不要、高速化目的ならオプティマイザが頑張ればいいという考えが席巻していたから残念な事になってしまっている
目的は高速化じゃないといっても話聞きゃしない話聞かない回答者みたいなので一杯になってたからな
629:デフォルトの名無しさん
15/11/06 23:55:56.97 J1IjfUsv.net
>>608
ライブラリが特定の場所の特定のDBに紐付いてたら再利用性も柔軟性もクソもないだろ?
構成はアプリ側で指定するんだよ
630:デフォルトの名無しさん
15/11/06 23:59:22.58 /KOBRm1I.net
MVVMパターンについて質問です。
Modelクラスがツリーのデータを保持できるように定義されている場合、
class Model
{
public List<Model> Children;
public Model Parent;
}
ViewModelクラスはどのように作ればよいのでしょうか。
class ViewModel
{
public ObservableCollection<ViewModel> Children;
public ViewModel Parent;
}
ユーザーがアイテムを追加・削除した際の、VM~M間でのChilrenのやりとりで良い方法が思い浮かばないのです。
631:デフォルトの名無しさん
15/11/07 00:03:09.47 HCtDVk7w.net
地道にモデル側のコレクションにAddしたりRemoveするしかないんじゃないのっと
632:デフォルトの名無しさん
15/11/07 00:05:43.30 mc1zorkl.net
>>612
そんなもんModelをそのまま公開すりゃいいよ
いちいちラップするのは無駄に複雑になるだけ
633:デフォルトの名無しさん
15/11/07 00:10:14.79 bqVTu3cR.net
ちょっとなにいってるかわからないですね
何に使いたいのでVMいるのかがわからない
634:デフォルトの名無しさん
15/11/07 00:37:06.17 rJMrVjho.net
>>611
特定のDBには既にひも付けされてますよね?
Entityクラスを事前に静的に生成しているわけだし
特定の場所に関しては確かにそうですが
dbパスを渡すだけでいいはずなのになんでEF入れなきゃだめなんでしょ?
635:デフォルトの名無しさん
15/11/07 00:38:32.76 VdNkzOpu.net
mvvm関係ないけど、オブジェクトが持ってる参照をそのまま外に出すのとカプセル化の間でいつも悩む
かといって毎回コピーしたら遅いし
636:デフォルトの名無しさん
15/11/07 00:47:30.53 3j5S0EXp.net
>>617
インターフェイス通せばいいじゃない
>>612
選択したツリー項目毎に特定のVM表示したいの?
637:デフォルトの名無しさん
15/11/07 01:36:23.40 X2ab0wjO.net
>>616
EF使うのに入れなくていいと思う理論がわからん
638:デフォルトの名無しさん
15/11/07 01:55:38.19 rJMrVjho.net
>>619
実際に使うのはクラスライブラリ側だけだからです。
EFじゃなくて他のライブラリの場合は
メインプロジェクトに入れなくても動くのに
なぜEFだけ特殊なのかが知りたいんです
639:デフォルトの名無しさん
15/11/07 02:09:02.01 VdNkzOpu.net
>>618
やっぱそうなるよねぇ
操作用のインターフェース
640:作るの面倒だけど
641:デフォルトの名無しさん
15/11/07 03:22:43.92 X2ab0wjO.net
>>620
そもそもほんとにメイン側でなにもしてないなら
実行時に必要なライブラリがそろってれば良いだけで、メイン側プロジェクトにEFの参照いらないけど?
別に特殊でもなんでもない
もしそんな前提があるなら、ASP.NETでEF使えなくなるじゃないか
642:デフォルトの名無しさん
15/11/07 03:28:58.48 rJMrVjho.net
>>622
>>590
一行しか書いてないのになぜ参照がいるんですか?
643:デフォルトの名無しさん
15/11/07 05:33:11.29 cHn3VkC0.net
>>623
クラスライブラリ側のapp.configを見てごらん
EFをインストールしたときに書き換えられた部分があるでしょ
そしてよーく考えよう
644:デフォルトの名無しさん
15/11/07 17:24:35.95 X2ab0wjO.net
>>623
知らんがな
ソース全部晒してみろ
そういえば、エラー出るでどんなエラー出たか書かない奴の質問は答えるだけ無駄って誰かが言ってたな
645:デフォルトの名無しさん
15/11/07 17:54:38.72 1m+5NuQy.net
データベースやサーバーアプリでマイクロソフト系技術はもうだめだね
消えゆく運命だろ
646:デフォルトの名無しさん
15/11/07 23:27:09.98 qRUcE/WB.net
貴重な時間を浪費させていくスタイルだから無駄ではない
価値マイナス
647:デフォルトの名無しさん
15/11/08 00:28:50.73 QQOP8UEs.net
>>626
URLリンク(github.com)
やってることはこれと同じです
これもメインプロジェクトでインストールしてます
メインプロジェクトのApp.Configを書き換えない場合
エラー
No connection string named 'MyEntities' could be found in the application config file.
これをぐぐると、App.Configをメインプロジェクトにコピペしろと回答がある
が、コピペしても、
error 0152: No Entity Framework provider found for the ADO.NET provider
with invariant name 'System.Data.SQLite.EF6'.
Make sure the provider is registered in the 'entityFramework' section of the application config file.
となる、つまりインストールしろってことなんだろうけど
648:デフォルトの名無しさん
15/11/08 02:51:20.55 tK1NbI7K.net
>>628
それはアプリケーション定義ファイルを設定しろと言ってるだけで
EFをインストールしろとも参照設定しろとも言ってない
実際それじゃないが、メインアプリで参照設定なしでもアプリケーション定義ファイルを設定すれば動くのは確認した
(当然アセンブリは参照できるところに存在する必要はある)
なぜアプリケーション定義ファイルの設定が必要なのかは、EFのコンポーネントがデフォルトでそれを見に行くから
調べた感じではアプリケーション定義ファイルなしでも動くように出来そうだったけど、かなり手間かかりそうなので試してない
接続文字列だけなら簡単なんだが
649:デフォルトの名無しさん
15/11/08 03:54:18.19 QQOP8UEs.net
>>629
MyDbLibraryを参照すれば、設定なしで複数のアプリで同じDBを簡単に
取得出来るようにしたかったんですが
できなくはないけど、面倒そうですね
んーやっぱりEF使わないでやったほうが後々楽かな
私事のためにお時間取らせてしまって申し訳ない
調べて頂いてありがとうございます
650:デフォルトの名無しさん
15/11/08 10:17:34.08 gApUJ0pc.net
教えてください
■質問1
下記のような構造体を配列にして内容を格納しています
(本来はもっとパラメータは多いですが簡略して3つにしてます)
struct test {
private int id; //100000以上からの6桁
private string name;
private int type;
public Test(int ID, string Name, int Type) {
id = ID;
name = Name;
type = Type;
}
}
この構造体配列の中から該当するIDを検索し、その添え字番号を得たいです
ForEachやwhileなどのループ内でIDを比較するしかないでしょうか?
「C# 構造体 検索」でぐぐってみたものの、
どのようにすればいいのかが見当もつきませんでした
■質問2
そもそも、このようなデータを構造体として用意するのは良いのでしょうか?
以上、よろしくおねがいします
651:デフォルトの名無しさん
15/11/08 10:48:27.07 S9+EFBLU.net
LINQとかで検索するのもあるけど、Dictionary使うのがいいと思うが
652:デフォルトの名無しさん
15/11/08 11:23:47.79 pl2PgCRK.net
C#とWPFでさくっとアプリを作れるようになりたいと思い、とりあえずC#の簡単なテキストは流し読みしたが…
(他言語の経験はあるので)
WPFはどのテキストを読んだらいいんだろう?
(開発にはLivetを使うといいと聞いたけど、
通常のWPFが分かっていること前提っぽいので、ちゃんと勉強しようと思ってます)
プログラミングWindows 第6版 上/下 が名著らしいけど、ストアアプリ特化で学習には向かない…?
このスレ的にオススメのテキストを教えてくれないだろうか
653:デフォルトの名無しさん
15/11/08 11:45:20.22 qE8APb0L.net
Livetは2年前ならともかく、今は作者が飽きているので薦めない
Prismを使った方がよい
テキストに関しては知らない
数年前ならEssentialを薦めただろうが
いかんせん古すぎる
WPに対応する必要がないならストア向けのテキストも無駄だろうな
654:633
15/11/08 12:05:28.12 pl2PgCRK.net
>>634
なるほど…今はPrismの方がいいのか。さんくす
テキストは…ストアアプリは作る気がないしなぁ
プログラミングWindowsのWPF XAML向けの解説は一応あるけど、
さすがにいちいち照らしあわせて読むのは大変そう
URLリンク(blogs.msdn.com)
結局テキストをどうしたらいいのかわからんね
これを見つけたんだが、まだ去年のものだし古くもなく大丈夫だろうか?(同内容のkindle版もあり)
URLリンク(www.slideshare.net)
655:デフォルトの名無しさん
15/11/08 12:49:12.21 cfidXKbm.net
>>631
List<T>でFindeIndex(s => s.id == searchID)とか
でもidがprivateだな
検索数多いなら632が言うようにキーがIDの辞書作った方が速い
656:デフォルトの名無しさん
15/11/08 13:05:36.69 qxSNyhqm.net
privateなプロパティを持っているとLINQで匿名型をnewしようとしてもアクセス出来ないレベル
というエラーが出るしなあ
そして匿名型はコンストラクタを呼び出す手段がないので次のようなコードがコンパイルできない
URLリンク(ideone.com)
657:631
15/11/08 13:35:56.75 gApUJ0pc.net
回答ありがとうございます
>>632
Dictionaryを詳しく調べてみます
データを格納後に、Dictionaryで別途索引を作る…というイメージですよね、たぶん
LINQも調べて勉強してみます
>>636
FindIndexも調べてみます
FindIndexは構造体のIDがprivateでなければ使えるのかな?
なお、件数はおそらく多くなりますので、Dictionaryでいこうと思います
>>637
構造体のつくり自体がそもそもまずいということですね
データを扱うのに構造体が良さそうだと思い使おうとしていたのですが、
まだまだ勉強不足のようで…勉強し直します
匿名型というのも分かってないレベルです
ひとまず頂いた回答・ヒントからいろいろ調べてやってみます
つまづいてどうしようもなくなったらまた質問に来ますので
その際はみなさんよろしくお願いします
658:デフォルトの名無しさん
15/11/08 14:11:47.01 IOiPLIcZ.net
>>635
wpfのことは忘れてFormsアプリを作�
659:驍セ
660:633
15/11/08 14:13:41.26 pl2PgCRK.net
>>639
今あえてWPFでなくFormsを学ぶ理由は何なんでしょう?
661:デフォルトの名無しさん
15/11/08 14:21:58.19 qxSNyhqm.net
匿名型やめて普通にnewすれば行けるよ
この場合でも読み出し専用のプロパティは必要だけど
URLリンク(ideone.com)
662:デフォルトの名無しさん
15/11/08 14:22:03.96 qE8APb0L.net
そりゃあ情報量だろ
663:633
15/11/08 14:24:04.50 pl2PgCRK.net
>>642
なるほどな…すまんが、それでもやっぱりWPFでいきたいわ
情報量が、と言うならC++でもやってろ、という話になるので
664:デフォルトの名無しさん
15/11/08 14:26:58.36 qxSNyhqm.net
それとToArray()はこの場合は不要だった
遅延評価でいいや
それとインデックスが不要なんだから(tt, n)でなくて(tt)でいい
適当に書いたからいろいろおかしかった
665:デフォルトの名無しさん
15/11/08 14:28:16.90 jwSrphbk.net
フォームアプリだとストア対応はまた別スキル?
666:デフォルトの名無しさん
15/11/08 14:48:07.12 t8ezhEA7.net
WPFはマイクロソフトからもとっくの昔に見捨てられたコンテンツだからな
2010年くらいからほぼ更新されてない
開発者も減ってるし今更やっても無駄
そんなのやるくらいなら注目度高いElectronでもやったほうが100倍モチベーション上がるだろ
667:デフォルトの名無しさん
15/11/08 14:48:47.97 0dVpsRSu.net
>>638
キーが決まってるならKeyedCollectionなんてのもある
構造体orクラスの問題は、大抵の場合、クラスの方がいい
構造体はnewのコストが問題になった時に試してみればいい
668:633
15/11/08 15:05:42.53 pl2PgCRK.net
>>646
すまん。Electronも考えたんだが、いかにもWebアプリっぽい見た目と動作になるのが気持ち悪くてなぁ…
WPFは見捨てられたと言うのであれば、皆WindowsでGUIアプリを作るには何を使ってるんだろう?
669:デフォルトの名無しさん
15/11/08 15:10:08.20 qL6T2MEr.net
>>646
.Net4.6で改良されてるし、どこまで本気か分からないけど最近微妙にやる気出してるようだよ。
URLリンク(blogs.msdn.com)
670:デフォルトの名無しさん
15/11/08 15:14:56.34 b5oYWyCu.net
フォームのほうが見捨てられてるからWPF以上に未来はないと思うが、だからといってWPFに乗り換える気が起きない。
んで結局、フォームから未だ抜け出せずにいる。
671:デフォルトの名無しさん
15/11/08 15:18:18.25 t8ezhEA7.net
これからはWPFと言いながら10年近く全く普及せずに下降線を辿ってきたからな
だいたいGUIアプリにしてもWindowsデスクトップに固執するような時代はとっくに終わってる
672:デフォルトの名無しさん
15/11/08 15:51:44.93 +dkH7XCP.net
WPFは早期に標準コントロールを充実させていれば多少は広まったんじゃないのかな
673:デフォルトの名無しさん
15/11/08 16:09:34.75 b5oYWyCu.net
MVVMだなんだの言いながらデフォルトでそれ系のまともなフレームワークが入ってないのが敗因だろうな。
674:デフォルトの名無しさん
15/11/08 16:21:43.65 IOiPLIcZ.net
wpfのまともな文献がないというのが
このFrameworkの実態を表しているような気がするね
ネットにあるのは、Formsとは違うんです!っていう営業トークか
MVVMという概念がすごいんですってだけだろ
実際MVVMが必要になるような高度なアプリケーションなんてあるのか?
リアルタイムにデータを処理するにしてもイベントドリブンモデルのほうが簡潔で扱いやすい
MVVMはオブジェクト指向を「こじらせた」典型例だと思うんだよね
675:デフォルトの名無しさん
15/11/08 16:40:41.80 qWpIgAsz.net
>>654
いや英語では結構本出てるよ。
MVVMがウンコなのは同意するけどw
676:デフォルトの名無しさん
15/11/08 16:57:42.27 qE8APb0L.net
設計がとにかく野暮ったい
僕の考えた最強の~って感じ
引き算を覚えてくれ頼むから
WPFを
677:除けば成功しているMVVMフレームワークはいくらでもあるし 設計センスの問題だと思う
678:デフォルトの名無しさん
15/11/08 17:02:03.13 t8ezhEA7.net
mvcとかやりたければ本流のhtml5使えばいい
標準フレームワークも用意されないWPFが流行るわけもない
マイクロソフトも普及させる気はないよ
ポーズだけ
Silverlight潰したりマイクロソフトは既に独自技術の普及を断念してる
代わってTypescript用意したりweb標準技術の採用に舵を切ってる
679:デフォルトの名無しさん
15/11/08 21:46:02.90 SGCCwhdk.net
>>650
フォームは現時点でほぼ完成しているから何も変える必要ないんじゃないの?足りない機能ある?
680:デフォルトの名無しさん
15/11/08 22:53:03.65 X/vorztS.net
prism使って、データバインドが非常に協力でコードもすっきり書けるけど、
Formsなら簡単に出来た事がものすごく手間だったり、
独自のUIが簡単にというが実際はとてつもなく面倒くさい。
datagridの配色変えるだけでも、
あの部分をどこで色を変えられるのか調べるだけで相当時間がかかる
681:デフォルトの名無しさん
15/11/08 22:54:49.77 b5oYWyCu.net
>>658
フォームに関しては、今更機能追加されたところであれだし、現状維持してくれれば十分だな。
682:デフォルトの名無しさん
15/11/08 22:55:41.36 HlEs+VqN.net
俺はMFC FeaturePack並のツールバーやドッキングウィンドウが標準で欲しいなぁ。
今はサードパーティー頼みだし。
MFCも、もうメンテナンスモードだろうと思ってた頃にFeaturePack出てきたんだから
ワンチャンあると信じたい。
683:デフォルトの名無しさん
15/11/08 22:58:52.76 l/gAevhW.net
WPFのDataGridは全く使い物にならない
あの糞がそのまま放置されてるんだから、MSのやる気の無さがよくわかる
まあそもそもWPFは設計思想的にDataGrid的なものはListViewをカスタマイズして作るもんであって、
出来合いのDataGridをそのまま使うようないい加減なGUIでいいのならWPF使う必要は全く無いんだけどね
684:デフォルトの名無しさん
15/11/08 23:04:24.23 b5oYWyCu.net
WPFならMVVMでドメインとビューの分離が~とか言うが、フォームでもある程度は、データバインドできるし、
WPFほどまでは行かないにしろ、そこそこの分離は、可能だと思う。
いざとなれば、ビューを直接扱えるし、WPFみたいに変に手回ししなくていいしフォームのほうが楽。
685:デフォルトの名無しさん
15/11/08 23:26:11.25 X/vorztS.net
WPFはC#を習得した人用だからなあ、
いきなりC#とXaml両方まなぶのはきついんじゃない?
GUIを今後一切変更しないならFormsでいいだろうけど、
変更したくなった時、クソ面倒くさい
686:デフォルトの名無しさん
15/11/09 00:30:33.40 nH7Pt/o2.net
言語としてのC#にそんなに覚えることがあるとは思えんが、
WPFは覚えることだらけだな。
しかもMSDNのどこにも明示されてない仕様も結構あってかなり萎える。
687:デフォルトの名無しさん
15/11/09 00:42:01.77 YzX/XRY3.net
>>662
>DataGrid的なものはListViewをカスタマイズして作るもんであって、
このカスタマイズする前に大量のオブジェクトの前に力尽きる人が多かったから
WPFは流行らなかったんだろうな
オブジェクト指向の継承って結構早い段階から使うのやめとけ
って言われてたと思うけどwpfって継承地獄なんだよなあ
688:デフォルトの名無しさん
15/11/09 01:51:51.42 q+BDOfSy.net
継承(is a)より包含(has a)とか、無駄に複雑な継承関係にしないとかなら分かるけど、
一般論としてそんなこと言われてたっけ?
689:デフォルトの名無しさん
15/11/09 03:56:53.75 m77m/g5H.net
WPFが出た当時、そちらに移行しなかった最大の理由は
リファクタしたら、XAMLだけ手作業修正になったから
今は、ちゃんと連動してるんだろうか?
していた�
690:ニころで、あんだけ複雑で、しかも機能的にフォームから浮いていると移行する気にはなれないけど
691:デフォルトの名無しさん
15/11/09 04:06:23.65 m77m/g5H.net
>>654
同感、WPFからATL臭がする
これからはWPFだといっている人は何見て、WPFが流行っていると思っているのだろうか?
692:デフォルトの名無しさん
15/11/09 08:53:11.53 AkXykSSl.net
wpfのControlTemplateは、FormsのOwnerDrawに比べたら格段に楽だと思うけどな
693:デフォルトの名無しさん
15/11/09 09:23:03.24 eW5XCVAC.net
部分を誇っても仕方ない
一芸に秀でていれば使えないこともない人間とは違うんだよ
フレームワークは全体のバランスが求められる
694:デフォルトの名無しさん
15/11/09 12:09:04.18 6wZmioGw.net
でも結局は作りたいものに適した形をしているか、ってだけだからな。
適してれば(=開発工数を抑えられるならば)、どんなんだって使うことはあるし。
ここで声高に否定することに意味があるとは思えん。むしろなにか作為でもある?
695:デフォルトの名無しさん
15/11/09 12:24:46.82 7FJWPJQr.net
自動生成はWPFのが簡単でいいよね
工数削れるよ
696:デフォルトの名無しさん
15/11/09 12:30:10.88 eW5XCVAC.net
否定派の前で肯定するから否定されてんだろ
頭悪いんじゃねえのか?
697:デフォルトの名無しさん
15/11/09 12:35:57.06 EOVCHtBm.net
639が聞かれてもいないお節介を焼いたのがそもそもの原因だ
発狂するまでXAML書き続けて死ね
698:デフォルトの名無しさん
15/11/09 13:09:55.63 6wZmioGw.net
声高に否定しhとかないと不安なのかと。w
699:デフォルトの名無しさん
15/11/09 13:22:50.09 eW5XCVAC.net
書き込みの推敲もできないほどではないんじゃねえの~
クソでも漏らしそうなのか?
漏らすなよ、ただでさえ臭いんだからな
700:デフォルトの名無しさん
15/11/09 13:31:13.13 6wZmioGw.net
え。まさかの図星だったんだ。w
701:デフォルトの名無しさん
15/11/09 16:23:18.75 m77m/g5H.net
>>672
作為とか特にないけど、俺の知っている業界の範囲でWPFを使っている所なんてないし
一時使っていたところも全部切り上げてFormsに戻ったからな
誰が使っているんだ?って思って書いてみた
702:デフォルトの名無しさん
15/11/09 16:25:52.00 m77m/g5H.net
あと、自分の経験から、フレームワークが死ぬかどうかの嗅覚センサーは高精度にしておいた方がいい
システムが大規模になってから、さあ元に戻ろうとかいう話になると地獄みるでw
703:デフォルトの名無しさん
15/11/09 18:25:32.73 s3Itz59O.net
WPFは、やたらと抽象化しすぎで、解りづらいんだよなぁ
704:デフォルトの名無しさん
15/11/09 19:32:07.70 YzX/XRY3.net
声高に否定しとかないと、ふらっと誰かが立ち入るかもしれないだろ?
誰も助けられないエリアに人が立ち入ろうとしたら全力で止める
それは時間の無駄と戦い続けてきたICT分野の精神そのもの
705:デフォルトの名無しさん
15/11/09 20:45:05.97 XHl8ePvc.net
出来損ない人間のくせにそういう意識だけ持ってられると非常に迷惑
706:デフォルトの名無しさん
15/11/09 20:47:24.37 Z/Tj9+xS.net
クズ同士で反目しあっていたらいつまでたっても地獄から抜けだせないよ?
707:デフォルトの名無しさん
15/11/09 20:48:06.82 aHPhV6ij.net
C#erならあらゆる分野でTypescriptを使っていくべきだろ
ヘルスバーグ監修だしな
あれはC#と違ってGoogleのAngular2に採用されて正真正銘の世界標準になった
708:デフォルトの名無しさん
15/11/09 20:49:00.07 Kluqtjpy.net
上を見るより隣の奴の足を引っ張って蹴り落とす方が楽しいから。
709:デフォルトの名無しさん
15/11/09 20:57:32.51 Kluqtjpy.net
ああ、typescriptはいいね。
空前絶後究極醜悪仕様のjavascriptのせいもあるが、
コードを書いてて幸せを感じられる。
710:デフォルトの名無しさん
15/11/09 21:17:06.11 HVtjB7Nt.net
スピルバーグ?(難聴)
711:デフォルトの名無しさん
15/11/09 23:52:05.55 xUV9On1g.net
コマンドやプロパティ周りに同じような記述をしないといけないのが面倒
すべてのイベントがコマンドでできたらなー
トリガー?イベントを言い換えただけじゃないか
ビヘイビア?そこまでして必死に分離する必要あるのか?
それに物理的に分離してても、特定のViewに意味的に依存したコードに変わりないよね
だったらイベントでいいじゃない
とにかくMVVMの強迫観念が付きまとう
オシャレなGUIもいらない
もっさり
情報がない
調べる時間が勿体無い
Xamlとコードを行ったり来たりが面倒くさい
フォームはイベントハンドラだらけ、データバインド面倒ってだけかな
712:デフォルトの名無しさん
15/11/10 00:37:56.86 TRBM8DsG.net
Xamlはそろそろ終わりだろう
流行ってない上に目玉が需要のないWindowsストアだからお先真っ暗
MFCと同レベルの状況だよ
そのなのやる暇あったらTypescriptとNode.jsをやれ
Visual Studio CodeはElectronで作られてるしNode.jsデバッガ標準装備だしMSも舵をきった
Web標準技術路線の流れは止まらんよ
713:デフォルトの名無しさん
15/11/10 01:49:09.88 Ovp34esS.net
じゃあ、次期VisualStudioはwebアプリかな。
714:デフォルトの名無しさん
15/11/10 01:54:38.52 5g3VdvzW.net
VS Codeあるしな
715:デフォルトの名無しさん
15/11/10 02:33:43.83 fx55niMq.net
フォームで不満があるすれば、ちょっと凝ったデザインにしようとした途端、恐ろしく面倒なことぐらいだな。
716:デフォルトの名無しさん
15/11/10 04:07:57.25 Vbdvj8E0.net
MFCはまだまだ普通に需要あるでしょう
おっさん全然離れないし
WPFの絶望感はなんともかんとも
古い人は移行しないし、新しい人は来ないし、ストアとか誰が使うんだよって感じだし
やりたきゃ、素直に別途スマートフォンに特化したOS作りゃいいのにね
717:デフォルトの名無しさん
15/11/10 05:05:14.87 x1SFUzCz.net
Windows用のちょっとしたツールを作る場合みんな何で作ってるの?
スクレイピング、zip再圧縮、画像加工、ファイル移動、ファイルリネームなど
これからそれぞれ自分用に作っていこうと思ってる
718:デフォルトの名無しさん
15/11/10 05:24:29.79 Vbdvj8E0.net
batファイルかなw
719:デフォルトの名無しさん
15/11/10 07:03:54.72 ysgs5SCx.net
スクレイピングはruby
zipはそのまんまzipコマンド
画像加工はimagemagick
全体の制御やファイル操作はperl
720:デフォルトの名無しさん
15/11/10 11:39:52.84 mVStRMDa.net
全部python
721:デフォルトの名無しさん
15/11/10 13:27:08.88 Y54LX3ro.net
powershell
722:デフォルトの名無しさん
15/11/10 15:30:35.44 zPPOQadD.net
Windows7とVS2012だと、Bluetooth LEのGATTプロファイルとかって使えないの?
URLリンク(msdn.microsoft.com)
723:デフォルトの名無しさん
15/11/10 18:12:09.50 jCBnlrqE.net
MSから出してるのではGATTは使えないと思った
724:デフォルトの名無しさん
15/11/10 21:42:14.52 96BnYR0W.net
非常に細かいことなのですが、
IEnumerable<T>を実装したクラス(もしくはオブジェクト)のことは何と呼べばいいのでしょうか?
列挙子?それともコレクション?
どちらも微妙に違う気がするので、質問させていただきました。
725:デフォルトの名無しさん
15/11/10 21:46:42.28 ysgs5SCx.net
一般的にはコレクションでいい
順番を意識する場合は明示的に「要素のシーケンス」と呼んだりすることもある
726:デフォルトの名無しさん
15/11/10 22:03:45.37 Iud
727:Fs22n.net
728:デフォルトの名無しさん
15/11/10 22:05:22.32 96BnYR0W.net
ありがとうございます。
コレクションにします。
729:デフォルトの名無しさん
15/11/10 22:13:49.61 mVStRMDa.net
たかがデサインパターンに強迫観念まで持ってしまうって凄い
影響されやすいにもほどがある
730:デフォルトの名無しさん
15/11/11 00:11:06.49 Roxx949g.net
iOSアプリの開発はAndroidアプリより30%安価--あるソフト開発会社が示したデータ
URLリンク(japan.zdnet.com)
また、Infinumは開発時の経験から、
Androidアプリのレイアウトで用いられるXMLの使われ方が、iOSで用られるWYSIWIGによるアプローチ
ほど効率的でない点を指摘している。
まさにこれ、xamlの不利な点もこれに同じ
対してiOSはformsの発展系みたいなシステムだから即効作れる
731:デフォルトの名無しさん
15/11/11 00:21:31.22 /+peIgnx.net
>>703
>>703
要素のシーケンス?
IEnumerable<T>は列挙される要素の順序なんて保障しないし
列挙される要素を返すオブジェクトの事だろ
要素でもないしシーケンスでもないじゃないか
732:デフォルトの名無しさん
15/11/11 00:33:42.89 1POahPwI.net
蛇遣いなのでイテラブル/イテレータ
733:デフォルトの名無しさん
15/11/11 00:35:00.27 hQ+Ng6ni.net
マイクロソフトがシーケンスって呼んでるんだから、シーケンスって呼べよ
混乱の元
734:デフォルトの名無しさん
15/11/11 00:36:20.71 hQ+Ng6ni.net
俺何でも知ってる、賢いだろうw
と、話が通じない流れはこうして始まる
735:デフォルトの名無しさん
15/11/11 00:39:46.19 1POahPwI.net
下品な単芝だなぁ
736:デフォルトの名無しさん
15/11/11 00:45:36.61 /+peIgnx.net
>>710
MSの用語で、列挙で返されるものをシーケンスと呼んでいるところはあるけど
IEnumerable<T>実装クラスのことをシーケンスと呼んでるところなんて無いだろ
737:デフォルトの名無しさん
15/11/11 00:47:40.91 hQ+Ng6ni.net
話聞かない回答者がまた暴れだす、死ね
738:デフォルトの名無しさん
15/11/11 00:59:29.52 2vpVS7Y/.net
こんな時間からID真っ赤にしないようにちゃんと変えとくんだゾ
739:デフォルトの名無しさん
15/11/11 00:59:45.55 jhfL3S8B.net
Enumerable.SequenceEqualとかまさしくシーケンスじゃないの?
740:デフォルトの名無しさん
15/11/11 01:04:34.29 qdWTE3pv.net
TupleのitemXって任意名称に変えられないのかね
使いたいけど、itemXが何を指すのか明示し辛くて毎回クラス作る羽目になる
741:デフォルトの名無しさん
15/11/11 01:13:37.70 MPuvgpwO.net
>>717
C# 7.0でそこらへん改善しようという動きはあるが、現状だと無理だな。
742:デフォルトの名無しさん
15/11/11 02:15:32.79 J1zmvVNV.net
>>713
言いたいことは分からんでもないが列挙で返されるものは要素であってシーケンスじゃないよw
ニュアンス的には、イテレーターやクエリ式みたいにIEnumerable<T>を実装したクラスであるかのようにふるまう
何者かのことをシーケンスと呼んでるようにも感じるけど、機能的に等価なんだから同じでしょ。
743:デフォルトの名無しさん
15/11/11 02:24:54.15 /+peIgnx.net
>>716
IEnumerable<T>で返される集合がシーケンス、その構成物が要素
IEnumerable<T>そのものは要素でもシーケンスでもない
まあ仮に、IEnumerable<T>そのものがシーケンスと呼ばれるとしても
IEnumerable<T>実装クラスはシーケンスじゃないし
744:デフォルトの名無しさん
15/11/11 02:27:02.08 dpUw/w5G.net
IEmunerableを実装したクラスはIEnumerableと呼んでるな
だってIEnumerableとして使うわけだし
もと質問者の求める答えとはちょっと違うか・・・
745:デフォルトの名無しさん
15/11/11 04:08:25.76 MPuvgpwO.net
IEmunerable<T> Hoge() みたいなメソッドのサマリーを書くとして、「○○を列挙します。」と説明するのが一番自然だと思う。
「○○のコレクションを返します。」だと、List<T>とか配列のようなものが返されるイメージだし、「○○のシーケンスを…」だと違和感が残る。
746:デフォルトの名無しさん
15/11/11 05:06:28.14 FnAxvR+K.net
全然知らないんですがMoveNextとかはEnumerator実装ですよね?
Enumerableでも使えるのはGetEnumeratorでEnumerator取ってるからですか?
747:デフォルトの名無しさん
15/11/11 10:46:36.52 MPuvgpwO.net
IEnumerable<T>の定義を見てみよう。
748:デフォルトの名無しさん
15/11/11 17:51:33.59 jH4gdhBC.net
ある文字列の中で、2つのキーワードの中にある文字列をLINQを使って抽出したいのですが、やり方が分かりません。
例えば、下の文字列の
「ABCD<a>123</a>EFG」
の中から、<a>と</a>に囲まれた部分だけを取るという事がしたいのです。
749:デフォルトの名無しさん
15/11/11 17:55:09.09 DUfHt6hF.net
バカには無理
750:デフォルトの名無しさん
15/11/11 17:55:24.62 h0434h88.net
なぜLINQでやろうと思った?
751:デフォルトの名無しさん
15/11/11 18:08:23.13 Usz+Er1r.net
縛りプレイもしくは宿題
752:デフォルトの名無しさん
15/11/11 18:20:02.61 +wF1gX1q.net
おまえらどんだけLINQが嫌いなんだよ~
立て続けに素晴らしい連体感だなww
753:デフォルトの名無しさん
15/11/11 18:20:11.07 jH4gdhBC.net
>>727
最終的にしたいのは、大きめのファイルをFile.ReadLinesを使って読み込み、その中から特定の文字列を取りたいのです。
File.ReadLinesでLINQを使って(正規表現併用でもして)抽出できないのかと、思案してる所です。
754:デフォルトの名無しさん
15/11/11 18:23:29.23 87RveuhT.net
>File.ReadLinesを使って読み込み
まずそこから間違ってる
755:デフォルトの名無しさん
15/11/11 18:40:07.71 YDOXgbvn.net
ABCD<a>12<a>3</a>EF</a>G
みたいなのはどうする?
756:デフォルトの名無しさん
15/11/11 18:53:04.03 jH4gdhBC.net
>>731
巨大なファイル内にある特定の文字を取りたくて、File.ReadLinesを使おうと思ったのです。
ちなみに、これを使う事になったのは↓のサイトの処理速度を見てこれは使えそうと思いました。
URLリンク(devlights.hatenablog.com)
>>732
<a>~</a>の組み合わせは今のところ一つだけを想定しています。
757:デフォルトの名無しさん
15/11/11 19:05:23.62 MPuvgpwO.net
巨大のファイルをFile.ReadLinesで読み込むのはちょっと…ってのはおいといて
var urls = File.ReadLines( @"hoge.txt" )
.Where( x => !string.IsNullOrWhiteSpace( x ) )
.Select( x => Regex.Match( x , "<a href=\"(?<url>.*?)\".*?>(?<text>.*?)</a>" , RegexOptions.IgnoreCase ).Groups["url"]?.Value )
.Where( x => !string.IsNullOrWhiteSpace( x ) );
みたいにすれば取り出せるだろうけど
758:デフォルトの名無しさん
15/11/11 19:21:42.43 jH4gdhBC.net
>>734
ソース有難うございます。
まだ、不明な点がありますが調べてみます。
759:デフォルトの名無しさん
15/11/11 19:35:10.88 hQ+Ng6ni.net
別にLINQ嫌いじゃないが、そんな事すんなよなとは思ったw
760:デフォルトの名無しさん
15/11/11 19:36:07.54 ZERl/AOH.net
>>734
ReadLinesは遅延評価だからReadAllLinesとは違って巨大なファイルでも効率いいよ
761:デフォルトの名無しさん
15/11/11 19:40:57.26 MPuvgpwO.net
>>737
すまん、ああ、それと勘違いしてた…
762:デフォルトの名無しさん
15/11/11 19:41:01.76 YDOXgbvn.net
改行をまたいでたらどうすんだってことだろ
763:デフォルトの名無しさん
15/11/11 19:46:45.62 MPuvgpwO.net
そこは想定外ってことで…
764:デフォルトの名無しさん
15/11/11 20:06:32.47 je1SKr0C.net
WindowsFormアプリケーションを勉強中ですが、タブレットPCでもWindowsFormは動作しますかね
実機に触ったことがないのでよくわからんのですが、
Windows8やWindows10あたりが入ってるタブレット端末なら作ったWindowsFormのアプリも
使えますでしょうか?(画面サイズを考慮して作るのは当然として)
それともストアアプリとしてじゃないと入れられなかったりするんでしょうか
765:デフォルトの名無しさん
15/11/11 20:15:23.36 MPuvgpwO.net
>>741
特に問題なく動作可能。
ただ高dpi環境とかで動かすと残念なことになるかも知れないけど
766:デフォルトの名無しさん
15/11/11 2
767:2:32:02.21 ID:WW0Z/7Lv.net
768:デフォルトの名無しさん
15/11/11 23:20:47.01 hQ+Ng6ni.net
向き不向きは考えた方がいいかもね
LINQで文字列処理とか、Formでモバイル系とか
769:デフォルトの名無しさん
15/11/11 23:55:46.17 2kBONmlk.net
データの集まりに対する統一的な操作だからね
770:デフォルトの名無しさん
15/11/12 00:25:57.38 b15uPX39.net
実際にどうか分からんが、件のデータがhtmlだとしたらHtml Agility Packなんか使ったほうがトラブルに巻き込まれずに済むかもしれんね
771:デフォルトの名無しさん
15/11/12 02:25:12.08 NUMUMJ+D.net
LINQは同じようなデータに対する処理を書くものだから正規表現とかやるならLINQである必要性が薄い
たとえばnew{Name, Kokugo, Sansu, Rika, Shakai}みたいなクラスを作れる成績表ファイルだったらFile.ReadLinesでLINQが有効
>>734のやりかたなら普通にforeachしたほうがわかりやすいと思う
var list = new List<string>();
foreach(var line in File.ReadLines( @"hoge.txt" )){
if(!string.IsNullOrWhiteSpace(line)){
var str = Regex.Match(line , "<a href=\"(?<url>.*?)\".*?>(?<text>.*?)</a>" , RegexOptions.IgnoreCase ).Groups["url"]?.Value;
if(!string.IsNullOrWhiteSpace(str)) list.Add(str);
}
}
772:デフォルトの名無しさん
15/11/12 07:56:05.65 Los5n9AY.net
求めてるのは分かりやすさではなく自己満足だ
余計な世話を働くな
773:デフォルトの名無しさん
15/11/12 07:58:25.66 FwVQMCtV.net
どう見てもLINQの方が見易い
774:デフォルトの名無しさん
15/11/12 08:03:54.52 dubRMvMU.net
そうだな
このケースは実質的には
行の集合→フィルタ→変換→フィルタ→結果の集合
という要素ごとに独立な集合操作なのでLINQを使うのはおかしくはない
775:デフォルトの名無しさん
15/11/12 09:27:42.54 b15uPX39.net
htmlのタグは行をまたぐことも多いから、行の集合体として処理するとエライ事になるよ
776:デフォルトの名無しさん
15/11/12 17:10:09.52 2y0wDvFa.net
>>747
foreach使ったら遅延の意味ないし
さらに新たにlist作ってるのが古臭い
777:デフォルトの名無しさん
15/11/12 18:06:53.36 sljIQlRZ.net
>foreach使ったら遅延の意味ないし
?
778:デフォルトの名無しさん
15/11/12 19:38:54.77 Ky5LrglX.net
今時2.0のレガシーなソースコードを流用しないといけないんだけど、XML Webサービスと型付データセットでこれををEFとEDMに置き換えることによるデメリットって何かある?
ちなみに同一アセンブリ内からしか呼び出ししてないのになぜかASP.NETでWeb参照作ってSQL Serverと接続させてる元開発者の意図が読み取れないんだけど・・・
779:デフォルトの名無しさん
15/11/12 19:45:39.77 EC9THrMO.net
>>754
今となってはEFだからとコードファーストにする必要も無く、既存のDBから作れるし別に問題ないんじゃね
動作環境を4.5.2にしないと来年早々にサポートが切れることぐらいか