我有一个问题:.NET Framework 3.5 中似乎存在错误或某些东西。例如,考虑下面的代码:
public interface IListModel
{
Object Selected { get; set; }
}
// And then I define a class:
class ListModel <T> : IListModel where T : class
{
Object IListModel.Selected
{
get
{
return Selected;
}
set
{
Selected = value as T;
}
}
private T _selected;
public virtual T Selected
{
get { return default (T); }
set
{
_selected = value;
}
}
}
public interface IDummy : IListModel
{
}
// Then I define this class:
public class RadioGroupModel : ListModel<string>, IDummy
{
public override string Selected
{
get
{
return base.Selected;
}
set
{
base.Selected = value;
}
}
}
如果我运行:
typeof (RadioGroupModel).GetProperty ("Selected", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
在某些机器上,我收到一个AmbiguousMatchException
. 在我的电脑上,它就像一个魅力。请注意,目标框架是 .NET Framework 3.5 Full。知道发生了什么吗?