csharp C#委托示例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp C#委托示例相关的知识,希望对你有一定的参考价值。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DeleGate
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
doing();
}
private string floatToString(float f)
{
return f.ToString();
}
// 情形是我只能用 float 做 function
// 使用匿名函數結合 Action 委派
// 其實最清楚的做法可以把匿名函數分出去
private void doing()
{
// 委派匿名函數(中括號內的事情)到 doAct 的變數 Act01
doAct((string str) =>
{
MessageBox.Show(str);
});
}
private void doAct(Action<string> Act)
{
// 藉由 doing 裡面傳入的匿名函數(中括號內的事情),已經得到 Act01
doAct((f) => // 若參數非模稜兩可的話,可以不用宣告
{
string s = floatToString(f); // 因為 floatToString 只定義 float 可以用,所以沒有模稜兩可
Act(s); // 所以這裡是用第 33 行 的匿名函數,也就是傳入的 Action
});
}
private void doAct(Action<float> Act)
{
float b = 1.0f; // doAct 用 overloading
b += 0.5f;
Act(b); // 所以這裡是用第 42 行 的匿名函數,也就是傳入的 Action
}
// ===================================================================================================
void show(string str)
{
MessageBox.Show(str);
}
void show(float f)
{
string s = floatToString(f);
show(s);
}
private void Ndoing()
{
Action<string> actS = show;
NdoAct(actS);
}
private void NdoAct(Action<string> Act)
{
Action<string> actF = show;
NdoAct(actF);
}
private void NdoAct(Action<float> Act)
{
float b = 1.0f;
b += 0.5f;
Act(b);
}
}
}
以上是关于csharp C#委托示例的主要内容,如果未能解决你的问题,请参考以下文章
csharp 示例 - CSHARP - 报告 - GenerateReport-GenerateCommonMasterDetailReportFromJsoninPresentation.c
csharp 示例 - CSHARP - 报告 - GenerateReport-GenerateInTableMasterDetailReportFromJsoninSpreadsheet.c
对张子扬显示的两篇委托和事件说得很透文章读后的思考
csharp 可映射示例C#
csharp .NET EntityFramework加密示例(C#)
csharp C#创建文件夹的示例