我是使用泛型的新手。
我的函数 GetValuesGenerics 给了我一些错误:
无法将类型“
ImproveMe.ViewModel.ControlYourWeight.DateTimeValuesGenerics”隐式转换为“ImproveMe.ViewModel.ControlYourWeight.ValuesGenerics<T>”
我的目标是我给出一个最小值和最大值,它会在最小值和最大值之间生成一个值范围。我也想使用泛型从其他类调用生成器。我真的不知道我是否有双重或日期时间!
你能帮帮我吗?
public static class ValuesGenericsGenerator<T>
{
public static ValuesGenerics<T> GetValuesGenerics()
{
if (typeof(T) == typeof(double))
{
return new DoubleValuesGenerics(1,1); ;
}
else if (typeof(T) == typeof(DateTime))
{
return new DateTimeValuesGenerics(DateTime.Now, DateTime.Now.AddDays(5));
}
else
{
return null;
}
}
}
public abstract class ValuesGenerics<T>
{
protected T minValue;
protected T maxValue;
public ValuesGenerics(T minValue, T maxValue)
{
this.minValue = minValue;
this.maxValue = maxValue;
}
public abstract List<T> GenerateValues();
}
public class DoubleValuesGenerics : ValuesGenerics<double>
{
public DoubleValuesGenerics(double minValue, double maxValue)
: base(minValue, maxValue)
{
}
public override List<double> GenerateValues()
{
List<double> values = new List<double>();
do
{
values.Add(minValue);
minValue++;
}
while (minValue <= maxValue);
return values;
}
}
public class DateTimeValuesGenerics : ValuesGenerics<DateTime>
{
public DateTimeValuesGenerics(DateTime minValue, DateTime maxValue)
: base(minValue, maxValue)
{
}
public override List<DateTime> GenerateValues()
{
List<DateTime> values = new List<DateTime>();
do
{
values.Add(minValue);
minValue.AddDays(1);
}
while (minValue <= maxValue);
return values;
}
}