public static DelegatePointer CreateInstance(DelegatePointer _pointer) { DelegatePointer ret = CreateInstance <DelegatePointer>(); ret.Function = _pointer.Function; return(ret); }
// Use this for initialization void Start() { UnityEngine.Events.UnityEvent ue = new UnityEngine.Events.UnityEvent(); ue.AddListener(() => { Debug.Log(1); boss.talking = false; player.talking = true; }); UnityEngine.Events.UnityEvent ue2 = new UnityEngine.Events.UnityEvent(); ue2.AddListener(() => { Debug.Log(2); boss.talking = true; player.talking = false; }); for (int i = 0; i < 2; ++i) { dialogTree.Current.DelegatePointer = DelegatePointer.CreateInstance <DelegatePointer>(); dialogTree.Current.DelegatePointer.Function = ue; dialogTree.MoveDown(0); dialogTree.Current.DelegatePointer = DelegatePointer.CreateInstance <DelegatePointer>(); dialogTree.Current.DelegatePointer.Function = ue2; dialogTree.MoveDown(0); } dialogTree.MoveDown(0); for (int i = 0; i < 2; ++i) { dialogTree.Current.DelegatePointer = DelegatePointer.CreateInstance <DelegatePointer>(); dialogTree.Current.DelegatePointer.Function = ue; dialogTree.MoveDown(0); dialogTree.Current.DelegatePointer = DelegatePointer.CreateInstance <DelegatePointer>(); dialogTree.Current.DelegatePointer.Function = ue2; dialogTree.MoveDown(0); } dialogTree.Current.DelegatePointer = DelegatePointer.CreateInstance <DelegatePointer>(); dialogTree.Current.DelegatePointer.Function = ue; dialogTree.MoveDown(0); //dialogTree.MoveDown(0); for (int i = 0; i < 2; ++i) { dialogTree.Current.DelegatePointer = DelegatePointer.CreateInstance <DelegatePointer>(); dialogTree.Current.DelegatePointer.Function = ue; dialogTree.MoveDown(0); dialogTree.Current.DelegatePointer = DelegatePointer.CreateInstance <DelegatePointer>(); dialogTree.Current.DelegatePointer.Function = ue2; dialogTree.MoveDown(0); } dialogTree.Current.DelegatePointer = DelegatePointer.CreateInstance <DelegatePointer>(); dialogTree.Current.DelegatePointer.Function = ue; dialogTree.MoveDown(0); dialogTree.Current.DelegatePointer = DelegatePointer.CreateInstance <DelegatePointer>(); dialogTree.Current.DelegatePointer.Function = new UnityEngine.Events.UnityEvent(); dialogTree.Current.DelegatePointer.Function.AddListener(() => { Enable.SetActive(true); Disable.SetActive(false); }); }
// Use this for initialization void Start() { m_dialogtree = Resources.Load <DialogTree>("Dialog/Droomba/DroombaImmobilizedTree"); m_dialogtree.MoveDown(4); m_dialogtree.MoveDown(1); m_dialogtree.Current.DelegatePointer = DelegatePointer.CreateInstance <DelegatePointer>(); m_dialogtree.Current.DelegatePointer.Function = new UnityEngine.Events.UnityEvent(); m_dialogtree.Current.DelegatePointer.Function.AddListener(() => { UnityEngine.SceneManagement.Scene topdown = UnityEngine.SceneManagement.SceneManager.GetSceneByName("TopDownShooter"); GetComponent <ChangeToTopDown>().Trigger(); UnityEngine.SceneManagement.SceneManager.LoadScene("TopDownShooter"); //foreach() } ); }
public System.Type[] GetFunctionParameterTypes() { List <System.Type> v_parameters = new List <System.Type>(); if (DelegatePointer != null) { MethodInfo v_invoke = DelegatePointer.GetType().GetMethod("Invoke"); if (v_invoke != null) { ParameterInfo[] v_params = v_invoke.GetParameters(); foreach (ParameterInfo v_param in v_params) { if (v_params != null) { v_parameters.Add(v_param.ParameterType); } } } } return(v_parameters.ToArray()); }
static void Main(string[] args) { //var e1 = new Employee(); //var e2 = new Manager(); //if (e1 is Manager) //{ // var m = (Manager)e1; // Console.WriteLine("A kind of Employee"); //} //else //{ // Console.WriteLine("E1 is not a manager!"); //} //var number=0; ////Console.WriteLine("Enter a number: "); //try //{ // number = InputNumber.InputLessThan20(); // Console.WriteLine($"You have entered {number}"); //} //catch (FormatException e1) //{ // Console.WriteLine("It is not a valid integer!"); // Console.WriteLine($"Error details {e1.Message}"); //}catch (OverflowException e2) //{ // Console.WriteLine("The number is too big or too small"); // Console.WriteLine($"Error details {e2.Message}"); //} //catch(NumberMustLessThan20Exception e3) //{ // Console.WriteLine("The number is greater than 20 which is not allowed"); //}catch(Exception e3) //{ // Console.WriteLine("Unknown exception!!!!"); //} //var e1 = "myabcgmail.com"; //Console.WriteLine( e1.isValidEmail()); // Console.WriteLine(e1.GetEmailLength()); //List<int> numbers = new List<int>(); //numbers.Add(5); //List<String> names = new List<string>(); //names.Add("Pelle"); //Nullable<int> studentAgeFromDatabase; //studentAgeFromDatabase = null; //int? salaryFromDatabase; //salaryFromDatabase = null; //if (salaryFromDatabase == null) //{ // Console.WriteLine("Salary has not entered from the DB"); //} //C# 1.0 DelegatePointer pointer = Add; Console.WriteLine(pointer(4, 5)); pointer = Substract; Console.WriteLine(pointer(6, 2)); //C# 2.0 pointer = delegate(int a, int b) { return(a * b); }; Console.WriteLine(pointer(2, 5)); //C# 3.0 pointer = (x, y) => { return(x * y * 2); }; //C# 3.5 Func <int, int, int> add = (x, y) => { return(x + y); }; add(4, 5);//> output 9 Func <int, int, int, int> add3 = (a, b, c) => { return(a + b + c); }; add3(3, 5, 6);//14 //Void; no return Action <string> displayMessage = (msg) => { Console.WriteLine(msg.ToUpper()); }; displayMessage("Hello world"); //predeciate: method return true or false;and accept 1 parameter //Generic, Annoymimous method, delegate, lambda Predicate <int> checkEven = (n) => { if (n % 2 == 0) { return(true); } else { return(false); } }; List <int> numbers = new List <int>(); numbers.Add(1); numbers.Add(3); numbers.Add(33); numbers.Add(20); numbers.Add(30); //C# 2.0 var numberGreaterThan5 = numbers.FindAll(delegate(int n) { if (n > 5) { return(true); } else { return(false); } }); //C# 3.5 numberGreaterThan5 = numbers.FindAll(n => { if (n > 5) { return(true); } else { return(false); } }); Console.WriteLine("Numbers are > 5"); foreach (var item in numberGreaterThan5) { Console.WriteLine(item); } //first number which is even var xyz = numbers.FirstOrDefault(n => { if (n % 2 == 0) { return(true); } else { return(false); } }); numbers.FirstOrDefault() Console.WriteLine("First even number " + xyz); Console.ReadLine(); }
private extern static void Register(DelegateClass d_class, DelegateNew d_new, DelegateBang d_bang, DelegateFloat d_float, DelegateSymbol d_symbol, DelegatePointer d_pointer, DelegateList d_list, DelegateAnything d_anything, DelegateObject d_object);