C#基础知识总结(不定时添加新内容)
来源:互联网 发布:钢琴的软件 编辑:程序博客网 时间:2024/06/01 20:52
1、 局部变量不自动初始化,而属性的每个字段有个默认初始值,是C#在没有指定初始值时提供。
2、 char/byte/sbyte/short/ushort/int/uint/long/ulong/float/double与decimal类型实例变量的默认值都是0.bool类型实例变量的默认值为假。同样,引用类型实例变量的默认值为null
3、 C#不允许静态方法直接调用非静态成员
4、 一个类中可以声明同名方法,只要其参数集不同(参数个数、类型和顺序),称为方法重载(与返回类型无关)
5、 参数声明中使用关键字ref可以按引用将变量传递给方法------被调用方法可以修改调用者的变量(ref关键字用于调用方法中已经初始化的变量。)
在参数前面加上关键字out可以建立输出参数,告诉编译器这个变元按引用传入被调方法,被调方法对调用者的原变量赋值
6、 数组索引值应为int、uint、long、ulong类型或可以隐式升级为这些类型的值
7、 一维数组:
int[] b = new int[10];
b = {十个数};
or
int[] b = {十个数};
多维数组:
(1)矩形数组:
int[ , ] b;
b = new int[ 2, 2 ];
or
int[ , ] b = { { 1, 2 }, { 3, 4 } };
(2)齿轮数组:
int[][] c= { new int[] { 1, 2 }, new int[]{ 3 }, new int[]{ 4, 5, 6 } };
or
int[][] c;
c = new int[ 3 ][ ];
c[ 0 ] = new int [ 2 ];
c[ 1 ] = new int [ 1 ];
c[ 2 ] = new int [ 3 ];
注:齿状数组不能用一个数组生成表达式完全创建。例如下面的语法错误:
int[][] c = new [ 2 ][ 3 ]; //error
8、 矩形数组,每个for语句的循环继续条件用矩形数组的GetLength方法取得每一维的长度。维号从0开始。因此方法调用GetLength(0)返回数组第一维的长度(行数),GetLength(1)返回数组第二维的长度(列数)。
齿轮数组:外for语句的循环继续条件用属性array.Length确定数组行数。内for语句的循环继续条件用属性array[row].Length确定数组列数。(这里的array是数组名,row为行数)
9、 如果类成员没有用访问修辞符声明,则其默认为private。我们总是显式声明private成员
10、 get与set方法前面没有访问修辞符时,访问方法继承属性名前面的访问修饰符
11、声明与使用可复用类的步骤:
1)、声明一个公用类。如果不是公用类,则只能让同一个汇编中的其他类来使用。
2)、选择名字空间名并在源代码文件中增加一个名字空间声明,表示可复用类声明
3)、将类编译进类库(创建的工程是Class Library)
4)、在程序中增加类库的引用
5)、用using指令指定可利用类名字空间和使用这个类
12、Class View 与Object Browser(VS2005 IDE的使用)
Class View显示工程中所有类的字段与方法。
Object Browser列出C#库中所有的类。
13、现有类是基类,新类是派生类。每个派生类又可以作为其他派生类的基类。
C#与C++不同,不支持多重继承(而接口则可以,从而避免相关问题。
派生类的对象也可以作为基类的对象。
关键字virtual与abstract表示派生类中可以覆盖基类方法。
override修饰符声明派生类方法覆盖virtual与abstract基类方法。这个修饰符还隐式声明派生类方法为virtual(也就是说被override过的派生类方法隐式为virtual)。
14、派生类对象可以看成是基类对象,而基类对象不是派生类对象。(“是”关系适用于从派生类到直接或间接基类,但反过来不行)。
构造函数和静态方法不能声明为abstract
15、if(a)其实就是a为真时成立,其详写为if( a == true );if(!a)也就是a的值为假时成立,其详写为if( a != true )(之前老把这个搞混了,所以也加上,就当是自己又复习一遍) 16、整除得到整数商,但要注意整除放弃小数部分(截尾),而不是四舍五入。比如:20/3是6;而当20.0/3或者是20/3.0时,得到的数则是一个浮点数来的,最后一位浮点数则是四舍五入得来。当对一个浮点数的结果进行整数的强制类型转换时,所得到的值就是结果的小数部分被截尾。比如:(int)(20.0/3)=6。 17、变元提升与类型转换: 类型 转换类型 bool 不能隐式转换成其它简单类型 byte ushort、short、uint、int、ulong、long、decimal、float或double char ushort、int、uint、ulong、decimal、float或double decimal 不能隐式转换成其它简单类型 double 不能隐式转换成其它简单类型 float double int long、decimal、float或double long decimal、float或double sbyte short、int、long、decimal、float或double short int、long、decimal、float或double uint ulong、long、decimal、float或double ulong decimal、float或double ushort uint、int、ulong、long、decimal、float或double 默认情况下,如果目标类型不能表示原类型,则C#不允许在它们之间进行隐式转换(例如,int值2 000 000不能表示为short值,任何有小数的浮点数不能用long,int或short之类整数表示),否则会产生编译错误。但是如果我们知道这个转换可能丢失信息,但这里可以这么做的话,则可以用强制类型转换来实现。
- C#基础知识总结(不定时添加新内容)
- Git 工作用到命令总结(不定时添加)
- C++基础知识易错点和易混淆总结汇总(不定时更新)
- Java千万不能忘记的基础知识总结(不定时更新)
- C#中字符、字符串方法不定时总结
- C#基础知识总结(一)
- C#基础知识总结(二)
- C#基础知识总结(三)
- dedecms 添加新内容
- DropDownList 添加新内容
- 程序员应掌握的基础知识(不定时更新)
- JDBC总结(不定时更新)
- jQuery-为动态添加的元素绑定事件(以及不重复添加新的内容)
- ES6 的一些新函数(不定时更新)
- C#操作Word总结(二)——设置文档格式并添加文本内容、超链接、添加图片
- php $_SERVER超全局变量 (不定时添加)
- 添加新的内容分类
- 添加新的 HTML 内容
- Java文件上传的机制与原理以及几种协议方式
- MATLAB 文件操作
- 运行时绑定
- 所得税
- 用图片代替滚动条的代码
- C#基础知识总结(不定时添加新内容)
- 快速排序算源代码
- vim正常显示gbk编码文件
- 下拉菜单,支持所有浏览器
- Hibernate fetch lazy cascade inverse 关键字 【转】
- Twisted教程-客户端
- 新蛋中国最新的分类导航,右侧展开菜单,可以修改向左或者向右展开
- 【转贴】如何调整窗口以适应客户区大小
- 传智播客学习之HTML