1

我正在尝试将 Web 浏览器添加到现有的 C# 应用程序中,但是,大约 6 年没有使用 C#,我对它的工作原理非常不熟悉。

我正在尝试partial class使用以下代码将浏览器添加到(同样,我不熟悉的东西):

public partial class WebBrowser : WebBrowserBase{
    public WebBrowser(){
        ...
    }
    ...
}

但是,我在构造函数上收到一个编译错误,上面写着:

“WebBrowserBase”不包含采用 0 个参数的构造函数

我用谷歌搜索了这个,并在 SO 上遇到了以下问题:C# Error: Parent does not contain a constructor that takes 0 arguments。我尝试按照答案中的建议进行操作,并将代码更改为:

public partial class WebBrowser : WebBrowserBase{
    public WebBrowser(int i) : base(i){
        ...
    }
    ...
}

但是,然后我得到一个编译错误,上面写着:

'WebBrowserBase' 不包含带有 1 个参数的构造函数

所以我猜这个问题与构造函数中的参数数量无关......谁能解释我在这里做错了什么?

4

2 回答 2

2

如果您查看WebBrowserBase Class它指出:

“此 API 支持产品基础架构,不打算直接从您的代码中使用。”

而且它似乎没有任何公共构造函数 - 所以你不能从它继承。但是如果你不想创建自己的WebBrowser控件(改变它的一些功能),你应该System.Windows.Forms.WebBrowserXAML视图中使用默认值:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow"
    Width="525"
    Height="350">
    <WebBrowser HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  />
</Window>
于 2016-04-28T12:15:16.543 回答
1
  In Inheritance,

   If Derived class contains its own constructor which not defined in Base class then this error Occurs
For Example:
 class FirstClass
   {
      public FirstClass(string s) { Console.WriteLine(s); }
   }

class SecondClass : FirstClass
{
    public SecondClass()
    {
        Console.WriteLine("second class");
    }
}

Output: Error:-'myconsole.FirstClass' does not contain a constructor that takes 0 arguments 

To Run without Error:
 class FirstClass
{
    public FirstClass()
    {
        Console.WriteLine("second class");
    }
  public FirstClass(string s) { Console.WriteLine(s); }
}

class SecondClass : FirstClass
{

    public SecondClass()
    {
        Console.WriteLine("second class");
    }
}
于 2016-04-28T13:42:20.677 回答