gpt4 book ai didi

c# 9.0 记录 - 反射和泛型约束

转载 作者:行者123 更新时间:2023-12-04 11:13:50 25 4
gpt4 key购买 nike

关于新记录功能的两个问题:

  • 如何使用反射识别记录?看 [这里][1] 也许在那里
    是一种检测 EqualityContract 的方法但我不确定这是否可行?
  • 是否可以有一个泛型约束,即泛型类型是记录?也就是说,是否可以使用约束指示类型参数 T 必须是记录类?
  • 最佳答案

    1. How do I recognize a record using reflection ?

    如果您尝试在 sharplab.io 中记录类你会看到记录类是实现 IEquatable<T> 的普通类。接口(interface)并包含用于比较和克隆记录类实例的其他成员。没有特殊属性表明该类是 record class .
    所以我想没有办法使用反射来确定一个类是否是一个记录类。

    looking here maybe there is a way to detect theEqualityContract but I am not sure if that is the way to go ?


    可以使用反射来确定类是否具有此类属性,但这并不能 100% 保证具有此类属性的类是记录类。

    1. Is it possible to have a generic constraint that a generic type is arecord ? that is if it is possible to indicate that type parameter Tmust be a record class using a constraint ?

    这不可能。
  • Records proposal page不包含任何有关指定泛型类型参数的信息 T必须是记录类。
  • 如果您在此阅读讨论 commentChampion records您将了解到无法指定类似 where T : record 的内容。在 C# 9 .此外,还有计划消除 C# 10 中记录和类之间任何有意义的语义差异。 .这样记录的功能就像 with也可以上课。添加 record约束会使这个目标无法实现。
  • 关于c# 9.0 记录 - 反射和泛型约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63097273/

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