「どんなにくだらない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
探検
ふらっと C#,C♯,C#(初心者用) Part134
■ このスレッドは過去ログ倉庫に格納されています
2017/11/28(火) 21:30:48.55ID:7U+HR4FY
285デフォルトの名無しさん
2017/12/08(金) 12:56:22.31ID:n5uOCz3i286デフォルトの名無しさん
2017/12/08(金) 12:58:10.32ID:eUH+zyLO287デフォルトの名無しさん
2017/12/08(金) 12:58:14.04ID:PXTxgSdc288デフォルトの名無しさん
2017/12/08(金) 13:04:34.05ID:LezyuZlt >>286
通信アプリとかデータが来たらオレオレイベント発生させる。
通信アプリとかデータが来たらオレオレイベント発生させる。
289デフォルトの名無しさん
2017/12/08(金) 13:11:44.12ID:T81djMMQ あらゆるクラスにログ出力のイベントつけちゃう
290デフォルトの名無しさん
2017/12/08(金) 13:19:11.96ID:zPIj5vhG ID変わってるかもですが、>>192です。
反応できてないですが、皆さんの議論は参考にさせて頂いています。
SignalRですか?少し調べてみたのですが、目的に合致しているかもしれません。
ですが、後だしなのですが、今回対象になっているサーバがframework 3.5で、
現在運用されているwebアプリはVS2008で開発されています。
ここに追加する形で考えているため、SignalRは使えません。
(別の場所に同じようなサーバがあり、こちらは去年立ち上げたばかりで、水平展開することになり、かつ、私が担当する事になったら是非ともSignalRなりを勉強したいと思っています。)
そこで、やはりTimerを使う事になるかなと思っているのですが、気になる点があるので教えていただければありがたいです。
ログが大きくなるとあるのですが、意識してなくてもログが記録されているものなのですか?
そのログはどこで確認でき、ログを残さなくすることはできないのでしょうか?
反応できてないですが、皆さんの議論は参考にさせて頂いています。
SignalRですか?少し調べてみたのですが、目的に合致しているかもしれません。
ですが、後だしなのですが、今回対象になっているサーバがframework 3.5で、
現在運用されているwebアプリはVS2008で開発されています。
ここに追加する形で考えているため、SignalRは使えません。
(別の場所に同じようなサーバがあり、こちらは去年立ち上げたばかりで、水平展開することになり、かつ、私が担当する事になったら是非ともSignalRなりを勉強したいと思っています。)
そこで、やはりTimerを使う事になるかなと思っているのですが、気になる点があるので教えていただければありがたいです。
ログが大きくなるとあるのですが、意識してなくてもログが記録されているものなのですか?
そのログはどこで確認でき、ログを残さなくすることはできないのでしょうか?
291デフォルトの名無しさん
2017/12/08(金) 13:23:25.17ID:LezyuZlt >>290
IISのログの事だろうけど気にしなくても良いでしょ。
IISのログの事だろうけど気にしなくても良いでしょ。
292デフォルトの名無しさん
2017/12/08(金) 13:28:18.22ID:Xls5mA2Y プロパティー変化時の〜Changedイベントは普通に多用するでしょう。
非同期処理完了をイベントで通知するのは非同期メソッドが出来たので
流行らなくなったね。
非同期処理完了をイベントで通知するのは非同期メソッドが出来たので
流行らなくなったね。
293デフォルトの名無しさん
2017/12/08(金) 14:02:11.06ID:PpIHj1rp 最近はイベントも種類が増えたね
・x:Bindによるイベントバインディング
・EventAggregatorって言う集約イベント
・Rxや、その派生のReactiveProperty
従来型はあまり使わなくなったね。
・x:Bindによるイベントバインディング
・EventAggregatorって言う集約イベント
・Rxや、その派生のReactiveProperty
従来型はあまり使わなくなったね。
294デフォルトの名無しさん
2017/12/08(金) 14:10:42.44ID:M8mJAXMK295デフォルトの名無しさん
2017/12/08(金) 14:16:37.32ID:yJmj+jOP PerformanceCounterって、
OS起動直後からしばらく立たないと使えないとかの制限あるんですかね?
OS起動直後からしばらく立たないと使えないとかの制限あるんですかね?
296デフォルトの名無しさん
2017/12/08(金) 14:45:49.73ID:IbEiOVbO297デフォルトの名無しさん
2017/12/08(金) 14:52:00.48ID:IbEiOVbO >自分が遭遇する機会無いのならそれでいいじゃん
なにをそんなにイカってるのか分からんわ。
「イベントってUIしか使わなくなくね?イベントの使い道他になにがあるの?」
単純な疑問に突然キレられても困惑よ。
なにをそんなにイカってるのか分からんわ。
「イベントってUIしか使わなくなくね?イベントの使い道他になにがあるの?」
単純な疑問に突然キレられても困惑よ。
298デフォルトの名無しさん
2017/12/08(金) 15:19:35.30ID:FTlzMntS ここのスレの住人は「C#の〜要らなくね?」って意見に過敏だからなwwwww C#信者だから当たり前かなw
要らないとは言ってなくてもそう解釈されるんじゃよ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 #を取ったら、オブジェクト指向もジェネリックスもラムダ式も例外もイベントも無くなって平和になるべ?
302デフォルトの名無しさん
2017/12/08(金) 16:08:01.83ID:zPIj5vhG >>294
失礼しました。
サーバは、frameworkのインストールとか、既存の動いているソフトをいじるとかはできないですが、
新たなソフト(Webでもローカルexeでも)を動かしたり、フォルダやファイルの操作は自由にできます。
>一番簡単なのが他の人も書いているけどサーバー側でステータス用意して
>クライアント側がそれを取りに行くだけの処理の時だから
自分に理解できない事は脳内でスルーしてしまっているかも。
これは別途、更新したファイルのリストを作っておくとかって事でしょうか?
確かに作成されたファイルを、各リクエスト(=開いてるブラウザ、ですよね?)毎のTimerイベントで行うのは非効率ですね。
私のレベルでは、サーバでローカルアプリを動かして、何らかのファイルなりDBに出力するくらいしか思いつきません。
Webアプリ内で、同等の事とかできればいいんでしょうけど。
失礼しました。
サーバは、frameworkのインストールとか、既存の動いているソフトをいじるとかはできないですが、
新たなソフト(Webでもローカルexeでも)を動かしたり、フォルダやファイルの操作は自由にできます。
>一番簡単なのが他の人も書いているけどサーバー側でステータス用意して
>クライアント側がそれを取りに行くだけの処理の時だから
自分に理解できない事は脳内でスルーしてしまっているかも。
これは別途、更新したファイルのリストを作っておくとかって事でしょうか?
確かに作成されたファイルを、各リクエスト(=開いてるブラウザ、ですよね?)毎のTimerイベントで行うのは非効率ですね。
私のレベルでは、サーバでローカルアプリを動かして、何らかのファイルなりDBに出力するくらいしか思いつきません。
Webアプリ内で、同等の事とかできればいいんでしょうけど。
303デフォルトの名無しさん
2017/12/08(金) 18:12:13.39ID:oxsZSnq/304デフォルトの名無しさん
2017/12/08(金) 18:55:14.76ID:Hk+pFmDF C#だけの話では無いのですが、インスタンス作られたら自分の仕事するだけでフィールドもパブリックメソッドも無いクラスって、OOP的にはアンチパターンでしょうか
305デフォルトの名無しさん
2017/12/08(金) 19:03:17.13ID:cJ57jE1N306デフォルトの名無しさん
2017/12/08(金) 19:11:34.28ID:PpC6VnTr307デフォルトの名無しさん
2017/12/08(金) 19:22:05.40ID:Vo/E3SIp >>304
コンストラクタの中で処理するのはアンチパターンに入るかも
コンストラクタの中で処理するのはアンチパターンに入るかも
308デフォルトの名無しさん
2017/12/08(金) 21:13:55.11ID:l65xZylR >>307
コンストラクタだけで完結させるのはやはりアンチパターンですよね
データベース相手で、パブリックメソッドが一つしかないクラスを作った時に、コンストラクタで全部やっちゃえば良いねと作っちゃったんですけど、こんなことしてるクラス見たこと無いので不安に思い
コンストラクタだけで完結させるのはやはりアンチパターンですよね
データベース相手で、パブリックメソッドが一つしかないクラスを作った時に、コンストラクタで全部やっちゃえば良いねと作っちゃったんですけど、こんなことしてるクラス見たこと無いので不安に思い
309デフォルトの名無しさん
2017/12/08(金) 21:46:31.29ID:T5yPQbL2 コンストラクタ内で全部やっちゃうのは、
コンストラクタの責務を超えてる気がするなー
コンストラクタの責務を超えてる気がするなー
310デフォルトの名無しさん
2017/12/08(金) 21:48:13.33ID:T5yPQbL2 数年後とかに(または自分以外の人間が)、コードを改修するハメになった時に
うっかりその派生クラスとか作ると、ヘンな副作用を起こしそうなので
ちゃんとメソッドに分割した方がお行儀が良い、と思う
うっかりその派生クラスとか作ると、ヘンな副作用を起こしそうなので
ちゃんとメソッドに分割した方がお行儀が良い、と思う
311デフォルトの名無しさん
2017/12/08(金) 22:06:43.30ID:nAKkewiT >>304
既に指摘されてる通り、アンチどうこう以前に普通は無意味だからやらないけど、
staticクラスは多態できない(インターフェイスも実装できないし継承関係も作れない)ので、
多態を実現するために例え状態(フィールドやプロパティ)を持たなくてもインスタンスを
作ることは理屈上はありえると思う。
私しゃーやったことありませんが
既に指摘されてる通り、アンチどうこう以前に普通は無意味だからやらないけど、
staticクラスは多態できない(インターフェイスも実装できないし継承関係も作れない)ので、
多態を実現するために例え状態(フィールドやプロパティ)を持たなくてもインスタンスを
作ることは理屈上はありえると思う。
私しゃーやったことありませんが
312デフォルトの名無しさん
2017/12/08(金) 22:39:43.44ID:zVfb1lJX >>304
staticメソッドじゃダメなの?
staticメソッドじゃダメなの?
313デフォルトの名無しさん
2017/12/08(金) 22:48:26.92ID:8QW3tG+Y314デフォルトの名無しさん
2017/12/08(金) 23:59:26.68ID:ahDNvKU9315デフォルトの名無しさん
2017/12/09(土) 18:25:35.22ID:yz0yK5Nn C++でゲーム作っていた者ですが
今後はC#で作っていこうと勉強しています
C++あがりのプログラマがC#で間違い易い、
ありがちなミスを教えてください。
今後はC#で作っていこうと勉強しています
C++あがりのプログラマがC#で間違い易い、
ありがちなミスを教えてください。
316デフォルトの名無しさん
2017/12/09(土) 18:46:18.09ID:Yi9bTbLW 迷わず行けよ行けば分かるさダー
317デフォルトの名無しさん
2017/12/09(土) 18:51:16.17ID:DLrsngiD C++とかいう高度な言語使えないから分からんにゃーい
318デフォルトの名無しさん
2017/12/09(土) 19:05:02.00ID:9A22gNCm >>315
ミスじゃないけどGCでイライラしそう
ミスじゃないけどGCでイライラしそう
319デフォルトの名無しさん
2017/12/09(土) 19:14:58.17ID:x4vPcfX+ >>315
速度最適化を気にしすぎないことかな
速度最適化を気にしすぎないことかな
320デフォルトの名無しさん
2017/12/09(土) 19:22:18.63ID:fpEjaZID >>315
C++プログラマがC#でよくやる間違い
・クラス名の頭にCを付ける
・名前空間やメソッド名を先頭小文字にしたりアンスコ入れたりする
・using 名前空間; を恐れる
・int を System.Int32 と書きたがる
・ループ大好き
・new を嫌う
・やたらとenumを多用する
・エラーを戻り値で返す
C++プログラマがC#でよくやる間違い
・クラス名の頭にCを付ける
・名前空間やメソッド名を先頭小文字にしたりアンスコ入れたりする
・using 名前空間; を恐れる
・int を System.Int32 と書きたがる
・ループ大好き
・new を嫌う
・やたらとenumを多用する
・エラーを戻り値で返す
321デフォルトの名無しさん
2017/12/09(土) 19:26:45.34ID:fpEjaZID あと、
・やたらとでかいクラスを作る
も追加で
C++はクラス定義が面倒なので心理的に大きなクラスを作る癖がつきがち
・やたらとでかいクラスを作る
も追加で
C++はクラス定義が面倒なので心理的に大きなクラスを作る癖がつきがち
322デフォルトの名無しさん
2017/12/09(土) 19:39:14.82ID:Avl0kHLY C#はRADありきで細かい部分はちょくちょくリファレンスを読んで確認するしかない
323デフォルトの名無しさん
2017/12/09(土) 19:42:11.92ID:kSf52iSg324デフォルトの名無しさん
2017/12/09(土) 19:51:35.61ID:zCNCLFXW templateの感覚でGenericを使おうとして発狂する
325デフォルトの名無しさん
2017/12/09(土) 19:55:26.03ID:fpEjaZID326デフォルトの名無しさん
2017/12/09(土) 20:41:18.42ID:1hSvWs3J >>318
かなり持続性を求めるアプリ?FullGCの影響くらうのって1秒くらいだよね?
かなり持続性を求めるアプリ?FullGCの影響くらうのって1秒くらいだよね?
327デフォルトの名無しさん
2017/12/09(土) 20:44:23.80ID:LewaYlvd 地雷原のC++を歩けるなら舗装道路のC#なんか楽勝だろと思うけど、
落とし穴があるとしたらこういう驕りかもしれんね。
C#出た頃C#によく分からん難癖付けてたのはJavaな人で、C++erはむしろ
好意的な評価の人が多かったような気がするから考えすぎかもしれんけど
落とし穴があるとしたらこういう驕りかもしれんね。
C#出た頃C#によく分からん難癖付けてたのはJavaな人で、C++erはむしろ
好意的な評価の人が多かったような気がするから考えすぎかもしれんけど
328デフォルトの名無しさん
2017/12/09(土) 20:46:31.46ID:kSf52iSg >>325
それとenumに何の関係が?
それとenumに何の関係が?
329デフォルトの名無しさん
2017/12/09(土) 21:10:41.34ID:jyWlwvil >>326
1秒ももたついたらクソゲーの烙印押されと思うぞ
1秒ももたついたらクソゲーの烙印押されと思うぞ
330デフォルトの名無しさん
2017/12/09(土) 21:16:00.04ID:DLrsngiD ゲーム開発かよ
331デフォルトの名無しさん
2017/12/09(土) 21:31:07.48ID:kSf52iSg 動画でも音声でもリアルタイム処理が必要な場合は1秒でも止まると困るね。
332デフォルトの名無しさん
2017/12/09(土) 21:36:14.68ID:bldOuh/e 10秒に一度ぐらいずつ強制gcやっときゃいいよ
333デフォルトの名無しさん
2017/12/09(土) 21:41:11.39ID:LewaYlvd 大昔のPC-98じゃあるまいしそんな止まらないからw
何でGCの話になるといつもこうなのw
何十年前の話をしてるんだよw
何でGCの話になるといつもこうなのw
何十年前の話をしてるんだよw
334デフォルトの名無しさん
2017/12/09(土) 21:44:43.70ID:CMBXHaeA GCで体感できるほどもたついたことないな
335デフォルトの名無しさん
2017/12/09(土) 21:53:25.70ID:fpEjaZID >>328
さすがにenumと多態が結びつかないのはオブジェクト指向の理解不足
さすがにenumと多態が結びつかないのはオブジェクト指向の理解不足
336デフォルトの名無しさん
2017/12/09(土) 21:56:19.74ID:DLrsngiD >>335
分からないから詳しく
分からないから詳しく
337デフォルトの名無しさん
2017/12/09(土) 22:01:20.70ID:bldOuh/e enum継承できねーから使わねーよ
338デフォルトの名無しさん
2017/12/09(土) 22:03:05.57ID:DLrsngiD >>337
そういうことか
そういうことか
339デフォルトの名無しさん
2017/12/09(土) 22:06:49.31ID:LNYXpqZE んー、それでもC++の人が多用するって理由とそれがC#じゃ間違いって理由がよくわからん。
340デフォルトの名無しさん
2017/12/09(土) 22:09:24.80ID:DLrsngiD >>339
C++使いは多態を使いたがらないから、多態使わないならenumをなんの懸念もなく使えるから使いまくるってことかな?
C++使いは多態を使いたがらないから、多態使わないならenumをなんの懸念もなく使えるから使いまくるってことかな?
341デフォルトの名無しさん
2017/12/09(土) 22:12:55.12ID:CMBXHaeA342デフォルトの名無しさん
2017/12/09(土) 22:13:29.50ID:jyWlwvil enum を継承? w
343デフォルトの名無しさん
2017/12/09(土) 22:15:27.00ID:DLrsngiD344デフォルトの名無しさん
2017/12/09(土) 22:17:17.61ID:CMBXHaeA >>343
他は知らん
他は知らん
345デフォルトの名無しさん
2017/12/09(土) 22:20:10.10ID:DLrsngiD >>342
クラスの中にインナーenum(?)を定義したら、そのクラス継承してもそのenumが未定義になるってことかな?
クラスの中にインナーenum(?)を定義したら、そのクラス継承してもそのenumが未定義になるってことかな?
346デフォルトの名無しさん
2017/12/09(土) 22:28:13.72ID:Er9Ndq7R 最近enumが〜って言う初心者が一人紛れ込んだだけだから
相手にしなくていいよ
相手にしなくていいよ
347デフォルトの名無しさん
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回だけになりました。
原因が分からないので同じような症状を経験、解決した人か心当たりのある方がいたら対処法を教えて欲しいです。
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:40kmfkZ7349デフォルトの名無しさん
2017/12/10(日) 10:45:19.56ID:+bg1ulUg enum大好きな人多いよね
350デフォルトの名無しさん
2017/12/10(日) 10:51:21.68ID:cFJQGF3i 処理結果表すのに文字列やint使いたくないからenum使っているけど、他に良い方法あるかな?
351デフォルトの名無しさん
2017/12/10(日) 10:56:20.84ID:OKZOYtiA352デフォルトの名無しさん
2017/12/10(日) 10:59:35.44ID:cFJQGF3i ごめんなさい、例の子呼んじゃいました・・・
353デフォルトの名無しさん
2017/12/10(日) 11:19:22.17ID:klwCxkV9 死ね
354デフォルトの名無しさん
2017/12/10(日) 11:22:56.63ID:zEFqnqTD 質問があいまいな上に答えてもらった相手を例の子呼ばわりって何がしたいんだろう
文字列とint対応させて作りたいのならenum使うの自然だし変えようとしたらその設計変えるしかないわ
文字列とint対応させて作りたいのならenum使うの自然だし変えようとしたらその設計変えるしかないわ
355デフォルトの名無しさん
2017/12/10(日) 11:23:21.91ID:7Si01GpM なんでこうも例外は嫌われなきゃいけないのか
356デフォルトの名無しさん
2017/12/10(日) 11:24:00.35ID:DEQ8njbJ あいつが召喚されるから
357デフォルトの名無しさん
2017/12/10(日) 11:24:37.45ID:1RSLLPBx >>350
オブジェクトを返せばいいよ
オブジェクトを返せばいいよ
358デフォルトの名無しさん
2017/12/10(日) 11:25:55.23ID:1RSLLPBx 例外を使えないならOOPやめたほうがいい
というかプログラマやめたら?
同僚からしたらすげえ邪魔なんだけど
というかプログラマやめたら?
同僚からしたらすげえ邪魔なんだけど
359デフォルトの名無しさん
2017/12/10(日) 11:27:29.98ID:zEFqnqTD360デフォルトの名無しさん
2017/12/10(日) 11:31:38.35ID:1RSLLPBx361デフォルトの名無しさん
2017/12/10(日) 11:32:45.27ID:K5F4H8OZ 例外も内部にステータス持つなら同じことだから、要はenumのかわりにクラスを使えということなんだろう。
必ずしもそれが筋が良いとは思わんけどな。
必ずしもそれが筋が良いとは思わんけどな。
362デフォルトの名無しさん
2017/12/10(日) 11:36:28.15ID:zEFqnqTD363デフォルトの名無しさん
2017/12/10(日) 11:36:52.38ID:1RSLLPBx364デフォルトの名無しさん
2017/12/10(日) 11:38:37.58ID:zEFqnqTD365デフォルトの名無しさん
2017/12/10(日) 11:55:32.54ID:7Si01GpM enumで戻り値を返した先にはswitch〜case文の羅列が待っている
それは、オブジェクト指向として美しくない
とか言って見る
それは、オブジェクト指向として美しくない
とか言って見る
366デフォルトの名無しさん
2017/12/10(日) 12:15:32.85ID:I3oRkg9y >>349
エナム?イーナム?
エナム?イーナム?
367デフォルトの名無しさん
2017/12/10(日) 12:16:06.09ID:fCk6aJzv メソッドの結果が何種類かある
どの結果なら何をするかはメソッド自体は知らない
なのでenumを返してクライアントに判断してもらう
って理由でenumならなんの問題もない
enum switch地獄に陥るのはクライアントの実装の問題なので解消できる問題だな
イベントでもいいけどイベントは管理しにくいからできれば避けたい
どの結果なら何をするかはメソッド自体は知らない
なのでenumを返してクライアントに判断してもらう
って理由でenumならなんの問題もない
enum switch地獄に陥るのはクライアントの実装の問題なので解消できる問題だな
イベントでもいいけどイベントは管理しにくいからできれば避けたい
368347
2017/12/10(日) 12:24:22.81ID:okOunyow369デフォルトの名無しさん
2017/12/10(日) 12:25:57.85ID:w7IPLNC5 そんなもん地獄でもなんでもないわw
大袈裟なやつだなw
大袈裟なやつだなw
370デフォルトの名無しさん
2017/12/10(日) 12:42:01.80ID:hfoTCgp6 なんでEnumダメなん?.NET標準ライブラリでもよく使われてるやん
371デフォルトの名無しさん
2017/12/10(日) 12:44:31.00ID:KNXh5gp+ 補完効くから便利だもんね
switchとか全部書いてくれるし
switchとか全部書いてくれるし
372デフォルトの名無しさん
2017/12/10(日) 13:02:49.80ID:Lqf3YhZb373デフォルトの名無しさん
2017/12/10(日) 13:08:33.64ID:1RSLLPBx ケースバイケース
microsoftが使ってれば万能というわけでもないし使ってなければダメというわけでも無い
microsoftが使ってれば万能というわけでもないし使ってなければダメというわけでも無い
374デフォルトの名無しさん
2017/12/10(日) 13:24:00.94ID:TdgJU12g ダメって言ってる奴の頭がおかしいだけ
enum の継承とか意味わからんし
enum の継承とか意味わからんし
375デフォルトの名無しさん
2017/12/10(日) 13:31:07.35ID:Xq7qpXg6 >>374
ステートマシン作ってそのクラスを継承すると欲しくなる
ステートマシン作ってそのクラスを継承すると欲しくなる
376デフォルトの名無しさん
2017/12/10(日) 13:33:07.99ID:1RSLLPBx ダメとは言わないがコード整理するとenumが自然と消える
377デフォルトの名無しさん
2017/12/10(日) 14:00:03.48ID:K5F4H8OZ どこでどういうタイミングで消えるのか興味深い
378デフォルトの名無しさん
2017/12/10(日) 14:11:52.06ID:1RSLLPBx >>377
例えばこういう感じ
void ExternalCode(MyEnum e) {
int x = 0;
if (e == MyEnum.A) x = 1;
if (e == MyEnum.B) x = 2;
Console.WriteLine(x) }
↓
static class MyEnumEx {
public static int GetX(this MyEnum e) {
if (e == MyEnum.A) return 1;
if (e == MyEnum.B) return 2;
return 0; } }
void ExternalCode(MyEnum e) {
Console.WriteLine(e.GetX()); }
↓
class MyEnumBase {
public virtual int GetX() { return 0; } }
class MyEnumA : MyEnumBase {
public override int GetX() { return 1; } }
class MyEnumB : MyEnumBase {
public override int GetX() { return 2; } }
void ExternalCode(MyEnumBase e) {
Console.WriteLine(e.GetX()); }
例えばこういう感じ
void ExternalCode(MyEnum e) {
int x = 0;
if (e == MyEnum.A) x = 1;
if (e == MyEnum.B) x = 2;
Console.WriteLine(x) }
↓
static class MyEnumEx {
public static int GetX(this MyEnum e) {
if (e == MyEnum.A) return 1;
if (e == MyEnum.B) return 2;
return 0; } }
void ExternalCode(MyEnum e) {
Console.WriteLine(e.GetX()); }
↓
class MyEnumBase {
public virtual int GetX() { return 0; } }
class MyEnumA : MyEnumBase {
public override int GetX() { return 1; } }
class MyEnumB : MyEnumBase {
public override int GetX() { return 2; } }
void ExternalCode(MyEnumBase e) {
Console.WriteLine(e.GetX()); }
379デフォルトの名無しさん
2017/12/10(日) 14:20:47.04ID:K5F4H8OZ ありがとう。
言いたいことはわかったけど、それって整理されたの?という疑問は残る。
この例だとenumで分岐されるのがint xという単一の値を決定する処理だけだけど、
ExternalCode() には class MyEnumEx を用意して、MyEnumを使う別の処理には
また別のclassを用意して、ってなるわけだよね。
言いたいことはわかったけど、それって整理されたの?という疑問は残る。
この例だとenumで分岐されるのがint xという単一の値を決定する処理だけだけど、
ExternalCode() には class MyEnumEx を用意して、MyEnumを使う別の処理には
また別のclassを用意して、ってなるわけだよね。
380デフォルトの名無しさん
2017/12/10(日) 14:23:46.87ID:KNXh5gp+ 君のenumの使い方がそもそもおかしいだけで、普通はオプション的なものに使うからそうはならないだろう
381デフォルトの名無しさん
2017/12/10(日) 14:44:45.17ID:1RSLLPBx >>379
ならないわけだよ
MyEnumに関する責務が分散していることが問題だから整理して凝集させるわけだ
それなのに責務をまた複数のクラスに分散させてちゃ意味が無いだろう
別の場所でyを取得する処理が書かれてるなら
class MyEnumBase {
public virtual int GetX() { return 0; }
public virtual int GetY() { ... }
}
というように拡張していけばいい
ならないわけだよ
MyEnumに関する責務が分散していることが問題だから整理して凝集させるわけだ
それなのに責務をまた複数のクラスに分散させてちゃ意味が無いだろう
別の場所でyを取得する処理が書かれてるなら
class MyEnumBase {
public virtual int GetX() { return 0; }
public virtual int GetY() { ... }
}
というように拡張していけばいい
382デフォルトの名無しさん
2017/12/10(日) 14:50:12.52ID:o/NiMYKz383デフォルトの名無しさん
2017/12/10(日) 15:30:45.08ID:hRp3Q2MJ >>368
最新の2017でないのなら専用スレで聞け
Visual Studio 2015 Part8
https://mevius.5ch.net/test/read.cgi/tech/1484855822/
VSは複数バージョン入れると干渉して稀に不具合起きるらしいけどその辺は自己責任
最新の2017でないのなら専用スレで聞け
Visual Studio 2015 Part8
https://mevius.5ch.net/test/read.cgi/tech/1484855822/
VSは複数バージョン入れると干渉して稀に不具合起きるらしいけどその辺は自己責任
384デフォルトの名無しさん
2017/12/10(日) 16:01:41.00ID:K5F4H8OZ >>381
そこ集めちゃうの?という印象。
たとえば enum System.IO.FileMode のようなものを class で置き換えるとした場合、せっかく
抽象化したのに操作対象毎に異なる実装をそこに全部書くことを想定しているんだろうか。
そこ集めちゃうの?という印象。
たとえば enum System.IO.FileMode のようなものを class で置き換えるとした場合、せっかく
抽象化したのに操作対象毎に異なる実装をそこに全部書くことを想定しているんだろうか。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 働いて参ります
- ( ・᷄ὢ・᷅ )あ?
- 地震
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- ブタをぶったたく
