C#, C♯, C#相談室 Part91 at TECH
[2ch|▼Menu]
[前50を表示]
650:デフォルトの名無しさん
16/09/30 23:10:25.66 GrCnAQwz.net
っていうか、説明的な文章を簡潔かつ過不足なく書く能力と
可読的なコードを書く能力はおそらく無関係じゃないと思う
何が言いたいかはお察しくださいw

651:デフォルトの名無しさん
16/09/30 23:13:28.59 EbLE8W48.net
・ソースが汚いとはクラス構成が変などの大きな区間の事であり10行程度なら問題ない
・多少汚くても速い方がいい
・新機能を無理に使うと汚くなるからやめろ
でおk?

652:デフォルトの名無しさん
16/09/30 23:15:30.37 OobEUz+z.net
むしろこんなに書き込めるんだな
あれか?最新に出てくる画面に1レスだけで全部埋めたりできるのか?

653:デフォルトの名無しさん
16/09/30 23:28:51.36 IoizK4x5.net
>>629
行数の問題じゃない。1行でも汚いのはあるし、変数名一つとっても汚らしいのがある
今は遅くても可読性、拡張性、保守性を重んじるケースの方が多い
新機能は汚いわけじゃない。互換性とかそれまで認知されてなかったトラブルを産む原因になるだけ

654:デフォルトの名無しさん
16/09/30 23:41:02.45 bXY+Fxkm.net
>>629
・「ソースが汚い」と批判される場合は
全体的にナンセンスか必要のない箇所で最適化をしている場合。
必要な箇所での最適化で結果的に著しく可読性が落ちたとしても
「ソースが汚い」と批判されることはない。
・速さが必要ない箇所では最適化せずに、一番単純な記述にしろ。
・新機能は便利だから追加されたのだから、積極的に使えばいい。
ただし使えばいいって物ではない。

655:デフォルトの名無しさん
16/09/30 23:44:22.04 Mpnnp+Nc.net
仕様上どうしても実行速度が必要な部分を除いては、可読性の高さは実行速度より優先されるべき

656:デフォルトの名無しさん
16/09/30 23:56:07.59 bXY+Fxkm.net
>>633
同意。
なんか早すぎる最適化はうんたんってのがあるんだろ。
コードの9割以上は速度はどうでもいい箇所なので、可読性をとるべき。
糞どうでもいい箇所をこねくり回してワケワカメなコードにする奴はハゲろ。
(言っちゃあ悪いが関数型()な奴はこれをやっている気がものすごくする)
あと言語のポリシーにもよるでしょ。
C#はC程のチューニングをする為の言語じゃない。
それこそ、C#なら全箇所で(速度は全く気にせず)可読性重視というのもありだと思うよ。
そもそもどうしても速度が必要ならCでDLL書いた方が速いし早い。

657:デフォルトの名無しさん
16/10/01 01:11:38.55 TCy40dPy.net
コードの綺麗さは実は定量化できる
わかりやすいので言えば重複するコードがどれぐらいあるかとかな

658:デフォルトの名無しさん
16/10/01 01:26:55.75 5I4x+GEM.net
関数型は親の仇、まで読んだ。
いつの間にか老害になってた、ってのもよくある話。

659:デフォルトの名無しさん
16/10/01 02:28:35.54 tNbhSEQ7.net
>>623,624の可読性は定量的に表すといくつですか?

660:デフォルトの名無しさん
16/10/01 02:48:45.62 MIaIeT8n.net
3

661:デフォルトの名無しさん
16/10/01 04:34:25.08 Cx/cD9Km.net
評価に価しない

662:デフォルトの名無しさん
16/10/01 07:03:52.26 aUiPvlDm.net
要するにアンチパターン

663:デフォルトの名無しさん
16/10/01 13:30:51.56 b8SZy0Th.net
>>623
コードに審美眼とかうるさい奴は死にかけのPerlに行けよ
死ぬ程美しいコードだらけだぞ
副作用だらけの可読性や保守性が全然ない糞みたいな世界にいけばいい

664:デフォルトの名無しさん
16/10/01 17:32:33.06 YSehcX6B.net
>>615
調子こいたラムダ式ってどの程度のものを指していますか?具体例を教えて下さい。

665:デフォルトの名無しさん
16/10/01 17:44:54.07 uFiZxscE.net
たぶん「調子こいた『ラムダ式』」では。

666:デフォルトの名無しさん
16/10/01 17:45:58.08 j4WTV/sN.net
ラムダ式の中でも特に調子こいてる物、って事でなくて
ラムダ式自体が調子こいた代物だ、って事かい

667:デフォルトの名無しさん
16/10/01 17:49:57.84 oe6ViUtA.net
匿名メソッドはOKなんですねよかった

668:デフォルトの名無しさん
16/10/01 17:53:16.74 aSQFFfFE.net
>>644
ひでーww

669:デフォルトの名無しさん
16/10/01 18:08:55.65 j4WTV/sN.net
俺の意見じゃなく、>>643を噛み砕いただけだからね
まあ俺も酷いと思うわw

670:デフォルトの名無しさん
16/10/01 18:13:22.35 r6T55aIp.net
ラムダ式「今夜はザキンでシースーよ」
ということですね

671:デフォルトの名無しさん
16/10/01 18:27:04.12 uFiZxscE.net
ザンギにソース?(北海道民感)
>>647
その言い方だと俺が酷いようにみえるんだけどw

672:デフォルトの名無しさん
16/10/01 18:27:22.17 73eR6yvK.net
牛乳を買ってきて卵があったら6個買ってきてね
これで牛乳を6個買ってきた話のようだ。プログラマーってのはめんどくせーなw

673:デフォルトの名無しさん
16/10/01 18:36:06.66 uFiZxscE.net
それは解釈の違いの問題じゃなく、
単なる勘違いというか記憶ミスの話じゃないのか

674:デフォルトの名無しさん
16/10/01 18:47:50.99 MIaIeT8n.net
変なパーサー使ってるんだな

675:デフォルトの名無しさん
16/10/01 19:02:47.22 hMWB8YVJ.net
最後の買ってはコンパイルエラーにしてほしいな

676:デフォルトの名無しさん
16/10/01 20:25:31.09 YSehcX6B.net
ラムダ式使うと調子こいてるヤツと思われるのはit業界の常識ですか?

677:デフォルトの名無しさん
16/10/01 20:27:03.31 R05VqS28.net
>>654
うんにゃ

678:デフォルトの名無しさん
16/10/01 20:34:55.43 roKi/w2g.net
コードの流れに唐突にラムダ式入ってくると邪魔だなって思う
長い奴はメソッドにしてにラムダ式で呼べって思う

679:デフォルトの名無しさん
16/10/01 20:35:59.82 rH9xy5Nb.net
>>654
イテレーター業界?

680:デフォルトの名無しさん
16/10/01 20:38:04.48 roKi/w2g.net
メソッド書かないで引数内で追加できてよかったと思う人もいるんだろうか?

681:デフォルトの名無しさん
16/10/01 20:41:46.11 rH9xy5Nb.net
ラムダ式なしでWhere()とかSelect()使うの苦痛だわw

682:デフォルトの名無しさん
16/10/01 20:44:48.07 wmtSdepv.net
>>650
それとぃってrで見た

683:デフォルトの名無しさん
16/10/01 20:52:06.40 roKi/w2g.net
>>659
そういうのは調子乗ってると思わないけどw

684:デフォルトの名無しさん
16/10/01 22:32:32.05 uFiZxscE.net
普通にメソッド書いたほうが見通しスッキリするんじゃねー?
と思うコードはある、かな……

685:デフォルトの名無しさん
16/10/02 00:04:13.32 ROqN57Sm.net
delegateの演算子オーバーロードは出来ない?
例えば
Func<string, int> f1 f2
な時に
f = f1 | f2;
stringの値によって、f1またはf2を呼び出すfをつくる
みたいな事がしたい。

686:デフォルトの名無しさん
16/10/02 00:31:44.31 jkLbSgMw.net
デリゲートはクラスじゃないから無理でしょうね
c#は関数呼び出し演算子()のオーバーロードもできないからクラスで実装するのも無理
c++なら出来るんだがね

687:デフォルトの名無しさん
16/10/02 04:26:34.74 jWIE31Om.net
トリッキーな脱出条件の再帰コードを見た事がある
見た目はスッキリしてるけどバグを誘発しそうで怖い

688:デフォルトの名無しさん
16/10/02 06:52:07.42 2n6hXS15.net
>>664
そんなトリッキーなことするバカが出ないようにってこと

689:デフォルトの名無しさん
16/10/02 10:05:52.02 jkLbSgMw.net
個人的には別にトリッキーだとは思わないけど
むしろ美しい
URLリンク(ideone.com)

690:デフォルトの名無しさん
16/10/02 10:54:34.82 eq6TYNRH.net
>>667
"個人的"だね、ほんと

691:デフォルトの名無しさん
16/10/02 11:55:26.61 O3UtDhl/.net
個人的だねとの判断も明らかに個人的なものであるが、これいかに

692:デフォルトの名無しさん
16/10/02 12:01:52.13 RfLsthU9.net
>>667
分かりやすくて良いと思う
この辺りをどう感じるかは文理学歴の差が大きいと思う

693:デフォルトの名無しさん
16/10/02 12:07:04.04 aauDOAhV.net
>>667
それって記法上のメリットしかないだろ?
だってベタに書こうと思えば書けるし、大した手間でもない。
だからそういう糞ユーザーの「俺カッケー」を出来なくしてあるのがC#だよ。
inline f
f1(f2(3))
3*f2(3)
3*f1(3)+2*f2(3)
そのコードはテンプレート部(40行目以前)が完全に動くならそれでいい。
ただしそれが保証出来ないのなら、いちいち見ないといけなくなる。
つまり糞ユーザーの「俺カッケー」に付き合わされることになる。
そういうのが開発効率を落とすと判断し、C#は出来なくしてある。
そういうのも含めて全部出来るようにしているのがC++。
C#の判断も一理ある。


694:だから賛同するならC#を使えばいい。 いやならC++を使えばいいだけ。 このケースに関しては、やっていることはOOPスレの10と同じ。 http://echo.2ch.net/test/read.cgi/tech/1467992113/10 便利なことをしているつもりが余計に手間を増やしている。 初心者はこの判断が付かないんだよ。だから1行/1文字でも減らそうとする。 なお俺はその記法について文句を言っているわけではない。 それがシステム側で「バグのない物」として提供されていれば、使えばいい。 ただ、オレオレ記法をしたいだけの為にバグがあるかもしれない物を出されたらウザイだけ。



695:デフォルトの名無しさん
16/10/02 12:25:34.26 OGpfvvty.net
こういう流れを見るとやっぱ文理学歴の差って大きいんだなって実感する

696:デフォルトの名無しさん
16/10/02 12:42:14.69 jkLbSgMw.net
オレオレ記法じゃなくて数学的な記法をプログラムに持ち込んだだけなんだけどね
後バグがあるならやめてほしいと言うけど特にc++規格に明示されてない文法を使ってるってわけでもないし
関数オブジェクトとか(この場合可変長テンプレートとか)を見慣れない人にはトリッキーに見えるだけだと思うな

697:デフォルトの名無しさん
16/10/02 12:52:17.12 +f7TOXbf.net
分かりにくいというか曖昧すぎて理解のしようがない
関数の和や合成と言われても、引数適用や合成の仕方は無数に考えられる
全てがオレオレのフィーリングに基づいた暗黙脳内ルールじゃん
むしろ理系こそ拒否反応起こすわ

698:デフォルトの名無しさん
16/10/02 12:54:43.75 I2UZY42b.net
そう言うことを頻繁にやるならアリだと思うが過去そう言うことをやったことない俺にはできてもできなくてもあまり変わらん
バグまで持ち出して反論してる >>671 はちょっと頭弱い子だと思う

699:デフォルトの名無しさん
16/10/02 12:57:57.60 aauDOAhV.net
>>673
数学の合成関数は f(g(x)) だろ。アホなのか?

700:デフォルトの名無しさん
16/10/02 13:07:15.54 aauDOAhV.net
>>673
なお俺はトリッキーだとは言ってない。
バグを誘発する糞コードを読まされる手間が増えるだけだからウザイと言っている。
その件に関してはベタで書いた方が「全体的には」楽だろ。それだけ。
初心者はこの「全体的」が分からないから局所的な最適化コードに異様にこだわるだけ。
それだけで済んでいればいいけど、通常はそれだけじゃ済まないんだよ。
そして泥沼化するから、C#では最初から禁止している。それだけ。
まあ妥当だと思うよ。

701:デフォルトの名無しさん
16/10/02 13:08:59.70 FGg7v3h+.net
まあラムダがあれば簡単な関数合成する上で特に不便はないな
C++はラムダがない時代が長かったからオペレーターオーバーロードなどを駆使して表記の簡略化、統一化を考える必要があった

702:デフォルトの名無しさん
16/10/02 13:17:42.00 +f7TOXbf.net
演算子オーバーロードの濫用の問題は、全く一般的でないオレオレルールが+などの非常に一般的な表現でコードに撒き散らされることだよ
少なくとも俺には f=f1+f2 と書かれても何のことかさっぱり分からん
うまいこと空気読んで共感してあげるという高度な文系的センスが求められる

703:デフォルトの名無しさん
16/10/02 13:34:10.10 aauDOAhV.net
ちなみにC#からの見方に変えると、
C#の開発時には既にC++があったわけだから、
templateの有効性や演算子オーバーロードの利便性を知らなかったわけではない。
ただ、馬鹿が調子こいて余計に手間が増えることの方が多いと判断したから、落とした。それだけ。
「出来る」ことと「便利になる」は別なんだよ。だから結局の所プログラマ次第。
そして「自前クラス」まで禁止するとstaticおじさんになるというわけさ。
これについてはJava側からの視点で批判的な物が多いけど、
おかしなクラス構成ばかり見せられたら自前クラスも禁止したくなるだろ。
実際、OOPスレ10に対してなら
「お前がクラスを作ることは禁止、どうしても欲しければ相談しろ」というのも現実的な線だよ。
要するにメタプログラミング系は本来は熟練者しか使っちゃいけないのさ。
初心者が「template使える俺カッケー」をするからおかしな事になる。
それってtemplateを使うこと、或いは短く書くことが目的になってるだろ。
手間を減らすこと、コンパクトに書いて規模の限界を緩和することを目的にしろって事だよ。
(クラスも程度は軽いけど結果的に自前フレームワークを用意するという点でメタプログラミングと似ている)

704:デフォルトの名無しさん
16/10/02 13:39:28.09 jkLbSgMw.net
関数の合成といえば(f◯g)(t)=f(g(t))だし
「線形結合できる関数」クラスの例で
関数の和といえば(f+g)(t)=f(t)+g(t)だし数学的にこれ以外ないでしょ
合成はc++に◯記号がないから|を代わりにしただけ
あとあのコードがまるで「普通」のコードよりもバグを誘発しやすいみたいな言い方してるけどなぜそう思うの?
単に見たことない書き方だからそう思ってるんじゃないの?
数学についても、プログラムについても単に知らない人が拒否反応を起こしたり分かりにくいといっているように感じるんだが

705:デフォルトの名無しさん
16/10/02 13:41:46.38 aauDOAhV.net
>>681
てかお前数学知らないだろ?
○って何?ドットなら関数内積で、合成関数ではないぞ。

706:デフォルトの名無しさん
16/10/02 13:43:56.45 aauDOAhV.net
あ、2chで表示できないのだろうからunicodeで頼むわ。

707:デフォルトの名無しさん
16/10/02 13:49:48.57 jkLbSgMw.net
U+2218
URLリンク(www.fileformat.info)

708:デフォルトの名無しさん
16/10/02 13:56:01.58 Tg5OdweU.net
コードの細かい記述方法であれこれルール作りたがるとかチラ裏でやってほしいわ
他人から見たら全く役に立たない

709:デフォルトの名無しさん
16/10/02 14:03:39.03 aauDOAhV.net
>>684
ああこちらでも確認した。そういう表記をすることもあるようだ。
俺は知らんが。
ただ、そういうのを | で代用するようなことをするから演算子オーバーロードは駄目なんだよ。
それが欲しければ、そのコードをそのまま使わないといけない。
そうじゃないと、お前のオレオレクソコードを全員が読まないといけなくなるだろ。
例えばJavaScriptなら、ソースコードはunicodeなのでそれが出来る。
function ○(func0, func1){}
だからその件に関する正しいやり方は、unicode版C++で○を演算子としてサポートすることだ。
ただ、f(g(x))と書けばいいだけのことを新しい演算子を定義するのは無駄だ。
だから現実的にはunicode版C++で○をマクロ等で合成関数に置換することだろう。
(unicode版C++があるかどうかは知らん)

710:デフォルトの名無しさん
16/10/02 14:04:19.38 FGg7v3h+.net
>>680
cppからcsへの変遷の際に危険だが柔軟性の高い機能が取り除かれた理由は、調子こいたバカが増えるからではなく、基本的なスキルのないプログラマが使うことを前提にしたってだけだろう
上で出た関数合成の例だってまともに仕事してるcppプログラマならなんの苦もなくよめる
おや、数値型以外の型に+演算子が定義されているぞ
ああ、オーバーロードしたのね
まっ、文脈から関数合成で、よほどひねくれてなきゃ線形結合だろう
いちお、確認するか…仕様書は…ない
ならソースみよか…(10秒ほど定義を眺める)…うん、さっきの解釈で良いみたいだね
よし、じゃあ楽に見やすくなるならガンガン使おう
cppが出来るレベルではこれが普通の反応であって、読めないという泣き言はプロである以上通じない
csだと逆に、Linqとかあたらしいのわたしよくわからないので禁止!といったようにバカがわからないというだけで、自作の便利なライブラリどころか、標準的なライブラリすら使えなくなってしまう
世間的には同じプログラマとして分類されるけど生きる世界が違うんだよ

711:デフォルトの名無しさん
16/10/02 14:06:04.74 ROqN57Sm.net
自己が見慣れないものを、一見汎用性のありそうな


712:ウ知な屁理屈つけて拒否しるのって、老化の始まりなのかな。 自戒の意味も込めて。



713:デフォルトの名無しさん
16/10/02 14:09:00.42 FGg7v3h+.net
>>686
さっきからちょっと気になってたんだが
関数を合成するのと関数の評価を続けて行うのは全く別の処理だぞ
どの記号を使うべきか、そもそもオバロすんなとかいう議論以前の話で間違ってる

714:デフォルトの名無しさん
16/10/02 14:20:35.82 +f7TOXbf.net
>>687
そういう考えは規模が大きくなると破綻する
関数合成をする操作があっちゃいけないとは思わないが、定義を思い出すのに十分なラベルを付けるべき
1,2文字の記号と、離れた場所にある型宣言だけではあまりにもヒントが少なすぎるし、演算子は名前空間が小さすぎる

715:デフォルトの名無しさん
16/10/02 14:25:11.07 aauDOAhV.net
>>687
なんかC++の奴らは「選民思想」を持っているようだけど、それは違うと思うんだよ。

そのコードを書いた時点で、バグがある可能性が残ってしまう。
だから見ないといけない。俺はこれが嫌なんだよ。
コード自体は「打ち間違いがない」という前提でなら10-30秒程度だよ。中身は何もやってないから。
だからそれが既に実績のあるライブラリとして提供されていて、その中身の確認ならまあいい。
ただしそれを自前で書かれたら、詳しく確認しなければならないし、全てに当てる検証も必要になる。
そして得られるメリットはちょっと短く書けるだけ。
これは明らかに手間が増えているだろ。

.NET公式で関数合成の演算子として提供されていれば、それを使うことに問題はない。
仮にバグがあったとしても公式側が修正してくれる。(中身の実装について見る必要がない)
自前で書いたら上記の通り手間が増えるだけ。だったらベタで書いた方がマシ。

基本的にC#は「馬鹿が使う」ではなく「ここら辺まででいいよね」という思想だとおもうし、
その判断自体も割と妥当だとは思う。ちょっと窮屈な点はあるけど、致し方なし。
なお俺はC#派ではなくかなりC寄りのC++派ね。(お前らがbetter-Cと言っている奴)

これとは別に、「馬鹿でも使える言語」として使っている奴もいるし、
そいつらが調子こいているのも事実だけど、それは別問題。

716:デフォルトの名無しさん
16/10/02 14:27:32.07 FGg7v3h+.net
>>690
まあ別に俺も演算子を積極的に推奨するわけじゃないけどな
ちゃんとしたcppプログラマなら標準の型に対する演算子の挙動に準ずる動作で演算子を定義するのが良い習慣だってのが常識として知っているわけだし

717:デフォルトの名無しさん
16/10/02 14:28:49.54 aauDOAhV.net
>>689
関数ポインタを返せばいいだけだろ。

いずれにしてもtemplateは静的展開なんだから、ベタに書けない処理はないだろ。
ベタに書くのがいいか、テンプレートを使うか、
これを検証まで含めた「手間」基準で判断しろというのが俺の意見。

718:デフォルトの名無しさん
16/10/02 14:40:47.92 FGg7v3h+.net
>>691
依存先にバグがあるかも〜とかそんなんでプログラマやっていけるのか?
演算子使おうが使わないが、やりたいことが関数合成だろうが何か別の処理だろうが、プログラミングするなら、関数やメソッドを定義してモジュール化するのは当たり前の事だろう
むしろ同じ処理をモジュール化しないで、同じようなコピペコードを大量生産するほうが圧倒的に悪じゃん?
この悪を突き詰めるとUIのイベントハンドラに全ての処理をぐっちゃぐちゃに詰め込むようなキングオブバカになるんだよ
そんなものは誰も望んでいない
処理の重複があればモジュール化するのが当たり前
モジュールにバグがあるのも当たり前でモジュールの保守をするのも仕事のうちだ
演算子がどうのこうのってレベルじゃねえぞ

719:デフォルトの名無しさん
16/10/02 14:42:08.34 FGg7v3h+.net
>>693
レス番間違ってないか?

720:デフォルトの名無しさん
16/10/02 15:00:21.56 aauDOAhV.net
>>694
お前がそう思うのならそれでいいじゃん。
俺は「手間」がかからない方を選ぶ。それだけ。

関数の線形結合なんて普通のプログラミング(例えばブラウザ等の製作)では不要だろ。
だから俺はそれにオーバーロードなんてしないし、必要ならベタに書く。
普通のプログラミングで、その線形結合って何回使うと思っているの?

余程数学的なことをするのであれば関数の線形結合も必要になるのかもしれないけど、
そういうところは既にライブラリなりフレームワークが用意してあり、
演算子も既にオーバーロード済みだったりすると思うよ。

とはいえ、俺とお前は特に何の関係もないわけで、別にお前がそうすることを止めはしない。
それをOSSとして公開してあれば、「馬鹿がいきがってるな」と思うだけ。
そういう俺に対してお前が「馬鹿だな」と思うのも自由だよ。
そういう意味ではいい時代になったね。

721:デフォルトの名無しさん
16/10/02 15:08:10.02 aauDOAhV.net
>>695
間違ってない。
> 関数を合成する (>>689)
に対して「関数ポインタを返せばいいだけ」

俺が671で
> 関数の評価
つまり値を算出したのが気に入らなかったんだろ?

Cでも「関数ポインタを返す関数」というのは普通に定義出来る。
関数合成ってのは別に難しい話でも新しい話でもない。

722:デフォルトの名無しさん
16/10/02 15:25:03.83 FGg7v3h+.net
>>696
なるほどそっちの認識では線形結合のみかつ再利用の機会も少ないという前提の話題だと思っているのね
関数合成や線形結合はあくまで一例であってもっと一般論的な話をしてるつもりなんだが>>694読んでわかんなかったかな?

723:デフォルトの名無しさん
16/10/02 15:30:13.53 aauDOAhV.net
ああすまん、696はレス相手を勘違いしていた。
>>694向けに再度書き直す。

>>694
それは単にDRYなりOAOOだし、基本中の基本だろ。
今更何を言っているんだ?

俺は無駄なコードを書くなと言っているだけ。
使いもしない演算子オーバーロードのコードとかね。

724:デフォルトの名無しさん
16/10/02 15:36:24.07 FGg7v3h+.net
>>697
わからなくなってきたな
君は関数合成をカスタム演算子を使う方法ではなくf(g(x))と表記出来ると言っている
これは関数合成ではなくg(x)を評価した結果を引数にしてfを評価しているだけであって関数を合成する処理ではないよと返した
さらにその返しとして関数ポインタを使えば良いというよくわからない返事が来たのでレス番間違ってないか?って聞いたの
関数ポインタを使ってf(g(x))の表記でfとgを合成するにはどう書けば良いんだろうね
当然だけど|を使った表記より実装がシンプルになってバグがなくなるんだよね君のポリシーからすると

725:デフォルトの名無しさん
16/10/02 15:41:08.17 aAAtYBE2.net
>いちお、確認するか…仕様書は…ない
>ならソースみよか…(10秒ほど定義を眺める)…うん、さっきの解釈で良いみたいだね

ドキュメントがそろってない場合、実際にはオーバーロード関数の実体を見つけるだけでも
一苦労で、10秒どころじゃ済まなかったりするけどな。
初見のコードだと結局デバッガで追いかけるのが一番早かったということも。

726:デフォルトの名無しさん
16/10/02 15:46:00.43 aauDOAhV.net
>>700
> 関数ポインタを使ってf(g(x))の表記でfとgを合成するにはどう書けば良いんだろうね
それが>>595だろ。
> 関数合成の例だってまともに仕事してるcppプログラマならなんの苦もなくよめる(>>687)
流に言えば、まともに仕事してるCプログラマなら何の苦もなく読める。

> 当然だけど|を使った表記より実装がシンプルになってバグがなくなるんだよね
はい。
上記の通り、君の定義の「まともなCプログラマ」なら一瞬で読めるし、
少なくとも | を使っている時点で他の人と組み合わせたらバグを誘発するからアウトだよ。

727:デフォルトの名無しさん
16/10/02 15:51:44.43 FGg7v3h+.net
>>699
すまない
わかってるならいいんだ
君の書いた線形結合かつ再利用の機会の少ない場合に限定したレスを読んでこっちが勝手に一般的な話に拡大してしまっただけだから
線形結合だけできてもまあ確かにそんなに嬉しくはないよね
Boost.Lambdaみたいなライブラリの一部として組み込まれてるならともかくね

728:デフォルトの名無しさん
16/10/02 15:54:11.92 aauDOAhV.net
>>701
君と俺は反対ではないけども、補足をすると、俺が思うに、
「直感的に見たとおりの演算子/メソッドじゃないとオーバーロードしてはいけない。」
いちいち確認する必要があるのなら、そこにベタで書いてあった方がすぐに辿れていい。

729:デフォルトの名無しさん
16/10/02 15:57:16.07 wePFQlkp.net
捨て台詞吐くぐらいなら絡んでこなきゃいいのに...

730:デフォルトの名無しさん
16/10/02 15:57:23.23 FGg7v3h+.net
>>702
それ合成してないじゃん
関数f,gを合成して名前はなんでも良いけどhを作ろうって話してんの

731:デフォルトの名無しさん
16/10/02 16:10:13.27 aauDOAhV.net
>>703
いや先にIDを読み間違えたのはこちらの方だ。
これは俺が悪かった。

> Boost.Lambda
見てみたが、一覧表がないから使えるものかどうかはよく分からん。
ただ俺はこういうのを使うのは賛成、自前で用意するのは反対。理由は、

・バグがない。あったとしても向こうが勝手に直してくれる。
・「普通」の仕様になっているはず。オレオレ演算子アサインはない。

>>706
「まともなCプログラマ」ならそれも一瞬で書けるって事だよ。
ただし見た目は>>595的になる。それを「汚い」とするかはその人次第。

732:デフォルトの名無しさん
16/10/02 16:28:44.65 FGg7v3h+.net
>>707
すまない
関数ポインタの件がよくわからないのだけどサンプルコードはないだろうか
typedef int (*p_func_t)(int);
とあったときに
p_func_t f = ...;
p_func_t g = ...;
int x;
p_func_t h = f(g(x));
と表記してfとgを合成できるような方法があるってことだよね?

733:デフォルトの名無しさん
16/10/02 16:53:20.94 jkLbSgMw.net
俺は関数オブジェクトを使うのによい例を具体的なコードを示して挙げたつもりなわけだが
その例がクソだというなら同じ題材で「まともなCプログラマ」ならどう書くのか
プログラマらしく俺と同じようにideoneにでもコードをあげてほしいよね

いいかげんそうしないと利点欠点の議論ができない
そもそも彼の言っていることがプログラムで実現できるのかも分からないのが現状だしね

734:デフォルトの名無しさん
16/10/02 17:41:34.45 ROqN57Sm.net
レガシーな話は別の場所で。

735:デフォルトの名無しさん
16/10/02 18:37:00.85 4fupdPv1.net
そろそろc++スレへ

736:デフォルトの名無しさん
16/10/02 20:32:46.30 ruQ48W5a.net
>>682
ちいさな中空の○のことだろ
数学でよ〜く使う奴

737:デフォルトの名無しさん
16/10/02 21:54:50.86 QFl4EKwL.net
f∘g

738:デフォルトの名無しさん
16/10/03 04:19:54.47 uOsaIQNY.net
何時もfまるgって読んでるけど正式な読み方は何なの?

739:デフォルトの名無しさん
16/10/03 06:05:41.66 70nww6OY.net
この手の話題に電話越し実験とかというのがあったと思う
自分の思っている事を電話越しに話すことを想定して、
相手に伝わらない記号や概念が思い当たったら使うなって話

740:デフォルトの名無しさん
16/10/03 07:58:56.85 K13Pj3xV.net
>>714
それで正しいみたい
URLリンク(izumi-math.jp)
URLリンク(www.comp.tmu.ac.jp)

741:デフォルトの名無しさん
16/10/04 10:32:58.48 7zrfyEQB.net
みんなUIフォントを何にしてる?
メイリオがいいよね?メイリオがいいよね?

742:デフォルトの名無しさん
16/10/04 10:34:40.02 reFXN9x4.net
理由がないかぎりデフォのまま

743:デフォルトの名無しさん
16/10/04 10:53:11.92 6+Zayg+b.net
ふらっととマルチとか他人に共感してもらわないと不安になる病気か

744:デフォルトの名無しさん
16/10/04 10:58:30.13 s22xkPru.net
901 名前:デフォルトの名無しさん (アウアウ Sa17-RPp1)[sage] 投稿日:2016/10/04(火) 10:32:30.59 ID:2uMugtE2a
みんなUIフォントを何にしてる?
メイリオがいいよね?メイリオがいいよね?

745:デフォルトの名無しさん
16/10/05 23:55:13.72 +0VoUMKr.net
C#勉強始めたんですが、初心者がだいたいつまづくポイントってどこだと思いますか?

746:デフォルトの名無しさん
16/10/06 00:04:15.38 7nh5q1fN.net
デリゲートかなあ

747:デフォルトの名無しさん
16/10/06 00:15:35.85 4kR5N43K.net
プログラミング経験ないなら参照型と値型で必ず絶望する
経験あるならデリゲートかな

748:デフォルトの名無しさん
16/10/06 00:32:29.25 zO3yIj3z.net
>>722-723
ありがとうございます
今まさにデリケートでハマってます。。
使い方?使いどころ?を共感できないとうやむやでしょうがないです

749:デフォルトの名無しさん
16/10/06 00:39:52.90 rwN2Tml/.net
デリゲートとかめったに使わないコールバックでしか使ったことがないな
代入かと思っていたら参照だったで面倒なことになった事はある

750:デフォルトの名無しさん
16/10/06 00:45:11.41 TGE1GIM6.net
今時は直接delegateで宣言するようなことはなくなったから
概念は知っておいて、ラムダ式と
Action<T>とかFunc<T>の実用例覚えとけばいいんじゃないですかね

751:デフォルトの名無しさん
16/10/06 00:49:47.22 4V0JRI8n.net
GDI+の機能にかなり頼っていていろいろハマったw
>>726
他の人のソースを参考にしようとしてネットで調べているとdelegateは割と見かける
そのときに解釈するのにハマるかもw

752:デフォルトの名無しさん
16/10/06 01:27:48.67 fMQ+lBRM.net
デリゲートとラムダを滅多に使わないって珍しいね
C#1.0とか2.0の現場なのかな

753:デフォルトの名無しさん
16/10/06 01:30:51.44 4V0JRI8n.net
>>728
いやラムダは普通に使うだろうけどdelegateはむしろ古いソースに多いと思うんだけど
そもそもラムダを滅多に使わないってどのレス?

754:デフォルトの名無しさん
16/10/06 01:34:30.42 NXx8nGJH.net
デリゲートもラムダもインタフェースも一切使わないでアプリ作ってる
参照型と値型はList<T>でハマった
あとDispose

755:デフォルトの名無しさん
16/10/06 02:31:28.02 tWbYPS8o.net
デリゲートで思い出したけど、Delegateを取るメソッドにラムダ式を渡す時、
Actionとか適当なデリゲートにキャストする必要があるけど、これ()が増えて読みづらいんだけど
もうちょっと簡潔に書く方法何かないかね

756:デフォルトの名無しさん
16/10/06 06:42:51.70 fMQ+lBRM.net
>>729
ラムダって多くはデリゲートとセットでは?

757:デフォルトの名無しさん
16/10/06 07:20:21.92 n3wSSvrr.net
・匿名メソッド構文
delegate(int x){ return x * 2; }
・delegate typeの定義
delegate string IntToStringFunc(int i);
・定義済みdelegate
EventHandler,Action,Func,Predicate,...etc...

"delegate"キーワードは使わなくなったけど、delegateは使うね。

758:デフォルトの名無しさん
16/10/06 20:52:22.74 /ETy8QFu.net
ラムダ式って拒絶反応が出るんだけどすんなり使えた?

759:デフォルトの名無しさん
16/10/06 20:53:36.20 roCwyFi8.net
使えたよ

760:デフォルトの名無しさん
16/10/06 21:04:12.56 JthKKgNo.net
アレルギーは病気だからお医者に行くといいよ

761:デフォルトの名無しさん
16/10/06 21:55:32.73 Gk0vxqlO.net
>>734
FAQ過ぎる

762:デフォルトの名無しさん
16/10/06 23:09:44.94 M7jvqMaX.net
C#はじめて触った時点でもうラムダ式あったからあって当然だった

763:デフォルトの名無しさん
16/10/07 00:40:13.77 7KQTkYQu.net
俺もJava初めて触った時点でラムダあったし
5ヵ月間存在知らなかったけど

764:デフォルトの名無しさん
16/10/07 01:58:05.78 zqRixoIp.net
リンクトゥーエスキューエルは?

765:デフォルトの名無しさん
16/10/07 08:14:27.52 zPyY2V4X.net
拒否感というか、実際に使うまでは全然に覚えれんかったなあ
Cのポインタとかもそうだった

766:デフォルトの名無しさん
16/10/07 08:39:51.90 m+Df9peK.net
逆になんで拒否反応起こすのか理解できない
知って即座に馴染んで初めのうちは便利すぎてちょっと調子乗って使いすぎちゃいましたってなるだろう

767:デフォルトの名無しさん
16/10/07 08:49:35.73 nw13XKq1.net
同じカテゴリの処理の実装場所が散らかるからな。気持ちはわからないこともない

768:デフォルトの名無しさん
16/10/07 13:02:14.27 gy3H7/nZ.net
別人で再生して浄化した。

769:デフォルトの名無しさん
16/10/07 21:00:51.15 NycpsfVm.net
>>743
> 同じカテゴリの処理の実装場所が散らかるからな。
それは使いどころを間違えてるだけやん

770:デフォルトの名無しさん
16/10/07 21:05:49.22 1Dl+MuXR.net
道具のせいにする人ってどこにでもいるよね

771:デフォルトの名無しさん
16/10/07 21:42:30.53 rpvo0aMN.net
いるね

772:デフォルトの名無しさん
16/10/07 23:53:39.03 1f6Aa5PW.net
そういう方はコボルに移ってもコボルのせいにしない?

773:デフォルトの名無しさん
16/10/08 00:27:37.64 YZ0dkDui.net
極端な人ってどこにでもいるよね

774:デフォルトの名無しさん
16/10/08 10:59:27.20 3B0HEkdw.net
>>742
実際にコードを書かない、コードを書けない、かつ不勉強な人がコードレビューでLINQその他に対して激しい拒否反応を起こしたのは見た事ある。
もちろん、その人にコードレビュー受けた人達は大被害ww

その人は自己が見慣れないコードは全部ケチをつけるタイプなので特殊例かもしれん。

775:デフォルトの名無しさん
16/10/08 17:25:08.15 6UkbCfBv.net
そんなやつがレビューアーやってる事の方が問題なんだが

776:デフォルトの名無しさん
16/10/08 17:28:45.90 siQv9+5e.net
直属の上司とか、1年上の先輩とか
機械的に決まるパターンだと悲しみが起こりそう

777:デフォルトの名無しさん
16/10/08 18:05:11.46 160QOg/G.net
日本の文化と思って諦めるしかない
どうしても嫌なら会社はいくらでもある

778:デフォルトの名無しさん
16/10/08 20:07:07.86 6x1/odTz.net
会社はいくらでもあるが、果たして…

779:デフォルトの名無しさん
16/10/09 03:24:54.85 b4dakfPd.net
会社厨うざい

780:デフォルトの名無しさん
16/10/13 14:08:23.46 iJXxjoio.net
Visual C# には iniファイル読み書きのライブラリはないの?

781:デフォルトの名無しさん
16/10/13 14:23:00.79 x9JSnrTo.net
標準のはない

782:デフォルトの名無しさん
16/10/13 14:36:24.85 U+TNkLbY.net
今時はJSONでも使っとけ

783:デフォルトの名無しさん
16/10/13 15:12:47.08 iJXxjoio.net
>>757-758
ありがとう
なんとかする

784:デフォルトの名無しさん
16/10/13 21:52:42.89 iJXxjoio.net
Visual C# で、フォーム上の適当なところでダブルクリックすると
ロード直前に実行される関数のひな形(Form1_Load)ができるけど
この関数を削除するにはどうしたらいいの?

785:デフォルトの名無しさん
16/10/13 21:55:43.87 mO/7q7RS.net
逆に消してどうしたいの?

786:デフォルトの名無しさん
16/10/13 21:56:14.16 NpjsDOUl.net
>>760
普通にエディタ上で消せばいい。あと表示→プロパティ→イベント(󾀄)からも消しとけ。

787:デフォルトの名無しさん
16/10/13 22:30:08.59 Qz0gpqw/.net
>>760
直後なら(本当は直後でなくてもだけど)ctrl-Zで消せると思う

788:デフォルトの名無しさん
16/10/14 00:12:51.87 ogHyy/3J.net
作ったままの中身空っぽならプロパティイベントから消したら同時に消えたと思う

789:デフォルトの名無しさん
16/10/14 01:38:37.30 T/Zghmcy.net
コードから消そうとすると
エラーになるんだよね
最初ほんとうにイライラしたわ

790:デフォルトの名無しさん
16/10/14 01:48:21.30 ZVLfa9Nj.net
>>765
ビルドエラーのこと?なったらなったで該当箇所教えてくれるから消せばよくね?

791:デフォルトの名無しさん
16/10/14 09:07:30.89 5Y7KbdSJ.net
>>764
中身あっても消えるよ
これほんと余計なんだよな

792:デフォルトの名無しさん
16/10/14 13:40:56.00 SyTitZMd.net
>>765
うちの姉はデザインとコードの切り替えで
CtlとAltと0押して、ShiftとF7で戻ってるぜ

793:デフォルトの名無しさん
16/10/14 16:29:58.71 4Yb8Ckim.net
>>762
ありがとう助かりました
プロパンティからも消してエラーが出なくなった

794:デフォルトの名無しさん
16/10/14 17:46:35.81 3zF/39NX.net
>>767
必要ならコメント入れておけば良いじゃん

795:デフォルトの名無しさん
16/10/14 21:38:58.11 EyG+crJd.net
>>767
コントロールのID変えたら、紐付いてるイベントまで消えたりするもんな

796:デフォルトの名無しさん
16/10/14 23:55:39.11 LsS2QSVW.net
イベントハンドラ消えて困ることってあるの?
せいぜい1〜2行の移譲メソッドでしょ

797:デフォルトの名無しさん
16/10/15 00:26:35.41 k9mTyD+7.net
>>772
ha?

798:デフォルトの名無しさん
16/10/15 02:30:14.73 SiQ2B4iv.net
>>773
ん?

799:デフォルトの名無しさん
16/10/15 02:42:51.12 JTDXk7lA.net
>>774
プニュ( ´∀`)σ)Д`)

800:デフォルトの名無しさん
16/10/15 13:47:32.69 trxVi14T.net
あるフォームのボタンを押されたら、スレッドを作って
そのスレッドからフォーム内のラベルの読み書きをおこなう

というプログラムを書いているんだけど
スレッドを別クラスで書くにはどうしたらいいんでしょうか
スレッドを作るとき、そこにフォームのポインタを渡せばいい?

801:デフォルトの名無しさん
16/10/15 13:54:45.28 P+QAjsnw.net
>>776
.Start(Object)のObjectにフォームを入れる。
もちろんThreadのParameterizedThreadStartは引数にObjectが必要。

スレッド終了方法にコツがいるから注意な

802:デフォルトの名無しさん
16/10/15 13:56:21.00 P+QAjsnw.net
なお、Invokeで操作するだぞ

803:デフォルトの名無しさん
16/10/15 14:59:51.84 k370RUkX.net
今時Threadを直接使うとか時代錯誤甚だしい
続けて処理をするなら、メインスレッドからTaskを開始→メインスレッド上でawait→結果受け取ったらラベル更新→次のTaskを開始→…
って感じの流れにするのが今風

804:デフォルトの名無しさん
16/10/15 15:13:08.29 auQgHyKE.net
FW4.5以上必須だけど

805:デフォルトの名無しさん
16/10/15 15:16:20.18 trxVi14T.net
>>777
Start前に別スレッド用のクラスのメンバーに渡しました
ヘタレですみません

>>780
古い機械で動かす用なので今風にはできません
ヘタレですみません

806:デフォルトの名無しさん
16/10/15 16:47:54.95 P7MwN4Hv.net
>>779
意識高いねー

807:デフォルトの名無しさん
16/10/15 17:35:29.50 pMgLYSqA.net
最近は当たり前のことを意識高いと揶揄する若者が増えたよね

808:デフォルトの名無しさん
16/10/15 17:50:47.61 xaDriJeZ.net
ポーリングとかほぼ回しっぱなしの処理ならむしろ生スレッドでいいと思うけどね。
前も書いた気がするけど、デッドロックしやがるたちの悪い処理にも対応可能だし

809:デフォルトの名無しさん
16/10/15 18:44:32.46 uHGHKnNI.net
C#はC++よりも、


810:他人の書いたコードが分かりやすく、数年前のコードが読みやすい言語なのでしょうか?



811:デフォルトの名無しさん
16/10/15 18:47:09.72 I3OeS+b+.net
結論から言うとそんなものは書いた人によります

812:デフォルトの名無しさん
16/10/15 19:01:46.62 6v+uOgk1.net
少なくとも他人のC++の古い糞コードは読みたくない
C#は数年前でもあんま変わらんからそれほどでもない

813:デフォルトの名無しさん
16/10/15 19:41:54.19 UDl7k1b2.net
古い機械って、XPなのかなw

LINQ Task等の登場前後でC#のコードもだいぶ変わってきてきてる気がする。
C#7.0以降でも、どんどん変わって行く気配。

814:デフォルトの名無しさん
16/10/15 19:50:54.93 Gdu5DIb6.net
C#のformアプリで画面内にCADみたいな線を引っ張ったりするものって作ること可能?

815:デフォルトの名無しさん
16/10/15 20:14:30.17 lUEMvsqs.net
C#から勉強したから
C++気持ち悪くてしょうがない
本のサンプルコードに多いから
仕方なく勉強してるけど

816:デフォルトの名無しさん
16/10/15 20:28:52.91 Y5UYqbC9.net
>>789
CADみたいな、の意味がいまいちわからないが簡単な図形なら描ける
URLリンク(dobon.net)
上のページのはコードで座標を決めてしまっているが、マウスドラッグで指定した位置に描くものとかは簡単にできる

817:デフォルトの名無しさん
16/10/15 20:38:05.23 pX/A0T2U.net
>>791
サンガツ
白紙にエクセルのオートシェイプの機能とか文字を好きな位置に挿入する機能を持ったものかな
線のボタンを描画モード、文字ボタンを押せば文字モードみたいなの出来るかなーって

818:デフォルトの名無しさん
16/10/15 20:41:29.04 Y5UYqbC9.net
>>792
>線のボタンを描画モード、文字ボタンを押せば文字モードみたいなの出来るかなーって
そこまでの標準のライブラリは無いので頑張って自分で作ろうw
文字の描画もGDI+でできるからUIの実装だけだ

819:デフォルトの名無しさん
16/10/15 20:50:25.38 vyO0bokn.net
>>780
Microsoft.Bcl.Async使えば.NET Framework 4.0 でも使える

820:デフォルトの名無しさん
16/10/15 20:59:19.56 vyO0bokn.net
>>784
Task作成時にLongRunningオプション指定すれば専用スレッドが作成されるので、ずっと動き続ける処理も対応可能
外から無理やり強制終了させるのはTaskじゃ出来ないけど、それは最後の手段な気が

821:デフォルトの名無しさん
16/10/15 21:01:52.12 trxVi14T.net
ずっと裏で動いているスレッドが1つあって
そのために1つだけスレッドを作っているんだけど Threadじゃだめかな・・・

終了時、Invoke中にメイン死ぬと不正終了になるんだけど
こういうのもTaskとかだとなにもしなくても解決するのかな

822:デフォルトの名無しさん
16/10/15 21:04:09.39 pX/A0T2U.net
>>793
作成可能なのかぁ
よっしゃ頑張って調べてみる
ありがとう

823:デフォルトの名無しさん
16/10/15 23:28:16.70 f1QyDe2U.net
>>756
win32api 直たたきでやる

824:デフォルトの名無しさん
16/10/16 09:25:32.19 N3K1drKB.net
別にDeprecated表示が出るわけでもないのに
いちいち人の顔色確認しないと使えないのかよって感じ

825:デフォルトの名無しさん
16/10/16 09:47:25.93 FoYCot45.net
>>796
そもそもずっと動いてる必要があるのかっていう
スレッドが使われる大半のケースは非同期プログラミングが面倒だからで、
asyncのように継続を自然に記述できる十分優れたプログラミングモデルがあればそもそも必要ないことが多いよ

826:デフォルトの名無しさん
16/10/16 10:13:05.42 JeZKc2qD.net
結局、待ち合わせ処理を上手く書けなければ、非同期処理はドツボルだけだからな

827:デフォルトの名無しさん
16/10/16 10:17:44.05 6cPEMPfX.net
今はasync/awaitのせいでそれ意味あん?っての多いな

828:デフォルトの名無しさん
16/10/16 11:01:54.51 jn8AI4NK.net
IProgress<T>も追加されたし、Control.Invoke()とかBackgroundWorkerとか全然使わなくなったなぁ

829:デフォルトの名無しさん
16/10/16 11:26:09.74 LqkHCFhg.net
MSHTML?とかDOM?の話ってここでしても大丈夫?

id='hoge' なdivを探して、さらにその中に散らばっている class='piyo' なdivを
コレクションしたいんだけど、うまく書けない

830:デフォルトの名無しさん
16/10/16 11:27:43.38 jbRBUkYK.net
$('hoge').children('.piyo')

831:デフォルトの名無しさん
16/10/16 16:08:56.29 43exmUNo.net
MSHTMLはCOMコンポーネントスレだな
C#ではない

832:デフォルトの名無しさん
16/10/16 16:16:22.79 6cPEMPfX.net
ここよりもどこの方が答え出やすいだろってんならわかるが、C#でやりたいってんだからここでいいだろ
変なとこで聞くとC++とかjsでの例が返ってきて面倒

833:デフォルトの名無しさん
16/10/16 17:18:36.54 SvwLiUUm.net
一方このスレでは、使ってる人が居なくて回答がないってオチなんですけどね
ふふふ

834:デフォルトの名無しさん
16/10/16 17:25:57.62 FB+xb9yt.net
逆にnugetで使えるMSHTML的なライブラリを教えてあげたらどうですか

835:デフォルトの名無しさん
16/10/16 20:17:19.13 rLjB7sKS.net
>>804
上手く書けないってどういうこと?
classNameのことかもしれないなと思ったけど違うかな?


普通にdiv取ってクラス名をアトリビュート指定するとき'class'じゃダメ
'className'じゃないといけない

836:デフォルトの名無しさん
16/10/16 20:43:38.34 bkFW5Wdb.net
俺もさっき?ってなった

837:デフォルトの名無しさん
16/10/16 20:44:43.60 HptTw0AS.net
便利な定番ライブラリー教えてください

838:デフォルトの名無しさん
16/10/16 22:10:05.08 rLjB7sKS.net
nugetにも野良にもHTMLライブラリはあまりいいものがない
XPath指定しないといけなかったり単純じゃない

839:デフォルトの名無しさん
16/10/16 22:13:37.85 rLjB7sKS.net
jqueryみたいな使い勝手のものがいいのに全然そういうのは見当たらない

840:デフォルトの名無しさん
16/10/16 22:32:11.51 dK/+e+o+.net
か余計なことせずそのまま実績のあるjquery使えばいいのでは

841:デフォルトの名無しさん
16/10/16 22:55:35.24 Bi9cJ88q.net
>>812
定番かどうかは分からないけどHtmlAgilityPackはどう?
まぁ813が言っているようにXPath使わにゃならんから面倒だけど

842:デフォルトの名無しさん
16/10/17 00:41:57.54 gL0kaGzi.net
mshtmlつかうなら
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
queryselectorが使える

843:デフォルトの名無しさん
16/10/17 21:53:10.29 vjQZXreA.net
HtmlAgilityPackかSGMLReaderあたりかなあ

844:デフォルトの名無しさん
16/10/18 16:42:09.62 7mpjJA7j.net
今動作してるIEの一覧を取得するのにSHDocVw.ShellWindows()を使うけど
IEかただのエクスプローラかそれとも何かのコンポーネントかを判別するのって
どうしたらいいの?

845:デフォルトの名無しさん
16/10/18 18:13:12.16 ewOaGiwG.net
そんなもの使うなとしか言えない

846:デフォルトの名無しさん
16/10/18 18:29:09.57 mq8BnqKZ.net
IE6のときならenumwindowで判断して、hwndからihtmldocumentに変換してたな

847:デフォルトの名無しさん
16/10/18 19:15:18.50 FlxOlnSe.net
>>820
無能だなー

848:デフォルトの名無しさん
16/10/18 20:46:41.52 ewOaGiwG.net
>今動作してるIEの一覧を取得するのにSHDocVw.ShellWindows()を使う

なぜこんなものを使う?

849:デフォルトの名無しさん
16/10/18 20:52:19.50 Gt7CC2vm.net
背後になんか面倒くさい理由を隠してるとしか思えんよな

850:デフォルトの名無しさん
16/10/19 12:11:35.27 LBA1+3Md.net
>>823
こんなもの以外の方法があるならおしえて
ほかの楽な方法があるなら知りたいわ

851:デフォルトの名無しさん
16/10/19 17:19:08.15 arYWyhLn.net
IEオートメーションじゃ実現できないのかな?

852:デフォルトの名無しさん
16/10/19 23:13:27.42 LBA1+3Md.net
MSHTML.IHTMLElement を MSHTML.IHTMLDocument3 にキャストできるの?

853:デフォルトの名無しさん
16/10/19 23:33:28.27 O7AcwVjM.net
documentプロパティから取れるんじゃないか?すくなくともihtmldocument2は取れる3は使ったことないから知らね

854:デフォルトの名無しさん
16/10/20 11:00:38.44 m/6IB2Ib.net
ベクトル使いたいからWPFのチュートリアルみてるけど
もう自分で実装してForm使った方が早い気がした

855:デフォルトの名無しさん
16/10/20 11:21:11.77 h44EP0Eo.net
標準のメッセージダイアログを継承して
おっきいダイアログ出せるようにできる?

856:デフォルトの名無しさん
16/10/20 11:52:28.07 h1aMlyOK.net
>>830
継承してもstaticメソッドの実装はオーバーライドできないよね。

ゼロベースで作っても大した手間でもないよ。
俺はモーダレスかつタイマーで自動で消えるメッセージボックスを自作して使ってる


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1958日前に更新/279 KB
担当:undef