您需要使用
implicit或
explicit取决于您是否希望用户强制转换它,或者是否希望它自动发生,从而覆盖转换运算符。通常,一个方向将始终有效,这是您使用的地方
implicit,而另一个方向有时会失败,这是您使用的地方
explicit。
语法如下:
public static implicit operator dbInt64(Byte x){ return new dbInt64(x);}
要么
public static explicit operator Int64(dbInt64 x){ if (!x.defined) throw new DataValueNullException(); return x.iVal;}
以您的示例为例,从您的自定义类型中说(
MyType->
byte[]将始终有效):
public static implicit operator byte[] (MyType x){ byte[] ba = // put pre here to convert x into a byte[] return ba;}
要么
public static explicit operator MyType(byte[] x){ if (!CanConvert) throw new DataValueNullException(); // Factory to convert byte[] x into MyType MyType mt = MyType.Factory(x); return mt;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)