如何阅读方法签名?
How to read method signature?
如果我查看可用于 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] Return[TResult](string identity)
Neo4jClient.Cypher.ICypherFluentQuery[TResult] Return[TResult](System.Linq.Expressions.Expression[System.Func[TResult]] expression)
Neo4jClient.Cypher.ICypherFluentQuery[TResult] Return[TResult](System.Linq.Expressions.Expression[System.Func[Neo4jClient.Cypher.ICypherResultItem,TResult]] expression)
我从中读到第一个重载采用单个字符串参数,但是,如何读取第二个重载?它需要一个 linq 表达式,它 [包含|接受] return 类型 TResult
?
的无参数函数
第三个函数有两个参数呢?是两个参数还是一个参数加一个return类型?
如何阅读此语法?
This source file 应以可读的方式提供签名。
所以答案的一部分是输出用方括号替换了正常的尖括号,所以这个:
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>>
表示类型为 returns TResult
的函数的 linq 表达式
如果我查看可用于 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] Return[TResult](string identity)
Neo4jClient.Cypher.ICypherFluentQuery[TResult] Return[TResult](System.Linq.Expressions.Expression[System.Func[TResult]] expression)
Neo4jClient.Cypher.ICypherFluentQuery[TResult] Return[TResult](System.Linq.Expressions.Expression[System.Func[Neo4jClient.Cypher.ICypherResultItem,TResult]] expression)
我从中读到第一个重载采用单个字符串参数,但是,如何读取第二个重载?它需要一个 linq 表达式,它 [包含|接受] return 类型 TResult
?
第三个函数有两个参数呢?是两个参数还是一个参数加一个return类型?
如何阅读此语法?
This source file 应以可读的方式提供签名。
所以答案的一部分是输出用方括号替换了正常的尖括号,所以这个:
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>>
表示类型为 returns TResult