为什么我们不能在派生类中使用带参数的构造函数

2023-12-05

为什么这是不可能的? 使用构造函数参数实例化“DerivedClass”时出现以下编译器错误:

“GenericParameterizedConstructor.DerivedClass”不包含采用 1 个参数的构造函数

但调用一个非常相似的方法是可行的。

Why?

class Program
{
    static void Main(string[] args)
    {
        // This one produces a compile error 
        // DerivedClass cls = new DerivedClass("Some value");

        // This one works;
        DerivedClass cls2 = new DerivedClass();
        cls2.SomeMethod("Some value");
    }
}


public class BaseClass<T>
{
    internal T Value;

    public BaseClass()
    {
    }

    public BaseClass(T value)
    {
        this.Value = value;
    }

    public void SomeMethod(T value)
    {
        this.Value = value;
    }
}

public class DerivedClass : BaseClass<String>
{
}

构造函数不是继承的——就这么简单。DerivedClass包含一个构造函数 - 编译器默认提供的公共无参数构造函数,因为您没有指定任何构造函数。

请注意,这有nothing与泛型有关。如果你会看到同样的事情BaseClass不是通用的。

这很容易provide构造函数DerivedClass though:

public class DerivedClass : BaseClass<String>
{
    public DerivedClass() : base()
    {
    }

    public DerivedClass(string value) : base(value)
    {
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我们不能在派生类中使用带参数的构造函数 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 附加频率表 - 带有缺失值

    目标是生成一个包含我选择的所有变量 关于 4 份报纸的阅读习惯 的频率表 这些变量本质上具有相同的可能值 1 Subscribed 2 Every week 3 Sometimes 4 Never 0 NA No Answers 如果变量之
  • 在用户控件 asp.net 中使用页面方法的替代方法

    有没有一种方法可以在用户控件内实现页面方法的功能 感谢任何帮助 谢谢 最简单的方法可能是将您想要的功能放入网络服务中 然后使用脚本服务属性以使其可用 工作原理与页面方法非常相似 相当广泛的例子here
  • Java:wait() 是否从同步块中释放锁

    我的印象是 wait 释放所有锁 但我发现这篇文章说 在同步方法内调用 wait 是获取内在锁的简单方法 请澄清我有点困惑 http docs oracle com javase tutorial essential concurrency
  • 将可迭代元素或不可迭代元素展开到数组中,而不检查元素 .length

    Given html div div div div calling document querySelector div 返回第一个div元素 其中 length不是返回值的属性 Calling document querySelecto
  • Oracle:不是按表达式分组错误

    以下是我的查询 我不确定是什么原因导致 Not A group by 表达式错误 任何帮助深表感谢 SELECT c courseID c courseName AVG a Mark as Average Mark FROM course
  • 如何使聊天中的链接可点击

    我的网站上有一个聊天 它从 JSON 文件读取并获取每条消息 然后使用Vue js 但是 我的问题是 当用户发布链接时 它不包含在锚标记中 a href a 因此它不可点击 我看到了这个post 我认为这样的东西会起作用 但是 我不允许向该
  • 如何在 Windows 上设置 gl3w?

    我一直在寻找设置 Gl3w 的详细指南 因为我到处都找不到 首先 下载gl3w https github com skaslev gl3w 然后 下载 Python 3 x https www python org downloads 接下
  • 关于HTML中相对文件路径的问题

    已经有一些关于这个主题的帖子 但对我没有帮助 我已经为 HTML 和 CSS 页面制作了地图结构 但无法将它们相互链接 我的地图结构 采购订单网页设计 Homepage HTML 页面主页 CSS 页面主页 图片主页 Sports HTML
  • Android意图语法

    在我尝试找出如何在应用程序中启动新意图的过程中 我遇到了几种表达它的方法 此语法返回运行时错误 即 ActivityNotFound 异常 Intent in new Intent com something something 当然 我的
  • API设计中如何避免“参数过多”问题?

    我有这个API函数 public ResultEnum DoSomeAction string a string b DateTime c OtherEnum d string e string f out Guid code 我不喜欢它
  • heightForRowAt 与estimatedHeightForRowAt 有什么区别?

    通常当我想设置行高时然后设置 func tableView tableView UITableView heightForRowAt indexPath IndexPath gt CGFloat return 300 受益者是什么estim
  • 将表格从 Word 复制粘贴到 Excel

    我有一个定期更新的word文档 我可以进入该 Word 文档 选择整个表格的内容并复制 然后进入 Excel 电子表格并将其粘贴 搞砸了 但是 我将其修复如下 sht Cells UnMerge sht Cells ColumnWidth
  • 在android中连接到oracle

    所以人们可能会告诉我这是一个坏主意 但我至少想尝试一下 EDIT该应用程序的目的是 仅当设备属于 oracle db 所在网络或通过 VPN 连接到网络时 它才能工作 数据库中的信息无法全局访问 这就是为什么我需要直接连接到 oracle
  • vue,如何动态地、以编程方式、单击将组件添加到 DOM 特定位置?

    我需要添加一个动态导入的组件 只需将虚拟标签添加到 DOM 结构中的特定位置即可 不幸的是 我发现的每一种方法都没有解决我的问题 我首先如何尝试 父组件 Editor vue
  • 当子id包含'.'时sql server中的分层排序

    我有一些像下面这样的孩子 childid 1 1 1 2 2 8 2 7 6 5 6 5 1 6 5 15 7 1 8 排序顺序将是 childid 1 1 1 2 2 7 2 8 6 5 6 51 6 5 15 7 1 我尝试转换为整数
  • 是否可以更改毕加索用于图像的缓存大小?

    我正在使用 Picasso 从 URL http 加载图像 有时 当我尝试使用毕加索的 预加载 图像时fetch 方法 图像不会被缓存 我猜是因为它的尺寸太大了 阅读答案this问题 但是setCache 似乎没有被我认可 我什至没有在毕加
  • Python继承结构和参数

    我正在尝试设计一个类结构 允许用户定义自己的类 以重载其他类中的预定义方法 在这种情况下 用户将创建 C 类来重载 D 中的 函数 方法 用户创建的 C 类与其他用户创建的类 A 和 B 具有共同的逻辑 因此它们继承自 C 来重载 函数 但
  • 将测试路径输出重定向到文本文件

    txt 文件只是一堆 UNC 路径 我试图在验证测试路径后将此文本文件中的 UNC 路径列表放入另一个文本文件中 它在屏幕上显示经过验证的路径 但不会填充文本文件 cfgs Get Content cfgpath txt cfgs if T
  • 本地序列不能在查询运算符的 LINQ to SQL 实现中使用(Contains() 运算符除外)

    我在我的项目中使用 LINQ 我的代码是 var SE from c in Shop Sections join c1 in obj SectionObjects on c SectionId equals c1 SectionId sel
  • 为什么我们不能在派生类中使用带参数的构造函数

    为什么这是不可能的 使用构造函数参数实例化 DerivedClass 时出现以下编译器错误 GenericParameterizedConstructor DerivedClass 不包含采用 1 个参数的构造函数 但调用一个非常相似的方法