小编Fra*_*ank的帖子

在 C# 中,为什么“in”参数不能在本地函数中使用?

例如,

public int DoSomething(in SomeType something){
  int local(){
     return something.anInt;
  }
  return local();
}
Run Code Online (Sandbox Code Playgroud)

为什么编译器会发出无法在局部函数中使用 some 变量的错误?

c# ref nested-function c#-7.0 local-functions

15
推荐指数
1
解决办法
1151
查看次数

为什么 OpenAPI (JSON Schema) 不支持无符号整数?

我意识到关于为什么 Java 或其他语言不支持无符号整数有很多类似的问题,但这些都是关于语言设计背后的基本原理和哲学的问题,旨在表达新事物的创造力。

OpenAPI 应该是描述性的。如果 API 想要公开 64 位无符号字,它应该能够做到。OpenAPI 应该有助于代码生成器构建客户端来使用该 API。

好吧,这个论点可以无限地进行,以允许各种奇异的原始类型。这可以被指出为“他们必须在某处划清界限”。

但无符号 32 位和 64 位字是非常常见的原语。为什么他们不受支持?

额外奖励:哪些 REST API 规范格式支持它们?

rest jsonschema openapi

4
推荐指数
1
解决办法
2345
查看次数

为什么 PreIncrement 类型的 PrefixUnaryExpressionSyntax 允许使用 ParanthesisedExpressionsSyntax 的操作数?

我试图了解 C# 分析器和编译器的工作原理。

根据文档,像 pre-inc 和 post-inc 这样的一元运算符应该只接受变量、属性和索引器。

有趣的是,它们还接受 ParanthesisedExpressions,例如代码 ++(x);

这有语法原因吗?除了 ParanthesizedExpressionSyntax 在语义上等同于属性/索引器/变量之外,是否还有 ++(..something here..) 起作用的其他情况?

c# roslyn

2
推荐指数
1
解决办法
38
查看次数