VCL->C#
От: pnb  
Дата: 11.02.05 11:51
Оценка:
День добрый.
Помогите чуток с переводом кода на С#.

VCL:

procedure Clone(Src: TSomeObject; var Result : TSomeObject);
var
  i: integer;
begin
  for i := 0 to Src.Count - 1 do
    Result.Items[i] := Src.Items[i];
end;


Заранее спасибо.
Re: VCL->C#
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 11.02.05 12:03
Оценка:
Здравствуйте, pnb, Вы писали:

pnb>День добрый.

pnb>Помогите чуток с переводом кода на С#.

pnb>VCL:


pnb>
pnb>procedure Clone(Src: TSomeObject; var Result : TSomeObject);
pnb>var
pnb>  i: integer;
pnb>begin
pnb>  for i := 0 to Src.Count - 1 do
pnb>    Result.Items[i] := Src.Items[i];
pnb>end;
pnb>


pnb>Заранее спасибо.


public void Clone( TSomeObject Src, TSomeObject ref Result )
{
for (int i=0; i<Src.Count; i++)
Result.Items[i] = Src.Items[i];
}
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re: VCL->C#
От: Alexandr Sulimov Украина www.ase.com.ua
Дата: 11.02.05 12:10
Оценка:
Здравствуйте, pnb, Вы писали:

pnb>День добрый.

pnb>Помогите чуток с переводом кода на С#.

pnb>VCL:


pnb>
pnb>procedure Clone(Src: TSomeObject; var Result : TSomeObject);
pnb>var
pnb>  i: integer;
pnb>begin
pnb>  for i := 0 to Src.Count - 1 do
pnb>    Result.Items[i] := Src.Items[i];
pnb>end;
pnb>



public void Clone(TSomeObject Src, ref TSomeObject Result);
{
  for(int i = 0; i < Src.Count; i++)
    Result.Items[i] = Src.Items[i];
}


1. ref — думаю не нужен.
2. Клонирование пройдет если только в Src.Items[i] простые типы.
3. Для клонирования смотрите в строну MemberwiseClone, IClonable
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re[2]: VCL->C#
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 11.02.05 12:20
Оценка:
Здравствуйте, Serginio1, Вы писали:

Если Items это массив то просто CopyTo

 public void Clone( TSomeObject Src, TSomeObject ref Result )
  {
          Result.Items.CopyTo(Src.Items,0)
    }


Согласен c Alexandr Sulimov .
Учи С# b Net. Он достаточно прост для перехода с Delphi.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re: VCL->C#
От: AlexandrV  
Дата: 11.02.05 12:23
Оценка:
Здравствуйте, pnb, Вы писали:

pnb>День добрый.

pnb>Помогите чуток с переводом кода на С#.

pnb>VCL:


pnb>
pnb>procedure Clone(Src: TSomeObject; var Result : TSomeObject);
pnb>var
pnb>  i: integer;
pnb>begin
pnb>  for i := 0 to Src.Count - 1 do
pnb>    Result.Items[i] := Src.Items[i];
pnb>end;
pnb>


pnb>Заранее спасибо.


public TSomeObject Clone()
{
TSomeObject objResult = new TSomeObject();
for(i = 0; i < this.Items.Count; i++)
objResult.Items[i] = this.Items[i];
return objResult;
}
Re[2]: VCL->C#
От: AlexandrV  
Дата: 11.02.05 12:24
Оценка:
Здравствуйте, AlexandrV, Вы писали:

<skipped>

pnb>>Заранее спасибо.


AV>public TSomeObject Clone()

AV>{
AV> TSomeObject objResult = new TSomeObject();
AV> for(i = 0; i < this.Items.Count; i++)
AV> objResult.Items[i] = this.Items[i];
AV> return objResult;
AV>}

AV>public TSomeObject Clone()

AV>{
AV> TSomeObject objResult = new TSomeObject();
AV> for(int i = 0; i < this.Items.Count; i++)
AV> objResult.Items[i] = this.Items[i];
AV> return objResult;
AV>}
Re[2]: VCL->C#
От: Igor Trofimov  
Дата: 11.02.05 15:06
Оценка:
AS>1. ref — думаю не нужен.

Не нужен. Он и в исходном коде лишний был (var). Непонятно, зачем.
Re[3]: VCL->C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.02.05 14:18
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

Думаю, что еще Items нужно выкинуть. Это обычно артифакт аля this[].
... << RSDN@Home 1.1.4 beta 3 rev. 279>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: VCL->C#
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 15.02.05 14:52
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Serginio1, Вы писали:


VD>Думаю, что еще Items нужно выкинуть. Это обычно артифакт аля this[].


Не совсем в Delphi есть свойства массивы по умолчанию но только одно. Кроме всего прочего в Delphi может быть несколько свойств массивов но с разными именами. В данном случае это поле коллекция. Правда можно и класс наследовать от IList но это другая песня.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re[4]: VCL->C#
От: Igor Trofimov  
Дата: 15.02.05 19:26
Оценка:
VD>Думаю, что еще Items нужно выкинуть. Это обычно артифакт аля this[].

Не факт. Может оно по смыслу нужно — например, ListView.Items. Надо смотреть по контексту.
Re[5]: VCL->C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.02.05 22:14
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

VD>>Думаю, что еще Items нужно выкинуть. Это обычно артифакт аля this[].


iT>Не факт. Может оно по смыслу нужно — например, ListView.Items. Надо смотреть по контексту.


Я и не утрвеждаю, что факт. Я говорю "думаю".
... << RSDN@Home 1.1.4 beta 3 rev. 279>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VCL-&gt;C#
От: Аноним  
Дата: 11.02.05 12:03
Оценка:
void Clone (TSomeObject Src, ref TSomeObject Result)
{
for(int i=0; i<Src.Count; i++)
Result.Items = Src.Items[i];
}
ICQ: 326084932


[i]данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.