c# – 检查类型是否属于没有硬编码字符串的命名空间
发布时间:2020-12-15 06:34:08 所属栏目:百科 来源:网络整理
导读:是否可以检查一个类型是否是命名空间的一部分,而不使用经过编码的字符串? 我试图做一些像: Type type = typeof(System.Data.Constraint);if(type.Namespace == System.Data.ToString()){...} 要么 Type type = typeof(System.Data.Constraint);if(type.Nam
是否可以检查一个类型是否是命名空间的一部分,而不使用经过编码的字符串?
我试图做一些像: Type type = typeof(System.Data.Constraint); if(type.Namespace == System.Data.ToString()) {...} 要么 Type type = typeof(System.Data.Constraint); if(type.Namespace == System.Data) {...} 避免 Type type = typeof(System.Data.Constraint); if(type.Namespace == "System.Data") {...} 这些例子不编译,但应该提出我想要实现的想法. 我不能使用nameof(System.Data),因为它只返回“Data”. 我想找到一种方法来检查一个类是否是命名空间的一部分,而不需要在字符串中具有该命名空间. 解决方法
您可以在要执行检查的命名空间中定义它:
static class Namespace { public static bool Contains<T>() => typeof (T).Namespace == typeof (Namespace).Namespace; } 例如: namespace My.Inner { static class Namespace { public static bool Contains<T>() => typeof (T).Namespace == typeof (Namespace).Namespace; } } 两种类型作为测试用例: namespace My { class SomeTypeA { } } namespace My.Inner { class SomeTypeB { } } 以下是用法: Console.WriteLine(My.Inner.Namespace.Contains<SomeTypeA>()); // False Console.WriteLine(My.Inner.Namespace.Contains<SomeTypeB>()); // True (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 有没有办法在swift中从utf16数组创建一个String?
- Pull(XmlPullParser)解析Xml文件
- 【H5+ & Quick-cocos2dx整合】之iOS 四 协调H5+和Quick
- ReactNative开源项目推荐 - iReading (运行)
- OO实现ALV TABLE 十一:ALV的聚合,排序,过滤
- c# – 从Process StandardOutput获取值
- 读取xml文件让其信息在listView上显示,并且listView上的每
- logback logback.xml常用配置详解(三) <filter>
- VS2017中搭建Cocos2dx开发环境图文详解
- Worknote-xin(blue platform)