.net - C# Generics: Can I use them in this example? -
how can generics?
in current code, writing each feature on vehicle.
foreach (var vaudiosystem in vehicleaudiosystem) { var acml = (vovehiclefeaturelist) frameworkfactoryapi.createvo(typeof (vovehiclefeaturelist)); acml.isinitialized = false; acml.initialize(true); acml.vehiclefeaturelisttype = globalenums.vehiclefeaturelisttype.audiosystem; acml.valueid = vaudiosystem; vehiclespec.vehiclefeaturelists.add(acml); } foreach(var axle in vehicleaxles) { var acml = (vovehiclefeaturelist)frameworkfactoryapi.createvo(typeof(vovehiclefeaturelist)); acml.isinitialized = false; acml.initialize(true); acml.vehiclefeaturelisttype = globalenums.vehiclefeaturelisttype.axles; acml.valueid = axle; vehiclespec.vehiclefeaturelists.add(acml); } foreach(var nav in vehiclenavsystem) { var acml = (vovehiclefeaturelist)frameworkfactoryapi.createvo(typeof(vovehiclefeaturelist)); acml.isinitialized = false; acml.initialize(true); acml.vehiclefeaturelisttype = globalenums.vehiclefeaturelisttype.navsystem; acml.valueid = nav; vehiclespec.vehiclefeaturelists.add(acml); }
is there someway can reduce length of code using generics or barking wrong tree?
you can write method adds vehicle features vehiclespec
public void addvehiculefeatures(ienumerable<int> featurelist, globalenums.vehiclefeaturelisttype listtype, vehicle vehiclespec) { foreach(int feature in featurelist) { var acml = (vovehiclefeaturelist)frameworkfactoryapi.createvo(typeof(vovehiclefeaturelist)); acml.isinitialized = false; acml.initialize(true); acml.vehiclefeaturelisttype = listtype; acml.valueid = nav; vehiclespec.vehiclefeaturelists.add(acml); } }
and usage:
addvehiculefeatures(axeslist, globalenums.vehiclefeaturelisttype.axes, vehiclespec) addvehiculefeatures(otherlist, globalenums.vehiclefeaturelisttype.other, vehiclespec) addvehiculefeatures(thirdfeaturelist, globalenums.vehiclefeaturelisttype.third one, vehiclespec)
Comments
Post a Comment