当前位置: 首页> 教育> 大学 > 制作动画软件app手机_h5怎么设计网页_百度搜索名字排名优化_全网营销的公司

制作动画软件app手机_h5怎么设计网页_百度搜索名字排名优化_全网营销的公司

时间:2025/7/17 0:23:53来源:https://blog.csdn.net/qq_38239133/article/details/144328862 浏览次数:0次
制作动画软件app手机_h5怎么设计网页_百度搜索名字排名优化_全网营销的公司

反射 在ORM / ABP框架里有大量运用,

它可以使得你可以访问一个对象的属性、函数,甚至是私有的

反射指**程序可以访问、检测和修改它本身状态或行为的一种能力**。

自定义一个StudentInfo类。

/l通过typeof 运算符获取Type类型,

Type type1 = typeof(StudentInfo);

//通过实例对象获取类型

StudentInfo obj = new StudentInfo();

Type type2=obj.GetType();// GetType 其实是Object 这个类的方法

/// <summary>
/// 获取属性
/// </summary>
public void TestProperty()

{

    Type type1 = typeof(StudentInfo);
    //批量获取
    var propertyInfos= type1.GetProperties();
    foreach (var propertyInfo in propertyInfos)

    {

        Console.WriteLine($",  类型:{propertyInfo.Name},  类型:{propertyInfo.PropertyType}");

    }
    //指定获取
    Console.WriteLine($"---{type1.GetProperty("Age")},  Name:{type1.GetProperty("Age").Name},  类型:{type1.GetProperty("Age").PropertyType}");

}


/// <summary>
/// 获取字段,包含私有字段
/// </summary>
public void TestField()
{
    Type type1 = typeof(StudentInfo);
    //批量获取
    var fieldInfos = type1.GetFields(BindingFlags.Instance|BindingFlags.NonPublic); //BindingFlags.Public|BindingFlags.NonPublic 二级制位运算,有1即1, 如果加上BindingFlags.Public则是共有私有都获取

    foreach (var fieldInfo in fieldInfos)
    {

        Console.WriteLine($" name:{fieldInfo.Name},  类型:{fieldInfo.FieldType}");

    }

        

        //获取单个,字段一般是私有的,默认是公有的,加参数才能获取
        var fieldInfo2 = type1.GetField("_age",BindingFlags.Instance|BindingFlags.NonPublic);

        Console.WriteLine($"单个输出=》 name:{fieldInfo2.Name},  类型:{fieldInfo2.FieldType}");

}

到泛型和框架时才体现运用场景,目前只有socket通信时,一个程序以字符串来动态调用另一个程序的函数执行时可用

详细信息:

利用反射创建对象,框架才经常用到 ,创建对象时不一定知道类型(使用了泛型)?

var tp = typeof(StudentInfo);

var obj = Activator.CreateInstance(tp);   //一个对象被创建,只能是构造函数被调用,这里底层原理也是,带参的构造函数可以加参数CreateInstance(tp,参数1,参数2)

//设置属性

var age=obj.getProperty("Age");

obj.setValue(age,12);

 

很多个程序集加到IOC容器里面去时才用到,做个了解。

object obj= assemb1y1.CreateInstance(“命名空间.类名“,false);  第二个参数不能填null

反射 操作函数,扩展函数等待学。

——学习自抖音视频-誉尚学教育 “阶段三 C#高级” 合集

关键字:制作动画软件app手机_h5怎么设计网页_百度搜索名字排名优化_全网营销的公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: