使うメソッドなどの名前を変数にしたいです。
Q&A
解決したいこと
C#のUnity、VSです。
使うメソッドなどの名前を変数にすることは可能でしょうか?
例)
public void (string a) ()
{
}
これで、string a という名前のメソッドを使いたいです。
何か方法はありますか?
0
Q&A
C#のUnity、VSです。
使うメソッドなどの名前を変数にすることは可能でしょうか?
例)
public void (string a) ()
{
}
これで、string a という名前のメソッドを使いたいです。
何か方法はありますか?
ご質問に質問を返すことをお許しください。
おやりになりたいことは?
どのような使われ方を想定されているのかお尋ねしても良いでしょうか?
上記「3」を前提とします。
Invoke
を使うと、文字列でメソッドを呼び出せます。
ただし、本来は遅延実行させるためのものですので、最速でも「次のフレーム」での実行になります。
StartCoroutine
使う場合も、文字列でメソッドを呼び出せます。
ただし、こちらも、本来は別の用途のためのものですので、様々な制約が生じます。
public class SampleClass {
public int SampleMethod (int i) {
return i;
}
}
と定義されているとして、
var sampleClass = new SampleClass ();
var methodInfo = (sampleClass.GetType ()).GetMethod ("SampleMethod");
var returnedValue = (int) methodInfo.Invoke(sampleClass, new object[] { 123, } );
のように呼び出すことができます。
@noutarins
Questioner
@noutarins
Questioner