C#未知类型属性

问题描述:

我有一类这样的:C#未知类型属性

public class Student 
{ 
    private string NumberP; 
    public string Number 
    { 
     get{return NumberP;} 
     set{NumberP=value;} 
    } 
} 
public class School 
{ 
    private string NameP; 
    public string Name 
    { 
     get{return NameP;} 
     set{NameP=value;} 
    } 
} 

我要声明的像(学校或学生)其他类的类型,但我不知道它的类型。

如何声明属性未知类型。我将未知类型的其他时间

public class MyClass 
{ 
    public UnKnownType 
    { 

    } 
} 
+0

你可以暂时使用'object',直到你知道你想要做什么。有点不清楚你的问题是什么。 –

+0

您正在寻找如何使用接口或抽象类。但是为了帮助你,你必须告诉我们更多。 – gustavodidomenico

由于StudentSchool类型没有它们之间的任何关系,你可以使用object类型:

public class MyClass 
{ 
    public object SomeProperty { get; set; } 
} 

,并使用这样的:

MyClass myClass = new MyClass(); 
myClass.SomeProperty = new Student(); 

或制作包含类别generic

public class MyClass<T> 
{ 
    public T SomeProperty { get; set; } 
} 

,然后你可以使用这样的:

MyClass<Student> myClass = new MyClass<Student>(); 
myClass.SomeProperty = new Student(); 
+0

谢谢您的答案。我正在制作Control.I将其从工具箱拖到form.and其构造函数为空。如何设置T,除非写入代码? – user1624185

+0

你不能。在泛型中,您需要在编译时设置“T”。 –

public class MyClass 
{ 
    private object myField = null; 

    public object MyProperty 
    { 
     get { /* ... */ } 
     set { /* ... */ } 
    } 
}