You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.7 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace Apewer.Models
  5. {
  6. /// <summary>文本字段。</summary>
  7. [Serializable]
  8. public sealed class TextField
  9. {
  10. /// <summary>名称。</summary>
  11. public string Name { get; set; }
  12. /// <summary>值。</summary>
  13. public string Value { get; set; }
  14. /// <summary>文本字段。</summary>
  15. public TextField() { }
  16. /// <summary>创建文本字段。</summary>
  17. public TextField(string name, string value)
  18. {
  19. this.Name = name;
  20. this.Value = value;
  21. }
  22. /// <summary>创建文本字段。</summary>
  23. public TextField(KeyValuePair<string, string> pair)
  24. {
  25. this.Name = pair.Key;
  26. this.Value = pair.Value;
  27. }
  28. /// <summary></summary>
  29. public override string ToString() => $"{Name} = {Value}";
  30. /// <summary></summary>
  31. public override bool Equals(object obj)
  32. {
  33. if (obj != null && obj is TextField field) return field.Name == Name && field.Value == Value;
  34. return false;
  35. }
  36. /// <summary></summary>
  37. public override int GetHashCode() => (Name ?? "").GetHashCode() ^ (Value ?? "").GetHashCode();
  38. /// <summary></summary>
  39. public static implicit operator KeyValuePair<string, string>(TextField field) => field == null ? default : new KeyValuePair<string, string>(field.Name, field.Value);
  40. /// <summary></summary>
  41. public static implicit operator TextField(KeyValuePair<string, string> pair) => new KeyValuePair<string, string>(pair.Key, pair.Value);
  42. }
  43. }