c# – 将IEnumerable初始化为可选参数

前端之家收集整理的这篇文章主要介绍了c# – 将IEnumerable初始化为可选参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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));
原文链接:https://www.f2er.com/csharp/98747.html

猜你在找的C#相关文章