考虑这种类型,它是否像我能做到的那样不可变?
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:
...
}