X



ふらっと C#,C♯,C#(初心者用) Part130 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001ななしぃ♯ 転載ダメ©2ch.net (ワッチョイ 93aa-SrFS)
垢版 |
2017/07/18(火) 06:40:45.47ID:mH9qbH+m0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

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

■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

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

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0563デフォルトの名無しさん (アウアウウー Sa85-JJVS)
垢版 |
2017/08/20(日) 12:08:47.92ID:IkwItTHKa
>>559
だからこそ外に出したほうがいいんではないかと普通に思うんだけど
外に出しておけばほかのツールなどでも使えるし

馬鹿な初心者はなんで食い下がりたがるんだろうか?という疑問はいつか解消されるのか
0564デフォルトの名無しさん (アウアウイー Sacd-4GJO)
垢版 |
2017/08/20(日) 12:20:57.09ID:TOwE0eF8a
なんかしょうもないことで揉めてるなあ。
こんなの要件その他しだいのケースバイケースでしょ。

まさか文字列や数値のリテラルまで否定する人はいないわけで、
そういう感覚で複雑なデータをコードに直書きした方が好都合な場合もそりゃないことはないと思うよ。

いつでもどんな場合もそうした方がいいと言ってるならお馬鹿さんだけどさ
0566デフォルトの名無しさん (ワッチョイ f932-jLVh)
垢版 |
2017/08/20(日) 12:40:50.18ID:3qMRQsNA0
c#でjsonにシリアライズしたいんですが、キーは文字、値は文字と数字としたい場合
どのような型を使えばいいのでしょうか?

例えば、jsonの表記を以下のようにしたいということです。

{
"test": [
{
"a": "aaaa",
"b": 123456789,
"c": "ccc",
"b": "987654321,
},
{
"a": "aaaa",
"b": 123456789,
"c": "ccc",
"b": "987654321,
}]
}
0572デフォルトの名無しさん (ワッチョイ 5bc8-faiX)
垢版 |
2017/08/20(日) 15:36:32.78ID:Z/sZ4AZQ0
>>563
データを別の環境から使いたいならJSON.NETでも使えばいいだけ
しかしJSONは冗長だから管理には向かないが
CSVみたいなのも自分が何の値を触ってるのかわからなくなりがちだから難しい
だから元データにはC#&VSを使うべき

タプルのいいところはもうひとつあるな こっちの方が重要かもしれないが
コードでデータを書こうとする場合、データの型とプログラムに依存関係が発生してしまう場合がある
C#でデータを書くには型が必要で プログラムで処理するにも入力する型が必要
「プログラムは再利用するものだ」という観念があるとここで型を使いまわして依存関係が発生してしまう
プログラムで処理したい型に合わせて元データを書いていると、プログラムの方の仕様変更で型が変わっても元データをいじるわけにはいかず対応が難しくなる
もともとデータはデータであってデータの汎用性を最大にするためにも変更に強くするためにもプログラムと依存関係は持つべきじゃない
依存関係はコンパイルにも影響する
しかし同じ型を二つ作ってやりとりするのはめんどくさかった
(まあJSONやCSVを使える型に直すよりはずっと楽だが)

この問題はタプルで解決する
タプルの型が使いまわせるうちはそのまま渡せばいいし
使いまわせなくなったら必要な変換コードを書けばいい
0579デフォルトの名無しさん (ワンミングク MMd3-bETP)
垢版 |
2017/08/20(日) 16:01:29.91ID:dgrWF/1pM
>>572
素晴らしいアイデアだ
是非とも世界中に広めてくれ
ちなみにこのスレのみんなはもう君の素晴らしいアイデアは理解したから
別のコミュニティに行って啓蒙した方がいいと思うぞ
業界のデファクトスタンダードになったら業務にも導入するよ
0583デフォルトの名無しさん (アウアウイー Sacd-eC16)
垢版 |
2017/08/20(日) 16:18:08.23ID:zHhVJRDSa
>>581
せめて客と打ち合わせして
誰向けにどんな頻度で読み込むのか
相談しろよ
しかしやはりテスト工数とか超無駄
頼んでもいねー機能が入っちゃってるし
コードレビューやるとこだと
会議室静まり返るわ
0592デフォルトの名無しさん (ワッチョイ 2ba2-oL0b)
垢版 |
2017/08/20(日) 17:57:07.82ID:lAN4MCjV0
Linux出来ないってなんだよ
0603デフォルトの名無しさん (ワッチョイ b111-m0BB)
垢版 |
2017/08/20(日) 20:32:10.39ID:TNLMpcMk0
C#はバージョン毎に結構あれこれ追加されて常識が変わってくからな
最新バージョンを追い掛け続けてる人とそうでない人で、話が通じなくなる事もしばしば

俺も割りと4.0くらいで頭の中が止まってるかもしれない
0610デフォルトの名無しさん (ワッチョイ 2b61-oL0b)
垢版 |
2017/08/20(日) 21:38:30.65ID:woceXaSP0
>>609
たとえば画像データだと画素データだけでなくチャンネル数や各チャンネルの大きさ、縦と横の(特に横)の長さが必要になる
これだけで例えばバイト配列といくつかのintが必要になる
0611デフォルトの名無しさん (アウアウイー Sacd-4GJO)
垢版 |
2017/08/20(日) 21:53:44.36ID:9QhbSfl9a
>>610
全然適切な例になってない気が
それ、明らかにクラスまたは構造体にまとめるべきデータでしょ

まあ、一つの型にまとめたくない複数のデータを一つのメソッドから返したい、
なんて率直に言ってうんこの臭いしか感じないね。
0613デフォルトの名無しさん (ワッチョイ 9996-jLVh)
垢版 |
2017/08/20(日) 22:07:06.65ID:lGh3jxXl0
別の場所でも入力にも使うようならクラスなりで定義すべきだけど
なんちゃらResultとか名前を付けたくなるような
特定の場所の戻り値でしか使わないデータのまとまりはタプルって感じかなあ
0614デフォルトの名無しさん (ワッチョイ 61e3-jLVh)
垢版 |
2017/08/20(日) 22:09:47.01ID:PJX+MB9c0
一連のDBと入力の整合性チェックをまとめたとき
処理途中でとってきたDBの値を使いまわしたい場合とか

Result 処理途中でとってきたDBのDtoいっぱい = checkなんちゃら(画面入力.id, 画面入力.数量)

とかのためにクラスつくるのがなんとなくイヤで
タプルで楽したくなる
0619デフォルトの名無しさん (ワッチョイ b111-m0BB)
垢版 |
2017/08/20(日) 22:45:48.34ID:TNLMpcMk0
>>617
環境変えるとビルド結果のバイナリが変わってしまうかも知れない、て不安があるとどうしてもな

C#の話じゃないけど、Borland C++ Compiler(5.5.1)のコマンドライン版は問題なく使えるのに
後発の2006年版Turbo C++に含まれてる奴は、リソースコンパイラにバグがあってコマンドラインから呼ぶと正常に機能せずにしばらく頭を捻るとか
そういうしょーもない例も過去にある
0638デフォルトの名無しさん (ブーイモ MM35-I7lA)
垢版 |
2017/08/21(月) 21:28:45.58ID:g1AySmchM
>>637
MSのサーバーがやられてバイナリが感染する可能性を考慮すると
Windows UpdateもVS本体のオンラインインストールも、あらゆるダウンロード行為が何一つ安全でなくなるので、それは考慮しなくていいだろう
その上でNuGet特有のリスクは、第三者によるレビューなしに誰でもパッケージを登録でき、登録した本人であればいつでもそれを更新できること
例えばJSON.NETの作者がこっそりマルウェアを仕込んだらとんでもない被害が出るだろうね
その点についてMSが保証するのは他人のなりすましによる登録や更新が行えないことだけで、作者の人格を信用するかどうかはお前自信の責任
0647デフォルトの名無しさん (ワッチョイ 81e6-faiX)
垢版 |
2017/08/23(水) 00:34:13.58ID:LJ4nsAN90
以下のようなHogeクラス型を定義して、List<Hoge> hoges というリストがあるとします。
class Hoge{
public string Name{ get; set; }
public int Age { get; set; }
public int Point { get; set; }
}

この時、hoges の各リストのAgeやPointの合計を1行で取れるクールなLinqを教えてください!
foreachなどでくるくるするしかないでしょうか?
0656デフォルトの名無しさん (アウアウカー Sa1d-itr+)
垢版 |
2017/08/23(水) 18:41:09.25ID:Afml/4LQa
結局やらなきゃ忘れるしな
こうすれば出来るって頭の片隅にでもあればok
もちろん知ってるに越したことはない
0662デフォルトの名無しさん (アウアウイー Sa2d-w74m)
垢版 |
2017/08/24(木) 02:24:29.26ID:Pz57oiAha
うまく動かないときに
ループのときみたいに
ハイじゃあどうして第一要素にゼロが入ってるんでしょうか?
的な追い方ができない
いっせーのせ!
で動かして途中経過が皆無なのは辛い
■ このスレッドは過去ログ倉庫に格納されています

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