如何解决返回到类的类型的返回对象
| 假设我有课class SomeClass<T>
{
public static void someMethod(T param1) // this gives an error
// I have to do something like (var param1)
{
// ...
// ...
}
}
怎么可能要求param1为T类型,以便我可以将该方法称为:
SomeOtherClass object1 = new SomeOtherClass();
SomeClass<SomeOtherClass>.someMethod(object1);
解决方法
class SomeClass<T>
{
public static void someMethod<T>(T myobject)
{
}
}
,只需使用通用方法即可。
public static void SomeMethod<T>(T param1) ...
,我对C#不太了解,但是我想您希望将泛型类型定义应用于方法而不是类。
public static void someMethod<T>(T param1)
{
//not sure where <T> definition goes in signature...
}
,你得到什么错误?它可能与方法签名以外的其他内容有关。这对我来说很好:
class SomeClass<T>
{
public static void someMethod(T param1)
{
Console.WriteLine(param1);
}
}
...
SomeClass<int>.someMethod(4);
,Tono您的代码正确。根据布兰登所说的(并且不喜欢其他假装),您不必使方法通用,因为它所属的整个类已经是通用的……除非您希望为此方法不同于class的type参数:
class SomeClass<T>
{
public static void someMethod<U>(U myobject)
{
}
}
显然,这绝对不是您想要的。
顺便说一句,在danyolgiax的答案中,由于类的类型参数T和方法的类型参数T(也很糟糕)之间的名称冲突,编译器将引发错误。
确保您的错误来自其他地方。为什么不提及您得到的确切错误消息?这将是解决方案的一半。 :-)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。