Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- public class CustomEvent{
- public int Count{
- get {
- return events.Count;
- }
- }
- private readonly List<Action> events;
- public CustomEvent(int capacity = 1){
- events = new List<Action>(capacity);
- }
- public event Action Event{
- add{
- events.Add(value);
- }
- remove{
- events.Remove(value);
- }
- }
- public void AddEvent(Action Event){
- events.Add(Event);
- }
- public void RemoveEvent(Action Event){
- events.Remove(Event);
- }
- public void Execute(){
- for(var i = 0; i < events.Count; ++i) {
- if(events[i] != null) {
- events[i]();
- }
- }
- }
- public void ExecuteAndKill(){
- for(var i = 0; i < events.Count; ++i) {
- if(events[i] != null){
- events[i]();
- events.Remove(events[i]);
- }
- }
- }
- public void Clear(){
- events.Clear();
- }
- }
- public class CustomEvent<T>{
- public int Count{
- get{
- return events.Count;
- }
- }
- private readonly List<Action<T>> events;
- public CustomEvent(int capacity = 1) {
- events = new List<Action<T>>(capacity);
- }
- public event Action<T> Event{
- add{
- events.Add(value);
- }
- remove{
- events.Remove(value);
- }
- }
- public void Execute(T value){
- for(var i = 0; i < events.Count; ++i){
- if(events[i] != null){
- events[i](value);
- }
- }
- }
- public void Clear(){
- events.Clear();
- }
- }
- public class CustomEvent<A, B>{
- private readonly List<Action<A, B>> events;
- public CustomEvent(int capacity = 1){
- events = new List<Action<A, B>>(capacity);
- }
- public event Action<A, B> Event{
- add{
- events.Add(value);
- }
- remove{
- events.Remove(value);
- }
- }
- public void Execute(A AValue, B BValue){
- for(int i = 0; i < events.Count; i++){
- if(events[i] != null){
- events[i](AValue, BValue);
- }
- }
- }
- public void Clear(){
- events.Clear();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement