В публичном методе C #, что указывает `int` помимо целочисленного типа? - PullRequest
9 голосов
/ 22 марта 2012

В C # при определении общедоступного метода, например:

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

Что указывает int помимо целочисленного типа?Что меня смущает, так это то, что в этом случае метод использует строку в качестве аргумента.

Ответы [ 5 ]

8 голосов
/ 22 марта 2012

Это тип возврата метода. В этом случае 32-разрядное целое число со знаком и диапазон

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

Соответствует типу .NET System.Int32. int это просто удобный псевдоним C #.

Вы бы вернули значение, подобное этому

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

И вы могли бы назвать это так

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

Если вам не нужно возвращаемое значение, вы можете спокойно его игнорировать.

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

Если у вас нет возвращаемого значения, вы должны использовать ключевое слово void вместо типа. void не является реальным типом.

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

И вы бы назвали это так

PrintSquare(7);

Метод в вашем примере принимает string в качестве входного параметра и возвращает int в качестве результата. Практическим примером будет метод, который подсчитывает количество гласных в 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;
}
6 голосов
/ 22 марта 2012

Это означает "целое число" и означает, что метод возвращает целое число из 32 битов, также известное в C # как Int32.

5 голосов
/ 22 марта 2012

Как уже говорилось, метод возвращает это значение.

Например:

public string x()
{
 return 5;
}

Будет ли ошибка. 5 определенно не строка!

public int x()
{
 return 5;
}

Было бы правильно; поскольку 5 можно считать целым (Сокращенное от целого, которое, по сути, является просто числом, которое не может иметь десятичную точку. Также есть числа с плавающей запятой, двойные, длинные и десятичные, о которых стоит прочитать)

Не должно быть способа, чтобы он не возвращался, например, если вы делаете:

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

Это будет ошибка, потому что если выражение ложно (это, конечно), оно не будет возвращать int, оно не будет ничего возвращать.

Если вы используете ключевое слово void, это означает, что оно не возвращает что-либо. Пример:

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

Хорошо, что он не возвращается, поскольку это void метод.

Я не думаю, что вы новичок в программировании, судя по вашей репутации, но на всякий случай, когда вы возвращаете что-то, вы передаете это обратно из метода, например:

int x;

public int seven()
{
 return 7;
}

x = seven();

x станет возвращаемым значением функции seven.

Обратите внимание, что здесь работает динамический тип:

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

Но если вы новичок в C #, пока не увлекайтесь динамической типизацией. :)

3 голосов
/ 22 марта 2012

Это тип возвращаемого значения.

1 голос
/ 22 марта 2012

Все здесь верны, но определение из msdn:

"Int32 - это тип неизменяемого значения, представляющий целые числа со знаком со значениями в диапазоне от отрицательных 2 147 483 648 (который представлен константой Int32.MinValue) через положительное значение 2 147 483 647 (который представлен константой Int32.MaxValue. Платформа .NET Framework также включает тип беззнакового 32-разрядного целочисленного значения UInt32, представляющий значения в диапазоне от 0 до 4 294 967 295. "

Находится здесь в MSDN: Структура Int32

Я предлагаю вам прочитать документацию, найденную по ссылке выше. Это чрезвычайно полезно.

...