2014-03-28 101 views
2

Method要求任何string我們寫了我應該如何聲明我的方法需要任何類?

void method(string str) 
{ 
str="OK"; 
} 

我有一個method需要任何class。我method 小部分:

Void Post() 
{ 
responsefromserver = new JavaScriptSerializer.Deserialize<T>(sr.ReadToEnd()); 
} 

T - 必須是任何class。 但我不知道我該如何聲明我的method需要任何class

回答

3

讓你的方法仿製並加入通用parameter constraint

Post<FooClass>(); // OK if FooClass is a class 
Post<int>(); // fail, because integer is a value type 
0

你只是注入依賴作爲參數或在你的情況 - 更好地注入反序列化器,可能不在Post()方法級別,但在類構造器級別,然後在Post()重用。

2

使它通用:

void Post<T>() 
{ 
    responsefromserver = new JavaScriptSerializer.Deserialize<T>(sr.ReadToEnd()); 
} 

,然後用它

void Post<T>() 
    where T: class 
{ 
    responsefromserver = new JavaScriptSerializer.Deserialize<T>(sr.ReadToEnd()); 
    // ... 
} 

你可以用任何類參數化它如:

Post<YourClass>(); 

如果需要,您可以constraint您的通用方法。

相關問題