相关疑难解决方法(0)

如何将对象转换为Type类描述的类型?

我有一个对象:

ExampleClass ex = new ExampleClass();
Run Code Online (Sandbox Code Playgroud)

和:

Type TargetType
Run Code Online (Sandbox Code Playgroud)

我想将ex类型转换为TargetType所描述的类型:

Object o = (TargetType) ex;
Run Code Online (Sandbox Code Playgroud)

但当我这样做时,我得到:

找不到类型或命名空间名称't'

那怎么做?我在这里遗漏了一些东西吗?

更新:

我想得到这样的东西:

public CustomClass MyClassOuter
{
   get
   {
        return (CustomClass) otherClass;
   }
}

private otherClass;
Run Code Online (Sandbox Code Playgroud)

因为我会有很多这样的属性,我想这样做:

public CustomClass MyClassOuter
{
   get
   {
        return (GetThisPropertyType()) otherClass;
   }
}

private SomeOtherTypeClass otherClass;
Run Code Online (Sandbox Code Playgroud)

语境:

通常在我班级的上下文中,我需要创建许多属性.并且在每一个都取代铸造属性的类型.它对我来说似乎没有意义(在我的上下文中),因为我知道返回类型是什么,我想写一些代码来为我做演员.也许是仿制药的情况,我还不知道.

这就像我可以保证在这个属性中我得到正确的对象并且是正确的类型并且100%能够将它转换为属性类型.

所有我需要这样做,以便我不需要在每个属性中指定它必须"将值转换为CustomClass",我想做一些类似"将值转换为与此属性相同的类"的内容.

例如:

class MYBaseClass
{
   protected List<Object> MyInternalObjects;
}

class MyClass
{
   public SpecialClass MyVeryOwnSpecialObject
   {
      get
      {
           return (SpecialClass) MyInteralObjects["MyVeryOwnSpecialObject"];
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

好吧 - 我可以制作上面这样的许多属性 - 但是有两个问题: …

c# types casting .net-3.5

27
推荐指数
2
解决办法
8万
查看次数

类型化基类引用其实际类型

我有一个Class BaseFilter和一些BaseFilter类的Derived类.

1. List<base> list = getFilters();
2. foreach(Base filter in list){
3.     var filterType = filter.GetType();
4.     var filter1 = filter as filterType;
5.     //DO SOME DERIVED CLASS OPERATION
6. }
Run Code Online (Sandbox Code Playgroud)

我在代码行3遇到错误.挑战是filter可以是任何派生类类型.有没有办法将过滤器对象强制转换为它的实际派生类?

我收到以下错误:无法找到类型或命名空间名称'filterType'(您是否缺少using指令或程序集引用?)

应该采用哪种正确方法?

c# polymorphism casting

2
推荐指数
1
解决办法
808
查看次数

标签 统计

c# ×2

casting ×2

.net-3.5 ×1

polymorphism ×1

types ×1