Constraint is necessary because it objectis a reference type; types of reason values ββcan be assigned objectdue to boxing (although technically all types are inherited from System.Object).
- ; a IEnumerable<T> T IEnumerable<object>, .
FileHelperEngine<T>, - FileHelperEngine (as FileHelperEngine<object>), T : class. , - , , - FileHelperEngine<T> , - , , , :/p >
using System.Collections.Generic;
using FileHelpers;
....
private void Save<T>(string destFilename, IEnumerable<T> data) where T : class
{
var engine = new FileHelperEngine<T>();
engine.HeaderText = engine.GetFileHeader();
engine.WriteFile(destFilename, data);
}