c# – 将IEnumerable初始化为可选参数
发布时间:2020-12-15 18:31:01 所属栏目:百科 来源:网络整理
导读:我有一个IEnumerable类型的可选参数 int在我的C#方法中.我可以使用null来初始化它,例如固定的价值清单? 解决方法 不可以.您只能编译时间常数.您可以指定为null然后 void SomeMethod(IEnumerableint list = null){ if(list == null) list = new Listint{1,2,
我有一个IEnumerable类型的可选参数< int>在我的C#方法中.我可以使用null来初始化它,例如固定的价值清单?
解决方法
不可以.您只能编译时间常数.您可以指定为null然后
void SomeMethod(IEnumerable<int> list = null) { if(list == null) list = new List<int>{1,2,3}; } 下一段代码片段摘自Jon Skeet着名的C#深度书.他建议使用null作为参数的未设置指标,它可能具有有意义的默认值. static void AppendTimestamp(string filename,string message,Encoding encoding = null,DateTime? timestamp = null) { Encoding realEncoding = encoding ?? Encoding.UTF8; DateTime realTimestamp = timestamp ?? DateTime.Now; using (TextWriter writer = new StreamWriter(filename,true,realEncoding)) { writer.WriteLine("{0:s}: {1}",realTimestamp,message); } } 用法 AppendTimestamp("utf8.txt","First message"); AppendTimestamp("ascii.txt","ASCII",Encoding.ASCII); AppendTimestamp("utf8.txt","Message in the future",null,new DateTime(2030,1,1)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |