【发布时间】:2012-03-26 20:25:03
【问题描述】:
我创建了一个静态类并在反射中使用它。 但是当我访问该类的方法时,它显示了 5 个方法,但我只创建了 1 个。 额外的方法是
Write
ToString
Equals
GetHashCode
GetType
但我只创建了 Write 方法。
一个静态方法可以在一个静态类中,但是这额外的 4 个方法不是静态的,它们是从哪里驱动的。它的基类是什么
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace ReflectionDemo
{
static class ReflectionTest
{
public static int Height;
public static int Width;
public static int Weight;
public static string Name;
public static void Write()
{
Type type = typeof(ReflectionTest); //Get type pointer
FieldInfo[] fields = type.GetFields(); //obtain all fields
MethodInfo[] methods = type.GetMethods();
Console.WriteLine(type);
foreach (var item in methods)
{
string name = item.Name;
Console.WriteLine(name);
}
foreach (var field in fields)
{
string name = field.Name; //(null); //Get value
object temp = field.GetValue(name);
if (temp is int) //see if it is an integer
{
int value = (int)temp;
Console.Write(name);
Console.Write("(int) = ");
Console.WriteLine(value);
}
else if (temp is string)
{
string value = temp as string;
Console.Write(name);
Console.Write("(string) = ");
Console.WriteLine(value);
}
}
}
}
class Program
{
static void Main(string[] args)
{
ReflectionTest.Height = 100;
ReflectionTest.Width = 50;
ReflectionTest.Weight = 300;
ReflectionTest.Name = "Perl";
ReflectionTest.Write();
Console.ReadLine();
}
}
}
但是如何创建一个静态类的对象来访问那些方法 静态类不能有非静态方法
【问题讨论】:
标签: c# .net reflection static