时间:2021-05-19
原理比较简单,引入System.Reflection命名空间,利用反射查看某种Type下的方法,属性,字段和支持的接口等。
复制代码 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Data.SqlClient;
using System.Xml;
using System.Data;
using System.Reflection;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("Please input a type:");
string typeStr = Console.ReadLine();
if (typeStr == "exit" || typeStr == "quit")
break;
try
{
Type type = Type.GetType(typeStr);
ListFields(type);
ListMethods(type);
ListInterfaces(type);
}
catch (Exception ex)
{
Console.WriteLine("It is not a valid type!");
}
}
}
#region Methods
public static void ListFields(Type type)
{
Console.WriteLine("******** Fields: ********");
//foreach (FieldInfo item in type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Default))
foreach (FieldInfo item in type.GetFields())
{
Console.WriteLine("->" + item.Name);
}
Console.WriteLine("");
}
public static void ListMethods(Type type)
{
Console.WriteLine("******** Methods: ********");
//foreach (var item in type.GetMethods(BindingFlags.Default | BindingFlags.Public | BindingFlags.Static | BindingFlags.NonPublic))
var methodInfo = type.GetMethods().Select(m => m.Name).Distinct();
foreach (var item in methodInfo)
{
Console.WriteLine("->" + item);
}
Console.WriteLine("");
}
public static void ListInterfaces(Type type)
{
Console.WriteLine("******** Interfaces: ********");
foreach (var item in type.GetInterfaces())
{
Console.WriteLine("->" + item.Name);
}
Console.WriteLine("");
}
public static void ListProperties(Type type)
{
Console.WriteLine("******** Properties: ********");
foreach (var item in type.GetProperties())
{
Console.WriteLine("->" + item.Name);
}
Console.WriteLine("");
}
#endregion
}
}
测试case 1:
复制代码 代码如下:
Please input a type:
System.Int32
******** Fields: ********
->MaxValue
->MinValue
******** Methods: ********
->CompareTo
->Equals
->GetHashCode
->ToString
->Parse
->TryParse
->GetTypeCode
->GetType
******** Interfaces: ********
->IComparable
->IFormattable
->IConvertible
->IComparable`1
->IEquatable`1
测试case 2:
复制代码 代码如下:
Please input a type:
System.Math
******** Fields: ********
->PI
->E
******** Methods: ********
->Acos
->Asin
->Atan
->Atan2
->Ceiling
->Cos
->Cosh
->Floor
->Sin
->Tan
->Sinh
->Tanh
->Round
->Truncate
->Sqrt
->Log
->Log10
->Exp
->Pow
->IEEERemainder
->Abs
->Max
->Min
->Sign
->BigMul
->DivRem
->ToString
->Equals
->GetHashCode
->GetType
******** Interfaces: ********
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Win7事件查看器如何打开?Win7事件查看器是一个非常有用的系统功能,但是一些朋友不知道Win7事件查看器如何打开!实际上打开Win7系统查看器的方法很多
本文实例讲述了Android编程实现网络图片查看器和网页源码查看器。分享给大家供大家参考,具体如下:网络图片查看器清单文加入网络访问权限:界面如下:示例:pub
以win7为例,Windows照片查看器无法打开此图片,因为照片查看器不支持此文件格式,或者您没有更新照片查看器的版本。一般是由于文件格式不支持的情况比较多。
本文实例为大家分享了js图片查看器插件的使用方法,制作手机使用的网页图片查看器,供大家参考,具体内容如下这几天抽空在为项目开发一个量身的图片查看器,目前已初步完
最近查看系统日志的时候发现:我的服务器的事件查看器中应用程序不停的报数据库引擎停止和开始的错误。请指点如何处理svchost(700)数据库引擎已停止。svch