c#在参数中传递方法

比如说我有一个函数:void fun(parm1, parm2);
然后parm2本身也是一个函数,那这个fun要怎么写

用委托就可以了,我用窗体程序做个例子给你
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private delegate void DelegateTest(); // 定义一个委托

private void P()
{
MessageBox.Show("this is a P");
}

private void D(string d,DelegateTest dt) // 第二个参数是上面定义的委托类型,可以绑定方法
{
MessageBox.Show(d);
dt(); // 相当于调用 P();
}
private void Form1_Load(object sender, EventArgs e) //窗体加载事件的处理方法
{
D("this is a D", new DelegateTest(P)); //调用D方法,P绑定到DelegateTest委托上
}
}

如果可以给点分咯
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-05-24
回答者所回答的不全对...
sender,顾名思义--发送者,也就是事件的发起者,也就是事件是从哪里发出来的..
比如button_click(sender
,e)事件,如果你把sender作为一个button来使用的话,是完全可以了
一般使用不到,但这是规范.
然后button_click(sender
,e){}
说白了也就是一个方法(函数),它只是一个事件响应时所需要执行的东西,参数与一般方法没什么两样
第2个回答  2012-02-15
那就是涉及到委托了。。。。
第3个回答  2012-02-15
说的具体点?追问

就是我们一般的函数比如fun1(string a1,int a2)这样,传进去的都是变量,我能不能传个函数进去,让里面的代码调用

追答

函数传函数啊?函数传的都是值?你说的在具体点你想要做什么?

追问

额,那这样吧:
class a
{
public void fun1(int a)
{
int b=a;
}
}

class b
{
public void fun2(...)//????
{
//调用传进来的方法
}
}

class c
{
void test()
{
a c1=new a();
b c2=new b();

b.fun2(// a.fun1() );//?????

}
}

追答

那你定义个委托传一下参数

追问

我不会啊,你给写个示例吧

追答

你上网搜搜有都是 给你个网站我刚才找的你看看吧http://baike.baidu.com/view/1935199.html?wtp=tt

c#中方法的参数可以有哪几种传递方式
c#中方法的参数可以有三种传递方式,方式如下:1、传入一个大小为2的一位数组来传递最大值和最小值。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication3 { class Program { static void Main(string[] args){ Program p = new Program(...

C#中方法参数传递机制
1、值参数(Value Parameter )格式:方法名称(参数类型 参数名称[,参数类型 参数名称])2、引用参数(Reference Parameter )格式:方法名称(ref 参数类型 参数名称[,ref 参数类型 参数名称])3、输出参数(Out Parameter)格式:方法名称(out 参数类型 参数名称[,out 参数类型 参数名称])二、值参数与引用...

C#中能够实现将任意方法作为参数传入一个指定方法吗
static void Main(string[] args){ foreach (Amb a in GtA()) \/\/这个foreach里面的参数也是一个方法GtA(),只不过方法的返回值也是一个数组,所以也可以。{ Console.WriteLine("载具 {0} 行驶1000千米需要 {1} 小时", a.Name, a.Run(1000));} Console.ReadLine();} static Amb[] GtA(...

C# 怎么将类作为参数传递?
public static void GetResult(Person p){Console.WriteLine(p.b);}public class Person{public int a { get; set; }public string b { get; set; }}

在C#中关于传递参数ref和out分别有什么区别
ref(C# 参考)ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。例如:class RefExample { static void Method(ref int i){ i = 44;} static void Main...

C#里面out参数传递数据什么意思?
out 只是用于事先定义好但没有初始化的变量事例中。如:\\x0d\\x0a\\x0d\\x0abyte[] data;\/\/此时你不知道数据的长度有多少所以不能初始化\\x0d\\x0apublic void getdata (out data,int len)\\x0d\\x0a{\/\/在调用这些方法时,你可以明确知道数据有多少了\\x0d\\x0a data = new byte[l...

C#两个项目之间如何传递参数
稳定的办法:用sendmessage,为了防止两个项目之间使用传输数据丢失,将要传输的数据写到一个文件或者注册表里面,接收方接到这个消息后访问该文件 如果你是一个程序启动另外一个程序,启动的时候传一些参数那就简单了。string mainPath = basepath + "\/main.exe";Process.Start(mainPath, "参数");...

c#数组是值传递还是引用传递
在 C# 中,数组是作为引用类型传递的,这意味着当您将一个数组传递给方法时,它传递的是指向该数组的引用,而非数组本身的副本。因此,对该数组所做的任何更改都将反映在原始数组中。然而,需要注意的是,在 C# 中使用数组变量作为参数时,实际上传递的并不是数组的引用,而是对数组引用的副本。这...

C#中传值的方法共有几种?烦请举例
第一种方法就是静态变量机制,C#公布静态变量就是将该类的已有的实例公开,和VC做法雷同,假设我们在一个窗体中这么写:public static String str="";void loadForms(object sender,EventArgs e){ Form2 f=new Form2(); textBox1.Text=str; f.ShowDialog();\/\/一定不要用show}另一个窗...

c#给main()方法传递参数问题
呵呵,这个简单~~~单击“项目”——“你建的解决方案属性”,打开属性页,单击左侧的“调试选项卡”,找到命令行参数,输入你要输入的参数,例如 a b c 再ctrl+F5一下就是运行结果了~~~|

相似回答