- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个具有以下重载的方法:
string Call(string function, Dictionary<string, object> parameters, object body)
string Call(string function, Dictionary<string, object> parameters, JObject body)
现在我添加了另一个重载:
string Call(string function)
{
return Call(function, null, (JObject) null);
}
我向 JObject
添加了一个转换,这样编译器就知道它应该使用哪个重载。但是 Visual Studio 告诉我类型转换是多余的。但是,为什么我的调用在没有类型转换的情况下不会模棱两可?
最佳答案
But why isn't my call ambiguous without the cast?
因为使用 JObject
参数的重载比使用 object
参数的重载“更好”...因为从 null
的转换到 JObject
比从 null
到 object
的转换“更好”。
JObject
比 object
更具体,因为存在从 JObject
到 object
的隐式转换,但不是反之亦然。
如果第一个方法的最终参数是 string
而不是(例如)那么两个重载都不会比另一个更好,并且调用会不明确 Actor 。
有关所有复杂的详细信息,请参阅 C# 5 规范的第 7.5.3 节。特别是,第 7.5.3.5 节(“更好的转换目标”)与此处相关。
关于c# - 为什么这个 Actor 是多余的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31745365/
我的服务层有如下方法 public ModuleResponse GetModules(ModuleRequest request) { var response = new ModuleRe
我构建的工具栏与大多数工具栏一样,minHeight 设置为 actionBarSize: 但是,如果我删除这个属性,就完全没有区别了。工具栏保持其 actionBarSize,即使我删除菜单并将
我已经为 SVG 和剪辑路径苦苦挣扎了一段时间。 我正在尝试创建一个三 Angular 形剪辑路径,它将覆盖照片以给顶部一个“三 Angular 形”边缘。 我试图实现与照片完全相同的效果,但三 An
我有一个带有 2 个索引的 PostgreSQL 表。其中一个索引涵盖了 website_id 和 tweet_id 列,是一个唯一的 B 树索引。第二个索引只覆盖 website_id 列,是一个非
我是一名优秀的程序员,十分优秀!