我有一个类如下: -
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而无法实现。
答案 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