受到F#中的度量单位的启发,尽管断言(这里)你无法用C#做到这一点,但我还有一个想法,那就是我一直在玩的.
namespace UnitsOfMeasure
{
public interface IUnit { }
public static class Length
{
public interface ILength : IUnit { }
public class m : ILength { }
public class mm : ILength { }
public class ft : ILength { }
}
public class Mass
{
public interface IMass : IUnit { }
public class kg : IMass { }
public class g : IMass { }
public class lb : IMass { }
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试将对象与int值进行比较,例如
if (myObject - 5 == 0)
doSomething();
Run Code Online (Sandbox Code Playgroud)
我的课可能看起来像这样:( 删除了大多数setter/getters,所以不要介意所有变量都是私有的)
public class SomeClass
{
public string name;
private int minValue;
private int maxValue;
private int currValue;
public int getCurrentValue()
{
return currValue;
}
}
Run Code Online (Sandbox Code Playgroud)
我想要实现的是这样的:
someClassInstance - 5;
Run Code Online (Sandbox Code Playgroud)
平等
someClassInstance.getCurrentValue() - 5;
Run Code Online (Sandbox Code Playgroud)
我可以覆盖对象作为一个int(它自己的变量)而不是仅仅作为一个对象吗?