c# - 将对象传递给方法并确定类型

标签 c#

我不确定提出这个问题的最佳方法,但我想将一个对象传递到一个方法中,并根据对象的类型通过函数使用该对象。可能还有其他解决方案,所以让我解释一下情况。

我有一位客户向我退回了两个对象(Foo 和 Bar)。但是,这些对象几乎相同,因此我尝试编写一个函数来读取数据。

这是我想做的代码片段,但这显然行不通。

        public static void MyFunction(object obj)
        {

            object order = null;
            if (typeof(Foo) == obj.GetType())
            {
                order = obj as Foo;
            }
            else
                order = obj as Bar;

            // get data from order

        }

任何帮助或指导将不胜感激。

最佳答案

我怀疑您的场景还有很多我们作为社区可以评论的内容,例如评论中提到的界面的使用。但是,仅了解我们所知道的,您可以尝试一些简单的事情,如下所示:

    public static void MyFunction(object obj)
    {
        Foo foo;
        Bar bar;

        if ((foo = obj as Foo) != null)
             //Work with foo here.
        else if ((bar = obj as Bar) != null)
             //Work with bar here
    }

关于c# - 将对象传递给方法并确定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711233/

相关文章:

c# - 按长度变量将字符串拆分为更小的字符串

c# - 性能,Java 泛型

c# - 从 C# 服务使用 Graph API 获取日历计划

c# - 多列组合框中的选定值

c# - 多项目解决方案 "Could not load file or assembly ' System.Web.Mvc, Version=5.2.4.0,"not giving a project name

c# - ReactiveUI 6 异步命令未在 WPF 应用程序的后台线程上运行

c# - 我应该使用什么来识别等宽数字?

c# - 在表单之间传递数组并在数组中管理

c# - 列表 <> .ForEach 未找到

c# - Win8安装签名应用程序如何通过智慧屏?