如何区分System变量和Custom变量

时间:2012-12-11 11:51:55

标签: c# c#-4.0 reflection

我有一个类如下: -

public Class Student
{
  string Name {get; set;}
  int Age {get; set;}
  Address studentAddres {get; set;}
}

public class Address
{
 string Street{get; set;}
 string City {get; set;}
}

此处名称和年龄系统定义类型 StudentAddres 自定义类型。如何使用代码区分它们。 我正在使用Reflection而无法实现。

2 个答案:

答案 0 :(得分:2)

if (SomeObject.GetType().Assembly != typeof(int).Assembly)
{
    //SomeObject is defined as part of my program
}
else
{
    //SomeObject is a standard .Net type
}

答案 1 :(得分:1)

您似乎想要查看值类型或字符串。然后你可以使用: Type.IsPrimitive属性

  

获取一个值,该值指示Type是否是基元之一   类型。

     

基元类型是布尔,字节,SByte,Int16,UInt16,Int32,   UInt32,Int64,UInt64,IntPtr,UIntPtr,Char,Double和Single。

int i = 10;
string str = "";
var isPrimitive = i.GetType().IsValueType || i is string; // returns true since i is value type
var isPrimitiveWithString = str.GetType().IsValueType || str is string; 
 // returns true

CustomClass obj = new CustomClass();
var isPrimitive3 = obj.GetType().IsPrimitive; // returns false