-1
Java代碼差異在Java中對C#
public abstract class A<T extends AA> extends B
{
public A()
{
Type type = this.getClass().getGenericSuperclass();
ParameterizedType parametrizedType = (ParameterizedType) type;
Type[] fieldArgTypes = parametrizedType.getActualTypeArguments();
parameterType = (Class<T>) fieldArgTypes[0];
}
}
在C#.NET CORE我寫了這個:
public abstract class A<T> : B where T: class
{
public A()
{
Type type = GetType().GetGenericTypeDefinition();
parameterType = type.GenericTypeArguments[0];
}
}
但是當我運行程序我有錯誤:This operation is only valid on generic types.
我有不知道如何解決這個問題。我想要實現Java代碼中的一樣。
應該在類型實例上調用'GetType()'。該行是否編譯'GetType()。GetGenericTypeDefinition();'? – Rahul
@Rahul和Java代碼你看到類型?我需要在C#中編寫相同的代碼。是的 – Bubuu
不清楚你想在這裏做什麼,但你在尋找'this.GetType()。GetGenericArguments()'? – DavidG