Работа со списками: найти ошибку в коде - C#
Формулировка задачи:
Добрый день! Коллеги, нужна помощь, буду очень благодарен. Дали такое задание:
1. Какая проблема есть в коде, чем она объясняется?
2. Привести два-три возможных решения проблемы, редактируя только функцию Print
using System;
using System.Collections.Generic;
namespace Test
{
class Program
{
class Type1
{
public int Value1 { get; set; }
}
class Type2 : Type1
{
public int Value2 { get; set; }
}
static void Main(string[] args)
{
List<Type1> list1 = new List<Type1>() { /* some elements */ };
List<Type2> list2 = new List<Type2>() { /* some elements */ };
Print(list1);
Print(list2);
Console.ReadLine();
}
static void Print(List<Type1> list)
{
list.ForEach(x => Console.WriteLine(x.Value1));
}
}
}Решение задачи: «Работа со списками: найти ошибку в коде»
textual
Листинг программы
static void Print(object list)
{
var prop = typeof (Type1).GetProperty("Value1", BindingFlags.Instance | BindingFlags.Public);
foreach (object t in (IEnumerable)(list))
{
Console.WriteLine(prop.GetValue(t));
}
}