为什么C#不允许运算符重载?

2024-01-15

为什么 C# 不允许运算符重载,而 C++ 却允许?

尝试超载时出现此错误。

预期可重载二元运算符

我的示例代码看起来像,

public static MyClass operator +=(MyClass obj1, MyClass obj2)
        {
           ...
        }

您可以在 C# 中重载运算符:

  • MSDN 教程 http://msdn.microsoft.com/en-us/library/aa288467(VS.71).aspx

在决定使用运算符重载之前,请至少阅读以下内容:

  • 对运算符重载的批评 http://en.wikipedia.org/wiki/Operator_overloading#Criticisms

编辑以响应操作的编辑:

The +=是一个不可重载的运算符。然而,它决定+, and +是可过载的。有一个看这里 http://msdn.microsoft.com/en-us/library/8edha89s(VS.71).aspx哪些运算符可以重载,哪些不能重载。

可以重载的运算符:

+, -, !, ~, ++, --, true, false

+, -, *, /, %, &, |, ^, <<, >>

==, !=, <, >, <=, >=(比较运算符可以重载,但请参阅链接中的注释)

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

为什么C#不允许运算符重载? 的相关文章

  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 如何在.NET中使用java.util.zip.Deflater解压缩放气流?

    之后我有一个转储java util zip Deflater 可以确认它是有效的 因为 Java 的Inflater打开它很好 并且需要在 NET中打开它 byte content ReadSample sampleName var inp
  • 根据 N 个值中最小的一个返回不同的结果

    不确定如何使标题更具描述性 所以我只是从一个例子开始 我使用下面的代码位 它从枚举中选择一个方向 具体取决于四个轴中哪一个与给定方向相比形成最小角度 static Direction VectorToDirection Vector2 di
  • 类特定的新删除运算符是否必须声明为静态

    标准中是否要求类特定的 new new delete 和 delete 是静态的 我可以让它们成为非静态成员运算符吗 为什么需要它们是静态的 它们被隐式声明为静态 即使您没有键入 static
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • 为什么这个没有特殊字符的正则表达式会匹配更长的字符串?

    我正在使用此方法来尝试查找匹配项 例如 Regex Match A2 TS OIL TS OIL RegexOptions IgnoreCase Success 我得到了真实的结果 我很困惑 我认为这应该返回 false 因为模式中没有特殊
  • 动态生成的控件 ID 返回为 NULL

    我可以在 Page PreInit 函数中创建动态控件 如何检索控件及其 ID 我的 C 代码用于创建动态控件之一 var btn new WebForms Button btn Text btn ID Addmore btn Click
  • AES 输出是否小于输入?

    我想加密一个字符串并将其嵌入到 URL 中 因此我想确保加密的输出不大于输入 AES 是可行的方法吗 不可能创建任何始终会创建比输入更小的输出的算法 但可以将任何输出反转回输入 如果您允许 不大于输入 那么基本上您只是在谈论同构算法alwa
  • Azure CloudTable 线程安全吗?

    我正在使用 Storage SDK 2 0 从不同线程 ASP NET 应用程序 写入 Azure 表存储 Is 云表 object 线程安全 我是否可以仅初始化 CloudStorageAccount CloudTableClient 和
  • 将标量添加到特征矩阵(向量)

    我刚刚开始使用 Eigen 库 无法理解如何向所有矩阵成员添加标量值 假设我有一个矩阵 Eigen Matrix3Xf mtx Eigen Matrix3Xf Ones 3 4 mtx mtx 1 main cxx 104 13 error
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • 使用restsharp序列化对象并将其传递给WebApi而不是序列化列表

    我有一个看起来像的视图模型 public class StoreItemViewModel public Guid ItemId get set public List
  • 新任务中使用的依赖注入服务

    我在需要时使用依赖项注入来访问我的服务 但我现在想要创建一个并发任务 但这会由于依赖项注入对象及其生命周期而导致问题 我读过这篇文章 标题 防止多线程 Link http mehdi me ambient dbcontext in ef6
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • 终结器线程的范围是什么 - 每个应用程序域或每个进程?

    根据我的所有阅读 应该有一个 GC 线程来调用所有终结器 现在的问题是这个 一个 线程的范围是什么 每个进程或每个应用程序域 因为域的整体目的是在一个进程空间中分离并创建 独立 的不同应用程序 I read here http dn cod
  • C++ Streambuf 方法可以抛出异常吗?

    我正在尝试找到一种方法来获取读取或写入流的字符数 即使存在错误并且读 写结束时间较短 该方法也是可靠的 我正在做这样的事情 return stream rdbuf gt sputn buffer buffer size 但如果streamb
  • 在简单注入器中解析具有自定义参数的类

    我正在使用以下命令创建 WPF MVVM 应用程序简易注射器作为 DI 容器 现在 当我尝试从简单注入器解析视图时遇到一些问题 因为我需要在构造时将参数传递到构造函数中 而不是在将视图注册到容器时 因此这不是适用的 简单注入器将值传递到构造
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用

随机推荐

  • NumPy:从数值记录数组中获取最小值/最大值

    我有一个 NumPy 记录浮点数组 import numpy as np ar np array 238 03 238 0 237 0 238 02 238 0 237 01 238 05 238 01 237 0 dtype A f B
  • 将 td 移至新列

    我有一张这样的桌子 table tr td some column 1 td td abc td tr tr td another column 1 td td def td tr tr td some column 2 td td abc
  • 通过自动滚动控制 Windows.Forms.Panel 内的位置

    Control Location 不考虑父面板控件的滑块位置 并返回值 就像没有滚动条一样 那么如何获取可滚动面板内某个控件的真实位置呢 例如 在这里我永远无法获得按钮的真实位置 Button button public Form1 Ini
  • 如何在pandas中连接两个具有不同列名的数据框? - Python

    df1 pd DataFrame a 1 2 3 x 4 5 6 y 7 8 9 df2 pd DataFrame b 10 11 12 x 13 14 15 y 16 17 18 我正在尝试使用来自的键合并两个数据框df1 我想我应该使用
  • 通过 VBA 修改 Access 报告中的图表属性(错误 2771)

    我正在构建一个 Access 报告 2010 版 并且希望能够根据用户在表单上的选择来自定义它 当我运行它时 出现错误 2771 您尝试编辑的绑定或未绑定对象框架不包含 OLE 对象 这是传递参数的代码 Private Sub Comman
  • 如何强制 where 子句中的函数在 oracle 中执行一次?

    我正在尝试根据 IP 地址查询相当大的 IP 城市 3 000 000 多行 表 我的源 IP 地址是点分符号 例如 127 0 0 1 表有两个字段存储为整数 例如 2130706433 因此 我需要将点分符号转换为我的 where 子句
  • ASP.NET MVC 3 远程验证以允许原始值

    我的用户模型的电子邮件属性上有一个远程属性 当我创建新用户时 它会创建并告诉用户电子邮件已在使用中 现在我的编辑表单遇到问题 如果用户想要更新值 它告诉用户他 她的电子邮件已在使用中 当正在使用的电子邮件是用户注册的电子邮件时 我不希望它给
  • 奇怪的段错误,可能与 realloc 有关

    char dumpTB TB tb char text malloc sizeof char int i 0 int x 0 string index tNode curr tb gt head while curr NULL while
  • 何时使用 Task.Run().GetAwaiter().GetResult() 和 ().GetAwaiter.GetResult()? [复制]

    这个问题在这里已经有答案了 我有一个需要同步调用的异步任务 是的 不幸的是 这是不可避免的 似乎有两种方法可以实现这一点 每种方法似乎都有效 所以我不确定哪种方法是最好的方法 或者是否有更好的方法 例如 var meetings Task
  • Pig 本地模式、组或 join = java.lang.OutOfMemoryError: Java 堆空间

    Using Apache Pig 版本 0 10 1 21 报道 CentOS 版本 6 3 最终版 jdk1 6 0 31 Virtualbox 上的 Hortonworks Sandbox v1 2 具有 3 5 GB RAM cat
  • OCaml 中的函子

    我在函子 及其结果类型 方面遇到了一些问题 下面 我有一个Set使用一个函子Ordered类型 我实际上使用了set mlOCaml 附带提供一些指导 但我似乎正在做所有事情ahem正确的 我创建了一个Ordered模块与整数并将其应用到S
  • VBA:为什么人们在“Next”语句中包含变量的名称?

    我总是这样写我的 For 循环 For foo 1 to 10 do something Next 然而 当我在网上阅读代码片段时 人们总是这样做 For foo 1 to 10 do something Next foo 我没有注意到两者
  • SSIS 脚本编辑器加载速度非常慢

    在我的角色中 我偶尔会使用 SSIS 在我最新的包中 我使用了脚本任务 我的机器速度足够快 运行 64 位并且有大量内存 但每当我尝试编辑脚本时 我必须等待近一分钟才能加载代码 我正在使用 VS 2012 和 SQL 2012 任何想法 不
  • 在 Redshift 外部表中引用转义引号

    我正在尝试从 csv 中创建一个 Redshift 外部表 其中包含转义引号 如中所述rfc4180 https www rfc editor org rfc rfc4180 如果使用双引号将字段括起来 则使用双引号 出现在字段内的内容必须
  • Python - sys.stderr 未保存到 .txt 或 .log

    我正在检查标准流的工作情况 目前我正在使用stderr使用Python 为了解释清楚 以下是我的代码 print Python testt 当我运行代码时 我得到以下信息 Python Traceback most recent call
  • 如何将 ASP.NET Core 应用程序发布到 ftp 服务器

    Visual Studio发布仅支持导入Web部署 有解决方法吗 Visual Studio 发布配置文件支持纯 FTP 作为目标 但它不支持 SFTP 您应该看到以下选项 网络部署 网络部署包 FTP 不幸的是不支持SFTP 文件系统 U
  • 静态常量变量在子类中不是常量

    我使用的是 Visual Studio 2008 有两个类 Parent 和 Child Parent在头文件中声明了一些静态const变量 然后在cpp文件中定义这些变量 当我尝试在子类的 switch 语句中使用定义作为 case 时
  • Visual Studio 2012 条件捆绑

    我刚刚开始使用 VS 2012 RC 我创建了一个带有母版页和单个 Web 表单的测试站点 目前 我正在使用此代码来捆绑整个Styles网站上的文件夹 全局 asax BundleTable Bundles EnableDefaultBun
  • 如何使用 CoffeeScript 存在运算符来检查某些对象属性是否未定义?

    我想使用 CoffeeScript 存在运算符来检查某些对象属性是否未定义 然而 我遇到了一个小问题 代码如下 console log test if test 编译为 if typeof test undefined test null
  • 为什么C#不允许运算符重载?

    为什么 C 不允许运算符重载 而 C 却允许 尝试超载时出现此错误 预期可重载二元运算符 我的示例代码看起来像 public static MyClass operator MyClass obj1 MyClass obj2 您可以在 C