gpt4 book ai didi

c# - "is"运算符如何处理动态对象?

转载 作者:太空狗 更新时间:2023-10-29 17:53:39 24 4
gpt4 key购买 nike

如何is运营商在 DLR 方面的工作?

为了让我的问题更明确一点,请考虑以下签名:

 public bool Is<T>(Func<dynamic> getInstance)
{
return getInstance() is T;
}

默认情况下,Is<T>需要什么条件返回 true ?此外,DLR 是否提供任何机制来自定义此行为?

最佳答案

在运行时,dynamic 被视为与object 相同,这意味着 getInstance 委托(delegate)结果的运行时类型将用于执行此检查。此处使用dynamic 的唯一区别是不会进行编译时检查,而将在运行时使用动态绑定(bind)对getInstance 返回的动态对象执行此检查>.

By default, what conditions are necessary for Is to return true?

传入的委托(delegate)需要返回一个在运行时与 T 兼容的类型。

Furthermore, does the DLR provide any mechanism to customize this behavior?

没有。这将使用 C# 类型的标准规则。任何自定义行为都需要写入逻辑本身。

关于c# - "is"运算符如何处理动态对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15688815/

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