C# 如何获取和使用未知类

C# 如何获取和使用未知类,c#,C#,我想接收ObservableCollection,其中T是未知的。(我做得像个图书馆,所以我不知道分配了什么课) 像这样的故事 1) 我提供了一个名为Prop的属性,编码器将observedcollection分配给Prop,如下所示 Prop = ObservableCollection<T>; // where T is class which coder defined 但正如您所知,如果我分配observeablecollection test=newobserveabl

我想接收
ObservableCollection
,其中
T
是未知的。(我做得像个图书馆,所以我不知道分配了什么课)

像这样的故事

1) 我提供了一个名为
Prop
的属性,编码器将
observedcollection
分配给
Prop
,如下所示

Prop = ObservableCollection<T>;  // where T is class which coder defined
但正如您所知,如果我分配
observeablecollection test=newobserveablecollection()
道具
,发生了一个错误

无法将类型“System.Collections.ObjectModel.ObservableCollection”隐式转换为“System.Collections.ObjectModel.ObservableCollection”


如果您让我知道如何操作,我将非常乐意

您似乎需要一个具有通用定义的类:

class TestGeneric<T>
{
    private ObservableCollection<T> _prop;

    public ObservableCollection<T> Prop
    {
        get
        {
            return _prop;
        }
        set
        {
            _prop = value;
            // here, I'll make process like 
            // value.GetType().GetProperties() etc.
        }
    }
}

class TestClass
{ }
类TestGeneric
{
私人可观测集合(prop);;
公共可观测集合道具
{
得到
{
返回道具;
}
设置
{
_道具=价值;
//在这里,我将使过程如下
//value.GetType().GetProperties()等。
}
}
}
类TestClass
{ }
以便您可以使用通用属性:

        var generic = new TestGeneric<TestClass>();
        generic.Prop = new ObservableCollection<TestClass>();
var generic=newtestgeneric();
generic.Prop=新的ObservableCollection();

为什么不将其设计为ObservableCollection,而不是ObservableCollection?您可以添加精简的类(类定义和要构建的道具)吗?您可以使用property创建接口保留您的属性作为对象,并在使用Reflection获得类型后转换为您想要的类型。总之,答案是正确的,为了节省一些不动产,我选择了自动属性,因为getter/setter中没有处理;)好吧,@wallah说他们需要在setter中进行一些处理,所以我在他们离开时留下了他们的评论are@BobDust谢谢你的回答!我不能直接理解,因为我自己只学了两个月的C#。这意味着我正在研究你的答案:)谢谢!!
        var generic = new TestGeneric<TestClass>();
        generic.Prop = new ObservableCollection<TestClass>();