重载方法调用重载方法

2024-01-06

我正在编写一个方法,该方法正在调用其中的另一个重载方法。我只想编写一种外部方法,因为外部方法的参数正在传递给内部方法。有没有办法做到这一点?

我尝试使用泛型,但我对此了解不够,所以它不起作用:

public void OuterMethod<T>(T parameter)
{
    InnerMethod(parameter); // InnerMethod accepts an int or a string
}

我知道我可以这样做:

public void OuterMethod(string parameter)
{
    InnerMethod(parameter);
}

public void OuterMethod(int parameter)
{
    InnerMethod(parameter);
}

但我宁愿以正确的方式执行此操作,而不是复制/粘贴代码。实现这一目标的最佳方法是什么?


您可以在 C++ 中执行此操作,但不能在 C# 中执行此操作(除非内部方法也可以是通用的而不是重载的)。


或者(如果您不接受“否”的答案),您可以在类型上进行运行时切换,例如......

public void OuterMethod(object parameter)
{
    if (parameter is int)
        InnerMethod((int)parameter);
    else if (parameter is string)
        InnerMethod((string)parameter);
    else
        throw new SomeKindOfException();
}

...但显然这是运行时检查,而不是编译时检查。

但我宁愿以正确的方式执行此操作,而不是复制/粘贴代码。

您还可以编写软件来编写外部方法(例如使用 System.CodeDom 类),而不是手动编写它们,但这可能比其价值更麻烦。

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

重载方法调用重载方法 的相关文章

随机推荐

  • Maven 插件,用于创建可执行 jar,其依赖项未解压(jar with jars)

    我阅读了很多使用依赖项构建可执行 jar 的解决方案 maven 阴影插件 maven 依赖项插件 maven 程序集插件 所有这些插件都会解压依赖项 jar 并将它们重新打包到可执行 jar 中 唯一将解压到可执行 jar 中的依赖项 j
  • 外键中的循环依赖:使用还是避免?

    我的应用程序将数据库中的大量数据加载到复杂的数据结构中 内存中的数据结构类似于数据库的结构 这意味着如果数据库包含以下表 表A 键为A1 表 B 键为 B1 其中一列是表 A 的键 的外键 表 C 键为 C1 其中一列是表 B 的键 的外键
  • 如何在Android Studio中使用Google Cloud Translation API?

    我正在制作一个用于语言翻译的 Android 应用程序 到目前为止 我已经使用语音识别器意图将语音输入转换为字符串 现在我想将该字符串翻译成另一种语言 并使用 TTS 引擎说出翻译后的文本 我创建了一个单独的translate test文件
  • 如何将视图模型传递到布局/母版页?

    在谷歌搜索了一段时间后 我对如何在 asp mvc 3 中执行此操作有点困惑 因此 任务是为多个控制器的视图提供一个通用的布局 或主 页面 所有视图本身都是强类型的 这个布局页面实际上可视化了一些强类型对象 因此 我需要将此对象传递到布局页
  • 在 Matplotlib 中使用获取和设置轴方法的相对坐标

    控制位置的一种方法figure反对新的axes应该是通过使用add axes方法 此方法接受 4 个值的列表或元组 这些值表示 左 下 宽 高 其中所有数量均以图形宽度和高度的分数形式表示 例如 import matplotlib fig
  • 如何确定特定动画帧何时运行

    我想知道动画的某些帧何时运行以设置各种条件 在下面的代码中 如何使用计数器或设置条件来确定特定动画帧 例如第 3 帧和第 8 帧 当前正在运行的时间 NSMutableArray frameArray NSMutableArray arra
  • 从Python脚本解析PHP文件变量

    我需要从我的 Python 脚本的 PHP Wordpress 配置文件中获取一些数据 我如何解析配置数据 例如 我怎样才能得到 wp 版本价值 配置示例 The WordPress version string global string
  • Java中有没有办法在不传输或下载的情况下获取图像的宽度和高度?

    为了获得图像的高度 我们可以使用ImageIO read new URL getHeight https docs oracle com javase 8 docs api java awt image BufferedImage html
  • 将数字转换为 16 位浮点数(以字节形式存储)并返回?

    出于 有损 压缩的目的 我希望能够将 Javascript 数字转换为 16 位浮点表示形式 以存储在 Uint16Arrays 或 Uint8Arrays 以最简单的为准 中 然后我希望能够从2 个字节对应一个数字 我不需要对 16 位数
  • numpy.fft() 返回值幅值+相移或角度是多少?

    np fft fft 返回一个复数数组 复数的含义是什么 我想实部是振幅 虚部是相移 相位角 或者是其他东西 我发现数组中的位置代表频率 这并不是一个真正的编程问题 也不特定于numpy 简而言之 复数的绝对值 sqrt x real 2
  • 如何进行不区分大小写的字符串替换

    嗨朋友们我正在创建一个应用程序 我想在其中找到一个特定的单词ArrayList我必须更换用另一个词来说 我使用了下面的代码 它区分大小写 但我想让它不区分大小写 FillintheBlank class public class Filli
  • 使用 multer-s3 nodejs 将图像上传到亚马逊 s3

    我正在尝试使用将图像上传到亚马逊 s3multer s3 但我收到此错误 类型错误 预期 opts s3 为对象 node modules multer s3 index js 69 20 这是我的服务器代码 var upload mult
  • POM错误:找不到org.springframework.boot

    我一直在尝试设置一个春季启动项目但收到错误 我研究并尝试了各种选择 但到目前为止还没有运气 任何帮助 将不胜感激 项目构建错误 Non resolvable parent POM Failure to find org springfram
  • 在 sed 替换字符串中转义换行符

    这是我尝试更换b带有换行符的字符使用sed在跑步的时候bash gt echo abc sed s b n anc 不 不是那样的 gt echo abc sed s b n a nc 不 也不是这样 我想要的输出是 a c HELP 看起
  • 为什么 JSON.stringify 会搞砸我的日期时间对象?

    id 1533 story type id 1 content id 470 created at Sun 05 Feb 2012 07 02 43 GMT updated at Sun 05 Feb 2012 07 02 43 GMT t
  • Firebase 云功能与 Firestore 返回“已超出截止日期”

    我从 Firestore 文档中获取了示例函数之一 并能够从本地 firebase 环境成功运行它 但是 一旦我部署到 Firebase 服务器 该功能就会完成 但 Firestore 数据库中不会创建任何条目 firebase 函数日志显
  • CucumberJS:每一步后截图

    有谁知道如何截图everycucumberjs 中场景的步骤 并将其附加到 json 报告中 显然 这可以通过自定义报告器使用 Cucumber 事件处理程序来完成 browser takeScreenshot then png any g
  • 如何通过 Unity 和 DependencyResolver 使用会话值

    我正在使用 MVC4 和 Unity 2 1 我的服务需要基于从会话状态检索到的凭据的服务密钥 我像这样注册我的服务 container RegisterType
  • 如何在 Inno Setup 中记录文件复制过程

    在安装过程中 我需要将一些文件从文件夹复制到另一个文件夹 我如何确定此复制过程是否成功 FileCopy ExpandConstant src copy txt ExpandConstant app test success txt fal
  • 重载方法调用重载方法

    我正在编写一个方法 该方法正在调用其中的另一个重载方法 我只想编写一种外部方法 因为外部方法的参数正在传递给内部方法 有没有办法做到这一点 我尝试使用泛型 但我对此了解不够 所以它不起作用 public void OuterMethod