如何阅读方法签名?

时间:2015-05-20 16:02:54

标签: .net powershell neo4j neo4jclient

如果我查看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个参数?是两个参数还是一个参数和一个返回类型?

我该如何阅读这种语法?

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

的函数键入的linq表达式