1.PHP中这种方法怎样写的
这是类对象调用,比如有下面一个类
class baiyi{
public $a = 0; //这里设置一个共有变量,并赋值为0
public function diyi($b = 0){ //这里设置一个共有函数方法,并提供一个差数
$this -> a += $b; //这里将上面的那个共有变量的值加上这个函数方法的参数
return $this;//向函数方法返回当前对象
}
public function show(){
echo $this -> a;//这里输出上面的那个公共变量
}
}
然后使用这个类的时候就是这样调用
$baiyi = new baiyi;实例化这个类,格式是 变量 = new 类名称
$baiyi -> diyi(50) -> show(); //这里是调用类中的函数方法diyi并提供一个参数50,接着继续调用类中的函数方法 show,那么,这段代码运行后的最后结果就是 50
这样说,你应该明白了吧?
2.带有out参数的委托要 如何取得out参数的值
1.委托概述委托是C#中新加入的一个类型,可以把它想作一个和Class类似的一种类型,和使用类相似,使用一个委托时,需要两个步骤,首先你要定义一个委托,就像是定义一个类一样;然后,你可以创建一个或多个该委托的实例。定义一个委托的语法是这样的:[public/protected/private] delegate returnType delegateName(paramtype param1,…)这是我自己写的,看起来好像有点怪怪的,我来解释一下,private/protected/private是限定词,就不多说了,delegate是申明一个委托的关键词,returnType是一个返回类型,delegateName是一个你给委托起的名字,你可以写任何一个你喜欢的名字,paramtype param1…这个是参数列表。说了这么多可能看起来还是不是很好理解,我是这样认为的,实用点来讲,委托定义就是在一个函数定义中间加入一个delegate的关键词。它的作用类似于你申明一个类:public class ClassName 创建一个委托的实例:[public/protected/private] delegateName deleInstanceName = new delegateName(MethodName)这个类似于实例化一个类,public ClassName instancename = new ClassName(…),这里有个要注意的地方,即MethodName方法要和delegateName的签名一致。什么是签名一致,就是说MethodName的参数列表,返回值要分别和returnType、(paramtype param1,…)一致。举个例子来说明下:public delegate string DelegateDemo(string name, int age);比如我们如上定义了一个委托,就写法来说,其实就是在函数 string DelegateDemo(string name, int age)前面加了一个delegate的关键字,下面我们来用创建一个函数:public string AgentDemo(string name, int age)这个函数是做参数传递给一个DelegateDemo实例的,接下来创建一个DelegateDemo的实例:DelegateName instanceDemo = new DelegateName(AgentDemo);这时要说到一致了,即AgentDemo和声明委托时的DelegateDemo(我们姑且将delegate去掉)这两个函数的返回值,参数列表要相同。终于说完了,不知道看的人明不明白。接下来,我们可以使用这个委托了(调用一个委托),如下:string name = “cshape”;int age = 20;instanceDemo(name, age);当instanceDemo执行时,会执行AgentDemo函数,instanceDemo相当于C里的一个函数指针,现在这个指针指向AgentDemo的函数入口地址。2.多点委托前面提到的委托都只包含对一个方法的调用,如果需要调用多个方法,需要多次显示的调用这个委托,我们还有另的选择,我们可以让一个委托中包含多个方法,这样我们一次显示调用委托,就可以按照顺序连续的调用多个方法。看下面的例子:public delegate void MultiDelegate(string name);public void AgentDemo1(string str) public void AgentDemo2(string s) MultiDelegate multiDemo = new MultiDelegate(AgentDemo1);multiDemo += new MultiDelegate(AgentDemo2);multiDemo(“multiDemo test :”); 输出的结果应该是:multiDemo test :this is AgentDemo1mutliDemo test :this is AgentDemo2 可以看到我们一次显示的调用一个委托,它顺序的(按照你添加方法的顺序)执行了方法Agen
如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la
3.方法参数中有out和in关键字是什么意思
c# 关键字 | 方法参数
方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。
若要使用 out 参数,必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数。
不必初始化作为 out 参数传递的变量。然而,必须在方法返回之前为 out 参数赋值。
属性不是变量,不能作为 out 参数传递。
如果两个方法的声明仅在 out 的使用方面不同,则会发生重载。不过,无法定义仅在 ref 和 out 方面不同的重载。例如,以下重载声明是有效的:
class myclass{
public void mymethod(int i) {i = 10;}
public void mymethod(out int i) {i = 10;}}
而以下重载声明是无效的:
class myclass{
public void mymethod(out int i) {i = 10;}
public void mymethod(ref int i) {i = 10;}}
有关传递数组的信息,请参见使用 ref 和 out 传递数组。示例
// cs_out.cs
using system;
public class myclass{
public static int testout(out char i){i = b;
return -1;}
public static void main(){
char i; // variable need not be initialized
console.writeline(testout(out i));
console.writeline(i);}}输出-1b请参见c# 关键字 | 方法参数
转载请注明出处育才学习网 » phpout参数方法怎么写