public Standing(Entity.User user, Entity.Contest contest) { UserID = user.ID; Details = new List <StandingCol>(); var problems = contest.Problems.OrderBy(x => x.Credit); foreach (var problem in problems) { Details.Add(new StandingCol(user, problem)); } Key1 = Details.Sum(x => x.Key1); Key2 = Details.Sum(x => x.Key2); Key3 = Details.Sum(x => x.Key3); Gravatar = Helpers.Gravatar.GetAvatarURL(user.Gravatar, 180); Nickname = Helpers.ColorName.GetNicknameHtml(user.Nickname, user.Ratings.Sum(x => x.Credit) + 1500); UserID = user.ID; Display1 = Key1.ToString(); switch (contest.Format) { case Entity.ContestFormat.OI: Display2 = Key2 + " ms"; break; case Entity.ContestFormat.OPJOI: Display2 = Key2.ToString(); break; case Entity.ContestFormat.ACM: Display2 = new TimeSpan(0, 0, Key2).ToString("c"); break; case Entity.ContestFormat.Codeforces: case Entity.ContestFormat.TopCoder: if (Key2 == 0 && Key3 == 0) { Display2 = ""; } else if (Key2 != 0 && Key3 == 0) { Display2 = "+" + Key2; } else if (Key2 == 0 && Key3 != 0) { Display2 = "-" + Key3; } else { Display2 = "+" + Key2 + " : -" + Key3; } Key1 += Key2 * 100; Key1 -= Key3 * 50; Display1 = Key1.ToString(); break; } }
public override bool Equals(object obj) { KeyPair <TKey1, TKey2> o = obj as KeyPair <TKey1, TKey2>; if (o == null) { return(false); } return(Key1.Equals(o.Key1) && Key2.Equals(o.Key2)); }
public override bool Equals(object obj) { if (obj is CompoundKey) { var compositeKey = (CompoundKey)obj; return(Key1.Equals(compositeKey.Key1) && Key2.Equals(compositeKey.Key2)); } return(false); }
public vStanding(User user, Contest contest) { UserID = user.ID; Details = new List <vStandingCol>(); var problems = contest.ContestProblems.OrderBy(x => x.Point); foreach (var problem in problems) { Details.Add(new vStandingCol(user, problem.Problem, contest, problem.Point)); } Key1 = Details.Sum(x => x.Key1); Key2 = Details.Sum(x => x.Key2); Key3 = Details.Sum(x => x.Key3); Gravatar = "/Avatar/" + user.ID; Nickname = Helpers.ColorName.GetNicknameHtml(user.Username, user.Role); UserID = user.ID; Display1 = Key1.ToString(); switch (contest.Format) { case ContestFormat.OI: Display2 = Key2 + " ms"; break; //case ContestFormat.OPJOI: // Display2 = Key2.ToString(); // break; case ContestFormat.ACM: Display2 = new TimeSpan(0, 0, Key2).ToString("c"); break; case ContestFormat.Codeforces: //case ContestFormat.TopCoder: if (Key2 == 0 && Key3 == 0) { Display2 = ""; } else if (Key2 != 0 && Key3 == 0) { Display2 = "+" + Key2; } else if (Key2 == 0 && Key3 != 0) { Display2 = "-" + Key3; } else { Display2 = "+" + Key2 + " : -" + Key3; } Key1 += Key2 * 100; Key1 -= Key3 * 50; Display1 = Key1.ToString(); break; } }
/// <summary> /// Gets a string representing the key or keys such as R or R & T. Modifiers are not included /// </summary> /// <returns> /// String, if <see cref="HotkeyKeys.IsCombine"/> Or <see cref="HotkeyKeys.IsMainModKey"/> is true then /// a combined format such as R & T; Otherwise, a single format such as T /// </returns> public string ToReeadableKeys() { if (this.IsCombine == true || this.IsMultiKey == true) { return(string.Format("{0} {1} {2}", Key1.ToString(), Properties.Resources.KeysCombine, Key2.ToString())); } else { return(Key1.ToString()); } }
void Awake() { if (Instance == null) { Instance = this; } else { Debug.Log("Warning: multiple " + this + " in scene!"); } }
public YAMLNode ExportYAML(IExportContainer container) { YAMLMappingNode node = new YAMLMappingNode(); GradientLayout layout = container.ExportLayout.Serialized.Gradient; node.AddSerializedVersion(layout.Version); if (layout.Version == 1) { node.Add(layout.Key0Name, Key0_32.ExportYAML(container)); node.Add(layout.Key1Name, Key1_32.ExportYAML(container)); node.Add(layout.Key2Name, Key2_32.ExportYAML(container)); node.Add(layout.Key3Name, Key3_32.ExportYAML(container)); node.Add(layout.Key4Name, Key4_32.ExportYAML(container)); node.Add(layout.Key5Name, Key5_32.ExportYAML(container)); node.Add(layout.Key6Name, Key6_32.ExportYAML(container)); node.Add(layout.Key7Name, Key7_32.ExportYAML(container)); } else { node.Add(layout.Key0Name, Key0.ExportYAML(container)); node.Add(layout.Key1Name, Key1.ExportYAML(container)); node.Add(layout.Key2Name, Key2.ExportYAML(container)); node.Add(layout.Key3Name, Key3.ExportYAML(container)); node.Add(layout.Key4Name, Key4.ExportYAML(container)); node.Add(layout.Key5Name, Key5.ExportYAML(container)); node.Add(layout.Key6Name, Key6.ExportYAML(container)); node.Add(layout.Key7Name, Key7.ExportYAML(container)); } node.Add(layout.Ctime0Name, Ctime0); node.Add(layout.Ctime1Name, Ctime1); node.Add(layout.Ctime2Name, Ctime2); node.Add(layout.Ctime3Name, Ctime3); node.Add(layout.Ctime4Name, Ctime4); node.Add(layout.Ctime5Name, Ctime5); node.Add(layout.Ctime6Name, Ctime6); node.Add(layout.Ctime7Name, Ctime7); node.Add(layout.Atime0Name, Atime0); node.Add(layout.Atime1Name, Atime1); node.Add(layout.Atime2Name, Atime2); node.Add(layout.Atime3Name, Atime3); node.Add(layout.Atime4Name, Atime4); node.Add(layout.Atime5Name, Atime5); node.Add(layout.Atime6Name, Atime6); node.Add(layout.Atime7Name, Atime7); if (layout.HasMode) { node.Add(layout.ModeName, (int)Mode); } node.Add(layout.NumColorKeysName, NumColorKeys); node.Add(layout.NumAlphaKeysName, NumAlphaKeys); return(node); }
public void Write(AssetWriter writer) { GradientLayout layout = writer.Layout.Serialized.Gradient; if (layout.Version == 1) { Key0_32.Write(writer); Key1_32.Write(writer); Key2_32.Write(writer); Key3_32.Write(writer); Key4_32.Write(writer); Key5_32.Write(writer); Key6_32.Write(writer); Key7_32.Write(writer); } else { Key0.Write(writer); Key1.Write(writer); Key2.Write(writer); Key3.Write(writer); Key4.Write(writer); Key5.Write(writer); Key6.Write(writer); Key7.Write(writer); } writer.Write(Ctime0); writer.Write(Ctime1); writer.Write(Ctime2); writer.Write(Ctime3); writer.Write(Ctime4); writer.Write(Ctime5); writer.Write(Ctime6); writer.Write(Ctime7); writer.Write(Atime0); writer.Write(Atime1); writer.Write(Atime2); writer.Write(Atime3); writer.Write(Atime4); writer.Write(Atime5); writer.Write(Atime6); writer.Write(Atime7); if (layout.HasMode) { writer.Write((int)Mode); } writer.Write(NumColorKeys); writer.Write(NumAlphaKeys); writer.AlignStream(); }
public YAMLNode ExportYAML(IExportContainer container) { YAMLMappingNode node = new YAMLMappingNode(); node.AddSerializedVersion(ToSerializedVersion(container.ExportVersion)); if (IsColor32(container.ExportVersion)) { node.Add(Key0Name, ((ColorRGBA32)Key0).ExportYAML(container)); node.Add(Key1Name, ((ColorRGBA32)Key1).ExportYAML(container)); node.Add(Key2Name, ((ColorRGBA32)Key2).ExportYAML(container)); node.Add(Key3Name, ((ColorRGBA32)Key3).ExportYAML(container)); node.Add(Key4Name, ((ColorRGBA32)Key4).ExportYAML(container)); node.Add(Key5Name, ((ColorRGBA32)Key5).ExportYAML(container)); node.Add(Key6Name, ((ColorRGBA32)Key6).ExportYAML(container)); node.Add(Key7Name, ((ColorRGBA32)Key7).ExportYAML(container)); } else { node.Add(Key0Name, Key0.ExportYAML(container)); node.Add(Key1Name, Key1.ExportYAML(container)); node.Add(Key2Name, Key2.ExportYAML(container)); node.Add(Key3Name, Key3.ExportYAML(container)); node.Add(Key4Name, Key4.ExportYAML(container)); node.Add(Key5Name, Key5.ExportYAML(container)); node.Add(Key6Name, Key6.ExportYAML(container)); node.Add(Key7Name, Key7.ExportYAML(container)); } node.Add(Ctime0Name, Ctime0); node.Add(Ctime1Name, Ctime1); node.Add(Ctime2Name, Ctime2); node.Add(Ctime3Name, Ctime3); node.Add(Ctime4Name, Ctime4); node.Add(Ctime5Name, Ctime5); node.Add(Ctime6Name, Ctime6); node.Add(Ctime7Name, Ctime7); node.Add(Atime0Name, Atime0); node.Add(Atime1Name, Atime1); node.Add(Atime2Name, Atime2); node.Add(Atime3Name, Atime3); node.Add(Atime4Name, Atime4); node.Add(Atime5Name, Atime5); node.Add(Atime6Name, Atime6); node.Add(Atime7Name, Atime7); if (HasMode(container.ExportVersion)) { node.Add(ModeName, (int)Mode); } node.Add(NumColorKeysName, NumColorKeys); node.Add(NumAlphaKeysName, NumAlphaKeys); return(node); }
public void Read(AssetReader reader) { GradientLayout layout = reader.Layout.Serialized.Gradient; if (layout.Version == 1) { Key0_32 = reader.ReadAsset <ColorRGBA32>(); Key1_32 = reader.ReadAsset <ColorRGBA32>(); Key2_32 = reader.ReadAsset <ColorRGBA32>(); Key3_32 = reader.ReadAsset <ColorRGBA32>(); Key4_32 = reader.ReadAsset <ColorRGBA32>(); Key5_32 = reader.ReadAsset <ColorRGBA32>(); Key6_32 = reader.ReadAsset <ColorRGBA32>(); Key7_32 = reader.ReadAsset <ColorRGBA32>(); } else { Key0.Read(reader); Key1.Read(reader); Key2.Read(reader); Key3.Read(reader); Key4.Read(reader); Key5.Read(reader); Key6.Read(reader); Key7.Read(reader); } Ctime0 = reader.ReadUInt16(); Ctime1 = reader.ReadUInt16(); Ctime2 = reader.ReadUInt16(); Ctime3 = reader.ReadUInt16(); Ctime4 = reader.ReadUInt16(); Ctime5 = reader.ReadUInt16(); Ctime6 = reader.ReadUInt16(); Ctime7 = reader.ReadUInt16(); Atime0 = reader.ReadUInt16(); Atime1 = reader.ReadUInt16(); Atime2 = reader.ReadUInt16(); Atime3 = reader.ReadUInt16(); Atime4 = reader.ReadUInt16(); Atime5 = reader.ReadUInt16(); Atime6 = reader.ReadUInt16(); Atime7 = reader.ReadUInt16(); if (layout.HasMode) { Mode = (GradientMode)reader.ReadInt32(); } NumColorKeys = reader.ReadByte(); NumAlphaKeys = reader.ReadByte(); reader.AlignStream(); }
//https://www.loganfranken.com/blog/687/overriding-equals-in-c-part-1/ public override int GetHashCode() { unchecked { const int hashingBase = (int)2166136261; const int hashingMultiplier = 16777619; int hash = hashingBase; hash = (hash * hashingMultiplier) ^ Key1.GetHashCode(); hash = (hash * hashingMultiplier) ^ Key2.GetHashCode(); return(hash); } }
public override int GetHashCode() { unchecked { var hashCode = (Name != null ? Name.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Key1 != null ? Key1.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Key2 != null ? Key2.GetHashCode() : 0); hashCode = (hashCode * 397) ^ HasShiftModifier.GetHashCode(); hashCode = (hashCode * 397) ^ HasCtrlModifier.GetHashCode(); hashCode = (hashCode * 397) ^ HasAltModifier.GetHashCode(); hashCode = (hashCode * 397) ^ IsEnabled.GetHashCode(); return(hashCode); } }
public void Write(AssetWriter writer) { if (IsColor32(writer.Version)) { Key0.Write32(writer); Key1.Write32(writer); Key2.Write32(writer); Key3.Write32(writer); Key4.Write32(writer); Key5.Write32(writer); Key6.Write32(writer); Key7.Write32(writer); } else { Key0.Write(writer); Key1.Write(writer); Key2.Write(writer); Key3.Write(writer); Key4.Write(writer); Key5.Write(writer); Key6.Write(writer); Key7.Write(writer); } writer.Write(Ctime0); writer.Write(Ctime1); writer.Write(Ctime2); writer.Write(Ctime3); writer.Write(Ctime4); writer.Write(Ctime5); writer.Write(Ctime6); writer.Write(Ctime7); writer.Write(Atime0); writer.Write(Atime1); writer.Write(Atime2); writer.Write(Atime3); writer.Write(Atime4); writer.Write(Atime5); writer.Write(Atime6); writer.Write(Atime7); if (HasMode(writer.Version)) { writer.Write((int)Mode); } writer.Write(NumColorKeys); writer.Write(NumAlphaKeys); writer.AlignStream(); }
public void Read(AssetReader reader) { if (IsColor32(reader.Version)) { Key0.Read32(reader); Key1.Read32(reader); Key2.Read32(reader); Key3.Read32(reader); Key4.Read32(reader); Key5.Read32(reader); Key6.Read32(reader); Key7.Read32(reader); } else { Key0.Read(reader); Key1.Read(reader); Key2.Read(reader); Key3.Read(reader); Key4.Read(reader); Key5.Read(reader); Key6.Read(reader); Key7.Read(reader); } Ctime0 = reader.ReadUInt16(); Ctime1 = reader.ReadUInt16(); Ctime2 = reader.ReadUInt16(); Ctime3 = reader.ReadUInt16(); Ctime4 = reader.ReadUInt16(); Ctime5 = reader.ReadUInt16(); Ctime6 = reader.ReadUInt16(); Ctime7 = reader.ReadUInt16(); Atime0 = reader.ReadUInt16(); Atime1 = reader.ReadUInt16(); Atime2 = reader.ReadUInt16(); Atime3 = reader.ReadUInt16(); Atime4 = reader.ReadUInt16(); Atime5 = reader.ReadUInt16(); Atime6 = reader.ReadUInt16(); Atime7 = reader.ReadUInt16(); if (HasMode(reader.Version)) { Mode = (GradientMode)reader.ReadInt32(); } NumColorKeys = reader.ReadByte(); NumAlphaKeys = reader.ReadByte(); reader.AlignStream(); }
public void Read(AssetStream stream) { if (IsColor32(stream.Version)) { Key32_0.Read(stream); Key32_1.Read(stream); Key32_2.Read(stream); Key32_3.Read(stream); Key32_4.Read(stream); Key32_5.Read(stream); Key32_6.Read(stream); Key32_7.Read(stream); } else { Key0.Read(stream); Key1.Read(stream); Key2.Read(stream); Key3.Read(stream); Key4.Read(stream); Key5.Read(stream); Key6.Read(stream); Key7.Read(stream); } Ctime0 = stream.ReadUInt16(); Ctime1 = stream.ReadUInt16(); Ctime2 = stream.ReadUInt16(); Ctime3 = stream.ReadUInt16(); Ctime4 = stream.ReadUInt16(); Ctime5 = stream.ReadUInt16(); Ctime6 = stream.ReadUInt16(); Ctime7 = stream.ReadUInt16(); Atime0 = stream.ReadUInt16(); Atime1 = stream.ReadUInt16(); Atime2 = stream.ReadUInt16(); Atime3 = stream.ReadUInt16(); Atime4 = stream.ReadUInt16(); Atime5 = stream.ReadUInt16(); Atime6 = stream.ReadUInt16(); Atime7 = stream.ReadUInt16(); if (IsReadMode(stream.Version)) { Mode = stream.ReadInt32(); } NumColorKeys = stream.ReadByte(); NumAlphaKeys = stream.ReadByte(); stream.AlignStream(AlignType.Align4); }
/// <summary> /// オブジェクトが等しいかどうか調べます。 /// </summary> /// <param name="o"> /// 比較対象のオブジェクトです。 /// </param> /// <returns> /// オブジェクトが等しければtrue、そうではないのならfalseです。 /// </returns> public bool Equals(CompositeKey <KEY1_T, KEY2_T> o) { if (o == null || GetType() != o.GetType()) { return(false); } if (!Key1.Equals(o.Key1)) { return(false); } if (!Key2.Equals(o.Key2)) { return(false); } return(true); }
public override int GetHashCode() { if (Key1 == null && Key2 == null) { return(0); } if (Key1 == null) { return(Key2.GetHashCode()); } if (Key2 == null) { return(Key1.GetHashCode()); } return(Key1.GetHashCode() * Key2.GetHashCode()); }
public override string ToString() { var s = new System.Text.StringBuilder(""); s.Append('['); if (Key1 != null) { s.Append(Key1.ToString()); } s.Append(", "); if (Key2 != null) { s.Append(Key2.ToString()); } s.Append(']'); return(s.ToString()); }
public override bool Equals(object obj) { if (obj == null) { return(false); } if (ReferenceEquals(this, obj)) { return(true); } if (obj.GetType() != typeof(CompositeKey <TW, TX>)) { return(false); } var other = (CompositeKey <TW, TX>)obj; return(Key1.Equals(other.Key1) && Key2.Equals(other.Key2)); }
/// <summary> /// オブジェクトの大小を比較します。 /// </summary> /// <param name="o"> /// 比較対象のオブジェクトです。 /// </param> /// <returns> /// このオブジェクトがoより大きいならば正の値、oと等しいならば0、oより小さいならば負の値を返します。 /// </returns> public int CompareTo(ComparableCompositeKey <KEY1_T, KEY2_T, KEY3_T, KEY4_T, KEY5_T, KEY6_T, KEY7_T> o) { if (o == null) { return(1); } if (GetType() != o.GetType()) { throw (new ArgumentException()); } int c; if ((c = Key1.CompareTo(o.Key1)) != 0) { return(c); } if ((c = Key2.CompareTo(o.Key2)) != 0) { return(c); } if ((c = Key3.CompareTo(o.Key3)) != 0) { return(c); } if ((c = Key4.CompareTo(o.Key4)) != 0) { return(c); } if ((c = Key5.CompareTo(o.Key5)) != 0) { return(c); } if ((c = Key6.CompareTo(o.Key6)) != 0) { return(c); } if ((c = Key7.CompareTo(o.Key7)) != 0) { return(c); } return(0); }
/// <summary> /// オブジェクトの大小を比較します。 /// </summary> /// <param name="o"> /// 比較対象のオブジェクトです。 /// </param> /// <returns> /// このオブジェクトがoより大きいならば正の値、oと等しいならば0、oより小さいならば負の値を返します。 /// </returns> public int CompareTo(ComparableCompositeKey <KEY1_T, KEY2_T> o) { if (o == null) { return(1); } if (GetType() != o.GetType()) { throw (new ArgumentException()); } int c; if ((c = Key1.CompareTo(o.Key1)) != 0) { return(c); } if ((c = Key2.CompareTo(o.Key2)) != 0) { return(c); } return(0); }
/// <summary> /// オブジェクトが等しいかどうか調べます。 /// </summary> /// <param name="o"> /// 比較対象のオブジェクトです。 /// </param> /// <returns> /// オブジェクトが等しければtrue、そうではないのならfalseです。 /// </returns> public bool Equals(CompositeKey <KEY1_T, KEY2_T, KEY3_T, KEY4_T, KEY5_T, KEY6_T, KEY7_T> o) { if (o == null || GetType() != o.GetType()) { return(false); } if (!Key1.Equals(o.Key1)) { return(false); } if (!Key2.Equals(o.Key2)) { return(false); } if (!Key3.Equals(o.Key3)) { return(false); } if (!Key4.Equals(o.Key4)) { return(false); } if (!Key5.Equals(o.Key5)) { return(false); } if (!Key6.Equals(o.Key6)) { return(false); } if (!Key7.Equals(o.Key7)) { return(false); } return(true); }
private void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { if (!gameMenuOn) { gameMenu.SetActive(true); Cursor.lockState = CursorLockMode.None; Cursor.visible = true; gameMenuOn = true; } else { gameMenu.SetActive(false); Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; gameMenuOn = false; } } if (player.Health <= 0f) { player.playerDied(); Cursor.visible = true; Cursor.lockState = CursorLockMode.None; } if (Input.GetKeyDown(KeyCode.E)) { int x = Screen.width / 2; int y = Screen.height / 2; Ray ray = fpsCamera.GetComponent <Camera>().ScreenPointToRay(new Vector3(x, y)); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { Key1 objectKey = hit.collider.GetComponent <Key1>(); if (objectKey != null) { player.SetKey1Active(); beep.Play(0); } Key2 objectKey2 = hit.collider.GetComponent <Key2>(); if (objectKey2 != null) { player.SetKey2Active(); beep.Play(0); } } } counter = 0; for (int i = 0; i < enemies.Count; i++) { float distance = Vector3.Distance(enemies[i].transform.position, player.transform.position); if (distance < damageDistance && player.Health >= 0f) { damageVisual.SetActive(true); player.Health -= damage * Time.deltaTime; counter++; } else if (counter == 0) // Sets visual to false if no ghosts near { damageVisual.SetActive(false); } } }
/// <summary> /// Gets a string representing the Hotkey in Human Readable format such as Alt + Ctrl + G /// </summary> /// <returns> /// String representing the Hotkey in a human readable format. /// </returns> /// <remarks> /// The return value will represent the Hotkey after internal rules are applied. Some of the properties /// of the instance may be ignored if the break AutoHotkey hotkey rules. See the various properties in /// <see cref="AhkHotkeys"/> for more information. Also you may want to review AutoHotkey Documentation. /// The Internal rules are the same for the <see cref="ToString"/> method. This ensures that both methods /// represent the same values. /// </remarks> public string ToReadableString() { if (Key1 == HotkeysEnum.None) { return(string.Empty); } StringBuilder sb = new StringBuilder(); if (this.InstallHook == true) { sb.Append(Properties.Resources.KeysHook); sb.Append(" + "); } if (this.NativeBlock == true) { sb.Append(Properties.Resources.KeysNativeBlock); sb.Append(" + "); } if (Key1 == HotkeysEnum.CtrlBreak) { // CtrlBreak is a special case and is not to be combined with any other keys // other than InstallHook and NativeBlock // IsCombine and IsMultikey takes care of Hey2 being CtrlBreak so no other action // is required in this method sb.Append(Key1.ToString()); return(sb.ToString()); } if (this.WildCard == true) { sb.Append(Properties.Resources.KeysWildcard); sb.Append(" + "); } if (this.Right == true && this.IsMainModKey == true) { sb.Append(Properties.Resources.KeyRight); sb.Append(" + "); } if (this.Right == false && this.Left == true && this.IsMainModKey == true) { sb.Append(Properties.Resources.KeyLeft); sb.Append(" + "); } if (this.Ctrl == true) { sb.Append(Properties.Resources.KeyCtrl); sb.Append(" + "); } if (this.Alt == true) { sb.Append(Properties.Resources.KeyAlt); sb.Append(" + "); } if (this.Shift == true) { sb.Append(Properties.Resources.KeyShift); sb.Append(" + "); } if (this.Win == true) { sb.Append(Properties.Resources.KeyWin); sb.Append(" + "); } //sb.Length -= 3; // remove the last + sb.Append(Key1.ToString()); if (this.IsCombine == true || this.IsMultiKey == true) { sb.Append(' '); sb.Append(Properties.Resources.KeysCombine); sb.Append(' '); sb.Append(Key2.ToString()); } if (this.UP == true) { sb.Append(' '); sb.Append(Properties.Resources.KeyUP); } return(sb.ToString()); }
public override string ToString() { return(Key1.ToString() + " - " + Key2.ToString() + " - " + Value.ToString()); }
public override int GetHashCode() { return(Key1.GetHashCode() ^ Key2.GetHashCode()); }
public bool Equals(ComplexKey other) { return(Key1.Equals(other.Key1) && Key2.Equals(other.Key2)); }
public Key3(Key1 key1, Key2 key2) { firstKey = key1; secondKey = key2; }
public override string ToString() { return(Key1.ToString() + ", " + Key2.ToString()); }
/// <summary> /// オブジェクトのハッシュ値を計算します。 /// </summary> /// <returns> /// 計算されたハッシュ値です。 /// </returns> public override int GetHashCode() { return(Key1.GetHashCode() ^ Key2.GetHashCode() ^ Key3.GetHashCode() ^ Key4.GetHashCode() ^ Key5.GetHashCode() ^ Key6.GetHashCode() ^ Key7.GetHashCode()); }