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)
 
