函数
带void的函数中就不能有return , 不带void的幻术中必须有return。
参数数组
C#允许为函数指定一个(只能指定一个)特定的参数,这个参数必须是函数定义中的最后一个参数,称为参数组。参数组可以使用个数不定的参数调用函数,可以使用params关键字定义它们。
例:
namespace Ch05Ex03
{
class Program
{
static int SumVals(params int[] vals)
{
int sum = 0;
foreach (int val in vals)
{
sum += val;
}
return sum;
}
static void Main(string[] args)
{
int sum = SumVals(1, 5, 2, 9, 8);
Console.WriteLine("Summed Values = {0}", sum);
Console.ReadKey();
}
}
}
引用参数
用ref关键字
static void ShowDouble(ref int val)
{
...
}
static void main( string[] args)
{
itn myNumber = 5;
ShowDouble(ref myNumber);
}
改变 参数val的值main中的myNumber也会随之改变。
注:myNumber 不可以是常量,因为常量不允许改变
myNumber 必须是已经初始化后的变量。
输出参数
输出参数使用out关键字,用法和ref类似。
区别:把未赋值的变量用作ref参数是非法的,但可以把未赋值的变量用作out参数。
另外,在函数使用out参数时,out参数必须看作是还未赋值。
变量的作用域
只要是{ }包起来的就是一个局部了。
全局变量 必须使用static关键字,
当全局变量和局部变量同名的时候需要使用Program.valueName来对全局变量进行操作。
委托
除了直接调用函数外,还可以通过委托调用它们。委托是用返回类型和参数列表定义的变量。给定的委托类型可以匹配返回类型和参数与委托定义相同的方法。
class Class1
{
delegate string ReadLineDelegate();
static void Main(string[] args)
{
ReadLineDelegate readLine = new
ReadLineDelegate(Console.ReadLine);
Console.WriteLine("Type astring:");
string userInput = readLine();
Console.WriteLine("You typed: {0}",userInput);
}
}
索引命令
stringName.IndexOf(','); 是索引字符串中某个字符的位置,并返回位置。
string.Substring(Int32,Int32);从此实例检索子字符串。 子字符串从指定的字符位置开始且具有指定的长度。
例:
string input = Console.ReadLine();
int commaPos = input.IndexOf(',');
double param1 = Convert.ToDouble(input.Substring(0, commaPos));
double param2 = Convert.ToDouble(input.Substring(commaPos + 1, input.Length - commaPos - 1));