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
{
}
}
答
由于Student
和School
类型没有它们之间的任何关系,你可以使用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 { /* ... */ }
}
}
你可以暂时使用'object',直到你知道你想要做什么。有点不清楚你的问题是什么。 –
您正在寻找如何使用接口或抽象类。但是为了帮助你,你必须告诉我们更多。 – gustavodidomenico