C# 隐式转换到基类-Resharper显示错误
我想知道为什么Resharper 2017.1.2会显示一个错误“转换为基类”,但代码不会编译。按如下所示进行隐式转换是一种不好的做法吗C# 隐式转换到基类-Resharper显示错误,c#,resharper,C#,Resharper,我想知道为什么Resharper 2017.1.2会显示一个错误“转换为基类”,但代码不会编译。按如下所示进行隐式转换是一种不好的做法吗 /// <summary> /// A generic range class. /// </summary> class Range<TBar> { public TBar From { get; } public TBar To { get; } public Range(TBar rangeF
/// <summary>
/// A generic range class.
/// </summary>
class Range<TBar>
{
public TBar From { get; }
public TBar To { get; }
public Range(TBar rangeFrom, TBar rangeTo)
{
From = rangeFrom;
To = rangeTo;
}
}
/// <summary>
/// A specific range class.
/// </summary>
class DateTimeRange : Range<DateTime>
{
/// <summary>
/// Conversion to Range of DateTimeOffset...
/// Here Resharper shows an error.
/// </summary>
public static implicit operator Range<DateTimeOffset>(DateTimeRange range)
{
return new Range<DateTimeOffset>(range.From, range.To);
}
public DateTimeRange(DateTime rangeFrom, DateTime rangeTo) : base(rangeFrom, rangeTo)
{
}
// Some DateTime specific methods...
}
//
///泛型范围类。
///
等级范围
{
来自{get;}的公共TBar
要{get;}的公共TBar
公共范围(TBar范围从,TBar范围到)
{
From=rangeFrom;
To=范围To;
}
}
///
///特定的范围类别。
///
类DateTimeRange:范围
{
///
///转换到DateTimeOffset的范围。。。
///这里Resharper显示了一个错误。
///
公共静态隐式运算符范围(DateTimeRange范围)
{
返回新范围(Range.From、Range.To);
}
公共DateTimeRange(DateTime rangeFrom,DateTime rangeTo):基(rangeFrom,rangeTo)
{
}
//一些特定于日期时间的方法。。。
}
这个装置背后的想法是能够进行以下铸造:
var foo = new DateTimeRange(DateTime.MinValue, DateTime.MaxValue);
var baz = (Range<DateTimeOffset>) foo;
var foo=new DateTimeRange(DateTime.MinValue,DateTime.MaxValue);
var baz=(范围)foo;
当DateTimeRange
从Range
继承时,对其进行强制转换是毫无意义的,不会添加任何功能。你为什么想要这个?@HimBromBeere:No,DateTimeRange
来自Range
,而不是Range
。