Грамотный перевод из C++ в C# класс хранилища объектов

Узнай цену своей работы

Формулировка задачи:

Помогите грамотно перевести. Плохо знаком с C#. Хотя бы совет что и как. Заранее спасибо.
Листинг программы
  1. public class Storage<T>
  2. {
  3. public int top;
  4. public T [] s = new T[0];
  5. public Storage()
  6. {
  7. top = 0;
  8. }
  9. public void add(T var)
  10. {
  11. T [] a = new T[top+1];
  12. for(int i=0;i<top;i++) a[i] = s[i];
  13. a[top]= var;
  14. top++;
  15. //delete []s; // ошибка
  16. s = a;
  17. }
  18. public void remove(int p)
  19. {
  20. delete s[p]; // ошибка
  21. if(top>0) {
  22. Type [] a=new Type[top-1];
  23. int j=0;
  24. for(int i=0;i<top;i++)
  25. {
  26. if(i!= p)
  27. {
  28. a[j]=s[i];
  29. j++;
  30. }
  31. }
  32. //delete[]s;
  33. s = a;
  34. top--;
  35. }
  36. }
  37. public T getObject(int p)
  38. {
  39. return s[p];
  40. }
  41. public int getCount()
  42. {
  43. return top;
  44. }
  45. }
Вот код этот же код на C++
Листинг программы
  1. template <class Type>
  2. class Storage
  3. {
  4. private:
  5. int top;
  6. Type *s = new Type[top];
  7. public:
  8. Storage() {
  9. top = 0;
  10. }
  11. void add(Type var) {
  12. Type *a=new Type[top+1];
  13. for(int i=0;i<top;i++) a[i]=s[i];
  14. a[top]= var;
  15. top++;
  16. delete []s;
  17. s = a;
  18. }
  19. void remove(int p) {
  20. delete s[p];
  21. if(top>0) {
  22. Type *a=new Type[top-1];
  23. int j=0;
  24. for(int i=0;i<top;i++) {
  25. if(i!= p)
  26. {
  27. a[j]=s[i];
  28. j++;
  29. }
  30. }
  31. delete[]s;
  32. s = a;
  33. top--;
  34. }
  35.  
  36. }

Решение задачи: «Грамотный перевод из C++ в C# класс хранилища объектов»

textual
Листинг программы
  1. public class Storage<T>
  2. {
  3.     private int top;
  4.     private T [] s;
  5.  
  6.     public Storage()
  7.     {
  8.         top = 0;
  9.         s = new T[top];
  10.     }
  11.  
  12.     public void Add(T var)
  13.     {
  14.         T [] a = new T[top+1];
  15.         for (int i=0; i<top; i++) a[i] = s[i];
  16.         a[top]= var;
  17.         top++;
  18.         s = a;
  19.     }
  20.  
  21.     public void Remove(int index)
  22.     {
  23.         if (top == 0) return;
  24.         T[] a = new T[top-1];
  25.         for(int i=0, j=0; i<top; i++)
  26.         {
  27.             if(i != index)
  28.             {
  29.                 a[j]=s[i];
  30.                 j++;
  31.             }
  32.         }
  33.         s = a;
  34.         top--;
  35.     }
  36.  
  37.     public T this[int index]
  38.     {
  39.         get { return s[index]; }
  40.     }
  41.  
  42.     public int Count
  43.     {
  44.         get { return top; }
  45.     }
  46. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы