この型を考えてみてください。私ができる限り不変でしょうか?
public struct SomeType
{
public const int OneValue = 1;
private static readonly one = new SomeType(one);
private readonly int value;
private SomeType(int value)
{
this.value = value;
}
public static One
{
get { return this.one; }
}
public static implicit operator int(SomeType source)
{
return source.value;
}
public void SomeSpecialization()
{
}
}
これにより、これを行うことができます。
var one = SomeType.One;
switch (one)
{
case SomeType.OneValue:
...
}
しかし、とにかく私が削除できるものはありますか
public static implicit operator int(SomeType source)
{
return source.value;
}
型定義から、このような型を使用しますか?
var one = SomeType.One;
switch (one)
{
case SomeType.One:
...
}