C#, C♯, C#相談室 Part91 at TECH
[2ch|▼Menu]
[前50を表示]
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メソッドの実装はオーバーライドできないよね。

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

857:デフォルトの名無しさん
16/10/20 12:16:12.40 h44EP0Eo.net
>>831
ありがとう。 自分で作った。

858:デフォルトの名無しさん
16/10/20 12:33:25.92 hy7ZxWJM.net
なんでたまに継承できないクラスあるのかな?

859:デフォルトの名無しさん
16/10/20 12:33:46.23 hy7ZxWJM.net
オーバーライドだった

860:デフォルトの名無しさん
16/10/21 22:58:40.56 qlDwM755.net
gcnewってなに? 今でも使っているの?

861:デフォルトの名無しさん
16/10/21 23:06:00.00 myg7EJ7B.net
>>835
c#にgcnewは無いよ。
C++/CLIでc#のnewに相当するのがgcnew。
マネージオブジェクトを割り当てるのに使う。

862:デフォルトの名無しさん
16/10/22 11:50:35.71 uYEAFNJ9.net
>>836
ありがとう
何かの記事でごっちゃに見たみたいだな

863:デフォルトの名無しさん
16/10/22 15:25:07.68 nST3ahFj.net
質問

LINQのクエリ/メソッド式って、どう使い分けるもんなん?
「こういう人はこう」でも「こういう状況ではこう」でもいい。

864:デフォルトの名無しさん
16/10/22 16:27:57.03 Hz0V4lr8.net
とりあえずLINQ to Objectsの場合
基本的にクエリ式は忘れていいと思うよ
SelectManyが出てくるときだけ思い出すことはある

865:デフォルトの名無しさん
16/10/22 16:39:49.89 nST3ahFj.net
ありがとう、あんまり気にしないことにする

866:デフォルトの名無しさん
16/10/22 17:43:18.97 29Li8We/.net
>>829
君の言うベクトルって何?
画像系の話?

867:デフォルトの名無しさん
16/10/22 18:08:09.54 O/1X83Cc.net
>>838
単純なクエリはメソッドの方が簡潔に書けるけど、複雑になると解読不能になるからクエリ式を使う
具体的にはネスト(SelectMany)やjoinやgroupbyを使う場合だな
クエリ式だとletでエイリアス作れるし

868:デフォルトの名無しさん
16/10/22 19:37:45.10 jUJZAwsX.net
管理者権限が必要な処理の書き方とか全然知識


869:がないんだけど、そういうの詳しく書いてある本ってあります?



870:デフォルトの名無しさん
16/10/22 23:36:47.33 AdTl/Wc+.net
class 社員 { public string 名前; }
class 部署 { public List<社員> 社員リスト; }
class 会社 { public List<部署> 部署リスト; }
static void Main()
{
   var data = new List<string[]> {
      new string[]{ "会社A", "営業部", "社員1"},
      new string[]{ "会社A", "営業部", "社員2"},
      new string[]{ "会社A", "営業部", "社員3"},
      new string[]{ "会社A", "技術部", "社員4"},
      new string[]{ "会社A", "技術部", "社員5"},
      new string[]{ "会社A", "経理部", "社員6"},
   };
   var 会社A = new 会社();
   // ここで date を 会社A の中に代入したい
}
こういう単純なクラスとデータがある場合に、dataを会社Aに代入したいのですが、forループでやろうとすると例えば営業部の部署名が複数回出てくるので
上手く出来ませんでした。上級者の人のテクニックを教えて下さい。
本当は会社B、会社CもあるdataをList<会社>に入れたいのですが、まずは会社Aのみで。
あるいは、より良いクラス定義のしかたやデータの持ち方などありましたら教えてください。

871:デフォルトの名無しさん
16/10/23 00:22:31.27 B5STCa/c.net
>>844
何がしたいのかよくわからんけど、そのコードだと
会社は会社名のプロパティを持ってないし部署も部署名のプロパティを持ってないから
"会社A"とか"営業部"とかいうデータは使われず捨てられちゃうと思うんだけど、そこはいいのかな?w

872:デフォルトの名無しさん
16/10/23 07:53:45.11 OxwAMa74.net
>>844
Listの操作でいけるだろ
コンストラクターの引数で

873:デフォルトの名無しさん
16/10/23 09:52:13.25 1pxdLQGB.net
部署クラスが部署名を持ってないってことは、その部署クラス(のインスタンス)をみても
どの部署かわからんってことだぞ

つまり、社員の部署が分かったとしても、その社員を
List中のどの部署インスタンスに設定してよいかわからんってことだ

874:デフォルトの名無しさん
16/10/23 10:49:08.80 sEyHovA2.net
class 会社{会社CD 会社名}
class 部署{会社CD 部署CD 部署名}
class 社員{社員CD 会社CD 部署CD 社員名}
個人的にはこんなイメージ

875:デフォルトの名無しさん
16/10/23 10:57:06.97 ZJ79iXt0.net
なんだそのCDって。

876:デフォルトの名無しさん
16/10/23 11:09:20.84 +n3OHrjP.net
「コード」の略として使われてるのを、帳簿やら流通やら管理やらで結構広く使われてるけど
プログラミング界隈に絞ると余り見ない気がする

877:デフォルトの名無しさん
16/10/23 11:14:50.63 hWrb1W5d.net
flagをflgにして1バイト削減するのとどちらがいい

878:デフォルトの名無しさん
16/10/23 11:18:19.73 KJ+MRgkM.net
省略がどうしても必要にならない限り
無意味な省略はしない

879:デフォルトの名無しさん
16/10/23 11:29:06.27 04VfEeFu.net
>>844
>営業部の部署名が複数回出てくるので
>上手く出来ませんでした
この部分の意味というかどうしたいかがわからん。"会社A"の要素の振り分けならContainsで確認するだけだが

880:デフォルトの名無しさん
16/10/23 11:39:54.27 hJuf8zeH.net
データ突っ込んでDBみたいに扱いたいならDataSetでも良いんじゃないの
速度求めるならオススメできんけどさ

881:デフォルトの名無しさん
16/10/23 12:00:39.55 0D6CiVY3.net
>>851
menuをmnu、userをusr、topをtpとか
何かの制御ボードのサンプルコードで見たけど
1バイト削ることに何の意味があるのか分からん

882:デフォルトの名無しさん
16/10/23 12:14:59.88 631/ZmCa.net
バーコードの最後の数字がC/Dって呼ばれてたな確か
check digitだったと思うけど

883:デフォルトの名無しさん
16/10/23 12:15:35.19 +n3OHrjP.net
大昔には削るメリットは結構あったらしい
変数名の長さに制限があるとか、エディタで扱いやすい長さだとか、そういうの。

884:デフォルトの名無しさん
16/10/23 12:18:54.25 XCFJNrSh.net
>>844
Dictionaryを使えばいいよ

class 社員 { public string 名前 {get;set; }
class 部署 { public Dictionary<string,社員> 所属社員 {get;} = new Dictionary<string,社員>(); }
class 会社 { public Dictionary<string,部署> 所属部署{ get;} =new Dictionary<string,部署>(); }

var 会社情報 = Dictionary<string,会社>();
foreach(var d in data) {
if(!会社情報.ContaintsKey(d[0])) 会社情報[d[0]] = new 会社();
if(!会社情報[d[0]].所属部署ContaintsKey(d[1])) 会社情報[d[0]].所属部署[d[1]] = new 部署();
会社情報[d[0]].所属部署[d[1]].所属社員[d[2]] = new 社員() { 名前 = d[2] }
}

885:デフォルトの名無しさん
16/10/23 12:19:09.90 sEyHovA2.net
未だに列名6バイトなクソDB使ってて
癖ついちゃってるんだすまない

886:デフォルトの名無しさん
16/10/23 12:24:08.02 LLV8Wwru.net
ジャップランドでは今なお80文字x24行の端末で開発もオペレーションもするマシンがバリバリ現役で山ほど稼働しており、
PGという名のライン工により日夜大量の糞コードが生産され続けているのです

887:デフォルトの名無しさん
16/10/23 12:25:50.86 XCFJNrSh.net
テーブル定義からDTO自動生成したら30文字以下の略式名称が沢山出てきてイラついた事ならよくある
どこの製品とは言わんが

888:デフォルトの名無しさん
16/10/23 12:29:06.93 8nXGysoS.net
>>858
分かりずらすぎ

889:デフォルトの名無しさん
16/10/23 12:51:39.85 XCFJNrSh.net
>>862
転職をお勧めするよ

890:デフォルトの名無しさん
16/10/23 13:03:17.86 8nXGysoS.net
Dictionaryなんて使わない。

891:デフォルトの名無しさん
16/10/23 13:10:06.70 Qt7KzQsX.net
今時はクラス名や変数名とかに日本語が使えるから分かりやすくていいよね

892:デフォルトの名無しさん
16/10/23 13:15:27.54 PYj3VGyg.net
>>864
自分の使わないものを「わかりづらい」って批判するのはただの思考停止だな

893:デフォルトの名無しさん
16/10/23 13:16:08.35 +n3OHrjP.net
>>865
あとはインテリセンスちゃんに頑張ってもらうだけ!

894:デフォルトの名無しさん
16/10/23 13:16:17.05 qVlUr/o9.net
フォームのボタンとかラベルの名前の付け方
何か命名規則やコーディング規約とかある?
labelHogeとかlbl_hogeとかルールあるの?

895:デフォルトの名無しさん
16/10/23 13:17:43.18 PYj3VGyg.net
>>868
そんなもの決まってないから
クラス名・変数名に迷ったら書き込むスレ。Part27
スレリンク(tech板)
気になるのなら上のスレに行け

896:デフォルトの名無しさん
16/10/23 13:18:39.73 YUghrMnK.net
会社の複数形…

会社達["会社A"].,["営業部"].["社員1"];

会社達.Select社員("会社A", "営業部", "社員1");

897:デフォルトの名無しさん
16/10/23 13:19:22.06 YUghrMnK.net
間違って . いれっぱだった

898:デフォルトの名無しさん
16/10/23 13:24:40.71 631/ZmCa.net
>>868
コントロール専用のルールはないけど、VB6みたいなハンガリアンはやめろってことにはなってたはず。
ただ実際はコントロールに限ってはハンガリアン使ってる人が多いと思う

899:デフォルトの名無しさん
16/10/23 13:43:56.51 7RJgAwd4.net
アプリケーションハンガリアンは普通に使う
インテリセンスがグループ化してくれて便利やろ

900:デフォルトの名無しさん
16/10/23 13:48:58.15 qVlUr/o9.net
>>869-873
ありがとう
とりあえずマイクロソフト推奨のルールは
ないってことやね

901:デフォルトの名無しさん
16/10/23 14:47:40.36 KJ+MRgkM.net
.NET Frameworkの記法に合わせる事にしてる
URLリンク(msdn.microsoft.com)(v=vs.100).aspx

902:デフォルトの名無しさん
16/10/23 14:52:56.32 Qt7KzQsX.net
分かりやすい日本語にしてる

903:デフォルトの名無しさん
16/10/23 15:22:39.08 LLV8Wwru.net
>>873
人それぞれだけど、俺は全てのラベルをラベルとしてグループ化するより
例えば会社名のフィールドならラベルとテキストボックスをまとめて会社名としてグループ化したい派
コントロールの種類でグループ化することにあまりメリットを感じない


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

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