如果我查看Return
方法可用的重载,我可以这样做:
[System.Reflection.Assembly]::LoadFrom("C:\...\Newtonsoft.Json.6.0.3\lib\net40\NewtonSoft.Json.dll")
[System.Reflection.Assembly]::LoadFrom("C:\...\Neo4jClient.1.0.0.662\lib\net40\Neo4jClient.dll")
$neo = new-object Neo4jClient.GraphClient(new-object Uri("http://localhost:7474/db/data"))
$q=$neo.Cypher.Match("n").Return({param($m) $m});
$neo.Cypher.Match("n").Return.OverloadDefinitions
我看到这样的事情:
Neo4jClient.Cypher.ICypherFluentQuery [TResult]返回[TResult](字符串标识)
Neo4jClient.Cypher.ICypherFluentQuery [TResult]返回[TResult](System.Linq.Expressions.Expression [System.Func [TResult]]表达式)
Neo4jClient.Cypher.ICypherFluentQuery [TResult]返回[TResult](System.Linq.Expressions.Expression [System.Func [Neo4jClient.Cypher.ICypherResultItem,TResult]] expression)
我从中读到第一个重载采用单个字符串参数,但是,如何读取第二个重载?它需要一个linq表达式,[包含|接受]一个返回类型TResult
的无参数函数?
然后第三个,该函数需要2个参数?是两个参数还是一个参数和一个返回类型?
我该如何阅读这种语法?
答案 0 :(得分:2)
This source file应以可读的方式提供签名。
答案 1 :(得分:1)
所以答案的一部分是输出用方括号替换普通尖括号,所以这个:
Neo4jClient.Cypher.ICypherFluentQuery[TResult] Return[TResult](string identity)
实际应该是这样的:
Neo4jClient.Cypher.ICypherFluentQuery<TResult> Return<TResult>(string identity)
所以现在很清楚这些是泛型(参见:https://msdn.microsoft.com/en-us/library/ms379564%28v=vs.80%29.aspx)
这意味着:
System.Linq.Expressions.Expression<System.Func<TResult>>
表示作为返回TResult