在函数

时间:2017-11-02 11:44:10

标签: c#

美好的一天! 这个问题似乎很容易,但我想不出怎么做。我会将Type参数传递给function并检查变量是否具有该类型。

void foo(Type type = ) // how to pass here default value for example System.Object?
{       
        if (elem.GetType() is type) 
        {

        }
    }
}

编辑我有下一个课程

class Element {}
class ChildElementClass : Element {}
class SecondChildEleementClass : Element{}

还有Elements []数组,它存储了所有三个类的元素

Element[] elements;

所以,我会检索ChildElementClass的所有元素。我通过其他方式制作它,但它很有趣。

3 个答案:

答案 0 :(得分:5)

使用此:

void foo(Type type = null)
{
    if (type == null)
        type = typeof(object);
}

请参阅:here

答案 1 :(得分:2)

您可以创建一个辅助方法来传递默认值

public void foo(){
   foo(typeof(object));
}
private void foo(Type type){
   //
}

或者,将默认类型设置为null并在方法

中指定默认值
if (type == null) {
    type = typeof(object);
}

答案 2 :(得分:0)

我认为这会对你有帮助......

using System;

public class Program
{
public static void Main()
{
    Test();
}
private static void Test(Type t = null)
{

    if(t==null)
    {
        t=typeof(Object);
        Console.WriteLine(t.Name);
    }
}
}