⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c6-05.cs

📁 一本很好的教材.C#开发者必备.内容全面,很难得哦.
💻 CS
字号:
public struct DBInt
{
   public static readonly DBInt Null = new DBInt();
     int value;
   bool defined;
    DBInt(int value) {
      this.value = value;
      this.defined = true;
   }
   public bool IsNull { get { return !defined; } }
   public int Value { get { return value; } }
   public static implicit operator DBInt(int x) {
      return new DBInt(x);
   }
   public static explicit operator int(DBInt x) {
      if (!x.defined) throw new InvalidOperationException();
      return x.value;
   }
   public static DBInt operator +(DBInt x) {
      return x;
   }
   public static DBInt operator -(DBInt x) {
      return x.defined? -x.value: Null;
   }
   public static DBInt operator +(DBInt x, DBInt y) {
      return x.defined && y.defined? x.value + y.value: Null;
   }
 public static DBInt operator -(DBInt x, DBInt y) {
      return x.defined && y.defined? x.value - y.value: Null;
   }
   public static DBInt operator *(DBInt x, DBInt y) {
      return x.defined && y.defined? x.value * y.value: Null;
   }
   public static DBInt operator /(DBInt x, DBInt y) {
      return x.defined && y.defined? x.value / y.value: Null;
   }
   public static DBInt operator %(DBInt x, DBInt y) {
      return x.defined && y.defined? x.value % y.value: Null;
   }
   public static DBBool operator ==(DBInt x, DBInt y) {
      return x.defined && y.defined? x.value == y.value: DBBool.Null;
   }
   public static DBBool operator !=(DBInt x, DBInt y) {
      return x.defined && y.defined? x.value != y.value: DBBool.Null;
   }
   public static DBBool operator >(DBInt x, DBInt y) {
      return x.defined && y.defined? x.value > y.value: DBBool.Null;
   }
   public static DBBool operator <(DBInt x, DBInt y) {
      return x.defined && y.defined? x.value < y.value: DBBool.Null;
   }
   public static DBBool operator >=(DBInt x, DBInt y) {
      return x.defined && y.defined? x.value >= y.value: DBBool.Null;
   }
   public static DBBool operator <=(DBInt x, DBInt y) {
      return x.defined && y.defined? x.value <= y.value: DBBool.Null;
   }
   public override bool Equals(object o) {
      try {
         return (bool) (this == (DBInt) o);
      } 
      catch {
         return false;
      }
   }
   public override int GetHashCode() {
      if (defined) 
         return value;
      else
         return 0;
   }   
   public override string ToString() {
      if (defined)
         return value.ToString();
      else
         return "DBInt.Null";
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -