部分类构造函数

2024-04-01

有没有办法让分部类的构造函数调用我的或可能未定义的另一个方法?

基本上我的部分类构造函数是这样定义的:

public partial class Test
{
     public Test()
     {
          //do stuff
     }
}

我希望能够以某种方式插入在调用类构造函数后运行的额外代码。

另外,有没有一种方法可以让多个文件在调用构造函数后注入额外的代码?


C# 确实支持以下功能部分方法 http://msdn.microsoft.com/en-us/library/wa80x488.aspx。这些允许分部类定义转发声明分部类的另一部分可以选择定义的方法。

部分方法有一些限制:

  • 它们必须是 void 类型(无返回)
  • 他们不能接受 out 参数,但是可以接受 ref 参数
  • 它们不能是虚拟的或外部的,并且不能覆盖或覆盖另一个方法(通过“new”关键字)

部分方法是隐式密封和私有的。

然而,不可能让分部类的两个不同部分实现相同的分部方法。通常,部分方法在代码生成的部分类中使用,作为允许非生成部分扩展或自定义生成部分的行为的一种方式(有时反之亦然)。如果声明了分部方法但未在任何类部分中实现,则编译器将自动消除对它的任何调用。

这是一个代码示例:

 public partial class PartialTestClass
 {
     partial void DoSomething();

     public PartialTestClass() { DoSomething(); }
 }

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

部分类构造函数 的相关文章

  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • 通过单个 GPIO 引脚转储闪存

    我正在使用 Infineon 的 XMC4500 Relax Kit 并尝试通过单个 GPIO 引脚提取固件 我非常天真的想法是通过 GPIO 引脚一次转储一位 然后用逻辑分析仪以某种方式 嗅探 数据 伪代码 while word by w
  • 如何使用汇编获取BIOS时间?

    我正在从头开始实现一个小型操作系统 用于教育目的 现在 我想使用汇编来获取 BIOS 时间 我对此进行了很多搜索 但找不到任何代码示例来执行此操作 如果有人可以提供任何参考或代码示例或与此相关的任何内容 我将非常感激 See 时钟中断 1a
  • C# 中附加/分离事件处理程序的不同方式有什么区别

    我的问题有两个部分 首先 我们可以通过以下两种方式附加事件处理程序 myObject MyEvent new EventHandler MyHandler myObject MyEvent MyHandler 据我了解 这两者是等价的 在第
  • 为什么假设 send 可能返回的数据少于在阻塞套接字上传输的请求数据?

    在流套接字上发送数据的标准方法始终是调用 send 并写入一大块数据 检查返回值以查看是否发送了所有数据 然后再次调用 send 直到整个消息被接受 例如 这是一个常见方案的简单示例 int send all int sock unsign
  • C 中的模仿函数重写

    具体来说 函数重写能够调用基本重写方法 这有两部分 一个是预编译的库代码 1 另一个是库的用户代码 2 我在这里实现了一个尽可能最小的经典 Person 和 Employee 示例 非常感谢了解 OOP 概念的铁杆 C 开发人员的回应 我正
  • 生成 .tail IL 指令的简单 F# 代码是什么?

    我想看看 tailIL 指令 但我一直在编写的使用尾部调用的简单递归函数显然已优化为循环 我实际上是在猜测这一点 因为我不完全确定反射器中的循环是什么样的 我绝对没有看到任何 tail不过操作码 我在项目的属性中检查了 生成尾部调用 我还尝
  • 使用 openssl 检查服务器安全协议

    我有一个框架应用程序 它根据使用方式连接到不同的服务器 对于 https 连接 使用 openssl 我的问题是 我需要知道我连接的服务器是否使用 SSL 还是 TLS 以便我可以创建正确的 SSL 上下文 目前 如果我使用错误的上下文尝试
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • c# 如何生成锦标赛括号 HTML 表

    所以我已经被这个问题困扰了三个星期 但我一生都无法弄清楚 我想做的是使用表格获得这种输出 演示 http www esl world net masters season6 hanover sc2 playoffs rankings htt
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • realloc():重新分配为 char * 上的 strcat 腾出空间时下一个大小无效 [重复]

    这个问题在这里已经有答案了 我在以下代码中收到无效内存错误 printf s n FINE 5 printf s LENGTH IS d n FINE 6 strlen buffer char realloc buffer strlen b
  • 无法通过 LINQ to Entities 使用某些功能?

    我正在尝试使用 LINQ 查询在项目上实现搜索功能 由于数据有时包含带有重音符号和其他符号的字符 因此我创建了一种方法来删除这些字符以进行搜索 这是我的代码 var addresses from a in db Addresses join
  • 理解 C++11 中的 std::atomic::compare_exchange_weak()

    bool compare exchange weak T expected T val compare exchange weak 是 C 11 中提供的比较交换原语之一 它是weak即使对象的值等于 它也会返回 falseexpected
  • Dynamics Crm:获取状态代码/状态代码映射的元数据

    在 Dynamics CRM 2011 中 在事件实体上 状态原因 选项集 也称为状态代码 与 状态 选项集 也称为状态代码 相关 例如看这个截图 当我使用 API 检索状态原因选项集时 如下所示 RetrieveAttributeRequ
  • 为什么C语言中可以使用多个分号?

    在 C 中我可以执行以下操作 int main printf HELLO WORLD 它有效 这是为什么 我个人的想法 分号是一个 NO OPERATION 来自维基百科 指示符 拥有一大串分号与拥有一个分号并告诉 C 语句已结束具有相同的
  • 将一个 long 转换为两个 int 以进行重构

    我需要将一个参数作为两个 int 参数传递给 Telerik Report 因为它不能接受长参数 将 long 拆分为两个 int 并在不丢失数据的情况下重建它的最简单方法是什么 使用掩蔽和移位是最好的选择 根据文档 long 保证为 64
  • 为什么 C# 接口名称前面加上“I”

    这种命名约定背后的基本原理是什么 我没有看到任何好处 额外的前缀只会污染 API 我的想法与康拉德一致response https stackoverflow com a 222502 9898与此相关的question https sta
  • 如何确定给定方法可以抛出哪些异常?

    我的问题和这个真的一样 找出 C 中方法可能抛出的异常 https stackoverflow com questions 264747 finding out what exceptions a method might throw in

随机推荐

  • React/Jest/Enzyme - 等待时间不够长

    我有一个等待多个承诺的函数 const function async gt await function1 await function2 await function3 我想测试 function3 被调用 it calls functi
  • 如何处理返回布尔值的 GraphQL 查询?

    需要在用户注册过程中检查电子邮件是否可用或已被占用 目标是使用 GraphQL API 服务器快速查询 并让它告诉我们电子邮件是否可用或已被占用 使用 GraphQL 处理简单布尔类型情况的一般最佳实践是什么 以下是我的想法 但我不确定这是
  • Linux 上跨共享库的单例的多个实例

    正如标题所提到的 我的问题很明显 我详细描述了该场景 在singleton h文件中有一个名为singleton的类 通过单例模式实现如下 singleton h Created on 2011 12 24 Author bourneli
  • 删除所有可观察集合?

    我正在寻找可以从 ObservableCollection 中删除所选项目的 Linq 方式 例如 List 的 RemoveAll 方法 我太新了 无法为自己创建扩展方法 有什么方法可以通过 Lambda 表达式从 ObservableC
  • 如何从 /proc/meminfo 计算系统内存使用情况(如 htop)

    运行htop命令以如下格式显示内存使用情况 1 92G 5 83G 问题 我应该如何解释取自的值 proc meminfo为了以编程方式计算所使用的内存 我正在寻找类似的东西 Linux 中以百分比形式准确计算 CPU 使用率 https
  • 从纵向旋转到横向时,iPad 布局会放大

    我有一个添加到 viewport 元标签 width device width initial scale 1 0 在 iPad 上 页面在横向模式下加载得很好 它可以很好地切换到纵向模式 当我将其旋转回横向模式时 它会放大页面 我必须将其
  • 如何从 Android 应用程序中的异步任务返回位图

    好的 这段代码就在 Android 开发者网站上 它设置了一个ImageView to a Bitmap class BitmapWorkerTask extends AsyncTask
  • Flink 的简单 hello world 示例

    我正在寻找 Apache flink 的 hello world 体验的最简单的示例 假设我刚刚在一个干净的盒子上安装了 flink 那么为了 让它做某事 我需要做的最低限度是什么 我意识到这很模糊 这里有一些例子 来自终端的三个 pyth
  • 解决这个问题的正则表达式是什么?

    我有一个 PHP 数组 其 URL 如下所示 http example com apps 1235554 http example com apps apple http example com apps 126734 http examp
  • 如何在 WP7 中分解 URI?

    是否有一种方法可以访问 WebBrowser 控件中的查询参数 或者我们是否必须手动分解字符串 例如 http www mysite com paramter 12345 我只需要访问参数的值 我知道在使用 xaml 页面时我们有 Quer
  • 为什么有两个类:视图模型和域模型?

    我知道使用域模型作为视图模型可能很糟糕 如果我的域模型有一个名为 IsAdmin 的属性 并且我有一个创建控制器操作来创建用户 那么有人可以更改我的表单并使其 POST IsAdmin true 表单值 即使我没有在视图中公开这样的文本字段
  • 将字符串转换为 Linq.Expressions 或使用字符串作为选择器?

    好吧 我现在有一个字符串 它具有要计算的表达式值 它有说值expr gt expr FieldName 所以我想使用这个字符串作为 Linq 表达式或任何其他查询方式 比如Select str 请帮帮我 虽然我个人没有使用过它 但动态 Li
  • 如何在分布式环境中使用 Estimator API 在 Tensorboard 中显示运行时统计信息

    本文 https www tensorflow org get started graph viz runtime statistics说明了如何将运行时统计添加到 Tensorboard run options tf RunOptions
  • Visual Studio Code:C++ 包含路径

    我目前正在使用https marketplace visualstudio com items itemName mitaki28 vscode clang https marketplace visualstudio com items
  • iOS - 并发访问内存资源

    我的应用程序从服务器 数据和数据描述符下载多个资源 这些由用户操作触发的下载可以同时执行 比如说一次最多 50 个下载 所有这些异步任务最终都会在内存中创建对象 例如 向数据结构添加叶子 例如向可变字典添加键或向数组添加对象 我的问题是 这
  • 如何通过反射忽略父接口上的事件来获取类型的事件

    我有以下代码 Type type var events type GetEvents BindingFlags DeclaredOnly BindingFlags Instance BindingFlags Public ToList 然而
  • 我什么时候必须释放内存?

    我学习了 C 现在正在学习 C 释放内存的整个意义对我来说是新的 我想知道什么时候需要担心内存释放 什么时候不需要 据我了解 我唯一需要担心内存释放的情况是当我使用new运算符 所以我应该使用释放内存delete 但在这些情况下不需要释放内
  • Conda 与 Mamba 的困惑 - 构建自定义 docker 镜像时应该使用什么

    我正在尝试使用构建自定义 Docker 映像jupyter datascience notebook这是基于jupyter base notebook 我可以看到 mamba 用于为 jupyter 安装 配置 conda 环境 下面是我的
  • 为什么此 JSONP 提要抛出“意外令牌”错误?

    我正试图抓住这个远程 JSONP 提要 http calvaryslo onthecity org plaza 2aevents 2a format json通过 jQuery 每次我尝试时 都会收到 Uncaught SyntaxErro
  • 部分类构造函数

    有没有办法让分部类的构造函数调用我的或可能未定义的另一个方法 基本上我的部分类构造函数是这样定义的 public partial class Test public Test do stuff 我希望能够以某种方式插入在调用类构造函数后运行