惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Securelist
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
C
CERT Recently Published Vulnerability Notes
H
Hackread – Cybersecurity News, Data Breaches, AI and More
S
SegmentFault 最新的问题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
Kaspersky official blog
WordPress大学
WordPress大学
I
Intezer
L
Lohrmann on Cybersecurity
V
Vulnerabilities – Threatpost
C
Check Point Blog
A
About on SuperTechFans
AWS News Blog
AWS News Blog
Latest news
Latest news
宝玉的分享
宝玉的分享
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cyber Attacks, Cyber Crime and Cyber Security
SecWiki News
SecWiki News
Recorded Future
Recorded Future
Last Week in AI
Last Week in AI
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Register - Security
The Register - Security
A
Arctic Wolf
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
V
V2EX
Scott Helme
Scott Helme
I
InfoQ
Project Zero
Project Zero
Security Archives - TechRepublic
Security Archives - TechRepublic
Recent Announcements
Recent Announcements
Spread Privacy
Spread Privacy
Attack and Defense Labs
Attack and Defense Labs
大猫的无限游戏
大猫的无限游戏
Webroot Blog
Webroot Blog
N
News and Events Feed by Topic
博客园 - 司徒正美
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
NISL@THU
NISL@THU
L
LangChain Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - xpoint

Sybase 11.0.3 bcp数据报错! Sybase SQL Server 11.0.x 调优方案...(未完成) Windows Server Family 上安装Office 2000 你在使用Gmail,Wallop,MSN Spaces,Three Degrees吗? 网易的邮箱太慢了,还要别的选择吗? 学了学awk,也算是收获 Microsoft PowerToys for Windows XP 给Windows,SCO,AIX添加静态路由 给博客园的bloger提供若干GMail邀请。(暂放半天,明天移帖) 微软的应用程序块列表 了解POP3协议,使用简单的代码监控pop3邮箱,或者不用代码,直接使用telnet 微软为什么把标准提升的这么快, .Net Framework 1.1-> 2.0,连核心的类库都换了! 让你的gVim支持Miscrosoft Visual C++ 2003 设置一个Label控件上文字的字体样式和字体大小随机的代码 得到本机socket选项的全部默认值。 Linux TCP/IP 协议栈源码分析(一) 国外高手参加世界编程大赛时的参赛作品(转载) UltraEdit-32中的小bug。 还是关于《设计模式》
反射的任务
xpoint · 2004-07-31 · via 博客园 - xpoint

// Programming C# by O'Reilly & Associates,Inc
// 
//
//----------------------------------------------------------------------------------- 
// 反射常用于以下四个任务
//  (1) 浏览元数据           
//  (2) 查询类型 :利用反射查看配件的类型,方法,性质,事件,以及和改类型相关的一切信息
//  (3) 与方法和性质迟绑定 (动态调用)
//  (4) 在运行时创建类型   (反射发送)
//-----------------------------------------------------------------------------------
using System;
using System.Reflection;
using System.Collections;
namespace Programing_CSharp_Reflection

    
//测试类
    public class App
    
{
        
public static void Main(string[] args)
        
{
            MyMath mm 
= new MyMath();
            
int result = mm.Function_Sum(10,15);
            Console.WriteLine(
"Result is {0}",result);
            Console.WriteLine();
            
// (1)浏览元数据
            System.Reflection.MemberInfo mbrInfo = typeof(MyMath);
            
object[] attributes = mbrInfo.GetCustomAttributes(typeof(BugFixAttribute),false);
            
foreach(object attribute in attributes)
            
{
                BugFixAttribute bfa 
= (BugFixAttribute) attribute;
                Console.WriteLine(
" BugID  :{0}",bfa.BugID);
                Console.WriteLine(
"Progammer:{0}",bfa.Programmer);
                Console.WriteLine(
"Date     :{0}",bfa.Date);
                Console.WriteLine(
"Comment  :{0}",bfa.Comment);
            }

            
// (2)查询类型
            Assembly asb = Assembly.Load("Mscorlib.dll");
            Type[] types 
= asb.GetTypes();
            
foreach(Type t in types)
            
{
                Console.WriteLine(
"Type is  {0}",t);
                MemberInfo[] mbrInfoArray 
= t.GetMembers();
                
//也可以查询一个类型的成员,甚至可以查找特定的成员,例如只查找"Get"打头的方法
                
// MemberInfo[] mbrInfoArray = t.FindMembers(MemberTypes.Method,BindingFlags.Default,Type.FilterName,"Get*")
                foreach(MemberInfo mbr in mbrInfoArray)
                
{
                    Console.WriteLine(
"{0} IS A {1}",mbr,mbr.MemberType);
                }

                
            }

            Console.WriteLine(types.Length);
            Console.ReadLine();
        }

    }

   
// 自定义的属性类
   public class BugFixAttribute : System.Attribute
   
{
       
private int bugID;
       
private string programmer;
       
private string date;
       
private string comment;
       
public int BugID {get{return bugID;}set{bugID=value;}}
       
public string Programmer {get{return programmer;}set{programmer=value;}}
       
public string Date {get{return date;}set{date=value;}}
       
public string Comment {get{return comment;} set{comment=value;}} 
       
//构造函数
       public BugFixAttribute(int bugID,string programmer,string date)
       
{
           
this.bugID = bugID;
           
this.programmer = programmer;
           
this.date = date;
       }

   }

   
//将属性应用到一个类上
   [BugFixAttribute(100,"zh-bin@163.com","2004/07/31",Comment="添加加法运算")]
   
public class MyMath
   
{
       
public int Function_Sum(int i,int j)
       
{
           
return i+j;
       }

       
public int Function_Sub(int i,int j)
       
{
           
return i-j;
       }

   }

}