加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读