Как же всё-таки сделать копию Liss, где Т - ссылочный тип (в моем случае -- класс) - C#
Формулировка задачи:
Листинг программы
- class T
- {
- int d;
- DateTime f;
- public T(int d, DateTIme date = new DateTime()) { d = d; f = date;}
- }
- //где-то в Main или в другом классе
- List<T> list = new List<T>();
- //терь тут нужно сделать полную копию
Решение задачи: «Как же всё-таки сделать копию Liss, где Т - ссылочный тип (в моем случае -- класс)»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- internal class Program
- {
- private static void Main(string[] args)
- {
- var list = new List<T> { new T(3) };
- List<T> list2 = list.ToList<T>();
- var type = typeof(T);
- var d = type.GetField("d", BindingFlags.NonPublic | BindingFlags.Instance);
- d.SetValue(list2.First(),5);
- Console.WriteLine(d.GetValue(list.First()));
- Console.WriteLine(d.GetValue(list2.First()));
- }
- }
- class T
- {
- int d;
- DateTime f;
- public T(int d, DateTime date = new DateTime())
- {
- this.d = d;
- f = date;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д