部分类构造函数

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(使用前将#替换为@)

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

  • GetType() 在 Type 实例上返回什么?

    我在一些调试过程中遇到了这段代码 private bool HasBaseType Type type out Type baseType Type originalType type GetType baseType GetBaseTyp
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 当一组凭据下的计划任务启动的进程在另一组凭据下运行另一个程序时,Windows 是否有限制

    所以我有一个简单的例子 其中我有应用程序 A 它对用户 X 本地管理员 有一些硬编码的凭据 然后它使用硬编码的绝对路径启动带有这些凭据的应用程序 B A 和 B 以及 dotnet 控制台应用程序 但是它们不与控制台交互 只是将信息写入文件
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • DataTable.GetChanges() 不断返回 NULL

    我正在尝试获取存在于的所有行allData但不在removeData public static DataTable RemoveDuplicateRows DataTable allData DataTable removeData re
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s
  • 使用 omp_set_num_threads() 将线程数设置为 2,但 omp_get_num_threads() 返回 1

    我有以下使用 OpenMP 的 C C 代码 int nProcessors omp get max threads if argv 4 NULL printf argv 4 s n argv 4 nProcessors atoi argv
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域

随机推荐

  • 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 我希望能够以某种方式插入在调用类构造函数后运行