public enum RecordedOrPlayed
{
None {get,private set}
Recorded,
Played
}
enum SoundStatus = SoundStatus.None
これは有用であろう(コンパイルされません)は、本日の構築以下の使用しているだろうか?
EDIT - 発言を受けて
説明:
私が使用することはできません初めての値を持つ方を求めていました。私は、作成したときに何もしなかったSoundクラスを持っていました。音はその状態によって違ったことをしました。このクラスは、他のプログラマによって使用されることがあります。それが記録または再生されると、決して「None」に戻ることはできません。私はオプションではないときにIntellisenseにNoneを促させたくありませんでした。 C#7のとおり、私たちは...プロパティ
私はそれはのようなもので行うことができる実現public string str {get; private set;} = "First time only";
ため
public RecordedOrPlayed recordedOrPlayed
{
get { return _recordedOrPlayed; }
set
{
if (value == RecordedOrPlayed.None)
throw new ArgumentException("yada yada");
_recordedOrPlayed = value;
}
}
を行うことができます...しかし、それは、醜いで把握するのは難しいです別の変数を追加し、セッターを置き換えるために10行のコードが必要です。
あなたは何を求めていますか? 'enum'値は定数です。特定の列挙定数の基礎となる整数値を変更できることが有用であると言っていますか?あなたはそれについて多くの合意を見つけるだろうと思う。そのようなものが必要な場合は、 'int'プロパティ' None'、 'Recorded'、' Played'などを含むクラスを作成します。 –
構文と使用法が間違っているためコードがコンパイルされません)。あなたの質問も明確ではありません... – Svek
@BobKaufmanあなたはどちらも正しいです。同じことをする方法は複数ありますが、インテリセンスの問題は解決しません。私はブールを使用することができた?またはint?一見して理解しにくいアクセサまたは他の独創的なコードを持つ構造体。上記を参照 – Paulustrious