X



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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
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
0461デフォルトの名無しさん
垢版 |
2017/12/11(月) 08:37:46.08ID:PAoZtWNN
一晩経っても負け惜しみ言ってるやつ居てわろた
せめて反論したらどうなの?

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

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

俺が馬鹿かどうかに関係なく、
アジャイルやGOAでやるとどこでもそうでしょ
0468デフォルトの名無しさん
垢版 |
2017/12/11(月) 09:41:22.91ID:ibPW1Iwl
ちょっと昔な感じだな
今は当たり前にドキュメントを書いてる時代だと思うけど
0470デフォルトの名無しさん
垢版 |
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.手順的にはどのようにするのがよいのか
ヒントだけでも構いませんのでご教示いただければと思っております。
以上です。
0472デフォルトの名無しさん
垢版 |
2017/12/11(月) 10:11:54.42ID:kESkT9Ub
>>471
ありがとうございます。

あぁ、なるほど!
該当ファイルをBase64文字列にして
その差を比較してみて両者が合うように変換していってみる
ということですね。
ちょっとコツコツやってみることにしてみます。
0474デフォルトの名無しさん
垢版 |
2017/12/11(月) 12:02:38.34ID:0NyrcvQf
switchを無くせって話、WPFとかのMVVMにちょっと似てるね

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

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

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

Base64をバイト配列に変換→バイト配列をファイルとして保存
0481デフォルトの名無しさん
垢版 |
2017/12/11(月) 15:45:33.14ID:MTsA4uB/
>>470
あとBASE64の文字列の長さは4の倍数でConvert.FromBase64CharArrayにそれ以外の長さのChar[]を指定するとエラーになる
不足分を自分で埋める('='で埋める)必要があればそれもやらないと
0482デフォルトの名無しさん
垢版 |
2017/12/11(月) 16:00:32.40ID:JAdbtKtz
多分UTF-8のBOMの有無でずれているんだろうな
手順がいくら増えようが不可逆になることはない
0485デフォルトの名無しさん
垢版 |
2017/12/11(月) 19:55:13.88ID:WHbaikY8
>>483
お前が誰か知らんけど

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

とか言ってたアホがいるって話
0490デフォルトの名無しさん
垢版 |
2017/12/11(月) 22:59:42.23ID:SJ7HWrxD
goto文をなくせの頃から何にも変わってないな

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

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

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

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

逆に馬鹿に設計原則は理解出来ないだろう
SOLID原則が理解出来るならそいつは馬鹿ではない
0497デフォルトの名無しさん
垢版 |
2017/12/12(火) 00:01:45.14ID:98iDbaWn
>>496
表面的な理解で原理主義に陥いってしまう奴は沢山いるし
本質的にそいつはバカなんだと思うよw
それは理解してないのだと言われればそれまでだがw
0500デフォルトの名無しさん
垢版 |
2017/12/12(火) 00:26:32.44ID:98iDbaWn
抽象的な話になると必ずこういうレスがつくなw
これもバカの典型w
0503デフォルトの名無しさん
垢版 |
2017/12/12(火) 01:33:06.37ID:lIsHmOMn
初心者用スレで難しい話すんなよ
俺みたいな趣味グラマーが楽しめないだろ
0510デフォルトの名無しさん
垢版 |
2017/12/12(火) 21:31:34.33ID:CwRQgOlO
tensorflow+keras+c#で
エロ画像を自動分類するソフトを
作って欲しいと頼まれたんだけど
c#から出来そうですか?

参考になるサイトないですか?
0513デフォルトの名無しさん
垢版 |
2017/12/12(火) 21:57:23.48ID:CwRQgOlO
>>512
日経ソフトウェアの記事で
桜、ヒマワリ、バラの判別をやってる
プログラムがあるんで
これをエロ画像に置き換えて
c#からできればいいかなぁ?と
0515デフォルトの名無しさん
垢版 |
2017/12/12(火) 22:03:38.97ID:NQyVP+w1
>>513
内容次第だと思うが何をどう分類したいのか?がはっきりしないと
分類できない


ひまわり
バラ
の様に特徴が特定しやすい分類なのか?
0516デフォルトの名無しさん
垢版 |
2017/12/12(火) 22:06:27.53ID:yoDcG/vu
>>513
アルゴリズムを作るところからやってみて話はそれから
とりあえずC#にそんなライブラリは無いので他のスレへどうぞ
0523デフォルトの名無しさん
垢版 |
2017/12/12(火) 22:16:50.37ID:+ghxhmVd
プログラム上で可能なのはせいぜい、
顔の輪郭に対する「目の位置」の違いで、大人か子供かを判別するとか
(二次絵では顔に対して大人は目を上寄りに、子供は目を下寄りに描かれるケースが多い)
そんなもんだろう

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

でも人間でも一枚絵を見て判断できないのはほぼ無理
0527デフォルトの名無しさん
垢版 |
2017/12/12(火) 22:22:07.89ID:ZGog+EYK
webでそういう判定してくれるサービスありそうだけどね

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

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

雑誌もディープラーニング特集すると部数が伸びるらしいのでよく特集される
0532デフォルトの名無しさん
垢版 |
2017/12/12(火) 22:57:04.37ID:wz4D/2fS
いい加減クラウドじゃ稼げないからディープラーニングに換えただけだろう
出版しても売れなきゃ返本の山だしな
0534デフォルトの名無しさん
垢版 |
2017/12/12(火) 23:36:49.62ID:mXOR9ERV
今更すぎるだろ
エンタープライズでも驚異的な勢いで伸びてて、あと5年もしたらオンプレサーバーなんかほぼ消滅するレベルだぞ
0535デフォルトの名無しさん
垢版 |
2017/12/12(火) 23:42:13.92ID:enzDDAPg
何を指標にガチってるのか分からんが
AWSだけで100億ドル超を売り上げるくらいには使われてるだろ
0536デフォルトの名無しさん
垢版 |
2017/12/12(火) 23:52:57.04ID:qioa7JjJ
まあ、企業向けのサーバーなんしょ?
閉じたネットワークの業務アプリばっかで今までもあんまり関わり無かったからなぁ
0537デフォルトの名無しさん
垢版 |
2017/12/13(水) 00:03:21.24ID:prgZVef7
>>536
イントラのクラウド移行も凄まじい勢いで進んでるぞ。
AWS上にプライベートクラウドを設定してVPNで接続するだけ。
慣れてりゃ一日ポチポチしたら出来上がり
0538デフォルトの名無しさん
垢版 |
2017/12/13(水) 00:14:37.13ID:7y6FaNAn
SIのインフラ屋でコード書けない奴はガチでやばいよ
従来のインフラ構築運用なんかクラウドじゃ全く商売にならん
インフラはもはや、アプリエンジニアや社内SEが片手間にポチポチやるもの
0541デフォルトの名無しさん
垢版 |
2017/12/13(水) 02:36:04.24ID:celmGK9q
すぐに底辺の職業プログラマが談話始めやがる
0542デフォルトの名無しさん
垢版 |
2017/12/13(水) 03:35:29.20ID:Aa4rKi8+
馬鹿の相手する馬鹿とどっこいどっこいだわ
両方殺すにはどうしたらいいか質問していい?
0545デフォルトの名無しさん
垢版 |
2017/12/13(水) 09:49:18.40ID:5hkNOkMK
勉強のために作ったアプリの単体テスト始めたけどテストコードすら書けない
やっぱコピペばっかで作れただけで何も身に付いてないんだなぁ
データベースから取ってきた値の比較とかどうやるんだよ…
0546デフォルトの名無しさん
垢版 |
2017/12/13(水) 09:57:31.43ID:WF2IXduz
>>545
データベース読むとこのテストはモック使うんだよ。
0547デフォルトの名無しさん
垢版 |
2017/12/13(水) 10:03:04.23ID:5hkNOkMK
>>546
モックってダミーみたいなやつのこと?
せっかく教えてもらったのに何が便利になるのか全然イメージ出来ない…
0548デフォルトの名無しさん
垢版 |
2017/12/13(水) 10:05:50.55ID:7X3tjs6V
>>547
用語教えてもらっただけだからわからなくても仕方がない
勉強するのなら自分で使うようなツール作れ。簡単なやつでいいぞ
少しずつ機能増やしていくようにしたらスキルが上がっていく
0549デフォルトの名無しさん
垢版 |
2017/12/13(水) 10:11:11.76ID:WF2IXduz
>>547
グーグル先生にMoqを教えて貰え
0550デフォルトの名無しさん
垢版 |
2017/12/13(水) 10:14:58.04ID:1Q6K9tEb
Aの値を求める

AとBが等しいか
1等しくないなら
Aの値を変更して初めに戻る
2等しくなくて3回Aの値を変えている
失敗で終了
3等しい
正常に終了


というプログラムを作りたいのですが
どう条件分岐や反復を使用していいかわかりません
Aの値の変更は他アプリへの入力で、Aの値を求めるというのは他アプリの状態です
アドバイスお願い致します
0552デフォルトの名無しさん
垢版 |
2017/12/13(水) 10:24:58.47ID:7X3tjs6V
>>550
C#以前の質問だと思うしいろいろあるんだけど
int count=3;
while (count>0)
{
[Aの値をGet]
if (B==A) break; //正常に終了
count--;
}
if (count>0) {[正常に終了}]
if (count==0) {[3回とも失敗]}
0553デフォルトの名無しさん
垢版 |
2017/12/13(水) 10:29:29.60ID:1Q6K9tEb
>>552
ありがとうございます!
これでいきます!
0554デフォルトの名無しさん
垢版 |
2017/12/13(水) 12:09:08.61ID:zXzMZXIu
いやいや人の回答にケツつけるのもあれだけど、普通にforループ使った方が分かりやすいよw
だって要するに3回までリトライするってだけの話でしょw

const int rertryCount = 3;
A a;
for (int i = 0; i < retryCount; i++)
  if((a = GetA()) == B) return true; //成功
return false; //失敗
0555デフォルトの名無しさん
垢版 |
2017/12/13(水) 12:11:06.80ID:zXzMZXIu
const int rertryCount = 3;
これはちょとミスリーディングか。
こだわるなら

const int maxRetryCount = 3;
こっちの方がいいね
0556デフォルトの名無しさん
垢版 |
2017/12/13(水) 12:16:44.81ID:ubNNZos/
文末の無駄煽りwイラネ
0557デフォルトの名無しさん
垢版 |
2017/12/13(水) 12:21:20.67ID:WF2IXduz
宿題への解答はスルーで
0560デフォルトの名無しさん
垢版 |
2017/12/13(水) 18:22:17.80ID:celmGK9q
getA()=Bじゃダメな理由は?
■ このスレッドは過去ログ倉庫に格納されています

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