ふらっと 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/07(木) 21:12:08.87ID:qnTgxbKH
質問主はWebアプリに拘ってるわけじゃないけど
沢山のクライアントPCからWebサーバのフォルダを共有したくないからWebアプリが良いかな程度に思ってるだけだろ。
Webサーバ上に監視サービス作るのならWebアプリに拘る必要は無いし。
262デフォルトの名無しさん
垢版 |
2017/12/07(木) 21:19:32.52ID:lA04OzcH
>>260
>>193がバカだからね
仕方ないね

ファイルが生成されるまでタイムアウトしないAPIとか、1秒間隔のリクエストが多いとか、6000行のログとか
何もかも全てが意味不明だからね
どうしようもないね
2017/12/07(木) 21:21:02.83ID:p8nuhjj6
>>260
>>193と矛盾することは何も言ってないつもりだけどな
>>193>>259でいうBの部分の実装例を挙げてるだけであって、Aの部分については何も言及してないぞ
2017/12/07(木) 21:24:18.74ID:Is/SlhXg
悪いけどこれC#の話題なのかなあ?
2017/12/07(木) 21:29:45.67ID:EeTBbz6o
じゃあ会社でLINQを薦めようとしたら、その前にまずユニットテストを覚えさせなければと愕然とした話でいいのか
2017/12/07(木) 21:40:07.74ID:lfszpYB8
ソケット通信はstunnelで暗号化するんだよね?
2017/12/07(木) 21:46:02.79ID:G7lyLovK
>>263
そもそもAをどうのこうの言ってる奴は池沼の>>222ぐらいだろ w
2017/12/07(木) 23:37:45.38ID:gBefvYul
イベントの購読破棄って
どんなケースでも破棄されるように几帳面にやるものなの?

http://takachan.hatenablog.com/entry/2014/10/21/011333

これ見たら-=しなくても漏れないようなので
サボりたくなるんだけど

サボってはいけないケースとサボっていいケースがあるなら知っておきたい
2017/12/08(金) 02:03:25.04ID:cDyzbPRT
>>268
何やってるのかよー分からん記事だねw

イベントでリークが発生しうるのは相談室の方の97に書いてあるケースだけだと思う
それは違うって言ってる人もいるけど、たぶん何か勘違いしてるだけだと思うね
2017/12/08(金) 02:05:20.09ID:dE4K6487
{"status":"go","solution":{"Res":"0SpQ"},"endTime":1512663686}
っていうJSONデータがあって、その中のResの値をとりたいんですけど、


var seri = new DataContractJsonSerializer(typeof(recapres));
byte[] bytes = Encoding.UTF8.GetBytes(a);
var ms = new MemoryStream(bytes);
recapres info = (recapres)seri.ReadObject(ms);

ここまでは調べて書けたんですけど、
この先のResの値をとるコードの書き方がわかりません。
どのように記述すればいいのでしょうか?

solutionの部分は、
[DataMember]
public List<SOL> solution { get; set; }
としてしてます。
2017/12/08(金) 04:06:20.76ID:xohAuzUW
>>270
です。
調べる方法変えたらいけました
2017/12/08(金) 07:58:19.65ID:ahDNvKU9
>>269
サボってはいけないのはイベント発行側のライフサイクルが長いとき

サボっていいのは発行側と購読側のライフサイクルがほぼ同じとき

という理解でOK?
2017/12/08(金) 08:11:45.30ID:PpC6VnTr
>>268
このリンク先の人はイベントとGCを正しく理解してない
この人、他の記事もバカっぽいのばっかりだから初心者はこんなの見ちゃだめ

>>272
間違ってはいないけど、補足するなら
発行側より購読側のライフサイクルが長いときもサボっていい
参照の向きは必ず発行側→購読側なので、イベントハンドラの登録そのものは発行側の寿命には影響しない
フォームとボタンのように、たいていは購読側も発行側への参照を握り続けているので、結果的に寿命は一致するケースが多いんだけどね
274デフォルトの名無しさん
垢版 |
2017/12/08(金) 08:41:02.41ID:LOVuAI3k
>>273
SIerの中の人のブログだね
c#でメモリリークって「推して知るべし」
2017/12/08(金) 08:43:23.27ID:oxsZSnq/
>>262
193だけどなんで?
普通にロングポーリングの実装かと。
276デフォルトの名無しさん
垢版 |
2017/12/08(金) 09:32:30.34ID:eUH+zyLO
イベントとかUIしか使わんしUIはデザイナーが勝手にコーディングするからイベントなんて使わんな
2017/12/08(金) 09:40:52.12ID:2x5NCYhZ
へえ、すごいね
帰っていいよ
2017/12/08(金) 11:10:02.45ID:cJ57jE1N
+=を一切使わずに作るのか
コマンドバインディングを駆使する感じ?
それは確かに凄いな
2017/12/08(金) 11:28:41.60ID:7LHrgDvL
>>275
ロングポーリングの実装について勉強しといで
単にタイムアウトを無期限にする実装のことをロングポーリングとは言わない
2017/12/08(金) 11:44:45.00ID:oxsZSnq/
>>279
うん、実装次第だよね。
無期限か、プロキシに切られる寸前にするか、10分にするか、どうでも。
無期限はCouchDBのchange監視なんかは、ほっといたら無期限になるんじゃなかったっけ?
ログが大きくなったり他のを埋めるほどのリクエストは問題だと思うけど。特にイントラでの運用だと。
事例調べてきたらいいのになぁ
281デフォルトの名無しさん
垢版 |
2017/12/08(金) 12:25:41.51ID:IbEiOVbO
>>278
282デフォルトの名無しさん
垢版 |
2017/12/08(金) 12:27:34.90ID:IbEiOVbO
イベント使う機会ある?
2017/12/08(金) 12:44:05.29ID:M8mJAXMK
>>282
無い人はそれでいいよ
自分には〜いらないとか〜必要ないとかそういうこと言いあうスレじゃないんで
284デフォルトの名無しさん
垢版 |
2017/12/08(金) 12:53:05.93ID:eUH+zyLO
>>283
単純に興味がある
みんななにに使ってるだろう。
そもそも要らないとは一言も
2017/12/08(金) 12:56:22.31ID:n5uOCz3i
>>284
UIアプリつくったことないの?
イベントだらけやん
286デフォルトの名無しさん
垢版 |
2017/12/08(金) 12:58:10.32ID:eUH+zyLO
>>285
うん。UIしか俺も使わん。
それ以外にある?
UIのはデザイナが勝手にコーディングするからイベントに触れることがない。
2017/12/08(金) 12:58:14.04ID:PXTxgSdc
>>279
> 単にタイムアウトを無期限にする実装のことをロングポーリングとは言わない
そんなことを思ってるのは君だけ
マジでちょっと勉強してきた方がいいぞ
今だと単なるアホにしか見えてないし
288デフォルトの名無しさん
垢版 |
2017/12/08(金) 13:04:34.05ID:LezyuZlt
>>286
通信アプリとかデータが来たらオレオレイベント発生させる。
2017/12/08(金) 13:11:44.12ID:T81djMMQ
あらゆるクラスにログ出力のイベントつけちゃう
2017/12/08(金) 13:19:11.96ID:zPIj5vhG
ID変わってるかもですが、>>192です。

反応できてないですが、皆さんの議論は参考にさせて頂いています。

SignalRですか?少し調べてみたのですが、目的に合致しているかもしれません。
ですが、後だしなのですが、今回対象になっているサーバがframework 3.5で、
現在運用されているwebアプリはVS2008で開発されています。
ここに追加する形で考えているため、SignalRは使えません。

(別の場所に同じようなサーバがあり、こちらは去年立ち上げたばかりで、水平展開することになり、かつ、私が担当する事になったら是非ともSignalRなりを勉強したいと思っています。)


そこで、やはりTimerを使う事になるかなと思っているのですが、気になる点があるので教えていただければありがたいです。

ログが大きくなるとあるのですが、意識してなくてもログが記録されているものなのですか?
そのログはどこで確認でき、ログを残さなくすることはできないのでしょうか?
291デフォルトの名無しさん
垢版 |
2017/12/08(金) 13:23:25.17ID:LezyuZlt
>>290
IISのログの事だろうけど気にしなくても良いでしょ。
2017/12/08(金) 13:28:18.22ID:Xls5mA2Y
プロパティー変化時の〜Changedイベントは普通に多用するでしょう。

非同期処理完了をイベントで通知するのは非同期メソッドが出来たので
流行らなくなったね。
2017/12/08(金) 14:02:11.06ID:PpIHj1rp
最近はイベントも種類が増えたね
・x:Bindによるイベントバインディング
・EventAggregatorって言う集約イベント
・Rxや、その派生のReactiveProperty

従来型はあまり使わなくなったね。
2017/12/08(金) 14:10:42.44ID:M8mJAXMK
>>286
最初の質問は「イベント使う機会ある?」だったけど、相手によってどんどん変えるの?
動的にコントロール追加する時とかデザイナでできない
イベントが多重発生する状況のときは処理中に止めて終わったらイベントを再開する
他にもあるだろうけど自分が遭遇する機会無いのならそれでいいじゃん
>>290
質問続けるのならどこまでサーバー側をいじれるかも書いてほしい
一番簡単なのが他の人も書いているけどサーバー側でステータス用意して
クライアント側がそれを取りに行くだけの処理の時だから
2017/12/08(金) 14:16:37.32ID:yJmj+jOP
PerformanceCounterって、
OS起動直後からしばらく立たないと使えないとかの制限あるんですかね?
296デフォルトの名無しさん
垢版 |
2017/12/08(金) 14:45:49.73ID:IbEiOVbO
>>294
なんも変わってなくね
最初から「UIしか使わんやろ」オンリーですが?
297デフォルトの名無しさん
垢版 |
2017/12/08(金) 14:52:00.48ID:IbEiOVbO
>自分が遭遇する機会無いのならそれでいいじゃん
なにをそんなにイカってるのか分からんわ。
「イベントってUIしか使わなくなくね?イベントの使い道他になにがあるの?」
単純な疑問に突然キレられても困惑よ。
2017/12/08(金) 15:19:35.30ID:FTlzMntS
ここのスレの住人は「C#の〜要らなくね?」って意見に過敏だからなwwwww C#信者だから当たり前かなw
要らないとは言ってなくてもそう解釈されるんじゃよw
299デフォルトの名無しさん
垢版 |
2017/12/08(金) 15:22:00.68ID:XHPT3EtZ
あのさぁ、c#の#って要らなくねえ?
って言ってみる。
300デフォルトの名無しさん
垢版 |
2017/12/08(金) 15:37:29.35ID:NIv2jCgd
要りますよ、おじいちゃん。
301デフォルトの名無しさん
垢版 |
2017/12/08(金) 15:43:54.34ID:XHPT3EtZ
#を取ったら、オブジェクト指向もジェネリックスもラムダ式も例外もイベントも無くなって平和になるべ?
2017/12/08(金) 16:08:01.83ID:zPIj5vhG
>>294
失礼しました。
サーバは、frameworkのインストールとか、既存の動いているソフトをいじるとかはできないですが、
新たなソフト(Webでもローカルexeでも)を動かしたり、フォルダやファイルの操作は自由にできます。

>一番簡単なのが他の人も書いているけどサーバー側でステータス用意して
>クライアント側がそれを取りに行くだけの処理の時だから

自分に理解できない事は脳内でスルーしてしまっているかも。
これは別途、更新したファイルのリストを作っておくとかって事でしょうか?
確かに作成されたファイルを、各リクエスト(=開いてるブラウザ、ですよね?)毎のTimerイベントで行うのは非効率ですね。
私のレベルでは、サーバでローカルアプリを動かして、何らかのファイルなりDBに出力するくらいしか思いつきません。
Webアプリ内で、同等の事とかできればいいんでしょうけど。
2017/12/08(金) 18:12:13.39ID:oxsZSnq/
>>290
記録されてる。IISの設定次第。
残さないってのは、邪魔なログがある以上に困るのでやめて。
>>291
IISのログだけど、障害調査する側に回ったら、気にしてほしいと願うようになると思う。
2017/12/08(金) 18:55:14.76ID:Hk+pFmDF
C#だけの話では無いのですが、インスタンス作られたら自分の仕事するだけでフィールドもパブリックメソッドも無いクラスって、OOP的にはアンチパターンでしょうか
2017/12/08(金) 19:03:17.13ID:cJ57jE1N
>>304
パターンというのはみんなが繰り返しやるからパターンと呼ばれる

だれもそんな設計しないと思うので
何かのアンチではあってもアンチパターンではないと思う
2017/12/08(金) 19:11:34.28ID:PpC6VnTr
>>304
フィールドを使いたいなら分からないでもないが、フィールドも使わないんだったら単なる静的メソッドでいいだろ
あえて変なスタイルを採用する積極的理由がない
2017/12/08(金) 19:22:05.40ID:Vo/E3SIp
>>304
コンストラクタの中で処理するのはアンチパターンに入るかも
2017/12/08(金) 21:13:55.11ID:l65xZylR
>>307
コンストラクタだけで完結させるのはやはりアンチパターンですよね

データベース相手で、パブリックメソッドが一つしかないクラスを作った時に、コンストラクタで全部やっちゃえば良いねと作っちゃったんですけど、こんなことしてるクラス見たこと無いので不安に思い
2017/12/08(金) 21:46:31.29ID:T5yPQbL2
コンストラクタ内で全部やっちゃうのは、
コンストラクタの責務を超えてる気がするなー
2017/12/08(金) 21:48:13.33ID:T5yPQbL2
数年後とかに(または自分以外の人間が)、コードを改修するハメになった時に
うっかりその派生クラスとか作ると、ヘンな副作用を起こしそうなので
ちゃんとメソッドに分割した方がお行儀が良い、と思う
2017/12/08(金) 22:06:43.30ID:nAKkewiT
>>304
既に指摘されてる通り、アンチどうこう以前に普通は無意味だからやらないけど、
staticクラスは多態できない(インターフェイスも実装できないし継承関係も作れない)ので、
多態を実現するために例え状態(フィールドやプロパティ)を持たなくてもインスタンスを
作ることは理屈上はありえると思う。

私しゃーやったことありませんが
312デフォルトの名無しさん
垢版 |
2017/12/08(金) 22:39:43.44ID:zVfb1lJX
>>304
staticメソッドじゃダメなの?
313デフォルトの名無しさん
垢版 |
2017/12/08(金) 22:48:26.92ID:8QW3tG+Y
>>305
ところで設計じゃないよ
コーディングプランだからw
2017/12/08(金) 23:59:26.68ID:ahDNvKU9
>>313
ん?
何が違うんだ?
315デフォルトの名無しさん
垢版 |
2017/12/09(土) 18:25:35.22ID:yz0yK5Nn
C++でゲーム作っていた者ですが
今後はC#で作っていこうと勉強しています

C++あがりのプログラマがC#で間違い易い、
ありがちなミスを教えてください。
2017/12/09(土) 18:46:18.09ID:Yi9bTbLW
迷わず行けよ行けば分かるさダー
317デフォルトの名無しさん
垢版 |
2017/12/09(土) 18:51:16.17ID:DLrsngiD
C++とかいう高度な言語使えないから分からんにゃーい
2017/12/09(土) 19:05:02.00ID:9A22gNCm
>>315
ミスじゃないけどGCでイライラしそう
2017/12/09(土) 19:14:58.17ID:x4vPcfX+
>>315
速度最適化を気にしすぎないことかな
2017/12/09(土) 19:22:18.63ID:fpEjaZID
>>315
C++プログラマがC#でよくやる間違い
・クラス名の頭にCを付ける
・名前空間やメソッド名を先頭小文字にしたりアンスコ入れたりする
・using 名前空間; を恐れる
・int を System.Int32 と書きたがる
・ループ大好き
・new を嫌う
・やたらとenumを多用する
・エラーを戻り値で返す
2017/12/09(土) 19:26:45.34ID:fpEjaZID
あと、
・やたらとでかいクラスを作る
も追加で
C++はクラス定義が面倒なので心理的に大きなクラスを作る癖がつきがち
2017/12/09(土) 19:39:14.82ID:Avl0kHLY
C#はRADありきで細かい部分はちょくちょくリファレンスを読んで確認するしかない
2017/12/09(土) 19:42:11.92ID:kSf52iSg
>>320
> ・やたらとenumを多用する
具体的な解説Please。
C#でもよく使うと思うけど。
2017/12/09(土) 19:51:35.61ID:zCNCLFXW
templateの感覚でGenericを使おうとして発狂する
2017/12/09(土) 19:55:26.03ID:fpEjaZID
>>323
C++で多態を使うなら便利なRAIIを捨てなくてはならない(スマポを使うこともできるが、普通は可能なら避けたいと考える)
多態を使う心理的ハードルが高くなるわけだ
2017/12/09(土) 20:41:18.42ID:1hSvWs3J
>>318
かなり持続性を求めるアプリ?FullGCの影響くらうのって1秒くらいだよね?
2017/12/09(土) 20:44:23.80ID:LewaYlvd
地雷原のC++を歩けるなら舗装道路のC#なんか楽勝だろと思うけど、
落とし穴があるとしたらこういう驕りかもしれんね。

C#出た頃C#によく分からん難癖付けてたのはJavaな人で、C++erはむしろ
好意的な評価の人が多かったような気がするから考えすぎかもしれんけど
2017/12/09(土) 20:46:31.46ID:kSf52iSg
>>325
それとenumに何の関係が?
2017/12/09(土) 21:10:41.34ID:jyWlwvil
>>326
1秒ももたついたらクソゲーの烙印押されと思うぞ
330デフォルトの名無しさん
垢版 |
2017/12/09(土) 21:16:00.04ID:DLrsngiD
ゲーム開発かよ
2017/12/09(土) 21:31:07.48ID:kSf52iSg
動画でも音声でもリアルタイム処理が必要な場合は1秒でも止まると困るね。
2017/12/09(土) 21:36:14.68ID:bldOuh/e
10秒に一度ぐらいずつ強制gcやっときゃいいよ
2017/12/09(土) 21:41:11.39ID:LewaYlvd
大昔のPC-98じゃあるまいしそんな止まらないからw
何でGCの話になるといつもこうなのw
何十年前の話をしてるんだよw
2017/12/09(土) 21:44:43.70ID:CMBXHaeA
GCで体感できるほどもたついたことないな
2017/12/09(土) 21:53:25.70ID:fpEjaZID
>>328
さすがにenumと多態が結びつかないのはオブジェクト指向の理解不足
336デフォルトの名無しさん
垢版 |
2017/12/09(土) 21:56:19.74ID:DLrsngiD
>>335
分からないから詳しく
2017/12/09(土) 22:01:20.70ID:bldOuh/e
enum継承できねーから使わねーよ
338デフォルトの名無しさん
垢版 |
2017/12/09(土) 22:03:05.57ID:DLrsngiD
>>337
そういうことか
2017/12/09(土) 22:06:49.31ID:LNYXpqZE
んー、それでもC++の人が多用するって理由とそれがC#じゃ間違いって理由がよくわからん。
340デフォルトの名無しさん
垢版 |
2017/12/09(土) 22:09:24.80ID:DLrsngiD
>>339
C++使いは多態を使いたがらないから、多態使わないならenumをなんの懸念もなく使えるから使いまくるってことかな?
2017/12/09(土) 22:12:55.12ID:CMBXHaeA
この流れは質問に対して必要なのか?
後今更だが
>>320
>・名前空間やメソッド名を先頭小文字にしたりアンスコ入れたりする
これは非推奨だがビルドが通るので間違いとは言えない
2017/12/09(土) 22:13:29.50ID:jyWlwvil
enum を継承? w
343デフォルトの名無しさん
垢版 |
2017/12/09(土) 22:15:27.00ID:DLrsngiD
>>341
エラーじゃないならいいってことならそれ以外のやつも当てはまるだろ?
なぜそれだけピックアップしたんだ?
2017/12/09(土) 22:17:17.61ID:CMBXHaeA
>>343
他は知らん
345デフォルトの名無しさん
垢版 |
2017/12/09(土) 22:20:10.10ID:DLrsngiD
>>342
クラスの中にインナーenum(?)を定義したら、そのクラス継承してもそのenumが未定義になるってことかな?
2017/12/09(土) 22:28:13.72ID:Er9Ndq7R
最近enumが〜って言う初心者が一人紛れ込んだだけだから
相手にしなくていいよ
2017/12/10(日) 00:39:39.78ID:okOunyow
言語そのものの事ではないのだけど。

Windows10 の PC に入れっぱなしにしてた VS Community 2015 で C# で Webアプリ(MVC)の新規プロジェクトを作成して、
それをそのままビルド→実行するとブラウザが起動して(これは当たり前)、
サーバーエラーとなって「指定された引数は、有効な値の範囲内にありません。」て表示する&
ダイアログで「Mirosoft.VsHub.Server.HttpHost64.exeは動作を停止しました」って出ます。
HttpHost64.exeの方は連続して出てて、 KB3090034 を当てたら最初の1回だけになりました。

原因が分からないので同じような症状を経験、解決した人か心当たりのある方がいたら対処法を教えて欲しいです。
348デフォルトの名無しさん
垢版 |
2017/12/10(日) 02:07:22.55ID:40kmfkZ7
これは?
http://northbrain.org/?p=1503
2017/12/10(日) 10:45:19.56ID:+bg1ulUg
enum大好きな人多いよね
2017/12/10(日) 10:51:21.68ID:cFJQGF3i
処理結果表すのに文字列やint使いたくないからenum使っているけど、他に良い方法あるかな?
2017/12/10(日) 10:56:20.84ID:OKZOYtiA
>>350
設計の筋が悪いんだと思うよ
たとえばデータ取得処理が返すべきは成功コードorエラーコードではなく
取得したデータそのものであり、失敗したら例外を投げる
2017/12/10(日) 10:59:35.44ID:cFJQGF3i
ごめんなさい、例の子呼んじゃいました・・・
2017/12/10(日) 11:19:22.17ID:klwCxkV9
死ね
2017/12/10(日) 11:22:56.63ID:zEFqnqTD
質問があいまいな上に答えてもらった相手を例の子呼ばわりって何がしたいんだろう
文字列とint対応させて作りたいのならenum使うの自然だし変えようとしたらその設計変えるしかないわ
2017/12/10(日) 11:23:21.91ID:7Si01GpM
なんでこうも例外は嫌われなきゃいけないのか
2017/12/10(日) 11:24:00.35ID:DEQ8njbJ
あいつが召喚されるから
2017/12/10(日) 11:24:37.45ID:1RSLLPBx
>>350
オブジェクトを返せばいいよ
2017/12/10(日) 11:25:55.23ID:1RSLLPBx
例外を使えないならOOPやめたほうがいい
というかプログラマやめたら?
同僚からしたらすげえ邪魔なんだけど
2017/12/10(日) 11:27:29.98ID:zEFqnqTD
>>355
>>358
例外の話じゃなかったのに処理結果=例外なんだ
2017/12/10(日) 11:31:38.35ID:1RSLLPBx
>>359
一般論的に言って例外使えない子は退職して欲しいってだけだよ
>>354に対する答えは>>358で出してるでしょ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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