Поскольку строка subj делает это почти понятным, я хочу знать, какую разницу изменит клонирование обычного массива, если я сделаю любой из них в моем переопределенном методе Clone ().
MyArraylist - это просто производная от обычного arraylist.
ВАРИАНТ 1
return new MyArraylist(this);
ВАРИАНТ 2
MyArraylist temp = new MyArraylist();
temp = (MyArraylist)this.Clone();
return temp;
где это относится к Arraylist в фокусе, который должен быть клонирован .
и у моего класса arraylist есть перегруженный конструктор
public MyArrayList(MyArrayList oArrayList)
{
lock (oArrayList.SyncRoot)
{
foreach (object oObject in oArrayList)
{
if (oObject is ICloneable)
{
this.Add(((ICloneable)oObject).Clone());
}
else
{
this.Add(oObject);
}
}
}
}
Есть ли падение производительности, которое возникает, если я использую как в ОПЦИИ 1. для относительно большего списка?
Надеюсь, мне ясно