将函数作为形参

使用了泛型委托这个东西。

Predicate 泛型委托。

Predicate\func\action 的输入参数都标记为IN,这就意味着参数是支持逆变的。

逆变意味着可以从较大的类型转换为较小的类型。<object> 可以转换为<string> .逆变实际上也是一种泛型!!!

public class DoTest     {

public void doTest()         {

TestInfo ti=new TestInfo();

ti.Good = 6;

TestDele<TestInfo> td = new TestDele<TestInfo>();

td.DoWork(5, env =>{env.Good = env.Good + 1;}, ti);

TestDele2 td2 = new TestDele2();

td2.DoWork(5, env => { env.Good = env.Good + 1; }, ti);// 编译器可以从ti 判定 env的类型,而不用在<>中指明。

td2.DoWork<TestInfo>(5, env => { env.Good = env.Good + 1; }, ti);

}         }

public class TestDele<T>     {

public delegate void func2(T t);

public void DoWork(int id,func2 f2,T p2)         {             f2(p2);              }

}

public class TestDele2     {

public delegate void func2<T>(T t);

public void DoWork<T>(int id, func2<T> f2, T p2)         {             f2(p2);         }

}

public class TestInfo     {

private int good;         public int Good { get { return good; } set { good = value; } }         }

将函数作为形参

时间: 2024-08-24 05:24:39

将函数作为形参的相关文章

c语言中函数的形参test(int *&amp;a)?

今天在看一段c代码的时候看到一个函数的形参是(int *&a)居然是这个东西,这让我好生疑惑啊,不知道用这么多的地址符号用意何在呢?传址么? 那也不必这样,只需要用指针完全能够达到这样的效果啊,交换两个整形变量的数据,只要定义一个函数 swap(int* a,int *b) 在函数里面交换*a和*b的值即可了,这样便达到了修改形参而且改变实参的作用呀. 于是我去图书馆拿了一本c语言语法的书籍,发现&符号是取地址的作用,那么*&是个啥东西呢,一直没有看见. 最后在c++的一本书上也看

函数的形参与实参

在函数中,形参不是必须的 1 function fn(){ 2 console.log(arguments[0]+arguments[1]); >>11 3 console.log(arguments.length); >>2 4 console.log(arguments); >>[10, 1] 5 } 6 fn(10,1); arguments是一个类似数组的函数,但它仅仅也只是类似,并不是真的数组.从上面的代码中我们可以看到我并没有使用形参,但是达到了同样的效果.

函数指针形参

编写函数的声明,令其接受两个int形参并且返回类型也是int:然后声明一个vector对象,令其元素是指向该函数的指针.编写4个函数,分别对两个int值执行加.减.乘除运算. #include<iostream> #include<string> #include<vector> using namespace std; int plus1(int x,int y) { return x+y; } int sub(int x ,int y) { return x-y;

关于结构体变量作为函数的形参研究

#include<stdio.h> typedef struct { int b,p ;}A; void f(A c) { int j; c.b+=1;c.p+=2;} main() { int i; A a={1,2}; f(a); printf("%d%d\n",a.b,a.p); } 结构体变量作为函数的形参即void f(A a)时候,在调用函数中改变形参值对于调用的函数中的实参没有任何影响,即输出的依然是实参.

python入门基础教程08 函数的形参与实参

函数的形参与实参 在函数定义时的变量称作函数的形参,形参主要是函数接收函数外部值传入函数体内去处理,是函数和外部程序或者语句的接口.函数调用时的变量称之为实参.现在我们举个例子来说明一下形参和实参. #define fun: multi def multi(x, y):     z = x * y         return z #define main function def main():     a = 12     b = 13 #function 'add' called c = 

C++:一般情况下,设计函数的形参只需要两种形式

C++:一般情况下,设计函数的形参只需要两种形式.一,是引用形参,例如 void function (int &p_para):二,是常量引用形参,例如 void function(const int &p_para). 它们的特点如下: # 引用形参适用于需要改变变量数据的情况,常量引用形参适用于不需要改变对象.变量数据的情况. # 引用形参需要对象.变量来传递值,常量引用形参则不需要,可以直接传递表达式或者函数返回值. 通过这两种方式可以涵盖所有可能需要的设计情况,而通过这种方式实现的

JavaScript中函数的形参和实参的实现原理剖析

我们都知道JS里面参数的传递是可以不一样的,比如我们有一个函数: <script type="text/javascript"> function one(a,b,c) { this.x = a; console.log(a); } one(1); </script> 我们传递的数字只有一个1,但是形参那里有abc三个.这分明对不上啊不是吗? 这个时候如果我们查看b,c的话会显示undefined.ps:比如console.log(b). 当然啦,本来就没有这两

js 函数 /变量/ 以及函数中形参的预解析的顺序

//js 解析分为两个阶段:预编译和执行期 //预编译:声明但是没有初始化 //声明式:funcion a(){} //赋值式:var a = function(){} //匿名函数:function(){} //-----函数之间比较 //结论 1 同一个函数声明,后来者居上 //结论 2 声明式函数要提前赋值式函数 //-----函数和变量的比较 //结论 3 函数声明提升优先级大于变量声明 函数声明要覆盖变量声明 console.log(f1)//打印的是函数 f1() //2 funct

传智播客视频学习 ----&gt;&gt;&gt;&gt; 函数的形参属性

函数形参的属性: #include <iostream> // 此处的参数 int a,只是具有对外的接口, // 其他的属性跟函数体中的b具有一样的属性, // 在函数执行结束的时候就将其销毁了 int functionParameterProperty( int a ){ int b = 10; a = b; printf( "a = %d", a ); } int main (){ int a = 0; functionPatameterProperty( a );