c# 5.0入门经典笔记

来源:互联网 发布:mac yosemite 下载 编辑:程序博客网 时间:2024/05/16 03:42
第一章:
c# 关键字 char 别名Char 单个16位Unicode字符。decimal 128位用于金融计算。


可以为null的类型(包括值和引用类型)都支持null合并运算符(??)


int? x = null
DebugWriteline(x ?? -1);
可以为null赋值给不可以为null,时用??,如果为null用右边的默认值赋值。
可以为null变量相应有方法:hasValue..


装箱,取消装箱
int? i = 36;
object boxed = i;
int? j = boxed as int?; //接收方必须是可以为null或引用类型,成功类型转换就赋值,否则赋值null.


字段被声明为变量,需要占用内存空间,但属性不需要,属性同时满足封装性和抽象性。


信任并核实
Car car;
if(typeof(BMW).IsAssignableFrom(car.GetType()))
{
BMW bmw = (BMW)car;

}


C#中为了重写基类成员,基类成员用virtul修饰,子类用override.
关键字sealed可修饰类和方法,密封不可继承。


[Flags]修饰的枚举时,可以使用逻辑运算OR创建新的组合值。


C#中结构与类
结构:隐式继承System.ValuType,隐式被密封,不能声明默认构造函数,不能有析构函数。
类: 隐式继承System.Object


foreach( type identifier in expression )
{
....
}


@“this is ""example"" !"; //this is "example" !@时只有”需要转义,”“表示”
String.IsNullOrEmpty string是引用类型,可以为null,如果使用length会出错。


Regex类,正则表达式类。


关键字checked 和 unchecked能够显式地控制溢出检查,将覆盖编译器设置。


在C#中,Lambda使用Lambda运算符(=>),左边形参列表,右边为方法体。


.NET Framework提供了File,Directory和Path类。


Conditional("DEBUG")
类似 
#if DEBUG
。。。
#endif


调用C#对象的方法
var calculator = GetCalulator();
int sum = calculator.Multiply(7,8);


以反射方式调用方法
object calculator = Getcalulator();
Type type = calculator.GetType();
object result = type.InvokeMember("Multiply",BindingFlags.InvokeMethod,null,calculator,new object[]{7,8});

int sum = Convert.ToInt32(result);


///c#入门经典第五版

第一章:C#简介
CIL (Common Intermediate Language,CIL)
JIT Just-In-Time//把CLI编译为专用于OS和目标机器结构的梧桐代码,这样OS才能执行应用程序。
在编译使用.NET Framework库的代码时,还是立即创建专用于操作系统的梧桐代码,而是把代码编译为通用中间语言(Common Intermediate Language,CIL)代码。
在编译应用程序时,所创建的CIL代码存储在一个程序集中,程序集包括:EXE\DLL,元信息,可选资源
GAC(Global Assembly Cache) 全局程序集缓存
不受CLR控制运行的应用程序属于非托管类型,如C++可以编写这类应用程序,但在C#中,只能编写在托管环境下运行的代码。托管代码(CLR)有垃圾回收功能
note: 需要许多内存才能运行的代码应自己执行垃圾回收检查。
相比C++,C#是一种类型安全的语言
C#应用:
1.Windows应用程序 //使用.NET Framework的Windows Forms模块可以 简便生成这类应用程序
Windows Forms模块是一个控件库,用于UI,WPF有更灵活。
2.Web应用程序  //.NET Framework包括Active Server Pages.NET(ASP.NET),使用c#通过Web Forms创建ASP.NET应用程序
3.Web服务 //还可创建WCF服务
通过.NET Framework的Active Data Objects.NET(ADO.NET)...可访问数据库访问


第二章:windows consol app and windos Forms application
第三章:语法
#region *******
#endregion //注释其间的代码并显示*****
变量类型
类型 别名
sbyte System.SByte
byte System.Byte
short System.Int16
ushort System.UInt16
.....
浮点类型三种 float/double/decimal
char System.Char
bool System.Boolean
string System.String

Console.WriteLine("{0} {1}.",myString,myInter); //其中{0} {1} 都是点位符
对名称空间用“."而不是c++中的"::"

int myInt = Convert.ToInt32(Console.ReadLine());
bool isLessThan10 = myInt < 10;
隐式转换、
显式转换 
1. var1 = Type)var;
关键字checked\unchecked,检查表达式的溢出检查上下文//build->advanced to set
2.使用Convert命令进行显式转换

enum enumName : byte
{
north = 1,
south = 2
}
foreach(<baseType> <name> in <array>)
{ ... }

多维数组
double[,] hillHeight = new double[3,4];
string myString = "A string";
char[] myChars = myString.ToCharArray();
<string>.TrimStart()<string>.TrimEnd() <string>.Split()
第六章:函数
static void ShowDouble(ref int val)
{
...
}
static int MaxValue(int[] intArray, out int maxIndex)


0 0
原创粉丝点击