[英]Significance of `1 in Stack Trace
堆棧跟蹤中的 1 有什么意義?
at Default.Process() in Default.cs:line 19
at Framework.BasePage.ProcessRequest(HttpContext context) in BasePage.cs:line 82
at Framework.Endpoint`1.Page[T](HttpContext context) in Endpoint.cs:line 44
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
第三行:端點`1
它是通用arguments的數量(或數量)。
原因是您可以擁有多個具有相同名稱的類,但具有不同數量的泛型參數。 例如:
class Foo {}
class Foo<TKey> {}
class Foo<TKey, TValue> {}
為了區分它們,公共語言運行時指定了泛型類型后綴為泛型 arguments 數量的規則。 非泛型類型不需要這個,所以它們的名字被編碼為:
Foo
Foo`1
Foo`2
還有一些其他的“魔法”字符被使用。 例如,名稱中的+
用於表示內部/嵌套 class。 所以:
class Foo
{
class Bar
{
}
}
會導致Bar
被編碼為Foo+Bar
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.