定义一个Object obj = value;
我现在传一个value,不管value是什么类型,都有个默认值给它。例如int,默认值是0, 引用类型就给 null。
但是传进来的类型不确定。怎么实现?可以用default关键字吗?

解决方案 »

  1.   

    这个有难度...我印象中,好像类型的话有一个默认值..如 Int.DefaultValue
    你可以使用 Type.GetType来得到类型,然后再得到类...不知道我这个想法能不能行得通...因为我写程序基本上还没有遇到过你这样要求的情况...呵呵
      

  2.   

    局部变量必须赋值后才能使用,如果不确定变量类型,且对变量赋默认值,可以用default表达式:T variable = default( T );
      

  3.   

    Type testType = typeof(value);
    string testName = testType.FullName;
    if(testType.IsArray || testType.IsClass)
    {
      object test = null;
    }
    else
    object test = testType.Assembly.CreateInstance(testName);
    这是一种方法,还有没有更好的方法?
      

  4.   

    Ivony ,你的方法都编译不过
      

  5.   

    //MSDN中 default关键字示例代码
    public class GenericList<T>
    {
        private class Node
        {
            //...        public Node Next;
            public T Data;
        }    private Node head;    //...    public T GetNext()
        {
            T temp = default(T);        Node current = head;
            if (current != null)
            {
                temp = current.Data;
                current = current.Next;
            }
            return temp;
        }
    }
      

  6.   

    这是一个名为GenericList的泛型类
      

  7.   

    你这个是抄MSDN上的吧。我的目的不需要定义一个你指定的范性类。这样做也没意义。