小编Ale*_*der的帖子

在C#中向上转换并根据派生类型调用特定方法

我有几个类,都来自相同的基类型.

class basetype{}
class TypeA : basetype{}
class TypeB : basetype{}
...
Run Code Online (Sandbox Code Playgroud)

其中许多存储在列表中.

List<basetype> myObjects
Run Code Online (Sandbox Code Playgroud)

与往常一样,这些类型中的每一种都必须以不同方式处理.现在我有几种处理它们的方法,以及一种将basetype作为参数的方法.

HandleTypes(TypeA obj){}
HandleTypes(TypeB obj){}
HandleTypes(basetype obj)
Run Code Online (Sandbox Code Playgroud)

目前,我的HandleAllTypes看起来像这样:

string name = obj.GetType().Name
switch(name)
{
  case "TypeA":
    return HandleTypes(obj as TypeA);
  case "TypeB":
    return HandleTypes(obj as TypeB);
  ....
}
Run Code Online (Sandbox Code Playgroud)

现在这是废话.有没有像这样的方式

HandleTypes(obj ?"as derived type"?)
Run Code Online (Sandbox Code Playgroud)

通过MSDN和其他来源搜索,一无所获.

c# reflection casting upcasting

5
推荐指数
1
解决办法
1152
查看次数

按名称访问Excel单元格而不是像A1那样的"坐标"

我有一个Excel表格,我已经从我的代码中命名了我必须填写的单元格.命名字段的原因是客户可以重新排列单元格.

为了使它更清楚:我使用下面显示的字段命名单元格.

Excel字段名称

我现在的问题是我不知道如何使用office interop从C#中解决这些字段.

Range r = Sheet.get_Range("M_Leitung", Type.Missing);
Run Code Online (Sandbox Code Playgroud)

不起作用.由于我没有定义任何范围,只需要插入值的单个单元格,我需要一个返回指定单元格的函数.

c# excel-2007

5
推荐指数
1
解决办法
9185
查看次数

标签 统计

c# ×2

casting ×1

excel-2007 ×1

reflection ×1

upcasting ×1