首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我在Visual的HTMLWriter.HeadingElement- C#中得到一个“不能从‘HTMLWriter.TextElement[]’转换为'HTMLWriter.TextElement[]'”错误

为什么我在Visual的HTMLWriter.HeadingElement- C#中得到一个“不能从‘HTMLWriter.TextElement[]’转换为'HTMLWriter.TextElement[]'”错误
EN

Stack Overflow用户
提问于 2021-12-08 22:59:40
回答 1查看 40关注 0票数 0

在我的HTMLWriter.HeadingElement类中,我得到了一个“不能从‘HTMLWriter.TextElement[]’转换成‘HTMLWriter.TextElement[]’‘”错误。

名称空间HTMLWriter {类程序{静态空主(string[] args) {转换器c=新转换器(@“C:\data\poem.txt”,@"C:\data\poem.html");c.convert();

代码语言:javascript
复制
        c = new Converter(@"C:\data\quotes.txt", @"C:\data\quotes.html");
        c.convert();
    }

    public static void example()
    {
        HTMLDocument doc = new HTMLDocument();
        HeadElement head = new HeadElement();
        head.Title = new TitleElement("This is a title");
        doc.Head = head;
        doc.Body = new BodyElement();
        doc.Body.Add(new HeadingElement("This is a heading")); //error
        doc.Body.Add(new ParagraphElement("This is a paragraph")); //error
        doc.Body.Add(new ParagraphElement(null)); //error
        doc.Body.Add(new ParagraphElement("This is a paragraph too")); //error
        Console.WriteLine(doc.Render());
    }
}

}

命名空间HTMLWriter { class BodyElement : HTMLElement {私有列表_elements =新列表();

代码语言:javascript
复制
    public void Add(TextElement[] element)
    {
        for(int i = 0; i < element.Length; i++)
        {
            _elements.Add(element[i]);
        }
    }
    public override string Render()
    {
        if(_elements.Count == 0)
        {
            return "<body>\n </body>";
        }

        for(int i = 0; i < _elements.Count; i++)
        {
            return "<body>" + _elements[i] + "</body>";
        }

        return "<body>\n</body>";
    }
}

}

名称空间HTMLWriter { class HeadingElement : TextElement { public HeadingElement(string text):base( Text ) {Text= text;} public覆盖字符串呈现(){if(文本==空){返回“

";}

代码语言:javascript
复制
        return "<h1>" + Text + "</h1>";
    }
}

}

命名空间HTMLWriter { class ParagraphElement : TextElement {公共ParagraphElement(字符串文本):base(文本){ Text = text;}

代码语言:javascript
复制
    public override string Render()
    {
        if(Text == null)
        {
            return "<p></p>";
        }
        return "<p>" + Text + "</p>";
    }
}

}

命名空间HTMLWriter {抽象类TextElement : HTMLElement {私有字符串_text;公共字符串文本{ get {返回_text;} set { _text =值;}公共TextElement(字符串文本){ Text = text;}}}

EN

回答 1

Stack Overflow用户

发布于 2021-12-08 23:52:48

看起来Add方法需要一个TextElements数组。

代码语言:javascript
复制
public void Add(TextElement[] element)

但是您只使用一个TextElement调用该方法;

代码语言:javascript
复制
doc.Body.Add(new HeadingElement("This is a heading"));`

如果您想两者都做,我建议将Add方法重命名为AddRange,然后添加一个新的Add方法,如下所示;

代码语言:javascript
复制
public void Add(TextElement element)
{
    _elements.Add(element);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70282747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档