C# default

一、switch语句

在switch语句中,如果没有任何case表达式与开关值匹配,则控制传递给跟在可选default标签后的语句。如果没有default标签,则控制传递到 switch 以外。

switch (key){   
	case 1:       
			Console.WriteLine("1");       
			break;   
	case 2:       
			Console.WriteLine("2");       
			break;   
	default:       
			Console.WriteLine("Sorry, no one matches!");       
			break;
		}

二、泛型代码

之所以会用到default关键字,是因为需要在不知道泛型类型参数为值类型还是引用类型的情况下,为对象实例赋初值。考虑以下代码:

class TestDefault<T>
    {
        public T foo()
        {
            //这里是不确定T是值类型还是引用类型,int i = null (?)or class i = null (?)
            T t = null; 
            return t;
        }
    }

如果我们用int型来绑定泛型参数,那么T就是int型,那么注释的那一行就变成了 int t = null;显然这是无意义的。为了解决这一问题,引入了default关键字:

就是为了给T这个未知类型的参数赋值一个默认值

class TestDefault<T>
    {
        public T foo()
        {
                return default(T);
        }
    }
posted @ 2022-07-14 15:51  有诗亦有远方  阅读(32)  评论(0)    收藏  举报  来源