gpt4 book ai didi

c# - 无法执行显式转换

转载 作者:太空狗 更新时间:2023-10-29 22:16:30 24 4
gpt4 key购买 nike

你能解释一下这段代码的原因吗:

private Dictionary<Type, Type> viewTypeMap = new Dictionary<Type, Type>();

public void ShowView<TView>(ViewModelBase viewModel, bool showDialog = false)
where TView : IView
{
var view = Activator.CreateInstance(viewTypeMap[typeof(TView)]);
(IView)view.ShowDialog();
}

我得到错误:

"Only assignment, call, increment, decrement, and new object expressions can be used as a statement."

IView 定义了 ShowDialog() 方法。

最佳答案

强制转换运算符的优先级低于成员访问运算符。

(A)B.C();

被解析为

(A)(B.C());

这不是法律声明。你应该写

((A)B).C();

如果您要将 B 转换为 A,然后在类型 A 上调用 C()

为了您将来的引用,优先级表在这里:

http://msdn.microsoft.com/en-us/library/aa691323(v=VS.71).aspx

关于c# - 无法执行显式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14588504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com