[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/12 07:11 / Filesize : 279 KB / Number-of Response : 1029
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part91



1 名前:デフォルトの名無しさん [2016/06/29(水) 04:39:09.19 ID:sT3gw8va.net]
■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/

■コードを貼る場合はこちら
ideone.com/

■前スレ
C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1437808445/
C#, C♯, C#相談室 Part89
peace.2ch.net/test/read.cgi/tech/1443271409/
C#, C♯, C#相談室 Part90
echo.2ch.net/test/read.cgi/tech/1455160063/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。

458 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 15:11:05.94 ID:yhjzEVuM.net]
歯ブラシでプログラムを書こうとしたら辛いのは当たり前だろう
https://en.m.wikiquote.org/wiki/Rasmus_Lerdorf
>PHP is about as exciting as your toothbrush.

459 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 18:41:52.94 ID:IWCj2egw.net]
ASP.NET CoreでWEBアプリを作っています
機械的に処理を行うためHTMLの代わり

460 名前:にJSONを返さなくてはいけません
この場合MVCで作るべきでしょうか(ViewでJSONを生成)
[]
[ここ壊れてます]

461 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 18:45:13.24 ID:zht9j9T7.net]
>>441
なぜViewで?

462 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 18:52:19.01 ID:IWCj2egw.net]
>>442
どのような設計が正しいのかを聞きたいです
簡単に言うとTwitterのUIは作らずにJSONを返すAPIだけをASP.NET Coreで作る感じです

463 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 18:54:32.44 ID:zht9j9T7.net]
>>443
Web API(CoreではMVCと統合されたけど)を使いたいってこと?

464 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 18:57:50.47 ID:IWCj2egw.net]
>>444
そうです
ASP.NETの無印はWEB APIがあるみたいですが、Coreだとないみたいなので…

465 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 19:04:08.33 ID:zht9j9T7.net]
>>445
Coreではライブラリが統一されただけだから普通に使えるよ。

https://docs.asp.net/en/latest/tutorials/first-web-api.html

466 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 19:10:38.42 ID:IWCj2egw.net]
>>446
ありがとうございます
WEB APIはCoreでも使えたんですね

もう一ついいですか?
ASP.NET無印を使ったことがなく、いきなりCoreから入るのですが、
まだCoreがリリースされてあまり経っていないらしく情報が少ないのですが、
無印の情報はCoreにもある程度は応用出来るのでしょうか?



467 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 19:35:09.64 ID:zht9j9T7.net]
>>447
無印って、ASP.NET Web APIのことを言ってる?基本は一緒だけど、Coreが出た以上、特に今までのWeb APIはオワコン
Coreを使わなければならない理由があるの?

468 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 20:37:32.13 ID:IWCj2egw.net]
>>448
Linux鯖を使いたいから
WinVPS高いし

469 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 21:18:16.62 ID:shRUR2oh.net]
高いのは嫌だリスクは取りたくないってガキじゃあるまいし

470 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 21:19:28.87 ID:rWWvEZg8.net]
>>450
ここは普通にガキが来る板だぞ

471 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 21:33:00.30 ID:oeiBIMAZ.net]
ガキだろうが年寄りだろうがケチりたい人はケチりたいんじゃね

472 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 21:34:22.99 ID:IWCj2egw.net]
>>450
ガキだから金がない
さくらVPSでも結構きついし

473 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 21:49:29.10 ID:1G08D0Wz.net]
お金が無い分、努力でカバーだね。
情報少ないから、ぜひ先駆者となってくれ!

474 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 21:52:42.08 ID:IVf1OSSE.net]
>>450
> 高いのは嫌だ

はわかるけど

> リスクは取りたくない

ってどこから出てきたんだ?
Linux 鯖で .Net なんてリスクだらけだと思うが

475 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 22:01:53.90 ID:HSXk2xhn.net]
Node.jsとかでよくね?
ちょっとしたAPIにC#とか大袈裟すぎでしょ

476 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 22:14:41.24 ID:IWCj2egw.net]
>>456
ちょっとしたじゃなくて結構大規模になる予定
あと動的型付けは苦手(TypeScriptはあるけどC#の方が好き)



477 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 22:55:39.71 ID:AyW9Pu98.net]
>>457
Linuxには精通してるってことでいいんだよね?

478 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 23:00:29.13 ID:IWCj2egw.net]
>>458
ラズパイで鯖建てする程度なら出来るけど

479 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 10:16:24.70 ID:8eGP8u09.net]
まあコンソール使えりゃどうにかなるかな

480 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 22:36:07.93 ID:0fzmkTEU.net]
C# 7、そしてその先へ: 非同期処理(前編) − Task-like
www.buildinsider.net/column/iwanaga-nobuyuki/009

C# 7、そしてその先へ: 非同期処理(後編)− 非同期シーケンス
www.buildinsider.net/column/iwanaga-nobuyuki/010

481 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 22:39:34.64 ID:97WvllZy.net]
コピペマンって本人は親切のつもりなんだろうし、本人気づいてないだろうけど不気味だよw

482 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:35:57.85 ID:+hoACOJG.net]
パフォーマンスをシビアに意識するのはもはやライブラリ作っている人やそういった
高速化を専門にしている人だけあって毎日コード書いてる人間としては書きやすさだけが気になる

483 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:46:34.06 ID:+hoACOJG.net]
今後もまた無駄な名前空間がぼこぼこ増えていくんだろう
MSはnamespaceをごちゃごちゃさせ過ぎてる
すっきり数本の柱にしておけばよかったのに細分化させすぎだ

484 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:56:22.35 ID:lLnW0vHt.net]
新しいおもちゃが手にはいると遊びたくなるものさ

485 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 00:11:33.35 ID:Xz8sejsg.net]
Scalaの糞の山に比べたらこの程度可愛いもん

486 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 00:44:15.01 ID:YmetP/KJ.net]
大きすぎるnamespaceよりマシ



487 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 04:01:29.40 ID:rDaq2Eci.net]
毎日コード書ける仕事したい。
机上で数ヶ月会議して設計して、作って仕様変更とか無駄なことやめたい。

488 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 15:05:01.55 ID:oqbH3zDE.net]
今 Microsoft Visual Studio Community 2015 だかってのをインストールした

C#は全く知らない。
この統合環境の使いかたもほぼ分からなくて困ってる。
CUI のhello worldだけは出力させてみた。


こんな俺に学習用のいいサイトよろしくお願いします。

489 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 15:13:59.98 ID:LbMFm82d.net]
とりあえず ++C++; 未確認飛行 C でいいんじゃないでしょうか

490 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 15:29:48.83 ID:oqbH3zDE.net]
ありがとう。ではそこで学習する事にします。


今とりあえず
int i = 10;
Console.WriteLine(i + " " + "hello_world");
これを実行させてみたのですが、
スクリプトのごとく数値が都合よく文字に変換されて実行されました。

数値と文字は暗黙の自動変換なのでしょうか?

491 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 15:41:30.76 ID:Pni+o0iv.net]
+ 演算子 (C# リファレンス)
https://msdn.microsoft.com/ja-jp/library/k1a63xkz.aspx

492 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 15:53:07.39 ID:oqbH3zDE.net]
ありがとう

493 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 18:32:47.06 ID:Q71J+JAr.net]
Microsoft.Office.Interop.Excelのcomを使って、既存のグラフシートを編集しようと思うのですが、
下記のコードを実行すると、エラー0x8002000Bが出てアクセスできません。

Worksheet ws = wb.Sheets["graph1"];

既存のグラフシートにアクセスするにはどうしたらいいのですか?

494 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 18:41:51.61 ID:hbWVf6eK.net]
>>474
そんなことやったことないんでよく知らんけど、ここ見る限りSheetsじゃなくてChartsの方
使わないとだめなんじゃないの?
https://msdn.microsoft.com/ja-jp/library/office/ff821062.aspx

495 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 19:22:01.67 ID:VaHoIWRz.net]
IDE使えないって人に++c++進めるのはどうかと思うけどw

496 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 21:17:39.97 ID:oqbH3zDE.net]
なんでボールから入るんだよ



497 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 21:17:56.50 ID:oqbH3zDE.net]
ごめんスレ間違えた

498 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 01:22:42.31 ID:PSgZ0shn.net]
いままでvbaで開発してて最近c#勉強してるんだけど
visual studioで開発するときvbaでいうモジュール単位(vb editor上でmoduleっていわれるやつ)に分ける方法教えてクレメンス

クラスとか作ればソリューションエクスプローラに自動的に追加されるっぽいけど
コードが縦に長くなって開発しづらい

たぶんvbeなんかよりもよっぽど開発しやすい方法があるんだろうけど
プログラミングの仕方というより開発の仕方みたいなのを解説してくれているhpとか本があったら教えてほしい

てかoopの考え方を理解出来てな

499 名前:「のが問題かもしらん

スレ違いだったらごめんなさい
[]
[ここ壊れてます]

500 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 01:27:37.27 ID:Jo2eCVzY.net]
>>474
結局質問だけしてトンズラか。どうせマルチくんなんだろうな。

>>479
君はVBAも良く分かってないと思うw
とりあえずC#にモジュールはない。
VB.NETにはあるけど普通はまず使わない。

501 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 01:33:50.12 ID:PSgZ0shn.net]
>>480
いわゆるモジュールじゃねーっす
エクセルとかもってるならvbe開いてモジュール追加って出来るあれです
んで、開発の仕方みたいなのの情報しりませんか

502 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 02:08:46.56 ID:AuZUWRpv.net]
>>481
OOP学んで適当にファイル分割するのが基本かな
あとは、クラスビューとか定義に移動とかいろんな機能があるから好みの使い方を見つけるしかなさそう

オープンソースとか読むと参考にはなる
こんなに細分化するかーとか、この書き方は初めて見たというのも時々あるので、人の好みがそれなりに強いかも

503 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 02:11:08.15 ID:FcIsU4jd.net]
>>481
ソースファイルを追加したいなら
プロジェクトを右クリックして
追加 - 新しい項目
コード - クラス
で、名前を入れて出来上がり

504 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 02:21:21.74 ID:PSgZ0shn.net]
>>482
あじゃっす
王道なしってことっすね

vbaでつくった1万行程度のプログラムをc#で作り直そうとしたら
にっちもさっちもいかなくて
(最初はbutton click event以下に超長いコードかいてたw)

c#サンプルコードでググったやつをいくつか見たんですけどどれも短めで
オープンソースっすか、とたんに難しくなりそうで敬遠してたんですけど、見てみます

>>483
コレダ!
あざーす!

505 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 02:50:32.40 ID:GFDCUR4+.net]
>>483
全然関係ない俺だけどそれ知りたかったありがとう
統合環境超むずい

506 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 07:36:39.22 ID:FcIsU4jd.net]
「新しい項目」って言うのがちょっと思い付きにくいかな
新しい項目って言うのを覚えておけば、右上の「クイック起動」に新しい項目って入れると
プロジェクト-新しい項目の追加...
って表示されるから覚えておくとなんかの役に立つかも
追加でも同じように表示されるけど、追加は他にも
ファイル-ソース管理に追加
とか似たような項目がいっぱい出てきてちょっと探しにくい



507 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 10:32:43.91 ID:08YRGffV.net]
>>485
プログラミングはやめた方がいい。
言語のセンスなさすぎ。

508 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:15:30.20 ID:is8rsJHF.net]
波カッコってひょっとして必要なかったんじゃないか
インデントが有ればブロックは表現できるし
波カッコを使うとタイプ量が増えるしネストするとスコープが逆にわかりにくい
C# 8.0ぐらいで良いから波カッコを使わないように仕様を変えて欲しい

509 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:18:06.98 ID:e1RDrry0.net]
だったらC#やめてPython使ってろ

510 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:18:56.50 ID:vfo9HhT2.net]
pythonが静的言語だったらな

511 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:23:53.71 ID:XJfcWEgm.net]
>>488
変えられるわけ無いだろアホか

512 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:28:46.83 ID:is8rsJHF.net]
後ろ波カッコのうっとおしさは異常
なんでこんなゴミみたいな記号のために丸々1行も使ってんだと怒りを覚える

513 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:32:05.43 ID:vfo9HhT2.net]
ironPythonを静的言語に改造したようなのない?
ないなら作ろうぜ

514 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:49:16.86 ID:bNt+mNAy.net]
後ろ波かっこぐらいでうっとおしいと言うのは甘い
XAML見たら発狂するぞ

515 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:49:41.16 ID:h2wll6jz.net]
>>492
ブロックの終端を明

516 名前:示するためだろ。導師も言ってるじゃん、「暗示より明示」って。 []
[ここ壊れてます]



517 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:53:38.71 ID:28oZslrG.net]
作ろうぜって誰に向かって言ってんだ
勝手にテメェでウンコ排出してろボケ

518 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:10:16.03 ID:NvcWw3DB.net]
>>492
お前が!存在に状態遷移すれば解決するよ

519 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:29:53.52 ID:vv4I0YMm.net]
Pythonのフォーラムで定期的にインデントブロックの代わりに
ブレースブロックを採用して欲しいって要望が出てるくらいには、あれも好かれてないよ
実際にブレースブロックに改造している奴がいるくらいだ

結局は隣の芝が青く見える現象だと思われる

520 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:32:32.69 ID:is8rsJHF.net]
要するにどっちでも良いわけだろ
だったらコンパイルオプションで選べるようにしろよ

521 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:33:39.23 ID:XJfcWEgm.net]
>>499
お前が実装してプルリクしてみろよカス

522 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:36:43.12 ID:l/8ShBlw.net]
ぶっちゃけC言語が嫌われるトップ理由が
{ } だと思う

523 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:42:35.19 ID:is8rsJHF.net]
だよね
{}は利便性が悪いだけでなく見た目も美しくない

524 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:44:11.62 ID:HDnGX34n.net]
ネタ投入のつもりなのか、それとも今時パスカルな人なのかな。
そんなにブレース嫌いならVB選べばいいよ。

どうせ出来ることはほとんど違わない。
ラムダ式とか死ぬほど冗長だけどw

525 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:52:01.54 ID:e++gk4lZ.net]
後ろ波カッコっていうから
てっきり

if() { ←後置のことかと思ったら

} ←こっちのことか

526 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 14:36:21.94 ID:bNt+mNAy.net]
beginとendを{と}に書き換えるプリプロセッサでも作れよ



527 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 15:17:16.22 ID:e++gk4lZ.net]
そういえば大昔のC言語の本では
beginとendを#defineでカッコに置換するというネタが普通に書かれてたとか…?

528 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 15:24:50.13 ID:HDnGX34n.net]
>>506
普通かどうか知らんけどこれだよね
www.pro.or.jp/~fuji/mybooks/cdiag/

529 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 15:39:03.09 ID:vfo9HhT2.net]
インデント>=括弧>>>>>>>>>>>>>>begin,end
begin,endのメリットは全く分からない

530 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 15:40:48.38 ID:08YRGffV.net]
>>508
他の言語との違いを出すための苦肉の策。

531 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 16:15:14.95 ID:is8rsJHF.net]
>>508
目に優しい

532 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 16:21:08.95 ID:teO92MZf.net]
{ }
を透明色にするエクステンションを作れば解決するだろうが!

533 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 16:44:05.68 ID:GPAGDQ3+.net]
バグ死

534 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 18:58:56.20 ID:abnGTaRM.net]
>>507
そうだよ
診断室とここのスレタイの相談室を掛けたんだよ

535 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 19:57:10.80 ID:i/vdkCcD.net]
ASP.NET WebFormsってあるじゃん
入力値の検証コードを書く仕事をやらされてるんだけどさ
何回も何回も同じような(でも微妙に違う)コードを書かされる拷問みたいになってるんだけどこれうまいことDRYできないの?
クライアントサイドのイベントハンドラで検証
サーバーサイドのイベントハンドラやページメソッドで検証
入力モデルにバインドしてローカルサービで検証
といったように少なくとも1リクエストで3回はよく似たコードを書いてる
コントロールが多いエンドポイントだと死んでしまう

536 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 21:23:26.09 ID:NvN4PBVL.net]
>>514
モデルクラスに入れてからまとめて検証すりゃいいでしょ
クライアントサイドはサーバー側でREST API用意しといてAJAXで呼べばいい



537 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 03:17:01.13 ID:Q23f0Xjy.net]
>>514
WEBフォームだろ?
カスタムの検証コントロール作ればいいんじゃないかね

538 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:51:52.34 ID:0IhXUzhb.net]
>>516
それは試したけど柔軟性がないから断念した
カスタム検証コントロールではまずクライアントサイドのカスタム検証ができない
それに検証前後に簡単に処理をフックする事ができない
やろうと思えばできない事もないけど自動生成されたコードにアクセスする必要があるからメンテナンスの不安がある

539 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 19:22:49.84 ID:NWup8pYR.net]
>>517
全部サーバーサイドでやればいいんじゃないか?

540 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 20:26:43.89 ID:Q23f0Xjy.net]
>>517
もしかして、CustomVaidatorの話かそれ?
祖じゃなくて、自分で検証するコントロール作れって話だぞ
クライアント用のスクリプトも全部自分で出力できるぞ

これで柔軟性がないってなら、WEBフォームじゃ無理ってことだ

541 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 20:57:02.22 ID:0IhXUzhb.net]
>>519
CustomValidatorの事を言った
もしかしてCustomValidatorってみんな使ってないの?

542 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:18:42.69 ID:Q23f0Xjy.net]
>>520
CustomVaidatorでもクライアントスクリプトでのカスタム検証ぐらいできるけどな
毎回似たようなコード書かないとダメだが
この手間と検証タイミングの問題だけクリアできるならCustomVaidatorでも充分だろ

543 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:41:36.27 ID:0IhXUzhb.net]
>>521
CustomValidatorもうちょい調べた
クライアントサイドの検証は出来た
でも検証前後に処理をフックするってのがやっぱり出来ない
結局のところカスタムコントロールで検証もやってしまった方が良さそう

544 名前:デフォルトの名無しさん [2016/09/10(土) 16:11:25.20 ID:Wm1HNmHU.net]
ファイル選択ダイアログを使ったプログラムを組んでいます。

OpenFileDialog ofd = new OpenFileDialog();

.csv ファイルのみ選択可能な状態にしたいのですがこの指定では
エラーになってしまいます。どう修正すれば良いでしょうか?
ofd.Filter = "CSVファイル(*.csv)";

545 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 16:14:00.08 ID:/+pbEB3C.net]
MSDNの解説読もう

546 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 16:14:42.14 ID:nYtOzCtO.net]
openfiledialog 拡張子 制限
でぐぐれ



547 名前:デフォルトの名無しさん [2016/09/10(土) 17:18:14.52 ID:Wm1HNmHU.net]
>>525
サンクス

解決

548 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 17:40:43.95 ID:qbdJrNQP.net]
っていうか、F1叩くだけでMSDNがすぐ見られるのに
なんでわざわざより手間をかけて2chで質問するのよw
そこが理解できんよw

549 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 17:47:35.88 ID:nYtOzCtO.net]
そら無能だからだよ。そんなこともわからないのかよw

550 名前:デフォルトの名無しさん [2016/09/12(月) 17:41:15.35 ID:tEgJE/3d.net]
素人です
CommonSaveFileDialog で [ファイルの種類] を変えてもファイル名に反映されません
SaveFileDialog のように拡張子を自動で付加できるようにする方法を教えてください

551 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 17:43:59.26 ID:aOoYdSpX.net]
初心者むけのスレがあるよ

ふらっと c#って名前

552 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 17:45:44.98 ID:6Vx7Y6GR.net]
FileAsShellObject.ParsingName

553 名前:529 mailto:sage [2016/09/12(月) 18:17:48.59 ID:tEgJE/3d.net]
>>530
ありがとうございます
今後利用します

>>531
ありがとうございます
しかしながらこちらを使っても結果が FileName と変わらないのです
ShowDialog の後に取得していますが当方の使い方が違ってます?

554 名前:529 mailto:sage [2016/09/12(月) 18:34:28.38 ID:tEgJE/3d.net]
すみません解決しました
DefaultExtension を指定するとおkなようです
そうしてたつもりがちゃんと出来てませんでした

555 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 14:24:50.81 ID:NBzoNAq4.net]
すみません。Moq について質問です。
インタフェースをMock化した時とか、Setupしていないメソッドやパラメータが呼ばれた時に例外を吐くように設定したいのです。
入り組んでいて、何が呼ばれるのか追いかけるのに疲れました。
例外を吐いてくれれば、Setupしなくちゃと分かるので、デフォルトで例外を吐くような機能があるんじゃないか?
と、ググろうとして・・・思いつきませんでした。

どうすれば良いでしょうか?


・・・とか書いていたら、自己解決してしまいました。
https://github.com/Moq/moq4/wiki/Quickstart#customizing-mock-behavior

var mock = new Mock<IFoo>(MockBehavior.Strict);
としろと。

ちなみに
var mock = new Mock<Foo>(MockBehavior.Strict);
とインスタンス化出来る実体があると、そいつのインスタンスを作って、Proxyとして動いてしまった・・・
インターフェース抽出してMock作る必要があるのか。


そして、このレスは某所に誤爆していたものを転載・・・

556 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 14:32:21.46 ID:QeXjnd/u.net]
そういうつぶやきはTwitterがいいと思うぞ



557 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 14:53:11.09 ID:Spuf+iD1.net]
アロエにでも聞いてもらえー

558 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 21:14:03.89 ID:gHnq4He4.net]
Mockフレームワークは仕事を増やすだけ

559 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 21:57:08.07 ID:Cj/yMtkH.net]
モックは自分に都合のいい脳内彼女を相手に恋愛の練習してるようなもんだからな

560 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 22:11:05.27 ID:18iMvBey.net]
夢から覚めなきゃあそれで十分だあ

561 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 22:28:27.16 ID:xWhZtUbs.net]
おじさんが子供の頃樫木モックってアニメがありました

562 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 07:26:46.50 ID:LunKPrNc.net]
脳内彼女が正しい応答をすることをどうやって保証するんだろうな
(return thisを除く)メソッドの戻り値やgetterをあまり使わない「言いっぱなし」が基本の
ガチなOOPならインラインのモックは有効だけど、そうでないなら
普通にボトムアップでやるか、どうしてもモックが必要なところ(IOなど)はちゃんと正しく実装した再利用可能なクラスを作ったほうがいい

563 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 00:22:09.05 ID:cOwk44uY.net]
ユニットテストは品質保障ではなく開発者のためのテストの意味合いが強い
だからモックが正しい動作をするという保障は必要ないんだよ
開発者が納得して開発の助けになればそれでいい

564 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 11:32:54.80 ID:oYgGfkv1.net]
ロジックの奥の方でたまにしか使わないようなのを隅々までテストするには有効

565 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 14:00:54.96 ID:yvgHPK9s.net]
C#のファイナライザって同時に複数のスレッドで走る事ってあるんですか?
またはアプリケーションのスレッドと同時に動く事はあったり?

ファイナライザでスレッドセーフ意識していないコードを書いても特に何も問題は起きていないようなのですが、たまたまでしょうか。

https://msdn.microsoft.com/ja-jp/library/ff647790.aspx

「このため、Microsoft は将来的に、CLR で複数のファイナライザ スレッドを実装することを選択するかもしれません。」
とありますが、これが書かれたのは2005年です。もう変わっていたりして?

566 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 16:29:11.82 ID:78bORDZY.net]
ファイナライザは最後の手段だから、そんな複雑さを伴う処理は書かないのが無難。



567 名前:デフォルトの名無しさん [2016/09/24(土) 16:49:31.44 ID:g/gfVTwZ.net]
複数のスレッドからファイナライザを呼び出すような作りって、あまり良い作りとは思えないけどな。(ボソッ

568 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 18:16:20.97 ID:KT7brPF3.net]
スレッドセーフかどうかと、再入可能かどうかをごっちゃにしてる気がする。(ボソッ

569 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 18:45:43.08 ID:K7zHMZhh.net]
(ボソッ
↑何これ

570 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 19:38:48.75 ID:Ww4Eww29.net]
プライドと承認欲求と予防線を混ぜて発酵させたもの

571 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 19:59:25.35 ID:hsY2X9yo.net]
(^o^)ノ<つぶしあえー

572 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 00:41:50.01 ID:rJ2xXuAE.net]
階層構造もいい具合に空気読んでマッピングしてくれるマッパーってないの?

573 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:04:59.08 ID:D+6ASUN2.net]
string[] arr = { "aa", "bb", "cc" };
として、
var dic = new Dictionary<string, string[]>{
  { "1", arr },
  { "2", { "aa", "bb", "cc" } } // エラー
};
とすると二番目でエラーが出るのですが何故でしょうか?

574 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:19:47.71 ID:w5gpFchP.net]
String[]がnewされてないから

575 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:22:44.52 ID:D+6ASUN2.net]
>>553
でも一番目はエラーしないのですが。
なぜでしょうか?

576 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:26:44.53 ID:0EtDfixS.net]
>>552
{ "2", new [] { "aa", "bb", "cc" } }

{ "aa", "bb", "cc" }だけじゃ、型推論で(stringの)配列か判断出来ない。
arrの方は宣言時に型を指定してる。



577 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:29:00.59 ID:D+6ASUN2.net]
>>555
>{ "aa", "bb", "cc" }だけじゃ、型推論で(stringの)配列か判断出来ない。
でも最初に
new Dictionary<string, string[]>{
としているので、二番目の引数はstring[]だと推論出来るんじゃないですか?

578 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:42:17.76 ID:0EtDfixS.net]
言われてみたらそうだね。

579 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 04:22:18.90 ID:9c0zm0tq.net]
エラーメッセージ見て推論できないのは頭が悪い

580 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 04:36:36.79 ID:w5gpFchP.net]
確認したら型推論関係なくただの文法エラーだった

581 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 04:55:56.67 ID:D+6ASUN2.net]
>>559
エラーしない一行目のarrをそのまま置き換えたのが二行目なのに
なぜ文法エラーになるのでしょうか?

582 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 05:04:50.31 ID:w5gpFchP.net]
エラーが出た部分をコンパイラが配列初期化子として認識していない模様
同じ文でも構文解釈の位置によって意味が変わることはままある

583 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 05:35:54.50 ID:jYmbv1HX.net]
new string[] {"a", "b"}

{"a", "b"}
のように省略できるのはフィールドとローカル変数の宣言時だけ

584 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 08:16:29.35 ID:l7d7Fmom.net]
今時new省略の配列初期化子なんか使わない方がいいよ
型推論が無かった頃の遺物で一貫性がない

585 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 09:35:34.37 ID:w5gpFchP.net]
language specificationを改めて見返したら
配列初期化子のnewが省略できるって記載はないのな
前の版にはあったのかな

586 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 10:51:33.37 ID:l7d7Fmom.net]
>>564
記載があるとしたら変数の宣言や初期化のところじゃない?
new省略の配列初期化子は最近のC#でいう初期化子とは別物で、正確には配列初期化子というより配列型の変数宣言の特別な形だと思う



587 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 22:01:53.19 ID:SnclXywq.net]
Cから入ってテキスト何冊か終わらせてからC♯にきたけど、
Cよりも感覚的に理解できるように作られていると感じた。
だがやっぱりCと混同してしまう部分が多くて困るな
学習が進めば頭の中で区分できるようになるんだろうが

相談じゃないな すまん

588 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 22:33:12.99 ID:zETe1SmY.net]
CもC#も大差ない
便利な構文やクラスが沢山あるってだけ
明確な違いはメタデータぐらいじゃないかな

589 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 22:42:28.47 ID:0EtDfixS.net]
GCは?

590 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:15:25.90 ID:+YkJQBGH.net]
*や[]や関数ポインタが絡んだときの宣言みたいな汚くて読みづらい文法がないだけ
C#の方が理解しやすいよね。

配列も文字列も普通に型だし。

591 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:44:37.52 ID:YTcGpOzN.net]
>>567
大差ある

592 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:46:25.85 ID:tLj3yCec.net]
文字列はchar配列らしいけど、配列は型じゃないの?
Cって配列型じゃないの?

593 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:48:59.35 ID:l7d7Fmom.net]
Cに配列型なんか無いよ
連続領域の先頭を指すポインタを配列に見立てているだけ

594 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:50:01.43 ID:tLj3yCec.net]
それC#でも同じじゃない?
C#でも
var arr=new int[n];
でarrに入るのは参照だし

595 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:51:25.88 ID:l0rgfbC+.net]
文法とか変数とか型とかポインタはどうでもいいがイベントが楽だからC#からCに移ろうとは思わないな

596 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 00:16:59.13 ID:2rDNP5fm.net]
>>570
ないよ
出来ることは変わらない
書くのが楽か面倒か
それだけ



597 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 00:55:28.97 ID:x7JpDQQH.net]
>>575
それってc#もCOBOLも大差ないって言うのと同じことだよね

598 名前:デフォルトの名無しさん [2016/09/28(水) 01:03:23.10 ID:CvBOyBja.net]
大差ありすぎてワロタw

599 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 04:44:15.09 ID:y3I7X+UO.net]
大差の定義によるな

600 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 05:07:27.92 ID:ksAc0l/t.net]
ネイティブコードにコンパイルできるか否か
弱い静的型付けか強い静的型付けか
オブジェクト志向か否か
GCあるか否か

ぱっと思いついた違い

601 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 06:19:58.62 ID:2rDNP5fm.net]
全部同じじゃんそれ

602 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 07:16:59.51 ID:6UKmmY9W.net]
>>575
> 書くのが楽か面倒か

大差あるやん w

603 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 08:00:45.42 ID:Iarxs+Xo.net]
>ネイティブコードにコンパイルできるか否か
これはまあ、言語じゃなくて環境の問題ではあるけどな

理屈の上では、C#からネイティブコードを吐き出すコンパイラを作る事も出来る
絶対やらないだろうが

604 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 08:02:41.33 ID:Iarxs+Xo.net]
……と思ったけど
Microsoft .NET Native とかあったなそういや

605 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 08:31:46.55 ID:hdyJqyrv.net]
とっくにUWPアプリはネイティブですよ。

606 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 08:34:31.32 ID:Ks5fZMDV.net]
なにそれおいしいの?



607 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 09:05:27.32 ID:ksAc0l/t.net]
型付けの強さ弱さを同じって言われて俺びっくりしちゃったよ

608 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 09:37:17.20 ID:nPlGLTXy.net]
>>585
レイアウト変更のもたつきなどの、C#特有のもっさり感がないよ

609 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 09:47:06.51 ID:JharV+Ri.net]
作ったUWPアプリ環境によってインストールできなくて挫折したな

610 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 11:10:40.15 ID:RDlboUCA.net]
Cって静的言語だから型は同じじゃないの?

611 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 16:45:21.87 ID:wFbSwOZd.net]
汎用デリゲートのEventHandlerを使用した場合のメリットについて教えてほしいのですが、これを使用するとデリゲート定義の1行を省けることを超えるメリットはあるのでしょうか?

612 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 17:43:08.72 ID:t2Y8uX7u.net]
>>590
発想が逆立ちしてるよ。

普通は、標準で用意された方法を超えるメリットがないのであれば
あえて独自のデリゲートを使う理由はないと考えるんじゃないの?w

それって車輪の再発明そのものだよねw

613 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 18:34:02.96 ID:1e7C4OQD.net]
いやまて、イベント以外のデリゲートに使おうとしてるのかもしれんぞw

614 名前:デフォルトの名無しさん [2016/09/28(水) 18:55:03.29 ID:wFbSwOZd.net]
そうか、標準のもので済めばそれを使うのが当然なのか
根本が間違ってた
ありがとう

615 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 15:45:21.13 ID:GKXbaAQ5.net]
>>569
それを汚ないと感じる人と
美しいと感じる人もいるんじゃないか?

616 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 18:05:53.95 ID:42KzZhvK.net]
>>594
void (*signal(int sig, void (*func)(int)))(int);

美しいかどうかは美的感覚の問題だから人それぞれとしか言えないが、
少なくとも俺は上みたいな宣言を見せられたとき、これが何を意味しているのか
瞬時には理解できない。

「汚い」っていうのはそういうことを表現したつもり。



617 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 19:40:25.50 ID:wDlER99I.net]
kmaebashi.com/programmer/pointer.html
これを読んだうえでCのポインタの文法が美しいと感じる奴がいたら逆に凄い

618 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 19:54:22.23 ID:iqK/HxMj.net]
コード見たときにそれが何を指してるのか分かりやすいのはCの方だな

619 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 20:14:20.56 ID:/kH+f7Ja.net]
>>595
ああああああ

なつかしいいいいい
UNIXもしくはLinuxか何かでみたぞおおおおおお

もう絶対こんな仕事に戻りたくないぃいいいいいい

620 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 20:22:33.12 ID:1Mz/tgYS.net]
コードの動作が分かりやすいのはC
コードの意図が分かりやすいのはC#
言語の差というより、コードをマシンへの命令と考えるかプログラマの意図を表現するものと考えるかという意識の違いが大きいと思う
do if (*src != ' ') *(dest++) = *src; while (*(src++));
Cはこういうの平気で書き散らす基地外が多い

621 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 20:29:29.53 ID:/kH+f7Ja.net]
K&Rの時代は終わったんだよ

622 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 21:34:42.13 ID:IEWEZKBK.net]
20年前にFM-TOWNS()でCから入ったが今の時代にガキだったらCだのC++だのは一切触らなかっただろうなーと思う
かといってphpやjavascriptから入るのはアレだしc#最高^^

623 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 21:37:33.67 ID:o/Z16MWz.net]
>>599
いやそのコードはおかしいけどな。多分以下。

while (*src!=0) *dest++ = *src++;

それをキチガイというのは自由だが、Cならこれを読めない奴は馬鹿扱いだよ。

初心者は常に「自分の読めないコードは、コードが悪い」としか言わないのだけど、
実際はその初心者の技術レベルに問題がある場合の方が多い。
599はこれだね。

624 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 21:57:51.11 ID:iqK/HxMj.net]
読めないのは馬鹿ってのは同感
そういうのを書き散らすのは基地外ってのも同感

625 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 22:01:24.13 ID:1Mz/tgYS.net]
>>602
いや599はスペースを除去してるんだけどな
正直わざと分かりにくく書いたから602の技術レベルを疑うつもりはないけど、
分かり難さを証明してくれてどうもありがとう

626 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 22:02:54.74 ID:Js+ntQYt.net]
>>602
完全にスレ違いだけど、そういう同じポインタを2回手繰ってるのって
コンパイラは最適化してくれるのかな。

っていうか
while ((*dest++ = *src++) != 0);
って書いても読みやすさは変わらないと思うんだけど



627 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 22:05:00.53 ID:Js+ntQYt.net]
ああ、0コピーしたらダメな場合は使えないのかw
ボケてるな

628 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 22:37:37.49 ID:o/Z16MWz.net]
>>604
ああよく見ればそうだな。てかスペース見えんかった。
俺はプログラミングは固定ピッチフォントでやる派なので。

つか脱線でさらにスレチだがC++の開祖がプロポーショナル派で、
「プログラミング言語C++」もそれで印刷されているのだが、読みにくくてかなわん。

>>605
俺は余り詳しくないのだが、その範囲で話をすると、
K&R第2版P129には、そういう場合は

while (*dst++ = *src++)

にしろと書いてあるわけだが、実際はこの書き方はwarinigが出る環境の方が多いと思う。
したがっておそらく最適化はやってもらえる(はず。volataileでない限り。)


>>595も本来はtypedefやマクロを使えばもっと綺麗に書けるし、多分それが普通。
悪い例を出しても言語間の比較にはならないよ。
どの言語でも糞な書き方は出来るから。(比較的C#はそうなりにくいのは認めるが)

629 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 22:39:05.84 ID:o/Z16MWz.net]
>>607
すまんセミコロン抜けてた。

while (*dst++ = *src++);

630 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 23:01:59.93 ID:AR+VWIbJ.net]
なんのスレなんだここ

631 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 23:05:32.42 ID:URePwP35.net]
Swiftでも++は削除されたし、考え方次第なんだよなー
近代的な文法がないCではしょうがないんだろうが

632 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 23:40:01.94 ID:o/Z16MWz.net]
>>610
マジ?と思って調べたら、どうやらそのようだ。つか、Pyshonも無いんかよ。
https://github.com/apple/swift-evolution/blob/master/proposals/0004-remove-pre-post-inc-decrement.md

Cとは生まれた時期も目的も異なるからどちらがいいという問題ではないが、
Cで問題だった箇所を一つずつ潰すのも新しい言語のやるべき事だよ。
主張はそこに書いてある。同意するわけではないが、まあそういう見方もあるわなくらいには思う。

ただCは何だかんだで多分生き残る。
あれはほぼアセンブラで、限界までチューニングするにはあの記法が必要だから。
対してC#やSwiftやPythonは生産性/可読性重視だから、
おそらく次の新しい言語が出てきたら取って代わられる。

「近代的」っていうのはそういうこと。時間が経つにつれて「前近代的」になる。
これは近代的言語の宿命だね。
そしてCは「前近代的」でも生き残る価値があるから現存している。

ただ、++で問題を感じたことはないんだけどな。
そこの例に挙げられている
> foo(++a, a++)
をやる奴は死ねでいいけど、
これは引数の評価順を規定してないのが問題で、別問題。

633 名前:デフォルトの名無しさん [2016/09/30(金) 00:10:14.41 ID:cU7plTv4.net]
Pyshonて何だよ?と思ってggったら、ホントにあるのな。

634 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 00:22:32.29 ID:WN9yrU4I.net]
Cがわかりにくいのって記号が物理的に見にくいだけだろ
概念的な難易度はC#と変わらん

635 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 00:51:09.49 ID:27JQ5kO2.net]
Perl「特に見にくくなんて無いよ」

636 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 03:34:02.05 ID:gTc+8iAX.net]
>>595
調子こいたラムダ式とかもだめだよな!



637 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 06:37:26.14 ID:4hxo3I+i.net]
結局プログラマの能力の問題
現状だと調子こいたラムダ式書ける奴は比較的スキルが高いからコード綺麗だよ

638 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 06:55:45.86 ID:Y6l190wq.net]
c#でウオッチ1には表示されるのですが、
ウオッチ2や3のウインドウにもウオッチさせる方法を教えてください

639 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 08:30:41.85 ID:2XfoFLHG.net]
コードのキレイ汚いは感覚論だから議論しても仕方がない
でもラムダを使ったコードはコードの重複が少なく結合が弱いから誰が扱っても保守しやすいプログラムになるのは確かだね

640 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 09:34:42.41 ID:2XfoFLHG.net]
何より言語やライブラリ、フレームワークがラムダを当たり前の存在として扱っている以上使わないという選択肢はない
キレイ汚いという個人的感情によるワガママは通じないのだ

641 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 09:50:48.57 ID:XrkqBYg2.net]
○○を使ってたら汚いコードになるってことじゃないんだよな
そういうことがわかってないと汚いコードになる

642 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 10:10:00.28 ID:Ik8fs/0i.net]
それより審美眼の足りない奴を蹴り出した方が効果的

643 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 20:45:54.67 ID:0SPCdJff.net]
審美眼でコードを書くやつはプロジェクトから追い出したほうがいいって
20年前から言われてる
K&Rのコードはさんざん批判されてる
ここは20年前のスレか

保守性の高いだれでも理解しやすいコードを書ける奴が優秀

644 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:00:54.25 ID:bXY+Fxkm.net]
× > 保守性の高いだれでも理解しやすいコードを書ける奴が優秀
○ 馬鹿な俺でも読めるコードを書ける奴が優秀なことにしたい

K&Rのコードが「汚い」という批判はないと思うが。あれはあれで美しい。
勘違いした馬鹿が闇雲にトリッキーなコードを書いたり、
(今まさに関数型()の奴らが同じ事をやっているが)
或いはタイプミスなのか意図的なのか分かりにくかったりするのが問題なだけ。
これらは色々warning等を出して対応されてきた。もちろん最初からSyntaxErrorならそれでよい。

そして「コードが汚い」ってのは今言っているようなせいぜい10数行の局所区画のことではなく、
もっと大きな上位区画での話だろ。意味不明なクラス構成とか。
というか、10行程度のコードなら多少汚くても読めるし、
正しく抽象化されて階層が分かれていれば、
そういうローレベルコード(何かのメソッド等)は一度読んで動くのが分かればそれでおしまいだろ。
問題はそれらを駆使するミドルレベルコードがグダグダな方だと思うし、
それを「コードが汚い」と表現するのだと思うが。

645 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:01:33.75 ID:bXY+Fxkm.net]
というか多分お前らは「自分が読めるコードが綺麗なコード」とする初心者に近い奴が多いのだと思うが、
実際の所、腕のいい奴は「書ける範囲で綺麗なコード」にしているわけで、
結果的に綺麗なだけなコードならいくらでも綺麗にかけるし、
高速化が必要なら多少汚くなっても最適化を施していく。
だから「汚い」と批判するのはそれ以上の物を自分で記述できるときだけにした方がいい。

K&Rに関しては実行速度/リソースについて最適化を施されているわけだから、
それよりも少ないリソースで速く動くソースが書けないのなら、「汚い」とは言うべきではない。
それが読めないのはお前が馬鹿だから。
少なくともそれを書いた奴はお前よりも腕前は上なわけで、
お前でも読めるようなコードを彼等が書くことは可能なわけだし。

例えばソートとか。
APIとして呼ぶ分には中身がどうであれ正しく速く動いてくれればそれでよし。
それが非常に読みにくい物でも、正しく動く限り、速い方が選ばれる。
それを読み

646 名前:ノくいだけの理由で「汚い」とするのはナンセンスでしょ。
K&Rのトリッキーなコードは本来はこういう区画にしか現れないものだよ。
そしてそれは「ソート」として分離されるから、その中身がどんなに汚くても、開発の障害にはならない。
「コードが汚い」ってのは、つまり「これじゃあ今後手を付けられません」って意味だろ。
ソートみたいな局所区画でこれがあてはまることはない。
(実際「汚い」=「読みにくい」のと、
「コードが汚い」との批判=「開発の障害になる」との意見は別物のはず)

問題は、例えば、「ラムダを使うべき場所でラムダを使ってない」とか、逆に、
「ラムダを使うべきでない場所でラムダを使っている」とか、だろ。
要するに簡単な方を使えばいいだけなのだけど、
意識高い奴は「○○の方がいい(キリッ」とか言って無理に使うからおかしな事になる。
[]
[ここ壊れてます]



647 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:05:31.58 ID:GrCnAQwz.net]
ポエマーきもっ、まで読んだ。

648 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:08:03.45 ID:Fmt1sBQd.net]
コードだけでなく2chレスも読みにくいわw

649 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:08:46.30 ID:IoizK4x5.net]
もちろん昔と同じように考える分野もあるけど、多くの場面じゃ昔と今は考え方が違うのよ

650 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:10:25.66 ID:GrCnAQwz.net]
っていうか、説明的な文章を簡潔かつ過不足なく書く能力と
可読的なコードを書く能力はおそらく無関係じゃないと思う

何が言いたいかはお察しくださいw

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

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

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

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

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

656 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:56:07.59 ID:bXY+Fxkm.net]
>>633
同意。
なんか早すぎる最適化はうんたんってのがあるんだろ。

コードの9割以上は速度はどうでもいい箇所なので、可読性をとるべき。
糞どうでもいい箇所をこねくり回してワケワカメなコードにする奴はハゲろ。
(言っちゃあ悪いが関数型()な奴はこれをやっている気がものすごくする)

あと言語のポリシーにもよるでしょ。
C#はC程のチューニングをする為の言語じゃない。
それこそ、C#なら全箇所で(速度は全く気にせず)可読性重視というのもありだと思うよ。
そもそもどうしても速度が必要ならCでDLL書いた方が速いし早い。



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

658 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 01:26:55.75 ID:5I4x+GEM.net]
関数型は親の仇、まで読んだ。

いつの間にか老害になってた、ってのもよくある話。

659 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 02:28:35.54 ID:tNbhSEQ7.net]
>>623,624の可読性は定量的に表すといくつですか?

660 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 02:48:45.62 ID:MIaIeT8n.net]
3

661 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 04:34:25.08 ID:Cx/cD9Km.net]
評価に価しない

662 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 07:03:52.26 ID:aUiPvlDm.net]
要するにアンチパターン

663 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 13:30:51.56 ID:b8SZy0Th.net]
>>623

コードに審美眼とかうるさい奴は死にかけのPerlに行けよ
死ぬ程美しいコードだらけだぞ
副作用だらけの可読性や保守性が全然ない糞みたいな世界にいけばいい

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

665 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 17:44:54.07 ID:uFiZxscE.net]
たぶん「調子こいた『ラムダ式』」では。

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



667 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 17:49:57.84 ID:oe6ViUtA.net]
匿名メソッドはOKなんですねよかった

668 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 17:53:16.74 ID:aSQFFfFE.net]
>>644
ひでーww

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

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

671 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 18:27:04.12 ID:uFiZxscE.net]
ザンギにソース?(北海道民感)

>>647
その言い方だと俺が酷いようにみえるんだけどw

672 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 18:27:22.17 ID:73eR6yvK.net]
牛乳を買ってきて卵があったら6個買ってきてね

これで牛乳を6個買ってきた話のようだ。プログラマーってのはめんどくせーなw

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

674 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 18:47:50.99 ID:MIaIeT8n.net]
変なパーサー使ってるんだな

675 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 19:02:47.22 ID:hMWB8YVJ.net]
最後の買ってはコンパイルエラーにしてほしいな

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



677 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 20:27:03.31 ID:R05VqS28.net]
>>654
うんにゃ

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

679 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 20:35:59.82 ID:rH9xy5Nb.net]
>>654
イテレーター業界?

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

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

682 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 20:44:48.07 ID:wmtSdepv.net]
>>650
それとぃってrで見た

683 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 20:52:06.40 ID:roKi/w2g.net]
>>659
そういうのは調子乗ってると思わないけどw

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

685 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 00:04:13.32 ID:ROqN57Sm.net]
delegateの演算子オーバーロードは出来ない?

例えば
Func<string, int> f1 f2
な時に
f = f1 | f2;
stringの値によって、f1またはf2を呼び出すfをつくる
みたいな事がしたい。

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



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

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

689 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 10:05:52.02 ID:jkLbSgMw.net]
個人的には別にトリッキーだとは思わないけど
むしろ美しい
https://ideone.com/N9aycD

690 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 10:54:34.82 ID:eq6TYNRH.net]
>>667
"個人的"だね、ほんと

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

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

693 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 12:07:04.04 ID: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 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 12:25:34.26 ID:OGpfvvty.net]
こういう流れを見るとやっぱ文理学歴の差って大きいんだなって実感する

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



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

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

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

700 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 13:07:15.54 ID:aauDOAhV.net]
>>673
なお俺はトリッキーだとは言ってない。
バグを誘発する糞コードを読まされる手間が増えるだけだからウザイと言っている。
その件に関してはベタで書いた方が「全体的には」楽だろ。それだけ。
初心者はこの「全体的」が分からないから局所的な最適化コードに異様にこだわるだけ。

それだけで済んでいればいいけど、通常はそれだけじゃ済まないんだよ。
そして泥沼化するから、C#では最初から禁止している。それだけ。
まあ妥当だと思うよ。

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

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

703 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 13:34:10.10 ID:aauDOAhV.net]
ちなみにC#からの見方に変えると、
C#の開発時には既にC++があったわけだから、
templateの有効性や演算子オーバーロードの利便性を知らなかったわけではない。
ただ、馬鹿が調子こいて余計に手間が増えることの方が多いと判断したから、落とした。それだけ。

「出来る」ことと「便利になる」は別なんだよ。だから結局の所プログラマ次第。
そして「自前クラス」まで禁止するとstaticおじさんになるというわけさ。
これについてはJava側からの視点で批判的な物が多いけど、
おかしなクラス構成ばかり見せられたら自前クラスも禁止したくなるだろ。
実際、OOPスレ10に対してなら
「お前がクラスを作ることは禁止、どうしても欲しければ相談しろ」というのも現実的な線だよ。

要するにメタプログラミング系は本来は熟練者しか使っちゃいけないのさ。
初心者が「template使える俺カッケー」をするからおかしな事になる。
それってtemplateを使うこと、或いは短く書くことが目的になってるだろ。
手間を減らすこと、コンパクトに書いて規模の限界を緩和することを目的にしろって事だよ。
(クラスも程度は軽いけど結果的に自前フレームワークを用意するという点でメタプログラミングと似ている)

704 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 13:39:28.09 ID:jkLbSgMw.net]
関数の合成といえば(f◯g)(t)=f(g(t))だし
「線形結合できる関数」クラスの例で
関数の和といえば(f+g)(t)=f(t)+g(t)だし数学的にこれ以外ないでしょ
合成はc++に◯記号がないから|を代わりにしただけ

あとあのコードがまるで「普通」のコードよりもバグを誘発しやすいみたいな言い方してるけどなぜそう思うの?
単に見たことない書き方だからそう思ってるんじゃないの?

数学についても、プログラムについても単に知らない人が拒否反応を起こしたり分かりにくいといっているように感じるんだが

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

706 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 13:43:56.45 ID:aauDOAhV.net]
あ、2chで表示できないのだろうからunicodeで頼むわ。



707 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 13:49:48.57 ID:jkLbSgMw.net]
U+2218
www.fileformat.info/info/unicode/char/2218/index.htm

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

709 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 14:03:39.03 ID:aauDOAhV.net]
>>684
ああこちらでも確認した。そういう表記をすることもあるようだ。
俺は知らんが。

ただ、そういうのを | で代用するようなことをするから演算子オーバーロードは駄目なんだよ。
それが欲しければ、そのコードをそのまま使わないといけない。
そうじゃないと、お前のオレオレクソコードを全員が読まないといけなくなるだろ。

例えばJavaScriptなら、ソースコードはunicodeなのでそれが出来る。
function ○(func0, func1){}
だからその件に関する正しいやり方は、unicode版C++で○を演算子としてサポートすることだ。
ただ、f(g(x))と書けばいいだけのことを新しい演算子を定義するのは無駄だ。
だから現実的にはunicode版C++で○をマクロ等で合成関数に置換することだろう。
(unicode版C++があるかどうかは知らん)

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

711 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 14:06:04.74 ID:ROqN57Sm.net]
自己が見慣れないものを、一見汎用性のありそうな

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

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

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

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

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

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

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

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

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



717 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 14:28:49.54 ID:aauDOAhV.net]
>>689
関数ポインタを返せばいいだけだろ。

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

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

719 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 14:42:08.34 ID:FGg7v3h+.net]
>>693
レス番間違ってないか?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

729 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 15:57:16.07 ID:wePFQlkp.net]
捨て台詞吐くぐらいなら絡んでこなきゃいいのに...

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

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

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

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

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

732 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 16:28:44.65 ID: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 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 16:53:20.94 ID:jkLbSgMw.net]
俺は関数オブジェクトを使うのによい例を具体的なコードを示して挙げたつもりなわけだが
その例がクソだというなら同じ題材で「まともなCプログラマ」ならどう書くのか
プログラマらしく俺と同じようにideoneにでもコードをあげてほしいよね

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

734 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 17:41:34.45 ID:ROqN57Sm.net]
レガシーな話は別の場所で。

735 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 18:37:00.85 ID:4fupdPv1.net]
そろそろc++スレへ

736 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 20:32:46.30 ID:ruQ48W5a.net]
>>682
ちいさな中空の○のことだろ
数学でよ〜く使う奴



737 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 21:54:50.86 ID:QFl4EKwL.net]
f∘g

738 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 04:19:54.47 ID:uOsaIQNY.net]
何時もfまるgって読んでるけど正式な読み方は何なの?

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

740 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 07:58:56.85 ID:K13Pj3xV.net]
>>714
それで正しいみたい
izumi-math.jp/sanae/report/suusiki/suusiki.htm
www.comp.tmu.ac.jp/yosihiro/teaching/how-to-read.pdf

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

742 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 10:34:40.02 ID:reFXN9x4.net]
理由がないかぎりデフォのまま

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

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

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

746 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 00:04:15.38 ID:7nh5q1fN.net]
デリゲートかなあ



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

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

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

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

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

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

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

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

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

756 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 06:42:51.70 ID:fMQ+lBRM.net]
>>729
ラムダって多くはデリゲートとセットでは?



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

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

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

759 名前:デフォルトの名無しさん [2016/10/06(木) 20:53:36.20 ID:roCwyFi8.net]
使えたよ

760 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 21:04:12.56 ID:JthKKgNo.net]
アレルギーは病気だからお医者に行くといいよ

761 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 21:55:32.73 ID:Gk0vxqlO.net]
>>734
FAQ過ぎる

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

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

764 名前:デフォルトの名無しさん mailto:sage [2016/10/07(金) 01:58:05.78 ID:zqRixoIp.net]
リンクトゥーエスキューエルは?

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

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



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

768 名前:デフォルトの名無しさん mailto:sage [2016/10/07(金) 13:02:14.27 ID:gy3H7/nZ.net]
別人で再生して浄化した。

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

770 名前:デフォルトの名無しさん mailto:sage [2016/10/07(金) 21:05:49.22 ID:1Dl+MuXR.net]
道具のせいにする人ってどこにでもいるよね

771 名前:デフォルトの名無しさん mailto:sage [2016/10/07(金) 21:42:30.53 ID:rpvo0aMN.net]
いるね

772 名前:デフォルトの名無しさん mailto:sage [2016/10/07(金) 23:53:39.03 ID:1f6Aa5PW.net]
そういう方はコボルに移ってもコボルのせいにしない?

773 名前:デフォルトの名無しさん mailto:sage [2016/10/08(土) 00:27:37.64 ID:YZ0dkDui.net]
極端な人ってどこにでもいるよね

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

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

775 名前:デフォルトの名無しさん mailto:sage [2016/10/08(土) 17:25:08.15 ID:6UkbCfBv.net]
そんなやつがレビューアーやってる事の方が問題なんだが

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



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

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

779 名前:デフォルトの名無しさん mailto:sage [2016/10/09(日) 03:24:54.85 ID:b4dakfPd.net]
会社厨うざい

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

781 名前:デフォルトの名無しさん mailto:sage [2016/10/13(木) 14:23:00.79 ID:x9JSnrTo.net]
標準のはない

782 名前:デフォルトの名無しさん mailto:sage [2016/10/13(木) 14:36:24.85 ID:U+TNkLbY.net]
今時はJSONでも使っとけ

783 名前:デフォルトの名無しさん mailto:sage [2016/10/13(木) 15:12:47.08 ID:iJXxjoio.net]
>>757-758
ありがとう
なんとかする

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

785 名前:デフォルトの名無しさん [2016/10/13(木) 21:55:43.87 ID:mO/7q7RS.net]
逆に消してどうしたいの?

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



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

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

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

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

791 名前:デフォルトの名無しさん mailto:sage [2016/10/14(金) 09:07:30.89 ID:5Y7KbdSJ.net]
>>764
中身あっても消えるよ
これほんと余計なんだよな

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

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

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

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

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



797 名前:デフォルトの名無しさん mailto:sage [2016/10/15(土) 00:26:35.41 ID:k9mTyD+7.net]
>>772
ha?

798 名前:デフォルトの名無しさん mailto:sage [2016/10/15(土) 02:30:14.73 ID:SiQ2B4iv.net]
>>773
ん?

799 名前:デフォルトの名無しさん mailto:sage [2016/10/15(土) 02:42:51.12 ID:JTDXk7lA.net]
>>774
プニュ( ´∀`)σ)Д`)

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

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

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

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

802 名前:デフォルトの名無しさん mailto:sage [2016/10/15(土) 13:56:21.00 ID:P+QAjsnw.net]
なお、Invokeで操作するだぞ

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

804 名前:デフォルトの名無しさん mailto:sage [2016/10/15(土) 15:13:08.29 ID:auQgHyKE.net]
FW4.5以上必須だけど

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

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

806 名前:デフォルトの名無しさん mailto:sage [2016/10/15(土) 16:47:54.95 ID:P7MwN4Hv.net]
>>779
意識高いねー



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

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

809 名前:デフォルトの名無しさん [2016/10/15(土) 18:44:32.46 ID:uHGHKnNI.net]
C#はC++よりも、

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

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

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

813 名前:デフォルトの名無しさん mailto:sage [2016/10/15(土) 19:41:54.19 ID:UDl7k1b2.net]
古い機械って、XPなのかなw

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

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

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

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



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

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

819 名前:デフォルトの名無しさん mailto:sage [2016/10/15(土) 20:50:25.38 ID:vyO0bokn.net]
>>780
Microsoft.Bcl.Async使えば.NET Framework 4.0 でも使える

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

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

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

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

823 名前:デフォルトの名無しさん [2016/10/15(土) 23:28:16.70 ID:f1QyDe2U.net]
>>756
win32api 直たたきでやる

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

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

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



827 名前:デフォルトの名無しさん mailto:sage [2016/10/16(日) 10:17:44.05 ID:6cPEMPfX.net]
今はasync/awaitのせいでそれ意味あん?っての多いな

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

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

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

830 名前:デフォルトの名無しさん mailto:sage [2016/10/16(日) 11:27:43.38 ID:jbRBUkYK.net]
$('hoge').children('.piyo')

831 名前:デフォルトの名無しさん mailto:sage [2016/10/16(日) 16:08:56.29 ID:43exmUNo.net]
MSHTMLはCOMコンポーネントスレだな
C#ではない

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

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

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

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


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

836 名前:デフォルトの名無しさん mailto:sage [2016/10/16(日) 20:43:38.34 ID:bkFW5Wdb.net]
俺もさっき?ってなった



837 名前:デフォルトの名無しさん mailto:sage [2016/10/16(日) 20:44:43.60 ID:HptTw0AS.net]
便利な定番ライブラリー教えてください

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

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

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

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

842 名前:デフォルトの名無しさん mailto:sage [2016/10/17(月) 00:41:57.54 ID:gL0kaGzi.net]
mshtmlつかうなら
https://msdn.microsoft.com/en-us/library/cc288169(v=vs.85).aspx
queryselectorが使える

843 名前:デフォルトの名無しさん mailto:sage [2016/10/17(月) 21:53:10.29 ID:vjQZXreA.net]
HtmlAgilityPackかSGMLReaderあたりかなあ

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

845 名前:デフォルトの名無しさん mailto:sage [2016/10/18(火) 18:13:12.16 ID:ewOaGiwG.net]
そんなもの使うなとしか言えない

846 名前:デフォルトの名無しさん mailto:sage [2016/10/18(火) 18:29:09.57 ID:mq8BnqKZ.net]
IE6のときならenumwindowで判断して、hwndからihtmldocumentに変換してたな



847 名前:デフォルトの名無しさん mailto:sage [2016/10/18(火) 19:15:18.50 ID:FlxOlnSe.net]
>>820
無能だなー

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

なぜこんなものを使う?

849 名前:デフォルトの名無しさん mailto:sage [2016/10/18(火) 20:52:19.50 ID:Gt7CC2vm.net]
背後になんか面倒くさい理由を隠してるとしか思えんよな

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

851 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 17:19:08.15 ID:arYWyhLn.net]
IEオートメーションじゃ実現できないのかな?

852 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 23:13:27.42 ID:LBA1+3Md.net]
MSHTML.IHTMLElement を MSHTML.IHTMLDocument3 にキャストできるの?

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

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

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

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

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



857 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 12:16:12.40 ID:h44EP0Eo.net]
>>831
ありがとう。 自分で作った。

858 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 12:33:25.92 ID:hy7ZxWJM.net]
なんでたまに継承できないクラスあるのかな?

859 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 12:33:46.23 ID:hy7ZxWJM.net]
オーバーライドだった

860 名前:デフォルトの名無しさん [2016/10/21(金) 22:58:40.56 ID:qlDwM755.net]
gcnewってなに? 今でも使っているの?

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

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

863 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 15:25:07.68 ID:nST3ahFj.net]
質問

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

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

865 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 16:39:49.89 ID:nST3ahFj.net]
ありがとう、あんまり気にしないことにする

866 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 17:43:18.97 ID:29Li8We/.net]
>>829
君の言うベクトルって何?
画像系の話?



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

868 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 19:37:45.10 ID:jUJZAwsX.net]
管理者権限が必要な処理の書き方とか全然知識

869 名前:がないんだけど、そういうの詳しく書いてある本ってあります? []
[ここ壊れてます]

870 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 23:36:47.33 ID: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 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 00:22:31.27 ID:B5STCa/c.net]
>>844
何がしたいのかよくわからんけど、そのコードだと
会社は会社名のプロパティを持ってないし部署も部署名のプロパティを持ってないから
"会社A"とか"営業部"とかいうデータは使われず捨てられちゃうと思うんだけど、そこはいいのかな?w

872 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 07:53:45.11 ID:OxwAMa74.net]
>>844
Listの操作でいけるだろ
コンストラクターの引数で

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

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

874 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 10:49:08.80 ID:sEyHovA2.net]
class 会社{会社CD 会社名}
class 部署{会社CD 部署CD 部署名}
class 社員{社員CD 会社CD 部署CD 社員名}
個人的にはこんなイメージ

875 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 10:57:06.97 ID:ZJ79iXt0.net]
なんだそのCDって。

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



877 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 11:14:50.63 ID:hWrb1W5d.net]
flagをflgにして1バイト削減するのとどちらがいい

878 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 11:18:19.73 ID:KJ+MRgkM.net]
省略がどうしても必要にならない限り
無意味な省略はしない

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

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

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

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

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

884 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 12:18:54.25 ID: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 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 12:19:09.90 ID:sEyHovA2.net]
未だに列名6バイトなクソDB使ってて
癖ついちゃってるんだすまない

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



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

888 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 12:29:06.93 ID:8nXGysoS.net]
>>858
分かりずらすぎ

889 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 12:51:39.85 ID:XCFJNrSh.net]
>>862
転職をお勧めするよ

890 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 13:03:17.86 ID:8nXGysoS.net]
Dictionaryなんて使わない。

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

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

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

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

895 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 13:17:43.18 ID:PYj3VGyg.net]
>>868
そんなもの決まってないから
クラス名・変数名に迷ったら書き込むスレ。Part27
echo.2ch.net/test/read.cgi/tech/1476572490/
気になるのなら上のスレに行け

896 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 13:18:39.73 ID:YUghrMnK.net]
会社の複数形…

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

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



897 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 13:19:22.06 ID:YUghrMnK.net]
間違って . いれっぱだった

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

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

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

901 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 14:47:40.36 ID:KJ+MRgkM.net]
.NET Frameworkの記法に合わせる事にしてる
ttps://msdn.microsoft.com/ja-jp/library/ms229002(v=vs.100).aspx

902 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 14:52:56.32 ID:Qt7KzQsX.net]
分かりやすい日本語にしてる

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

904 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 11:24:49.66 ID:l6YOm+ny.net]
>>874
.NET前:MS「ハンガリアンを使え」
.NET後:MS「ハンガリアンを使うな」
https://msdn.microsoft.com/ja-jp/library/ms229045.aspx

905 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 11:33:54.68 ID:ex01Zy3v.net]
>>878
それ翻訳がおかしいだけでしょ
ちゃんと翻訳されてる方を見ろよ
ttps://msdn.microsoft.com/ja-jp/library/ms229045(v=vs.100).aspx

906 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 11:56:19.29 ID:fiWgzVNs.net]
規約と推奨をちゃんと切り分けて話してくれよ
質問者は最初に「規約」を聞いてきてその後に「MSの推奨」になっているけど話が全然別の物になるから



907 名前:デフォルトの名無しさん [2016/10/24(月) 12:07:19.75 ID:A1JDcDJD.net]
>>880
規約があれば規約を教えてほしい。
規約はないが推奨はある というなら推奨でもいい。
推奨もないなら 「俺はこうしてる」 でもいい。

908 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 12:16:05.65 ID:fiWgzVNs.net]
>>881
推奨は>>878>>879でリンク貼ってもらっているだろ
そういったこと気にするのなら2chで聞くよりも適当に本何冊か買って書いてあるとおりにでもやればいい
職場なら職場のルールがあるし、趣味でやっているのならどうするかは個人の勝手なんだから

909 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 12:23:17.96 ID:csInVVUs.net]
どうでもいいことで妙な絡み方する奴だねw

910 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 12:25:46.22 ID:TdMIMrel.net]
あとMSの提示してる規則はあくまで不特定多数にAPIが参照される前提の「ライブラリ」に対してのみの提案
だから文中にもpublic/protectedに対するものしか出てこない
アプリ内の記述とか、ライブラリでもinternalやprivateなものは完全ノータッチ

911 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 16:07:18.44 ID:SvgB/4J1.net]
>>878
これは見事な糞機械翻訳だな

原文: [X DO NOT] use Hungarian notation.
機械: [X のしないで] ハンガリアン記法を使用します。
直訳: [×するな] ハンガリアン記法の使用。
意訳: ハンガリアン記法を使用するな。

912 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 16:40:04.52 ID:qDj+nyPk.net]
www.atmarkit.co.jp/fdotnet/dotnettips/151winshow/winshow.html

ここを参考に、オプションを指定して2個めを起動すると、起動中のアプリに独自メッセージを投げるようにしてみた。
ただ、アプリは複数のウィンドウを開いていて、探した Process オブジェクトの MainWindowHandle には
フォーカスがある (あった?) ウィンドウのハンドルが入ってるみたいで、目的のウィンドウじゃない場合がある。
全部のフォームの WndProc をオーバーライドするのも保守性がよくないし、どうしたらいいんでしょうか。

913 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 17:05:46.02 ID:f1Oob2xq.net]
>>886
FindWindow使うんじゃあかんの?

914 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 17:10:36.84 ID:e0+jKQlJ.net]
そのウィンドウの作りによるけど、親子関係を維持してるなら親をたどるとか
モードレスの場合は、、、どれがメインなのかを知る手段をお互いの約束事でみつける、かなあ

915 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 17:40:28.81 ID:TdMIMrel.net]
PostMessageでいいならIMessageFilter実装してApplication.AddFilterすれば
ちょっと構造的にやるならHWND_BROADCASTで問い合わせてみるとか

916 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 17:41:57.18 ID:TdMIMrel.net]
っていうかそんなんやるんだったらもうIPCチャネル使ったWCFでいいか…



917 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 20:50:12.21 ID:qDj+nyPk.net]
ご意見ありがとうございます。
タスクバーから表示を消している場合は API を使って探すしかないようなんで、それを参考にしようとしたけど、
できれば極力 API を使わない方法がないかなーと思いまして。
IPC も検討したけど、WndProc をオーバーライドした抽象クラスを作って、そこから派生させるようにしました。
まあでも IPC 使ったほうがスマートでしょうね。

918 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 16:31:51.10 ID:NElj0+xs.net]
整数型間のキャストについてちょっと質問

■ ビット幅大→ビット幅小
上位ビットの切り捨て

■ ビット幅小→ビット幅大
符号拡張後のビットイメージのコピー

■ 同じビット幅で符号の有無が違う型の間のキャスト
ビットイメージのコピー

こういう理解で合ってる?

919 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 17:49:24.66 ID:K4rqOI65.net]
整数間って、符号有から符号有への変換しか考慮しないのか?

920 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 19:04:56.45 ID:Z8lrimsb.net]
>>892
全然違う
はみ出るなら普通に例外飛んでくる

921 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 20:36:31.88 ID:rC8yedLe.net]
>>894
C#はアンチェックキャストも使える
>>892で合ってる

922 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 20:41:37.27 ID:T6ck7IU9.net]
質問書き込む間に試せば済むのにって思ったのは俺だけかな

923 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 20:59:04.81 ID:u3THH1jN.net]
あまりにも自分に自信が持てないと、自分で試したことすら信用できなくなる
そうすると、百聞は一見に勝ってしまう

924 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 21:23:24.66 ID:5bnizB9y.net]
uncheckedが前提ならそうかくだろ
キャストと言えば普通のキャストだろが

925 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 21:35:03.00 ID:PfRUD0fJ.net]
>>895
ありがとう

926 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 22:05:16.44 ID:ILgHPkDG.net]
>>898
カッカすんなよ
何が普通かは人によって違うんだよ



927 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 22:22:58.40 ID:pbaR/VeE.net]
>>898
変数だとuncheckedがデフォルト設定だから、省略されてもおかしくない。

928 名前:デフォルトの名無しさん mailto:sage [2016/10/28(金) 08:40:14.47 ID:AW+qEc2o.net]
>>896
お前だけだよ。

929 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 19:08:46.81 ID:dXKRRVDP.net]
C#erはサードパーティ製のORMやEntity Frameworkを禁止された時は何を使うんですか?
今いる現場では代わりにADO.NET & 型指定DataSet(デザイナーで作るアレです)を使っていますが生産性がいまいちなので他の方法を探しています
この方法の全てが気に入らない訳ではなくプロパティが全てパブリックになってしまう、DBNullとnullの変換が面倒、Nullable使用不可、邪魔なパブリックメソッドが沢山あるといったポイントが不評です
特にパブリックプロパティの問題はオブジェクトに集中するべき振る舞いがシステム全体に分散してしまうので深刻です

930 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 19:29:57.79 ID:ddj4bzvw.net]
DAO手書きでいいよ

931 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 19:46:29.75 ID:wsj9Hrl0.net]
>>903
禁止する理由?

932 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 19:46:57.95 ID:wsj9Hrl0.net]
…は何

って打とうとした

933 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 20:03:24.68 ID:3O/hAOpu.net]
DataSetって産廃を未だに使っているところあるんだな

934 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 20:57:46.79 ID:9ElojHns.net]
EFを禁止する理由って一般的には何?

935 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 21:02:47.76 ID:ZloojbFD.net]
>>906
会社の決まりとかだろ

936 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 21:11:45.43 ID:wsj9Hrl0.net]
>>909
その理由を聞いてるんだろ



937 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 21:12:05.69 ID:nUOhPXQV.net]
もし、速度の問題ならDapper使うべきだろうがね

938 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 21:21:04.07 ID:Xtl4N18Y.net]
理由がなければ禁止されないと思ってるのが可愛い

939 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 21:31:13.29 ID:ZloojbFD.net]
>>910
そんなもん聞いてどうなるもんでもないし

940 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 22:29:40.91 ID:3zUqMDSq.net]
理解できずにトラブルが起きたときに思考停止する低能があまりに多いから
知らないところでメタ情報取得のためのSQL文を実行してるので
RDBMSのユーザーに本来不要な権限が必要になる場合があるから

941 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 22:50:05.69 ID:dNFy3BfA.net]
>>913
思考停止おつ

942 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 23:40:38.36 ID:O0e58OxR.net]
安い人足を使ってるのでついて来れない

943 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 03:55:02.62 ID:POLtarGN.net]
>>916 これ

944 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 08:47:00.01 ID:2kQlDpFE.net]
>>915
会社によって理由なんて様々だし
たいてい議論しても解決策なんて出ないし
そもそもここで議論すべき内容じゃないし

945 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 08:49:23.96 ID:m4OftK0R.net]
理論武装すれば会社がライブラリの使用を認めてくれるかって言ったら、そんな事ねーしなあ

946 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 08:55:44.96 ID:qBBSmv5i.net]
そらそうだ
変えられないことをあーだこーだ言っても時間の無駄



947 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 09:05:18.12 ID:bey9pkjT.net]
小さい会社だと文句言うと変更するか検討始めるからな。基地外が一人いるだけで開発がすげー滞るww

948 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 09:18:38.59 ID:2kQlDpFE.net]
>>919
会社の人が納得してくれても親会社からの通達でダメとかもあるし...

949 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 12:38:48.05 ID:vWAd+Msy.net]
そんな会社やめちまえよお前ら

950 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 12:41:42.06 ID:CC/Nb3c5.net]
スレ違いどころか板違い。マ板でやれ

951 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 22:32:58.24 ID:YeZOi3cQ.net]
結局のところORMを自作するほかないということでしょうか

952 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 23:25:09.40 ID:asmRMmwq.net]
君の質問に対しては、現場で許可されてる方法を使え、としか答えようがない

953 名前:デフォルトの名無しさん [2016/10/31(月) 09:23:24.34 ID:lW2bcIPg.net]
[GeneratedCodeAttribute( "Gardens Point Parser Generator", "1.5.2")]
この[]で宣言されるのは何を意味するのだろう。
自分で書くことはないが生成されたコードではよく見かける。いままでコメント
くらいの意識で眺めていたが、気になる。

954 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 09:36:11.24 ID:OqD2s4Cc.net]
属性っていうメタデータ
シリアライズ用のデータとかネイティブAPI呼び出すとかDIとか
そういうのを書くときには使うことも出てくると思うぞ

955 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 09:40:21.62 ID:iFh8Iutn.net]
C#で便利になったもんのひとつが属性だな。Cでも同じように使えたらよかったのに

956 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 10:34:23.11 ID:lW2bcIPg.net]
そういう便利な機能があったとは。ありがとう
自分には無関係と思っていたが、例をみると

#ifの代わりに使えるね。
/// SHOW_INTERMEDIATE というシンボルが定義されているときのみ
/// 配列の内容をコンソールに表示する。

[Conditional("SHOW_INTERMEDIATE")]
static void IntermediateOutput(double[] array)
{
Output(array);
}



957 名前:デフォルトの名無しさん [2016/10/31(月) 10:51:33.29 ID:lW2bcIPg.net]
>929
しかし普通にはあまり使うケースはないんではない?
どう便利なのかいまいちよくわからない。 Cで使えると何が便利になる?
#ifの代わりくらいになるのはわかるが、、

958 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 10:57:51.43 ID:7o6spjkC.net]
バージョンで処理を分けておいて
過去のバージョンの処理に戻したい場合は属性を変える
オープンソースだと後方互換性維持のためにそんな風にしてるね

959 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 11:01:23.63 ID:P3Gvvomo.net]
プロパティシートで使うやつ?

960 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 20:59:34.23 ID:03zQ5mOK.net]
属性はゴミ
そう思っていた時期が僕にもありました

961 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 22:23:39.25 ID:iWkg1iMh.net]
属性をうまく使いこなせればプログラムがかなりスッキリ書けるんだけど
なかなかうまく型にはまらなくて何度も作り直してるわ

962 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 22:33:33.79 ID:PR8uOfdS.net]
ちょっと凝ったことしようとしたら、DllImportAttributeとFlagsAttribute位は使うだろう。

963 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 22:52:52.13 ID:T+jfS1R6.net]
あとはUnityとかもバンバン使うイメージ

964 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 23:16:26.73 ID:pApy3Eby.net]
属性はSTAThreadとDllImportしか使った事ない

965 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 23:24:32.92 ID:utslClq8.net]
DataAnotationは良いぞ
まあガチ業務だとちょっと物足りなくて結局は自作する羽目になるんだけど

966 名前:デフォルトの名無しさん [2016/11/01(火) 08:32:19.42 ID:hFVadVBb.net]
>>936
キャッ、それおまじないと思ってた。W
コピペしたコードの中にはよく混じってた。



967 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 08:42:26.93 ID:iAfLjhk9.net]
JSONにバインドするクラスに属性使いまくりだね

968 名前:デフォルトの名無しさん [2016/11/01(火) 09:27:22.11 ID:hFVadVBb.net]
Unityってスクリプト言語みたいだね。これって属性なの? 面白そうだけど
どんな時に使う?

969 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 09:31:35.84 ID:D+IVr+nD.net]
ちょっと意味わからない

970 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 11:54:25.84 ID:hFVadVBb.net]
あっ、意味わかった。ごめん勘違いしていた。C#でUnity使うときの属性のことだね。

971 名前:デフォルトの名無しさん [2016/11/01(火) 11:56:12.97 ID:hFVadVBb.net]
>JSONにバインドするクラスに属性使いまくりだね

なんで使うの? そういう必要を感じたことないんだけど。どういう場面でつかうの?

972 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 12:18:29.71 ID:KGKMFPtk.net]
>>945
天気予報データとかWeb Apiで返すデータにjson配信多いよね

973 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 13:51:57.28 ID:bjN+4M8I.net]
そういう意味じゃないと思うが

シリアライズ/デシリアライズ対象外のフィールドを指定したり
JSONとC#のクラスフィールドで名前が一致しない場合にそれらをマッピングしたりする

974 名前:デフォルトの名無しさん [2016/11/04(金) 15:22:24.22 ID:PH2+pS4C.net]
VisualStudio2015起動中に出したらUnity生活終わるナリ・・・
あああ^〜ああああああぁ^〜〜〜!!!!起動遅せええええ!
ブリュブリュブリュブリュブリュゥゥゥウ!!!!ブッチッチブブッチブッチチ!!!

975 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 15:53:31.89 ID:kQ8VEtHk.net]
怪文書過ぎる

976 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 16:26:14.38 ID:T8/2G1/9.net]
>>946
天気予報に限らずapiが返すのはxmlかjsonだろ



977 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 16:54:25.27 ID:22qUZxEG.net]
>>950
「とか」

978 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 16:58:09.06 ID:FRTndHrZ.net]
天気はxmlの方が多いイメージだな

979 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 17:11:19.05 ID:fW1GVoX0.net]
じぃさんとかばぁさんはとしくってるいめーじ

980 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 17:17:22.17 ID:pA+obtrY.net]
そういうデータをcsvに変換するフィルタが大活躍します

981 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 17:54:23.34 ID:V0keAHui.net]
気象庁配信のデータはXMLとFORTRAN時代さながらの固定テキストだった

982 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 17:59:21.35 ID:uJM5jI72.net]
内部にコレクション持ってるなら固定テキストは向いてない

983 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 18:59:09.41 ID:yE+rsN5M.net]
>>948
これはいけない

984 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 21:48:57.57 ID:eWOxJ5YA.net]
コボルと非正規化データベースにどっぷり浸かって抜け出せないオジさんはCSVを愛している傾向が強い

985 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 21:52:44.37 ID:EoXigf7J.net]
あるある
まあ環境だから仕方ない

986 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 23:50:28.01 ID:V0keAHui.net]
職人としてCOBOL時代の技術に拘るなら潔く固定長レコードを使ってほしい
あれはあれで美しい一つの完成系だと思う
CSVは中途半端でオジさんの誇りが全く感じられない



987 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 00:02:53.11 ID:DUzD1Vkt.net]
固定長は正義
40年近くプログラミングやってるが固定長にまさるものはない

988 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 01:05:40.91 ID:p62EnB4H.net]
なーんでタブ区切りはやんないんだろーなー
トラブル減るのにいまいち認知度がない

989 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 01:49:06.12 ID:/yzRKBKB.net]
CSVと違ってエクセルが直接はサポートしてないからじゃないの?
っていうかCSV使う動機ってエクセルへのエクスポートぐらいしかないと思うけど

990 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 04:44:51.30 ID:Mhx54Slb.net]
科学技術系のソフトは割とCSV吐いたり要求したりが多い気がする

991 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 06:14:56.68 ID:9ROCL4OX.net]
>>963
直接サポートが何を指しているのか分からないが
タブ区切りインポートは「テキストファイルのインポート」機能
エクスポートは「テキストファイル(タブ区切り)」で保存
両方とも標準でサポートされている

992 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 06:15:16.00 ID:Bnw8PuKo.net]
Open XML SDK使ってXLSX直接読み書きすると捗るわ

993 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 06:50:20.50 ID:HDT4XNAt.net]
>>965
恐らく「タブは印刷すると見えない」が問題なんだろうが
それこそこっち側からは理解不能だ

994 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 07:01:16.64 ID:Q0fi8pIF.net]
Excel開いた状態からD&DでコピペするとTSVだよな確か

995 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 07:32:01.87 ID:6wNzhQFs.net]
>>966
知らない間にオープンソースになってたんだな
ちょっと使ってみるかな

996 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:00:50.75 ID:p62EnB4H.net]
生はつらくない?
ClosedXMLおすすめ
NPOIはバグ多い



997 名前:デフォルトの名無しさん [2016/11/05(土) 11:01:17.28 ID:oE61kQsA.net]
namespace Calculator
{
public abstract class ScanBase : AbstractScanner<ValueType,LexLocation> {
}
public class Parser: ShiftReduceParser<ValueType, LexLocation>
{
  static Parser() {
  }
  protected override void Initialize() {
  }
省略
  protected override string TerminalToString(int terminal)
  {
  }
         Parser() : base(null) { }
         public static void Calculate(string input)
         {
            Parser parser = new Parser();
            Scanner scanner = new Scanner();
            scanner.SetSource(input, 0);
            parser.Scanner = scanner;
            parser.Parse();
         }
}
}

         Parser() : base(null) { }
これは何をしてるのですか?

998 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:05:51.24 ID:vG38OUAL.net]
>>971
うんこ食べてる

999 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:17:20.70 ID:N0pRKuvW.net]
>>966
あれMSDNやそこらのサイトの例を鵜呑みにすると、複数フォント使っているセルは最初の単語しか取得出来ないんだよな
まあきっちり読めばいいだけなんだが

1000 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:17:22.49 ID:93kgJ5Ii.net]
>>965
分かれよw
それはTSVそサポートしてるんじゃないでしょ。
っていうか「テキストファイルのインポート」だって自分で書いてるじゃんw

>>969
プレーンテキストのデータはそうなってるだけでしょ。

そういやその逆の操作も可能だから、TSVでクリップボードにコピーして
スプレッドシートに貼り付け出来るようにしたソフトを昔作ったことがあったな

1001 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:18:47.90 ID:u9ZZUUBm.net]
>>971
そういうのは再帰下降パーサを手書きしてみればなんとなく分かるようになる
前知識なしでShift-Reduceは無謀

1002 名前:デフォルトの名無しさん [2016/11/05(土) 11:22:21.39 ID:oE61kQsA.net]
ShiftReduceParserではなくて
  Parser() : base(null) { } ここね。

1003 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:33:26.54 ID:6wNzhQFs.net]
>>974
> それはTSVそサポートしてるんじゃないでしょ。
> っていうか「テキストファイルのインポート」だって自分で書いてるじゃんw
正直何を言ってるのかわけわからん w
まあその前にアンカーぐらいまともにつけられるようになれよ
って話だな

1004 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:47:50.74 ID:0A6bFhuE.net]
>>966
何が捗るのさ?

1005 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:50:31.98 ID:93kgJ5Ii.net]
>>977

1006 名前:arget="_blank">>>962
その答えが恐らく>>963だろうと。
そういう話
[]
[ここ壊れてます]



1007 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:51:10.92 ID:Bnw8PuKo.net]
>>969
設定ファイルをExcelで書きたいからCSVでって言ってくる客は多いから、XLSXで提案すると喜ばれるよね

1008 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:53:37.33 ID:2n9hgzl5.net]
CSVと違ってTSVは標準の拡張子がないだけだろ
それを「エクセルはTSVサポートしてない」って・・・www

1009 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:56:50.35 ID:Bnw8PuKo.net]
>>973
まあ動きがおかしいと思ったらXLSXの生データを確認するのが手っ取り早いね

1010 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 11:57:26.23 ID:PXYcOtjJ.net]
Open XML SDKってどの程度のことが出来るの?
数式セル、条件付き書式、マクロ、暗号化、PDF変換、画像挿入は対応してる?

1011 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 12:13:05.59 ID:Qh4Pk2xF.net]
いまだに「CSV?カンマで区切りゃいいんだろ?」的な認識の奴が多くて辟易する

1012 名前:デフォルトの名無しさん [2016/11/05(土) 12:49:43.04 ID:oE61kQsA.net]
カンマで区切るだけだと思うが、、、
理由もなしに辟易するのもなんだよな。

例えば
   Parser() : base(null) { }
これが何をいみするのかを調べるには、ある程度のキーワードがあれば検索できる。
baseはここでは特徴的なキーワードだからbaseで検索すればなにか手がかりが掴める
はずだ。
あるいはこの行をコメントアウトしてみるとか、トレースしてみるとかすると何か
手がかりがつかめるかもしれない。

1013 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 12:54:27.64 ID:Bnw8PuKo.net]
>>985
フィールドがダブルコーテーションで囲まれてることも考慮しないと

1014 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 12:56:50.22 ID:pzDrzyW2.net]
>>979
単体で直接読み書きできるのにサポートしてないってどう言うこと?

1015 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 12:57:59.54 ID:pzDrzyW2.net]
>>980
サーバー上で Excel ファイルを生成してダウンロードさせるとかの用途もあるしね

1016 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 12:58:49.61 ID:Vdk40yXv.net]
CSVならCsvHelperをNugetしてくれば解決さ



1017 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 13:00:04.39 ID:pzDrzyW2.net]
>>983
只で試せるんだから自分でやってみなよ
ここはそういう板ですよ

1018 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 13:02:33.65 ID:pzDrzyW2.net]
>>986
ダブルクォーテーションのエスケープはどうするとか、改行はどうするとか、やり出すとキリがないからなぁ

1019 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 13:13:48.58 ID:93kgJ5Ii.net]
>>987
上げ足取る気満々の奴に馬鹿正直に答える俺もどうかしてると思うが、
少なくとも読み込みに関してはサポートしているのは「任意のデリミタ区切りのテキストファイル」
であってTSVじゃない。

それに対してCSVはCSVとして直接扱える。

PCに必ずしも明るいとは限らない俺たちのエンドユーザーに対してどちらがよりフレンドリーか明らか。

っていうか、最初からそんなこと言われなくてもわかってるだろうにくっだらない。

1020 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 13:43:13.40 ID:PXYcOtjJ.net]
レポートファイルでもないのに内部保存形式意識させた時点で負けた気になる
設定変更はアプリ内でやりたい

1021 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 14:02:37.48 ID:pzDrzyW2.net]
>>992
プログラマーなら
> 「任意のデリミタ区切りのテキストファイル」
に TSV が含まれることに異議を唱える奴はそうそういないと思うけどねぇ
どっちが揚げ足とりなんだか w

1022 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 14:18:37.61 ID:N0pRKuvW.net]
DB入力にCSV指定されて軽くハマった覚えあるから出来る限りTSVにしているな
CSVは方言がキツイわ

1023 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 15:21:23.46 ID:HDT4XNAt.net]
いつものことながら、激しくどうでも良いことだなw

1024 名前:デフォルトの名無しさん [2016/11/05(土) 16:08:18.72 ID:oE61kQsA.net]
push

1025 名前:デフォルトの名無しさん [2016/11/05(土) 16:08:54.81 ID:oE61kQsA.net]
pop

1026 名前:デフォルトの名無しさん [2016/11/05(土) 16:09:17.15 ID:oE61kQsA.net]
the



1027 名前:デフォルトの名無しさん [2016/11/05(土) 16:11:24.95 ID:oE61kQsA.net]
end
sssp://o.8ch.net/irxl.png

1028 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<279KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef