Грамотный перевод из 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;
            }
        }
Вот код этот же код на C++
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; }
    }
}

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


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

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

8   голосов , оценка 4 из 5
Похожие ответы