gpt4 book ai didi

c# - 如何根据对象类型动态调用函数

转载 作者:行者123 更新时间:2023-11-30 19:22:26 24 4
gpt4 key购买 nike

我正在寻找一种优雅的方法来根据作为参数传递的参数类型调用函数。

换句话说,我希望 EntryPoint 方法(如下)根据 template 参数的类型动态调用适当的 myFunc 方法。

public void EntryPoint(object template)
{
missingMethod(template);//This is the code in question that should call myFunc
}

private void myFunc(TemplateA template)
{
doSomething(template);
}

private void myFunc(TemplateB template)
{
doSomethingElse(template);
}

private void myFunc(object template)
{
throw new NotImplementedException(template.GetType());
}

最佳答案

三个选项:

  • 一系列 if/else 语句(丑陋但简单易懂)
  • Double dispatchvisitor pattern (可能会很尴尬)
  • 等到 C# 4 并使用动态类型(在您的情况下可能不可行)

就我个人而言,我会尝试考虑一开始就不需要这个的替代设计,但显然这并不总是现实的。

关于c# - 如何根据对象类型动态调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com