2012-03-21 12 views
9

En C#, al definir un método público como:En un método público C#, ¿qué indica el `int` aparte del entero de tipo?

public int myMethod(String someString) 
{ 
    //code 
} 

¿Qué significa el int indican aparte del tipo entero? Lo que me confunde es que el método está usando un String como argumentos en este caso.

+7

El tipo de devolución. – SwDevMan81

+1

Ver [Visual C#] (http://msdn.microsoft.com/en-us/library/kx37x362.aspx) y [Guía de programación C#] (http://msdn.microsoft.com/en-us/library/ 67ef8sbd.aspx) y [Métodos] (http://msdn.microsoft.com/en-us/library/ms173114.aspx). –

+0

Disculpa, esta es una pregunta completa para principiantes. Hice algunas investigaciones en Internet de antemano. Sabía sobre Integer pero no era que fuera por el valor de retorno. ¡Las respuestas a continuación fueron extremadamente útiles! ¿Cómo podría formularlo para que no lo rechaces? Siempre buscaré en los enlaces anteriores antes de publicar una pregunta en el futuro. –

Respuesta

8

Es el tipo de devolución del método. En este caso una de 32 bits con signo número entero con un rango de

-2,147,483,648 .. +2,147,483,647 

Se corresponde con el tipo de .NET System.Int32. int es solo un práctico alias de C# para él.

Usted podría devolver un valor como esto

public int Square(int i) 
{ 
    return i * i; 
} 

Y se podría llamar como esto

int sqr = Square(7); // Returns 49 
// Or 
double d = Math.Sin(Square(3)); 

Si usted no necesita el valor de retorno, puede ignorarlo.

int i; 
Int32.TryParse("123", out i); // We ignore the `bool` return value here. 

Si no tiene valor de retorno se usaría la palabra clave void en lugar del tipo. void no es un tipo real.

public void PrintSquare(int i) 
{ 
    Console.WriteLine(i * i); 
} 

Y ustedes lo llamarían como esto

PrintSquare(7); 

El método en su ejemplo acepta un string como parámetro de entrada y devuelve un int como resultado. Un ejemplo práctico sería un método que cuenta el número de vocales en un string.

public int NumberOfVowels(string s) 
{ 
    const string vowels = "aeiouAEIOU"; 

    int n = 0; 
    for (int i = 0; i < s.Length; i++) { 
     if (vowels.Contains(s[i])) { 
      n++; 
     } 
    } 
    return n; 
} 
+0

¿Qué es un número entero con signo? –

+0

Olivier es correcto. 'int' está firmado porque puede contener números negativos. En contraste, 'uint' no está firmado, y solo puede contener números positivos. – Diego

+0

Sí, 'uint' tiene el rango' 0 .. 4,294,967,295'. –

3

Es el tipo del valor de retorno.

6

Significa "entero", y significa que el método devuelve un número entero de 32 bits, también conocido en C# como Int32.

+0

Y para obtener más información, consulte este artículo: http://csharp.net-tutorials.com/basics/functions/ – David

+0

Supuse que @arthurmani sabía qué int ya estaba pero no entendía sobre el tipo de devolución. –

+0

tienes razón @DavidHeffernan gracias –

5

Como se indicó anteriormente, es lo que devuelve el método.

Por ejemplo:

public string x() 
{ 
return 5; 
} 

¿Sería error. 5 definitivamente no es una cadena!

public int x() 
{ 
return 5; 
} 

Sería correcto; desde 5 se puede considerar un int (abreviatura de entero, que es, básicamente, solo un número que no puede tener un punto decimal).También ha flotador, doble, larga y decimal, que vale la pena leer sobre)

No debe haber ninguna manera de no regresar, por ejemplo, si lo hace:

public int x() 
{ 
if (false) 
{ 
    return 5; 
} 
} 

Será error porque si el la expresión es falsa (es, por supuesto) no devolverá una int, no devolverá nada.

Si usa la palabra clave void, significa que no no devuelve nada. Ej:

public void x() 
{ 
someFunction("xyz"); 
} 

Está bien que no vuelve, ya que es un método void.

No creo que usted es nuevo en la programación a juzgar por su reputación, pero por si acaso, cuando regrese algo que pasar de nuevo a partir del método, por ejemplo:

int x; 

public int seven() 
{ 
return 7; 
} 

x = seven(); 

x se convertirá el valor de retorno de la función seven.

Tenga en cuenta que el tipo 'dinámico' funciona aquí:

public dynamic x(int x, int y) 
{ 
if (x == y) 
{ 
    return "hello"; 
} 
return 5 
} 

Pero si usted es nuevo en C# no queden atrapados en tipado dinámico por el momento. :)

1

Todo el mundo aquí es correcta pero la definición de MSDN:

"Int32 es un tipo de valor inmutable que representa enteros con signo con valores que van desde la negativa 2147483648 (que está representado por la constante Int32.MinValue) a través positiva 2147483647 (que está representado por la constante de Int32.MaxValue. el .NET Framework también incluye una 32 bits sin signo tipo valor entero, UInt32, que representa los valores que van de 0 a 4294967295 ".

encontrado aquí en MSDN: Int32 Structure

Le sugiero que lea la documentación que se encuentra en el enlace de arriba. Es extremadamente útil

Cuestiones relacionadas