gpt4 book ai didi

c# - 有没有办法测试变量是否是动态的?

转载 作者:IT王子 更新时间:2023-10-29 04:34:18 25 4
gpt4 key购买 nike

除非变量 vnull,否则以下代码将始终返回 true:

v is dynamic

下面的测试将不会编译(“typeof 运算符不能用于动态类型”):

v.GetType() == typeof(dynamic)

那么有没有办法测试变量是否是动态

最佳答案

首先,您需要将变量和对象分开。一个变量是动态的如果它被定义为dynamic。就这些。仅此而已。 字段属性 将使用[Dynamic] 属性进行注释,即

public dynamic Foo {get;set;}

实际上是:

[Dynamic]
public object Foo {get;set;}

这基本上是提示编译器通过 dynamic API 而不是通过 OOP API 访问对象。

对象如果实现了IDynamicMetaObjectProvider,则支持完整的dynamic能力——但是,这样的对象可以通过dynamic API 和通过常规的 OOP API(它可以同时拥有)。同样,可以通过任一 API 访问未实现 IDynamicMetaObjectProvider 的对象(但是:只有公共(public)成员可以通过 dynamic 访问)。

关于c# - 有没有办法测试变量是否是动态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19785655/

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