前记:
虽然对C++的掌握已经清楚了,但是最近接触的C#较于前者还是有所区别,特买了本基础书籍,花点时间好好学学,顺便记些笔记,使自己更投入学习中!
1.为了检查表达式溢出检查,需要用到2个关键字checked 和 unckecked。
checked(<expression>)
unchecked(<expression>)
2.声明 数组
<baseType>[]<name>;
int [] myIntArray;
数组在访问前必须初始化;
数组初始化有2中方式:
1.可以字面值形式指定数组的完整内容;int []myIntArray = {5, 9 ,10 ,11,12};
2.也可以指定数组的大小,再使用关键字new初始化所有数组的元素;
int []myIntArray = new int[5];
int[]myIntArray = new int[arraySize];
3.foreach循环
foreach(<baseType><name>in<array>)
{
// can use <name>for each element
}
foreach循环和标准for循环的主要区别在于:
foreach循环对数组内容进行制度访问,不能改变值,否则编译失败;
4.有时所显示的提示信息会遮挡前面已经键入的代码,这是很恼人的,因为再键入时可能需要参考被遮住的代码。此时可按下ctrl键,使命令列表变成透明的;
5.引用 传递参数
定义: Static void ShowDouble(ref int val){}
调用: ShowDouble(ref myNumber);
6.输出参数 out关键字
out和ref进行比较
相同点: 在函数定义和函数调用中用作参数修饰符;
区别:
1.把未赋值的变量用作ref参数是非法的,但可以把未赋值的变量用作out参数;
2.另外,在函数使用out参数时,必须把它看成尚未赋值;(即使调用可以把已赋值的变量用作out参数,但存 储在该变量中的值会在函数执行时丢失)
7.委托 delegate 是一种存储函数引用的类型。
委托的声明指定了一个返回类型和一个参数列表。定了委托之后,就可以声明该委托类型的变量。接着把这个变量初始化为与委托具有相同返回类型和参数列表的函数引用。之后,就可以使用委托变量调用这个函数。
最简单的委托代码:
#region
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
#endregion
namespace ConsoleApplication1
{
class Program
{
delegate double ProcessDelegate(double param1, double param2);
static double MultiplyAandB(double param1, double param2)
{
return param1 * param2;
}
static double DivideAandB(double param1, double param2)
{
return param1 / param2;
}
static void Main(string[] args)
{
ProcessDelegate process;
Console.WriteLine("Enter 2 numbers separated with a comma:");
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));
Console.WriteLine("Enter M to multiply or D to divide:");
input = Console.ReadLine();
if (input == "M")
{
process = new ProcessDelegate(MultiplyAandB);
}
else
{
process = new ProcessDelegate(DivideAandB);
}
Console.WriteLine("Result:{0}", process(param1, param2));
Console.ReadKey();
}
}
}