将属性添加到现有类

2023-12-06

我有一个私有类,用于实现某些属性。因此,我没有能力修改实际的私有类,并且不想使用继承来创建我自己的类来代替它。有没有办法向该私有类添加属性?

Thanks!


如果您可以访问所需类中的数据,并且可以使用方法而不是属性,请查看扩展方法,在 C# 3.0 中引入。从那篇文章中,这里有一个添加到(密封的、不可修改的)String 类的扩展方法:

public static class MyExtensions
{
   public static int WordCount(this String str)
   {
       return str.Split(new char[] { ' ', '.', '?' }, 
                        StringSplitOptions.RemoveEmptyEntries).Length;
   }
}   

From 马的嘴, 扩大特性C# 的未来版本中可能会出现这种情况。

如果您需要访问私有字段或方法,这对您没有帮助。在这种情况下,您可能会考虑反思,但我建议远离这种情况,除非确实有必要——有时会变得混乱。

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

将属性添加到现有类 的相关文章

  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 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 循环的编译时展开 我想知道我们是否可以
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 如何确定 CultureInfo 实例是否支持拉丁字符

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

随机推荐

  • 降低 R 中双打的精度

    我正在寻找一种方法 通过使用基本 R 工具而不求助于 C 或 C 始终忽略 R 中浮点数之间的微小差异 这些是根据 IEC 60559 的双精度浮点数 换句话说 我想 四舍五入 双精度浮点数的有效数字部分 这样就可以返回 TRUE 而不是
  • 努力尝试在 .net 4.5 中使用 HttpClient 获取 cookie 响应

    我有以下代码可以成功运行 我不知道如何从响应中获取 cookie 我的目标是我希望能够在请求中设置 cookie 并从响应中获取 cookie 想法 private async Task
  • 如何增加 JFileChooser 的大小?

    我正在编写一个 Java 应用程序 需要在屏幕分辨率非常高的设备上运行 我需要显示的唯一 UI 组件是 JFileChooser 由于屏幕分辨率太高 FileChooser 显得太小 有没有一个简单的命令可以让它变大 理想情况下 我希望保持
  • 如何在 PowerShell 窗口中更改两个引号之间的文本颜色

    我无法更改两个引号之间的文本颜色 现在它的颜色是暗蓝色 我可以在哪里设置此设置或者我必须执行哪个命令 sample PSReadline v1 x 发货时附带Windows PowerShellWindows 10 及更高版本上的 v5 1
  • PHP 数据对象插入未执行

    我的 PHP 表单刚刚更改为使用 PDO 我唯一能告诉的是执行不起作用 我应该用它传递一些东西吗 db new PDO mysql host localhost dbname x charset utf8 x x if db die Cou
  • 为什么 strcmp 在 c 中不起作用? [复制]

    这个问题在这里已经有答案了 我刚刚开始学习 c 我想尝试 strcmp 函数 但如果我运行它 它总是给我结果 1 我输入什么字符串并不重要 由于第一个字符串比第二个字符串短 因此我期望结果为 1 include
  • 准备 JNA 以在 Eclipse 中使用

    背景 我正在做机器学习研究 并且想使用FANN构建神经网络的库 源代码是用 C 编写的 但我需要对其进行包装 以便我可以将它与我们创建的许多 Java 类一起使用 问题 该网站提供了一个已广受好评的名为 fannj 的包装软件的链接 它的依
  • 变量和打印变量之间的区别[重复]

    这个问题在这里已经有答案了 我有以下代码 假设我正在 IDLE 中逐行输入 coding utf 8 s u My Currency is s print s for s 我得到一个输出 u My Currency is xa3 for p
  • 如何防止JasperReports TextField中的重复数据

    我在用贾斯珀报告文本字段数据存在一些问题 请继续下一页 我在详细信息带中有 3 个文本字段 带 splitType 拉伸 每个文本字段都有边框 并且 isPrintWhenDetailOverflows 参数设置为 true 当文本字段中的
  • 内部编译器错误:总线错误

    我试图制作一个带有详细信息视图的 UITableView 但出现两个错误 在以下代码之后 我得到了两次相同的错误 内部编译器错误 总线错误 我不知道为什么 有人能帮我吗 您可以在下面找到代码的图像here void tableView UI
  • ASP.NET:为什么身份验证超时后 FormsAuthenticationTicket 为空?

    我正在根据我之前的问题和答案实现身份验证超时检测机 制here 我已经实现了一个 HTTP 模块 该模块使用 AuthenticateRequest 事件来运行代码来捕获身份验证期限是否已过期 执行此操作的代码如下 public class
  • Python - 是否可以在 Discord.py-v1.0 中 wait_for 一个或另一个事件?

    有没有可以用的wait for以这样的方式 它将等待reaction add or reaction remove 我见过有on reaction add and on reaction remove功能 但我想要一种没有这些功能的方法 我
  • 在android中将音频注入语音流

    我有一个想法 为愚蠢的人构建一个 Android 应用程序 可以帮助他们接听电话 我想将文本转换为语音 然后通过通话流传输 在android平台上 仍然无法播放音频以便对方在通话过程中听到吗 抱歉 简短的回答似乎仍然是否定的 我很乐意在这一
  • 将 Visual Studio Code 连接到远程 Mysql 数据库

    我知道这应该更加集中 但我为此浪费了一整天的时间 我无法弄清楚 我正在尝试使用任何可用的 VS Code 扩展连接到远程 MySQL 数据库 我尝试使用SQLTools with MySQL MariaDB 插件 适用于 VS Code 的
  • mysql 按计数排序性能

    我发现以下内容有点令人困惑 如果我执行以下查询 当按索引值 关键字 排序时 需要 0 0008 秒 但当按 计数 排序时 需要 3 秒以上 以下过程大约需要 0 0008 秒 SELECT keyword COUNT DISTINCT pm
  • 计算行总和的平均值,无需在 Excel 中创建新列

    这是我的矩阵的示例 A B C D E 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 2 1 您可以将每一行视为受访者 将每一列视为调查问卷上的一个项目 我的目标是取每行总和的平均值 即每个受访者的总分 无需创建新列并考虑
  • 如何让一件物品在另一件物品开始收缩之前完全收缩?

    我试图创建一个随着视口变小而消失的边距 同时主要内容尽可能长时间地保持相同的大小 该边距应该有最大尺寸 因此使用auto是不可能的 换句话说 我的问题是如何控制网站上不同项目的收缩优先级 Flexbox 模型允许设置ratio收缩 但不是收
  • 如何迭代 DOM 树?

    我正在开发一个使用树结构的网站 其方式如下 创建一个列表 如果该列表的元素本身就是一个列表 则使用appendChild将其附加到第一个列表 大列表放在一个名为 tree 的 div 中 我想访问 div 树 的内容并通过节点来显示它们 我
  • zend框架中的密码确认

    我将此类添加到library My Validate Password Confirmation php
  • 将属性添加到现有类

    我有一个私有类 用于实现某些属性 因此 我没有能力修改实际的私有类 并且不想使用继承来创建我自己的类来代替它 有没有办法向该私有类添加属性 Thanks 如果您可以访问所需类中的数据 并且可以使用方法而不是属性 请查看扩展方法 在 C 3