gpt4 book ai didi

.net - 为什么 VB.NET 中的可选类属性有一个奇怪的语法?

转载 作者:行者123 更新时间:2023-12-01 13:08:55 25 4
gpt4 key购买 nike

我很好奇为什么 VB.NET 中的类/属性属性有一个奇怪的可选语法,例如:

<TestAttr("a", "abc", Optional1:="foo", Optional2:=3)>

VB.NET 允许您像这样设置可选参数以避免顺序限制(这很可爱)但在这种情况下它会强制您这样做。

例如这是不可能的:

<TestAttr("a", "abc", "foo", 3)>

即使参数与原始定义的顺序相同。

这有什么好的理由吗?或者只是 .NET 设计者在这个问题上懒惰?

最佳答案

看起来您在这里混淆了可选参数和命名属性参数。对于属性,在构造函数中设置没有相应参数的属性的公共(public)字段/属性是合法的。 VB.Net 选择使用与按名称调用语法相同的语法。

如果您在反射器中打开 TestAttr,我想您会发现该类有一个构造函数,它接受 2 个参数并有 2 个公共(public)字段,名称为 Optional1 和 Optional2。

关于.net - 为什么 VB.NET 中的可选类属性有一个奇怪的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/635167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com