You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中能否用对象初始化器调用集合方法?语法问题咨询

关于C# FolderPicker对象初始化器的语法问题解答

嘿,作为C#新手碰到这种语法问题太正常啦,别担心~你的代码报错主要是两个语法规则的问题,我来给你拆解清楚:

问题出在哪?

你尝试的写法有两个不符合C#对象初始化器规范的地方:

  1. 对象初始化器中,多个成员设置之间要用逗号分隔,而不是分号;
  2. FileTypeFilter.Add("*")是方法调用,不能直接放在对象初始化器的大括号里——对象初始化器仅支持设置属性值,或者对集合类型成员使用集合初始化语法。

正确的写法

你可以用C#的集合初始化语法来处理FileTypeFilter,同时修正分隔符的问题,代码如下:

var folderPicker = new FolderPicker() 
{ 
    SuggestedStartLocation = PickerLocationId.Desktop,
    FileTypeFilter = { "*" }
};

为什么这样写可行?

FileTypeFilter属于集合类型,{ "*" }这种集合初始化语法会被编译器自动转换成调用Add("*")方法,既符合对象初始化器的语法规则,又达到了你想要的效果。

如果还是习惯显式调用Add方法,那只能回到你最初的写法,或者初始化后单独调用:

var folderPicker = new FolderPicker() 
{ 
    SuggestedStartLocation = PickerLocationId.Desktop
};
folderPicker.FileTypeFilter.Add("*");

内容的提问来源于stack exchange,提问作者master_ruko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:35:57