1. 程式人生 > >C#之Action的實際應用例子

C#之Action的實際應用例子

bug ger tails iou 分享圖片 tail mage init img

public class DemoAction
{
public Action action;
public Action<int> action1;
public Action<int,string> action2;
public Action<List<int>> action3;

/// <summary>
/// 不帶參數
/// </summary>
public void ActionDemo()
{
if (action != null)
{
action();
}
}

/// <summary>
/// 帶一個參數
/// </summary>
/// <param name="a"></param>
public void ActionDemo(int a)
{
if (action1 != null)
{
action1(a);
}
}

/// <summary>
/// 帶兩個參數
/// </summary>
/// <param name="a"></param>
/// <param name="str"></param>
public void ActionDemo(int a,string str)
{
if (action2 != null)
{
action2(a,str);
}
}

/// <summary>
/// 帶一個列表
/// </summary>
/// <param name="?"></param>
public void ActionDemo(List<int> list){
if (action3 != null)
{
action3(list);
}
}
}



public class CSharpDemo : MonoBehaviour {

Action action;


// Use this for initialization
void Start () {

DemoAction demo = new DemoAction();
demo.action = TestAction;
demo.action1 = TestAction;
demo.action2 = TestAction;
demo.action3 = TestAction;

List<int> list = new List<int>(){10,20,30,40};
demo.action();
demo.action1(20);
demo.action2(20, "rose_grils");
demo.action3(list);

}

// Update is called once per frame
void Update () {

}


/// <summary>
/// 不帶參數
/// </summary>
void TestAction(){
Debug.LogError(" 不帶參數");
}

/// <summary>
/// 帶一個參數
/// </summary>
/// <param name="a"></param>
void TestAction(int a)
{
Debug.LogError("帶一個參數 = " + a);
}

/// <summary>
/// 帶2個參數
/// </summary>
/// <param name="a"></param>
/// <param name="str"></param>
void TestAction(int a, string str)
{
Debug.LogError("帶2個參數a = " + a + " str = " + str);
}

/// <summary>
/// 帶一個列表
/// </summary>
/// <param name="list"></param>
void TestAction(List<int> list)
{
Debug.LogError("帶一個列表");
for (int i = 0; i < list.Count; i++)
{
Debug.LogError("i = " + list[i]);
}
}

}

運行結果如下圖:

技術分享圖片


---------------------
作者:穿梭在26個字母的世界
來源:CSDN
原文:https://blog.csdn.net/rose_girls/article/details/50152823

C#之Action的實際應用例子