C#, C♯, C#相談室 Part58at TECH
C#, C♯, C#相談室 Part58 - 暇つぶし2ch981:デフォルトの名無しさん
10/05/15 22:08:30
別にそのコマンドの数値自体には意味はないんだし
絶対にその値を変えることが無いと言い切れるならenumでもいいと思うけどな
値をラップする型を作る方法をとるのであればクラスじゃなくて構造体使うのが普通
==と!=とGetHashCodeは必ず実装すること
WPFなんかでは列挙体みたいな構造体は確かに多用されてる

982:デフォルトの名無しさん
10/05/16 09:07:14
なるほど。

MSDN を再度見返してみましたが、後から変更がかかりそうな定数なんかは enum にするのは
よろしくないんであって、意味のある数字を持たせてはいけないってわけではなさそうですね。

今後の拡張や定数自体にプロパティを持たせる必要があるか等考えて再検討してみます。
ありがとうございました。

983:デフォルトの名無しさん
10/05/16 09:51:40
enumにご執心のようだが、同じ数値セットできないことは認識してるのかな。
異なるコマンドでタイムアウト値が同じ状況は十分ありえそうだが。

984:デフォルトの名無しさん
10/05/16 11:53:12
>>983
できるよ。

985:デフォルトの名無しさん
10/05/16 14:09:28
んな馬鹿なと思ってためしてみたら本当に出来たでござる

986:デフォルトの名無しさん
10/05/16 14:13:00
enumって手抜き用みたいなもんでしょ

987:デフォルトの名無しさん
10/05/16 14:17:44
>>984
んな馬鹿なとおもったけど>>985のレスでできるのだなぁと思い、そういやC#のenumはかなり変更されたんだったなと思い出した

988:デフォルトの名無しさん
10/05/16 14:25:01
>>985
感謝しろ

989:デフォルトの名無しさん
10/05/16 14:36:10
これが出来るって事?


public enum eSwich {
VALUE1 = 1,
VALUE2 = 1
}

990:デフォルトの名無しさん
10/05/16 14:37:13
昔からできたでしょ

991:デフォルトの名無しさん
10/05/16 15:02:47
これとかよくあるパターンだろ

enum Hoge { A, B, Default = A }

ついでに、別環境(Compactなど)で値が異なるとか

enum Hoge { A, B, Default = B }

>>982
・要素を追加/削除しない
・要素の値を変更しない
・利用者が値を意識する必要が無い

を守れないならenumは不適切

992:デフォルトの名無しさん
10/05/16 17:32:26
>>991
ふーん

993:デフォルトの名無しさん
10/05/16 20:21:10
列挙体といえば.NET4で今更Enum.HasFlagが追加されたわけだけどこんなの使う?
ものすごい遅そうなんだけど

994:デフォルトの名無しさん
10/05/16 20:45:44
これから新しく書くものには使う。

995:デフォルトの名無しさん
10/05/16 20:51:43
[Flags]が付いた列挙体に対してはコンパイラが
その型専用に最適化されたバージョンのHasFlagを生成するとかできなかったのかな
ボックス化+リフレクションだからビット演算に比べると途方もなく巨大なコストだよな

996:デフォルトの名無しさん
10/05/16 20:58:11
using とか lock みたいな構文糖衣でもよかったよね。

997:デフォルトの名無しさん
10/05/16 21:10:16
unko

998:デフォルトの名無しさん
10/05/16 21:18:05
static bool HasFlag<T>(T value, T flag) {
return ((dynamic)value & flag) == flag;
}
こうしてみたらEnum.HasFlagの1/10くらいの処理時間になった
それでもビットマスクの数百倍だけどdynamic結構速いね

999:デフォルトの名無しさん
10/05/16 21:18:23
o

1000:デフォルトの名無しさん
10/05/16 21:19:43
C#最強

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch