我该如何声明我的方法需要任何类?

本文关键字:方法 我的 任何类 声明 何声明 | 更新日期: 2023-09-27 17:54:20

Method需要任意string时,我们写

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

我有一个method需要任何class。我的method:

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

T -必须是任意class。但是我不知道我应该如何声明我的method需要任何class ?

我该如何声明我的方法需要任何类?

让你的方法泛型并添加泛型参数约束:

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

你可以用任何类参数化它:

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

让它通用:

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

然后像这样使用:

 Post<YourClass>();

如果需要,你可以约束你的泛型方法。

您只需将依赖项作为参数注入,或者在您的情况下-最好注入反序列化器,并且可能不是在Post()方法级别,而是在类构造器级别,然后在Post()中重用