在C#中,定义一个公共方法,如:
public int myMethod(String someString)
{
//code
}
Run Code Online (Sandbox Code Playgroud)
int除了类型整数之外还有什么指示?令我困惑的是,在这种情况下,该方法使用String作为参数.
它是该方法的返回类型.在这种情况下,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)
如前所述,这是方法返回的内容.
例如:
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#的新手,那么就不要陷入动态类型.:)