2013-01-31 101 views
1

我有一類這樣的: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

回答

0

由於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」。 –

0
public class MyClass 
{ 
    private object myField = null; 

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