Грамотный перевод из C++ в C# класс хранилища объектов
Формулировка задачи:
Помогите грамотно перевести. Плохо знаком с C#. Хотя бы совет что и как. Заранее спасибо.
Вот код этот же код на C++
public class Storage<T> { public int top; public T [] s = new T[0]; public Storage() { top = 0; } public void add(T var) { T [] a = new T[top+1]; for(int i=0;i<top;i++) a[i] = s[i]; a[top]= var; top++; //delete []s; // ошибка s = a; } public void remove(int p) { delete s[p]; // ошибка if(top>0) { Type [] a=new Type[top-1]; int j=0; for(int i=0;i<top;i++) { if(i!= p) { a[j]=s[i]; j++; } } //delete[]s; s = a; top--; } } public T getObject(int p) { return s[p]; } public int getCount() { return top; } }
template <class Type> class Storage { private: int top; Type *s = new Type[top]; public: Storage() { top = 0; } void add(Type var) { Type *a=new Type[top+1]; for(int i=0;i<top;i++) a[i]=s[i]; a[top]= var; top++; delete []s; s = a; } void remove(int p) { delete s[p]; if(top>0) { Type *a=new Type[top-1]; int j=0; for(int i=0;i<top;i++) { if(i!= p) { a[j]=s[i]; j++; } } delete[]s; s = a; top--; } }
Решение задачи: «Грамотный перевод из C++ в C# класс хранилища объектов»
textual
Листинг программы
public class Storage<T> { private int top; private T [] s; public Storage() { top = 0; s = new T[top]; } public void Add(T var) { T [] a = new T[top+1]; for (int i=0; i<top; i++) a[i] = s[i]; a[top]= var; top++; s = a; } public void Remove(int index) { if (top == 0) return; T[] a = new T[top-1]; for(int i=0, j=0; i<top; i++) { if(i != index) { a[j]=s[i]; j++; } } s = a; top--; } public T this[int index] { get { return s[index]; } } public int Count { get { return top; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д