Formas de pasar argumentos

Algunos métodos requieren que se les pasen argumentos ( parámetros). Los tipos de los parámetros deberán especificarse en la declaración de cada método. En general, existen dos formas de pasar parámetros:

  • Por valor y
  • Por referencia.

Paso por valor. Todas las variables que aparezcan en una lista de parámetros serán consideradas parámetros por valor, a menos que la lista contenga la palabra clave out o la palabra clave ref. En el paso por valor se envía una copia del valor del parámetro, de manera que el método que recibe ese valor no puede cambiar el contenido de la variable utilizada en el envío del mensaje.

Ejemplo: // pasoPorValor.cs : Ejemplifica el paso de parámetros por valor.

using System;

using C = System.Console;

class Receptor {

   int s ; 

   public Receptor( int x )
   {

     x+=10 ;

     C.Write Line?(“ El valor de x es : {0} “, x ) ; 

     s = x ; 

   } 

}

class Principal {

   public static void Main( )
   {

     int a = 20 ; 

     Receptor r = new Receptor ( a ) ; 

     C.Write Line(“ El valor de a es : {0} “, a ) ; 

   } 

}

Paso por referencia. En el paso de parámetros por referencia, en lugar de pasar una copia del valor almacenado en la variable, se pasa la dirección de memoria de ella.

Así, el método receptor puede modificar el contenido de la variable.

En C#, los parámetros por referencia se crean utilizando la palabra clave ref en la lista de parámetros del método.

Ejemplo: // pasoPorRef.cs : Ejemplifica el paso de parámetros por referencia.

using System;

using C = System.Console;

class Receptor {

   int s ; 

   public Receptor( ref int x )
   {

     x+=10 ;

     C.Write Line(“ El valor de x es : {0} “, x ) ; 

     s = x ; 

   } 

}

class Principal {

   public static void Main( )
   {

     int a = 20 ; 

     Receptor r = new Receptor ( ref a ) ; 

     C.Write Line(“ El valor de a es : {0} “, a ) ; 

   } 

}

  • fuente:
    tutorial orientado a objetos

______________________________________________________________________

Esto de abajo es “C”

  1. include <conio.h>
  2. include <stdio.h>
  3. include <stdlib.h>
  4. include <dos.h>
  5. include <string.h>
    marco(); menu(); cadenas(); cont_p(); pila(); factorial();
		main()
{
	menu();
	return(0);
	}
		menu()

	{
	int fi=6,t;
	clrscr();
	marco();
	gotoxy(32,fi);printf(“þþ”);
		do{
	gotoxy(35,6); printf(“1.-COPIA UNA CADENA A OTRA”);
	gotoxy(35,8); printf(“2.-CONTADOR DE PALABRAS   “);
	gotoxy(35,10);printf(“3.-FACTORIAL DEL 1 AL 10  “);
	gotoxy(35,12);printf(“4.-CONTADOR DE ESPACIOS   “);
	gotoxy(35,14);printf(“5.-BUSCAR CARACTER        “);
	gotoxy(35,16);printf(“6.-CLASE PILA             “);
	gotoxy(35,18);printf(“7.-CADENA INVERSA         “);
	gotoxy(35,20);printf(“8.-SALIR                  “);
	t=getch();

	if(t==80 || t==72)
	{
	sound(1000);
	delay(10);
	nosound();
	}
	if(t==13){
	sound(10000);
	delay(10);
	nosound();
	}

	if(t==80 && fi<=18){
	gotoxy(32,fi);printf(“   “);
	fi+=2;
	gotoxy(32,fi);printf(“þþ”);
	}
		if(t==72 && fi>=8)
	{
	gotoxy(32,fi);printf(“   “);
	fi-=2;
	gotoxy(32,fi);printf(“þþ”);
	}

	if(fi==6 && t==13){

	cadenas();
	}
	if(fi==8 && t==13){
	cont_p();
	}
	if(fi==10 && t==13){
	factorial();
	}

		if(fi==20 && t==13)
	{
	exit(0);
	}
	}while(t!=27);
	return(0);
	}




	cadenas()
	{
	char cadena1[100],cadena2[100];
	clrscr();
	marco();
	gotoxy(35,12);printf (“CADENA1:”);gets(cadena1);
	strcpy(cadena2,cadena1);
	gotoxy(35,14);printf (“CADENA2:%s”,cadena2);
	getch();
	menu();
	return(0);

		}

		marco(){

		int x;
		clrscr();
		for(x=30;x<=61;x++)
		{
		gotoxy(x,4);printf(“Í”);

		gotoxy(x,22);printf(“Í”);
		}
		for(x=5;x<=22;x++){
		gotoxy(30,x);printf(“º”);
		gotoxy(62,x);printf(“º”);
		}
		gotoxy(30,4);printf(“þ”);
		gotoxy(30,22);printf(“þ”);
		gotoxy(62,4);printf(“þ”);
		gotoxy(62,22);printf(“þ”);
		return(0);
		}

		cont_p(){
		char cadena[100];
		int cont,contp=1;
		clrscr();
		marco();
		gotoxy(35,11);printf(“DIGITA LA CADENA:”);
		gotoxy(35,12);gets(cadena);
		for(cont=0;cont<=(strlen(cadena)−1);cont++){

		if(cadena[cont]==‘ ‘){
		contp++;
		}
		}
		gotoxy(33,15);printf(“EL NUMERO DE PALABRAS ES:%d”,contp);
		getch();
		menu();
		return(0);
		}


		factorial(){
		clrscr();
		marco();

	int i,n,a,j=1;
	clrscr();
	printf(“Introducir el numero N =  “);
	scanf(“%d”,&n);
	for(i=1;i<=n;i++)
	j=j*i;

        for(a=0; a<=10; a++);
	printf(“El Factorial de d! = %d\n”,a,n, j);

    	getch();


		return menu();
		}