コード例 #1
0
 public void OnButton()
 {
     ContextText.text = string.Empty;
     OnButtonPress?.Invoke();
     OnButtonPress = null;
     gameObject.SetActive(false);
 }
コード例 #2
0
        }//onStaminaRestore

        public void UpdateStamina(float byAmount)
        {
            this.Status += byAmount;
            if (Mathf.Sign(byAmount) < 0 && this.Status > 0)
            {
                ResetFlags();
            }

            if (this.Status > Amount)
            {
                EOnFullyRestored?.Invoke();
                Reset();
            }
            if (this.Status < 0)
            {
                this.Status         = 0;
                this.IsFullyDrained = true;
                this.timeOfDrained  = Time.timeSinceLevelLoad;
                EOnFullyDrained?.Invoke();
            }

            if (Mathf.Sign(byAmount) < 0)
            {
                this.timeOfLastStaminaUpdate = Time.timeSinceLevelLoad;
            }


            EOnStaminaUpdated?.Invoke(this.Status);
        }//UpdateStamina
コード例 #3
0
        //Ein Delegat kann einen optionalen Parameter angeben AUCH WENN die Funktion der sie zugewiesen ist einen Parameter vorschreibt. Trotzdem darf das Parameterfeld des Delegaten nicht leer sein, solange die Methode Parameter verlangt. Der Delegat gibt bei leerem Parameterfeld den default Wert des optionalen Parameters(also 0) an(weil: int i = 0).
        //Delegaten die außerhalb von Klassen deklariert sind können nur statische Methoden annehmen.
        public void InvokeDelegates()
        {
            SimpleDelegate simpleDelegate = new SimpleDelegate(DelegateMethod); // Dem Delegaten "simpleDelegate" wird die Methode "DelegateMethod" zugewiesen
                                                                                //Anstatt die Methode mit dem new Modifizierer und dem Delegatennamen einem Delegaten zuzuweisen kann man auch schreiben:
            SimpleDelegate simple = DelegateMethod;

            simpleDelegate += new SimpleDelegate(AnotherDelegateMethod); //Der Delegat "simpleDelegate" hat eine weitere Methode aufgenommen. Ein Delegat der Verweise zu mehreren Methoden hat nennt man "Multicast-Delegaten". Er wird bei Ausführung die beiden Methoden nacheinander aufrufen.
                                                                         //Delegaten kann man auf mehrere Weisen Multicasten. Man kann entweder die Funktion ".Combine()" aufrufen oder die Delegaten mit dem "+=" Operator überladen.
            simpleDelegate.Invoke();                                     //".Invoke()" ist ein Befehl der die ausführung der Methoden verlangt. Wenn der Delegat nicht vom Typ "void" ist kann man den Rückgabewert des Delegaten auch in eine Variable laden. (z.b. int result = simpleDelegate; / int result = simpleDelegate.Invoke(); Console.WriteLine(result);)

            //Statt die ".Invoke()" Methode zu nutzen kann man Delegaten auch wie normale Methoden aufrufen wie unten:
            simple();


            Console.WriteLine("Generische Delegaten ausführen?[y/n]");
            switch (Console.ReadLine().ToLower())
            {
            case "y":
                GenericDelegates();
                break;

            case "n":
            default:
                return;
            }
        }
コード例 #4
0
 public void InvokeOnDone()
 {
     DestroyResourcesView.SetActive(false);
     MainSelectorView.SetActive(true);
     Player.LocalPlayer.CmdNextPlayerInWarWithOrEnd();
     OnDone?.Invoke();
 }
コード例 #5
0
 private Task doAbort()
 {
     if (OnTaskAbort != null)
     {
         return(OnTaskAbort.Invoke());
     }
     else
     {
         return(System.Threading.Tasks.Task.CompletedTask);
     }
 }
コード例 #6
0
 private Task end()
 {
     if (OnTaskEnd != null)
     {
         return(OnTaskEnd.Invoke());
     }
     else
     {
         return(System.Threading.Tasks.Task.CompletedTask);
     }
 }
コード例 #7
0
 private Task doTask()
 {
     if (Task != null)
     {
         return(Task.Invoke());
     }
     else
     {
         return(System.Threading.Tasks.Task.CompletedTask);
     }
 }
コード例 #8
0
 private Task begin()
 {
     taskState = WorkerTaskState.InProgress;
     if (OnTaskBegin != null)
     {
         return(OnTaskBegin.Invoke());
     }
     else
     {
         return(System.Threading.Tasks.Task.CompletedTask);
     }
 }
コード例 #9
0
        static void Main(string[] args)
        {
            SimpleDelegate sd1 = SimpleMethod1;

            sd1 += SimpleMethod2;
            sd1 += SimpleMethod3;
            //sd1 -= SimpleMethod3;

            //sd4();
            int value = sd1.Invoke();

            Console.WriteLine(value);
            Console.ReadKey();
        }
コード例 #10
0
ファイル: Timer.cs プロジェクト: AnnaYanakieva/C-Sharp-OOP
        public void InvokeDelegate()
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            var myDelegate = new SimpleDelegate(SayHello);

            while (true)
            {
                if (stopwatch.Elapsed.Seconds != this.t)
                {
                    continue;
                }

                myDelegate.Invoke();
                stopwatch.Restart();
            }
        }
コード例 #11
0
ファイル: Processor.cs プロジェクト: XWolfOverride/TextBot
        static public void Execute(string code)
        {
            doClear?.Invoke();
            try
            {
                //if (!code.StartsWith("//@Pure"))
                //{
                //    StringBuilder ncode = new StringBuilder("using System;using TextBot;");
                //    string[] cc = code.Split('\r', '\n');
                //    for (int i = 0; i < cc.Length; i++)
                //    {
                //        string line = cc[i].Trim();
                //        if (line.StartsWith("//@"))
                //            ncode.Append(line.Substring(3));
                //    }
                //    ncode.Append("namespace Generated{public class GeneratedClass:ProcessorBaseClass{");
                //    for (int i = 0; i < cc.Length; i++)
                //    {
                //        string line = cc[i].Trim();
                //        if (line.StartsWith("//#"))
                //            ncode.Append(line.Substring(3));
                //    }
                //    ncode.Append("public override void Process(){\r\n");
                //    ncode.Append(code);
                //    ncode.Append("}}}");
                //    code = ncode.ToString();
                //}

                Assembly           asm      = BuildAssembly(code);
                ProcessorBaseClass instance = asm.CreateInstance("Generated.GeneratedClass") as ProcessorBaseClass;
                instance.Process();
                instance.flush();
            }
            catch (Exception e)
            {
                WriteLine("[!!]" + e.GetType().Name + ": ");
                WriteLine(e.Message);
                WriteLine(e.StackTrace);
            }
        }
コード例 #12
0
 public void GameLost_()
 {
     GameLost?.Invoke();
 }
コード例 #13
0
 public void GameStart_()
 {
     GameStart?.Invoke();
 }
コード例 #14
0
        public override void FireEvent()
        {
            SimpleDelegate simple = MyEvent;

            simple?.Invoke();
        }
コード例 #15
0
        public virtual void FireEvent()
        {
            SimpleDelegate simple = MyEvent;

            simple?.Invoke();
        }
コード例 #16
0
 public void OnClick()
 {
     OnClickDelegate?.Invoke();
     Destroy(gameObject);
 }
コード例 #17
0
ファイル: BulkCopy.cs プロジェクト: alidniry/OptLib
        public Response FullCopyTable <TEntityInput, TEntityOutput>(string tableName, string command, SimpleDelegate <TEntityInput, TEntityOutput> action)
            where TEntityInput : class, new()
            where TEntityOutput : class, new()
        {
            var count = Count(tableName);
            var reads = 0;
            //ThresholdReachedEventHandler handler = ThresholdReached;
            var startTime = DateTime.Now;

            RowReads = 0;

            EventData = new ThresholdReachedEventArgs()
            {
                TableName = tableName, StartTime = startTime, CountRows = count
            };
            var cmd = new TDbCommand();

            cmd.Connection     = this.Connection;
            cmd.CommandText    = command;
            cmd.CommandTimeout = 0;

            using (var reader = cmd.ExecuteReader())
            {
                if (reader == null)
                {
                    throw new ArgumentNullException("dataReader");
                }

                if (!reader.HasRows)
                {
                    return(null);
                }

                var bulkCopy = new SqlBulkCopy(ConnectionStringOutput, SqlBulkCopyOptions.KeepNulls & SqlBulkCopyOptions.KeepIdentity)
                {
                    DestinationTableName = tableName,
                    BulkCopyTimeout      = this.BulkCopyTimeout,
                    BatchSize            = this.BatchSize,
                    //EnableStreaming,
                    NotifyAfter = this.NotifyAfter,
                    //ColumnMappings
                };
                bulkCopy.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied);
                new TEntityOutput().GetColumnMapping().ForEach(delegate(SqlBulkCopyColumnMapping item) { bulkCopy.ColumnMappings.Add(item); });


                var IsReader = true;
                while (reads < count)
                {
                    var result = new List <TEntityInput>();
                    //var rows = new List<IDictionary<string, object>>();
                    for (int i = 0; i < PagePaging; i++)
                    {
                        if (reads < count)
                        {
                            if (i % this.NotifyAfter == 0)
                            {
                                EventData.ReadRows  = reads;
                                EventData.TimePross = DateTime.Now - startTime;
                                ThresholdReached(this, EventData);//OnThresholdReached(EventData);
                            }

                            IsReader = reader.Read();
                            result.Add(BuildEntity1 <TEntityInput>(reader));
                            //rows.Add(ReadRow(reader));
                            reads++;
                        }
                    }
                    //foreach (var row in rows)
                    //{
                    //    result.Add(BuildEntity<TEntityInput>(row));
                    //}
                    EventData.ReadRows  = reads;
                    EventData.TimePross = DateTime.Now - startTime;
                    ThresholdReached(this, EventData);//OnThresholdReached(EventData);
                    List <TEntityOutput> models = action.Invoke(result);


                    //var t = models.MapModel(tableName);
                    try
                    {
                        var tDataTable = models.ConvertToDataTable();
                        bulkCopy.WriteToServer(tDataTable);
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }



                //columnMapping.ForEach(delegate (SqlBulkCopyColumnMapping item) { bulkCopy.ColumnMappings.Add(item); });
                //var tDataTable = ClsExtendedLibrary.ConvertToDataTable<TEntity>(entity);
                //bulkCopy.BulkCopyTimeout = 0;
            }
            //IEnumerable<TEntity> models = new List<TEntity>();
            //DataTable table = models.MapModel(tableName);

            var endTime = DateTime.Now;

            EventData.TimePross = DateTime.Now - EventData.StartTime;
            EventData.WriteRows = EventData.CountRows;
            ThresholdReached(this, EventData);//OnThresholdReached(EventData);
            return(new Response(EventData.TableName, startTime, endTime, EventData.CountRows));
        }
コード例 #18
0
 public void InvokeDecline()
 {
     DisableAllViews();
     Hide();
     OnDecline?.Invoke();
 }
コード例 #19
0
 public void InvokeAccept()
 {
     DisableAllViews();
     Hide();
     OnAccept?.Invoke();
 }
コード例 #20
0
 public void OnEndTradingAlliance()
 {
     Panel.SetActive(false);
     OnEndTradingAllianceDelegate?.Invoke();
 }
コード例 #21
0
 public void OnOfferAlliance()
 {
     Panel.SetActive(false);
     OnOfferAllianceDelegate?.Invoke();
 }
コード例 #22
0
 public void OnEndWar()
 {
     Panel.SetActive(false);
     OnEndWarDelegate?.Invoke();
 }