Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中的超级语句#_C#_Exception - Fatal编程技术网

C# C语言中的超级语句#

C# C语言中的超级语句#,c#,exception,C#,Exception,我正在创建一个类来管理c#中的异常,我想创建一些构造函数方法来调用超类;这是我的类的定义: class DataSourceNotFoundException: System.Exception 但是因为在c中没有超级方法,所以我应该调用什么来获得系统的构造函数方法。异常?一般来说,关键字base就是你想要的。选中在构造函数主体之前使用base调用父构造函数: public class FooException : Exception { public FooException(st

我正在创建一个类来管理c#中的异常,我想创建一些构造函数方法来调用超类;这是我的类的定义:

class DataSourceNotFoundException: System.Exception 

但是因为在c中没有超级方法,所以我应该调用什么来获得
系统的构造函数方法。异常

一般来说,关键字
base
就是你想要的。选中在构造函数主体之前使用
base
调用父构造函数:

public class FooException : Exception
{
    public FooException(string message) : base(message)
    {
    }
}
public class FooException : Exception
{
    public FooException(int x) : base("Hello")
    {
        // Do something with x
    }
}
显然,您不必将自己的构造函数中的参数作为参数传递给基构造函数:

public class FooException : Exception
{
    public FooException(string message) : base(message)
    {
    }
}
public class FooException : Exception
{
    public FooException(int x) : base("Hello")
    {
        // Do something with x
    }
}
与当前类中的构造函数链等效的方法是使用
this
而不是
base


注意,与Java相比,C#中的构造函数链接在运行实例变量初始值设定项时的工作方式略有不同。有关更多详细信息,请参见my。

与此问题没有直接关系,但Visual Studio中的“异常”片段非常有用,它生成了一些构造函数(4),这些构造函数调用基本构造函数,以及用于序列化支持的构造函数。
class DataSourceNotFoundException: System.Exception {
    public DataSourceNotFoundException()
        : base()
    {
        //some code
    }

    public DataSourceNotFoundException(string message, object other)
        : base(message)
    {
        //some code
    }