ふらっと C#,C♯,C#(初心者用) Part134

■ このスレッドは過去ログ倉庫に格納されています
2017/11/28(火) 21:30:48.55ID:7U+HR4FY
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part133
http://mevius.5ch.net/test/read.cgi/tech/1510056685/

■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/12/10(日) 20:57:11.24ID:gQySa/bC
キチガイにふれるなよ
2017/12/10(日) 21:46:32.27ID:Uujd9YQH
計算量の観点で比較すると
switchはコンパイラが2分探索にしてくれる場合がある O(log2(N))
クラス化はインスタンス生成された時点で仮想関数テーブルが紐付く O(1)+ディスパッチのコスト
で合ってる?
2017/12/10(日) 21:54:10.74ID:bPupZbt5
>>443
switch でも状況によってジャンプテーブルにしたりするんじゃね?
2017/12/10(日) 22:12:18.04ID:Uujd9YQH
>>444
C#はジャンプテーブルも使うみたいですね
この比較はあんま意味ない気がしてきたので閉めます
2017/12/10(日) 22:28:48.38ID:klwCxkV9
俺以外でここまで書き込んだ奴は明日朝一で中央線に飛び込んで死ね
2017/12/10(日) 22:37:53.36ID:8I95hEEE
仮想メソッド呼び出しはJITがインラインキャッシュで展開するからコストはほぼゼロのはず
2017/12/10(日) 22:38:00.15ID:/a8M7Ljd
>>446
板違い。メンタルヘルス板に行け
449447
垢版 |
2017/12/10(日) 22:39:14.02ID:8I95hEEE
補足
展開っていってもインライン展開するわけじゃないよ
静的なメソッド呼び出しに置き換えるということ
2017/12/10(日) 22:54:55.63ID:4CvOnmGy
>>428
例外 ⊂ エラー
2017/12/10(日) 23:09:05.85ID:NAV3AZ5L
>>449
vtable を間に噛むんじゃないか?
2017/12/10(日) 23:13:59.68ID:40kmfkZ7
>>450
マ?
2017/12/10(日) 23:47:37.64ID:u72ghqtY
shapeクラスをベースに持つrectangleとcircleクラスの挙動をswitchで制御してるならOOPに反すると思うけど
確固たる概念も実体もないものをわざわざクラスにしてまでenumを消す理由はない

普通のマジックナンバー代わりの記号がenum
オブジェクト間でクラスがメッセージをenumで渡すだけ
上手に使えばいいだけ
2017/12/10(日) 23:56:55.90ID:+mi54qJj
あ、もうその話終わってるんで(^^;
2017/12/11(月) 00:02:40.94ID:4r/Nu0Q4
>>453
お前も勝利宣言しとけよ
明日以降やられてもたまらん
2017/12/11(月) 00:13:22.40ID:duNhD2vY
実体の無い物をクラスにしたらドキュメント書けよと
それだけだけどな
書かないでやってる奴はギルティ
2017/12/11(月) 00:24:03.35ID:ZlOMrHZS
メッセージがただの記号だったのにクラスになるとオブジェクトの生成や
必要に応じてライフタイム管理が必要になる

しかも作ったオブジェクトに処理を移譲したり他のオブジェクトを渡したりして新たなオブジェクトと結合が密になる恐れがある
そこまでしないなら記号の受け渡しで済んだものがクラスの管理が増えるだけでメリットは薄い
2017/12/11(月) 03:52:53.05ID:oxZtEftd
あー、そーゆーのはママに教えてあげてね
2017/12/11(月) 06:40:10.22ID:6BzZoNtD
>>441
そりゃ反論はガン無視だもんな w
2017/12/11(月) 08:32:07.64ID:Pz9H8j59
> オブジェクトの生成
状態変わらないのだからpublicなstaticメンバで持てばよい

> ライフタイム管理
そんなに気になるのならstructにすればよい

> 処理を委譲したり(最後まで)
全く意味不明
2017/12/11(月) 08:37:46.08ID:PAoZtWNN
一晩経っても負け惜しみ言ってるやつ居てわろた
せめて反論したらどうなの?

>>457
メッセージを列挙値で済ませようとする発想がまずチープだがまあいい
RegexOptionsみたいな場合もあるからな
問題はドメインオブジェクトを列挙値で表現してしまうケースな
昨日から議論してんのはメッセージの話じゃないんだよそもそも
君はまだそこを理解してない
2017/12/11(月) 08:40:03.91ID:Pz9H8j59
どうしてもenumにこだわりたいのなら
Attribute付加
拡張メソッド作る
こんな手段はある
2017/12/11(月) 08:44:48.49ID:PAoZtWNN
他のオブジェクトとの関連云々ってさ
べつに列挙値からオブジェクトにしたから急に関連が出てきたものじゃないんだよね
ドメインの性質としてもともと本質的に関連があるものなんだよそれは
それがオブジェクトにしたことによって可視化されただけ
列挙値のままだと関連があるのにそれがハッキリと見えず暗黙の結合状態になってるだけ
それはまさに最悪の状態だよ
2017/12/11(月) 08:50:22.92ID:DFoAuevB
設計書の構造に箱ができないものをクラスにするのはセンスが悪いな
こんなゴミクラスたくさん作っちゃってクラス図でどうやって説明するの?
2017/12/11(月) 08:56:14.04ID:DFoAuevB
汎用ライブラリにでもぶち込むならともかく
こんな枝葉までクラスにされるとソースの粒度に統一感がでない
ステータスなんかクラスにすんなよ
ドキュメント書くのが面倒くせえだろ
それはイコール他人に説明する手間が増えてることだと気づけよ
どーせドキュメント書かないんだろお前馬鹿だから
2017/12/11(月) 09:36:16.99ID:SJ7HWrxD
他人に説明するためのドキュメントは確かに書かないな
ソース見たほうが早いし間違いがない

ソースコードが設計書である

俺が馬鹿かどうかに関係なく、
アジャイルやGOAでやるとどこでもそうでしょ
2017/12/11(月) 09:38:16.34ID:LDcEcB6H
>>466
ワケのわからんソース書くやつに限ってお前みたいなこと言うのな
2017/12/11(月) 09:41:22.91ID:ibPW1Iwl
ちょっと昔な感じだな
今は当たり前にドキュメントを書いてる時代だと思うけど
2017/12/11(月) 09:43:28.23ID:oxZtEftd
はいはいご立派ご立派
2017/12/11(月) 09:48:35.34ID:kESkT9Ub
おはようございます。(改行大杉で怒られたので行間を詰めています。

現在押し付けられて困っていることがありご教示いただければと思っております。
環境:フレームワーク4.71 + MVCフレームワーク5OS:Win2012

現在上記環境で動いているシステムがあり、
いくつかのリクエスト文字列と画像ファイル1つをマルチパートで受け取るシステムがあります。

今回、アンドロイド側のJAVAアプリからデータをマルチパートでPOSTしてくる予定だったのですが
時間不足で実装できないと言われ、データを以下のように送ると言ってきています。
(AndroidといえどJavaと同様なのでマルチパートのOutputStreamを作成して送ってくるだけだと思うのですが…。)
1.ファイルをバイト配列に変換
2.そのバイト配列をBase64エンコード
3.最終的にUTF-8の文字列にして通常のリクエスト文字列として送信
上記の仕様だそうです。
そこで上記の逆手順を…と思い
考えれる範囲で
1.リクエスト文字列をUTF-8バイト配列に変換
2.そのバイト配列をChar[]に変換
3.Char[]をFromBase64CharArrayでバイト配列に変換
とやってみたのですが
System.FormatException: 入力は有効な Base-64 文字列ではありません。
上記例外が当然のように発生します。
単純にアンドロイド側からBase64で送ってもらえればそのままデコードできるのですが
それも突っぱねられて困っています。
そもそもこの逆変換が技術的に不可能なようであれば相手側に強く言うこともできるのですが
その根拠が示せず言い出せません。
1.そもそも可能なのか?
2.手順的にはどのようにするのがよいのか
ヒントだけでも構いませんのでご教示いただければと思っております。
以上です。
2017/12/11(月) 09:54:06.70ID:LDcEcB6H
>>470
欲しい形の文字列とどう違うのか比較してみろよ
2017/12/11(月) 10:11:54.42ID:kESkT9Ub
>>471
ありがとうございます。

あぁ、なるほど!
該当ファイルをBase64文字列にして
その差を比較してみて両者が合うように変換していってみる
ということですね。
ちょっとコツコツやってみることにしてみます。
2017/12/11(月) 11:07:13.45ID:jHA/gkIg
>>470
リクエスト文字列を直接Char[]にせずバイト配列にいったん変える意味が分からない
リクエスト文字列がBASE64の文字列でなければFromBase64CharArrayは使えない
https://msdn.microsoft.com/ja-jp/library/vs/alm/system.convert.frombase64chararray(v=vs.71).aspx/html
2017/12/11(月) 12:02:38.34ID:0NyrcvQf
switchを無くせって話、WPFとかのMVVMにちょっと似てるね

どっちの場合も原理主義者が主張するような美しい理念がワークするのは、
ある一定の条件というか閾値を超える事例だけであって、それ以外の場合は
かえって可読性とか保守性とかが低下すると思うんだけど、原理主義者がそういう現実を
無視して何にでも適用可能な万能の方法みたいにごり押ししてる感がある
2017/12/11(月) 12:11:33.55ID:SaVPDOly
多少冗長になっても1つのルールに沿って全部書いた方が読みやすいだろ
2017/12/11(月) 12:12:00.53ID:LDcEcB6H
もういい加減組めちまってる奴は
次の課題を自分で探さないといけない

プログラムスキルは組めるようになったら
そこでMaxなんだよ
さっさと次の課題を探さないから
どーでもいいことが意味ありそうに思えてくる
2017/12/11(月) 12:58:53.47ID:WHbaikY8
>>378みたいなケースでswitchをなくせ
って言うのはそりゃそうだなって思うけど
そもそも>>378の最初の方の組み方がおかしいだけでenumの問題じゃない
それを>>378の例だけでswitchをなくせと言うならまだしもenumなくせとか言い出すから頓珍漢なことになってるだけ
2017/12/11(月) 13:49:25.47ID:jxfuchh+
>>743
レスありがとうございます。
相手が手順的にBASE64のバイト配列をUTF8文字列にして送ってくるようだったのでその手順が必要なのかな…と思いまして。
そもそも何故バイト配列からBASE64の文字列にダイレクトにしなかったのかと…。おもいつつです。
2017/12/11(月) 15:28:30.74ID:MTsA4uB/
>>470
元の仕様
1.ファイルをバイト配列に変換
バイト配列ができる
2.そのバイト配列をBase64エンコード
ファイルをBase64エンコードした文字列ができる(仕様上UTF-8でもシフトJISでも同じ)
3.最終的にUTF-8の文字列にして通常のリクエスト文字列として送信
これが何の変換かわからない(2.の理由により必要がない)

まず元の仕様を勘違いしていないか?
その上で逆手順のテストコードバグっているから不必要にややこしくなってる
2017/12/11(月) 15:39:40.21ID:FZFaQSBJ
ファイルをバイト配列に格納→をBase64に変換

Base64をバイト配列に変換→バイト配列をファイルとして保存
2017/12/11(月) 15:45:33.14ID:MTsA4uB/
>>470
あとBASE64の文字列の長さは4の倍数でConvert.FromBase64CharArrayにそれ以外の長さのChar[]を指定するとエラーになる
不足分を自分で埋める('='で埋める)必要があればそれもやらないと
2017/12/11(月) 16:00:32.40ID:JAdbtKtz
多分UTF-8のBOMの有無でずれているんだろうな
手順がいくら増えようが不可逆になることはない
2017/12/11(月) 17:48:13.13ID:s+GYIw+B
>>477
誰もenum無くせとは言ってないぞ
ドメインクラスをenumで表現するなって言ってる
2017/12/11(月) 18:27:40.38ID:sMdN9sff
ドメインが理解出来ていないからすれ違いのままなのかな
2017/12/11(月) 19:55:13.88ID:WHbaikY8
>>483
お前が誰か知らんけど

>>376
> ダメとは言わないがコード整理するとenumが自然と消える

とか言ってたアホがいるって話
2017/12/11(月) 20:33:38.88ID:hCIPbzdz
>>485
外人?
ダメともなくせとも言ってないじゃん
2017/12/11(月) 20:53:07.48ID:WHbaikY8
はいはい、言葉尻にしか反論できないってことね
可哀想だな w
2017/12/11(月) 22:32:51.43ID:g6aSF5Tx
やれやれ
2017/12/11(月) 22:54:45.84ID:Mf9o9uwW
あれあれ
これは言葉尻ではない気がする
2017/12/11(月) 22:59:42.23ID:SJ7HWrxD
goto文をなくせの頃から何にも変わってないな

gotoをなくせ
enumをなくせ
switchをなくせ
シングルトンをなくせ
ヘルパークラスをなくせ

一応どれも正しい
間違ってはいない

でもこういうルールは別に守らなくてもいい
どうでもいいルールなんだよ

DRY原則とかOpen/Close原則とかの設計原則の方がより重要あってね
2017/12/11(月) 23:06:06.50ID:+NqpgsqU
どっちでもどうでもいいよ
どうせ動くんだし
テストをしっかりすればいいだけ
2017/12/11(月) 23:22:47.89ID:Mf9o9uwW
gotoとenumの間にはかなり差がある気がする
前方へgotoは絶対悪だから使用厳禁
ドメインのenumと同じかw
もうちょっと緩いと思うが
switchはパターンマッチとして使うのは推奨なご時勢だけどC#のswitch構文は力不足だね
2017/12/11(月) 23:36:59.61ID:izyLx6FJ
gotoは後方への方が凶悪だろ
前方だけに使う分にはbreakやtry-catchと大差ない
494493
垢版 |
2017/12/11(月) 23:40:04.94ID:izyLx6FJ
書いてから気付いたが前方参照の意味での前方か
失礼
495デフォルトの名無しさん
垢版 |
2017/12/11(月) 23:43:50.74ID:wiZ77PPl
>>490
ルールと呼ぼうが原則と呼ぼうが本質は何も変わらんよ
要するにバカの暴走を制限する為の足枷でしかないw
2017/12/11(月) 23:54:41.55ID:SJ7HWrxD
>>495
〇〇をなくせというルールが馬鹿にたいする足枷でしかないのは全くその通り
だから俺みたいな賢人にはどうでもいい

逆に馬鹿に設計原則は理解出来ないだろう
SOLID原則が理解出来るならそいつは馬鹿ではない
497デフォルトの名無しさん
垢版 |
2017/12/12(火) 00:01:45.14ID:98iDbaWn
>>496
表面的な理解で原理主義に陥いってしまう奴は沢山いるし
本質的にそいつはバカなんだと思うよw
それは理解してないのだと言われればそれまでだがw
2017/12/12(火) 00:04:06.99ID:4TJt3MwM
質問と関係ないレスどこまで続けんの
相談室行けよ
2017/12/12(火) 00:13:24.19ID:Vo2kP02L
バカにされて色々悔しかったんだろ、察してやれや
500デフォルトの名無しさん
垢版 |
2017/12/12(火) 00:26:32.44ID:98iDbaWn
抽象的な話になると必ずこういうレスがつくなw
これもバカの典型w
2017/12/12(火) 01:19:52.30ID:sZfK5OGe
enum不要っていう馬鹿らしい主張は全然聞かない
2017/12/12(火) 01:31:17.45ID:/hFzA9NO
バカスレ
503デフォルトの名無しさん
垢版 |
2017/12/12(火) 01:33:06.37ID:lIsHmOMn
初心者用スレで難しい話すんなよ
俺みたいな趣味グラマーが楽しめないだろ
2017/12/12(火) 02:08:48.08ID:YqkrRdmr
しゅみません
2017/12/12(火) 02:13:45.88ID:5Qo60rlq
しゅき
2017/12/12(火) 05:04:47.87ID:Vo2kP02L
>>500
必ず?
今まで何度も辛い目に逢ったのかな? w
2017/12/12(火) 09:32:06.37ID:enzDDAPg
10年以上いたら辛いこともあるだろ
2017/12/12(火) 09:55:36.90ID:B9ezHy21
>>506
一晩越してもまだ悔しいんかw
2017/12/12(火) 13:01:20.73ID:55mcEBCK
>>508
お前がな w
2017/12/12(火) 21:31:34.33ID:CwRQgOlO
tensorflow+keras+c#で
エロ画像を自動分類するソフトを
作って欲しいと頼まれたんだけど
c#から出来そうですか?

参考になるサイトないですか?
2017/12/12(火) 21:36:58.22ID:Hba1R6el
特徴量でググりまくれ
2017/12/12(火) 21:52:35.56ID:NQyVP+w1
>>510
C#以前に個人レベルじゃ無理です
そういうことはデカいところに任せましょう
2017/12/12(火) 21:57:23.48ID:CwRQgOlO
>>512
日経ソフトウェアの記事で
桜、ヒマワリ、バラの判別をやってる
プログラムがあるんで
これをエロ画像に置き換えて
c#からできればいいかなぁ?と
2017/12/12(火) 22:03:01.97ID:+ghxhmVd
エロがそんな単純だと思うなよ
2017/12/12(火) 22:03:38.97ID:NQyVP+w1
>>513
内容次第だと思うが何をどう分類したいのか?がはっきりしないと
分類できない


ひまわり
バラ
の様に特徴が特定しやすい分類なのか?
2017/12/12(火) 22:06:27.53ID:yoDcG/vu
>>513
アルゴリズムを作るところからやってみて話はそれから
とりあえずC#にそんなライブラリは無いので他のスレへどうぞ
2017/12/12(火) 22:06:56.72ID:CwRQgOlO
>>515
人妻、NTR、レ○プ
2017/12/12(火) 22:08:56.23ID:+ghxhmVd
絵で区別できねーだろそれ
2017/12/12(火) 22:09:56.75ID:CwRQgOlO
>>518
でもなんとなくわかるだろ?
人間だと
2017/12/12(火) 22:12:39.20ID:+ghxhmVd
無理 付いてる字幕次第で印象が全然変わるから
2017/12/12(火) 22:14:01.82ID:NQyVP+w1
>>517
マジで言ってるのか?
無理無理無理
2017/12/12(火) 22:15:14.51ID:yoDcG/vu
>>519
なるほど、お前には無理だ
2017/12/12(火) 22:16:50.37ID:+ghxhmVd
プログラム上で可能なのはせいぜい、
顔の輪郭に対する「目の位置」の違いで、大人か子供かを判別するとか
(二次絵では顔に対して大人は目を上寄りに、子供は目を下寄りに描かれるケースが多い)
そんなもんだろう

んで、どっちにせよ言語仕様の話でなく
画像解析という専門分野行きの話になるのでスレチ
2017/12/12(火) 22:17:02.32ID:CwRQgOlO
大丈夫だ
ディープインパクトならやってくれる
巨乳にニットセーターってもう人妻だろ
って結論ぐらい出せるだろ
2017/12/12(火) 22:18:12.64ID:NQyVP+w1
>>523
ディープラーニングはそういうのじゃない分類ができる

でも人間でも一枚絵を見て判断できないのはほぼ無理
2017/12/12(火) 22:18:48.48ID:yoDcG/vu
>>524
頭にディープインパクトして二度と来るな
2017/12/12(火) 22:22:07.89ID:ZGog+EYK
webでそういう判定してくれるサービスありそうだけどね

そういや俺もwebとかネットワーク関係まったく触ったことないんだけど、
C#でもVBでもいいけどそっち系のチュートリアルってどこかにある?

洋書は知らんけど本はほとんどないよね
528デフォルトの名無しさん
垢版 |
2017/12/12(火) 22:23:51.41ID:/hFzA9NO
試しに学習させてみればいいやんけ
これはNTR、これは人妻、これはレ●プ、(以下略)
こんなデータを大量に与える
そして最後にテスト画像を見せて当てられるかどうか
2017/12/12(火) 22:24:07.38ID:+ghxhmVd
Webサービスを展開する話なら、言語がどうこうっつーより
サーバOSとか機器環境とかの話になっちゃうからなあ
2017/12/12(火) 22:24:09.98ID:CwRQgOlO
>>527
安定するの待ってるんだろうな
機械学習と言ったらコレって確定するの
2017/12/12(火) 22:40:24.36ID:NQyVP+w1
ディープラーニング、機械学習の本は最近ぼこぼこ出てるよ
内容は似たり寄ったり
地元の図書館にも充実とまではいかないけど今年だけで3冊ぐらい入った

雑誌もディープラーニング特集すると部数が伸びるらしいのでよく特集される
2017/12/12(火) 22:57:04.37ID:wz4D/2fS
いい加減クラウドじゃ稼げないからディープラーニングに換えただけだろう
出版しても売れなきゃ返本の山だしな
2017/12/12(火) 23:32:02.56ID:qioa7JjJ
AWSってどこまでガチなの?
書籍も少ないし様子見してた
2017/12/12(火) 23:36:49.62ID:mXOR9ERV
今更すぎるだろ
エンタープライズでも驚異的な勢いで伸びてて、あと5年もしたらオンプレサーバーなんかほぼ消滅するレベルだぞ
2017/12/12(火) 23:42:13.92ID:enzDDAPg
何を指標にガチってるのか分からんが
AWSだけで100億ドル超を売り上げるくらいには使われてるだろ
2017/12/12(火) 23:52:57.04ID:qioa7JjJ
まあ、企業向けのサーバーなんしょ?
閉じたネットワークの業務アプリばっかで今までもあんまり関わり無かったからなぁ
2017/12/13(水) 00:03:21.24ID:prgZVef7
>>536
イントラのクラウド移行も凄まじい勢いで進んでるぞ。
AWS上にプライベートクラウドを設定してVPNで接続するだけ。
慣れてりゃ一日ポチポチしたら出来上がり
2017/12/13(水) 00:14:37.13ID:7y6FaNAn
SIのインフラ屋でコード書けない奴はガチでやばいよ
従来のインフラ構築運用なんかクラウドじゃ全く商売にならん
インフラはもはや、アプリエンジニアや社内SEが片手間にポチポチやるもの
2017/12/13(水) 00:16:41.76ID:n4AZEwrx
テンプレ理解できないやつ何人いるの?
2017/12/13(水) 00:21:59.75ID:XGmIS6JF
ルールを無視する輩とは一緒に仕事したくないよな。ホント
541デフォルトの名無しさん
垢版 |
2017/12/13(水) 02:36:04.24ID:celmGK9q
すぐに底辺の職業プログラマが談話始めやがる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況