Πώς να καλέσετε τη λειτουργία αυτή με τη μέθοδο της ανάκλασης, παράμετροι οι αντιπρόσωποι και τα γενόσημα φάρμακα

ψήφοι
-1
// this is code
    public class Foo1Parent
    {
    }
    public delegate void CallBack<T>(T arg1);
    public delegate void CallBack(); 
    public class Foo
    {
    public void openWindow<T>(CallBack<T> onWindowAwake) where T : Foo1Parent
     {
      Debug.Log(test);
      onWindowAwake(T);
     }
//I use reflection to call methods openWindow
public void openCWindow(CallBack onback, string dialogName)
{
    Type t = Assembly.GetExecutingAssembly().GetType(dialogName);
    MethodInfo meth1 = this.GetType().GetMethod(openWindow);
    object[] obj = new object[] { null }
    meth.Invoke(this, obj );
}
}


//this is my code


//this object[] How do you write it? or has other methods?
Δημοσιεύθηκε 24/10/2019 στις 11:56
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Δεν είναι σαφές ποιο είναι το ερώτημα εδώ είναι, αλλά, από τα βλέμματα των πραγμάτων που ζητάτε:

How do I invoke the generic method openWindow using reflection?

Αν αυτό είναι το ερώτημα τι πρέπει να κάνετε μετά μπορείτε να πάρετε το MethodInfoοποίο έχει τον γενικό ορισμό της openWindowείναι να δημιουργήσετε μια γενική μέθοδο που χρησιμοποιεί MakeGenericMethod

Παράδειγμα:

MethodInfo genericDefinition = this.GetType().GetMethod("openWindow");

MethodInfo genericMethod = genericDefinition.MakeGenericMethod(typeof(Foo1Parent));

object[] obj = new object[] { null };

genericMethod.Invoke(this, obj);

Αυτός είναι ο μόνος τρόπος που μπορεί να επικαλεστεί μια γενική μέθοδο, δεν είναι δυνατόν να επικαλεστεί έναν ορισμό, γιατί, δεν ξέρω τι Tείναι.

Μετάφραση, συγνώμη, δεν ξέρω κινέζικα, αλλά ελπίζω να είναι κατανοητό

目前 尚不 清楚 這裡 的 問題 是 什麼, 但是 從 您 要 詢問 的 事物 的 外觀 來看:

如何使用反射調用通用的法openWindow?

如果這是問題,在獲得那麼具有openWindow通用定義的MethodInfo之後,需要做您的是使用MakeGenericMethod創建通用方法.

這是調用泛型方法的唯一方法,無法調用定義,它不因為知道T是什麼.

Απαντήθηκε 25/10/2019 στις 14:19
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more