【发布时间】:2019-07-24 06:23:47
【问题描述】:
我有一个将object 作为参数的函数
例如:
public static void doSomthingWithObject(object obj)
{
(.....)
}
我想检查我得到的对象是一个类还是一个简单的变量(例如,如果它需要一个构造函数来创建),如果是这样,我想得到那个object的所有属性,所以代码将看起来像这样:
public static void doSomthingWithObject(object obj)
{
if(objectIsClass())
{
object[] arr = obj.getAllPropeties
(.....)
}
else
{
(.....)
}
}
这可能吗?
编辑:
人们发现我对类变量和简单变量的定义令人困惑。为了清楚起见,“简单变量”是一个只能保存一个值的变量,要访问这个值,您需要简单地写“= var”,而“类变量”可以保存多个值(除非它有 1-0 个属性),并且可以使用get 访问其每个值,例如:= obj.prop(除非没有get)这种类型的变量中的每个值都由一个属性保存,并且要定义一个新的类属性必须使用new 关键字
【问题讨论】:
-
struct呢? -
@Johnny 所以它返回
true如果它是int, string, etc...? -
(e.g if it requires a constructor to create)每种类型都需要一个构造函数来创建。string和其他一些类型(int等)看起来 不像,但它们仍然是在幕后构造的。您感兴趣的具体类型是什么,为什么? -
想象一下任何具有implicit operator 的类。你不需要写
SomeClass instance = new SomeClass();,你可以写SomeClass instance = otherThing;。在你的“需要一个构造函数”的想法中,这将如何影响?
标签: c# variables types new-operator