下面各節將展示兩個關於使用struct型別的重要示例,它們將各自建立乙個型別,這兩個型別可以像c#語言的內建型別那樣使用,但它們分別具有修改了的語義。
using system;
public struct dbint
//如果dbint表示乙個未知的值,則isnull屬性為true。
public bool isnull }
//value屬性是dbint的已知值,如果dbint表示乙個未知的值,則該屬性為0。
public int value }
//從int到dbint的隱式轉換。
public static implicit operator dbint(int x)
//從dbint到int的顯式轉換。如果給定的dbint表示乙個未知的值,則引發異常。
public static explicit operator int(dbint x)
public static dbint operator +(dbint x)
public static dbint operator -(dbint x)
public static dbint operator +(dbint x, dbint y)
public static dbint operator -(dbint x, dbint y)
public static dbint operator *(dbint x, dbint y)
public static dbint operator /(dbint x, dbint y)
public static dbint operator %(dbint x, dbint y)
public static dbbool operator ==(dbint x, dbint y)
public static dbbool operator !=(dbint x, dbint y)
public static dbbool operator >(dbint x, dbint y)
public static dbbool operator <(dbint x, dbint y)
public static dbbool operator >=(dbint x, dbint y)
public static dbbool operator <=(dbint x, dbint y)
public override bool equals(object obj)
public override int gethashcode()
public override string tostring()
}下面的dbbool結構將實現乙個三值邏輯型別。該型別的可能值為dbbool.true、dbbool.false和dbbool.null,其中null成員用於表示未知值。這樣的三值邏輯型別常用在資料庫中。
using system;
public struct dbbool
//檢查dbbool的值的屬性。如果dbbool具有給定的值,則返回true;否則返回false。
public bool isnull }
public bool isfalse }
public bool istrue }
//從bool到dbbool的隱式轉換。
//將true對映為dbbool.true,將false對映為dbbool.false。
public static implicit operator dbbool(bool x)
//從dbbool到bool的顯式轉換。
//如果給定dbbool為null,則引發乙個異常。否則,返回true或false。
public static explicit operator bool(dbbool x)
//相等運算子。如果任何乙個運算元為null,則返回null;否則,返回true或false。
public static dbbool operator ==(dbbool x, dbbool y)
//不相等運算子。如果任何乙個運算元為null,則返回null;否則,返回true或false。
public static dbbool operator !=(dbbool x, dbbool y)
//邏輯非運算子。如果運算元為false,則返回true;如果運算元為true,則返回false;
//如果運算元為null,則返回null。
public static dbbool operator !(dbbool x)
//邏輯與運算子。如果任何乙個運算元為false,則返回false;
//否則,如果任何乙個運算元為null,則返回null;其他情況返回true。
public static dbbool operator &(dbbool x, dbbool y)
//邏輯或運算子。如果任何乙個運算元為true,則返回true;
//否則,如果任何乙個運算元為null,則返回null;其他情況返回false。
public static dbbool operator |(dbbool x, dbbool y)
//true運算子。如果運算元為true,則返回true;否則,返回false。
public static bool operator true(dbbool x)
//false運算子。如果運算元為false,則返回true;否則,返回false。
public static bool operator false(dbbool x)
public override bool equals(object obj)
public override int gethashcode()
public override string tostring()
}
結構體(struct)的使用 c語言11 4
設有若干個人員的資料,其中包含學生和教師。學生的資料中包括 號碼 姓名 性別 職業 班級。教師的資料報括 號碼 姓名 性別 職業 職務。可以看出,學生和教師所包含的資料是不同的。現在要求把這些資料放在同乙個 中儲存,使用結構體中的共用體實現。結構體定義如下 struct category 在以上的結...
結構體優化示例
摘自老師的ppt 還沒細看,先放著 定義並初始化指標陣列 filldeck deck,face,suit 初始化一副牌 shuffle deck 洗牌 deal deck 發牌 return0 void filldeck card wdeck,char wface,char wsuit void f...
114 國王遊戲
除第乙個人以外的每個人能獲得的獎賞為他之前所有人的左手乘積除以自己右手上的值 注意是之前的所有人不包括自己 通過改變順序使得獲得最多獎賞最小化。貪心策略 受到奶牛的雜技這題的影響,我們發現乘積越大的要往後放除的大的也要往後放,所以我們根據左手右手的乘積從小到大排序,然後以此計算取max即可,交了之後...