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 @   有诗亦有远方  阅读(21)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示