Guest User

Untitled

a guest
Jan 23rd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. using System;
  2.  
  3. /// <summary>
  4. /// Данные об объекте.
  5. /// </summary>
  6. public class TObjectData
  7. {
  8.  
  9. /// <summary>
  10. /// Тип объекта.
  11. /// </summary>
  12. public string ObjectType { get; protected set; }
  13.  
  14. /// <summary>
  15. /// Идентификатор объекта.
  16. /// </summary>
  17. public int ObjectID { get; protected set; }
  18.  
  19. /// <summary>
  20. /// Создать новый объект, инициализированный указанными значениями.
  21. /// </summary>
  22. /// <param name="ObjectType">Тип объекта.</param>
  23. /// <param name="ObjectID">Идентификатор объекта.</param>
  24. public TObjectData(string ObjectType, int ObjectID)
  25. {
  26. this.ObjectType = ObjectType;
  27. this.ObjectID = ObjectID;
  28. }
  29.  
  30. }
  31.  
  32. /// <summary>
  33. /// Данные об именованом объекте.
  34. /// </summary>
  35. public class TNamedObjectData : TObjectData
  36. {
  37.  
  38. /// <summary>
  39. /// Имя объекта.
  40. /// </summary>
  41. public string Name { get; protected set; }
  42.  
  43. /// <summary>
  44. /// Создать новый именованый объект, инициализированный указанными значениями.
  45. /// </summary>
  46. /// <param name="ObjectType">Тип объекта.</param>
  47. /// <param name="ObjectID">Идентификатор объекта.</param>
  48. /// <param name="Name">Имя объекта.</param>
  49. public TNamedObjectData(string ObjectType, int ObjectID, string Name) : base(ObjectType, ObjectID)
  50. {
  51. this.Name = Name;
  52. }
  53.  
  54. /// <summary>
  55. /// Получить идентификатор объекта по его имени.
  56. /// </summary>
  57. /// <param name="Objects">Массив объектов в котором будет производиться поиск.</param>
  58. /// <param name="Name">Имя искомого объекта.</param>
  59. /// <returns>Идентификатор объекта или -1 если объект с таким именем не найден.</returns>
  60. public static int GetObjectIDByName(TObjectData[] Objects, string Name)
  61. {
  62. for (int i = 0; i < Objects.Length; i++)
  63. {
  64. // Попытаться привести i-ый элемент массива к типу TNamedObjectData
  65. TNamedObjectData TempObject = Objects[i] as TNamedObjectData;
  66.  
  67. // Если приведение типов прошло успешно, то
  68. if (TempObject != null)
  69. {
  70. if (TempObject.Name == Name)
  71. {
  72. return TempObject.ObjectID;
  73. }
  74. }
  75. }
  76.  
  77. // Ничего не найдено
  78. return -1;
  79. }
  80.  
  81. }
Add Comment
Please, Sign In to add comment