gpt4 book ai didi

C# 属性限制

转载 作者:行者123 更新时间:2023-12-02 07:34:08 24 4
gpt4 key购买 nike

是否可以限制特定类中应用属性的属性数量?

最佳答案

编译时没有。

在运行时,您可以通过静态初始化程序来验证这一点,如果违反了这个不变量,它会抛出异常,尽管这会被认为是非常糟糕的风格,但从某种意义上说,当不变量不成立时,没有代码可以执行,因此它是安全的。

如果您考虑 .Net 固有的可扩展性,即使您可以在编译时验证这一点,想象一下:

编译dll A

public class Foo 
{
public int Property1 {get;}
}

使用类编译引用 A.dll 的 dll B

public class Bar
{
[OnlyOneAllowedOnAnyPropertiesPerClass]
public int Property2 {get;}
}

然后你重新编译A.dll

public class Foo 
{
[OnlyOneAllowedOnAnyPropertiesPerClass]
public int Property1 {get;}
}

并尝试使用旧的 B.dll 运行这个新的 A.dll(它们在所有其他方面都是二进制兼容的,所以这很好)

显然,运行时必须付出相当大的努力来进行健全性检查,更不用说 B 可能在一段时间内不会突然加载,从而使 A 和 B 之一或两者“非法”。

因此,您不应期望框架中会提供此功能。

关于C# 属性限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/774849/

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