///<summary> /// OPERATOR OVERLOAD ///</summary> public static BarTab operator -(BarTab aBarTab1, BarTab aBarTab2) { BarTab barTab = new BarTab(); barTab.totalValue = aBarTab1.totalValue - aBarTab2.totalValue; return(barTab); }
//-------------------------------------- // Properties //-------------------------------------- // GETTER / SETTER ///<summary> /// This is a sample getter/setter property. ///</summary> // PUBLIC ///<summary> /// This is a sample public property. ///</summary> // PUBLIC STATIC ///<summary> /// This is a sample public static property. ///</summary> // PRIVATE ///<summary> /// This is a sample private property. ///</summary> // PRIVATE STATIC ///<summary> /// This is a sample private static property. ///</summary> //-------------------------------------- // Methods //-------------------------------------- ///<summary> /// Use this for initialization ///</summary> void Start() { ////////////////////////////////////////////////////////////////////////////// // // OVERLOADING OPERATORS -- MORE 'NATIVE' FUNCTIONALITY FOR YOUR CUSTOM CLASSES // // LINK: http://www.tutorialspoint.com/csharp/csharp_operator_overloading.htm // // THESE CAN BE OVERLOADED // +, -, !, ~, ++, -- // +, -, *, /, % // ==, !=, <, >, <=, >= // // THESE *CANNOT* BE OVERLOADED // &&, || // +=, -=, *=, /=, %= // =, ., ?:, ->, new, is, sizeof, typeof // ////////////////////////////////////////////////////////////////////////////// // SETUP BarTab sons_bartab = new BarTab(120.10f); BarTab daughters_bartab = new BarTab(14.00f); BarTab mothers_bartab = new BarTab(); // TEST OUTPUT Debug.Log("sons_bartab : "+ sons_bartab); Debug.Log("daughters_bartab: " + daughters_bartab); Debug.Log("mothers_bartab : "+ mothers_bartab); // TEST OPERATORS // // NOTE: THE MAGIC HERE IS THAT '+=' (and other operators) IS USING A CUSTOM (NOT NATIVE) IMPLEMENTATION // EXCELLENT! // TEST OUTPUT Debug.Log("sons_bartab : "+ sons_bartab); Debug.Log("daughters_bartab: " + daughters_bartab); Debug.Log("mothers_bartab : "+ mothers_bartab); // Debug.Log("Greater : "+ (sons_bartab > daughters_bartab)); Debug.Log("GreaterEqual: " + (sons_bartab >= daughters_bartab)); Debug.Log("Lesser : "+ (sons_bartab < daughters_bartab)); Debug.Log("LesserEqual: " + (sons_bartab <= daughters_bartab)); Debug.Log("Equals : "+ (sons_bartab == daughters_bartab)); Debug.Log("NotEquals : "+ (sons_bartab != daughters_bartab)); }
public Customer(IBillingStrategy billingStrategy) { _billingStrategy = billingStrategy; Tab = new BarTab(); }
//-------------------------------------- // Properties //-------------------------------------- // GETTER / SETTER ///<summary> /// This is a sample getter/setter property. ///</summary> // PUBLIC ///<summary> /// This is a sample public property. ///</summary> // PUBLIC STATIC ///<summary> /// This is a sample public static property. ///</summary> // PRIVATE ///<summary> /// This is a sample private property. ///</summary> // PRIVATE STATIC ///<summary> /// This is a sample private static property. ///</summary> //-------------------------------------- // Methods //-------------------------------------- ///<summary> /// Use this for initialization ///</summary> void Start () { ////////////////////////////////////////////////////////////////////////////// // // OVERLOADING OPERATORS -- MORE 'NATIVE' FUNCTIONALITY FOR YOUR CUSTOM CLASSES // // LINK: http://www.tutorialspoint.com/csharp/csharp_operator_overloading.htm // // THESE CAN BE OVERLOADED // +, -, !, ~, ++, -- // +, -, *, /, % // ==, !=, <, >, <=, >= // // THESE *CANNOT* BE OVERLOADED // &&, || // +=, -=, *=, /=, %= // =, ., ?:, ->, new, is, sizeof, typeof // ////////////////////////////////////////////////////////////////////////////// // SETUP BarTab sons_bartab = new BarTab (120.10f); BarTab daughters_bartab = new BarTab (14.00f); BarTab mothers_bartab = new BarTab (); // TEST OUTPUT Debug.Log ("sons_bartab : " + sons_bartab); Debug.Log ("daughters_bartab: " + daughters_bartab); Debug.Log ("mothers_bartab : " + mothers_bartab); // TEST OPERATORS // // NOTE: THE MAGIC HERE IS THAT '+=' (and other operators) IS USING A CUSTOM (NOT NATIVE) IMPLEMENTATION // EXCELLENT! // TEST OUTPUT Debug.Log ("sons_bartab : " + sons_bartab); Debug.Log ("daughters_bartab: " + daughters_bartab); Debug.Log ("mothers_bartab : " + mothers_bartab); // Debug.Log ("Greater : " + (sons_bartab > daughters_bartab) ); Debug.Log ("GreaterEqual: " + (sons_bartab >= daughters_bartab) ); Debug.Log ("Lesser : " + (sons_bartab < daughters_bartab) ); Debug.Log ("LesserEqual: " + (sons_bartab <= daughters_bartab) ); Debug.Log ("Equals : " + (sons_bartab == daughters_bartab) ); Debug.Log ("NotEquals : " + (sons_bartab != daughters_bartab) ); }
///<summary> /// OPERATOR OVERLOAD ///</summary> public static BarTab operator - (BarTab aBarTab1, BarTab aBarTab2) { BarTab barTab = new BarTab(); barTab.totalValue = aBarTab1.totalValue - aBarTab2.totalValue; return barTab; }