在C#公共方法中,`int`表示除了类型整数之外的什么?

Art*_*ani 9 c# methods int

在C#中,定义一个公共方法,如:

public int myMethod(String someString)
{  
   //code  
}
Run Code Online (Sandbox Code Playgroud)

int除了类型整数之外还有什么指示?令我困惑的是,在这种情况下,该方法使用String作为参数.

Oli*_*bes 8

它是该方法的返回类型.在这种情况下,32位有符号整数,范围为

-2,147,483,648 .. +2,147,483,647
Run Code Online (Sandbox Code Playgroud)

它对应于.NET类型System.Int32.int它只是一个方便的C#别名.

你会返回这样的值

public int Square(int i)
{
    return i * i;
}
Run Code Online (Sandbox Code Playgroud)

你可以这样称呼它

int sqr = Square(7); // Returns 49
// Or
double d = Math.Sin(Square(3));
Run Code Online (Sandbox Code Playgroud)

如果您不需要返回值,则可以放心地忽略它.

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

如果您没有返回值,则可以使用关键字void代替类型.void不是真正的类型.

public void PrintSquare(int i)
{
    Console.WriteLine(i * i);
}
Run Code Online (Sandbox Code Playgroud)

你会这样称呼它

PrintSquare(7);
Run Code Online (Sandbox Code Playgroud)

示例中的方法接受string输入参数并返回int结果.一个实际的例子是计算a中元音数量的方法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;
}
Run Code Online (Sandbox Code Playgroud)


Die*_*ego 6

它代表"整数",这意味着该方法返回一个32位的整数,也称为C#Int32.


Ash*_*ies 5

如前所述,这是方法返回的内容.

例如:

public string x()
{
 return 5;
}
Run Code Online (Sandbox Code Playgroud)

会错的.5绝对不是一个字符串!

public int x()
{
 return 5;
}
Run Code Online (Sandbox Code Playgroud)

会是对的; 因为5可以被认为是一个int(整数的缩写,基本上只是一个不能有小数点的数字.还有float,double,long和decimal,值得一读)

例如,如果你这样做,一定不能让它不回来:

public int x()
{
 if (false)
 {
  return 5;
 }
}
Run Code Online (Sandbox Code Playgroud)

它会出错,因为如果表达式为false(当然是)它将不会返回一个int,它将不会返回任何内容.

如果您使用的关键字void,这意味着它不会返回任何东西.例如:

public void x()
{
 someFunction("xyz");
}
Run Code Online (Sandbox Code Playgroud)

它没有返回,因为它是一种void方法.

我不认为你对你的声誉进行编程判断是新手,但为了以防万一,当你返回一些东西时,你会从方法中传回来,例如:

int x;

public int seven()
{
 return 7;
}

x = seven();
Run Code Online (Sandbox Code Playgroud)

x将成为函数的返回值seven.

请注意,"动态"类型适用于此处:

public dynamic x(int x, int y)
{
 if (x == y)
 {
  return "hello";
 }
 return 5
}
Run Code Online (Sandbox Code Playgroud)

但是,如果你是C#的新手,那么就不要陷入动态类型.:)