c# - CS0029 C# 'Cannot implicitly convert type string[] to string'

标签 c# .net taglib

我正在制作一个应用程序来编辑 .mp3 文件的属性。我不得不说我对编程和 stackoverflow 还很陌生,所以我可能做了一些非常明显错误的事情。请原谅我!这是我正在使用的代码:

private void btnApply_Click(object sender, EventArgs e)
{
    var file = TagLib.File.Create(filepath);
    if (!string.IsNullOrWhiteSpace(txtGenre.Text))
    {
        file.Tag.Genres = new string[] {txtGenre.Text};
    }
    if (!string.IsNullOrWhiteSpace(txtArtist.Text))
    {
        file.Tag.Performers = new string[] {txtArtist.Text};
    }
    if (!string.IsNullOrWhiteSpace(txtTitle.Text))
    {
        file.Tag.Title = new string[] {txtTitle.Text};
    }
    file.Tag.Performers = new string[] { txtArtist.Text };
    file.Tag.Title = txtTitle.Text;
    file.Save();

    if (!ReadFile())
    {
        Close();
    }
}

对我来说奇怪的是,我只收到这部分的错误:

if (!string.IsNullOrWhiteSpace(txtTitle.Text))
{
    file.Tag.Title = new string[] {txtTitle.Text};
}

红色下划线:

new string[] {txtTitle.Text}

我在这里缺少什么?我已经寻找了很长时间,但似乎找不到任何解决方案。先感谢您!顺便说一下,我也在使用 TagLib。

最佳答案

更改此:

file.Tag.Title = new string[] {txtTitle.Text};

至:

file.Tag.Title = txtTitle.Text;

Title 类型是 string,而不是字符串数组(不是 string[]),但您尝试分配数组 - 因为它你会得到错误。其他字段的类型为 string[] (字符串数组),这就是为什么只有 Title 才会出现错误。

此外,您尝试为 Title 赋值 2 次:

if (!string.IsNullOrWhiteSpace(txtTitle.Text))
{
    file.Tag.Title = new string[] {txtTitle.Text};    // first time
}
file.Tag.Performers = new string[] { txtArtist.Text };
file.Tag.Title = txtTitle.Text;                       //second time

您只需分配一次。另外,当您第二次分配时,您可以正确分配它,不会出现错误。

Performers 的情况相同 - 您在 if 语句内进行第一次分配,并在最后一个 if 之后进行第二次分配。

关于c# - CS0029 C# 'Cannot implicitly convert type string[] to string',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41793610/

相关文章:

java - 无法加载或实例化 TagLibraryValidator 类 : org. apache.taglibs.standard.tlv.JSTLCoreTLV

c# - 三元运算符比 if-else block 慢两倍?

c# - 如何使用 json-ajax 解析字典类型

c# - 在 C# 中使用 XML 的 jQuery 语法

c# - 不使用类的 JSON 反序列化? (网络服务客户端)

.net - 在 WPF 中将像素转换为 CM

c# - 在 Windows 7 上加载嵌入式资源

jsp - 如何发布 JSTL 导入标记的参数 (<c :import>)?

c# - TcpListener:监听每一个地址,包括GPRS IP地址

java - 一些疑问与 Struts 2 UI 标签库的含义有关。是什么给了我更多的 Struts 2 UI 标签?