在 C# 类中重载 vb.net & 运算符

2023-11-25

我这里有一个非常独特的问题。我们的业务应用程序是使用 c# 和 vb.net 构建的。我们一直在努力接近一个标准,并为我们的一些核心、已经复制的对象削减脂肪。我们已经非常接近了,但是当尝试将重复对象合并到 c# 中时,我们的 vb.net 代码现在开始抛出错误“当我尝试执行 vb 操作时,未为类型 'CSType' 和 'String' 定义运算符 '&' .net 使用 & 符号连接字符串。有趣的是,如果我在 c# 中将 '&' 与 CSType 一起使用(正确重载后),我会得到我期望的字符串连接。

以下是我对 CSType 的基本重载:

public static string operator &(CSType c1, string s2)
{
    return c1.ToString() + s2;
}
public static string operator &(string s1, CSType c2) 
{
    return s1 + c2.ToString();
}

当我在 c# 中使用 CSType 和字符串运行“&”运算符时,我得到了预期的结果,当我尝试在 vb.net 中执行该操作时,代码将无法编译,并给出错误:

“没有为类型‘CSType’和‘String’定义运算符‘&’”

CSType 也隐式转换为大多数数据类型,所以我认为“&”假设它是按位运算符,可能存在一些问题,但我猜这会失败,因为会给我混乱的执行,而不是编译错误。

不管怎样,我有点想把这个类放在 c++ 中,我知道我可以从中得到我需要的东西,但两种语言还不够。


The &C# 中的运算符是按位 AND 运算符。所以当你超载时

public static string operator &(CSType c1, string s2)
{
    return c1.ToString() + s2;
}
public static string operator &(string s1, CSType c2) 
{
    return s1 + c2.ToString();
}

您可以在 VB.Net 中使用它And操作员:

Dim a = New CSType("Foo")
Dim b = "Bar"
Dim c = a And b

然而,要重载 VB.Net&VB.Net 之外的运算符(例如 C#),您必须创建一个名为的方法op_Concatenate并使用SpecialName属性:

[SpecialName]
public static string op_Concatenate(CSType c1, string s2)
{
    return c1.ToString() + s2;
}

[SpecialName]
public static string op_Concatenate(string s1, CSType c2)
{
    return s1 + c2.ToString();
}

然后下面的代码将起作用:

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

在 C# 类中重载 vb.net & 运算符 的相关文章

  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 无法注册时间触发的后台任务

    对于 Windows 8 应用程序 在 C Xaml 中 我尝试注册后台任务 很难说 但我想我的后台任务已正确注册 但是当我单击调试位置工具栏上的后台任务名称时 我的应用程序停止工作 没有任何消息 我查看了事件查看器上的日志 得到 具有入口
  • extern 声明和函数定义都在同一文件中

    我只是浏览了一下gcc源文件 在gcc c 我发现了类似的东西 extern int main int char int main int argc char argv 现在我的疑问是extern是告诉编译器特定的函数不在这个文件中 但可以
  • 强制初始化模板类的静态数据成员

    关于模板类的静态数据成员未初始化存在一些问题 不幸的是 这些都没有能够帮助我解决我的具体问题的答案 我有一个模板类 它有一个静态数据成员 必须为特定类型显式实例化 即必须专门化 如果不是这种情况 使用不同的模板函数应该会导致链接器错误 这是
  • cpp.react库的C++源代码中奇怪的“->* []”表达式

    这是我在文档中找到的 C 片段cpp react 库 https github com schlangster cpp react implicit parallelism auto in D MakeVar 0 auto op1 in g
  • RestSharp获取序列化输出

    我正在寻找一种方法来访问 AddBody 调用的序列化结果 我正在使用内置的 RestSharp 序列化器 例子 class Foo public string FooField void SendRecord var f new Foo
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • 获取没有显式特征的整数模板参数的有符号/无符号变体

    我希望定义一个模板类 其模板参数始终是整数类型 该类将包含两个成员 其中之一是类型T 另一个作为类型的无符号变体T 即如果T int then T Unsigned unsigned int 我的第一直觉是这样做 template
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • 在 C# 中为父窗体中的子窗体控件添加事件处理程序

    我有两种形式 一种是带有按钮和文本框的父表单 单击该按钮时 将打开一个对话框 该子窗体又包含一个文本框和一个按钮 现在我想要的是 每当子表单文本框中的文本更改时 父表单文本框中的文本会自动更改 为了获得这个 我所做的是 Form3 f3 n
  • Oauth2中如何同时撤销RefreshToken和使AccessToken失效

    我正在使用 Owin Oauth2 授权和资源服务器相同 开发单页面应用程序 AngularJS Net MVC Json Rest API 的身份验证流程 我选择了 Bearer Token 路由而不是传统的 cookie session
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • 从共享网络文件夹运行的 .NET 应用程序的性能损失

    从共享网络文件夹运行 NET 4 0 应用程序是否有任何性能损失 我发现哪个应用程序启动速度较慢 但 在使用时没有注意到任何变慢 但不确定 当通过网络运行可执行文件时 Windows 不会在应用程序启动时通过网络传输整个应用程序 这样做是为
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • 如何隐藏数据列表中的项目

    我想隐藏一个项目datalist根据某种条件起诉ItemBound how Wrap a PlaceHolder控制整个内容ItemTemplate 然后在 ItemDataBound 事件中 您可以执行以下操作 Protected Sub
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点
  • 如何在 C 中将 char 连接到 char* ?

    我怎样才能前置char c to char myChar 我有c值为 A and myChar值为 LL 我怎样才能前置c to myChar使 ALL 这应该有效 include

随机推荐

  • 在 Hibernate 中使用查询映射实体

    考虑表 sales id seller id amount date 这是生成的视图sales使用查询SELECT seller id SUM amount FROM sales GROUP BY seller id total sales
  • 使用 .NET 的 Xamarin iOS 本地化

    我正在尝试在 Xamarin iOS Android 项目的可移植类库中使用 NET 本地化 我已按照以下步骤操作 如何在 C 中使用本地化 并具有如下所示的代码 string sText strings enter movie name
  • 创建没有源镜像(操作系统)的 docker 镜像

    我们可以使用没有源映像 OF 的 docker 文件创建 docker 映像吗 FROM rhel 我们不希望所有应用程序 docker 镜像中都包含基础镜像 centos 或 rhel 我们想要分离基础镜像 centos 或 rhel 和
  • 如何检测 UITableView 标题何时滚动出可见区域?

    如何检测 UITableView 标题 表标题 而不是节标题 何时滚动出可见区域 提前致谢 我能想到几种可能的解决方案 1 您可以使用该委托的方法 表视图 didEndDisplayingHeaderView forSection 但是 仅
  • 使用 Android Espresso 进行测试时如何单击操作栏项目?

    我正在使用 Android Espresso 来测试我的活动 我有多个操作栏项目 其中大部分隐藏在溢出中 我正在尝试运行此测试 但错误表明层次结构中没有视图 与不可见不同 MediumTest public void testClickIn
  • 渲染部分视图时如何调用控制器操作?

    我正在为侧边栏创建部分视图 该侧边栏将显示我的网站中最受欢迎的帖子 如何创建一个单独的控制器来加载部分视图所需的模型 这IEnumerable
  • 带有虚函数的类的大括号初始化

    有这样的代码 struct A int x void f struct B int y virtual void f A a 2 B b 3 error no matching constructor for initialization
  • 让 NFC/Beam 更加自动化

    我正在向我的应用程序添加 NFC Beam 功能 我希望它尽可能自动工作 我想摆脱发送者的 触摸到光束 屏幕和接收者的 扫描新标签 屏幕 基本上 我希望它像三星广告中那样工作 我在 stackoverflow 上读到 似乎没有办法摆脱 To
  • JavaScript 中分组运算符“()”的功能与 Haskell 或其他编程语言有何不同?

    分组运算符 在 JavaScript 中 分组运算符 控制表达式中求值的优先级 有没有功能 JavaScript 本身与 Haskell 或任何其他编程语言有何不同 换句话说 功能是否齐全 编程语言本身受评估策略 也许我们可以分享下面的代码
  • MVC 4模型中提交表单在控制器post方法中为空

    所以我现在的问题是 当我提交以下表单时 我无法将模型放入控制器中 我试图让 BillingCodes 这是 BillingCodeObjects 的列表 中的项目循环通过并显示 我从其中删除了一些与情况无关的代码 以使其更短且更易于阅读 这
  • 如何本地化 WPF 4.0 DatePicker 控件

    当您清除新的 WPF 4 0 DatePicker 控件上的框时 它会显示 选择日期 有没有办法本地化文本 我采纳了马特的想法 并对其进行了一些扩展 我实现了一个附加行为 它允许您通过 XAML 为每个 DatePicker 控件定义水印
  • C# 中保存的 JPG 的质量

    我制作了一个小型 C 应用程序来创建 jpg 格式的图像 pictureBox Image Save name ImageFormat Jpeg 镜像创建成功 我输入一张原始图片 用它做一些事情并保存它 然而 这张新照片的质量低于原始照片
  • 如何使用 grep 进行搜索和替换

    我需要在目录中的所有文件和子目录中递归搜索指定的字符串 并用另一个字符串替换该字符串 我知道找到它的命令可能如下所示 grep string to find r 但我怎样才能替换每个实例string to find用另一个字符串 另一种选择
  • Mongoose Schema 尚未注册模型

    我正在使用 MEAN 堆栈 当我尝试使用以下命令启动服务器时npm start 我得到一个例外 schema hasn t been registered for model Post Use mongoose model name sch
  • ASP.NET MVC:对操作强制执行 AJAX 请求

    我正在寻找一种方法来强制只能通过 AJAX 请求访问控制器的操作 在调用操作方法之前执行此操作的最佳方法是什么 我想从我的操作方法中重构以下内容 if Request IsAjaxRequest Do something else retu
  • 应用内购买沙盒测试 - 老沙盒用户不断提示

    我正在开发一款带有应用内购买功能的 iPhone 游戏 我试图通过调用restoreCompletedTransactions 来检索沙盒用户之前的购买 但没有触发任何回调 我在网上看到其他一些遇到类似问题的人删除了沙箱用户并尝试创建一个新
  • 无法从 Visual Studio For Mac 在 iPhone 模拟器中运行 Xamarin 应用程序

    简而言之 我无法在 iPhone 模拟器中运行我的应用程序 没有 播放按钮 三角形 只有一个 调试器 按钮 锤子 As you can see above I have Generic Simulator When I click on i
  • 如果 URL 和图像都存在,Facebook SLComposeViewController URL 将显示在正文中

    Using SLComposeViewController 如果图像和 URL 都存在 我在发布到 Facebook 时会注意到奇怪的行为 具体来说 如果您同时拥有图像和 URL 则该 URL 将显示在 Facebook 帖子的正文中SLC
  • 如何通过 Julia HTTP 访问 API

    使用 Julia 访问 Betfair Exchange API 我已经使用 Julia 大约 2 个月了 最近一直在尝试使用 Julia 访问 Betfair API 有关此服务的说明请参见此处 https docs developer
  • 在 C# 类中重载 vb.net & 运算符

    我这里有一个非常独特的问题 我们的业务应用程序是使用 c 和 vb net 构建的 我们一直在努力接近一个标准 并为我们的一些核心 已经复制的对象削减脂肪 我们已经非常接近了 但是当尝试将重复对象合并到 c 中时 我们的 vb net 代码