the diff between var and dynamic
var表示“变量的类型是在编译时决定的”, var让你在初始化变量时少输入一些字,编译器会根据右值来推断出变量的类型, var只能用于局部变量的定义,你不能把类的属性定义成 var,也不能把方法的返回值类型或者是参数类型定义成var
dynamic表示“变量的类型是在运行时决定的”,动态语言运行时(dynamic language runtime DLR)是.NET Framework 4 Beta 1中的一组新的API,它提供了对c#中dynamic类型的支持, dynamic告诉编译器,根本就别理究竟是啥类型,运行时再推断不迟,dynamic类型并没有跳过类型校验,只是延迟到了运行时。如果在运行时,检测到类型不兼容,照样会抛出异常。变量,属性,方法返回值类型及参数类型都可定义为dynamic。
common skeleton
using System;
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
class YourMainClass
{
static void Main(string[] args)
{
//Your program starts here...
}
}
}
Array
数组类型是从抽象基类Array派生的引用类型。由于此类型实现了IEnumerable和IEnumerable,因此可以对C#中的所有数组使用foreach迭代。
new 运算符用于创建数组并且将数组元素初始化为它们的默认值。
int[] array3;
array3 = new int[] { 1, 3, 5, 7, 9 }; // OK
//array3 = {1, 3, 5, 7, 9}; // Error
与所有out参数一样,在使用数组类型的out参数前必须先为其赋值,即必须要由被调用方为其赋值。
与所有ref参数一样,数组类型的ref参数必须由调用方明确赋值,因此,不需要由被调用方明确赋值。