基本构造函数调用的静态是什么? [复制]

2023-12-12

以下 C# 代码无法编译。

public class BaseType
{
    public BaseType(int bar)
    {
        // Do stuff with bar...
    }
}

public class DerivedType : BaseType
{
    private int foo;

    public DerivedType() : base(foo = 0) {}
}

调用 DerivedType 的基本构造函数时会发生错误,并显示消息“无法在静态上下文中访问非静态字段 'foo'”。这个错误信息告诉我什么? 'foo' 不是静态的,类也不是静态的,而且这些也不是静态构造函数。


此时base(foo = 0)执行DerivedType类尚未“创建”,因此它还无法访问它定义的成员。

事情发生的顺序是这样的

  1. 用户调用new DerivedType()
  2. 称为派生类型的代码base(foo = 0)
  3. 代码调用了BaseType的隐式base() to Object()
  4. 任何字段的内存Object被分配,然后Object()构造函数运行完成。
  5. 任何字段的内存BaseType被分配,然后BaseType(int bar)构造函数运行完成。
  6. 任何字段的内存DerivedType被分配,然后DerivedType()构造函数运行完成。

所以你看到你正在尝试分配一个值foo在步骤 2 中,但是foo直到第 6 步才存在。

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

基本构造函数调用的静态是什么? [复制] 的相关文章

  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向

随机推荐

  • 授予 AWS Api Gateway 使用 BOTO3 调用 Lambda 函数的权限

    我正在尝试使用 BOTO3 创建一个调用 lambda 函数的 Api 网关方法 到目前为止 我无法找到如何授予必要的权限 奇怪的是 通过 AWS 控制台手动设置 lambda 方法名称会自动设置权限 我无法在代码中复制这一点 这是我用来设
  • 不能在电子工作进程中需要node_modules

    Question 我正在尝试在电子中使用网络工作者 到目前为止 我能够从渲染器进程实例化工作进程 但是当我尝试执行require some module 在工作进程中 进程因错误而崩溃 找不到模块 some module cjs 加载器显然
  • 为什么克隆可以在另一个对象上设置私有字段?

    我正在学习Java 我正在阅读的书有以下关于克隆的示例 在clone 我的第一个实例能够在新对象上设置缓冲区 即使缓冲区是private 似乎应该要求该字段是protected为了这个工作 为什么这是允许的 做clone 具有允许其访问的特
  • 对两个双变量进行异或

    我写了以下两行 Line 1 int a a a a Line 2 double d d d d 第 1 行工作正常 但第 2 行出现错误 error invalid operands of types double and double
  • Pandas XLSXWriter - 返回而不是写入

    我想从 Flask Python 服务器返回 Excel 文件 这段代码 writer pd ExcelWriter filename xlsx dataframe to excel writer index False writer sa
  • 如何在 PyQtWebEngine 中启用隐身模式?

    我正在使用 PyQtWebEngine 制作一个网络浏览器 但是我将如何在其中提供隐身模式的功能 答案就在我在上一篇文章中已经指出的例子中 WebEngine 小部件简单浏览器示例 在里面实施隐私浏览他们指出 提供一个就足够了QWebEng
  • 在 Meteor JS 中,如何控制与 DOM 加载顺序相关的 Javascript 加载顺序?对于动画

    我已经下载了一个模板 http halibegic com projects merlin 我想在 Meteor 中使用它 但遇到了重大问题 在第 444 行底部未按正确顺序加载 当页面加载时 该 js 文件中指定的 4 个函数都不起作用
  • 更改所有 Windows 窗体上的设置

    我已经改变了我的app config文件以允许用户更改程序的配色方案 我可以弄清楚如何更改他们更改这些设置的表单的背景颜色 Color colBackColor Properties Settings Default basicBackgr
  • 限制 WebClient DownloadFile 最大文件大小

    在我的 asp net 项目中 我的主页接收 URL 作为参数 我需要在内部下载然后处理它 我知道我可以使用 WebClient 的 DownloadFile 方法 但是我想避免恶意用户提供大文件的 url 这会给我的服务器带来不必要的流量
  • 获取 javax.net.ssl.SSLHandshakeException:Android 5.0.2 中的连接被对等方关闭

    首先 我已经在网上查了 调试了3天 这是确切的错误 javax net ssl SSLHandshakeException Connection closed by peer at com android org conscrypt Nat
  • AWS EMR 错误:作业流程中的所有从站均已终止

    我正在 Amazon AWS 上使用 Elastic Mapreduce 基础设施 jowflow 自动终止 根据亚马逊控制台 最后一次状态更改原因是 作业流程中的所有从站都被终止 创建作业流命令 elastic mapreduce cre
  • 我如何告诉 QListView 调整大小以适应?

    我有一个 QListView 并分配了一个模型和一个委托 我用它在水平栏中显示图像 如下所示 在发生用户事件时 模型中的数据会更新 其中一个事件会导致图像宽度减小 如下所示 4 我在相应的索引上发出 dataChanged 并且仅重新绘制相
  • 指定的初始化器可以合法地引用它在 C99 中初始化的变量吗?

    GCC 和 Clang 都允许指定的初始化器引用正在初始化的结构或数组的成员 但这是合法且定义明确的行为吗 以下代码示例针对 GCC 和 Clang 进行编译和运行并输出 a 3 b 6 在这两种情况下 include
  • 将直通查询中的记录追加到本地表

    我有一个 Access 数据库 并且正在使用传递查询从 AS400 表返回记录 连接字符串和传递查询工作正常 但现在我尝试将 p t 查询的结果填充到数据库内的本地表中 而我的代码超时 这是我第一次尝试 ADO 因此我声明 我不是 100
  • Imagemagick 在多个图像之间进行转换——需要想法

    我正在使用 Fred 的 Imagemagick 脚本 特别是 FX 转换在两个图像之间创建过渡效果 我正在创建 jpeg 图像帧 稍后我会使用ffmpeg将它们转成视频 这是我使用 Imagemagick 的第三天 目前我可以使用以下脚本
  • C++ 迭代结构体

    是否可以迭代结构体 例如 struct team int player1 int player2 int player3 int player4 int player99 int size 99 然后运行 for 循环来设置或访问 foo
  • (Python) 将一个列表添加到另一个列表中而不使用方括号

    我目前正在用 Python 制作我的第一个项目 tic tac toe 因为我认为这将是一个很好的起点 但我终于遇到了障碍 我目前已将板设置为列表 Board 1 2 3 9 并重置 板的内容被删除并通过单独的列表重新输入 但它还添加了括号
  • 这种线性搜索实现真的有用吗?

    In 计算问题我发现了这个有趣的线性搜索实现 它实际上是我的 Java 实现 public static int linearSearch int a int key int high a length 1 int tmp a high p
  • 使用AJAX根据下拉框返回查询结果

    我知道这是一个很受欢迎的问题 我看了很多例子试图弄清楚AJAX and jQuery 我有一个简单的情况 当更改时有一个下拉框发送一个AJAX请求结果SQL根据下拉框选择进行查询 页面加载正确 并且当从下拉框中选择一个部门时正在调用该函数
  • 基本构造函数调用的静态是什么? [复制]

    这个问题在这里已经有答案了 以下 C 代码无法编译 public class BaseType public BaseType int bar Do stuff with bar public class DerivedType BaseT